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

Відповісти
Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

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

Повідомлення Inkognito » 03 листопада 2021, 11:05

СОМ технологія не може знайти документи ТТН, якщо точно вказати код 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()
Востаннє редагувалось 04 листопада 2021, 11:58 користувачем Inkognito, всього редагувалось 2 разів.

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

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

Повідомлення Medoc Man » 03 листопада 2021, 16:48

Метод GetPrimaryReestr по DocType 10072 возвращает 0 записей даже если документы с таким DocType существуют.
Однако при переборе "подокументно" эти документы видны.
+ у шаблона TTN тип 10105 вместо 10072, что видно и через COM, и в Реестре электронных документов (колонка "Тип").
1.jpg
1.jpg (166.65 Кіб) Переглянуто 685 разів
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
Человек-волшебник
Людина-чарівник
Wizard man

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

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

Повідомлення Inkognito » 03 листопада 2021, 19:39

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

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

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

Примітка: це явно розробник методу не включив в массив типів новий тип "ТТН" (10072). Правиться копіюванням.
Востаннє редагувалось 04 листопада 2021, 11:58 користувачем Inkognito, всього редагувалось 2 разів.

Medoc Man
Повідомлень: 864
З нами з: 07 червня 2018, 14:28
Звідки: Kiev

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

Повідомлення Medoc Man » 04 листопада 2021, 11:17

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

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

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

Повідомлення Inkognito » 04 листопада 2021, 11:19

Чудово, ми порозумілися 8-) Чекаємо на доопрацювання.

Inkognito
Повідомлень: 1067
З нами з: 14 січня 2012, 14:26

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

Повідомлення Inkognito » 09 червня 2022, 11:43

Актуально. Необхідно прописати використання типу з кодом "10072" в методі GetPrimaryReestr()

Відповісти

Повернутись до “Электронний документообіг”