Как настроить выгрузку весового маркированного сыра из 1С:ERP в оффлайн-кассу Viki Mini?

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

При работе с маркированной молочной продукцией, особенно с сырами в заводской упаковке, часто возникает сложная техническая задача. Сыр приходит в головах или кусках разного веса, каждый из которых имеет свой уникальный код DataMatrix. При этом в самом коде маркировки (QR-коде) информация о весе зачастую отсутствует (нет идентификатора применения AI 3103), а содержится только GTIN и серийный номер. Рассмотрим, как правильно настроить 1С:ERP и выгрузку в кассовое ПО (например, Viki Mini или системы на базе Frontol 6), чтобы процесс продажи проходил корректно.

Анализ проблемы: почему типовая выгрузка дает сбой?

Проанализируем стандартное поведение системы 1С:ERP при работе с весовым маркированным товаром. Основная сложность заключается в конфликте между логикой штрихкодирования и единицами измерения:

  1. Вариант со штуками: Если в карточке номенклатуры указать единицу измерения "шт", 1С корректно выгружает GTIN и признак маркировки. Однако ККМ воспринимает такой товар как штучный и подставляет цену за единицу (за всю упаковку), даже если цена в базе задана за килограмм.
  2. Вариант с килограммами: Если установить единицу измерения "кг", 1С:ERP начинает считать товар весовым. В типовых правилах обмена (особенно для формата Атол/Frontol) для весового товара приоритет отдается внутренним кодам PLU или весовым штрихкодам EAN-13. В результате GTIN (штрихкод маркировки) просто не попадает в файл обмена goods.txt. Касса не может сопоставить отсканированный DataMatrix с товаром.

Выясним причину: ККМ Viki Mini и аналогичные оффлайн-решения не умеют автоматически запрашивать вес конкретной головки сыра из системы «Честный знак» в реальном времени. Следовательно, единственный рабочий сценарий — это когда касса находит товар по GTIN из марки, понимает, что он весовой, и просит кассира ввести вес вручную или считать его с весов.

Шаг 1. Настройка карточки номенклатуры в 1С:ERP

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

В карточке номенклатуры Вид номенклатуры должен иметь тип "Товар" и установленную особенность учета "Молочная продукция (без подконтрольных ВетИС)". В настройках создания штрихкодов убедимся, что для товара зарегистрирован штрихкод типа EAN-13, который совпадает с GTIN, зашитым в марку DataMatrix.

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

Шаг 2. Разбор структуры файла обмена Frontol 6

Для корректной работы маркировки во Frontol 6 (и Viki Mini, работающих в этом формате) файл обмена должен содержать специфические данные. Рассмотрим ключевые поля в строке товара:

  1. Поле 21 (Тип товара): Для маркированной молочной продукции здесь должен быть код, указывающий на категорию маркировки.
  2. Поле 55 (Тип маркировки): Значение "Milk" или соответствующий числовой код.
  3. Штрихкод: Обязательно должен присутствовать GTIN, даже если товар весовой.

Проанализируем ситуацию: когда мы ставим "кг", 1С очищает поле штрихкода в выгрузке. Нам нужно это изменить.

Шаг 3. Доработка модуля выгрузки в 1С:ERP

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

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

Пример логики изменения кода (условно):


// В процедуре формирования текста запроса для выгрузки товаров
// Находим условие, где проверяется тип единицы измерения
Если ТипЕдиницыИзмерения = Перечисления.ТипыЕдиницИзмерения.Весовой Тогда
    // В типовом коде здесь может быть пропуск выгрузки штрихкода
    // Нам нужно принудительно добавить GTIN в поле Штрихкод
    ТекстЗапроса = ТекстЗапроса + " , ЕСТЬNULL(ТаблицаШтрихкодов.Штрихкод, '') КАК ШтрихкодИзКарточки ";
КонецЕсли;

После внесения изменений в запрос, необходимо убедиться, что в файл goods.txt для весового сыра попадает строка, содержащая и признак весового товара, и его GTIN.

Шаг 4. Настройка ККМ и проверка процесса продажи

После того как мы добились корректной выгрузки GTIN в составе весового товара, проверим логику работы на кассе. Разберем по шагам действия кассира:

  1. Кассир сканирует код DataMatrix на упаковке сыра.
  2. ККМ ищет в своей базе штрихкод, совпадающий с GTIN из марки.
  3. Поскольку мы выгрузили этот товар как весовой (с признаком дробного количества), ККМ находит его, но не закрывает позицию.
  4. ККМ выдает запрос: "Введите вес" или ожидает стабилизации весов.
  5. Кассир вводит вес, указанный на заводской этикетке (например, 0.456 кг).
  6. Товар добавляется в чек с корректной ценой за килограмм и привязанной маркой для выбытия.

Важные замечания по типам маркировки

Посмотрим на признак предмета расчета. Для маркированной продукции в ФФД 1.2 это критично. В файле обмена значение должно соответствовать коду 31 (изделия, подлежащие маркировке, имеющие код товара). Убедитесь, что ваша версия обработки выгрузки поддерживает передачу этого признака. Если версия ERP достаточно старая, этот код может проставляться неверно, и его также придется подправить в коде формирования файла.

Резюмируем: Основная сложность не в настройках 1С, а в ограничении типового алгоритма выгрузки, который "не верит", что у весового товара может быть фиксированный GTIN, требующий сканирования марки. Доработка запроса в обработке ВыгрузкаТоваровВККМ — самый надежный способ решить эту проблему без замены кассового оборудования.

← На главную