Сторінка 1 з 1

API J1203201

Додано: 31 липня 2019, 08:37
bytheway
При запросе App.DocumentsDataSet("PerDate >= '01.07.2019'") система не возвращает полученные акцизные накл. J1203201, в списке - только созданные нами.

Medoc 11.01.014

В чем может быть причина?

Re: API J1203201

Додано: 31 липня 2019, 10:17
Inkognito
DocumentsDataSet - устаревший метод, созданный разработчиком очень давно, и не развивается. Вашу задачу он навряд ли решит.
Попробуйте более совершенный метод GetPrimaryReestr:
Код 1С | Показать
App = Новый COMОбъект("MEDOC.ZApplication");
primДокументы = App.GetPrimaryDocs();
docType = 10050; //10050 - акцизная НН, 10051 - акцизный Додаток2
docMove = 1; //1 - исходящие, 2 - входящие
reestrNN = primДокументы.GetPrimaryReestr(docType, docMove, НачалоДня(ДатаС), КонецДня(ДатаПо) );
reestrNN.First();
Сообщить("Всего найдено: "+reestrNN.RecordCount());

Пока НЕ reestrNN.EOF Цикл
ОбработкаПрерыванияПользователя();

ТекстДокумента = "Документ: " +
СокрЛП(reestrNN.Fields.Item("CharCode").Value)+ " " + ?(docType = 10050, "Акцизная НН", "Акцизный Д2") + " " +
СокрЛП(reestrNN.Fields.Item("Doc_num").Value) + " від " + Формат(reestrNN.Fields.Item("Doc_date").Value, "ДЛФ = Д");

Сообщить(ТекстДокумента );

reestrNN.Next();
КонецЦикла;
Более детально: C:\Program Files\Medoc\Medoc\help\manual\Інструкція по COM-об’єктам.pdf

Re: API J1203201

Додано: 31 липня 2019, 16:01
bytheway
Огромное спасибо! Попробую.

