Подпись КЭП в 1С 8.3: от установки криптопровайдера до отправки файла

· 10 мин

Содержание

Чтобы в 1С подписать документ электронной подписью , нужны три вещи: криптопровайдер на компьютере (КриптоПро CSP или ViPNet CSP), сертификат, добавленный в Администрирование → Общие настройки → Электронная подпись и шифрование, и сам объект для подписи. Дальше путь зависит от того, что подписываете: присоединённый файл подписывают командой «Подписать» в карточке файла, документ для контрагента — кнопкой «Подписать и отправить» в 1С-ЭДО, отчёт в ФНС или СФР — при отправке из 1С-Отчётности.

Порядок одинаковый для «1С:Бухгалтерии 3.0», «ЗУП 3.1», «УТ 11» и других конфигураций на Библиотеке стандартных подсистем: механизм подписи общий для платформы, различаются только места, откуда его вызывают. Настраивать удобнее снизу вверх: сначала Windows и криптопровайдер, потом 1С. Так каждую ошибку видно на своём уровне.

1. Подготовка компьютера: криптопровайдер, носитель, корневые сертификаты

Сама 1С не умеет работать с ключами ГОСТ. Она передаёт данные криптопровайдеру, а тот подписывает их закрытым ключом. Если на этом уровне что-то не так, никакие настройки в базе не помогут.

Что должно быть на рабочем месте:

  • 🔐 Криптопровайдер. Чаще всего КриптоПро CSP. Пробный период у него 90 дней, после этого без лицензии подпись перестаёт создаваться. Лицензию на КриптоПро иногда «вшивают» в сам сертификат — уточните у удостоверяющего центра.
  • 🔑 Драйвер носителя. Для Рутокена, JaCarta и аналогов ставят драйвер производителя. Без него токен виден как USB-устройство, но ключевой контейнер на нём не читается.
  • 📜 Личный сертификат с привязкой к ключу. Он должен лежать в хранилище «Личное» текущего пользователя Windows и быть связан с контейнером. В КриптоПро это делает команда «Установить личный сертификат» или «Просмотреть сертификаты в контейнере → Установить».
  • 🏛️ Цепочка доверия. Корневой сертификат Минцифры (головного удостоверяющего центра) и сертификат вашего УЦ — в хранилищах доверенных корневых и промежуточных центров.

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

Чей сертификат нужен

С 2022 года КЭП руководителя организации выдаёт удостоверяющий центр ФНС. Сотрудники с 1 сентября 2024 года подписывают документы от имени компании своей КЭП физического лица плюс машиночитаемая доверенность (МЧД). Поэтому бухгалтеру, который отправляет отчётность или документы контрагентам, нужен свой сертификат и МЧД, загруженная в 1С.

Особенности для веб-клиента и сервера

  • 🌐 Веб-клиент. Браузер сам не обращается к криптопровайдеру. 1С при первой попытке подписи предложит установить расширение для работы с криптографией — без него команда «Подписать» не сработает.
  • 🖥️ Подписание на сервере. Если включить выполнение операций на сервере, подпись создаётся на сервере 1С. Тогда криптопровайдер и сертификат с ключом нужны на сервере, в хранилище той учётной записи Windows, под которой работает служба 1С. Ключ на токене в USB-порту рабочего компьютера сервер не увидит.

2. Включаем электронную подпись в 1С и добавляем сертификат

Настройка делается один раз на базу (флажки) и один раз на каждого пользователя (сертификат).

Включение механизма

  1. Откройте Администрирование → Общие настройки.
  2. Разверните группу «Электронная подпись и шифрование».
  3. Установите флажок «Электронная подпись». Флажок шифрования нужен, только если вы будете шифровать файлы для конкретных получателей.
  4. Перейдите по ссылке «Настройки электронной подписи и шифрования».

Программы и сертификаты

В открывшейся форме две главные вкладки.

Программы. Здесь перечислены криптопровайдеры, которые 1С будет использовать. Обычно КриптоПро CSP и ViPNet CSP уже в списке — 1С находит их сама. Если список пуст или нужной программы нет, нажмите «Добавить» и выберите её из предложенных.

