К статье
Практический материал

Документы и Печать · 12 мин

Как подписать регистры в 1С электронной подписью

Как подписать регистры и документы в 1С электронной подписью: настройка криптопровайдера, сертификатов, сценарии подписания, проверка подписи и типичные ошибки.

Электронная подпись в 1С используется для подтверждения авторства и целостности данных: ею подписывают документы, файлы, отчёты и записи регистров, когда требуется зафиксировать, кто и когда утвердил информацию. В типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП) для этого предусмотрен подсистема «Электронная подпись», которая работает через установленный на компьютере криптопровайдер.

Под «подписанием регистров» на практике понимают две разные задачи. Первая — штатное подписание документов, которые формируют движения по регистрам (счетов-фактур, актов, накладных, кадровых приказов). Вторая — подписание отдельных записей или наборов записей регистра, что обычно реализуется через встроенный механизм подписания произвольных данных или через доработку конфигурации. Оба сценария опираются на одну и ту же инфраструктуру: сертификат ключа подписи, криптопровайдер и настройки программы.

Ниже разобраны подготовка рабочего места, настройка 1С, оба сценария подписания, проверка результата и типичные ошибки. Инструкции применимы к конфигурациям на управляемых формах с БСП (1С:Бухгалтерия 8, 1С:ЗУП, 1С:ERP, 1С:Управление торговлей и др.).

Что понадобится перед началом работы

Для работы электронной подписи в 1С нужны три компонента: действующий сертификат ключа подписи, программа-криптопровайдер и включённая подсистема подписания в самой конфигурации. Без любого из этих элементов подписание невозможно, и ошибка обычно проявляется только в момент попытки подписать объект.

Сертификат выдаёт удостоверяющий центр. Для юридически значимого обмена с контрагентами и госорганами требуется квалифицированный сертификат (УКЭП). Для внутреннего документооборота внутри компании часто достаточно неквалифицированной подписи, если это закреплено внутренними регламентами. Закрытый ключ может храниться в реестре компьютера, на токене (Рутокен, JaCarta и подобных) или в облачном сервисе.

Криптопровайдер — это программа, выполняющая криптографические операции: например, КриптоПро CSP или ViPNet CSP. Он должен быть установлен на том компьютере, где выполняется подписание, с действующей лицензией. Если 1С работает в клиент-серверном режиме и подписание выполняется на сервере, криптопровайдер и сертификаты должны быть развёрнуты и на сервере.

СертификатУстановлен и действителен

Проверьте срок действия и привязку закрытого ключа

КриптопровайдерУстановлен с лицензией

Откройте панель управления CSP и проверьте статус лицензии

Подсистема в 1СВключена в настройках

Администрирование → Общие настройки → Электронная подпись

Права пользователяЕсть доступ к подписанию

Проверьте роли на добавление и проверку подписей

Настройка подсистемы «Электронная подпись» в 1С

В типовых конфигурациях перейдите в раздел «Администрирование» → «Общие настройки» и найдите группу «Электронная подпись и шифрование» (название может незначительно отличаться между версиями). Установите флаг «Электронные подписи», после чего станут доступны ссылки на список сертификатов, программы криптографии и настройки.

Откройте «Программы» в настройках подписи и убедитесь, что установленный криптопровайдер определился автоматически. Если список пуст, добавьте программу вручную: укажите тип программы (например, КриптоПро CSP), имя и путь к модулям. Для встроенной криптографии БСП также доступен вариант «Встроенный криптопровайдер», который не требует внешних программ, но имеет ограничения по типам ключей и юридической значимости.

Затем откройте список «Сертификаты» и добавьте свой сертификат: либо выберите из установленных на компьютере, либо укажите файл сертификата. В карточке сертификата привяжите его к пользователю и при необходимости ограничьте список организаций или документов, для которых он применяется.

Порядок настройки
  1. 1
    Установите криптопровайдер и проверьте лицензию
  2. 2
    Установите сертификат в хранилище (или подключите токен)
  3. 3
    Включите «Электронные подписи» в Администрирование → Общие настройки
  4. 4
    Проверьте автоопределение программы криптографии или добавьте её вручную
  5. 5
    Добавьте сертификат в справочник и привяжите к пользователю
  6. 6
    Выполните тестовое подписание и проверку подписи

