Форум программистов, компьютерный форум, киберфорум
ВладимирСамохин
Войти
Регистрация
Восстановить пароль

Установка нескольких штампов электронной подписи в строго определенных местах файла docx

Запись от ВладимирСамохин размещена 19.07.2026 в 18:22
Показов 1506 Комментарии 0

(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах документа формата .docx? В этой статье рассмотрен вопрос, как провести более тонкую настройку 1С и шаблон ворд для решения этой задачи. Здесь будет описан вопрос, как я настраивал 1С и шаблон ворд для корректноого отображения штампов электронной подписи, и некоторые нюансы с которыми столкнулся я. Будет рассмотрен вопрос, настройки 1С:Документооборот 3.0 для корректной установки штампов электронной подписи ответственных сотрудников в файлах .docx.
Здесь не используется сервис "1С:Штамп".



1. разработка макета документа .docx
Я изначально делаю очень просто, делаю пустой файл, сохраняю его на диск.
Далее захожу в настройки вида документа перехожу в блок настройки создания документов, на закладке файлы, нажимаю "Добавить" и выбираю файл с диска (подготовленный пустой). Далее в поле "Настройка заполнения" перехожу по ссылке, чем открывается окно выбора реквизитов создаваемого вида документа, в котором устанавливаю флаги на реквизиты которые должны будут заполняться исходя из заполненных реквизитов карточки документа, прописываю скрипты заполнения если необходимо. Далее перехожу на закладку "Штампы ЭП" и устанавливаю флаг "Вставлять штампы ЭП" нажимаю кнопку "Готово". После этого открывается файл на редактирование. Изначально, когда отработал с ним 1С, файл получил необходимые поля формы заполнения которые уже сразу будут заполняться из карточки без каких либо дополнительных настроек.
https://www.cyberforum.ru/blog... 1784472356
Файл получился не красивый, но уже вполне рабочий. Осталось его только доработать в части размещения полей формы в нужных местах и сформировать записи, где должны будут располагаться штампы электронных подписей.


2. именование мест установки штампов:
В тех местах, где должен будет установлен штамп электронной подписи пишем слово, которое будет однозначно уникальным во всем документе, даже после заполнения пользователем. У меня это "ЭППервыйПодписант", "ЭПВторойПодписант" и "ЭПТретийПодписант”. Далее закрываем документ и завершаем редактирование файла.

3. переходим на закладку "Настройка обработки" и оформляем ее, добавляя действия которые будем брать при получении штампов. Действия должны быть "Подписание". Для тестов я сделал "ПервыйПодписант", "ВторойПодписант", "ТретийПодписант", у Вас будут другие.
https://www.cyberforum.ru/blog... 1784472356
Подробно рассматривать настройку обработки здесь не будем *это совсем другая история.

4. в основных реквизитах "Форма" документа выбираем "Электронная" в противном случае штампы не хотят устанавливаться.
5. после этого закрываем создаваемый вид документа с сохранением.
6. настройка заполнения документа в 1С:Документооборот 3.0
= переходим в настройки заполнения файлов
==находим нашу настройку и открываем ее.
===в закладке "Штампы ЭП" добавляем новые строки заполняя:
в поле "Какую строку заменить" прописываем уникальную строку записанную в файле, (у меня это "ЭППервыйПодписант", "ЭПВторойПодписант" и "ЭПТретийПодписант")
в поле "на что заменить" пишем следующее:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//изначально результат пустая строка
    РезультатОбработки = "";
    //далее получаем ссылку на документ
    Документ = Файл.ВладелецФайла;
    //запросом необходимо получить всех сотрудников которые подписали документ
    //у меня в отборах:
//1. подписывающий (по умолчанию),
    //2. ссылка на документ (полученная выше),
    //3. и наименование вида действия из настройки видов действий где настраивали обработку
    //у меня это "ПервыйПодписант", "ВторойПодписант", "ТретийПодписант" соответственно
    //4. и проверка бизнеспроцесса помещенного в историю (возможно прерванные обработки, ее не возьмет)
    Запрос = Новый Запрос;
 
    Запрос.Текст =
    "выбрать первые 50 СведенияОбУчастникахДействий.ФактическийИсполнитель.факт как участник
    |из РегистрСведений.СведенияОбУчастникахДействий как СведенияОбУчастникахДействий
    |где СведенияОбУчастникахДействий.Действие в (
    |   выбрать ДействияПодписания.ссылка.Ссылка
    |   из Справочник.действияподписания.Участники как ДействияПодписания
    |   где ДействияПодписания.ФункцияУчастника = Значение(Перечисление.ФункцииУчастниковПодписания.Подписывающий)
    |   и ДействияПодписания.ссылка.предмет = &предмет
    |   и действияподписания.Ссылка.ВидДействия.Наименование = ""ПервыйПодписант""
    |   и не действияподписания.Ссылка.ПомещеноВИсторию
    |)";
    // Установка значений параметров
    Запрос.УстановитьПараметр("Предмет", Документ);
    РезультатЗапроса = Запрос.Выполнить();
    // обходим запрос и получаем штампы электронных подписей
    Выборка = РезультатЗапроса.Выбрать();
    МассивПодписей = Новый Массив;
    Пока Выборка.Следующий() Цикл
        //используя общий модуль "РаботаСЭП" получаем штампы подписантов
        значениеРезультата = РаботаСЭП.получитьФайлШтампаЭП(Файл, Выборка.участник);
        //проверяем на пустое значение полученное в значениеРезультата
        Если не ПустаяСтрока(значениеРезультата) Тогда
            // закладываем все в массив подписей
            МассивПодписей.Добавить(ЗначениеРезультата);
        КонецЕсли;     
    КонецЦикла;
    // далее просто берем тот штамп который нас интересует.
    РезультатОбработки = МассивПодписей[0];
далее настройку записать и закрыть.

проверяем:

https://www.cyberforum.ru/blog... 1784472372

4. возможные ошибки при настройке файла и 1С
я пробовал сначала устанавливать в файле ворд имена штампов проставляя в конце 1, 2, 3.. но это
не срабатывает (после записи настройки, почемуто оставалась настройка ТОЛЬКО с записью 1)
по этому было принято решения номер нужной подписи прописывать буквами

важно понимать, что здесь получаем подпись подписанта который фактически подписал документ.
т.е. подпись сотруника которому были делегированы права на подписание, а не подписанта за которого выполняетя задача.
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_2.png
Просмотров: 47
Размер:	15.8 Кб
ID:	11941   Нажмите на изображение для увеличения
Название: Screenshot_3.png
Просмотров: 34
Размер:	10.7 Кб
ID:	11942   Нажмите на изображение для увеличения
Название: Screenshot_4.png
Просмотров: 47
Размер:	19.8 Кб
ID:	11943  

Нажмите на изображение для увеличения
Название: Screenshot_5.png
Просмотров: 44
Размер:	26.2 Кб
ID:	11944   Нажмите на изображение для увеличения
Название: Screenshot_6.png
Просмотров: 37
Размер:	20.3 Кб
ID:	11945   Нажмите на изображение для увеличения
Название: Screenshot_7.png
Просмотров: 40
Размер:	45.1 Кб
ID:	11946  

Изображения
 
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru