Визуализация электронной подписи на исходящих документах в соответствии с ГОСТ Р 7.0.97-2016. Финальная версия
Функциональные - Документооборот и делопроизводство (СЭД)
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
| Наименование | Скачано | Купить файл | По подписке PRO |
|---|---|---|---|
|
Визуализация электронной подписи на исходящих документах в соответствии с ГОСТ Р 7.0.97-2016. Финальная версия., используем PDFTK:
.cfe 265,34Kb
74
|
74 | 2 500 руб. Купить | 1 SM Скачать |
|
Визуализация электронной подписи на исходящих документах в соответствии с ГОСТ Р 7.0.97-2016. Финальная версия., не используем PDFTK:
.cfe 265,36Kb
106
|
106 | 2 500 руб. Купить | 1 SM Скачать |
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
На момент написания этой статьи, алгоритм визуализации электронной подписи не изменился и остаётся актуальным для версий 2.1.15.4 и 2.1.16.1. Кому интересно, прошу под спойлер.
Алгоритм визуализации следующий. В общем макете «ШаблонОтметкиЭП»содержится картинка, в которую с помощью ImageMagick впечатываются данные о серийном номере сертификата, субъекте и сроке действия сертификата.
Тут сразу 2 нюанса хочу отметить:
- ImageMagick нужен свежий, который запускается не командой «convert.exe», а «magick.exe convert», причём ошибку о несоответствии версий вы получить только если в персональных настройках работы с файлами вы не меняли имя программы по умолчанию, оставив «convert.exe»;
- у сертификатов, выданных на организацию, в качестве имени субъекта (CN, Соммon Name) указывается организация, а вот в полях фамилия (SN), имя и отчество (GN) , как раз то, что нам надо для выполнения п. 5.23 ГОСТа. Если в тексте файла есть метка «ВставитьЭП», то вместо неё вставляется полученная картинка, а если этой метки нет, то картинка вставляется в документ в угол, который указан в настройках.
За вставку отвечает соответственное содержимое двух общих макетов «ВставкаИзображенияВместоТегаВDocx» и «ВставкаИзображенияЭПСУказаниемПоложенияDocx».
Вернёмся ещё к ImageMagick. Координаты текстовых элементов для вставки в шаблон указываются в функции «СоздатьОтметкуЭП()» общего модуля «РаботаСЭП» относительно левого верхнего угла изображения. Там же указывается размер шрифта надписей (последний параметр функции «НаложитьСтроки()» общего модуля «РаботаСКартинками»). Цвет текста можно поменять в параметре -fill функции «НаложитьСтроки()». Также хочу отметить, что геометрические размеры изображения после вставки в MS Word определяются элементами cx и cy, которые выражены в каких-то странных единицах, которые в коде 1С называются EMU (English Metrick Units). Я уже всё посчитал и подогнал, так что если размер шаблона не будет изменён, то всё будет красиво.
Без дополнительных доработок визуализация ЭЦП, предложенная 1С по умолчанию не жизнеспособна. При общении по электронной почте, в письмо вставляется не файл с подписью, а его визуализированная версия. Т.е. документ в редактируемом формате со штампом ЭП. Вашему контрагенту ничего не мешает дописать нужную информацию (допустим в договор) и отправить документ дальше. Когда обман вскроется, вы, конечно, сможете доказать, что отправляли документ с другим содержанием, но учитывая российские реалии это можно доказывать долго. Некоторые серьёзные министерства (Минкомсвязь и Минпромторг например) печатают в штампе надпись не «Документ подписан электронной подписью» (как указано в ГОСТе), а «Подлинник электронного документа подписанного ЭП хранится в ...». Наверное догадываются о чём-то.
Что можно сделать? Предлагаю формировать визуализацию документа в формате Adobe PDF и накладывать на него защиту. Я сразу оговорюсь, мне известно, что если у документа Adobe PDF разрешена печать, то снять с него защиту можно путём печати на виртуальном pdf-принтере, но есть несколько мыслей:
- в моём варианте разрешена только черновая печать, так что документы будут различаться;
- при некоторых вариантах документооборота, можно запретить печать;
- для злоумышленников это дополнительное лишнее действие, которое невозможно совершить по ошибке и оно подтверждает преступный умысел.
Попробуем наложить ограничения на использование файла визуализации. Мы вынуждены разрешить печать документа с визуализацией подписи, так как предполагаем, что документ у корреспондента может рассматриваться руководством в бумажном виде. Воспользуемся для этого бесплатным программным обеспечением PDFTK Free.
Программа (на момент написания статьи версии 2.02) представляет из себя консольную утилиту и графическую оболочку. В описании к данной утилиты сказано, что опытные пользователи (power users) могут использовать консольную утилиту. Мы естественно опытные, какие же ещё.
Среди публикаций на нашем сайте я находил обёртку для консольной утилиты PDFTK на 1С, в виде внешней обработки, там исполняемый файл лежал в макете и выгружался во временную папку для использования. Очень удобно, но запрещено текущим лицензионным соглашением. Может раньше было можно, не знаю.
Так что качаем программу с официального сайта, ставим на компьютер, где осуществляется визуализация подписываемых документов. Если процедура визуализации не сможет найти утилиту pdftk.exe, то файл в формате Adobe PDF будет всё равно создан, но пользователю будет выведено предупреждение о невозможности наложить дополнительную защиту. Путь к утилите зашит прямо в коде, т. к. по умолчанию инсталлятор ставит программу в одну папку: «C:\Program Files (x86)\PDFtk\bin» для 64-х битных систем.
Расширение проверено на конфигурации 1С:Документооборот государственного учреждения 2.1.15.4 и 2.1.16.1. Нет под рукой КОРП версии, но почти уверен, что взлетит.
Учитывая спорность наложения защиты, выкладываю два варианта расширения — с поддержкой pdftk и без. В версии без наложения защиты код просто закомментирован и его можно активировать.
Его тоже можно заставить создавать файлы PDF. Для этого используется параметр командной строки --convert-to. В расширении убираем весь код, от момента получения файла до запуска утилиты pdftk.
Я тестировал, у меня запустилось с такой строкой: C:\Program Files (x86)\LibreOffice\program\soffice.exe --headless --convert-to pdf:writer_pdf_Export "ТУТ_ИМЯ_ИСХОДНОГО_ФАЙЛА" --outdir "ТУТ_ДИРЕКТОРИЯ_ДЛЯ РЕЗУЛЬТАТА"
Как формировать и запускать консольные команды и проверять результат выполнения можно подсмотреть тут же в коде для утилиты PDFTK.
P.S. некоторые идеи, реализованные в расширении предложены пользователем ignor (они отмечены в тексте).
UPD: Механизм визуализации можно использовать совместно с возможностями отправки и приёма файлов с ЭЦП по почте.
UPD 26.01.2021: исправлены некоторые ошибки, проверена работоспособность на версии 2.1.27.1
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Бухгалтер Пользователь Руководитель проекта 1С:Предприятие 8 Управленческий учет Платные (руб)
Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:Документооборот! Покупайте в Инфостарт и получайте 15% бонусов на наши услуги, сервисы и мероприятия!
63100 руб.
19.02.2016 116493 169 5
1С:Предприятие 8 Платные (руб)
"1С:Архив" – это универсальная система для надежного долговременного хранения документов с гарантией юридической значимости на неограниченный срок. Решение разработано на основе нормативно-правовых актов по архивному делу, поддерживает операции хранения документов: от попадания в архив до уничтожения, и не имеет ограничений на объем хранимых данных. "1С:Архив" сопровождается методологической поддержкой в виде организационных документов по хранению, входящих в состав "Комплекта нормативных документов" к "Методике управления документами и совместной работой", разработанной специалистами фирмы "1С". Использование "1С:Архива" позволяет организовать единое хранилище всех бумажных и электронных документов из разных информационных систем, вести архивный учет в соответствии с требованиями Росархива и снизить нагрузку на учетные системы. С 1 апреля 2026 года стоимость изменится на 14%, успейте купить решение по цене 2025 года!
117000 руб.
24.10.2022 8764 17 1
SALE! 35%
Загрузка и выгрузка в Excel Учет документов Распознавание документов и образов Бухгалтер Пользователь 1С:Предприятие 8 1С 8.3 1С 8.5 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)
Программа для распознавания сканов или фотографий товарных документов в 1С. Просто выбираете файл (PDF, XML, JPG, DOC, XLS, HTML) и нажимаете кнопку "Распознать и загрузить".
8540
5551 руб.
04.06.2019 128005 384 183
ЭДО и ОФД Учет документов 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время – организует полностью соответствующий закону архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. Выявляет все возможные ошибки в ЭДО и помогает в несколько кликов их исправить. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 5-ти летний опыт 60+ клиентов.
19520 руб.
17.12.2018 52328 86 68
Печатные формы Учет документов Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Управленческий учет Платные (руб)
Приложение для быстрого создания макетов печатных документов, заполняемых из 1С:Предприятие, без привлечения программистов и запуска конфигуратора. Шаблон готовится в редакторе MS Word, отлично освоенном офисными служащими. Так, на подготовку нового шаблона договора купли продажи со спецификацией потребуется 25 минут. Приложение будет полезно, если Вы работаете со множеством Word-шаблонов или если Вам надо часто создавать новые шаблоны. Есть сертификат "1С: Совместимо!". Версия ПРОФ доступна в виде расширения.
2000 руб.
05.09.2017 99543 80 107
WEB-интеграция Взаиморасчеты Аналитик Бухгалтер Руководитель проекта 1С:Предприятие 8 1С:Документооборот Бухгалтерский учет Управленческий учет Платные (руб)
Расширение для конфигурации 1С:Документооборот 8 КОРП, позволяющее с помощью сервиса "1СПАРК риски" проверять благонадежность контрагентов непосредственно из программы 1С.
7320 руб.
23.05.2018 31987 20 10
Печатные формы Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)
Расширение для печати договоров с приложением из шаблонов. Быстрая подготовка заполненных договоров без ручного заполнения. Возможность использования дополнительных реквизитов контрагентов и номенклатуры Быстрое сохранение файлов договоров и отправка по электронной почте. Решение в Реестре отечественного ПО.
15000 руб.
20.04.2016 70513 199 107
Роли и права Системный администратор 1С:Предприятие 8 1С:Документооборот Управленческий учет Платные (руб)
Внешняя обработка позволит быстро добавить участников в любое количество документов, заменить целиком набор участников или удалить лишь некоторых из них для одного объекта или группы документов.
6000 руб.
23.10.2015 67303 121 25
Есть отсоединенная, проверяется отчётом, и проверять ее должно лицо получившее документ. Мы такие визуализированна документы отправляем назад контрагентам и требуем от них исходный файл + подпись (sig).
Вот подняли мы Microsoft Enhanced CryptoProvide, выпустили сертификат, настроили 1С Документооборот.
Подписали под юзером какой-нибудь документв в 1С.
Правильно я понимаю: теперь из 1С можно выгрузить саму подпись и сам вордовский файл. При этом в самом вордовском файле нет никакой инфы (кроме штампа) что он подписан, т.е. его можно поменять.
Вопрос: можно ли как-то првоерить что файл ворд был изменен имея в наиличие ps7 файл выгруженный из 1С?
Спасибо.
1. при первом просмотре подписанного файла 1С:Документооборот создаёт версию, в которую помещает штамп для визуализации ЭП, файл при этом меняется и уже не соответствует подписи;
2. при выгрузке вместе с ЭП (это отдельная команда в меню) выгружается оригинальный файл и подпись (или много) к нему;
3. откреплённая подпись, выгружаемая из программы, соответствует стандарту PKCS#7 и может быть проверена где угодно (единственный момент, расширение лучше поменять на sig, это привычней), подпись, выданную авторизованным УЦ можно проверить, например, тут ;
4. Вы можете взять документ, загрузить в 1С, потом отдельно загрузить подпись и если на рабочей станции (или на сервере) настроена цепочка для проверки сертификата, то данная подпись будет признана действительной, если документ не был изменён.
Я по этому и предлагаю слать pdf-с визуализацией, т.к. документ MS Word могут отредактировать, а средства для проверки подлинности документа остаются только на нашей стороне. 1С не умеет отправлять файл и подпись при использовании механизма внутренней почты. Вроде как умеет через лёгкую. Но у меня не получилось на одном рабочем месте запустить и такую и такую.
Думаю, что сами 1С эту функцию не внедрят т.к. она частично отнимет хлеб у сервиса 1С:ЭДО в части пересылки произвольных документов.
Добрый день, коллеги. Помогите разобраться. Сделал вывод собственного ШтампаЭПЦ в ворд. После подписания, если открыть документ, штамп виден в ворде. Когда скачиваем документ вместе с подписью ЭЦП, то в ворде штампа нет. При попытке создать ПДФ из подписанного вордовского - такая же беда, штампа нет. Помогите, люди добрые. Что не так? Куда копать?
А вы ПДФ из подписанного документа создаёте в ДО или просто из Ворда?
В ДО, программно, средствами Ворда
(111)
Когда именно? При открытии на форме документа?
Руководитель хочет следующее: ему в Задачи мне прилетает док-т на согласование или утверждение, в нем находятся Вордовские док-ты, при нажатии Согласовать или Утвердить, он хочет, чтоб подписались Ворды и создались и также подписались ПДФки, самое главное со штампами. Так вот, сделал на тестовой кнопку, принудительно подписываю Ворды, и создаю ПДФки, но штампы как ветром сдуло.
Штамп ставится непосредственно в документ MS Word, и уже потом он преобразуется в PDF и накладывается защита.
Место, куда ставится штамп, определяется или настройками положения ЭП (Общие настройки - настройки электронной подписи - вкладка Штамп ЭП) или наличием в документе текстовой метки "ВставкаЭП" (эта метка может быть на любой странице)
Тут сразу 2 нюанса хочу отметить:
ImageMagick нужен свежий, который запускается не командой «convert.exe», а «magick.exe convert», причём ошибку о несоответствии версий вы получить только если в персональных настройках работы с файлами вы не меняли имя программы по умолчанию, оставив «convert.exe»;
а в коде 1с стоит convert
ПолныйПуть = Константы.ПутьКПрограммеКонвертацииPDF.Получить();Если ПолныйПуть = "convert.exe" Тогда
УдалитьВременныеФайлы(ФайлыКУдалению);
ВызватьИсключение НСтр("ru = 'В настройках программы указан полный путь к устаревшей версии ImageMagick (convert.exe).'");
КонецЕсли;В переменной ПолныйПуть должен быть путь к файлу magick.exe, потом к нему добавляется команда convert и параметры -pointsize %1 -draw ""%2"" %3 %4.
Это делается в 2-х процедурах общего модуля "РаботаСКартинками": НаложитьСтроки - параметры и ЗапуститьImageMagick - непосредственно запуск.
Причина в том, что необходимо указать координаты штампа в документе. Документ PDF имеет слой с изображением, но разрешение его заранее не известно и координаты штампа и его масштаб посчитать не получается, соответственно простой путь, а именно подготовить с помощью ImageMagic pdf-файл со штампом и прозрачным фоном, а потом с помощью утилиты pdftk.exe с ключом stamp их слепить вместе не катит.
Есть второй путь:
1. нарезаем файл pdf полистно с использованием утилиты pdftk и команды burst;
2. все листы с помощью ImageMagik переводим в формат jpeg (тут появляется возможность прочитать их свойства и понять размеры);
3. с помощью ImageMagik формируем печать и масштабируем её под размер листа;
4. с помощью ImageMagik ставим печать куда надо (тут основной вопрос);
5. с помощью ImageMagik из файлов jpeg делаем pdf.
Я пометил основную проблему данного алгоритма. Куда ставить штамп? Когда используется текстовый редактор, то есть текстовая метка, а какая метка может быть на картинке?
У нас на предприятии есть два пожелания к вставке штампа в исторически хранящийся PDF
По положению штампов в документе: Вставлять штамп/штампы вниз на последнюю страницу. Насколько я понимаю в нашей ситуации речь идёт об отсканированных подписанных договорах, то есть это всегда А4. Отсюда можно взять некий стандартный размер штампа за основу и раскинуть их скажем на генерируемую PDF страницу с неким шагом снизу вверх. Я не думаю что ЭЦП может быть столько что мы перекроем лист формата А4
По прозрачности штампа/штампов: Крайне желательно чтобы сквозь штампы проглядывался бы оригинальный документ.
По эксплуатации: Хотелось бы, но данное требование не обязательное, чтобы пользователь мог сам двигать в некоей программе просмотра (отсюда и интерес к Adobe Acrobat DC) штампы располагая их как ему удобнее.
Что единственное что у меня получилось в PDF так это адаптировать код написанный в SDK на VBA к 1С
gApp = Новый COMОбъект("AcroExch.App");
gApp.CloseAllDocs();
gPDDoc = Новый COMОбъект("AcroExch.PDDoc");
Если gPDDoc.Open(PDFIN) Тогда
jso = gPDDoc.GetJSObject();
Page = gPDDoc.AcquirePage(0);
pageRect = Page.GetSize(); //' now use pageRect.x and/or pageRect.y for stamp placement
stampRect = Новый COMSafeArray("VT_I4", 4);
stampRect.SetValue(0,100); //' taking a shortcut here
stampRect.SetValue(1,100);
stampRect.SetValue(2,200);
stampRect.SetValue(3,200);
annot = jso.AddAnnot();
props = annot.getprops();
props.Type = "Stamp";
annot.setProps(props);
props = annot.getprops();
props.Page = 0;
props.rect = stampRect;
props.Author = "My Name";
props.contents = "My Contents";
props.AP = "Approved";// ' this would be your own AP string - "Approved" uses one of the standard stamps
annot.setProps(props);
КонецЕсли;
и это дало вставку их штампа с их предзашитой текстовкой
"подготовить с помощью ImageMagic pdf-файл со штампом и прозрачным фоном, а потом с помощью утилиты pdftk.exe с ключом stamp их слепить вместе"
Да, так можно.
1. Делаем документ MS Word или LibreOffice, размещаем штампы, как нам надо.
2. Перед листом со штампами делаем нужное количество пустых листов - это важно!
3. Сохраняем этот документ в формате PDF.
4. Команда выглядит так:
pdftk.exe ИМЯ_ВХОДНОГО_ФАЙЛА multistamp ИМЯ_ФАЙЛА_СО_ШТАМПАМИ output ИМЯ_ВЫХОДНОГО_ФАЙЛА
P.S.параметр stamp накладывает одностраничный pdf на каждую страницу входного документа, а нам надо один раз в нужное место, по этому используем multistamp.
А ещё хотел Вас коллега спросить ан предмет видели ли Вы тут нижеследующую публикацию и что Вы по её поводу думаете если видели
В целом, спасибо за пояснения по работе с ImageMagic, полезно.
Наверное, надо доводить до функционального заказчика идею, что для документов, подписанных электронно и архив должен быть электронный. А уж если надо на бумагу, в дело и в железный шкаф на 50 лет - тогда будьте добры, возьмите ручку и поставьте подпись, а потом и в дело можно. Хотя букву закона в эту сторону изучать не приходилось, руководствуюсь только собственной логикой. У нас - электронный архив, pdf со штампами хранятся только для успокоения пользователей, что документ подписан и с ним все хорошо. А сами документы лежат рядом вместе с отпечатками.
Федеральный закон от 22.10.2004 N 125-ФЗ (ред. от 28.12.2017) "Об архивном деле в Российской Федерации" в ст. 3 говорит нам что такое архивный документ. Оказывается это материальный носитель с информацией. Отлично. Идём в ст. 22 и смотрим сколько лет нам нужно хранить материальные носители. Видим там цифры 20, 75 и даже 100 лет. Далее ищем материальные носители, которые могут гарантированно хранить информацию 100 лет. И что? Теоретически такие есть. Есть оптические накопители, которые вроде могут, есть сведения, что твердотельные накопители могут, если их не трогать. Но гарантию сохранности информации на государственном уровне никто не даёт.
Вот так. Значит бумага.
Моя публикация называется "Визуализация ЭП" и ни на что большее я не претендую, о чём выше писал.
А то, что по электронной и бумажной почте ходят документы просто со штампом ЭП - это факт, его можно отрицать, но он от этого на исчезнет.
Я в этой реальности живу и работаю, если вы живёте в другой, где документы пересылаются только с ЭП, а вы на своей стороне в своей информационной системе их проверяете, то я за Вас очень рад.
Его наверное можно улучшить, хотя и замедлить за счёт версии ворда который умеет читать pdf
Прочитали им оригинальный pdf и записав его как docx наставили штампов
Сохранили как вспомогательный pdf и опцией мультиштамп пдфтк получили выходной pdf со штампами в нужных местах
У меня странная ситуация с PDF пишет что:
Magick с командной строкой:
"C:\Program Files\ImageMagick-7.0.9-Q16\magick.exe" convert -strip -density 150 -quality 0 C:\Users\USR1CV82\AppData\Local\Temp\v8_C819_2c\src.pdf C:\Users\USR1CV82\AppData\Local\Temp\v8_C819_2c\res.png
Это все тянется из функции ПреобразоватьPdfВPng
При нажатии на пункт меню "ЭП и шифрование - Создать файл визуализации" выходит сообщение "Файл не получен на клиент, работа не возможна". Подскажите пжл, как исправить?
А у вас остальные файлы нормально открываются?
Дело в том, что я файл на клиент передаю общей процедурой РаботаСФайламиКлиент.ПолучитьФайлВерсииВРабочийКаталог(), ей все файлы передаются. Проверьте настройки рабочего каталога, может там месте нет. У меня нет других мыслей.
Добрый день!
Сообщение возникает при работе через веб-браузер. В тонком клиенте такого сообщения не возникло, но возникла ошибка, описанная в сообщении 60. Я применил рекомендацию из сообщения 64. Но мой квест на этом не закончился, см сообщение 68.
Продублирую сообщение 68 тут. Может подскажете, что мне проверить?
После нажатия на пункт меню "Создать файл визуализации" проходит несколько секунд, затем в правом нижнем углу появляется сообщение "Идет сохранение файла ИмяФайла.pdf. Пожалуйста, подождите...". Но сообщение пропадает, а pdf-файла в карточке не появляется. Подскажите пжл, у вас была такая проблема с созданием pdf-файла?
По веб-клиенту понял, спасибо за ответ.
А по ситуации, когда pdf-файл не появляется после нажатия на "Создать файл визуализации" сможете подсказать? Здесь речь идет о тонком клиенте.
А вам надо проверить вот что:
- последней командой моего расширения является вызов функции ДобавитьИзФайловойСистемыСРасширениемСинхронно() общего модуля РаботаСФайламиКлиент.
- там есть команда формирования текста уведомления, которое вы видите и вывод этого текст командой Состояние(ТекстСостояния);
- дальше начинается непосредственная передача файла на сервер и создание карточки файла.
Вот тут вам надо пройтись отладчиком и посмотреть выполнение и не забыть заглянуть в журнал регистрации, т.к. код работы с хранилищем и создания версии находится внутри оператора "Попытка... Исключение" и если ошибка там, то вы увидите её в журнале.
Документооборот 8 КОРП, редакция 2.1 (2.1.24.1), 1С:Предприятие 8.3 (8.3.16.1224)
Использую обработку:
Визуализация электронной подписи на исходящих документах в соответствии с ГОСТ Р 7.0.97-2016. Финальная версия., не используем PDFTK:
В расширении изменил режим совместимости на 8.3.14
Указал использование magick.exe. типовой штамп вставляется
В демо-базе имеется исходящий документ, подписанный ЭЦП (1 - 02\14). Подпись оставил только у файла.
При создании документа визуализации выдается ошибка:
Произошла исключительная ситуация (Microsoft Word): Приложению Word не удалось сохранить данный файл, так как он используется другим процессом.
(C:\...\Договор аренды оборудования.docx)
{КоррекцияЭП ОбщийМодуль.КЭП_ВизуализацияЭЦПКлиент.Модуль(70)}: WordДокумент.SaveAs(ВременныйФайлDocx, 16);
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2371)}: ВыполнитьОбработкуОповещения(Обработчик, Результат);
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2983)}: ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2930)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловЗаверше
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2842)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловПередач
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2691)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловПродолж
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2617)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловЗапуск(ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2504)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайлов(
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2480)}: ПолучитьФайлВерсииВЛокальныйКэшФайловЗапуск(ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(706)}: ПолучитьФайлВерсииВЛокальныйКэшФайлов(
{КоррекцияЭП ОбщийМодуль.КЭП_ВизуализацияЭЦПКлиент.Модуль(31)}: РаботаСФайламиКлиент.ПолучитьФайлВерсииВРабочийКаталог(
{КоррекцияЭП Справочник.ИсходящиеДокументы.Форма.ФормаЭлемента.Форма(45)}: КЭП_ВизуализацияЭЦПКлиент.СоздатьВизуализациюЭЦП(ЭтаФорма);
по причине:
Произошла исключительная ситуация (Microsoft Word): Приложению Word не удалось сохранить данный файл, так как он используется другим процессом.
(C:\...\Договор аренды оборудования.docx)
Произошла исключительная ситуация (Microsoft Word): Метод или свойство недоступны, поскольку эту команду нельзя использовать в режиме чтения.
{КоррекцияЭП ОбщийМодуль.КЭП_ВизуализацияЭЦПКлиент.Модуль(98)}: МСВорд.Documents.Close();
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2371)}: ВыполнитьОбработкуОповещения(Обработчик, Результат);
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2983)}: ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2930)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловЗаверше
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2842)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловПередач
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2691)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловПродолж
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2617)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловЗапуск(ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2504)}: ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайлов(
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(2480)}: ПолучитьФайлВерсииВЛокальныйКэшФайловЗапуск(ПараметрыВыполнения);
{ОбщийМодуль.РаботаСФайламиКлиент.Модуль(706)}: ПолучитьФайлВерсииВЛокальныйКэшФайлов(
{КоррекцияЭП ОбщийМодуль.КЭП_ВизуализацияЭЦПКлиент.Модуль(31)}: РаботаСФайламиКлиент.ПолучитьФайлВерсииВРабочийКаталог(
{КоррекцияЭП Справочник.ИсходящиеДокументы.Форма.ФормаЭлемента.Форма(45)}: КЭП_ВизуализацияЭЦПКлиент.СоздатьВизуализациюЭЦП(ЭтаФорма);
по причине:
Произошла исключительная ситуация (Microsoft Word): Метод или свойство недоступны, поскольку эту команду нельзя использовать в режиме чтения.
{КоррекцияЭП ОбщийМодуль.КЭП_ВизуализацияЭЦПКлиент.Модуль(98)}: МСВорд.Docum
При открытии файла Word штамп с макетом из расширения добавляется
Проблема была в том, при получении данных исходного файла для выгрузки в каталог, устанавливался параметр - только на чтение. Исправил:
ДанныеФайла.НаЧтение = Ложь;
РаботаСФайламиКлиент.ПолучитьФайлВерсииВРабочийКаталог(...........................
Проблема ушла.
Небольшое замечание - остаются три временных файла: два pdf и docx. Добавил в код их удаление после добавления к карточке документа.
Добрый день!
У меня возникла аналогичная ошибка и описанный Вами способ (ДанныеФайла.НаЧтение = Ложь;) помог ее устранить. Спасибо!
Но ошибка исчезла, а pdf-файл так и не появился.
После нажатия на пункт меню "Создать файл визуализации" проходит несколько секунд, затем в правом нижнем углу появляется сообщение "Идет сохранение файла ИмяФайла.pdf. Пожалуйста, подождите...". Но сообщение пропадает, а pdf-файла в карточке не появляется. Подскажите пжл, у вас была такая проблема с созданием pdf-файла?
Очень смущает пункт:
1. при первом просмотре подписанного файла 1С:Документооборот создаёт версию, в которую помещает штамп для визуализации ЭП, файл при этом меняется и уже не соответствует подписи;
Можно ли как-то сделать так, чтобы в файл .docх, прикрепленный к документу, штамп ЭП не вставлялся, а вносился только в файл pdf.
Предполагается отправлять контрагенту письмом три файла: файл подписи, подписанный файл .docх и pdf со штампом.
Хотелось бы оставить возможность контрагенту на своей стороне проверить соответствие подписи и файла.
Но я написал расширение, которое делает это автоматически
Есть ещё автоматический приём письма с ЭЦП
2. если документ подписан, то файл не вставляется. Файл надо вставлять в служебные файлы или как новую версию файла.
3. файлы пдф обходит стороной.
странно размещать три обработки с разными не доработками добавляя в конце префиксы финальная версия, полная автоматизация и тд
2. Это не правда или я вас не правильно понял
3. Так и должно быть. В сообщении № 13 я описал проблему вставки подписи в PDF. Сейчас я знаю, как её решить, но мне особо не нужно и по этому руки не доходят.
"Обработки" принципиально разные (версия 2 и 3.1), за неповторяемостью следят модераторы (по этому нет версии 3)
For example,
-fill blue
-fill "#ddddff"
-fill "rgb(255,255,255)"
Но вот какое дело. Если в качестве основы брать документ word без картинок внутри (только текст) - печать выходит черно-белая. Достаточно вставить картинку в этот же документ - печать цветная.
Подскажите пожалуйста, как сделать, чтобы ВСЕГДА была цветная? Не первый день исследую код .... никак не могу разгадать :(
Я на внутренние документы переделал. Проблем не было.
1. Есть у меня в расширении в модуле РаботаСЭП функция КЭП_СоздатьОтметкуЭП(), она возвращает путь к изображению штампа ЭП, надо начать смотреть цвет отсюда;
2. Далее файл изображения гуляет в виде двоичных данных и в процедуре СохранитьИзображениеВоВнутреннейСтруктуреDocx() общего модуля ВизуализацияЭПВызовСервера записывается на диск во временную папку с распакованными данными файла docx по пути /word/media/image_последний номер.jpeg.
Думаю, что после строки
КартинкаШК.Записать(ВременнаяПапкаДляРазархивирования + "/word/media/Image" + Строка(ИДкартинки + 1) + ".jpeg");надо остановить выполнение и посмотреть на этот файл, цветной ли он.
3. В конце функции КЭП_ВставитьИзображениеЭПВФайлDocxСУказаниемПоложения() из расширения общего модуля ВизуализацияЭПВызовСервера нужно проверить файл MS Word, цветная ли там печать.
4. В процедуре ПоказатьДокументСЭЦППродолжение() общего модуля расширения КЭП_ВизуализацияЭЦПКлиент смотрим как сформировался файл PDF.
5. В той же процедуре проверяем работу утилиты pdftk (если устанавливали).
Напишите на каком этапе теряется цвет у штампа, будем думать дальше.
Я модифицировал расширение и с начала конвертирую ворд в пдф и после этого подписываем файл.
Следовательно используются функции наложения штампа в пдф, а не ворд.
Т.е. именно на стороне imagemagick происходит потеря цвета.
Решил иначе.
Оказалось, что есть более специализированный конвертер, написанный в рамках проекта XPDFReader. Он работает быстро и делает изображения в формате PNG с нужным разрешением.
Информацию подчерпнул в этой публикации
Спасибо большое за помощь и участие.
Мне помогла добавка параметра -colorspace sRGB в команде composite (в функции НаложитьШтамп() общего модуля РаботаСКартинками - штамп по итогу цветной
#Вставка
Параметры = СтрШаблон("composite -colorspace sRGB -dissolve 80 -gravity %1 -geometry %2%3 %4 %5 %6",
ПоложениеШтампаСтрока,
ОтступX,
ОтступY,
ИмяФайлаШтампа,
ПутьPng,
ПутьНовогоФайла);
#КонецВставки
#Удаление
Параметры = СтрШаблон("composite -dissolve 80 -gravity %1 -geometry %2%3 %4 %5 %6",
ПоложениеШтампаСтрока,
ОтступX,
ОтступY,
ИмяФайлаШтампа,
ПутьPng,
ПутьНовогоФайла);
#КонецУдаления Показать(95)
Не импортируется в документооборот 8.3.17
Возможно имя файла указано не верно или указан файл другого формата.
почему ?
Подскажите, можно ли вывести в штамп ЭП название организации в кавычках? Если да, то как это правильно сделать? При печати с кавычками выходит ошибка при попытки запуска приложения "Ошибка при вызове ImageMagick с командной строкой, Возможно нарушена структура командной строки".
НовыйВладелецФайлаЭтоДокумент = ДелопроизводствоКлиентСервер.ЭтоДокумент(ВладелецФайла);
Если НовыйВладелецФайлаЭтоДокумент Тогда
НовыйВладелецФайлаПодписанЭП = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВладелецФайла, "ПодписанЭП");
Если НовыйВладелецФайлаПодписанЭП Тогда
ВызватьИсключение НСтр("ru = 'Нельзя установить владельцем файла подписанный документ.'");
КонецЕсли;
КонецЕсли;
Не сталкивались с таким?
Документооборот государственного учреждения, редакция 2.1 (2.1.28.14)
Перешли с Windows на RedOS
В логе получаем такую ошибку
Ошибки: WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert"
convert: Postscript delegate failed `[ghostscript library 9.54] -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=png16malpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r72x72' -dPrinted=false '-sOutputFile=/tmp/magick-sQZygXNrh_1BycGCfJorbjNYvhHDlZoc%d' '-f/tmp/magick-Q_uRyXI9IaacQwfOwgDZmYBFFltEwiEu' '-f/tmp/magick-kWEx_MrT17PchJp_BEsESw58xzAweA7D'': Unknown device: png16malpha
@ error/ghostscript-private.h/InvokeGhostscriptDelegate/185.
convert: no images defined `/tmp/v8_fZS6js_1894/test.jpg' @ error/deprecate.c/ConvertImageCommand/3368.
Ghostscript не поддерживает устройство png16malpha.
Что не так?
Не можете подсказать - что то исправить нужно?
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 1179881
Создание 15.01.20 15:30
Обновление 26.01.21 20:53
Просмотры 48893
Загрузки 180
Рейтинг
32
Комментарии 115
Код открыт Да
Рубрики Документооборот и делопроизводство (СЭД)
Кому Разработчик
Тип файла Расширение (cfe)
Платформа 1С:Предприятие 8
Конфигурация 1С:Документооборот
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)