Взаємозв’язок облікових систем І M. E. Doc is за допомогою методів com основні вимоги




Дата канвертавання30.04.2016
Памер285.49 Kb.
Взаємозв’язок облікових систем і M.E.DOC IS за допомогою методів COM

Основні вимоги:

Для взаємозв’язку облікових систем із M.E.DOC IS за допомогою COM методів обов’язковою вимогою є активний сеанс програми M.E.DOC IS із входом в організацію, з якою буде відбуватись інтеграція.


Для передачі документів у M.E.DOC IS бажано,щоб кожен документ мав свій ідентифікатор ExDocID. Оскільки такий ідентифікатор дозволить використовувати функції по імпорту документів у облікову систему із прив’язаними до документа результатами обробки. Ідентифікатором може бути ідентифікатор документа в обліковій системі або штучний ID (присвоєний документу і в обліковій системі і в M.E.DOC IS, приклад нижче)
Будь-яка програма по замовчуванню в якості змінних отримує 3 основні об’єкти із програми M.E.DOC IS:


Об’єкт (скорочено)


Опис

Коментар
App

Основний об’єкт, до якого потрібно звернутись перед початком взаємозв’язку систем.

MEDOC.ZApplication

Обов’язково створюється першим. Рекомендовано перевірити підключення. Без створення цього об’єкту подальша робота буде Неможлива.
Doc

Поточний документ:

MEDOC.IZDocument

Об’єкт, який повертає програма M.E.DOC IS

Створюється документ пустий.



rsMain

Таблиця полів тіла документа

MEDOC.IZDataSets

Використовується відразу після створення документа DOC. Дозволяє заповнювати поля даними.

rsMain=Doc.DataSets();




Таблиця основних COM методів



Необхідні дії

Методи COM, який необхідно використати

Виклик методу та повернення об’єкту

Експорт ПН/РК із облікової системи в M.E.DOC IS



IZDocument OpenOrCreateByExDocID

(string CharCode,

int PeriodType,

date CrtDocDate,

string ExDocID,

bool rewrite)


Метод створення або відкриття документа

CharCode = код бланка

PeriodType = тип періоду (перерахування місяців)

CrtDocDate = PeriodDate (01 число місяця звіту)

ExDocID – зовнішній ідентифікатор облікової системи

rewrite – ознака перезапису документа

( Так- 1 , Ні -0 )




Необхідно викликати метод з параметрами:

Doc = App.CreateOrOpenByExDocID("FJ1201006", 12, 01.12.2014, 1410184549, 0);


Передані дані:

FJ1201006 – код бланка Податкової накладної

12 – місяць року (грудень)

01.12.2014 – (перше число)

1410184549 – зовнішній ідентифікатор документа в обліковій системі

0 – ознака, що документ передається вперше.
Створюється новий пустий документ по параметрам.

Тобто повертається об’єкт MEDOC.IZDocument (Doc).

Після цього необхідно документ заповнити, використавши об’єкт доступу до таблиць полів MEDOC.IZDataSets (rsMain)
rsMain=Doc.DataSets() ;
rsMain.Edit();
rsMain.Fields.Item("FIRM_NAME").Value = "Тест";
rsMain.Fields.Item("FIRM_EDRPOU").Value = "12345678";
…..
rsMain.Fields.Item("N11").Value = "17.12.2014";

Результат: створення, відкриття, заповнення і збереження документа


Відправка ПН/РК на реєстрацію в ДФС/контрагенту



Sender GetDocSender()

Методи:

Add(string ExDocID)

Send(bool toDPA) повертає кількість успішно відправлених

toDPA приймає значення:



1(або true) – відправка у контролюючий орган, 0(або false) – відправка контрагенту
та
AddDocId(string DocID)

Send(bool toDPA) повертає кількість успішно відправлених

toDPA приймає значення:

1/true – відправка у контролюючий орган, 0/false – відправка контрагенту

AcceptDoc(string DocID, bool Accept, string rejectedText) погодження/відхилення документу, де DocIDідентифікатор документу в Медку, Accept: 1/trueпогодити документ, 0/false – відхилити документ.

Для того, щоб відправити контрагенту повідомлення про відхилення(або прийняття) документу, треба викликати Send(bool toDPA) з параметром false.


