Как настроить обмен с «Честным знаком» в серверной базе 1С:УНФ и исправить ошибку идентификатора СУЗ

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Торговля и дистрибуция
← На главную

Работа с маркированными товарами в системе «Честный знак» (ИС МП) требует четкой координации между программным обеспечением 1С, криптопровайдером и государственными серверами. При использовании серверной версии 1С:Управление нашей фирмой (УНФ) пользователи часто сталкиваются с тем, что привычные «клиентские» методы настройки электронной подписи не работают. Это связано с тем, что в клиент-серверной архитектуре подписание сообщений и обмен данными зачастую жестко закреплены за серверной стороной.

В этой статье мы подробно разберем, как правильно подготовить сервер к работе с ЭЦП, как обеспечить видимость ключей для службы 1С и что делать, если при попытке связи с СУЗ (Станцией управления заказами) возникает ошибка «Неизвестный статус запроса».

Особенности работы ЭЦП в серверном режиме 1С

Проанализируем архитектуру обмена. В файловой базе данных 1С может обращаться к криптопроваидеру (например, КриптоПро CSP) непосредственно с рабочего места пользователя. Однако в серверной базе (SQL-вариант) настройки интеграции с ИС МП в УНФ часто по умолчанию предполагают выполнение обмена именно на сервере. Это означает, что физический токен, вставленный в компьютер бухгалтера, не будет доступен серверу 1С без дополнительных манипуляций.

Рассмотрим основные шаги по подготовке сервера:

  1. Определение учетной записи службы 1С: Нам необходимо выяснить, от имени какого пользователя Windows запущена служба Агент сервера 1С:Предприятия. Обычно это технический пользователь USR1CV8. Именно в его профиле должен быть установлен сертификат электронной подписи.
  2. Установка КриптоПро на сервере: На сервере приложений должен быть установлен криптопровайдер. Важно помнить, что для работы в составе серверных служб требуется соответствующая серверная лицензия КриптоПро CSP.
  3. Настройка прав доступа: Пользователь, под которым работает сервер 1С, должен иметь права на чтение веток реестра, где хранятся ключи, и доступ к папкам криптопровайдера.

Перенос ключа с токена на сервер

Часто ключи хранятся на защищенных носителях (Рутокен, eToken). В серверном режиме проброс USB-устройства через RDP-сессию не является надежным решением, так как после закрытия сессии доступ к ключу пропадет. Выясним, как сделать ключ доступным постоянно.

Наиболее эффективный способ — копирование контейнера закрытого ключа в реестр локального компьютера сервера. Разберем этот процесс:

  1. Запустите КриптоПро CSP на сервере от имени администратора.
  2. Перейдите на вкладку «Сервис» и выберите «Скопировать контейнер».
  3. Выберите ваш ключ на токене и в качестве целевого хранилища укажите Реестр (желательно выбрать уровень «Компьютер», чтобы ключ был доступен всем пользователям, или профиль конкретно USR1CV8).
  4. После копирования установите сертификат через вкладку «Сервис» — «Просмотреть сертификаты в контейнере», выбрав новый контейнер в реестре. При установке обязательно нажмите кнопку «Установить» в хранилище «Личное».

Важный момент: если при создании ключа в налоговой или УЦ была установлена галка «Запретить экспорт», скопировать его в реестр обычными средствами не получится. В таком случае придется использовать физическое подключение токена к серверу или программные USB-хабы.

Настройка 1С:Предприятие для работы на сервере

После того как сертификат установлен в системе, нам необходимо «объяснить» программе 1С, как его использовать.

Перейдем в раздел Настройки электронной подписи и шифрования. Здесь необходимо выполнить следующие действия:

  1. На закладке «Программы» убедитесь, что КриптоПро CSP добавлен и проходит проверку.
  2. На закладке «Сертификаты» добавьте ваш сертификат.
  3. Зайдите в карточку сертификата и перейдите на вкладку «Состав». Нажмите кнопку «Проверить». Если на сервере все настроено верно, проверка должна показать успешный результат и на клиенте, и на сервере.
  4. Обязательно проверьте наличие флажков «Проверять подпись на сервере» и «Подписывать на сервере» в настройках программы.

Устранение ошибки «Неизвестный статус запроса на получение идентификатора соединения»

Рассмотрим ситуацию, когда связь с ИС МП установлена, но при настройке СУЗ (Станции управления заказами) для получения кодов маркировки возникает ошибка в общем модуле ИнтерфейсСУЗСлужебный. Эта ошибка означает, что 1С получила от сервера Честного Знака ответ, формат которого она не может распознать (поле status в JSON-ответе имеет неожиданное значение или отсутствует).

Разберем по шагам, как исправить эту проблему:

  1. Проверка параметров OMS ID и Идентификатора соединения: Эти данные нужно брать в личном кабинете «Честного Знака» в разделе «Станция управления заказами» -> «Устройства». Помните, что OMS ID — это уникальный номер вашей станции, а Connection ID (Идентификатор соединения) генерируется для конкретного устройства. Скопируйте их повторно, исключая лишние пробелы.
  2. Актуализация токена авторизации: В последних версиях 1С:УНФ поле «Токен» в настройках СУЗ заполнять вручную не нужно. Если настроен действующий сертификат ЭЦП, программа сама получит динамический токен. Чтобы исключить человеческий фактор и простои, лучше всего реализовать автоматическое обновление токенов Честного Знака или использовать решение для автоматического обновления токенов ИСМП по расписанию.
  3. Проверка адреса сервера: В зависимости от товарной группы и региона, адреса СУЗ могут отличаться. Попробуйте уточнить URL в техподдержке или проверьте, нет ли в конце адреса лишнего слэша /.
  4. Обновление конфигурации: «Честный знак» регулярно обновляет API. Ошибка часто свидетельствует о том, что версия 1С использует устаревшие алгоритмы. Если в бизнес-процессе вам также требуется сохранение полных кодов маркировки с криптохвостом в отдельный файл, убедитесь, что конфигурация и расширения актуальны.

Пример диагностики через код

Для технических специалистов проанализируем, где именно может происходить сбой. В типовых решениях за получение идентификатора отвечает код, подобный следующему:


РезультатБИП = ИнтеграцияИСМП.ВыполнитьЗапросКСерверу(ПараметрыЗапроса);
Если РезультатБИП.ДанныеОтвета.Свойство("status") Тогда
    Статус = ИнтерфейсСУЗСлужебный.СтатусОбработки(РезультатБИП.ДанныеОтвета["status"]);
Иначе
    // Здесь возникает исключение, так как статус не определен
    ВызватьИсключение "Неизвестный статус ответа СУЗ";
КонецЕсли;

Чтобы выяснить истинную причину, можно временно воспользоваться отладкой на сервере и посмотреть содержимое структуры РезультатБИП.ДанныеОтвета. Часто там содержится текстовое описание ошибки от серверов ЦРПТ, которое 1С просто не выводит на экран в понятном виде.

Итоги и рекомендации

Мы выяснили, что стабильная работа с «Честным знаком» в серверной 1С:УНФ возможна только при условии полной настройки криптографии на стороне сервера приложений.

Помните: работа через веб-клиент накладывает дополнительные ограничения. Если пользователи заходят в 1С через браузер, убедитесь, что на сервере, где опубликован веб-сервер (Apache или IIS), также настроены все права для работы с криптопровайдером. Рекомендуется использовать Тонкий клиент для минимизации проблем с передачей контекста электронной подписи.

← На главную