Визуализация электронной подписи на исходящих документах в соответствии с ГОСТ Р 7.0.97-2016
Учетные задачи - Печатные формы
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Т.к. используется режим совместимости с версией платформы 8.3.8, то с расширениями не забалуешь. Будем конфигурацию менять, но только чуть-чуть.
Конкретно передо мной стояла задача по подписанию исходящих писем, но вы можете встроить визуализацию ЭП в другие документы. Исходящее письмо — это документ формата MS Word 2007 и выше, который представляет из себя zip-архив, где текст документа лежит в файле document.xml. Туда и будем добавлять визуализацию.
Идею реализации впечатывания чего-либо в документ Word подсмотрел в модуле ШтрихкодированиеСервер основной конфигурации. Там штрихкоды впечатывают и в старый формат MS Word и даже в Open Document.
Чтобы избежать необходимости точно позиционировать штамп с информацией об ЭЦП, решено было его сделать в виде фигуры с абсолютным позиционированием и автоматическим размером по содержимому (LibreOffice Writer автоматический размер не понимает). Для пущей красоты сделан слабенький градиент. Перед печатью положение штампа пользователь может отрегулировать самостоятельно. Если документ подписан несколькими подписями, то все они выводятся по 2 штуки в строку. Первоначальное позиционирование штампа производится с помощью настроек положения штрихкода, форма которых выводится принудительно.
Файл конфигурации, который нужно объединить с основной, содержит общий макет «ВставкаЭЦПСуказаниемПоложения», где содержится xml-код фигуры с текстом и два общих модуля, в которых реализован серверный и клиентский функционал.
Непосредственно в форме элемента справочника «Исходящие документы» необходимо создать команду «ВизулизацияЭЦП», и привязать её к функциональной опции «ИспользоватьЭлектронныеПодписи». Эту команду нужно разместить в группе «ФормаЭПИШифрование/ЭП», желательно установить свойство «ТолькоВоВсехДействиях».
В модуле формы добавляем 2 процедуры:
#Область ВизуализацияЭЦП
&НаКлиенте
Процедура ВизулизацияЭЦП(Команда)
// открываем форму настройки положения
ПараметрыНастроек = Новый Структура;
ПараметрыНастроек.Вставить("ЗаголовокФормы", НСтр("ru = 'Положение штампа ЭПЦ на странице'"));
ПараметрыНастроек.Вставить("РежимИспользованияНастроек", 1);
ПараметрыНастроек.Вставить("ЗапросОриентацииСтраницы", Ложь);
ОписаниеОповещения = Новый ОписаниеОповещения("ВизуализацияЭЦППродолжение", ЭтотОбъект);
ШтрихкодированиеКлиент.ПолучитьНастройкиШтрихкода(ПараметрыНастроек, ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ВизуализацияЭЦППродолжение(НастройкиШтрихкода, ДополнительныеПараметры) Экспорт
ВизуализацияЭЦПКлиент.ПоказатьДокументСЭЦП(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
Вот и всё! Всех поздравляю с ещё одним шагом в цифровую эпоху.
Вступайте в нашу телеграмм-группу Инфостарт