Якщо можливий тільки один отримувач, то програма відправить документа автоматично, якщо у списку декілька контролюючих органів—програма запитає у який контролюючий орган треба відправити


Необхідно викликати об’єкт :

Sender = App.GetDocSender();



з методами

Add( string ExDocID ) добавити документ у список для відправки

Send( bool toGov ) відправити список документів

Наприклад,

Sender.Add(ID1);//ідентифікатор 1-го документа

Sender.Add(ID2);//ідентифікатор 2-го документа

...

Sender.Add(IDN);//ідентифікатор N-го документа


У відповідь повертається значення кількості успішно відправлених документів.

count = Sender.Send(true)

Параметри: true – відправка у ДФС, false – відправка контрагенту
Sender = App.GetDocSender();

sender.AddDocId( "1153B1A5-5CF8-4644-AD30-30BA604979EF" )

cnt = sender.Send( true )

WScript.Echo "Sended document count = " & cnt


Результат: відправка документа в ДФС / контрагенту, повернення кількості успішно відправлених документів
Для відхилення вхідного документу(наприклад, Дод2):

set sender = App.GetDocSender()

sender.AcceptDoc "DEEB0663-3EEB-441A-87D4-96EE1B78EAA7", false, "Не вірний номер договору"

cnt = sender.Send( false )

Отримання квитанцій про реєстрацію в ДФС/від контрагента


DataSet GetDocKVT(string ExDocID, long Cardcode)

Метод, що повертає список даних по квитанціям.

Необхідно передати ID документа, або код документа з Медка.
ExDocID – зовнішній ідентифікатор облікової

CardCode – ідентифікатор документа в Медку, параметр опціональний, якщо він заповнений, то по ньому відбувається пошук квитанцій



Необхідно викликати об’єкт

App = CreateObject("Medoc.ZApplication")

prim = App.GetPrimaryDocs()

KVT = prim.GetDocKVT(ExDocID);

Або KVT = prim.GetDocKVT(“”,Cardcode);

У відповідь повертається таблиця даних


<дата отримання> = KVT.Fields.Item("RECEPTDATE ").Value;

<ім’я файла> = KVT.Fields.Item("FILE_NAME ").Value;



<статус> = KVT.Fields.Item("STATUS").Value;


Список полів в KVT, які можуть бути заповнені:

OPERDATE - Дата операції

OPERTYPE - Тип операції

KVT_TEXT - Текст квитанції (не підписаної)

KVT_SIGN - Текст квитанції з підписами

REGNUM - Реєстраційний номер

REASON - Причина відхилення

RECEPTDATE - Дата отримання документа податковою

FILE_NAME - Ім'я файла

Результат: отримання заповненої таблиці з даними по квитанціям від ДФС / контрагента



Імпорт вхідних ПН/РК та первинних документів в облікову систему



DataSet GetPrimaryReestr( int docType, int docMove, date dateBegin, date dateEnd) - метод отримання списку вхідних документів із реєстру первинних документів.

Параметри:

docType – тип документа,

docMove - напрямок документа (0 –вхідний, 1 – вихідний )

dateBegin – дата початку діапазону,

dateEnd – дата кінця діапазону.
OpenDocumentByExDocID(ExdocID) –функція відкриття документу із отриманого списку.
Параметри:

ExdocID – ідентифікатор документа

Тип docMove int

«-1» усі,

«1» вихідні,

«2» -вхідні)
Тип документа docType int

«-1» усі,

«10100» - Податкова,

«10101» -РК

«10103» - Рахунок,
«10104» - Акт,
«10105» - Первинний документ - податкова накладна,
«10106» - Інші документи

)

Початок періоду – dateBegin Date



Кінець періода dateEnd Date



Необхідно викликати об’єкт із заданими параметрами:

App = CreateObject("Medoc.ZApplication")

prim = App.GetPrimaryDocs()

Reestr = prim. (docType, docMove, dateBegin, dateEnd)
У відповідь повертається об’єкт таблиця із полями.

<Тип документа> = Reestr.Fields.Item("Receptdate ").Value;



<Номер документа> = Reestr.Fields.Item("Regdate ").Value;


Список полів у таблиці

Sender – Походження документа

CharCode – Код документа

CardCode – ідентифікатор документа в Медку,