Как подписать документ, формирующий движения по регистрам

Самый частый практический сценарий — подписать первичный документ (накладную, акт, счёт-фактуру, кадровый приказ), проведение которого создаёт записи в регистрах. Подпись при этом прикрепляется к документу как объекту, а движения по регистрам наследуют статус подписанного документа через связь с ним.

Откройте карточку документа и найдите команду «Подписать» — обычно в меню «Ещё» или на панели действий, если в конфигурации настроен электронный документооборот. Программа предложит выбрать сертификат, затем запросит пароль закрытого ключа (или PIN-код токена). После успешного подписания в карточке документа появится вкладка или панель «Подписи» со списком подписантов, датой и статусом проверки.

Если документ должен подписываться несколькими лицами (например, руководителем и главбухом), каждый подписывает его последовательно своим сертификатом. Порядок подписания и состав подписантов в некоторых конфигурациях задаётся маршрутами согласования.

Подписание записей регистров и произвольных данных

Штатная подсистема БСП позволяет подписывать не только файлы и документы, но и произвольные данные — в том числе записи регистров, если в конфигурации это предусмотрено. Типовой пример — подписание записей регистра сведений, хранящего согласия, поручения или электронные документы: в форме записи доступна команда подписания, а сама подпись сохраняется вместе с записью или в специальном регистре «Электронные подписи».

Если в вашей конфигурации такой команды нет, задача решается доработкой. Программный интерфейс БСП предоставляет менеджер криптографии и методы подписания данных: разработчик формирует двоичные данные (например, сериализованное представление набора записей), подписывает их и сохраняет подпись вместе с отпечатком сертификата и датой. При проверке данные заново сериализуются тем же способом и сверяются с подписью.

bsl
МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии("Подписание");
ДанныеДляПодписи = ПолучитьДвоичныеДанныеИзСтроки(СтрокаЗаписиРегистра);
Подпись = МенеджерКриптографии.Подписать(ДанныеДляПодписи, Сертификат);

Ключевое требование при такой реализации — детерминированность: одни и те же данные должны каждый раз сериализоваться в идентичную последовательность байт. Иначе проверка подписи будет давать ложные отказы. Практикуется подписание XML-представления набора записей или хеша от него.

Сравнение подходов к подписанию

Подписание документа

Штатный сценарий без доработок; подходит для первички и кадровых приказов. Ограничение: подписывается объект целиком, а не отдельные движения

Подписание записи регистра

Требует доработки; подходит для фиксации отдельных поручений и согласий. Ограничение: нужно обеспечить стабильную сериализацию данных

Обмен через ЭДО

Подписание происходит автоматически при отправке оператору; подходит для юридически значимого обмена. Ограничение: требуется договор с оператором ЭДО

Проверка подписи и контроль результата

После подписания обязательно выполните проверку: в списке подписей объекта выберите подпись и команду «Проверить». Программа пересчитает хеш данных, сверит его с подписью и покажет статус. Проверку может выполнить любой пользователь с соответствующими правами — для этого закрытый ключ не нужен, достаточно открытой части сертификата.

Для массового контроля в БСП предусмотрены отчёты и команды пакетной проверки подписей. Полезно периодически проверять подписи архивных документов: если сертификат отозван или данные изменены, это выявится на этапе проверки, а не в момент спора с контрагентом.

Контрольные точки

Как проверить результат

Статус подписи в карточке объекта
Норма

«Подпись верна», указаны подписант и дата

Тревожный признак

«Подпись неверна» или «не удалось проверить»

Повторная проверка после изменений
Норма

Объект не менялся — подпись остаётся верной

Тревожный признак

После перепроведения документа подпись слетела

Сертификат подписанта
Норма

Действителен, цепочка доверия строится

Тревожный признак

Срок истёк, сертификат отозван или корневой не установлен

Открытие подписи на другом ПК
Норма

Проверка проходит без закрытого ключа

Тревожный признак

Ошибка из-за отсутствия криптопровайдера или корневых сертификатов

Типичные ошибки и ограничения

