Сторінка 1 з 2

Получение Реестра НН

Додано: 05 жовтня 2018, 15:16
isnach
Добрый день. Подскажите выполняюю и получаю ошибку "Член группы не найден", но самое инетресное что количество записей 46, но прочитать ничего не могу(
код Delphi

var
App,prim,Reestr : Variant;
i,num: Integer;


App := CreateOleObject('MEDOC.ZApplication');
prim:= App.GetPrimaryDocs;
Reestr:=prim.GetPrimaryReestr(10100, 1, '2018/08/01', '2018/10/01');
Reestr.First;
i:=Reestr.RecordCount;
num:=Reestr.FldOrigVal('Receptdate').value;

Re: Полечение Реестра НН

Додано: 05 жовтня 2018, 15:29
Inkognito
Метод возвращает таблицу с полями, поэтому читайте результат выполнения метода как таблицу, выводя содержимое ее полей.
На языке 1С | Показать
Пока НЕ reestrNN.EOF Цикл
Сообщить("Документ: №" + reestrNN.Fields.Item("Doc_num").Value + " от " + reestrNN.Fields.Item("Doc_date").Value);
reestrNN.Next();
КонецЦикла;

Re: Полечение Реестра НН

Додано: 05 жовтня 2018, 15:36
isnach
Inkognito писав:
05 жовтня 2018, 15:29
Все верно, метод GetPrimaryReestr() возвращает коллекцию полей, в которой нет поля "Receptdate".
П.С. метод возвращает таблицу с полями, поэтому читайте результат выполнения метода как таблицу, выводя содержимое ее полей. Перечитайте инструкцию на 16 странице по СОМ.
Хорошо нет, но согласно джокументации Regdate должна быть? Ошибка та же самая, может поля описаны в документации не не сооттвутсвуют действительности?

Re: Полечение Реестра НН

Додано: 05 жовтня 2018, 15:43
PetroP
num:=Reestr.FldOrigVal('Regdate');

Re: Полечение Реестра НН

Додано: 05 жовтня 2018, 15:45
Inkognito
1) Проверил на реальной базе, - поле есть, а значения нет...
2) Код PetroP, работает прекрасно.
На языке 1С | Показать

Пока НЕ reestrNN.EOF Цикл
//НЕ работает:
Сообщить("Receptdate=" + reestrNN.Fields.Item("Receptdate").Value);
//Работает:
Сообщить("Receptdate=" + reestrNN.FldOrigVal("Regdate"));
reestrNN.Next();
КонецЦикла;

Re: Полечение Реестра НН

Додано: 05 жовтня 2018, 16:03
isnach
Inkognito писав:
05 жовтня 2018, 15:45
1) Проверил на реальной базе, - поле есть, а значения нет...
2) Код PetroP, работает прекрасно.
На языке 1С | Показать
Пока НЕ reestrNN.EOF Цикл

//НЕ работает: Сообщить("Receptdate=" + reestrNN.Fields.Item("Receptdate").Value);
//Работает: Сообщить("Receptdate=" + reestrNN.FldOrigVal("Regdate"));

reestrNN.Next();
КонецЦикла;
Как то все ж печально, попробовал уже и
num:=Reestr.FldVal('Regdate') ;
num:=Reestr.FldOrigVal('Regdate');
num:=Reestr.Fields.Item('Regdate').Value ;
везде та же ошибка. Но когда передаю данные rsMain.FldVal('SUMPDV') := ... отлично работает

Re: Получение Реестра НН

Додано: 05 жовтня 2018, 16:21
isnach
Все оказалось на много проще, заменил "(" на "[", и все заработало.

Re: Получение Реестра НН

Додано: 10 жовтня 2018, 15:24
isnach
а почему в методе GetPrimaryReestr, в датасете поле Exdoc_ID постоянно пустое, а оно мне нужно для OpenDocumentByExDocID, или может туда передаеться другое значение?

Re: Получение Реестра НН

Додано: 10 жовтня 2018, 15:48
PetroP
Если документ не импортировался соответствующим методом (например, OpenOrCreateByExDocID), то внешний идентификатор и будет пустым.
Используйте OpenDocumentByCode.

Re: Получение Реестра НН

Додано: 10 жовтня 2018, 15:58
isnach
Был бы благодарен, если б подсказали названия пары мне нужных полей, в методе OpenDocumentByCode, это если есть или инн покупателя или тип причины

Re: Получение Реестра НН

Додано: 10 жовтня 2018, 16:08
PetroP
OpenDocumentByCode возвращает тоже самое, что и OpenDocumentByExDocID, а именно IZDocument.

Re: Получение Реестра НН

Додано: 11 жовтня 2018, 11:30
isnach
еще один вопрос) заметил что поле Partner_IPN не всегда заполенно, почему?

Re: Получение Реестра НН

Додано: 11 жовтня 2018, 11:42
PetroP
1. Контрагент - неплательщик НДС.
2. В документе предопределенное поле не заполнено.
3. В документе предопределенное поле не используется.
...

Re: Получение Реестра НН

Додано: 11 жовтня 2018, 14:59
isnach
PetroP писав:
11 жовтня 2018, 11:42
1. Контрагент - неплательщик НДС.
2. В документе предопределенное поле не заполнено.
3. В документе предопределенное поле не используется.
...
если зайти в сам документ оно есть,
rsMain:=App.OpenDocumentByCode(Reestr.FldOrigVal['CardCode']);
RstDS:=rsMain.DataSets('MAIN');
MSQuery1.FieldByName('Partner_IPN').Value:=RstDS.Fields.Item['N4'].value;
просто когда вытаскиваю весь список то долго выходит.

Re: Получение Реестра НН

Додано: 11 жовтня 2018, 15:24
PetroP
Какой документ (CHARCODE)?

Re: Получение Реестра НН

Додано: 11 жовтня 2018, 15:30
isnach
НН и КНН 10101 и 10100

Re: Получение Реестра НН

Додано: 11 жовтня 2018, 15:39
PetroP
Прошелся по документам за год - везде PATRNER_IPN заполнен (кроме поставщиков - неплательщиков НДС).

Re: Получение Реестра НН

Додано: 11 жовтня 2018, 16:22
isnach
я заметил заполенны у нас только те что делаются в ЦО, а те что получаем с филиалов пустые

Re: Получение Реестра НН

Додано: 11 жовтня 2018, 16:36
PetroP
Было у меня подозрение, что есть связь с филиалами. Тут пусть разработчик прояснит.

Re: Получение Реестра НН

Додано: 12 жовтня 2018, 13:08
isnach
Это реально что б сделали интересно, существенно бы ускорило мне загрузку документов, а то месяц грузит почти 2 часа.

А на прямую кто-то работал с базой firebird медка?