Внедрение системы маркировки (например, для обуви, одежды или табака) в платформу 1С 7.7 является серьезным вызовом для разработчика, так как типовые решения от фирмы «1С» для этой версии платформы более не выпускаются. Однако, несмотря на возраст системы, «клюшки» вполне справляются с этой задачей при правильном техническом подходе. В этой статье мы подробно разберем, как подготовить вашу самописную или типовую конфигурацию к работе с «Честным ЗНАКом», настроить торговое оборудование и обеспечить соблюдение законодательных норм.
Для начала проанализируем, чем маркировка отличается от привычного всем штрихкодирования. Обычный штрихкод (EAN-13) идентифицирует товарную позицию в целом (например, «Туфли мужские, модель А, размер 42»). Код маркировки (DataMatrix) идентифицирует каждую конкретную единицу товара. Это означает, что в системе учета теперь недостаточно просто хранить количество — необходимо фиксировать уникальный идентификатор каждой коробки.
Рассмотрим структуру кода DataMatrix. Он содержит:
При реализации учета в 1С 7.7 нам потребуется доработать структуру метаданных для хранения этих кодов, особенно если планируется поштучный учет остатков.
Основная задача при розничной продаже — передать код маркировки в контрольно-кассовую технику (ККТ). Выясним, как это работает на программном уровне. Согласно форматам фискальных данных (ФФД 1.2), код маркировки должен передаваться в кассовый аппарат в виде специального реквизита (тега).
Разберем последовательность действий при пробитии чека:
Важный момент: для работы с современными требованиями (ФФД 1.2) старые драйверы (например, АТОЛ 8 или 9 версии) не подойдут. Необходимо использовать актуальные версии драйверов (АТОЛ 10.х или Штрих-М 5.х). Подключение таких драйверов к 1С 7.7 выполняется через COM-объекты. Рассмотрим пример инициализации объекта драйвера:
// Пример создания объекта драйвера АТОЛ 10 в 1С 7.7
Попытка
Драйвер = СоздатьОбъект("AddIn.Fptr10");
Исключение
Сообщить("Драйвер ККТ не установлен!");
КонецПопытки;
При продаже товара мы должны передать код маркировки. Проанализируем ситуацию: в коде маркировки зашит артикул (через GTIN), поэтому теоретически можно обойтись без сканирования обычного штрихкода, если ваша система умеет сопоставлять GTIN из марки с номенклатурой в базе.
С 2024 года вводится обязательный «разрешительный режим». Теперь программа перед пробитием чека должна отправить запрос в «Честный ЗНАК», чтобы проверить статус кода. Если код не принадлежит продавцу или уже выведен из оборота, продажа должна быть заблокирована.
Для реализации этого в 1С 7.7 нам понадобится работа с HTTP-запросами к API «Честного ЗНАКа». Поскольку встроенных средств для полноценной работы с JSON и сложными запросами в 7.7 мало, мы рекомендуем использовать объект WinHttp.WinHttpRequest.5.1. Посмотрим, как может выглядеть запрос на проверку кода:
// Примерная схема запроса к API Честного ЗНАКа
WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Open("POST", "https://api.crpt.ru/api/v3/true-api/codes/check", 0);
WinHttp.SetRequestHeader("Content-Type", "application/json");
WinHttp.SetRequestHeader("Authorization", "Bearer " + ТокенАвторизации);
// Формирование тела запроса и отправка...
WinHttp.Send(ТелоЗапросаJSON);
Если WinHttp.Status = 200 Тогда
// Разбор ответа и принятие решения о продаже
КонецЕсли;
Маркированные товары поступают от поставщика через ЭДО в виде Универсального передаточного документа (УПД), содержащего все коды маркировки. Чтобы не вводить их вручную, необходимо реализовать импорт данных. Большинство операторов ЭДО (СБИС, Диадок) предоставляют внешние компоненты или API для интеграции с 1С 7.7.
Рассмотрим этапы приемки товара:
При работе со сканерами в 1С 7.7 часто возникает проблема с непечатными символами. Код GS1 DataMatrix содержит спецсимвол GS (ASCII 29), который служит разделителем полей. Если сканер настроен в режиме эмуляции клавиатуры, этот символ может «теряться».
Рекомендация: Настраивайте сканеры в режим COM-портов (VCP). В 1С 7.7 используйте внешнюю компоненту Scaner1C.dll или аналогичные для перехвата данных из порта. Это позволит получать «сырую» строку кода вместе со всеми управляющими символами, что критически важно для корректной передачи кода в ККТ.
Многие участники обсуждения советуют переходить на «1С:Управление торговлей 11» или «Розницу 2/3», где функционал маркировки поддерживается вендором. Однако, если ваша конфигурация на 7.7 сильно кастомизирована и содержит уникальные бизнес-процессы, «допиливание» её под маркировку может быть экономически оправдано.
Подведем итог: внедрение маркировки в 1С 7.7 вполне реально. Основные усилия следует сосредоточить на:
Для упрощения задачи можно рассмотреть приобретение готовых внешних модулей от независимых разработчиков, которые интегрируются в 1С 7.7 и берут на себя всю специфику обмена данными с ГИС МТ, оставляя в учетной системе только привычные документы.