Status – статус ,

Vatsum - сума ПДВ,

Exdoc_ID – ідентифікатор документа у зовнішній системі,

Regdate – дата реєстрації,

Doc_id – ідентифікатор документа,

Doc_type – тип документа,

Doc_move – напрямок документа,

Doc_vd – вид діяльності,

Doc_num – номер документа,

Reg_num – реєстраційний номер,

Doc_Dept – номер філії,

Doc_Date – дата документа,

Firm_EDRPOU – ЄДРПОУ платника,

Firm_IPN – ІПН платника,

Partner_EDRPOU – ЄДРПОУ контрагента,

Partner_IPN – ІПН контрагента,

OSOBFIO – відповідальна особа.
Тип Sender int

«-1» - не визначено,

«1» - ЄРПН,

«2» - контрагент,

«3» - контрагент(імпортовано із зовнішньої системи),

«10» - Копіювання в РНН,

«11» - Контрагент(прийнято з сервера ДФС)

)

Тип Status int



«0»—готовий до відправки,

«1» – здано,

«2» – не прийнято,

«3»—помилка відправки,

«4»—на підписі,

«5» – відправлено,

«6» – Доставлено контрагенту,

«7» – Затверджено/ Затверджено контрагентом,

«8» – Отриманий,

«9»—Відхилено/ Відхилено контрагентом


OpenDocumentByExDocID (ExdocID) –функція відкриття документу із отриманого списку (Exdoc_ID із отриманої таблиці)

У відповідь повертається об’єкт MEDOC.IZDocument (Doc). Тобто створено пустий документ.

Після цього необхідно документ заповнити, використавши об’єкт доступу до таблиць полів MEDOC.IZDataSets (rsMain)
rsMain=Doc.DataSets() ;
rsMain.Edit();
rsMain.Fields.Item("FIRM_NAME").Value = "Тест";
rsMain.Fields.Item("FIRM_EDRPOU").Value = "12345678";
…..
rsMain.Fields.Item("N11").Value = "17.12.2014";


«Запит в ЄРПН» із облікової системи


Використати методи:

OpenOrCreateByExDocID()

GetDocSender()

Doc = App.CreateOrOpenByExDocID("FJ1300102", 12, 01.12.2014, 1410184549, 0);


Передані дані:

FJ1300102 – код бланка Запиту в ЄРПН у M.E.DOC IS

12 – місяць року (грудень)

01.12.2014 – (перше число)

1410184549 – зовнішній ідентифікатор документа в обліковій системі

0 – ознака, що документ передається вперше.
Створюється новий пустий документ по параметрам.

Тобто повертається об’єкт MEDOC.IZDocument (Doc).

Після цього необхідно документ заповнити, використавши об’єкт доступу до таблиць полів MEDOC.IZDataSets (rsMain)
rsMain=Doc.DataSets() ;
rsMain.Edit();
rsMain.Fields.Item("FIRM_NAME").Value = "Тест_орг";
rsMain.Fields.Item("FIRM_EDRPOU").Value = "12345678";
…..
rsMain.Fields.Item("FIRM_INN").Value = "1103198978";

Результат: створення, відкриття, заповнення і збереження документа
Необхідно викликати об’єкт :

Sender = App.GetDocSender();



з методами

Add( string ExDocID ) добавити документ у список для відправки

Send( bool toGov ) відправити список документів

Наприклад,

Sender.Add(ID1);//ідентифікатор 1-го документа

Sender.Add(ID2);//ідентифікатор 2-го документа

...

Sender.Add(IDN);//ідентифікатор N-го документа


У відповідь повертається значення кількості успішно відправлених документів.

count = Sender.Send(true)

Параметри: true – відправка у ДФС, false – відправка контрагенту

Результат: відправка документа в ДФС / контрагенту, повернення кількості успішно відправлених документів


Отримання «Витягу з ЄРПН» по ідентифікаторам «Запиту в ЄРПН»


IZDocument GetNNResponse(string Exdocid Request, string DOCNUMRequest, string DOCIDNN)

Метод визивається для одного з трьох параметрів (два інші - пусті)



Параметри:

Exdocid Request – ідентифікатор документа запиту,

string DOCNUMRequest – номер запиту ,

string DOCIDNN - ідентифікатор документа,на який відправлено запит


