Визуализация электронной подписи на документе Adobe PDF с указанием положения

15.05.22

Функциональные - Документооборот и делопроизводство (СЭД)

Делать визуализацию по ГОСТ Р 7.0.97-2016 исходящего документа в формате MS Word мы уже умеем. А если пришел входящий документ в виде картинки или в формате Adobe PDF подписанный ЭЦП, что будем делать? Итак, набив руку на предыдущих работах, готов замахнуться на визуализацию ЭП на документах Adobe PDF и графических файлах.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Визуализация электронной подписи на документе Adobe PDF с указанием положения для версии КОРП:
.cfe 280,65Kb ver:1.0.3.1
46
46 Скачать (5 SM) Купить за 3 050 руб.
Визуализация электронной подписи на документе Adobe PDF с указанием положения для версии ПРОФ:
.cfe 226,92Kb ver:1.П.3.1
5
5 Скачать (5 SM) Купить за 3 050 руб.

Давно ходил вокруг решения данного вопроса и всё никак не получалось придумать каким образом пользователь будет определять куда ставить штамп (или штампы) ЭП при визуализации. Документ ведь может быть любым, в любом графическом формате, любой ориентации и любого разрешения. Значит машина не сможет сама выполнить требования п. 5.23 ГОСТ Р 7.0.97-2016, по части размещения штампа там, где в обычном документе размещается подпись. Решение пришло неожиданно в виде урока по javascript на тему перемещения картинки по web-странице мышкой. Сразу скажу, что javascript для меня не родной и, возможно, существует более оптимальные и красивые решения.

Алгоритм работы следующий:

  1. исходный файл на сервере конвертируется в набор изображений;
  2. формируется набор превьюшек изображений для формы указания положений штампов (по умолчанию ширина превьюшки 200 точек);
  3. на сервере формируются изображения штампов ЭЦП, для которых тоже создаются превьюшки;
  4. набор превьюшек и массив данных ЭЦП передаётся на клиент;
  5. на клиенте с помощью интерактивной формы задаётся положение штампов ЭЦП на документе (все штампы на одном листе, чтобы не усложнять);
  6. на сервере файлы штампов совмещаются с файлом нужного листа документа;
  7. все листы объединяются в файл формата Adobe PDF (для однообразия);
  8. полученный файл добавляется к карточке документа.

Вся работа с изображениями идёт с использованием программы ImageMagick, использовал версию 7.0.10-Q8 (Q16 не рекомендую, т. к. разницы в нашем случае нет, а нагрузка на сервер возрастает).

Размещение штампов на документе осуществляется на клиенте в специальной форме, на которой в поле HTML документа формируется web-страничка с превью листа документа, превью штампа (или штампов), который можно двигать мышкой. Для удобства работы с несколькими подписями справа выводится субъект ЭП. Файл визуализации всегда создаётся в формате Adobe PDF и автоматически добавляется в карточку входящего или исходящего документа. Там есть один момент, механизм по перетаскиванию картинки по web-страничке корректно работает только если размер страницы меньше или равен размеру окна (нет полос прокрутки), по этому сначала идёт измерение размера окна браузера и потом масштабирование превью листа документа под этот размер. Однозначный костыль, но работает исправно.

Все настройки находятся в процедуре ИнициализацияНастроекПоложения() общего модуля ВЭПД_ОбщегоНазначенияВызовСервера (он там один). Там указывается разрешение изображений, на которые разбивается исходный файл, ширина превью листов документа для передачи на клиент, размеры штампа ЭП (надо брать с запасом, т. к. длина серийного номера сертификата бывает разной), имя и размер шрифта надписей на штампе. Многие аспекты обработки изображений с использованием ImageMagick раскрыты в моих предыдущих публикациях (тут и тут).

Команды и пункты меню в формах документов создаются динамически, соответственно название команды в меню нужно искать с процедуре ВЭПД_ПриСозданииНаСервереПосле() для форм. Сейчас команда называется «Создать файл визуализации (произвольный документ)», т. к. существует похожая по функционалу и названию команда из другого моего расширения.

Расширение тестировалось на платформе версии 8.3.17.1851 в конфигурации Документооборот государственного учреждения, редакция 2.1 (2.1.28.12).

UPD: 22.09.2021 добавлена работа с внутренними документами, изменено название меню, функции из форм перенесены в общий модуль.

