Как правильно передавать идентификаторы номенклатуры при работе с Атол Онлайн?

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

В процессе интеграции 1С:Управление торговлей с сервисом Атол Онлайн часто возникает потребность обеспечить связку между проданным товаром в чеке и его записью в учетной системе. Зачастую разработчики пытаются использовать поле тег 1162 (Код товара) для передачи внутренних идентификаторов, таких как GUID номенклатуры, характеристик и серий. Рассмотрим, почему этот путь является неверным и как организовать процесс корректно.

Почему использование тега 1162 для собственных нужд — это ошибка?

Важно понимать, что тег 1162 жестко зарезервирован для передачи данных о маркированной продукции (КМ) в систему «Честный ЗНАК». Фискальный накопитель и сервис Атол Онлайн производят проверку содержимого этого тега на соответствие форматам GS1 Data Matrix.

Если вы начнете передавать туда произвольные GUID, преобразованные в 16-ричный вид, произойдет следующее:

  1. Система валидации Атол Онлайн попытается распознать данные как код маркировки.
  2. В случае несоответствия формату (а ваш GUID не является легитимным кодом маркировки), сервис может вернуть ошибку или исказить данные.
  3. Даже если данные «пройдут» технически, вы нарушите логику работы с маркировкой, что приведет к проблемам с отчетностью в налоговые органы.

Как реализовать корректную связку данных?

Для решения задачи идентификации товаров в пробитом чеке необходимо опираться на стандартные механизмы обмена, заложенные в API Атол Онлайн.

1. Использование уникального ID документа
При отправке запроса на печать чека сервис Атол Онлайн возвращает уникальный uuid фискального документа. Именно этот идентификатор является вашим «ключом» для сопоставления. Рекомендуем сохранять этот uuid в регистре сведений или табличной части документа 1С сразу после получения успешного ответа от сервиса.

2. Механизм обратной связи (Вебхуки и статусная модель)
Вместо попыток зашифровать GUID внутри кода товара, используйте событийную модель:

Техническая сторона: преобразование GUID в 16-ричный вид

Если вам все же необходимо перевести GUID в 16-ричный формат для других целей (например, для собственной базы данных или логов), воспользуйтесь следующим алгоритмом на встроенном языке 1С:


// Пример преобразования GUID в 16-ричный вид
Функция ПреобразоватьGUIDВHex(Знач ИсходныйGUID) Экспорт
    СтрокаGUID = СтрЗаменить(Строка(ИсходныйGUID), "-", "");
    Результат = "";
    Для Индекс = 0 По (СтрДлина(СтрокаGUID) / 2) - 1 Цикл
        Пара = Сред(СтрокаGUID, Индекс * 2 + 1, 2);
        Результат = Результат + Пара + " ";
    КонецЦикла;
    Возврат СокрЛП(Результат);
КонецФункции

Разберем, что происходит в этом коде:

Заключение и рекомендации

Проанализировав ситуацию, можно сделать вывод, что стремление «сжать» GUID для вставки в тег 1162 продиктовано желанием упростить поиск данных в 1С. Однако использование полей маркировки для нецелевых задач несет высокие операционные риски.

Всегда отдавайте предпочтение стандартным идентификаторам (uuid), которые предоставляет API. Касса онлайн всегда находится в сети, и взаимодействие между учетной системой и сервисом должно строиться на основе обмена статусами, а не на попытках внедрить внутренние данные в фискальные поля.

Помните: тег 1162 — это поле для государственных нужд (маркировка), оно не предназначено для хранения ваших внутренних артикулов или идентификаторов связи.

← На главную