Почему 1С:Розница 3.0 не видит токен авторизации «Честный знак» и требует сертификат электронной подписи?

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

При работе с маркированной продукцией (упакованная вода, молочная продукция) в программе 1С:Розница 3.0 пользователи часто сталкиваются с ситуацией, когда система вместо использования настроенного токена авторизации начинает требовать наличие сертификата электронной подписи (УКЭП) на рабочем месте кассира. Даже если была выполнена базовая инструкция по настройке торгового места на базе РМК, ошибка может звучать так: «В информационной базе для пользователя не найдено зарегистрированных сертификатов электронной подписи, связанных с организацией». Особенно остро эта проблема проявляется в распределенных информационных базах (РИБ), где на одном узле продажа проходит успешно, а на другом — блокируется.

Разберем детально причины этого поведения системы и пошагово пройдем по методам исправления ситуации.

Анализ механизма проверки кодов маркировки

Проанализируем, почему программа выдает ошибку именно о сертификатах, если вы используете токен. В современных версиях 1С (начиная с релизов 3.0.8 и выше) реализована поддержка разрешительного режима. Когда кассир сканирует марку, программа обращается к системе «Честный знак» для проверки кода. Для этой проверки система должна авторизоваться.

Существует два основных способа авторизации в ИС МП для розницы:

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

Выясним причину: ошибка о поиске сертификатов является «вторичной». Она возникает, когда программа по какой-то причине не смогла найти или прочитать действующий токен в регистре сведений. В этом случае алгоритм 1С пытается переключиться на резервный вариант — использование сертификата, и, не нашедши его, выдает финальное сообщение об ошибке.

Проверка прав доступа к справочникам и регистрам

Рассмотрим техническую сторону вопроса. Одной из неочевидных причин является отсутствие у пользователя (кассира) прав на чтение объектов, связанных с криптографией или токенами. Быстро проверить текущие полномочия сотрудников поможет отчет Пользователи и группы доступа. Рассмотрим пример кода функции СертификатыПользователяДляПодписиПоОрганизации, которая часто участвует в процессе инициализации проверки:


Функция СертификатыПользователяДляПодписиПоОрганизации(Организация) Экспорт
    Сертификаты = Новый Массив;
    ЕстьПравоДоступаЧтение = ПравоДоступа("Чтение", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования);
    Если Не ЕстьПравоДоступаЧтение Тогда
        Возврат Сертификаты;
    КонецЕсли;
    Запрос = Новый Запрос(
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        | Сертификаты.Ссылка КАК Сертификат
        |ИЗ
        | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты
        |ГДЕ
        | Сертификаты.Организация = &Организация
        | И (Сертификаты.Пользователь = &Пользователь
        | ИЛИ Сертификаты.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка))");
    Запрос.УстановитьПараметр("Организация", Организация);
    Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь);
    Выборка = Запрос.Выполнить.Выбрать;
    Пока Выборка.Следующий Цикл
        Сертификаты.Добавить(Выборка.Сертификат);
    КонецЦикла;
    Возврат Сертификаты;
КонецФункции

Проанализируем эту ситуацию: если у кассира нет права Чтение на справочник СертификатыКлючейЭлектроннойПодписиИШифрования, функция возвращает пустой массив. Аналогичная логика работает и с регистром токенов. Если в базе включен механизм RLS (Ограничение доступа на уровне записей), пользователь может просто «не видеть» нужную запись в регистре ТокеныАвторизацииИСМП, хотя физически в базе она присутствует.

Настройка разрешительного режима и ключей доступа

Посмотрим на специфику релиза 3.0.8.109. В этой версии активно внедрялся разрешительный режим для воды и молочки, а также автоматизация процесса подготовки к продаже маркированного разливного пива. Важно различать два вида данных для авторизации в разделе «Настройки интеграции с ИС МП»:

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

Решение проблем в распределенных базах (РИБ)

Если в центральном узле все работает, а в периферийном нет, выполним следующие шаги по шагам:

  1. Проверим наличие записи в регистре. Перейдем в «Функции для технического специалиста» (ранее «Все функции»), найдем регистр сведений Токены авторизации ИС МП. Убедимся, что там есть актуальная запись для вашей организации — для проверки доступности регистра токенов под разными пользователями пригодится отчет по анализу прав доступа пользователей и RLS в 1С.
  2. Если запись есть, но программа ее «не видит», попробуем переввести токен вручную непосредственно в проблемном узле. Для стабильной работы в будущем рекомендуется использовать решение для автоматического обновления токенов ИСМП для 1С:Розница, которое поддерживает актуальность данных.
  3. Проверим справочник Организации. Убедимся, что ИНН и КПП в периферийной базе полностью совпадают с данными в токене.
  4. Если возникают расхождения в учете, можно использовать запрос остатков из системы Честный знак, чтобы сверить данные в 1С и в личном кабинете системы маркировки.
  5. Проанализируем настройки рабочего места. Перейдем в раздел «Продажи»«Настройки сканирования кодов маркировки». Проверим, какой способ проверки установлен для текущего рабочего места. Если там жестко задано «Использовать сертификат», необходимо сменить настройку на использование токена или общую настройку системы.

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

Подводя итог, отметим: ошибка «не найдено сертификатов» — это лишь симптом того, что 1С не смогла авторизоваться в системе маркировки программным путем через токен. Основными методами решения являются: проверка прав доступа пользователя к криптографическим справочникам, ручное обновление токена в узле РИБ и корректное заполнение «Ключа доступа» для разрешительного режима в настройках интеграции с ИС МП — быстро исправить настройки ролей поможет обработка настройки прав доступа пользователей для 1С:Розница.

← На главную