Необхідно викликати об’єкт, задавши необхідні параметри:

App = CreateObject("Medoc.ZApplication");

govReq = App.GetGovRequest();

Doc = govReq.GetNNresponse();


Метод повертає у відповідь документ «Витяг» із заповненими полями витягу.
TAB1 = Doc.DataSets(“TAB1”); отримуємо таблицю з документа «Витяг», де є інформація про реєстрацію ПН


Отримання «Витягу з ЄРПН» по даним зареєстрованої накладної (номер, дата, тип)


IZDocument GetNNResponseNN(dataset NN),
Поля в NN(string NN_NUM1, string NN_NUM2, string NN_NUM3, date DOCDATE, string DOC_TYPE, string IPNsel)

Метод, що повертає витяг, де є інформація про реєстрацію ПН/РК

Якщо накладна не зареєстрована – то функція поверне пустий документ (оскільки витяг відсутній)

Параметри:

DOC_TYPE – тип документа (ПН або RK)

NN_NUM1 – номер накладної (порядковий номер)

NN_NUM2 – номер накладної (вид діяльності)

NN_NUM3 – номер накладної (номер філії)

DOCDATE – дата документа

IPNsel – ІПН продавця
Відповідь: IZDocument (документ із заповненими полями)



Необхідно викликати об’єкт,задавши необхідні параметри :

App = CreateObject("Medoc.ZApplication");

govReq = App.GetGovRequest()

Doc = govReq.GetNNResponseNN( NN )

Метод повертає у відповідь документ «Витяг» із заповненими полями витягу.
TAB1 = Doc.DataSets(“TAB1”); отримуємо таблицю з документа «Витяг», де є інформація про реєстрацію ПН



Отримання списку витягів




DataSet GetNNResponseList(date datebeg, date dateend, long num_beg, long num_end )

Функція, що повертає список витягів по діапазонам дат і інтервалам номерів. Якщо num_beg або num_end дорівнюють 0, то він не враховується



Datebeg – початкова дата діапазону для вибору витягів,

date dateend – кінцева дата діапазону для вибору витягів,

long num_beg – початковий номер витягу,

long num_end – кінцевий номер витягу.
Заповнюється datebeg і dateend і num_beg і num_end.

Відповідь: dataset list(docid Response) список витягів






Необхідно викликати об’єкт із заданими параметрами:

App = CreateObject("Medoc.ZApplication");

govReq = App.GetGovRequest()

ResponseList = App.GetNNresponseList( datebeg,dateend, num_beg, num_end)
Відповідь: DataSet із заповненими полями
Поля в DataSet ResponseList :

CARDCODE – ідентифікатор документа в Медку, завжди заповнений

REPNUM – номер запита в ЄРПН

REPDATE – дата запита в ЄРПН(на дату)
Після отримання списку витягів, необхідна функція:

OpenDocumentByCode (CARDCODE) – відкриття документа по ідентифікатору


«Перевірка платників ПДВ»


DataSet SentGetNDSPLTSTT ([in] IZDataset NDSPLTSTT)
Метод відправки запиту «Перевірка платників ПДВ»

IPN – Індивідуальний податковий номер

PERDATE – дата, на яку потрібна відповідь,

STATUS – 0 –відправлено запит, 1 -платник, 2 –неплатник
Обов’язковим для заповнення є поля:

IPN – Індивідуальний податковий номер,

PERDATE – дата, на яку потрібна відповідь




Необхідно викликати об’єкт :

App = CreateObject("Medoc.ZApplication");

prim = App.GetPrimaryDocs()

NDSPLTSTTREZ = prim.SentGetNDSPLTSTT(NDSPLTSTT);


Метод дозаповнює список NDSPLTSTT значенням STATUS
У відповідь повертається заповнена таблиця даних
<ІПН> = NDSPLTSTTREZ.Fields.Item("IPN").Value;



<Статус> = NDSPLTSTTREZ.Fields.Item("STATUS").Value;

Якщо по даному контрагенту існує результат, то інформація добавиться у відповідь. Інакше, відбудеться відправлення запиту в ДФС по заданим даним.


Перевірка наявності результату реєстрації по ПН/РК



Dataset FillNNStatusDS( Dataset filNNDs);

