Маркировка товаров в 1С: обязательная и добровольная — как не получить штраф 300 000₽ и настроить всё правильно
Представьте: утро понедельника, склад, приёмка молочки. Сканер пищит, 1С ругается, кладовщик в панике звонит вам. Партия не проходит — коды маркировки не сходятся. А за окном машина поставщика уже уезжает.
Я лично столкнулся с этим на одном из проектов — и скажу честно, это не самое приятное утро в жизни. Знакомо?
Маркировка «Честный знак» — это уже не будущее, это жёсткая реальность 2026 года. И если вы работаете с 1С и обслуживаете розницу, опт или производство, вы обязаны разбираться в этой теме. Иначе ваши клиенты получат штрафы, а вы — репутационные потери.
Разберём всё: что такое обязательная и добровольная маркировка, как она реализована в 1С, какой код писать для интеграции с ГИС МТ, и где чаще всего ломается логика — с примерами из реальных проектов.
Что такое маркировка товаров в 1С и почему это больно
Маркировка — это система прослеживаемости товаров от производителя до конечного покупателя. Каждая единица товара получает уникальный код DataMatrix (или другой формат), который фиксируется на каждом этапе: производство → отгрузка → приёмка → продажа.
Оператор системы — ЦРПТ (Центр развития перспективных технологий). Их платформа называется «Честный знак» (chestnyznak.ru). С ней и интегрируется 1С.
Штрафы за нарушения — не абстрактные. Вот реальные цифры на 2026 год:
- Продажа немаркированных товаров для ИП — от 5 000 до 10 000₽ + конфискация
- Для юрлиц — от 50 000 до 300 000₽ + конфискация всей партии
- Производство без маркировки — до 500 000₽
- Повторное нарушение — уголовная ответственность по ст. 171.1 УК РФ
Один клиент из моей практики — небольшая оптовая компания в Екатеринбурге, около 40 человек в штате — получила штраф 180 000₽ за то, что в УПД не были корректно переданы коды маркировки молочной продукции. Формально товар был промаркирован. Но в 1С не настроили передачу кодов в ЭДО. Обидно, правда?
Обязательная маркировка в 1С: какие товарные группы уже под контролем
К 2026 году список обязательных категорий существенно расширился. Вот актуальный перечень:
- Табачная продукция — с 2019 года, самая «зрелая» группа
- Обувь — с 2020 года
- Лекарства — с 2020 года (МДЛП — отдельная система)
- Молочная продукция — поэтапно с 2021, полностью с 2022
- Упакованная вода — с 2022 года
- Пиво и слабоалкогольные напитки — с 2023 года
- Безалкогольные напитки — с 2024 года
- Текстиль, одежда — с 2021 года
- Шины и покрышки — с 2021 года
- Парфюмерия — с 2021 года
- Фотоаппараты и лампы-вспышки — с 2020 года
- Кресла-коляски — с 2022 года
- Антисептики — с 2023 года
Это не просто «поставить галочку в настройках». Для каждой группы — своя логика передачи данных, свои сроки, свои форматы кодов. В 1С:Управление торговлей (от 25 600₽) и 1С:Розница это реализовано через подсистему маркировки, но настройка требует понимания бизнес-процессов клиента.
Добровольная маркировка в 1С: зачем маркировать то, что не обязательно
Добровольная маркировка — это когда производитель или продавец сам решает маркировать товар, даже если закон этого не требует. Зачем?
Первая причина — конкурентное преимущество. Покупатель сканирует код и видит всю цепочку: где произведено, когда, кто продаёт. Это доверие. Особенно актуально для фермерских продуктов, крафтовых товаров, БАДов.
Вторая причина — подготовка к обязательному введению. Я видел проект, где компания из Новосибирска добровольно начала маркировать безалкогольные напитки за год до обязательного введения — и в 2024-м просто «включила» обязательную передачу данных, не меняя процессы вообще. Никакого аврала, никаких переделок.
Третья причина — внутренний контроль. Маркировка помогает бороться с пересортицей, воровством на складе, возвратами «левого» товара. В 1С это реализуется через ордерную схему с обязательным сканированием кодов при приёмке и отгрузке.
Технически в 1С добровольная маркировка настраивается аналогично обязательной — те же справочники, те же документы, но без принудительной передачи в ГИС МТ. Можно вести учёт «для себя» и при необходимости включить передачу данных одним переключателем в настройках.
Архитектура интеграции 1С с «Честным знаком» — как это работает под капотом
Прежде чем писать код, нужно понять архитектуру. Интеграция 1С с ГИС МТ работает через API «Честного знака» (REST, JSON). Есть два режима:
- Прямая интеграция — 1С напрямую обращается к API ГИС МТ через HTTP-запросы
- Через оператора ЭДО — коды передаются в составе УПД через оператора (Диадок, СБИС, Контур и др.)
На практике большинство компаний используют комбинированный подход: приёмка и отгрузка — через ЭДО с кодами маркировки, розничная продажа — прямая передача в ГИС МТ через кассу (ОФД сам передаёт данные).
В типовых конфигурациях 1С (УТ 11, КА 2, ERP 2) есть встроенная подсистема маркировки. Но на практике она часто требует доработки — особенно если у клиента нестандартные процессы.
Вот упрощённая схема обмена данными:
- Производитель заказывает коды в ГИС МТ → получает DataMatrix → наносит на товар
- При отгрузке формирует УПД с кодами → передаёт через ЭДО
- Покупатель принимает УПД → подтверждает приёмку → коды переходят к нему
- Розничная продажа → код сканируется на кассе → ОФД передаёт в ГИС МТ → код выбывает
Код 1С для работы с маркировкой: реальные примеры
Ладно, погнали дальше — хватит теории. Начнём с типичной задачи — проверки статуса кода маркировки в ГИС МТ через HTTP-запрос.
Проверка кода маркировки через API «Честного знака»
Это базовая функция, которая нужна при приёмке товара. Прежде чем принять код, нужно убедиться, что он валиден и числится за поставщиком.
// Функция проверки кода маркировки в ГИС МТ
// КодМаркировки - строка DataMatrix (сырой код)
Функция ПроверитьКодМаркировки(КодМаркировки) Экспорт
АдресAPI = "https://markirovka.честныйзнак.рф/api/v3/facade/barcode/check";
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json");
Заголовки.Вставить("Authorization", "Bearer " + ПолучитьТокенДоступа());
ТелоЗапроса = "{""barcode"": """ + КодМаркировки + """}";
HTTPЗапрос = Новый HTTPЗапрос("/api/v3/facade/barcode/check", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
Соединение = Новый HTTPСоединение("markirovka.честныйзнак.рф", 443, , , , , Новый ЗащищённоеСоединениеOpenSSL());
Попытка
Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Если Ответ.КодСостояния = 200 Тогда
ДанныеОтвета = ПрочитатьJSON(Ответ.ПолучитьТелоКакСтроку());
Возврат ДанныеОтвета;
КонецЕсли;
Исключение
ЗаписатьОшибкуВЖурнал("ОшибкаПроверкиМаркировки", ОписаниеОшибки());
Возврат Неопределено;
КонецПопытки;
КонецФункции
Обратите внимание: функция ПолучитьТокенДоступа() — это отдельная история. Токен нужно обновлять каждые 10 минут. Многие разработчики забывают про это и получают ошибки 401 в самый неподходящий момент.
Получение токена авторизации для ГИС МТ
Авторизация в «Честном знаке» работает через УКЭП (усиленная квалифицированная электронная подпись). Схема: получаем challenge → подписываем → получаем токен. Вот упрощённая реализация:
// Получение токена авторизации ГИС МТ через УКЭП
Функция ПолучитьТокенДоступа() Экспорт
// Шаг 1: Получаем challenge (одноразовый код)
ОтветChallenge = ВыполнитьGETЗапрос("/api/v3/auth/key");
КодChallenge = ОтветChallenge["uuid"];
// Шаг 2: Подписываем challenge УКЭП
// КриптоПровайдер - объект для работы с КриптоПро или ViPNet
КриптоМенеджер = Новый КриптоМенеджер("Криптопровайдер ГОСТ Р 34.10-2012");
Сертификат = ПолучитьСертификатМаркировки(); // из настроек программы
ПодписанныйКод = КриптоМенеджер.Подписать(КодChallenge, Сертификат);
// Шаг 3: Отправляем подпись и получаем токен
ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("uuid", КодChallenge);
ТелоЗапроса.Вставить("data", Base64Строка(ПодписанныйКод));
ОтветТокен = ВыполнитьPOSTЗапрос("/api/v3/auth/simpleSignIn", ТелоЗапроса);
Токен = ОтветТокен["token"];
// Сохраняем токен и время получения в параметры сеанса
УстановитьПараметрСеанса("ТокенГИСМТ", Токен);
УстановитьПараметрСеанса("ВремяТокенаГИСМТ", ТекущаяДатаСеанса());
Возврат Токен;
КонецФункции
Подводный камень номер один: сертификат для маркировки должен быть зарегистрирован в личном кабинете «Честного знака». Если вы работаете с несколькими юрлицами — у каждого свой сертификат, и нужно правильно выбирать нужный в зависимости от организации в документе.
Формирование документа вывода из оборота при розничной продаже
При продаже через кассу коды уходят автоматически через ОФД. Но если касса не интегрирована или продажа оптовая — нужно вручную передать данные о выводе из оборота. Вот как это делается:
// Процедура передачи кодов маркировки при выводе из оборота
// ДокументПродажи - ссылка на документ реализации
Процедура ПередатьКодыВыводаИзОборота(ДокументПродажи) Экспорт
МассивКодов = Новый Массив;
// Собираем все коды из табличной части
Для Каждого СтрокаКодов Из ДокументПродажи.КодыМаркировки Цикл
Если СтрокаКодов.ТипКода = Перечисления.ТипыКодовМаркировки.Единица Тогда
МассивКодов.Добавить(СтрокаКодов.КодМаркировки);
КонецЕсли;
КонецЦикла;
Если МассивКодов.Количество() = 0 Тогда
Возврат; // Нечего передавать
КонецЕсли;
// Формируем тело запроса по формату ГИС МТ
ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("participantInn", ДокументПродажи.Организация.ИНН);
ТелоЗапроса.Вставить("documentFormat", "MANUAL");
ТелоЗапроса.Вставить("type", "LP_SHIP_GOODS");
ТелоЗапроса.Вставить("products", МассивКодов);
Результат = ВыполнитьPOSTЗапрос("/api/v3/lk/documents/create", ТелоЗапроса);
Если Результат <> Неопределено Тогда
// Сохраняем ID документа в ГИС МТ для отслеживания статуса
ДокументОбъект = ДокументПродажи.ПолучитьОбъект();
ДокументОбъект.НомерДокументаГИСМТ = Результат["id"];
ДокументОбъект.Записать();
КонецЕсли;
КонецПроцедуры
Сейчас будет важное — не пропустите: LP_SHIP_GOODS — это не единственный тип документа. Для разных операций используются разные типы: LP_ACCEPT_GOODS (приёмка), LP_RETURN_GOODS (возврат), LP_CANCEL_SHIPMENT (отмена отгрузки). Путаница в типах — одна из самых частых ошибок в проектах.
Проверка статуса переданного документа в ГИС МТ
Документ в ГИС МТ обрабатывается не мгновенно. Нужно периодически проверять статус. Вот функция для этого:
// Проверка статуса документа в ГИС МТ
// ИДДокумента - строка, ID документа полученный при создании
Функция ПроверитьСтатусДокументаГИСМТ(ИДДокумента) Экспорт
ОтветAPI = ВыполнитьGETЗапрос("/api/v3/lk/documents/" + ИДДокумента);
Если ОтветAPI = Неопределено Тогда
Возврат "ОШИБКА_СОЕДИНЕНИЯ";
КонецЕсли;
Статус = ОтветAPI["status"];
// Возможные статусы: IN_PROGRESS, CHECKED_OK, CHECKED_NOT_OK, PROCESSING_ERROR
Выбор
Когда Статус = "CHECKED_OK" Тогда
Возврат "ПРИНЯТ";
Когда Статус = "CHECKED_NOT_OK" Тогда
// Получаем текст ошибки из ответа
ТекстОшибки = ОтветAPI["errors"][0]["error_message"];
ЗаписатьОшибкуВЖурнал("ОтказГИСМТ", ТекстОшибки);
Возврат "ОТКАЗ: " + ТекстОшибки;
Когда Статус = "IN_PROGRESS" Тогда
Возврат "В_ОБРАБОТКЕ";
Иначе
Возврат "НЕИЗВЕСТНЫЙ_СТАТУС: " + Статус;
КонецВыбора;
КонецФункции
Из практики: документы в ГИС МТ обрабатываются от 5 секунд до 15 минут. Никогда не ждите синхронно — делайте фоновое задание, которое проверяет статус раз в минуту. Иначе получите зависшие сеансы пользователей и гневные звонки. Помню случай — клиент позвонил в пятницу вечером именно с такой проблемой: у них намертво зависли сеансы кладовщиков прямо перед закрытием смены.
Типичные ошибки при настройке маркировки в 1С — и как их избежать
Я участвовал в 15+ проектах по маркировке за последние два года. И в 4 из 5 случаев встречал одни и те же грабли. Вот топ ошибок:
Ошибка 1: Неправильная настройка товарных групп
В 1С каждой номенклатуре нужно указать товарную группу маркировки (молоко, обувь, табак и т.д.) и код ТНВЭД. Если группа не указана или указана неверно — коды не будут передаваться. Казалось бы, очевидно. Но на практике встречается постоянно, особенно при переходе с более ранних версий конфигурации.
Проверяйте настройку через отчёт «Товары без маркировки» — в типовых конфигурациях он есть. Если нет — напишите сами, это 20 строк запроса.
Ошибка 2: Дублирование кодов маркировки
Код DataMatrix уникален. Одна единица товара — один код. Но на практике бывает: один и тот же код попадает в две разные приёмки (поставщик отгрузил дважды, или оператор ЭДО прислал дубль). В 1С нужна проверка уникальности кодов при записи документа.
Без этой проверки получите ситуацию: один товар числится в двух местах, ГИС МТ отклоняет документ, бухгалтерия в панике. Добавьте индекс на регистр хранения кодов маркировки — это решает проблему.
Ошибка 3: Не настроен обмен с ЭДО для кодов маркировки
Это самая дорогая ошибка. Компания работает с ЭДО (Диадок, СБИС), УПД ходят нормально. Но коды маркировки в УПД не передаются — потому что в настройках обмена не включена соответствующая опция. ГИС МТ не получает данных о переходе права собственности, и через месяц приходит уведомление о нарушении.
Проверяйте: в настройках обмена с ЭДО должна быть включена опция передачи сведений о маркировке. В разных операторах она называется по-разному, но везде есть.
Ошибка 4: Забыли про агрегаты
Агрегат — это групповая упаковка (коробка, паллета), которая содержит несколько единиц с кодами. У агрегата есть свой код. При отгрузке можно передавать код агрегата вместо перечисления всех единиц — это удобнее.
Но многие настраивают маркировку только для единиц, игнорируя агрегаты. Потом при приёмке кладовщик сканирует коробку, 1С не понимает, что это — и всё встаёт. Настраивайте работу с агрегатами с самого начала, даже если клиент говорит «нам это не нужно».
Ошибка 5: Не настроено регламентное задание проверки статусов
Отправили документы в ГИС МТ — и забыли. Документы могут висеть в статусе CHECKED_NOT_OK неделями, а пользователи не знают об этом вообще. Настройте регламентное задание, которое раз в час проверяет статусы всех документов в статусе «В обработке» и уведомляет ответственного при ошибках.
Как настроить маркировку в 1С:Управление торговлей 11 — пошагово
Разберём базовую настройку на примере УТ 11. Это самая распространённая конфигурация для торговых компаний (от 25 600₽ за базовую версию).
Шаг 1: Включить функциональность маркировки
Раздел «Администрирование» → «Склад и доставка» → включить «Маркировка и прослеживаемость». Там же выбрать товарные группы, с которыми работает компания.
Шаг 2: Настроить подключение к ГИС МТ
Раздел «Администрирование» → «Обмен данными» → «Настройки интеграции с ГИС МТ». Указываем ИНН, сертификат УКЭП, режим работы (тестовый/боевой). Всегда начинайте с тестового контура! На боевом цена ошибки — штраф.
Шаг 3: Заполнить номенклатуру
Для каждой позиции, подлежащей маркировке, в карточке номенклатуры указать:
- Товарная группа маркировки (выбор из справочника)
- Код ТНВЭД (10 знаков)
- Тип кода маркировки (единица / транспортная упаковка)
- Шаблон кода (для разных групп разный)
Шаг 4: Настроить склад для работы с маркировкой
В карточке склада включить «Ордерная схема» и «Обязательное сканирование кодов маркировки». Без ордерной схемы корректная работа с маркировкой невозможна — это принципиальный момент.
Шаг 5: Настроить регламентные задания
В разделе «Администрирование» → «Регламентные и фоновые задания» включить:
- «Обмен с ГИС МТ» — каждые 15 минут
- «Проверка статусов документов маркировки» — каждый час
- «Уведомление об ошибках маркировки» — ежедневно в 9:00
Шаг 6: Тестирование на тестовом контуре
Не пренебрегайте этим шагом. В тестовом контуре «Честного знака» можно генерировать тестовые коды, проводить приёмки и отгрузки, проверять статусы — всё как в боевом режиме, но без последствий.
Маркировка в 1С:ERP и 1С:Комплексная автоматизация — особенности
В 1С:ERP (от 432 000₽) и 1С:КА (от 54 000₽) подсистема маркировки более зрелая, но и более сложная. Несколько важных отличий от УТ:
Интеграция с производственными процессами. В ERP маркировка связана с производственными заказами. Коды можно заказывать прямо из производственного заказа, привязывать к партиям. Это важно для производственных предприятий — молочных заводов, фармацевтики.
Расширенная аналитика. В ERP есть встроенные отчёты по движению кодов маркировки в разрезе партий, складов, контрагентов. В УТ это нужно дорабатывать.
Сложность настройки RLS. В ERP с маркировкой часто возникают проблемы с правами доступа на уровне записей. Я считаю, что это самый недооценённый риск в крупных проектах — если у вас RLS настроен по организациям или складам, обязательно проверьте, что пользователи видят только «свои» коды маркировки. Иначе кладовщик одного склада случайно спишет коды другого.
Вот пример запроса для отчёта по остаткам кодов маркировки — универсальный для УТ, КА и ERP:
// Запрос остатков кодов маркировки по складу
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КодыМаркировкиОстатки.КодМаркировки КАК КодМаркировки,
| КодыМаркировкиОстатки.Номенклатура КАК Номенклатура,
| КодыМаркировкиОстатки.Склад КАК Склад,
| КодыМаркировкиОстатки.КоличествоОстаток КАК Количество
|ИЗ
| РегистрНакопления.КодыМаркировки.Остатки(
| &ДатаОтчёта,
| Склад = &Склад И Организация = &Организация
| ) КАК КодыМаркировкиОстатки
|ГДЕ
| КодыМаркировкиОстатки.КоличествоОстаток > 0
|УПОРЯДОЧИТЬ ПО
| КодыМаркировкиОстатки.Номенклатура";
Запрос.УстановитьПараметр("ДатаОтчёта", КонецДня(ТекущаяДата()));
Запрос.УстановитьПараметр("Склад", ВыбранныйСклад);
Запрос.УстановитьПараметр("Организация", ВыбраннаяОрганизация);
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса.Выгрузить();
Что будет дальше: тренды маркировки в 2026–2027 годах
Маркировка продолжает расширяться. Вот что нужно держать в голове уже сейчас:
- Биологически активные добавки (БАД) — обязательная маркировка с середины 2026 года. Если у вас есть клиенты в этой нише — начинайте готовить 1С прямо сейчас
- Медицинские изделия — поэтапное введение маркировки продолжается, расширяется список кодов ОКПД2
- Ювелирные изделия — переход на ГИИС ДМДК (отдельная система, не «Честный знак»), но логика интеграции аналогична
- Ужесточение контроля — ФНС и Роспотребнадзор получили доступ к данным ГИС МТ. Налоговые проверки теперь включают анализ движения кодов маркировки
- Маркировка в общепите — эксперимент по маркировке продуктов питания в HoReCa. Пока добровольный, но тренд понятен
И ещё один тренд, который мне кажется по-настоящему интересным: интеграция маркировки с системами видеоаналитики. Крупные ритейлеры уже тестируют автоматическое считывание кодов с паллет при въезде на склад — без ручного сканирования вообще. В 1С это реализуется через API к системам компьютерного зрения с последующим автоматическим созданием документов приёмки.
Итог: маркировка — это не проблема, это точка роста
Маркировка товаров — одна из самых востребованных и высокооплачиваемых специализаций для 1С-разработчиков в 2026 году. Проекты по внедрению маркировки стоят от 150 000₽ до 2 000 000₽ в зависимости от масштаба.
Честно? Я раньше думал, что маркировка — это просто ещё одна надстройка над учётом, которую можно освоить за неделю. Но нет — это полноценная экспертиза, которая объединяет знание API, ЭДО, бизнес-процессов склада и бухгалтерской логики одновременно.
Если вы разберётесь в теме глубоко — понимаете API «Честного знака», умеете настраивать интеграцию с ЭДО, знаете подводные камни в типовых конфигурациях — вы становитесь незаменимым специалистом. Таких людей на рынке мало, спрос огромный.
Короче говоря — краткое резюме по статье:
- Обязательная маркировка охватывает уже 13+ товарных групп, список растёт каждый год
- Штрафы реальные: до 300 000₽ для юрлиц, конфискация товара
- В 1С интеграция с ГИС МТ работает через REST API с авторизацией по УКЭП
- Главные ошибки: неверные товарные группы, дубли кодов, отсутствие кодов в УПД, игнорирование агрегатов
- Всегда тестируйте на тестовом контуре «Честного знака» перед запуском в бой
- Добровольная маркировка — стратегически умный шаг для клиентов, которые хотят подготовиться заранее
Маркировка — это надолго. Государство не отступит. Лучше разобраться сейчас и зарабатывать на этом, чем потом в панике чинить сломанные процессы у клиентов.
Если вам нужен опытный 1С-разработчик со знанием маркировки «Честный знак», интеграции с ГИС МТ и ЭДО — найдите его на koderion.ru. Биржа специалистов 1С: проверенные разработчики, консультанты и DevOps-инженеры с реальным опытом в проектах по маркировке. Без посредников, с гарантией результата.