UPD: Текущая версия протестирована на новых конфигурациях 1С:Документооборот (проверялось на ДГУ (2.1.29.16 и КОРП 2.1.30.4)

UPD: Добавлен вариант для версии ПРОФ, там есть некоторые нюансы при подключении расширения к конфигурации, адаптация проводилась на версии 2.1.29.18

ЭЦП ЭП визуализация подпись электронная 7.0.97-2016

См. также

Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    109504    130    5    

102

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

96000 руб.

11.06.2015    58042    36    20    

45

SALE! 30%

Перенос данных 1C Учет документов Системный администратор Программист Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Бесшовная интеграция с 1С:Документооборот (КОРП или ПРОФ) - вот что обеспечит Вам и Вашим сотрудникам оперативный доступ и продуктивную работу с документами в учётной системе 1С на базе "1С:Бухгалтерия предприятия 3.0 ПРОФ". Бесшовный обмен и связь позволяют экономить до 60% времени на поиск и согласование первичной документации (актов, счетов-фактур, накладных), не говоря уже о других полезных функциональных возможностях: создании и запуске бизнес-процессов, работе с электронной почтой, штрихкодировании документов и многом другом.

30000 руб.

23.05.2017    57453    36    68    

43

ЭДО и ОФД Учет документов Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. С помощью комплексного отчета по ошибкам в ЭДО позволяет выявить и исправить все возможные ошибки - ошибочно сопоставленные документы, не подписанные документы, подписанные, но не загруженные в 1С документы. Автоматически сопоставляет не сопоставленные между собой документы. Может работать по расписанию и присылать отчет о состоянии архива/по ошибкам на почту. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 3-х летний опыт 40+ клиентов.

14880 руб.

17.12.2018    46169    66    61    

79

Email рассылки Взаиморасчеты Акт сверки Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Данная обработка позволяет сократить объем ручных операций, выполняемых ежемесячно бухгалтером или его помощником за счет автоматизации систематического процесса.

7800 руб.

12.02.2019    33560    27    24    

26

Печатные формы Учет документов Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Управленческий учет Платные (руб)

Приложение для быстрого создания макетов печатных документов, заполняемых из 1С:Предприятие, без привлечения программистов и запуска конфигуратора. Шаблон готовится в редакторе MS Word, отлично освоенном офисными служащими. Так, на подготовку нового шаблона договора купли продажи со спецификацией потребуется 25 минут. Приложение будет полезно, если Вы работаете со множеством Word-шаблонов или если Вам надо часто создавать новые шаблоны. Есть сертификат "1С: Совместимо!". Версия ПРОФ доступна в виде расширения.

2000 руб.

05.09.2017    93271    67    100    

101
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. capitan 2603 27.04.21 09:13 Сейчас в теме
Я бы только за наименование плюс поставил )

Документооборот из коробки не умеет визуализировать подпись в пдф ?
2. soulner 471 27.04.21 10:06 Сейчас в теме
(1) умеет, но не по ГОСТу, 1С повсеместно игнорируют п. 5.23 ГОСТ Р 7.0.97-2016. Так что, хотите ГОСТ, качайте расширение, не хотите, не качайте.
3. e770ac 18.06.21 14:31 Сейчас в теме
Добрый день.
Добавил расширение на Корп версию.
Почему при создании файла теряется исходное разрешение файла.? Причем очень очень сильно.
6. soulner 471 18.06.21 18:10 Сейчас в теме
(3) Причина в том, что разрешение принудительно устанавливается в 200dpi. Я посчитал, что этого достаточно (даже много). В настройках можно эти данные поменять, где находятся настройки описано в статье.
4. e770ac 18.06.21 15:19 Сейчас в теме
У вас написано что на произвольном документе. На файле mxl не дает. Вордовский так же
5. soulner 471 18.06.21 18:07 Сейчас в теме
(4) Да уж, с одной стороны из описания понятно, что не на произвольном, а только на изображениях и PDF. А с другой не поспоришь, в названии стоит слово "произвольный". Подумаю, как переименовать статью. Для файлов MS Word есть другое расширение https://infostart.ru/public/1179881/
7. user1647001 22.09.21 00:19 Сейчас в теме
хорошо бы еще для внутренних документов расширить данный функционал
8. soulner 471 22.09.21 10:06 Сейчас в теме
(7) Добавил необходимый функционал и ещё пару изменений по мелочи.
user1647001; +1 Ответить
9. user1647001 22.09.21 13:23 Сейчас в теме
(8) спасибо большое, только что-то позицию штампа установить не могу на внутреннем документе.. на превью подвинуть в какое -либо место не получается, а если сразу нажать "сформировать", то будет ошибка "позиция штампа не устанавливалась, закрыть без формирования документа? да/нет"
и если файл подписан двумя / тремя разными эцп, то визуализируется одна два / три раза
10. zabaluev 465 02.11.21 16:06 Сейчас в теме
Здравствуйте.

