Получение подписанного документа через API GetDocSign

Відповісти
daaap
Повідомлень: 23
З нами з: 15 листопада 2018, 16:53

Получение подписанного документа через API GetDocSign

Повідомлення daaap » 15 листопада 2018, 17:12

Здравствуйте Коллеги!

Вызов функции GetDocSign вызывает мертвое зависание медка на сервере. Серверный вариант.
Кто-нибудь пользовался? Есть задача перетаскивать подписанные документы и хранить у себя.
Снимок.PNG
Снимок.PNG (6.13 Кіб) Переглянуто 10902 разів

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

Re: Получение подписанного документа через API GetDocSign

Повідомлення Inkognito » 15 листопада 2018, 17:18

....
Востаннє редагувалось 15 листопада 2018, 17:24 користувачем Inkognito, всього редагувалось 3 разів.

daaap
Повідомлень: 23
З нами з: 15 листопада 2018, 16:53

Re: Получение подписанного документа через API GetDocSign

Повідомлення daaap » 15 листопада 2018, 17:23

Ну оно то да, нормально. Просто медок вешается.
Тут скорее всего скажут по делу либо кто реально пробовал, либо разработчики

PetroP
Повідомлень: 718
З нами з: 22 січня 2015, 18:50

Re: Получение подписанного документа через API GetDocSign

Повідомлення PetroP » 15 листопада 2018, 18:21

Совсем не рассчитывал, что АПИ, став платным, настолько ухудшится...

Евгений Радзиевский
Повідомлень: 452
З нами з: 04 лютого 2015, 11:54

Re: Получение подписанного документа через API GetDocSign

Повідомлення Евгений Радзиевский » 16 листопада 2018, 10:50

daaap, замечание передано разработчикам и принято для рассмотрения

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

Re: Получение подписанного документа через API GetDocSign

Повідомлення Inkognito » 16 листопада 2018, 11:55

Евгений Радзиевский, зверніть увагу розробників також на проблему API:
https://forum.medoc.ua/viewtopic.php?f= ... 68#p181068

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Получение подписанного документа через API GetDocSign

Повідомлення Белокопытов Геннадий » 16 листопада 2018, 12:21

Inkognito
Спасибо, этот момент также проверяем и будут внесены доработки по необходимости

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

Re: Получение подписанного документа через API GetDocSign

Повідомлення Белокопытов Геннадий » 21 листопада 2018, 13:27

daaap писав:
15 листопада 2018, 17:12
Здравствуйте Коллеги!
Вызов функции GetDocSign вызывает мертвое зависание медка на сервере
По указанному вами примеру, выполнили проверку у нас - зависание клиент-серверного варианта программы не происходило. Предварительно создали НН, РК, Счет подписали и по ExDocId метод отдал подписанный документ в base64.
Просьба уточнить какие документы и в каком количестве вы пытаетесь выбрать. Вышлите также лог программы.

daaap
Повідомлень: 23
З нами з: 15 листопада 2018, 16:53

Re: Получение подписанного документа через API GetDocSign

Повідомлення daaap » 27 березня 2019, 16:18

Белокопытов Геннадий писав:
21 листопада 2018, 13:27
daaap писав:
15 листопада 2018, 17:12
Здравствуйте Коллеги!
Вызов функции GetDocSign вызывает мертвое зависание медка на сервере
По указанному вами примеру, выполнили проверку у нас - зависание клиент-серверного варианта программы не происходило. Предварительно создали НН, РК, Счет подписали и по ExDocId метод отдал подписанный документ в base64.
Просьба уточнить какие документы и в каком количестве вы пытаетесь выбрать. Вышлите также лог программы.
Спасибо Геннадий! К сожалению я тогда зафиксировал данный факт и поехали дальше.
Сейчас уже не упомню какой из документов - Счет или Акт
Выбрать пытался один документ по идентификатору, зависание сразу и происходило.
Но видимо проблема крылась в Клиент-Серверном режиме, когда в базе 30 предприятий и миллион документов.
Когда вернусь к этому вопросу - я обязательно повторю тест метода и отпишусь

daaap
Повідомлень: 23
З нами з: 15 листопада 2018, 16:53

Re: Получение подписанного документа через API GetDocSign

Повідомлення daaap » 26 лютого 2020, 11:06

Добрый день снова.
Продвигаемся дальше. функция GetDocSign не зависает - отрабатывает. В чем были проблемы с ней ранее - не знаю. Прошло время, обновления, были выполнены регламенты какие-то на сервере и т.д.

Теперь по функциональности этой функции.

1. Эксперимент с документом в учетной системе, которого НЕТ в Медок. (по ExDocID – зовнішній ідентифікатор облікової системи)
вызов

sign = App.GetDocSigning();
СтрокаBase64 = sign.GetDocSign(0,ID,4); - с параметром 4 - підписаний PDF документ

