Отримати значення поля SIGNERINFO (вхідні документи)
Отримати значення поля SIGNERINFO (вхідні документи)
Є поле "SIGNERINFO" у вхідних затверджених документів. Але отримати інформацію з нього неможливо (повертає пусте значення).
App = Новый COMОбъект("MEDOC.ZApplication");
док = App.OpenDocumentByCode("962779");
дс = док.DataSets("MAIN");
SIDE_CD_K = дс.FldVal("SIDE_CD_K"); //все ОК
SIGNERINFO = дс.FldVal("SIGNERINFO"); //пусто, хоча в документі при F11 маємо багато цікавої інформації
Питання: як отримати значення поля "SIGNERINFO" затверджених документів?
App = Новый COMОбъект("MEDOC.ZApplication");
док = App.OpenDocumentByCode("962779");
дс = док.DataSets("MAIN");
SIDE_CD_K = дс.FldVal("SIDE_CD_K"); //все ОК
SIGNERINFO = дс.FldVal("SIGNERINFO"); //пусто, хоча в документі при F11 маємо багато цікавої інформації
Питання: як отримати значення поля "SIGNERINFO" затверджених документів?
-
- Повідомлень: 717
- З нами з: 13 червня 2012, 09:38
Re: Отримати значення поля SIGNERINFO (вхідні документи)
SIGNERINFO це об'єкт. Чи вірно отримувати значення об''єкта за допомогою FldVal?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" затверджених документів?
Re: Отримати значення поля SIGNERINFO (вхідні документи)
В переліку полів виглядає як звичайне поле. Відповідно, логічно отримати як звичайне поле:
Можливо, у Вас є ідеї як його отримати? Варіанти НЕ підійшли (не повертають потрібної інформації):
1) primДокументы = App.GetPrimaryDocs();
Квитан=primДокументы.GetDocKVT("", Формат(CardCode,"ЧГ="));
2) sign = App.GetDocSigning();
base64 = sign.GetDocSign(Формат(CardCode,"ЧГ="), "", 1); //2 та 3 також не дали результату
Можливо, у Вас є ідеї як його отримати? Варіанти НЕ підійшли (не повертають потрібної інформації):
1) primДокументы = App.GetPrimaryDocs();
Квитан=primДокументы.GetDocKVT("", Формат(CardCode,"ЧГ="));
2) sign = App.GetDocSigning();
base64 = sign.GetDocSign(Формат(CardCode,"ЧГ="), "", 1); //2 та 3 також не дали результату
-
- Повідомлень: 717
- З нами з: 13 червня 2012, 09:38
Re: Отримати значення поля SIGNERINFO (вхідні документи)
У мене немає ідей як його отримати, я навіть не знаю що це у вас за система та мова програмування.
Але по вашому прикладу мені чомусь здалося, що FldVal повертає значення потя простого типу на зразок integer або string.
А от SIGNERINFO це комплекний тип об'єкту, і можливо у вашій системі об'єкт можна отримати іншим чином.
Re: Отримати значення поля SIGNERINFO (вхідні документи)
Мова програмування не має значення для технології СОМ, яку поставляє розробник. Відповідно, можна скористатись будь-якою мовою програмування, головне щоб СОМ технологія технічно могла повернути необхідну інформацію.
Дійсно цікава задача. "Без ста грамм не разобраться" (с)
Дійсно цікава задача. "Без ста грамм не разобраться" (с)
Востаннє редагувалось 15 квітня 2021, 10:54 користувачем Inkognito, всього редагувалось 1 раз.
-
- Повідомлень: 717
- З нами з: 13 червня 2012, 09:38
Re: Отримати значення поля SIGNERINFO (вхідні документи)
Тоді логічно припустити, що розробник не зробив реалізацію для доступу до классу SIGNERINFO через COM
Re: Отримати значення поля SIGNERINFO (вхідні документи)
Актуально. Необхіден коментар технічного фахівця розробника.
Re: Отримати значення поля SIGNERINFO (вхідні документи)
Нашел в инструкции метод GetDocSignInfo(int cardCode, [string exDocID = ""]).
Единственное, что он мне не вернул из поля SIGNERINFO - это значение Time (видимо, когда была наложена подпись (дата и время)). Но это можно извлечь через GetDocKVT(ExDocID, CardCode) из поля OPERDATE (правда придётся ещё сопоставлять тип подписи (SIGNLEVEL) с типом операции (OPERTYPE), чтобы получать соответствующие подписи дату и время) и затем, при необходимости, связать всю полученную информацию воедино.
- Пріклад | Показать
- Різультат | Показать
Человек-волшебник
Людина-чарівник
Wizard man
Людина-чарівник
Wizard man
Re: Отримати значення поля SIGNERINFO (вхідні документи)
"Человек-волшебник" - факт! Дякую, вийшло.