Получаю такую ошибку при визуализации:
Ошибка конвертации файла
{ВизуализацияЭЦППроизвольныеДокументы ОбщийМодуль.ВЭПД_ОбщегоНазначенияВызовСервера.Модуль(32)}: ВызватьИсключение "Ошибка конвертации файла";
{ВизуализацияЭЦППроизвольныеДокументы Справочник.ВнутренниеДокументы.Форма.ФормаЭлемента.Форма(27)}: НастройкиПоложения = ВЭПД_ОбщегоНазначенияВызовСервера.ИнициализацияНастроекПоложения(


Запускается команда с таким сообщением:

"C:\Program Files\ImageMagick-7.1.0-Q16-HDRI\magick.exe" convert -density 200 -units PixelsPerInch "C:\Users\USR1CV8\AppData\Local\Temp\v8_1075_94.pdf" "C:\Users\USR1CV8\AppDa
convert: FailedToExecuteCommand `"gswin64c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "
-r200x200" -dPrinted=false "-sOutputFile=C:/Users/ZABALU~1/AppData/Local/Temp/magick-2vQr9ibpJNSlilBu0ectOu-YYFNQornC%d" "-fC:/Users/ZABALU~1/AppData/Local/Temp/magick-5anjzDfH1O6k-ImAvLnv-lO0ApvzZy3K" "-fC:/Us
ers/ZABALU~1/AppData/Local/Temp/magick-oE-mIlJu7qttjpuIIIx7HI5xsBDz-ZK8"' (The system cannot find the file specified.
) @ error/delegate.c/ExternalDelegateCommand/516.
convert: PDFDelegateFailed `The system cannot find the file specified.
' @ error/pdf.c/ReadPDFImage/705.
convert: no images defined `C:\Users\USR1CV8\AppData\Local\Temp\v8_1075_95\image_%06d.jpg' @ error/convert.c/ConvertImageCommand/3322.
12. soulner 471 15.05.22 11:47 Сейчас в теме
(10) Не хватает Ghostscript, его использует ImageMagic для работы с PDF
11. YA_310135855 11.05.22 17:46 Сейчас в теме
Платформа: 1С:Предприятие 8.3 (8.3.20.1710)
Конфигурация: Документооборот 8 ПРОФ, редакция 2.1 (2.1.30.4) (http://v8.1c.ru/doc8/)
Copyright © ООО "1C-Софт", 2009-2021. Все права защищены
(http://www.1c.ru)
Режим: Файловый (без сжатия)
Приложение: Тонкий клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
Вариант интерфейса: Такси

Ошибки:
--------------------------------------------------------------------------------
11.05.2022 19:46:04
ВизуализацияЭЦППроизвольныеДокументы (1.0.3.1): Критичная: Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта Язык.Русский не совпадает со значением в расширяемой конфигурации
13. soulner 471 16.05.22 11:49 Сейчас в теме
(11) для версии ПРОФ сделана специальная адаптация расширения
14. user1351932 02.10.23 12:44 Сейчас в теме
Добрый день.
После открытия файла визуализации через Adobe Acrobat выходит ошибка Недостаточно данных для изображения, как-то это можно исправить или нужно редактор менять?
15. soulner 471 02.10.23 13:50 Сейчас в теме
(14) Добрый день. Попробуйте открыть получившийся файл в текстовом шестнадцатеричном редакторе, внизу на скрине, как это выглядит у меня. Там в заголовке должна быть версия PDF, название файла, имя программы в которой он создан вперемешку с крокозябрами. Можно попробовать открыть в другой программе, браузеры некоторые умеют открывать pdf.
Прикрепленные файлы:
16. user1351932 02.10.23 14:38 Сейчас в теме
(15) в браузере открывается корректно. через редактор - версия PDF 1.7
Прикрепленные файлы:
17. soulner 471 02.10.23 14:56 Сейчас в теме
(16) Видимо у вас старый Adobe Reader, который не понимает версию файлов 1.7. Я не нашёл, как в команде magic convert указать версию pdf-файла, в которую будут преобразованы изображения. Говорят есть такая возможность в GhostScript (тут), но я в своих решениях его не использую. Попробуйте обновить программу просмотра.
18. user1351932 03.10.23 08:14 Сейчас в теме
(17) скачиваем последнюю версию редактора и ситуация та же
19. soulner 471 03.10.23 11:52 Сейчас в теме
(18) Я могу вам предложить только попробовать другую версию ImageMagick, т.к. за формирование pdf-документа отвечает именно она.
20. user1351932 03.10.23 16:20 Сейчас в теме
(19) Благодарю! Действительно, проблема была в старой версии ImageMagick.
21. BAG211270 5 26.07.24 15:03 Сейчас в теме
Добрый день. А подпись будет только на последней странице многостраничного pdf файла? Или на каждой?
22. soulner 471 26.07.24 15:06 Сейчас в теме
(21) Добрый. На какую установите, на такой и будет. Там мышкой позиционируется печать куда нужно
23. BAG211270 5 26.07.24 15:31 Сейчас в теме
(22) Я правильно понимаю что если я на каждой странице размещу подпись, то она и выведется на каждой? И учитывается ли размещение страницы книжная/альбомная? хотя бы по первой странице?
24. soulner 471 26.07.24 15:34 Сейчас в теме
(23) Вы на одной странице размещаете подпись. Нажимаете Ок и всё. Нет возможности разнести подписи или одну подпись по раздым страницам.
25. BAG211270 5 26.07.24 15:38 Сейчас в теме
(24) А по разметке страницы книжная/альбомная? Учитывается?
26. soulner 471 26.07.24 15:39 Сейчас в теме
(25) Да. Из PDF-файла создаётся набор картинок, они имеют ту же ориентацию, что и страницы документа.
27. BAG211270 5 30.07.24 11:13 Сейчас в теме
Сергей, добрый день.

А как можно с Вами связаться?
Оставьте свое сообщение