Как решить проблемы с ТС ПИоТ, Локальным Модулем и ошибками драйверов ККТ при проверке марок в 1С?

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

Переход розничной торговли на обязательный разрешительный режим работы с маркированной продукцией принес разработчикам и системным администраторам немало технических вызовов. Одной из самых обсуждаемых и сложных тем стало внедрение технологии ТС ПИоТ (Технических средств получения информации о товаре) и использование ЕСМ (Единого Сервисного Модуля) от компании ЕСП в связке с торговыми решениями «1С:Предприятие».

В этой статье мы подробно разберем, как устроена архитектура проверки кодов маркировки, почему возникают критические ошибки интеграции оборудования, как решить проблемы с драйверами кассовых аппаратов АТОЛ и ШТРИХ-М, а также выясним, почему при откладывании чеков в 1С «ломается» возможность их последующей продажи без повторного сканирования.

Архитектура работы разрешительного режима через ТС ПИоТ

Для начала проанализируем, как изменилась схема взаимодействия кассового программного обеспечения с системой «Честный Знак». Ранее, до массового внедрения разрешительного режима, кассовая программа напрямую отправляла запросы в систему ГИС МТ (Честный Знак) по протоколу HTTP/HTTPS, используя статический токен авторизации X-API-KEY. Эта схема уходит в прошлое и полностью заменяется архитектурой ТС ПИоТ. Для реализации этого контура в 1С 8 можно использовать механизм разрешительного режима с ТС ПИоТ, онлайн-проверкой и Локальным модулем «Честного знака», рассчитанный на обычные и управляемые формы.

Рассмотрим по шагам обновленный алгоритм авторизации и проверки марки перед ее добавлением в документ продажи:

  1. При сканировании маркированного товара кассовое ПО формирует специальный запрос.
  2. Вместо отправки напрямую в облако «Честного Знака», запрос перенаправляется на локальный модуль ЕСМ (Единый Сервисный Модуль), развернутый на рабочем месте кассира или локальном сервере торговой точки.
  3. Для выполнения защищенной проверки модуль ЕСМ запрашивает у фискального накопителя (ФН) кассового аппарата временный токен авторизации. Этот токен генерируется самой кассой, а время его жизни жестко ограничено и составляет ровно 1 час.
  4. Получив временный токен, ЕСМ выполняет HTTPS-запрос к CDN-площадкам «Честного Знака» для онлайн-проверки статуса марки.
  5. Если онлайн-проверка завершилась успешно и продажа разрешена, система возвращает специальный уникальный идентификатор (GUID запроса) и точное время проверки. Эти данные кассовая программа обязана записать в фискальный документ в тег 1265.
  6. Если сервера «Честного Знака» временно недоступны или на торговой точке отсутствует интернет, модуль ЕСМ автоматически перенаправляет запрос на Локальный Модуль (ЛМ) для выполнения оффлайн-проверки. При этом в тег 1265 передаются дополнительные параметры: ID установки ЛМ и версия его базы данных.

Ниже приведена упрощенная схема логики обработки маркировки в коде 1С:


// Пример логики обработки и проверки кода маркировки перед добавлением в корзину
Процедура ПроверитьКодМаркировкиПередДобавлением(ТекущийШтрихкод)
    // Формируем запрос к локальной службе ЕСМ ТС ПИоТ
    ПараметрыЗапроса = Новый Структура;
    ПараметрыЗапроса.Вставить("DataMatrix", ТекущийШтрихкод);
    ПараметрыЗапроса.Вставить("Timeout", 1.5); // Ограничение по времени ожидания ответа
    
    РезультатПроверки = МодульИнтеграцииЕСМ.ВыполнитьЗапрос(ПараметрыЗапроса);
    
    Если РезультатПроверки.Статус = "Разрешено" Тогда
        // Сохраняем полученный GUID запроса для записи в тег 1265
        ИдентификаторЗапроса = РезультатПроверки.GuidЗапроса;
        ВремяЗапроса = РезультатПроверки.ВремяЗапроса;
        ДобавитьТоварВЧек(ТекущийШтрихкод, ИдентификаторЗапроса, ВремяЗапроса);
    Иначе
        ВызватьИсключение "Продажа товара запрещена системой разрешительного режима!";
    КонецЕсли;
КонецПроцедуры

---

Решение ошибки «Используемый драйвер оборудования не сертифицирован»

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

