Электронная подпись в 1С 8.3: от токена до подписанного документа

· 9 мин

Содержание

ЭЦП в 1С работает не сама по себе: программа только передаёт данные криптопровайдеру (КриптоПро CSP или ViPNet CSP), а подпись формирует он, используя закрытый ключ с токена или из реестра. Чтобы подпись заработала, нужны три вещи: установленный криптопровайдер, сертификат с закрытым ключом на компьютере и запись об этом сертификате в настройках электронной подписи 1С.

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

Как устроена электронная подпись внутри 1С

Цепочка выглядит так:

  1. 👤 Пользователь нажимает «Подписать» в документе, отчёте или в 1С:ЭДО.
  2. 🧩 Конфигурация через подсистему «Электронная подпись» (она входит в Библиотеку стандартных подсистем) вызывает объект платформы МенеджерКриптографии.
  3. 🔐 Платформа обращается к криптопровайдеру, тот просит PIN и считывает закрытый ключ с носителя.
  4. 📄 Готовая подпись (файл формата CMS, обычно открепленная) сохраняется рядом с документом или уходит оператору вместе с файлом.

Отсюда практическое следствие. Если что-то не работает , проблема почти всегда в одном из звеньев: носитель, криптопровайдер, сертификат или настройки 1С. Сама конфигурация криптографию не реализует.

Какие подписи бывают и где каждая нужна

ВидКто выдаётГде в 1С применяется
КЭП руководителя юрлица или ИПУдостоверяющий центр ФНС (через доверенных лиц)Отчётность в ФНС и СФР, счета-фактуры в ЭДО, ЕГАИС, ГИС МТ
КЭП физлица (сотрудника)Коммерческий аккредитованный УЦПодписание от имени организации вместе с машиночитаемой доверенностью (МЧД)
Неквалифицированная подписьУЦ или сама организацияПервичка внутри ЭДО, если стороны так договорились; внутренний документооборот

Счета-фактуры и отчётность подписываются только квалифицированной подписью. Акты, накладные и другую первичку стороны по соглашению могут подписывать и неквалифицированной. Это правило задаёт закон № 63-ФЗ, а не 1С.

Что подготовить до настройки подписи

Перед тем как открывать настройки в 1С, проверьте компьютер. Без этого программа покажет ошибку уже на первом шаге.

  • 💻 Криптопровайдер. КриптоПро CSP версии 5.0 или ViPNet CSP. У КриптоПро есть пробный период, дальше нужна лицензия. Лицензия бывает встроена в сертификат, но это зависит от УЦ — уточните при выдаче.
  • 🔑 Драйвер носителя. Для Рутокена и JaCarta ставится отдельная программа от производителя токена. Без неё КриптоПро не увидит ключ.
  • 📜 Сертификат в хранилище «Личное». Открыть его можно через КриптоПро CSP → Сервис → Просмотреть сертификаты в контейнере и кнопку «Установить». В свойствах сертификата должна стоять отметка о наличии закрытого ключа.
  • 🏛️ Корневые сертификаты УЦ. Без них Windows не построит цепочку доверия, и 1С сообщит, что сертификат недействителен.
  • 🌐 Для веб-клиента — расширение браузера для работы с файлами и криптографией. Без него браузер не сможет обратиться к криптопровайдеру.
  • 🕒 Платформа 8.3. Используйте актуальный релиз, который поддерживает ваш релиз конфигурации. Номер минимальной версии указан в описании обновления конфигурации.
Компьютер готов к подписи
Выполнено: 0 / 6

Настройка ЭЦП в 1С: пошагово

Ниже порядок для типовых конфигураций на Библиотеке стандартных подсистем: Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11. Формы в них общие, отличается только место, где лежит ссылка на настройки.

Шаг 1. Включите использование подписи

КонфигурацияГде включается
Бухгалтерия предприятия 3.0Администрирование → Обмен электронными документами
ЗУП 3.1, УТ 11Администрирование → Общие настройки

Найдите группу «Электронная подпись и шифрование» и установите флажок «Электронные подписи». Если нужно шифровать файлы, включите и шифрование. Рядом появится ссылка «Настройки электронной подписи и шифрования».

Шаг 2. Проверьте список программ

Откройте настройки и перейдите на вкладку «Программы». Здесь перечислены криптопровайдеры, с которыми умеет работать 1С. Отметка у строки означает, что программа найдена на компьютере.

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

Шаг 3. Добавьте сертификат

  1. Перейдите на вкладку «Сертификаты» и нажмите «Добавить».
  2. Выберите вариант добавления сертификата, установленного на компьютере. Второй вариант — заявление на выпуск нового сертификата, если ваша конфигурация поддерживает выпуск через 1С.
  3. В списке выберите нужный сертификат. Ориентируйтесь на владельца и дату окончания.
  4. Укажите организацию и пользователя 1С, которому разрешено подписывать этим сертификатом.
  5. Введите PIN носителя и запустите проверку.

Шаг 4. Проверьте сертификат

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

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

Шаг 5. Подпишите документ

В документах и отчётах, которые поддерживают подпись, появляется команда «Подписать». Программа спросит PIN, сформирует подпись и покажет её в списке подписей объекта. Для файлов, присоединённых к документу, подпись ставится из карточки файла.

Не сохраняйте PIN в настройках на общем компьютере — иначе подписать документ сможет любой, кто сел за этот компьютер.

Где подпись используется в разных программах 1С