Метод дозаповнює filNNDs інформацією про реєстрацію документів.
Поля filNNDS:

DOC_ID – ідентифікатор документа

DOC_TYPE – тип документа, 1 – ПН, 2 –РК

DOC_MOVE – 1 – видані, 2 - отримані

DOC_NUM – номер документа

DOC_VD - вид діяльності

DOC_DEPT - код філії

DOC_DATE – дата документа

FIRM_EDRPOU – ЄДРПОУ підприємства

(для виданих – продавець, для отриманих - покупець)

PARTNER_EDRPOU – ЄДРПОУ контрагента

PATRNER_IPN – ІПН контрагента

STATUS - статус

REGDATE – дата реєстрації

VATSUM - сума ПДВ
STATUS приймає значення:

-1 відсутній документ

-2 критеріям пошуку відповідає більше одного документа

-3 відсутній обов’язків параметр

0 не відправлявся на реєстрацію

відправлено в ДФС

доставлено в ДФС

не прийнято в ДФС

4 принято в ДФС



Необхідно викликати об’єкт :

FilNNDsRez= App.FillNNStatusDS(filNNDs)

У відповідь повертається дозаповнена таблиця даних із колонкою Status, REGDATE, VATSUM

FillNNDsRez. Fields.Item("VATSUM ").Value – сума ПДВ з витягу

FillNNDsRez. Fields.Item("REGDATE").Value – дата реєстрації

FillNNDsRez. Fields.Item("STATUS ").Value – статус документа



Створення пустої таблиці DataSet і заповнення полями

DataSet GetEmptyDataSet()

Метод створення пустої таблиці. Необхідний для використання в інших методах

Повертає таблицю без колонок і без рядків.


AddField ( string fieldName, ZDataTypeEnum fieldType );

Метод додавання поля у таблицю. Метод викликається кожного разу при додаванні нового поля.
Типи полів:

zdtUnknown = 0,

zdtString = 1,

zdtSmallint = 2,

zdtInteger = 3,

zdtWord = 4,

zdtBoolean = 5,

zdtFloat = 6,

zdtCurrency = 7,

zdtBCD = 8,

zdtDate = 9,

zdtTime = 10,

zdtDateTime = 11



Необхідно викликати метод для створення таблиці:

Ds= App.GetEmptyDataSet();
Після чого викликати метод додавання поля у таблицю.
Ds. Fields.AddField("Field1", 1)


Отримання підписаного файлу документа

string GetDocSign( int CardCode, string Exdocid, int SignType )

Повертає підписаний документ в BASE64

по ExDocID або CardCode
ExDocID – зовнішній ідентифікатор облікової

CardCode – ідентифікатор документа в Медку
Тип SignType int

«1» отримаємо XML без підписів,

«2» - підписаний XML,

«3» - підписаний XML, так як він в Медку зберігається

)


App = CreateObject("Medoc.ZApplication");

sign = App.GetDocSigning();

Пошук по CardCode

f = sign.GetDocSign( 123456, "", 2 );



або

Пошук по ExDocID

f = sign.GetDocSign( 0, "FLDKFJHS", 2 );


Отримання підписантів документа

DataSet GetDocSignInfo(int CardCode, string Exdocid)
ExDocID – зовнішній ідентифікатор облікової

CardCode – ідентифікатор документа в Медку

Повертає таблицю з підписантами документа

App = CreateObject("Medoc.ZApplication");

sign = App.GetDocSigning();

По CardCode

rez = sign.GetDocSignInfo(12523)

по ExDocID

rez = sign. GetDocSignInfo(0,”GHFGTFGHDF”)


rez.Fields.Item("SIGNLEVEL ").Value – тип сертифіката:

-1 – «не визначено»

0 – «директор»

1 – «бухгалтер»

2 – «печатка»

3 – «співробітник»

5 – «адміністратор реєстрації»

7 – «фізична особа»

SIGNLEVEL буде мати значення відмінне від «-1» лише для сертифікатів виданих АЦСК «Україна»
rez.Fields.Item("IPN ").Value – ІПН

rez.Fields.Item("FIO").Value – кому виданий сертифікат

rez.Fields.Item("ISSUER").Value – Видавець сертифіката

rez.Fields.Item("SERIAL").Value – ідентифікатор ключа

