Электронная подпись в 1С 8.3: от токена до подписанного документа
Содержание
ЭЦП в 1С работает не сама по себе: программа только передаёт данные криптопровайдеру (КриптоПро CSP или ViPNet CSP), а подпись формирует он, используя закрытый ключ с токена или из реестра. Чтобы подпись заработала, нужны три вещи: установленный криптопровайдер, сертификат с закрытым ключом на компьютере и запись об этом сертификате в настройках электронной подписи 1С.
Частое заблуждение — что подпись «загружают в 1С». В базу попадает только сертификат, то есть открытая часть. Закрытый ключ остаётся на носителе, и 1С обращается к нему каждый раз при подписании. Поэтому база, перенесённая на другой компьютер, без токена и криптопровайдера подписывать не будет, даже если сертификат в ней виден.
Как устроена электронная подпись внутри 1С
Цепочка выглядит так:
- 👤 Пользователь нажимает «Подписать» в документе, отчёте или в 1С:ЭДО.
- 🧩 Конфигурация через подсистему «Электронная подпись» (она входит в Библиотеку стандартных подсистем) вызывает объект платформы
МенеджерКриптографии. - 🔐 Платформа обращается к криптопровайдеру, тот просит PIN и считывает закрытый ключ с носителя.
- 📄 Готовая подпись (файл формата CMS, обычно открепленная) сохраняется рядом с документом или уходит оператору вместе с файлом.
Отсюда практическое следствие. Если что-то не работает , проблема почти всегда в одном из звеньев: носитель, криптопровайдер, сертификат или настройки 1С. Сама конфигурация криптографию не реализует.
Какие подписи бывают и где каждая нужна
| Вид | Кто выдаёт | Где в 1С применяется |
|---|---|---|
| КЭП руководителя юрлица или ИП | Удостоверяющий центр ФНС (через доверенных лиц) | Отчётность в ФНС и СФР, счета-фактуры в ЭДО, ЕГАИС, ГИС МТ |
| КЭП физлица (сотрудника) | Коммерческий аккредитованный УЦ | Подписание от имени организации вместе с машиночитаемой доверенностью (МЧД) |
| Неквалифицированная подпись | УЦ или сама организация | Первичка внутри ЭДО, если стороны так договорились; внутренний документооборот |
Счета-фактуры и отчётность подписываются только квалифицированной подписью. Акты, накладные и другую первичку стороны по соглашению могут подписывать и неквалифицированной. Это правило задаёт закон № 63-ФЗ, а не 1С.
Что подготовить до настройки подписи
Перед тем как открывать настройки в 1С, проверьте компьютер. Без этого программа покажет ошибку уже на первом шаге.
- 💻 Криптопровайдер. КриптоПро CSP версии 5.0 или ViPNet CSP. У КриптоПро есть пробный период, дальше нужна лицензия. Лицензия бывает встроена в сертификат, но это зависит от УЦ — уточните при выдаче.
- 🔑 Драйвер носителя. Для Рутокена и JaCarta ставится отдельная программа от производителя токена. Без неё КриптоПро не увидит ключ.
- 📜 Сертификат в хранилище «Личное». Открыть его можно через
КриптоПро CSP → Сервис → Просмотреть сертификаты в контейнереи кнопку «Установить». В свойствах сертификата должна стоять отметка о наличии закрытого ключа. - 🏛️ Корневые сертификаты УЦ. Без них Windows не построит цепочку доверия, и 1С сообщит, что сертификат недействителен.
- 🌐 Для веб-клиента — расширение браузера для работы с файлами и криптографией. Без него браузер не сможет обратиться к криптопровайдеру.
- 🕒 Платформа 8.3. Используйте актуальный релиз, который поддерживает ваш релиз конфигурации. Номер минимальной версии указан в описании обновления конфигурации.
Настройка ЭЦП в 1С: пошагово
Ниже порядок для типовых конфигураций на Библиотеке стандартных подсистем: Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11. Формы в них общие, отличается только место, где лежит ссылка на настройки.
Шаг 1. Включите использование подписи
| Конфигурация | Где включается |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Обмен электронными документами |
| ЗУП 3.1, УТ 11 | Администрирование → Общие настройки |
Найдите группу «Электронная подпись и шифрование» и установите флажок «Электронные подписи». Если нужно шифровать файлы, включите и шифрование. Рядом появится ссылка «Настройки электронной подписи и шифрования».
Шаг 2. Проверьте список программ
Откройте настройки и перейдите на вкладку «Программы». Здесь перечислены криптопровайдеры, с которыми умеет работать 1С. Отметка у строки означает, что программа найдена на компьютере.
Если нужной программы нет в списке, добавьте её из предложенных вариантов. После установки КриптоПро на уже открытую базу перезапустите 1С — иначе провайдер не определится.
Шаг 3. Добавьте сертификат
- Перейдите на вкладку «Сертификаты» и нажмите «Добавить».
- Выберите вариант добавления сертификата, установленного на компьютере. Второй вариант — заявление на выпуск нового сертификата, если ваша конфигурация поддерживает выпуск через 1С.
- В списке выберите нужный сертификат. Ориентируйтесь на владельца и дату окончания.
- Укажите организацию и пользователя 1С, которому разрешено подписывать этим сертификатом.
- Введите 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 запрашивает сам криптопровайдер.
Как хранить ключ и не потерять подпись
Подпись юридически равна собственноручной. Если ключом воспользуется посторонний, документ будет считаться подписанным владельцем. Отсюда базовые правила:
- Держите ключ на токене, а не в реестре. Ключ из реестра легко скопировать вместе с профилем Windows. Ключи, которые выдаёт УЦ ФНС, создаются неэкспортируемыми и записываются на токен.
- Смените заводской PIN. У Рутокена по умолчанию пользовательский PIN —
12345678. Его знают все, кто хоть раз настраивал токен. - Не оставляйте токен в компьютере. Особенно на сервере терминалов, где к нему могут получить доступ другие пользователи.
- Разделите подписи по людям. Сотрудник подписывает своей подписью физлица с МЧД, а не токеном руководителя. Так видно, кто подписал документ, и отозвать доступ при увольнении проще: достаточно отменить доверенность.
- Следите за сроком. Сертификат УЦ ФНС действует 15 месяцев. Получите новый заранее, за две-три недели до окончания, иначе в день сдачи отчётности подписать будет нечем.
- При потере токена сразу отзовите сертификат в выдавшем УЦ. До отзыва сертификат считается действующим.
В карточке сертификата в 1С видно дату окончания. Если подписантов несколько, раз в квартал пройдитесь по списку сертификатов в настройках и отметьте, у кого срок истекает в ближайшие два месяца.
Частые вопросы
Можно ли пользоваться одной подписью в нескольких базах 1С?
Нужна ли подпись для работы в 1С вообще?
Подходит ли для 1С облачная подпись?
Что будет со старыми документами после замены сертификата?
Можно ли подписывать документы в 1С на Mac или Linux?
Источники
- Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»