Механизм один, а сценарии отличаются. Вот основные места, где в 1С 8.3 нужна подпись.

1С-Отчётность

Сертификат для сдачи отчётов в ФНС, СФР и Росстат прописывается в настройках учётной записи документооборота. Подключение и продление идут через раздел Отчеты → Регламентированные отчеты и настройки обмена с контролирующими органами. При отправке отчёта 1С подписывает файл, шифрует его на сертификат получателя и передаёт оператору.

1С:ЭДО

Подпись прописывается в профиле настроек ЭДО организации. Для счёта-фактуры, УПД со статусом счёта-фактуры и корректировочных документов нужна КЭП. Если документ подписывает не руководитель, а сотрудник, к подписи прикладывается МЧД. Её формат утверждён ФНС, оператор формат не меняет.

ЗУП 3.1

В зарплатной программе подпись нужна для отправки отчётов в СФР и ФНС, для электронных больничных и для кадрового ЭДО, если оно подключено. Сертификат и учётная запись документооборота настраиваются так же, как в Бухгалтерии.

Маркировка и ЕГАИС

Для работы с ГИС МТ подпись используется при авторизации и подписании документов оборота. Для ЕГАИС отдельно нужен УТМ — транспортный модуль, который работает со своим ключом на носителе. Это отдельная настройка вне 1С.

Если подпись не ставится: ошибки и что делать

Большинство ошибок ЭЦП в 1С возникает до того, как программа вообще дойдёт до подписания. Ниже — частые сообщения и их причины.

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

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

В клиент-серверном варианте подписывать можно и на сервере 1С. Для этого в настройках есть флажки подписания и проверки подписей на сервере. Тогда криптопровайдер и сертификат нужны на сервере, а ключ — в хранилище пользователя, от имени которого работает служба 1С.

Переустановка криптопровайдера на сервере 1С требует перезапуска службы. Все сеансы пользователей при этом оборвутся, поэтому делайте это вне рабочего времени и предупредите коллег.

Подписание из кода: что нужно разработчику

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

Если нужна подпись «на чистой платформе» — например, во внешней обработке для пакетного подписания файлов на сервере, — работает объект МенеджерКриптографии. Пример для КриптоПро CSP с ГОСТ 2012:

Функция ПодписатьДанныеНаСервере(Данные, ОтпечатокHex, Пароль)

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

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

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

    Возврат Менеджер.Подписать(Данные, Сертификат);

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

Здесь Данные — двоичные данные файла, функция возвращает подпись тоже как двоичные данные. Её сохраняют рядом с файлом с расширением .sig. Для проверки есть метод ПроверитьПодпись того же объекта.

Несколько правил, которые экономят время при отладке:

  • 🧪 Сначала проверьте сертификат в типовой форме настроек. Если там красная строка, код тоже не заработает.
  • 🖥️ На сервере код выполняется от имени пользователя службы 1С. Сертификат должен лежать в его хранилище, а не в хранилище того, кто вошёл в Windows.
  • ⏳ На клиенте используйте асинхронные методы: синхронные вызовы в тонком и веб-клиенте ограничены.
  • 🔒 Не храните PIN в коде и константах. Передавайте его из формы ввода или используйте режим, при котором PIN запрашивает сам криптопровайдер.

Как хранить ключ и не потерять подпись

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

  1. Держите ключ на токене, а не в реестре. Ключ из реестра легко скопировать вместе с профилем Windows. Ключи, которые выдаёт УЦ ФНС, создаются неэкспортируемыми и записываются на токен.
  2. Смените заводской PIN. У Рутокена по умолчанию пользовательский PIN — 12345678. Его знают все, кто хоть раз настраивал токен.
  3. Не оставляйте токен в компьютере. Особенно на сервере терминалов, где к нему могут получить доступ другие пользователи.
  4. Разделите подписи по людям. Сотрудник подписывает своей подписью физлица с МЧД, а не токеном руководителя. Так видно, кто подписал документ, и отозвать доступ при увольнении проще: достаточно отменить доверенность.
  5. Следите за сроком. Сертификат УЦ ФНС действует 15 месяцев. Получите новый заранее, за две-три недели до окончания, иначе в день сдачи отчётности подписать будет нечем.
  6. При потере токена сразу отзовите сертификат в выдавшем УЦ. До отзыва сертификат считается действующим.

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

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

Можно ли пользоваться одной подписью в нескольких базах 1С?
Да. Сертификат добавляется в каждую базу отдельно, а закрытый ключ остаётся один — на токене. Ограничений по числу баз нет.
Нужна ли подпись для работы в 1С вообще?
Нет. Учёт ведётся без неё. Подпись нужна только для внешнего обмена: отчётность, ЭДО, маркировка, ЕГАИС, электронные больничные.
Подходит ли для 1С облачная подпись?
Да, если её поддерживает конкретный сервис. В 1С-Отчётности и некоторых операторах ЭДО ключ может храниться на стороне оператора, а подтверждение идёт через телефон. Для отдельной работы в 1С вне этих сервисов нужен локальный ключ.
Что будет со старыми документами после замены сертификата?
Подписи на них остаются действительными. Старый сертификат не удаляйте из 1С: он нужен для проверки ранее подписанных документов.
Можно ли подписывать документы в 1С на Mac или Linux?
Да, если на компьютере установлен криптопровайдер с поддержкой этой системы и драйвер токена. КриптоПро CSP выпускается для Linux и macOS, настройка в 1С та же.

Источники

  • Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»