При использовании веб-клиента 1С на мобильных устройствах (например, на планшетах под управлением iOS или Android) часто возникают вопросы: как организовать подписание электронных документов и как передавать специфические реквизиты, такие как код подразделения контрагента. Разберем подробно оба этих сценария.
Особенности использования электронной подписи в веб-клиенте
Проанализируем, почему возникает проблема подписи на мобильных устройствах. Браузеры на планшетах и смартфонах не поддерживают десктопные плагины криптографии (такие как CryptoPro Browser plug-in или внешние компоненты 1С). Из-за этого подписать документ непосредственно на стороне клиента в веб-браузере невозможно.
Для решения этой задачи необходимо перенести криптографические операции на сторону сервера 1С. Рассмотрим порядок настройки и ключевые требования:
Настройка программы: В настройках подписи и шифрования 1С необходимо указать, что криптография выполняется на сервере.
Установка сертификата: Сертификат и закрытый ключ подписи устанавливаются непосредственно на сервер приложений 1С. Они должны быть доступны служебной учетной записи операционной системы, от имени которой запущен агент сервера 1С (по умолчанию USR1CV8).
Лицензирование криптопровайдера: Обратите внимание, что для работы криптопровайдера (например, КриптоПро CSP) на серверных операционных системах требуется специальная серверная лицензия ПО. Обычная пользовательская лицензия работать не будет.
Физические носители: Подключить USB-токен (Рутокен, JaCarta) к планшету для серверного подписания нельзя. Ключ должен находился на сервере или перенаправляться с помощью технологий виртуализации USB.
Альтернатива (Облачная подпись): При работе с веб-клиента удобным решением является использование сервиса облачной подписи (например, КриптоПро DSS). В этом случае ключ хранится в защищенном сервисе, а пользователь подтверждает подписание с помощью SMS или Push-уведомлений.
Передача кода подразделения контрагента в электронном документе
Выясним, как передать код подразделения в УПД для контрагентов, выдвигающих такие требования. В форматах электронных документов предусмотрены текстовые дополнительные поля (структуры <ИнфПолеФХЖ1> или <ТекстИнф>).
Рассмотрим возможные варианты реализации:
Штатный механизм без доработки кода: В современных релизах типовых конфигураций на базе Библиотеки электронных документов (БЭД) передачу дополнительных реквизитов можно настроить в пользовательском режиме. В разделе настроек заполнения дополнительных полей ЭДО можно сопоставить текстовый реквизит документа реализации с нужным полем XML-файла.
Если подразделение контрагента является обособленным и имеет собственный идентификатор участников ЭДО, достаточно создать контрагента с видом «Обособленное подразделение» и указать его КПП и соглашение ЭДО.
Программная доработка (дополнение данных): Если штатных настроек недостаточно, потребуется небольшая доработка. Доработки рекомендуется выполнять строго через расширения конфигурации, чтобы не нарушать типовую конфигурацию и не затруднять обновления.
Посмотрим, где в коде типовых конфигураций (например, в 1С:Бухгалтерия 8) находятся механизмы формирования структуры ЭДО:
В актуальных релизах используется общая библиотека электронного взаимодействия. Формирование дополнительных данных выполняется вызовом метода ЭлектронноеВзаимодействие.ДобавитьДопДанныеВДерево().
В более ранних релизах или специализированных модулях алгоритм заполнения находится в общем модуле ОбменСКонтрагентамиБП (или ЭлектронноеВзаимодействиеБП) в процедуре ЗаполнениеРасширеннойЧастиУПД.
Пример обращения к методу добавления дополнительных данных в дерево параметров документа:
// Добавление произвольного поля в структуру электронного документа
ЭлектронноеВзаимодействие.ДобавитьДопДанныеВДерево(
ДеревоДанных,
"КодПодразделения",
ЗначениеКодаПодразделения
);
Перед внесением изменений обязательно уточните у контрагента точное наименование технического поля и формат, в котором он ожидает получить код подразделения в XML-файле.