Содержание:
1. Вариант авторизации через отпечаток сертификата на сервере 1С 8.3
2. Вариант сетевой авторизации через клиентский сеанс
3. Логика получения документа pdf-файла
Модуль системы Диадок позволяет не только обмениваться электронными документами, подключаясь к системе ЭДО, но и теми файлами, которые прикреплены к этим документам. Кроме того, с использованием этого модуля можно получить разные виды печатных форм документов с отметками ЭДО. Однако не все потребности пользователей покрываются типовым функционалом.
В статье будут рассмотрены особенности получения документов pdf-файлов печатных форм с сервера Диадок 1С с использованием двух вариантов авторизации: через отпечаток сертификата на сервере 1С 8.3 и через клиентский сеанс.
Постановка задачи
К документу 1С, сопоставленному с документом Диадок, нужно прикрепить pdf-файл печатной формы - картинка с отметками оператора ЭДО такого вида:
Диадок хранит прикрепленные файлы в справочнике Диадок_ХранениеДанных, но проблема в том, что там они хранятся в формате xml: отдельно файлы с содержанием, отдельно файлы с подписями.
Требуемую печатную форму пользователь может получить по кнопке «Получить печатную форму» из формы входящего пакета модуля ДиадокПро.
По этой кнопке формируется обращение к серверу Диадок, а результат представляется страницей с печатной формой, открытой в интернет-браузере.
Для такого обращения необходимо иметь контекст сеанса, авторизованного на сервере Диадок, иначе оно будет квалифицировано как несанкционированный доступ и игнорировано.
1. Вариант авторизации через отпечаток сертификата на сервере 1С 8.3
Для автоматической сетевой авторизации Диадок рекомендует:
· сертификат электронной подписи установить на сервер 1С 8.3;
· отпечаток сертификата указать в настройках основного модуля для организации: элемент организации → закладка «Прочие настройки» → поле «Отпечаток сертификата на сервере 1С».
Получаем контекст авторизованного сеанса:
где ОсновнойМодуль – это модуль обработки ДиадокПро (Diadok_НомерВерсии.epf)
К этой авторизации можно обращаться в серверном контексте, например, из регламентного задания. А в самом регламентном задании уже организовать логику получения pdf-файла и прикрепления его к документу 1С 8.
Но если заказчик вводит ограничение и не будет размещать сертификат электронной подписи на сервер 1С, тогда остается вариант использовать авторизацию клиентского сеанса.
2. Вариант сетевой авторизации через клиентский сеанс
Пользователь открывает форму ДиадокПро и авторизуется на ней. Из этой открытой формы авторизованный клиентский контекст можно получить следующим образом:
Процедуру получения печатной формы привязываем к подходящей «клиентской кнопке» на форме.
Т.к. параллельно решалась задача сопоставления документов 1С и Диадок, и уже к сопоставленным документам – получение и прикрепление pdf-файлов печатных форм, то привязку сделали к кнопке «Выполнить регламентные задания». Эта кнопка вызывается из основной формы ДиадокПро через «Настройка – Сервисные функции»:
3. Логика получения документа pdf-файла
В обработчике, вызываемом регламентным заданием (из сервера) или по кнопке «Выполнить регламентные задания» (из клиента):
· Получаем КонтекстСеанса одним из описанных выше способов (через отпечаток сертификата на сервере 1С либо через клиентский сеанс).
· Получаем двоичные данных pdf-файла печатной формы по ссылке ДокументаДиадок.
· Сохраняем полученные двоичные данные в справочник Диадок_Документы.
· Далее этот файл печатной формы можно выбирать наряду с другими сохраненными файлами Диадок. Например, таким запросом.
· Можно обрабатывать как угодно.
Задача решена.
Итак, в статье рассмотрены:
· особенности получения документов pdf-файлов печатных форм с сервера Диадок в 1С;
· два варианта получения авторизации на сервере Диадок (через отпечаток сертификата на сервере 1С 8.3 и через клиентский сеанс).
Специалист компании ООО «Кодерлайн»
Борисенко Игорь