Сторінка 1 з 1

Пошук ТТН (GetPrimaryReestr). СОМ технологія

Додано: 03 листопада 2021, 11:05
Inkognito
СОМ технологія не може знайти документи ТТН, якщо точно вказати код docType=10072
Код | Показать
App = Новый COMОбъект("MEDOC.ZApplication");
primДокументы = App.GetPrimaryDocs();
docMove = "1";
docType = "10072"; //10105 10072
reestrNN = primДокументы.GetPrimaryReestr(docType, docMove,
НачалоДня(Дата(2021, 01, 01)), КонецДня(Дата(2021, 12, 31)));
Сообщить(reestrNN.RecordCount());
ЗображенняЗображення

Виглядає так, наче недоопрацювання методу GetPrimaryReestr()

Re: Пошук ТТН (GetPrimaryDocs). СОМ технологія

Додано: 03 листопада 2021, 16:48
Medoc Man
Метод GetPrimaryReestr по DocType 10072 возвращает 0 записей даже если документы с таким DocType существуют.
Однако при переборе "подокументно" эти документы видны.
+ у шаблона TTN тип 10105 вместо 10072, что видно и через COM, и в Реестре электронных документов (колонка "Тип").
1.jpg
1.jpg (166.65 Кіб) Переглянуто 814 разів
VBScript | Показать

Код: Виділити все

Set App = CreateObject("MEDOC.ZApplication")
Set PD = App.GetPrimaryDocs()

docDate = "03.11.2021"

docs10105Count = PD.GetPrimaryReestr(10105, 1, docDate, docDate).RecordCount
docs10072Count = PD.GetPrimaryReestr(10072, 1, docDate, docDate).RecordCount

detailsInfo = ""
Set Docs = PD.GetPrimaryReestr(-1, 1, docDate, docDate)
Docs.First()

Do While Not Docs.EOF
    charCode = Docs.Fields.Item("CHARCODE").Value
	
    If InStr(charCode , "TTN") > 0 Or _
       InStr(charCode , "1С82ВН") > 0 Then
          docInfo = "Документ " & charCode & " (DocType: " & Docs.Fields.Item("DOC_TYPE").Value  & ")"
	  detailsInfo = detailsInfo & docInfo & vbCrLf
    End If

    Docs.Next()
Loop

WScript.Echo "Кол-во документов с DocType 10105: " & docs10105Count & vbCrLf & _
             "Кол-во документов с DocType 10072: " & docs10072Count & vbCrLf & vbCrLf & _
             "Детали: " & vbCrLf & detailsInfo

Re: Пошук ТТН (GetPrimaryDocs). СОМ технологія

Додано: 03 листопада 2021, 19:39
Inkognito
1) Однако при переборе "подокументно" эти документы видны.
Не знущайтесь, будь ласка. Ви явно маєте знати (або здогадуватись), що при великій кількості документів прийдеться брати документи всіх типів, що неодмінно вплине на швидкодію, при великих обсягах (в мене якраз клієнт з великою кількістю найрізноманітніших документів).
Саме так і реалізовано зараз. В клієнта тисячі документів, і щоб знайти необхідну ТТН, витрачається купа часу. Бухгалтера попрацювали, і жаліються на швидкість. Якої холєри брати всі типи документів, якщо метод дозволяє встановити конкретний тип? Ваша пропозиція - це "костиль", який звичайно зараз і використовується, бо інакшого немає.
Ви ж розумієте, що це некоректна роботу методу GetPrimaryReestr(). Виправте, будь ласка.

2) Так, "TTN", має саме такий тип 10105, бо створювався дуже давно, коли ще типу "ТТН" не існувало. Але проблема в шаблонах з коректним типом. Можете створити новий шаблон ТТН, новий документ, і спробуйте його знайти використовуючі GetPrimaryDocs() з вказанням docType=10072

ЗображенняЗображення

Примітка: це явно розробник методу не включив в массив типів новий тип "ТТН" (10072). Правиться копіюванням.

Re: Пошук ТТН (GetPrimaryDocs). СОМ технологія

Додано: 04 листопада 2021, 11:17
Medoc Man
Inkognito, я писал это не столько для Вас, сколько для людей, которые будут это проявлять и передавать разработчику :)
Теперь им будет проявить ситуацию проще и возможно вопрос от этого решится быстрее.
Inkognito писав:
03 листопада 2021, 19:39
Ви ж розумієте, що це некоректна роботу методу GetPrimaryDocs().
Понимаю конечно. Только не GetPrimaryDocs(), а GetPrimaryReestr().

Re: Пошук ТТН (GetPrimaryDocs). СОМ технологія

Додано: 04 листопада 2021, 11:19
Inkognito
Чудово, ми порозумілися 8-) Чекаємо на доопрацювання.

Re: Пошук ТТН (GetPrimaryReestr). СОМ технологія

Додано: 09 червня 2022, 11:43
Inkognito
Актуально. Необхідно прописати використання типу з кодом "10072" в методі GetPrimaryReestr()