rez.Fields.Item("DATEBEG").Value – дата початку дії сертифіката

rez.Fields.Item("DATEEND").Value – дата закінчення сертифіката

rez.Fields.Item("TITLE").Value – посада

rez.Fields.Item("SN").Value – серійний номер сертифіката




Запис в кеш програми інформації про секретний ключ, пароль та сертифікат

App.GetDocSigning()

CertToCache (cert, key, pass)

cert— текстовий параметр у якому треба вказати фізичний шлях де збергіається сертифікат, та ім’я файлу

key -- текстовий параметр у якому треба вказати фізичний шлях де збергіається секретний ключ та ім’я файлу

pass – текстовий параметр у якому треба вказати пароль

Метод також повертає коди помилок:
0—якщо вдалось успішно записати пару ключ-сертифікат в кеш


1—якщо за вказаним шляхом не знайдений сертифікат

2—якщо за вказаним шляхом не знайдений ключ

3—якщо вказаний не вірний пароль

4—якщо не співпадає пара ключ/сертифікат

5—якщо вказаний сертифікат не знайдений в базі програми

6—якщо вказаний сертифікат належить іншій організації



App = CreateObject("Medoc.ZApplication");

set sign = App.GetDocSigning()

res = sign.CertToCache( "D:\cert\11223344\11223344\11223333_1122334456_BS150428095136.cer", "D:\cert\cert\11223333_1122334456_BS150428095136.ZS2", "12356" )

WScript.Echo "Result is " & res



Робота з довідниками

App.GetDictionary()

Методи:
Open("назва_довідника") – відкриває довідник на перегляд. З назвами довідників і колонок можна ознайомитися у файлі \config\Dictionaries.xml


Edit() – перехід в режим редагування,

обов’язково закінчувати методом Post()

Save() – збереження внесених змін до довідника

GetGenID("назва_довідника") – генерує вілний ІД в таблиці

App.GetDictionary() дає доступ лише до даних, які є в довіднику поточної організації.

Довідник контрагентів є довідником двухрівневим—з групами контрагентів. Отримати назви груп контрагентів можна з довідника HBPARTNERGRP, де HBPARTNER.IDPARTNERGRP= HBPARTNERGRP.CODE.


Наводимо зразки використання всіх методів, на прикладі довідника контрагентів:

On Error Resume Next

set App = CreateObject("Medoc.ZApplication")

set Dict = App.GetDictionary()


set tabl = Dict.Open("HBPARTNER") rem отримати довідник контрагентів

tabl.First() rem починаємо з першого запису

WScript.Echo "Rows Count = " & tabl.RecordCount

i = 1


Do while not tabl.Eof rem починаємо читати довідник

WScript.Echo "Rows #" & i

WScript.Echo "DICT_CODE = " & tabl.Fields.Item("CODE").Value

WScript.Echo "IDPARTNERGRP = " & tabl.Fields.Item("IDPARTNERGRP").Value

idrgp = tabl.Fields.Item("IDPARTNERGRP").Value rem зберігаємо значення останньої групи контрагентів для створення нового

WScript.Echo "DICT_NUM = " & tabl.Fields.Item("NUM").Value

WScript.Echo "DICT_NAME = " &tabl.Fields.Item("NAME").Value

WScript.Echo "DICT_INDTAXNUM = " &tabl.Fields.Item("INDTAXNUM").Value

WScript.Echo "CODENDS = " &tabl.Fields.Item("CODENDS").Value

WScript.Echo "SHORTNAME = " &tabl.Fields.Item("SHORTNAME").Value

If tabl.Fields.Item("NUM").Value="11223344" Then

tabl.Edit() rem змінюємо значення поля

tabl.Fields.Item("NAME").Value = tabl.Fields.Item("NAME").Value + "!"

tabl.Post()

WScript.Echo "Changed name!"

WScript.Echo "DICT_NAME = " &tabl.Fields.Item("NAME").Value End If

WScript.Echo "-------------------------------------------------------"

tabl.Next()

i = i + 1

Loop


tabl.Last() rem перед додавання нового значення в довідник, треба встати на останній запис…

tabl.Append() rem … і перейти до наступного. ЦЕ ВАЖЛИВО, щоб не затерти вже існуючі записи