Сертификаты. Здесь регистрируют подпись пользователя:

  1. Нажмите «Добавить» → «Из установленных на компьютере».
  2. Выберите свой сертификат в списке. Если его нет — вернитесь к разделу 1: сертификат не установлен в личное хранилище или не привязан к ключу.
  3. Введите пароль (ПИН-код) контейнера. Флажок «Запомнить пароль» удобен, но на общем компьютере его лучше не ставить.
  4. Нажмите «Проверить».

Проверка проходит несколько этапов: наличие сертификата на компьютере, его данные и цепочка, создание тестовой подписи, проверка этой подписи. Зелёные отметки во всех пунктах значат, что подписывать можно. Красная отметка показывает, на каком уровне проблема: Windows, криптопровайдер или сам сертификат.

В карточке сертификата укажите организацию и пользователя. Если поле «Пользователь» пустое, сертификатом смогут воспользоваться все. Если заполнено чужим пользователем — вы не увидите сертификат в списке при подписании.

3. Как подписать документ в 1С: три рабочих сценария

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

Сценарий А. Подписать присоединённый файл

Подходит для договоров, сканов, печатных форм, которые надо отправить с подписью по почте.

  1. Откройте документ или элемент справочника и нажмите кнопку со скрепкой — откроется список присоединённых файлов.
  2. Добавьте файл (например, сохранённую в PDF печатную форму) или выберите уже прикреплённый.
  3. В командной панели списка или карточки файла найдите группу «Электронная подпись» и выберите «Подписать».
  4. Выберите сертификат, введите пароль, нажмите «Подписать».
  5. Чтобы отправить подписанный файл наружу, используйте команду «Сохранить вместе с подписью». Рядом с файлом появится файл подписи — откреплённая подпись в формате CMS, обычно с расширением .sig или .p7s.

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

Сценарий Б. Подписывать документы электронной подписью в 1С-ЭДО

Так подписывают УПД, акты и счета-фактуры для контрагентов.

  1. Проведите учётный документ и в его форме нажмите команду ЭДО — 1С сформирует электронный документ по формату ФНС.
  2. Откройте рабочее место «Текущие дела ЭДО» (оно есть в разделах «Продажи» и «Покупки»).
  3. Найдите документ в списке на подписание, проверьте реквизиты в карточке.
  4. Нажмите «Подписать и отправить», выберите сертификат и введите пароль.

Если подписывает сотрудник, а не руководитель, к подписи автоматически прикладывается МЧД. Её заранее загружают в карточку сертификата или в настройки ЭДО организации.

Документы можно подписывать пачкой: выделите несколько строк в «Текущих делах ЭДО» и выполните ту же команду.

Сценарий В. Подпись отчётности в ФНС, СФР, Росстат

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

Что подписываемГде командаКакая подпись нужна
Файл, скан, печатная формаПрисоединённые файлы → «Подписать»Любая, по договорённости с получателем
УПД, акт, накладная в ЭДО«Текущие дела ЭДО» → «Подписать и отправить»КЭП или НЭП по соглашению сторон
Счёт-фактура в ЭДОТам жеТолько КЭП
Отчётность в контролирующие органы1С-Отчётность → «Отправить»КЭП, у сотрудника — с МЧД

Требование КЭП для электронного счёта-фактуры прямо записано в пункте 6 статьи 169 НК РФ. Первичные документы стороны вправе договориться подписывать и неквалифицированной подписью — это фиксируют в соглашении об ЭДО.

4. Результат проверки подписи: что означает каждое состояние

Подпись проверяют при получении файла, при загрузке подписи из файла и в любой момент по команде «Проверить» в списке подписей. Результат показывается в колонке статуса. Формулировки в разных релизах БСП немного отличаются, но смысл один.

СостояниеЧто произошлоЧто делать
Подпись вернаДанные не менялись, сертификат действовал на момент подписи, цепочка до доверенного корня построенаНичего, документ юридически значим
Подпись невернаФайл изменён после подписания или подпись создана для другого файлаЗапросить файл заново, не принимать документ
Сертификат недействителенИстёк, отозван или ещё не начал действовать на дату подписиПодписать заново действующим сертификатом
Не удалось проверитьНет корневого сертификата УЦ, нет доступа к списку отзыва, нет криптопровайдераУстановить цепочку, проверить интернет, повторить
Не проверяласьПодпись добавлена, проверку не запускалиНажать «Проверить»

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