А как можно узнать docType для вида документа ? primДокументы.GetPrimaryReestr(docType


кстати, при docType = -1 не выдает в списке новых АН

Re: API J1203201

Додано: 31 липня 2019, 17:54
Inkognito
Согласно инструкции (см.выше):
Инструкция | Показать
Тип документа docType int:
«-1» - усі;
«10100» - Податкова накладна;
«10101» - Додаток 2;
«10103» - Рахунок;
«10104» - Акт;
«10105» - Первинний документ – Накладна;
«10106» - Інші Документи;
«10107» - Банківська виписка;
«10108» - Довіреність;
«10109» - Договір;
«10050» - Акцизна накладна;
«10051» - Розрахунок коригування (акциз).

Re: API J1203201

Додано: 01 серпня 2019, 09:55
Inkognito
Проблема проявлена - как по исходящим, так и по входящим документам. И она явно на стороне Медка.
J1203002 - находится корректно. Проблема именно с новыми формами.

Re: API J1203201

Додано: 01 серпня 2019, 15:32
Белокопытов Геннадий
Спасибо, будет доработано в одном из следующих обновлений программы

Re: API J1203201

Додано: 05 серпня 2019, 13:31
bytheway
После последнего обновления (15) входящие АН появились, (получаю с помощью DocumentsDataSet) , но список неполный. Видимо, начиная с какой-то даты

Re: API J1203201

Додано: 07 серпня 2019, 08:55
bytheway
И как это вот можно понять?
| Показать
6bcsx.png
6bcsx.png (63.28 Кіб) Переглянуто 653 разів
| Показать
download.png
download.png (60.57 Кіб) Переглянуто 653 разів

Re: API J1203201

Додано: 07 серпня 2019, 09:31
Medoc Man
bytheway писав:
07 серпня 2019, 08:55
И как это вот можно понять?
| Показать
6bcsx.png
| Показать
download.png
Вы путаете дату создания документа и дату документа (дату выписки документа).
Вы можете создать АН 1 января, но поставить дату документа 7 января.
Это будут разные даты.

Re: API J1203201

Додано: 07 серпня 2019, 09:34
Inkognito
bytheway
Это дата физического создания документа в базе Медка (ручное или АПИ методами). Аналогичный результат должен дать использование метода GetDocCrtDate (string ExDocID) --- кстати, почему-то не разработан его эквивалент GetDocCrtDateByCode --- логично создать такой (на заметку представителям Медка).
Дату документа можно получить, открыв документ по его CardCode :

Док = App.OpenDocumentByCode(Формат(CardCode , "ЧГ="));
rsMain = Док.DataSets("MAIN");

, и прочитать значение соответсвующего поля:

ДатаДокумента= rsMain.FldVal("CRDATE");

Обращаю внимание представителей Медка, что метод GetPrimaryReestr() так и не стал показывать акцизные НН (в 15 обновлении). Надо доработать.

Re: API J1203201

Додано: 07 серпня 2019, 09:39
bytheway
CRDATE - це дата складання ( дата документу), виходячи з расшифровки бланку

Re: API J1203201

Додано: 07 серпня 2019, 09:47
Inkognito
Так, це дата складання, але метод DocumentsDataSet() не повертає це значення в якості дати документу. Поле NAME - це просто відображення того, як складається імя документу (з яких полів). Але прочитати дату документу цим методом напряму не зможете. Відкривайте документ, читайте відповідне поле. Код вище.

Re: API J1203201

Додано: 07 серпня 2019, 09:55
bytheway
Inkognito писав:
07 серпня 2019, 09:47
Так, це дата складання, але метод DocumentsDataSet() не повертає це значення в якості дати документу. Поле NAME - це просто відображення того, як складається імя документу (з яких полів). Але прочитати дату документу цим методом напряму не зможете. Відкривайте документ, читайте відповідне поле. Код вище.
Ну я об этом и говорю.
- Давайте сделаем метод, который вместо даты документа будет отдавать совсем иное значение.
Медок: done

Re: API J1203201

Додано: 07 серпня 2019, 09:59
Medoc Man
bytheway писав:
07 серпня 2019, 09:55
Inkognito писав:
07 серпня 2019, 09:47
Так, це дата складання, але метод DocumentsDataSet() не повертає це значення в якості дати документу. Поле NAME - це просто відображення того, як складається імя документу (з яких полів). Але прочитати дату документу цим методом напряму не зможете. Відкривайте документ, читайте відповідне поле. Код вище.
Ну я об этом и говорю.
- Давайте сделаем метод, который вместо даты документа будет отдавать совсем иное значение.
Медок: done
Какое иное значение?
Вы же запрашиваете не то, что хотите получить.

Re: API J1203201

Додано: 07 серпня 2019, 10:12
bytheway
Medoc Man писав:
07 серпня 2019, 09:59
bytheway писав:
07 серпня 2019, 09:55
Inkognito писав:
07 серпня 2019, 09:47
Так, це дата складання, але метод DocumentsDataSet() не повертає це значення в якості дати документу. Поле NAME - це просто відображення того, як складається імя документу (з яких полів). Але прочитати дату документу цим методом напряму не зможете. Відкривайте документ, читайте відповідне поле. Код вище.
Ну я об этом и говорю.
- Давайте сделаем метод, который вместо даты документа будет отдавать совсем иное значение.
Медок: done
Какое иное значение?
Вы же запрашиваете не то, что хотите получить.
Если в документе есть поле CRDATE=03.08.19 , до вызывая окрівая рекордсет (через DocumentsDataSet() ) с таким же наименованием поля CRDATE логично ожидать получения такого же значения

Re: API J1203201

Додано: 07 серпня 2019, 11:14
Medoc Man
bytheway писав:
07 серпня 2019, 10:12
Если в документе есть поле CRDATE=03.08.19 , до вызывая окрівая рекордсет (через DocumentsDataSet() ) с таким же наименованием поля CRDATE логично ожидать получения такого же значения
Или я не догоняю, о чём Вы толкуете, или Вы не видите у себя же разницу между CRDATE и CRTDATE.
CRTDATE - дата фактического создания документа в базе M.E.Doc.
CRDATE - дата документа (дата выписки документа) для Акцизной накладной.

На втором своём скриншоте Вы показываете, что в NAME отображается дата CRDATE.
А на первом скриншоте показываете на колонку CRTDATE и недоумеваете, что не так.

:?

Re: API J1203201

Додано: 07 серпня 2019, 17:19
bytheway
Medoc Man писав:
07 серпня 2019, 11:14
На втором своём скриншоте Вы показываете, что в NAME отображается дата CRDATE.
А на первом скриншоте показываете на колонку CRTDATE и недоумеваете, что не так.
:?
:o :o :o :o
Sorry . It's my bad"