Документы и Печать · 11 мин
Как сделать сертификат в 1С: пошаговая инструкция
Как сделать сертификат в 1С: создание печатного макета в конфигураторе, подключение внешней печатной формы и настройка сертификата электронной подписи.
Под задачей «сделать сертификат в 1С» обычно скрываются два разных сценария. Первый — создать печатный бланк сертификата (подарочного, на обучение, на соответствие продукции), который заполняется данными из базы и выводится на печать. Второй — настроить сертификат электронной подписи (ЭЦП), чтобы подписывать документы прямо из программы. Оба сценария решаются штатными средствами, но по-разному и с разными уровнями доступа.
Для печатного бланка есть три пути: макет внутри конфигурации (требует конфигуратор и снятия с поддержки или расширения), внешняя печатная форма (без изменения конфигурации) и простой вариант — выгрузка данных в шаблон Word через механизм печати. Для ЭЦП нужен действующий сертификат ключа проверки подписи, установленный криптопровайдер и настройка в разделе обмена электронными документами.
Ниже разобраны оба сценария с конкретными действиями, проверками результата и типичными ошибками. Примеры ориентированы на типовые конфигурации (Управление торговлей, Бухгалтерия предприятия, УНФ), но логика одинакова для большинства решений на платформе 1С:Предприятие 8.3.
Определите, какой сертификат вам нужен
Прежде чем что-то настраивать, ответьте на вопрос: что должно получиться на выходе? Если нужен красивый документ на бумаге или в PDF — например, подарочный сертификат с номером, суммой и печатью организации — это задача печати. Решается макетом и не требует никаких криптографических средств.
Если нужно подписывать счета-фактуры, акты и УПД для юридически значимого обмена с контрагентами или отчётности — это сертификат электронной подписи. Здесь уже понадобятся сам сертификат, выданный удостоверяющим центром, криптопровайдер (КриптоПро CSP, ViPNet CSP) и права администратора в 1С.
Третий, более редкий вариант — учёт сертификатов как объектов: номенклатурные сертификаты соответствия, подарочные сертификаты как товар или обязательство перед клиентом. Это уже вопросы учёта, а не печати, и решаются они документами и регистрами конфигурации.
Создаём печатный сертификат через макет в конфигураторе
Этот способ подходит, если конфигурация дорабатывается и есть доступ к конфигуратору. Откройте конфигуратор, найдите объект, из которого будет печататься сертификат (например, документ «Сертификат» или справочник), и добавьте новый макет с типом «Табличный документ».
В редакторе макета нарисуйте бланк: заголовок, поля для ФИО, номера, суммы, даты, подписи. Области, куда будут подставляться данные, оформите как параметры: выделите ячейку, в свойствах установите «Заполнение — Параметр» и задайте имя, например ФИОКлиента. Текст в фигурных скобках { } тоже будет воспринят как параметр.
Затем в модуле менеджера объекта добавьте процедуру печати: получение макета, заполнение параметров данными из объекта и вывод области в результирующий табличный документ. После обновления конфигурации базы данных кнопка печати появится в форме объекта.
- 1Откройте конфигуратор и найдите нужный объект метаданных
- 2Добавьте макет типа «Табличный документ» и нарисуйте бланк сертификата
- 3Отметьте ячейки с подставляемыми данными как параметры
- 4Добавьте процедуру печати в модуль менеджера объекта
- 5Обновите конфигурацию базы данных (F7) и проверьте печать из пользовательского режима
Учтите ограничение: изменение типовой конфигурации частично снимает её с поддержки, что усложняет автоматические обновления. Если конфигурация типовая и обновляется регулярно, безопаснее использовать расширение конфигурации или внешнюю печатную форму.
Внешняя печатная форма — без изменения конфигурации
Внешняя печатная форма — это файл с расширением .epf, который подключается к типовой конфигурации через механизм «Дополнительные отчёты и обработки». Конфигурация остаётся на полной поддержке, обновления не ломаются, а макет сертификата можно править сколько угодно.
Создать такую форму можно в конфигураторе: «Файл → Новый → Внешняя обработка». В модуль объекта добавляется стандартная функция СведенияОВнешнейОбработке(), где указывается вид «ПечатнаяФорма», объекты назначения и команды печати, а также процедура Печать(), формирующая табличный документ по макету. Шаблоны таких функций описаны в документации библиотеки стандартных подсистем (БСП), на которой построены типовые конфигурации.
Подключение в пользовательском режиме: «Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки → Добавить из файла». После добавления форма появляется в меню «Печать» указанных документов. Для работы механизма у пользователя должно быть право «Использование дополнительных отчётов и обработок».
Простой вариант: шаблон Word вместо макета
Если программировать не хочется, а бланк нужен быстро, используйте печать по шаблону Word. В типовых конфигурациях есть механизм «Печатные формы по шаблонам Microsoft Office»: создаётся документ Word с закладками-переменными, который заполняется данными из 1С.
Порядок такой: в Word рисуете сертификат, в местах подстановки вставляете поля в формате [v8 НомерДокумента] и аналогичные (точный синтаксис зависит от конфигурации). Затем файл подключается как шаблон к нужному документу. Способ ограничен: сложная логика, циклы по табличным частям и нестандартные источники данных в шаблоне Word реализуются трудно или не реализуются вовсе.
Для разовой задачи — например, распечатать 50 одинаковых сертификатов с именами из списка — часто проще вообще выгрузить данные в Excel и сделать слияние в Word штатными средствами Microsoft Office, без всякой настройки 1С.
Сравнение способов печати
Полный контроль и встроенная кнопка печати, но снимает конфигурацию с поддержки и требует навыков разработчика
Не трогает типовую конфигурацию, переживает обновления; нужно уметь писать код и оформлять функции БСП
Быстро и без кода, подходит для простых бланков; плохо справляется со сложной логикой и табличными частями
Самый быстрый разовый вариант, но без автоматизации: каждый раз действия повторяются вручную
Настройка сертификата электронной подписи
Для работы с ЭЦП сначала установите криптопровайдер (например, КриптоПро CSP) и убедитесь, что сертификат установлен в хранилище «Личные» текущего пользователя Windows вместе с закрытым ключом. Проверить можно через оснастку certmgr.msc: сертификат должен отображаться с пометкой «Есть закрытый ключ».
В 1С откройте «Администрирование → Обмен электронными документами → Настройки электронной подписи и шифрования» (в разных конфигурациях название раздела может немного отличаться). Добавьте программу электронной подписи: укажите тип криптопровайдера, его имя и путь. Затем перейдите в список сертификатов и нажмите «Добавить» — программа предложит выбрать из установленных в системе.
После добавления откройте карточку сертификата и выполните встроенную проверку. 1С проверит цепочку доверия, срок действия и возможность подписания тестовых данных. Если проверка прошла, сертификат можно указывать в настройках обмена с контрагентами и в учётной записи оператора ЭДО.
Как проверить результат
Отображается в «Личные» с пометкой о закрытом ключе
Сертификат есть, но закрытого ключа нет — подписание невозможно
Все этапы проверки отмечены как успешные
Ошибка цепочки доверия или криптопровайдер не найден
Документ подписан, подпись отображается как действительная
Ошибка при подписании или подпись не проходит проверку у контрагента
Частые ошибки и как их избежать
Самая частая проблема с печатными формами — параметры макета не заполняются, потому что имена параметров в макете и в коде не совпадают с точностью до символа. 1С в этом случае не всегда выдаёт понятную ошибку: ячейка просто остаётся пустой. Проверяйте имена копированием, а не набором вручную.
Вторая типичная ситуация — внешняя печатная форма не появляется в меню «Печать». Причины: не включён механизм дополнительных отчётов и обработок, в функции СведенияОВнешнейОбработке() неверно указаны объекты назначения, или у пользователя нет права на использование обработок.
С ЭЦП лидируют три проблемы: сертификат импортирован без закрытого ключа, не установлен или не лицензирован криптопровайдер, и истёк срок действия сертификата. Ещё одна ловушка — сертификат установлен в хранилище компьютера, а не пользователя, и 1С его не видит.
Границы самостоятельной работы и безопасность
Самостоятельно безопасно делать: внешние печатные формы на копии базы, шаблоны Word, подключение уже выданного сертификата ЭЦП по инструкции удостоверяющего центра. Всё это обратимо и не затрагивает учётные данные.
К разработчику или администратору стоит привлекать, когда: требуется изменение типовой конфигурации, печатная форма должна собирать данные из нескольких объектов, нужна автоматическая нумерация сертификатов с защитой от дублей, либо настраивается обмен ЭДО с контрагентами и отчётность в контролирующие органы. Ошибка в этих местах может привести к юридически значимым последствиям.
Перед любыми доработками конфигурации сделайте резервную копию базы. Для файловой базы достаточно скопировать каталог или выгрузку .dt, для клиент-серверной — используйте штатные средства СУБД. Проверку новой печатной формы всегда делайте сначала на копии.
Что важно запомнить
Печатный сертификат делайте внешней печатной формой — это не трогает типовую конфигурацию и переживает обновления. Сертификат ЭЦП настраивается только после установки криптопровайдера и импорта сертификата с закрытым ключом в хранилище пользователя. Любые доработки проверяйте на копии базы.
Частые вопросы
Можно ли сделать сертификат в 1С без конфигуратора?
Да. Используйте внешнюю печатную форму (файл .epf), которая подключается через «Администрирование → Дополнительные отчёты и обработки», либо шаблон Word. Для разовой задачи подойдёт выгрузка данных в Excel со слиянием в Word — вообще без настройки 1С.
Почему внешняя печатная форма не появляется в меню «Печать»?
Проверьте три вещи: включён ли механизм дополнительных отчётов и обработок в настройках администрирования, правильно ли указаны объекты назначения в функции СведенияОВнешнейОбработке() и есть ли у пользователя право на использование дополнительных обработок.
1С не видит сертификат электронной подписи. Что делать?
Убедитесь, что сертификат установлен в хранилище «Личные» текущего пользователя (а не компьютера) и содержит закрытый ключ. Проверьте, что криптопровайдер установлен и добавлен в настройках электронной подписи в 1С. После этого перезапустите программу.
Как сделать автоматическую нумерацию подарочных сертификатов?
Надёжнее всего завести отдельный документ или элемент справочника на каждый сертификат — тогда нумерацию обеспечит сама платформа с защитой от дублей. Печатная форма будет брать номер из объекта. Хранить номера в Excel или на бумаге рискованно: при параллельной работе пользователей дубли неизбежны.
Сломаются ли обновления, если добавить макет в типовую конфигурацию?
Конфигурация не сломается, но изменённый объект будет частично снят с поддержки, и при обновлении этот объект потребует ручного сравнения и объединения. Чтобы избежать этого, используйте расширение конфигурации или внешнюю печатную форму.
Нужен ли криптопровайдер, если сертификат уже есть?
Да. Сам сертификат — это только открытая часть и данные о владельце. Криптографические операции (подписание, проверка) выполняет криптопровайдер, и без него 1С не сможет сформировать подпись, даже если сертификат корректно установлен.