5. Подписание через внешнюю обработку и встроенный язык

Типовых команд хватает, пока файлов немного. Когда нужно подписать сотню выгрузок за ночь или встроить подпись в свою интеграцию, пишут внешнюю обработку . Её подключают через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.

Есть два пути:

  • 🧩 Через БСП. В типовых конфигурациях есть общие модули подсистемы «Электронная подпись» с готовыми процедурами подписания, выбора сертификата и проверки. Это предпочтительный путь: учитываются настройки программ, пароли, МЧД.
  • ⚙️ Через платформу напрямую. Объект МенеджерКриптографии даёт полный контроль, но всё приходится делать самому.

Пример для сервера или толстого клиента — откреплённая подпись файла сертификатом из личного хранилища:

Функция ПодписатьФайл(ПутьКФайлу, Отпечаток, Пароль)

    // Тип 80 — КриптоПро CSP, ГОСТ Р 34.10-2012 (256 бит)
    Менеджер = Новый МенеджерКриптографии(
        "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider", "", 80);
    Менеджер.ПарольДоступаКЗакрытомуКлючу = Пароль;

    Хранилище = Менеджер.ПолучитьХранилищеСертификатов(
        ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты);
    Сертификат = Хранилище.НайтиПоОтпечатку(
        ПолучитьДвоичныеДанныеИзHexСтроки(Отпечаток));

    Если Сертификат = Неопределено Тогда
        ВызватьИсключение "Сертификат не найден в личном хранилище";
    КонецЕсли;

    Данные = Новый ДвоичныеДанные(ПутьКФайлу);
    Подпись = Менеджер.Подписать(Данные, Сертификат);

    ПутьКПодписи = ПутьКФайлу + ".sig";
    Подпись.Записать(ПутьКПодписи);
    Возврат ПутьКПодписи;

КонецФункции

Отпечаток берут из свойств сертификата в Windows (поле «Отпечаток»), пробелы убирают. На сервере функция ищет сертификат в хранилище пользователя, под которым запущена служба 1С, — помните про это при массовом подписании.

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

6. Ошибки при подписании документов в 1С и как их снять

Сначала нажмите «Проверить» в карточке сертификата: красная отметка подскажет, на каком уровне сбой. Дальше — по симптому.

Диагностика: выберите симптом

Если не помогло

  • 🔁 Перезапустите 1С после установки сертификатов и корневых центров: открытый сеанс может держать старое состояние хранилища.
  • 🧪 Подпишите любой файл в утилите КриптоПро (через «Инструменты КриптоПро»). Не подписывается и там — проблема вне 1С, обращайтесь в УЦ или к администратору.
  • 🗂️ Удалите сертификат из настроек 1С и добавьте заново. Подписи, уже поставленные этим сертификатом, не пропадут — они хранятся вместе с файлами.

7. Частые вопросы об электронной подписи в 1С

Можно ли подписать документ в 1С облачной подписью без токена?
Да, если ваш удостоверяющий центр выдаёт облачную КЭП и в конфигурации есть её поддержка. Ключ хранится у УЦ, подписание подтверждают через приложение или одноразовый код. Возможности зависят от релиза конфигурации и УЦ — уточните у обслуживающей организации.
Сколько сертификатов можно добавить одному пользователю?
Сколько угодно. При подписании 1С покажет список, и вы выберете нужный. Это удобно, если бухгалтер работает за несколько организаций.
Подпись остаётся действительной после истечения сертификата?
Да, если сертификат действовал в момент подписания и подпись была верна. Для долгого хранения используют усовершенствованную подпись с меткой времени — её формирование настраивают в параметрах электронной подписи.
Можно ли подписать один файл двумя подписями?
Можно. Повторите команду «Подписать» другим сертификатом — в списке подписей файла появится вторая строка. Так подписывают договоры директор и главный бухгалтер.
Нужна ли отдельная лицензия КриптоПро на сервер?
Да, для серверной ОС нужна серверная лицензия КриптоПро CSP. Лицензия рабочего места на сервере не подходит.

Источники

  • Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»
  • Налоговый кодекс РФ, статья 169, пункт 6