Получение подписанного документа через API GetDocSign
Получение подписанного документа через API GetDocSign
Здравствуйте Коллеги!
Вызов функции GetDocSign вызывает мертвое зависание медка на сервере. Серверный вариант.
Кто-нибудь пользовался? Есть задача перетаскивать подписанные документы и хранить у себя.
Вызов функции GetDocSign вызывает мертвое зависание медка на сервере. Серверный вариант.
Кто-нибудь пользовался? Есть задача перетаскивать подписанные документы и хранить у себя.
Re: Получение подписанного документа через API GetDocSign
....
Востаннє редагувалось 15 листопада 2018, 17:24 користувачем Inkognito, всього редагувалось 3 разів.
Re: Получение подписанного документа через API GetDocSign
Ну оно то да, нормально. Просто медок вешается.
Тут скорее всего скажут по делу либо кто реально пробовал, либо разработчики
Тут скорее всего скажут по делу либо кто реально пробовал, либо разработчики
Re: Получение подписанного документа через API GetDocSign
Совсем не рассчитывал, что АПИ, став платным, настолько ухудшится...
-
- Повідомлень: 452
- З нами з: 04 лютого 2015, 11:54
Re: Получение подписанного документа через API GetDocSign
daaap, замечание передано разработчикам и принято для рассмотрения
Re: Получение подписанного документа через API GetDocSign
Евгений Радзиевский, зверніть увагу розробників також на проблему API:
https://forum.medoc.ua/viewtopic.php?f= ... 68#p181068
https://forum.medoc.ua/viewtopic.php?f= ... 68#p181068
-
- Универсал (склонность - системные вопросы)
- Повідомлень: 10116
- З нами з: 13 січня 2012, 11:21
Re: Получение подписанного документа через API GetDocSign
Inkognito
Спасибо, этот момент также проверяем и будут внесены доработки по необходимости
Спасибо, этот момент также проверяем и будут внесены доработки по необходимости
-
- Универсал (склонность - системные вопросы)
- Повідомлень: 10116
- З нами з: 13 січня 2012, 11:21
Re: Получение подписанного документа через API GetDocSign
По указанному вами примеру, выполнили проверку у нас - зависание клиент-серверного варианта программы не происходило. Предварительно создали НН, РК, Счет подписали и по ExDocId метод отдал подписанный документ в base64.
Просьба уточнить какие документы и в каком количестве вы пытаетесь выбрать. Вышлите также лог программы.
Re: Получение подписанного документа через API GetDocSign
Спасибо Геннадий! К сожалению я тогда зафиксировал данный факт и поехали дальше.Белокопытов Геннадий писав: ↑21 листопада 2018, 13:27По указанному вами примеру, выполнили проверку у нас - зависание клиент-серверного варианта программы не происходило. Предварительно создали НН, РК, Счет подписали и по ExDocId метод отдал подписанный документ в base64.
Просьба уточнить какие документы и в каком количестве вы пытаетесь выбрать. Вышлите также лог программы.
Сейчас уже не упомню какой из документов - Счет или Акт
Выбрать пытался один документ по идентификатору, зависание сразу и происходило.
Но видимо проблема крылась в Клиент-Серверном режиме, когда в базе 30 предприятий и миллион документов.
Когда вернусь к этому вопросу - я обязательно повторю тест метода и отпишусь
Re: Получение подписанного документа через API GetDocSign
Добрый день снова.
Продвигаемся дальше. функция 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 нет в МЕДОК.
Продвигаемся дальше. функция 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 нет в МЕДОК.
Re: Получение подписанного документа через API GetDocSign
1. документ которого нет в системе получается что не нужно пытаться читать указанными функциями.
Разобрался что предварительно нужно проверить существование документа функцией
GetSendSTTByExDocID
С этим разобрался, она возвращает что документ не обнаружен и на этом все.
2. Эксперимент в документом который только передан в МЕДОК и с ним не выполнялись никакие дальнейшие действия.
Функция GetSendSTTByExDocID обнаруживает его нормально, но дальнейший вызов
sign = App.GetDocSigning();
СтрокаBase64 = sign.GetDocSign(0,ИД,1); с любыми параметрами от 1 до 4
возвращает пустую строку, т.е. получить неподписанный документ в виде XML получается что нельзя.
Т.к. задачи получать XML черновиков нет, пока это не проблема. Если это нормальное поведение, то ОК.
Разобрался что предварительно нужно проверить существование документа функцией
GetSendSTTByExDocID
С этим разобрался, она возвращает что документ не обнаружен и на этом все.
2. Эксперимент в документом который только передан в МЕДОК и с ним не выполнялись никакие дальнейшие действия.
Функция GetSendSTTByExDocID обнаруживает его нормально, но дальнейший вызов
sign = App.GetDocSigning();
СтрокаBase64 = sign.GetDocSign(0,ИД,1); с любыми параметрами от 1 до 4
возвращает пустую строку, т.е. получить неподписанный документ в виде XML получается что нельзя.
Т.к. задачи получать XML черновиков нет, пока это не проблема. Если это нормальное поведение, то ОК.
-
- Повідомлень: 105
- З нами з: 26 вересня 2018, 07:46
Re: Получение подписанного документа через API GetDocSign
XML_BASE64 = sign.GetDocSign( 0, ИД, ПовФайлФорм );daaap писав: возвращает непустую строку с непонятным для меня содержимым.
Если XML_BASE64 = Неопределено или XML_BASE64 = "" Тогда
Сообщить("Документ знайдено але він не підписаний!");
Возврат(0);
КонецЕсли;
ДвійковаЕКСМЛ = Base64Значение(XML_BASE64);
СЕКСЕМЕЛ = ПолучитьСтрокуИзДвоичныхДанных (ДвійковаЕКСМЛ,"windows-1251");
Парсер = Новый ЧтениеXML;
Парсер.УстановитьСтроку(СЕКСЕМЕЛ);
Построитель = Новый ПостроительDOM;
Документ = Построитель.Прочитать(Парсер);
Re: Получение подписанного документа через API GetDocSign
После нескольких экспериментальных вызовов функций, перестало работать.Белокопытов Геннадий писав: ↑21 листопада 2018, 13:27По указанному вами примеру, выполнили проверку у нас - зависание клиент-серверного варианта программы не происходило. Предварительно создали НН, РК, Счет подписали и по ExDocId метод отдал подписанный документ в base64.
Просьба уточнить какие документы и в каком количестве вы пытаетесь выбрать. Вышлите также лог программы.
Функция
СтрокаBase64 = sign.GetDocSign(0,ИД,2);
вызвала зависание сеанса МЕДКА на клиенте и на 100% загрузку сервера - похоже и там висяк.
Логи сервера прикладываю.
Это вызов для загрузки цифрового образа подписанного исходящего документа АКТ
Несколько раз функция отработала нормально - выдала двоичные данные, их нормально удалось записать в хранилище 1С как файлы.
Но потом все зависло. Рестартанули сервер МЕДОК и запланировали воспроизвести проблему на вечер.
Re: Получение подписанного документа через API GetDocSign
Проблема локализована
функция с 3-м параметром со значениями "4" или "3" отрабатывает нормально.
А с 3-м параметром со значением "2" -вешают сервер
СтрокаBase64 = sign.GetDocSign(0,ИД,2);
Т.к. меня пока устраивают те режимы что работают, на этом останавливаюсь.
Для разработчиков могу предоставлять какую-либо информацию
функция с 3-м параметром со значениями "4" или "3" отрабатывает нормально.
А с 3-м параметром со значением "2" -вешают сервер
СтрокаBase64 = sign.GetDocSign(0,ИД,2);
Т.к. меня пока устраивают те режимы что работают, на этом останавливаюсь.
Для разработчиков могу предоставлять какую-либо информацию