Почему «Честный знак» использует токены и сертификаты для бизнеса и как работает разрешительный режим в 1С?

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

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

Различие между проверкой потребителя (B2C) и проверкой бизнеса (B2B)

Проанализируем сначала базовое противоречие: почему обычный человек может анонимно просканировать код в мобильном приложении и получить ответ, а бизнес обязан использовать сложные методы авторизации? Разберем основные причины:

  1. Юридическая значимость действия. Запрос от физического лица носит информационный характер. Запрос от кассового ПО в момент продажи — это юридически значимая операция. Система должна точно идентифицировать ИНН продавца, чтобы проверить, имеет ли он право продавать конкретный товар (принадлежит ли код ему), не истек ли срок годности и не заблокирована ли продажа этой партии государственными органами.
  2. Объем данных и глубина проверки. В режиме потребителя система просто сообщает: «Марка легальна». В разрешительном режиме для бизнеса проверяется цепочка владельцев, статус вывода из оборота, МРЦ (для табака) и соответствие разрешительным документам.
  3. Ответственность за DDoS. Токены и сертификаты служат первым барьером защиты инфраструктуры. Если бы запросы от миллионов касс были анонимными, любая ошибка в коде кассового ПО (бесконечный цикл запросов) могла бы положить серверы ГИС МТ. Идентификация через токены позволяет применять механизмы throttling (ограничение частоты запросов) для конкретного участника оборота, не отключая при этом всю систему.

Зачем нужен CDN-токен и как он работает

Рассмотрим подробнее механизм работы так называемого CDN-токена. Многие ошибочно полагают, что это избыточное требование, однако за ним стоит распределенная архитектура доставки контента (Content Delivery Network).

Когда мы настраиваем 1С для работы с разрешительным режимом, программа запрашивает токен авторизации. Этот токен позволяет кассовому ПО обращаться не к центральному серверу «Честного знака», а к ближайшему узлу CDN. Это критически важно для розничной торговли, где время ответа системы не должно превышать 1,5 секунд. Без токена маршрутизация запроса и быстрая авторизация на граничных серверах были бы невозможны.

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

Почему логика проверок вынесена из кассы (ККТ) в ПО (1С)

Выясним причину, по которой ГИС МТ отказалась от полной проверки марок средствами только фискального накопителя (ФН) и прошивки кассы. Рассмотрим технические ограничения кассовых аппаратов:

Техническая реализация в 1С: работа с токенами

Разберем, как в типовых решениях 1С (например, «Управление торговлей 11» или «Розница 3.0») реализовано управление этими сущностями. Для взаимодействия используется объект ИнформационнаяСистемаМаркировки и соответствующие регистры сведений.

Проанализируем процесс получения токена:


// Примерный алгоритм получения токена (упрощенно)
Процедура ПолучитьТокенАвторизации(Организация)
    ПараметрыПодключения = МаркировкаСервер.ПараметрыПодключенияКГИСМТ(Организация);
    
    // Требуется наличие установленного сертификата УКЭП на сервере или рабочем месте
    Результат = МаркировкаВызовСервера.СгенерироватьТокенCDN(ПараметрыПодключения);
    
    Если Результат.Статус Тогда
        // Записываем токен в защищенное хранилище или соответствующий регистр
        МаркировкаСервер.СохранитьТокен(Организация, Результат.Токен, Результат.ДатаИстечения);
    КонецЕсли;
КонецПроцедуры

Заметим, что использование УКЭП обязательно только в момент генерации токена. В процессе самой продажи (сканирования каждой бутылки молока) электронная подпись не используется — касса отправляет только текстовый токен в заголовке HTTP-запроса, что минимизирует нагрузку на процессор кассового узла.

Офлайн-модуль и защита от перебоев связи

Рассмотрим ситуацию, когда в магазине пропадает интернет. Оппоненты системы часто указывают на «закабаление» бизнеса зависимостью от онлайна. Однако в архитектуру заложен механизмы обхода этой проблемы:

  1. Локальная проверка по базам. Для крупных торговых сетей предусмотрена возможность установки локального модуля (аналог УТМ в ЕГАИС), который предварительно скачивает списки запрещенных кодов и позволяет проводить проверку мгновенно даже без внешнего интернета.
  2. Аварийный режим. В случае массовых сбоев на стороне ГИС МТ, система переходит в режим, разрешающий продажи без онлайн-проверки в течение определенного времени (согласно постановлениям правительства, обычно до 72 часов).

Выводы и рекомендации

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

Для успешной работы рекомендуем:

← На главную