MULTIDOC. Визначення виду

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

MULTIDOC. Визначення виду

Повідомлення Inkognito » 25 травня 2021, 15:44

Необхідно визначити вид документу MULTIDOC, для вхідних документів, програмно. Наприклад, є список:

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

Питання:
1) Чи це взагалі можливо, наприклад методом GetPrimaryReestr() - або комбінацією з іншими
2) Якщо ні, то чи можливо отримати програмно значення з поля "Найменування" (на скріні - крайнє справа). Спробуємо визначати за вмістом.

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

Re: MULTIDOC. Визначення виду

Повідомлення Medoc Man » 28 травня 2021, 11:22

1. У меня получилось только через комбинацию GetPrimaryReestr с OpenDocument(ByCode/ByExDocID).
Из GetPrimaryReestr я беру идентификатор (CardCode/ExDocID), затем по нему открываю документ (OpenDocument) и через обращение к датасету открытого документа забираю значение поля DOC_NAME.

2. Наверно, практичнее всего было бы просто добавить поле DOC_NAME в возвращаемый GetPrimaryReestr'ом датасет.
Но конструкция выше работает исправно, хотя и довольно много действий требуется, чтоб просто извлечь наименование документа.
Пріклад | Показать
1.jpg
1.jpg (151.38 Кіб) Переглянуто 669 разів
Різультат | Показать
2.jpg
2.jpg (324.23 Кіб) Переглянуто 596 разів
Востаннє редагувалось 28 травня 2021, 14:54 користувачем Medoc Man, всього редагувалось 1 раз.
Человек-волшебник
Людина-чарівник
Wizard man

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

Re: MULTIDOC. Визначення виду

Повідомлення Inkognito » 28 травня 2021, 12:10

DocName - те, що треба, дякую!
Офтоп | Показать
Далі будемо робити функцію пошуку в цьому значенні якихось читабельних значень. Тих контрагентів, хто вказує "Універсальний документ" будемо вчити нормальний текст вказувати.
Востаннє редагувалось 28 травня 2021, 12:45 користувачем Inkognito, всього редагувалось 1 раз.

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

Re: MULTIDOC. Визначення виду

Повідомлення Inkognito » 28 травня 2021, 12:30

В продовження теми: Тип "Інші документи" також необхідно ідентифікувати. Але вказаний код не спрацьовуює. Як визначити назву документу для типу "Інші документи"?

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

Полів DOC_NAME, DOCNAME - не знаходить (при спробі їх отримання Медок закривається)
//--------------------------------
Побажання на майбутнє: ідеально, щоб метод GetPrimaryReestr() повертав це поле. Видно, це єдине поле, яке дозволить хоч якось ідентифікувати тип вхідного документу. Наразі, ці два типи (мультидок, інші документи) портять всю статистику впровадження ЕДО у клієнта. "Невідомий тип документу", нікого не влаштовує, крім відправників, які полегшують собі роботу, а отримувач має потім проблему ідентифікації.
Для розуміння ситуації: компанія вирішила повністю перейти на ЕДО. Не тільки вихідні, але і вхідні документи. Наради відбувються часто. Періодично, показуючи статистику керівництву, виникає ситуація, умовно так: 20% - акти, 20% - накладні, 10% акти звіряння, 40% рахунки. І 10% невідомого типу (мультидок та інші документи). Керівництво бажає знати, що то за документи.

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

Re: MULTIDOC. Визначення виду

Повідомлення Medoc Man » 28 травня 2021, 14:50

Inkognito писав:
28 травня 2021, 12:30
В продовження теми: Тип "Інші документи" також необхідно ідентифікувати. Але вказаний код не спрацьовуює. Як визначити назву документу для типу "Інші документи"?
В Вашем примере, шаблон BADM_DU попросту не имеет поля DOC_NAME (DOCNAME или как-либо иначе). Это можно легко проверить, просто экспортировав описание полей шаблона.
Название, которое Вы видите в реестре - это сугубо название самого шаблона первичного документа, установленное автором (создателем) шаблона и оно фиксированное (т.е. не может быть изменено при заполнении документа - только при редактировании шаблона).

Для таких случаев, если название документа сильно требуется, можно ещё одним топорным способом его извлекать из метода GetTemplates, путём перебора всех шаблонов и фильтрации по чаркоду. Т.е. просто использовать наименование шаблона как наименование документа.
Но такой способ :!: непроизводителен :!: , и чем больше предприятию будет доступно шаблонов, тем дольше, соответственно, будет выполняться отбор.
Дополнил прошлый пріклад | Показать
1.jpg
1.jpg (325.87 Кіб) Переглянуто 602 разів
Різультат | Показать
2.jpg
2.jpg (440.07 Кіб) Переглянуто 597 разів
Человек-волшебник
Людина-чарівник
Wizard man

Відповісти

Повернутись до “Модуль «Інтеграція»”