возвращает ПУСТУЮ СТРОКУ. Тут вопросов нет. Документа в МЕДОК нет - значит пусто. ОК.

Но вызов

sign = App.GetDocSigning();
СтрокаBase64 = sign.GetDocSign(0,ID,3); - с параметром 3 - підписаний XML, так як він зберігається у M.E.Doc

возвращает непустую строку с непонятным для меня содержимым.
Хотя насколько я понимаю, также должно быть пусто, т.к. документа также НЕТ В МЕДОК (по заданному идентификатору ExDocID)


Уточню, что используется уникальный идентификатор 1С, которого железно случайно не будет в МЕДОК.

В итоге, вопрос: почему функция GetDocSign с третьим параметром "3" возвращает непустую строку если документа по указанному идентификатору ExDocID нет в МЕДОК.

daaap
Повідомлень: 23
З нами з: 15 листопада 2018, 16:53

Re: Получение подписанного документа через API GetDocSign

Повідомлення daaap » 26 лютого 2020, 11:37

1. документ которого нет в системе получается что не нужно пытаться читать указанными функциями.
Разобрался что предварительно нужно проверить существование документа функцией
GetSendSTTByExDocID

С этим разобрался, она возвращает что документ не обнаружен и на этом все.

2. Эксперимент в документом который только передан в МЕДОК и с ним не выполнялись никакие дальнейшие действия.
Функция GetSendSTTByExDocID обнаруживает его нормально, но дальнейший вызов

sign = App.GetDocSigning();
СтрокаBase64 = sign.GetDocSign(0,ИД,1); с любыми параметрами от 1 до 4

возвращает пустую строку, т.е. получить неподписанный документ в виде XML получается что нельзя.

Т.к. задачи получать XML черновиков нет, пока это не проблема. Если это нормальное поведение, то ОК.

Gora Kornev
Повідомлень: 105
З нами з: 26 вересня 2018, 07:46

Re: Получение подписанного документа через API GetDocSign

Повідомлення Gora Kornev » 26 лютого 2020, 11:42

daaap писав: возвращает непустую строку с непонятным для меня содержимым.
XML_BASE64 = sign.GetDocSign( 0, ИД, ПовФайлФорм );
Если XML_BASE64 = Неопределено или XML_BASE64 = "" Тогда
Сообщить("Документ знайдено але він не підписаний!");
Возврат(0);
КонецЕсли;
ДвійковаЕКСМЛ = Base64Значение(XML_BASE64);
СЕКСЕМЕЛ = ПолучитьСтрокуИзДвоичныхДанных (ДвійковаЕКСМЛ,"windows-1251");
Парсер = Новый ЧтениеXML;
Парсер.УстановитьСтроку(СЕКСЕМЕЛ);
Построитель = Новый ПостроительDOM;
Документ = Построитель.Прочитать(Парсер);

daaap
Повідомлень: 23
З нами з: 15 листопада 2018, 16:53

Re: Получение подписанного документа через API GetDocSign

Повідомлення daaap » 26 лютого 2020, 13:19

Белокопытов Геннадий писав:
21 листопада 2018, 13:27
daaap писав:
15 листопада 2018, 17:12
Здравствуйте Коллеги!
Вызов функции GetDocSign вызывает мертвое зависание медка на сервере
По указанному вами примеру, выполнили проверку у нас - зависание клиент-серверного варианта программы не происходило. Предварительно создали НН, РК, Счет подписали и по ExDocId метод отдал подписанный документ в base64.
Просьба уточнить какие документы и в каком количестве вы пытаетесь выбрать. Вышлите также лог программы.
После нескольких экспериментальных вызовов функций, перестало работать.
Функция
СтрокаBase64 = sign.GetDocSign(0,ИД,2);

вызвала зависание сеанса МЕДКА на клиенте и на 100% загрузку сервера - похоже и там висяк.
Логи сервера прикладываю.

Это вызов для загрузки цифрового образа подписанного исходящего документа АКТ
Несколько раз функция отработала нормально - выдала двоичные данные, их нормально удалось записать в хранилище 1С как файлы.
Но потом все зависло. Рестартанули сервер МЕДОК и запланировали воспроизвести проблему на вечер.
LOG.rar
(65.53 Кіб) Завантажено 5 разів

daaap
Повідомлень: 23
З нами з: 15 листопада 2018, 16:53

Re: Получение подписанного документа через API GetDocSign

Повідомлення daaap » 26 лютого 2020, 18:40

Проблема локализована

функция с 3-м параметром со значениями "4" или "3" отрабатывает нормально.
А с 3-м параметром со значением "2" -вешают сервер

СтрокаBase64 = sign.GetDocSign(0,ИД,2);

Т.к. меня пока устраивают те режимы что работают, на этом останавливаюсь.
Для разработчиков могу предоставлять какую-либо информацию

Відповісти

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