tabl.Edit() rem створення нового запису відбувається через «редагування» пустого запису

tabl.Fields.Item("CODE")=Dict.GetGenID("HBPARTNER") rem генеруємо новий ІД для унікального поля довідника. CODE – стандартна назва унікального ідентифікатора у довіднику

tabl.Fields.Item("IDPARTNERGRP") = idrgp rem вказуєм до якої групи контрагентів відноситься наш новий запис

tabl.Fields.Item("NUM")="2275800364"

tabl.Fields.Item("NAME")="новий запис"

tabl.Fields.Item("INDTAXNUM")="22222222"

tabl.Fields.Item("ADR")="адреса, 28, кв.1"

tabl.Post()

If Err.Number <> 0 Then

WScript.Echo Err.Description

End If
Dict.Save() rem збереження змін

WScript.Echo "The script is complete."



Отримати повідомлення

App. ReceiveCorrespondence() -- виконує прийом документів та квитанцій з ДФС, СДО та пошти( аналог F9 у інтерфейсі)

On Error Resume Next

set App = CreateObject("Medoc.ZApplication")

set sign = App.GetDocSigning() rem передача підпису, сертифікату та паролю до кешу

res = sign.CertToCache( "D:\cert\11223344\11223344\11223344_C150428095107.cer", "D:\cert\11223344\11223344\11223344_C150428095107.ZS2", "123" )

res = App.ReceiveCorrespondence() rem отримує повідомлення

WScript.Echo "Res is " & res rem повертає true—якщо є нові повідомлення або false – якщо нових повідомлень немає




Приклад створення документа Податкової накладної методами COM (на VBScript)
set App = CreateObject("Medoc.ZApplication") // створення основного COM об’єкта M.E.DOC IS (ОБОВ’ЯЗКОВО перед початком інтеграції)
ID = ‘85854545 ’ // оголошення значення ID, або використання функції генерації ID за умови його відсутності (GenerateGUID())

set PDate = CDATE("18.12.2014") // оголошення значення дати документа

Doc = App.OpenOrCreateByExDocID( "FJ1201006", 0, PDate, , ID, 0 ) // створюється/відкривається документ

Doc.EnableScripts(); //ввімкнення скриптів (по замовчуванню всі скрипти ввімкнені)

Doc.DisableScripts(); // вимкнення скриптів (за необхідності)

rsMain = Doc.DataSets() // отримуємо головну таблицю документа "Main"

rsMain.Edit() // переходимо в режим редагування

rsMain.Fields.Item("N11").Value = CDATE("15.11.2014") // заповнюємо поле N11

rsMain.Fields.Item("N12").Value = 1 //заповнюємо поле N12

rsMain.Fields.Item("N10").Value = "Іванов Іван Іванович" //заповнюємо поле N10

rsMain.Post() // підтвердження заповнених даних таблиці (бажано використовувати rsMain.Post після заповнення кожної таблиці, для збереження цілісності даних в документі)



Tab1 = Doc.DataSets(1) // отримуємо головну таблицю документа "Main"

Tab1.Edit() // переходимо в режим редагування

Tab1.Fields.Item("TAB1_A12").Value = CDATE("15.11.2014") // заповнюємо поле TAB1_A12

Tab1.Fields.Item("TAB1_A13").Value = "апельсини" //заповнюємо поле TAB1_A13

Tab1.Fields.Item("TAB1_A14").Value = "кілограми" //заповнюємо поле TAB1_A14

Tab1.Append() // додаємо інший рядок

Tab1.Edit() // переходимо в режим редагування

Tab1.Fields.Item("TAB1_A12").Value = CDATE("15.11.2014") // заповнюємо поле TAB1_A12

Tab1.Fields.Item("TAB1_A13").Value = "яблука" //заповнюємо поле TAB1_A13

Tab1.Fields.Item("TAB1_A14").Value = "кілограми" //заповнюємо поле TAB1_A14

Tab1.Post() // підтвердження заповнених даних таблиці

Заповнення необхідних полів



Doc.Save(1) // збереження документа (1 – з перевіркою перед збереженням, 0 –без перевірки)



Doc.Close() // закриття документа


База данных защищена авторским правом ©shkola.of.by 2016
звярнуцца да адміністрацыі

    Галоўная старонка