Отримати значення поля SIGNERINFO (вхідні документи)

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

Отримати значення поля SIGNERINFO (вхідні документи)

Повідомлення Inkognito » 14 квітня 2021, 22:23

Є поле "SIGNERINFO" у вхідних затверджених документів. Але отримати інформацію з нього неможливо (повертає пусте значення).

App = Новый COMОбъект("MEDOC.ZApplication");
док = App.OpenDocumentByCode("962779");
дс = док.DataSets("MAIN");
SIDE_CD_K = дс.FldVal("SIDE_CD_K"); //все ОК
SIGNERINFO = дс.FldVal("SIGNERINFO"); //пусто, хоча в документі при F11 маємо багато цікавої інформації

Питання: як отримати значення поля "SIGNERINFO" затверджених документів?

poltava_energy
Повідомлень: 717
З нами з: 13 червня 2012, 09:38

Re: Отримати значення поля SIGNERINFO (вхідні документи)

Повідомлення poltava_energy » 15 квітня 2021, 08:14

Inkognito писав:
14 квітня 2021, 22:23
Є поле "SIGNERINFO" у вхідних затверджених документів. Але отримати інформацію з нього неможливо (повертає пусте значення).

App = Новый COMОбъект("MEDOC.ZApplication");
док = App.OpenDocumentByCode("962779");
дс = док.DataSets("MAIN");
SIDE_CD_K = дс.FldVal("SIDE_CD_K"); //все ОК
SIGNERINFO = дс.FldVal("SIGNERINFO"); //пусто, хоча в документі при F11 маємо багато цікавої інформації

Питання: як отримати значення поля "SIGNERINFO" затверджених документів?
SIGNERINFO це об'єкт. Чи вірно отримувати значення об''єкта за допомогою FldVal?

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

Re: Отримати значення поля SIGNERINFO (вхідні документи)

Повідомлення Inkognito » 15 квітня 2021, 09:05

В переліку полів виглядає як звичайне поле. Відповідно, логічно отримати як звичайне поле:

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

Можливо, у Вас є ідеї як його отримати? Варіанти НЕ підійшли (не повертають потрібної інформації):

1) primДокументы = App.GetPrimaryDocs();
Квитан=primДокументы.GetDocKVT("", Формат(CardCode,"ЧГ="));

2) sign = App.GetDocSigning();
base64 = sign.GetDocSign(Формат(CardCode,"ЧГ="), "", 1); //2 та 3 також не дали результату

poltava_energy
Повідомлень: 717
З нами з: 13 червня 2012, 09:38

Re: Отримати значення поля SIGNERINFO (вхідні документи)

Повідомлення poltava_energy » 15 квітня 2021, 10:35

Inkognito писав:
15 квітня 2021, 09:05
Можливо, у Вас є ідеї як його отримати? Варіанти НЕ підійшли (не повертають потрібної інформації):
У мене немає ідей як його отримати, я навіть не знаю що це у вас за система та мова програмування.
Але по вашому прикладу мені чомусь здалося, що FldVal повертає значення потя простого типу на зразок integer або string.
А от SIGNERINFO це комплекний тип об'єкту, і можливо у вашій системі об'єкт можна отримати іншим чином.

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

Re: Отримати значення поля SIGNERINFO (вхідні документи)

Повідомлення Inkognito » 15 квітня 2021, 10:40

Мова програмування не має значення для технології СОМ, яку поставляє розробник. Відповідно, можна скористатись будь-якою мовою програмування, головне щоб СОМ технологія технічно могла повернути необхідну інформацію.
Дійсно цікава задача. "Без ста грамм не разобраться" (с)
Востаннє редагувалось 15 квітня 2021, 10:54 користувачем Inkognito, всього редагувалось 1 раз.

poltava_energy
Повідомлень: 717
З нами з: 13 червня 2012, 09:38

Re: Отримати значення поля SIGNERINFO (вхідні документи)

Повідомлення poltava_energy » 15 квітня 2021, 10:53

Inkognito писав:
15 квітня 2021, 10:40
Мова програмування не має значення для технології СОМ, яку поставляє розробник. Відповідно, можна скористатись будь-якою мовою програмування, головне щоб СОМ технологія технічно могла віддати інформацію.
Тоді логічно припустити, що розробник не зробив реалізацію для доступу до классу SIGNERINFO через COM :?

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

Re: Отримати значення поля SIGNERINFO (вхідні документи)

Повідомлення Inkognito » 20 квітня 2021, 14:55

Актуально. Необхіден коментар технічного фахівця розробника.

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

Re: Отримати значення поля SIGNERINFO (вхідні документи)

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

Inkognito писав:
20 квітня 2021, 14:55
Актуально.
Нашел в инструкции метод GetDocSignInfo(int cardCode, [string exDocID = ""]).
Единственное, что он мне не вернул из поля SIGNERINFO - это значение Time (видимо, когда была наложена подпись (дата и время)). Но это можно извлечь через GetDocKVT(ExDocID, CardCode) из поля OPERDATE (правда придётся ещё сопоставлять тип подписи (SIGNLEVEL) с типом операции (OPERTYPE), чтобы получать соответствующие подписи дату и время) и затем, при необходимости, связать всю полученную информацию воедино.
Пріклад | Показать
21.jpg
21.jpg (210.66 Кіб) Переглянуто 1026 разів
Різультат | Показать
2.jpg
2.jpg (665.62 Кіб) Переглянуто 1026 разів
Человек-волшебник
Людина-чарівник
Wizard man

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

Re: Отримати значення поля SIGNERINFO (вхідні документи)

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

"Человек-волшебник" - факт! Дякую, вийшло.

Відповісти

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