Система маркировки товаров средствами идентификации (кодами Data Matrix) перестала быть экспериментом. С 2019 года она охватила табачную продукцию, обувь, парфюмерию, фотоаппараты, шины, молочную продукцию, упакованную воду, велосипеды и кресла-коляски. Маркировка товаров в 1с, как основной ERP и учетной системе в РФ, встроила поддержку маркировки на всех уровнях: от розничного чека до документа «Транспортная накладная» в формате ЭДО.
Разберем, как именно работает этот механизм внутри платформы 8.3 и отраслевых конфигураций.
Режимы работы с маркировкой в 1С- УНФ, УТ 11, БП 3.0, Розница 2.3
Каждая конфигурация предлагает свой набор функциональных блоков. В «Бухгалтерии предприятия 3.0» маркировка сведена к минимуму: фиксация входящих кодов в документах поступления и возможность печати чека с коррекцией признака предмета расчета. В «Управлении торговлей 11» и «УНФ» функционал развернут полностью: от заказа поставщику до акта сверки с оператором «Честный ЗНАК».
В «Рознице 2.3» ключевой блок - автоматизация сменного задания. Кассовое место через обработку «Рабочее место кассира» получает команду на запрос кодов из базы данных. Если товар подлежит выбытию, без сканирования кода Data Matrix операция не пройдет. Для УТ 11 и КА 2.5 реализован механизм «Заказов на эмиссию кодов» - поставщик не может отгрузить товар, пока не сгенерирует в системе заказ на коды маркировки и не передаст их в 1С через универсальный формат.
Техническое отличие между конфигурациями кроется в объекте метаданных «Регистр сведений Коды маркировки». В УТ 11 этот регистр хранит до 64 полей на один код: статус в обороте, дату выбытия, номер документа ввода, владельца агрегата. В БП 3.0 регистр усечен до 12 полей - только контроль остатков по счетам 41 и 10 без трекинга смены владельца.
Механизм работы с кодами Data Matrix (формат GS1)
Код маркировки в 1С - не просто строка. Это структурированный объект, содержащий GTIN (глобальный номер товара), серийный номер, криптохвост (КМ) и проверочные символы. 1С использует встроенную библиотеку сканирования через драйверы ККТ или ручной ввод через форму «Ввод кодов маркировки».
При приемке товара оператор выбирает документ «Поступление товаров и услуг», нажимает кнопку «Заполнить кодами маркировки». Система предлагает три варианта: ввод с клавиатуры, сканирование каждым кодом или загрузка из файла (XML/CSV от контрагента).
Внутри 1С запускается проверка формата: код должен содержать 4 обязательных блока: Application Identifier (AI) 01 для GTIN, AI 21 для серийного номера, AI 91 для ключа проверки. Любое отклонение вызывает ошибку «Неверная структура кода».
После ввода коды попадают во временное хранилище документа. При проведении поступления 1С выполняет валидацию через HTTP-запрос к ГИС МТ («Честный ЗНАК»). Запрос уходит через встроенный обработчик «ОбменСМаркированнымиТоварами». Если код существует в системе и не числится за другим юрлицом, приход подтверждается. Код сохраняется в регистр «Коды маркировки» со статусом «В обороте».
Для розничной продажи механизм другой. Кассир сканирует код. 1С проверяет наличие этого кода в базе на остатке. Если код найден, формируется запрос на выбытие через УТМ (универсальный транспортный модуль «Честного ЗНАКа»). УТМ возвращает подтверждение или отказ (например, код уже выбыл ранее). Только после положительного ответа от УТМ 1С разрешает фискализацию чека и списывает код в регистре «Коды маркировки», меняя статус на «Выбыл».
Интеграция через УТМ: обмен данными и обработка ошибок
УТМ Java-приложение, которое устанавливается на сервере или рабочей станции. 1С общается с ним через HTTP-запросы по порту, указанному в настройках (по умолчанию 8080). В конфигурациях 1С есть обработка «Подключение к УТМ». В ней прописывается адрес (например, http://localhost:8080), логин и пароль, выданный оператором.
Типовой сценарий запроса: 1С отправляет JSON-пакет «ciseMarkingCode» с кодом Data Matrix, INN, и идентификатором документа. УТМ перенаправляет запрос в облако «Честного ЗНАКа». Ответ приходит в формате JSON: `{ "result": "accepted", "errorCode": 0 }` или `{ "result": "rejected", "errorCode": 400, "description": "Код не найден" }`.
Ошибки делятся на три категории. Первая: сетевые проблемы (таймаут 30 секунд). 1С автоматически повторит запрос трижды с интервалом 5 секунд. Вторая: ошибки УТМ (не загружен криптопровайдер, нет сертификата, не синхронизировано время). Третья: ошибки данных (код уже выбыл, неверный GTIN, код не принадлежит текущему юрлицу). Практический совет: на сервере с УТМ настроить NTP-синхронизацию времени с точностью до 1 секунды. Расхождение более чем на 5 минут вызывает 100% отказ в выбытии.
Для пакетной обработки 1С использует очередь заданий. Планировщик каждые 5 минут проверяет неотправленные запросы. Регистр «Очередь запросов к УТМ» хранит до 10 000 необработанных кодов. При переполнении очереди 1С блокирует новые продажи маркировки с ошибкой «Превышен лимит ожидания ответа УТМ».
Документооборот маркированной продукции: приемка, перемещение, возврат
В приемке ключевой документ - «Поступление товаров с маркировкой». Отличие от обычного поступления - табличная часть включает колонку «Код маркировки» с типом строка (до 150 символов). После заполнения кодов автоматически запускается проверка дублей в пределах документа. Если один код введен дважды, 1С выдает предупреждение «Код уже присутствует в строке 3».
При перемещении между складами одной организации маркировка не требует подтверждения через УТМ, достаточно внутреннего акта. 1С просто переносит код из одного склада в другой в регистре «Коды маркировки по местам хранения». Для перемещения между юрлицами (например, продажа ООО «Ромашка» в ООО «Лютик») требуется документ «Реализация товаров и услуг» с заполненными кодами.

При проведении 1С отправляет запрос на выбытие через УТМ и генерирует универсальный передаточный документ (УПД) с отдельной таблицей кодов маркировки в составе XML.
Возврат от покупателя - самая сложная операция. Покупатель возвращает товар, который формально уже выбыл из оборота. 1С при возврате первым делом отправляет запрос в УТМ на ввод в оборот. Запрос называется «introductionMarkingCode». Только после подтверждения от оператора код возвращается в регистр со статусом «В обороте». Если оператор отказывает (например, истек срок возврата), 1С не позволяет оприходовать товар.
Функции кассы и розничного сервера для выбытия кодов
В 1С:Розница и УТМ-кассах (подключенных через РРО) выбытие кодов происходит через обработку «Продажа маркированных товаров». Кассир на весовом товаре (сыр, молоко) сканирует код на упаковке. 1С проверяет соответствие кода номенклатуре в чеке. Несовпадение хотя бы по GTIN блокирует операцию.
Для ускорения работы поддерживается групповое сканирование. Кассир сканирует пять пачек молока подряд. 1С накапливает коды в буфере, проверяет уникальность (запрет на повтор кода в одной сессии чека), и только после команды «Оплатить» отправляет пачку запросов в УТМ пакетным режимом. Максимальный размер пакета - 100 кодов на один запрос. При превышении 100 кодов 1С автоматически разбивает на несколько пакетов с паузой 500 мс между ними.
Розничный сервер 1С (RMS) выполняет роль кэша. На кассе с неустойчивым интернетом коды не отправляются в УТМ сразу, а сохраняются в локальную базу SQLite на диске кассы. Каждые 15 минут RMS поднимает сессию с центральной базой 1С и передает накопленные коды. Если связь отсутствует более 3 часов, касса блокирует продажу маркировки - риск оборота фальсификата слишком высок.
Оборотно-сальдовые ведомости и отчеты по движению кодов
Стандартный отчет «Остатки маркированных товаров» доступен в разделе «Маркировка» в УТ 11 и Рознице. Отчет построен на регистре «Коды маркировки» с группировкой по GTIN, серийному номеру и дате ввода. Пользователь может видеть полную историю кода: когда поступил, кто принял, когда выбыл, через какую кассу.
Более глубокий анализ - «Анализ расхождений кодов маркировки». Отчет сравнивает физические остатки в 1С с данными от оператора ГИС МТ. Запрос к УТМ выгружает до 5000 кодов на одной странице. Если код есть в 1С, но отсутствует в ГИС МТ критическая ошибка: товар, возможно, не прошел регистрацию выбытия. 1С помечает такие коды в отчете красным цветом и предлагает сформировать корректирующий акт «Акт о списании кодов».
Отчет «Эффективность работы с УТМ» показывает среднее время ответа от оператора. Норма - менее 2 секунд. Если время превышает 5 секунд более чем в 10% запросов, 1С рекомендует проверить канал связи или сменить DNS-серверы на более быстрые (например, CloudFlare 1.1.1.1).
Типовые конфигурации и доработки: когда нужен внешний отчет
Стандартные конфигурации 1С закрывают 85% потребностей малого и среднего бизнеса. Остальные 15% требуют доработок. Пример: сеть АЗС, продающая маркированные масла. Кассир не может сканировать каждую канистру - очередь вырастает в 10 раз. Решение: внешняя обработка «Пакетное списание по штрихкоду агрегата». Разработчик создает новый регистр сведений, где группе из 20 канистр присваивается один коробочный код (СССС). При продаже кассир сканирует код коробки.
1С автоматически подставляет 20 кодов Data Matrix из таблицы соответствия.
Другая доработка - «Автоматическое резервирование кодов под заказ клиента». В стандартном функционале код резервируется только после отгрузки. В интернет-магазине клиент оформляет заказ, а через три дня приходит забирать.
За эти три дня товар с уникальными кодами может быть продан другому покупателю через розницу. Доработка добавляет в документ «Заказ клиента» колонку «Зарезервированный код маркировки» и блокирует этот код во всех остальных документах, кроме указанного заказа. Реализуется через изменение модуля объекта документа и переопределение метода «ПриЗаписи».
Третья типовая доработка - «Поддержка возвратной тары с маркировкой» для пивоварен. Кеги (емкости для пива) имеют собственную маркировку. При возврате пустой кеги код должен перейти от конечного покупателя обратно к производителю. В стандартной 1С:УТМ нет операции «возврат маркированной тары поставщику». Создается внешний отчет «Акт возврата кег», который генерирует XML-файл для ЭДО с признаком «Тара оборотная» и новым статусом кода «В обороте на складе поставщика».
Рекомендации по настройке 1С для работы с УТМ
Настройка начинается с проверки разрядности. УТМ работает только на 64-битной Windows или Linux. 1С должна использовать 64-битный сервер. В разделе «НСИ и администрирование» → «Настройки маркировки» включить флаг «Использовать УТМ». Указать URL: `http://127.0.0.1:8080` для локального УТМ или сетевой IP для выделенного сервера. Обязательно прописать путь к папке логов УТМ на диске D или E - стандартная папка на диске C быстро заполняется файлами debug.log (до 10 ГБ в месяц).
Таймаут операций. По умолчанию в 1С установлен 30 секунд. Для гипермаркетов с высокой интенсивностью чеков нужно повысить до 60 секунд в модуле «ОбщегоНазначенияКлиентСервер.УстановитьТаймаутСоединенияУТМ». Иначе при массовой распродаже после 10-15 одновременных запросов УТМ начнет дропать пакеты.
Настройка переподключения. В файле `conf.json` УТМ прописать `"reconnectAttempts": 10`, `"reconnectDelayMs": 2000`. В 1С в обработке «Регламентные задания» создать задание «Проверка связи с УТМ» с интервалом 60 секунд. При потере связи задание отправляет Telegram-ботам (если настроен) или записывает событие в журнал регистрации.
Работа с большими объемами. Если компания обрабатывает более 10 000 кодов в день, стандартный регистр «Коды маркировки» начинает тормозить из-за индексов. Рекомендуется создать внешнюю таблицу `CIS_CODES` на SQL Server с кластеризованным индексом по полю `CodeValue` и партиционированием по дате ввода. 1С подключается к этой таблице через механизм внешних источников данных. Это ускоряет поиск кода при продаже с 500 мс до 50 мс.
Резервное копирование. Каждый день в 2:00 ночи запускать выгрузку регистра «Коды маркировки» в XML-файл на сетевую папку. Размер файла на 100 000 кодов составляет около 150 МБ.
Восстановление кодов из резервной копии выполняется внешней обработкой «Загрузка кодов из архива» только в режиме «Только добавление» - перезапись существующих кодов запрещена законодательством.
Обработка нештатных ситуаций. Потеря сети, дублирование кодов, расхождения
Первая нештатная ситуация - разрыв интернет-соединения во время продажи. 1С фиксирует код в локальном регистре «Отложенные запросы к УТМ» с пометкой «Не отправлено». После восстановления связи пользователь запускает обработку «Повторная отправка отложенных кодов». Если интернет отсутствовал более 24 часов, УТМ аннулирует некоторые запросы (по правилам «Честного ЗНАКа»). 1С в таком случае предлагает сформировать акт ручного ввода выбытия через личный кабинет оператора.
Вторая ситуация - дублирование кода при приемке. Поставщик прислал партию, а 1С говорит, что код уже числится в базе. Алгоритм: открыть карточку кода через форму «Поиск кода маркировки». Если код числится на остатке - отказаться от приемки. Если код числится выбывшим, но по документам он должен быть новым - запустить внешнюю обработку «Запрос проверки перевыпуска кода». Запрос уходит в ГИС МТ, оператор проверяет, не был ли код заменен при порче. Ответ приходит в течение 5 минут.
- Расхождение между 1С и данными УТМ по количеству кодов. Еженедельный отчет «Сверка остатков» формируется автоматически по кнопке «Запросить сверку у оператора». 1С отправляет хеш-сумму всех своих кодов (MD5 от конкатенации).
- УТМ возвращает свою хеш-сумму. При несовпадении запускается построчная сверка по 1000 кодов за итерацию.
- Точки расхождения выгружаются в Excel с предложением исправить: либо удалить лишний код из 1С, либо запросить недостающий код через «Акт ввода в оборот».
Четвертая ситуация - физическая порча маркировки. Код поврежден, сканер не читает. 1С предоставляет форму «Ввод кода вручную по GTIN». Пользователь вводит GTIN товара (14 цифр) и последние 4 символа кода, которые видны невооруженным глазом.
Система генерирует частичный паттерн для поиска в регистре кодов. При совпадении единственного варианта - код подставляется в документ. Если найдено более одного - операция блокируется до полного ручного ввода.