Выясним истинную причину этого поведения. Проблема заключается в том, что для корректной работы ЕСМ (в частности, для интеграции с кассами марки АТОЛ) требуются специализированные сборки драйверов (например, из ветки 10.10.8.x), которые поставляются компанией ЕСП. Эти сборки содержат модифицированные библиотеки интеграции, которые перехватывают функции стандартной компоненты 1С для работы с ККТ.

Когда платформа 1С загружает такую стороннюю библиотеку, встроенный механизм валидации БПО (Библиотеки подключаемого оборудования) сверяет контрольные суммы и версию компоненты со списком официально сертифицированных драйверов. Не найдя модифицированную сборку в реестре одобренных, 1С блокирует ее работу или выдает предупреждение безопасности. Если вместо самостоятельной связки нужен готовый контур работы ККТ, можно рассмотреть обработки подключения онлайн-касс с поддержкой ТС ПИоТ, Локального модуля, ФФД 1.2 и разрешительного режима для поддерживаемых моделей АТОЛ, ШТРИХ-М и VIKI.

Способы решения проблемы:

---

Почему ломаются отложенные чеки и пропадает «криптохвост» марки?

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

Давайте разберем техническую изнанку этой проблемы. При первичном сканировании товара сканером штрихкодов считывается полный код формата DataMatrix, состоящий из кода идентификации (GTIN + серийный номер) и так называемого «криптохвоста» (кода проверки). Полный код маркировки необходим модулю ЕСМ для формирования запроса проверки и последующей передачи данных в ФН.

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

В результате при откладывании чека происходит следующее:


// Схематичный разбор процесса откладывания чека в кассовом ПО
Процедура ОтложитьТекущийЧек(ДокументЧек)
    Для Каждого Строка Из ДокументЧек.Товары Цикл
        Если Строка.МаркированныйТовар Тогда
            // Архитектурное ограничение:
            // Полный DataMatrix очищается, криптохвост отрезается
            Строка.КодМаркировкиДляХранения = ПолучитьОчищенныйКод(Строка.ПолныйКодМаркировки);
            Строка.Криптохвост = Неопределено; // Данные стерты из соображений безопасности
        КонецЕсли;
    КонецЦикла;
    СохранитьДокументВБазе(ДокументЧек);
КонецПроцедуры

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

Как с этим работать на практике? К сожалению, обойти это ограничение программным путем без нарушения требований безопасности невозможно. Необходимо донести до персонала и руководства торговых точек простое правило: маркированный товар нельзя отпускать клиенту до фактического пробития фискального чека. Откладывание чеков с маркировкой должно быть сведено к минимуму, а кассиры должны быть готовы к тому, что при восстановлении отложенного чека марки придется сканировать заново.

---

Работа Локального Модуля (ЛМ) и расшифровка тега 1265

Рассмотрим подробнее логику формирования фискальных признаков при различных режимах работы кассы. Существует распространенное заблуждение, что результаты проверки разрешительного режима печатаются непосредственно на бумажном чеке в виде символов [M], [M+] или [M-].

Проанализируем ситуацию:

Когда кассовая программа обращается к ЕСМ, возможны два сценария заполнения тега 1265:

  1. Режим Онлайн-проверки. В тег записывается стандартный пакет данных: GUID запроса к серверам ГИС МТ и время фиксации этого запроса.
  2. Режим Оффлайн-проверки (через Локальный Модуль). Если интернет-соединение отсутствует, но на рабочем месте развернут Локальный Модуль ЧЗ с актуальной базой ограничений, проверка считается легитимной. В этом случае в тег 1265 обязательно передаются четыре параметра: GUID запроса, время проверки, уникальный идентификатор установки Локального Модуля (ID ЛМ) и текущая версия его локальной базы данных. Наличие этих четырех параметров страхует торговую точку от штрафов со стороны контролирующих органов за продажу маркированного товара без проверки в разрешительном режиме.

Настроив корректное взаимодействие 1С, драйверов ККТ (желательно 32-битных версий) и модуля ЕСМ с активированной службой Локального Модуля, вы обеспечите стабильную и бесперебойную работу розничного магазина в любых сетевых условиях. Для практической настройки кассового места на УТ 11.5 с АТОЛ можно использовать инструкцию по настройке РМК, Локального модуля и ТС ПИоТ.

← На главную