Как подписывать документы в 1С-ЭДО через веб-клиент и передавать код подразделения контрагента

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При использовании веб-клиента 1С на мобильных устройствах (например, на планшетах под управлением iOS или Android) часто возникают вопросы: как организовать подписание электронных документов и как передавать специфические реквизиты, такие как код подразделения контрагента. Разберем подробно оба этих сценария.

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

Проанализируем, почему возникает проблема подписи на мобильных устройствах. Браузеры на планшетах и смартфонах не поддерживают десктопные плагины криптографии (такие как CryptoPro Browser plug-in или внешние компоненты 1С). Из-за этого подписать документ непосредственно на стороне клиента в веб-браузере невозможно.

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

  1. Настройка программы: В настройках подписи и шифрования 1С необходимо указать, что криптография выполняется на сервере.
  2. Установка сертификата: Сертификат и закрытый ключ подписи устанавливаются непосредственно на сервер приложений 1С. Они должны быть доступны служебной учетной записи операционной системы, от имени которой запущен агент сервера 1С (по умолчанию USR1CV8).
  3. Лицензирование криптопровайдера: Обратите внимание, что для работы криптопровайдера (например, КриптоПро CSP) на серверных операционных системах требуется специальная серверная лицензия ПО. Обычная пользовательская лицензия работать не будет.
  4. Физические носители: Подключить USB-токен (Рутокен, JaCarta) к планшету для серверного подписания нельзя. Ключ должен находился на сервере или перенаправляться с помощью технологий виртуализации USB.
  5. Альтернатива (Облачная подпись): При работе с веб-клиента удобным решением является использование сервиса облачной подписи (например, КриптоПро DSS). В этом случае ключ хранится в защищенном сервисе, а пользователь подтверждает подписание с помощью SMS или Push-уведомлений.

Передача кода подразделения контрагента в электронном документе

Выясним, как передать код подразделения в УПД для контрагентов, выдвигающих такие требования. В форматах электронных документов предусмотрены текстовые дополнительные поля (структуры <ИнфПолеФХЖ1> или <ТекстИнф>).

Рассмотрим возможные варианты реализации:

  1. Штатный механизм без доработки кода: В современных релизах типовых конфигураций на базе Библиотеки электронных документов (БЭД) передачу дополнительных реквизитов можно настроить в пользовательском режиме. В разделе настроек заполнения дополнительных полей ЭДО можно сопоставить текстовый реквизит документа реализации с нужным полем XML-файла.

    Если подразделение контрагента является обособленным и имеет собственный идентификатор участников ЭДО, достаточно создать контрагента с видом «Обособленное подразделение» и указать его КПП и соглашение ЭДО.

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

Посмотрим, где в коде типовых конфигураций (например, в 1С:Бухгалтерия 8) находятся механизмы формирования структуры ЭДО:

Пример обращения к методу добавления дополнительных данных в дерево параметров документа:


// Добавление произвольного поля в структуру электронного документа
ЭлектронноеВзаимодействие.ДобавитьДопДанныеВДерево(
    ДеревоДанных, 
    "КодПодразделения", 
    ЗначениеКодаПодразделения
);

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

← На главную