Наиболее частая проблема — ошибка «не найден сертификат» или «не удаётся построить цепочку доверия». Она возникает, когда сертификат установлен в другое хранилище, под другим пользователем Windows или когда на компьютере отсутствует корневой сертификат удостоверяющего центра. Решение — проверить хранилище, переустановить сертификат с привязкой к закрытому ключу и установить цепочку корневых сертификатов.

Вторая группа ошибок связана с архитектурой: в клиент-серверном режиме подписание по умолчанию может выполняться на сервере, где нет ни токена, ни сертификата пользователя. В настройках подсистемы проверьте, где выполняются криптооперации, и при необходимости перенастройте на сторону клиента или разверните криптопровайдер на сервере.

Типичные ошибки
01
Подписание до окончательного утверждения документа — любое последующее изменение делает подпись недействительной
02
Хранение закрытого ключа без токена на общем компьютере — риск компрометации ключа и подписания чужим лицом
03
Игнорирование срока действия сертификата — в момент сдачи отчётности или отправки ЭДО подписание внезапно блокируется
04
Подписание на сервере без установленного там криптопровайдера — ошибка криптографии у всех пользователей
05
Изменение алгоритма сериализации данных регистра после подписания — старые подписи перестают проходить проверку

Юридическая значимость и выбор типа подписи

Не всякая электронная подпись имеет одинаковую юридическую силу. Квалифицированная подпись (УКЭП) приравнивается к собственноручной и обязательна для отчётности в госорганы и большинства сценариев юридически значимого ЭДО. Неквалифицированная и простая подписи применяются во внутреннем документообороте, если стороны закрепили правила их использования соглашением.

Для подписания внутренних записей регистров (согласия, поручения, отметки об ознакомлении) заранее определите в локальных нормативных актах, какой тип подписи признаётся, как проверяется и как хранятся подписанные данные. Это снимет споры о доказательственной силе таких записей.

Перед внедрением подписания регистров доработкой сделайте пилот на копии базы: подпишите тестовые записи, перенесите их в другую базу и проверьте подписи там. Это сразу выявит проблемы с сериализацией, региональными настройками и составом сохраняемых реквизитов.
ПЗ
Практическое замечание

Частые вопросы

Можно ли подписать регистр без доработки конфигурации?

Напрямую записи регистра штатно подписываются только там, где это предусмотрено конфигурацией. Универсальный обходной путь — подписать документ, сформировавший движения, либо выгрузить данные в файл и подписать файл штатной командой подписания.

Что происходит с подписью при перепроведении документа?

Подпись привязана к содержимому объекта. Если перепроведение изменило подписанные данные, проверка покажет, что подпись неверна, и документ нужно подписать заново. Поэтому подписывать следует только окончательно утверждённые документы.

Работает ли подписание в веб-клиенте и тонком клиенте?

Да, но в веб-клиенте требуется установка расширения работы с криптографией и компоненты для браузера, а криптопровайдер должен быть на компьютере пользователя. Набор поддерживаемых браузеров и компонент зависит от версии платформы и криптопровайдера.

Нужен ли криптопровайдер на сервере 1С?

Только если криптооперации выполняются на стороне сервера — это задаётся в настройках подсистемы. При подписании на клиенте серверу достаточно хранить готовые подписи и сертификаты открытых ключей.

Можно ли проверить чужую подпись без закрытого ключа?

Да. Для проверки нужны только открытая часть сертификата подписанта, цепочка доверия до корневого УЦ и криптопровайдер, поддерживающий алгоритм подписи. Закрытый ключ требуется исключительно для создания подписи.

Что делать, если сертификат истёк, а подписанные документы нужны?

Ранее созданные подписи не аннулируются автоматически: их действительность оценивается на момент подписания, если есть штамп времени или иное подтверждение даты. Для новых подписей получите новый сертификат, а старый сохраните вместе с открытым ключом для проверки архива.

Итог

Что важно запомнить

Подписание в 1С требует трёх компонентов: сертификата, криптопровайдера и включённой подсистемы «Электронная подпись». Документы подписываются штатно из карточки объекта, записи регистров — через механизм подписания данных, часто с доработкой. Подписывайте только финальные версии, всегда проверяйте подпись после создания и защищайте закрытый ключ.