Внедрение обязательной маркировки товаров («Честный Знак») для обуви, табака, одежды, шин и других категорий поставило перед пользователями классической конфигурации «1С:Управление торговлей» редакции 10.3 (УТ 10.3) сложный выбор. С одной стороны, система за многие годы была сильно кастомизирована под нужды конкретных предприятий, и переход на «1С:Управление торговлей 11» выглядит как дорогостоящий, длительный и болезненный процесс. С другой стороны, фирма «1С» официально прекратила поддержку редакции 10.3 в апреле 2024 года, что усложнило соответствие новым законодательным требованиям.
В этой статье мы подробно разберем, как развивалась поддержка маркировки в УТ 10.3, реально ли запустить этот функционал на старой платформе, с какими критическими ограничениями вам придется столкнуться сегодня и какие существуют альтернативные пути решения проблемы без тотальной перестройки учета.
На этапе внедрения первых волн маркировки (2020–2021 годы) разработчики фирмы «1С» интегрировали базовые механизмы маркировки в последние релизы УТ 10.3 (начиная с ветки 10.3.64.x и далее до финального 10.3.72.x). Практика интеграторов показала, что запустить базовые процессы вполне реально:
Рассмотрим пример типового алгоритма обработки сканирования кодов маркировки (DataMatrix), который использовался в обычных формах УТ 10.3. При сканировании кода 2D-сканером событие обрабатывалось в модуле формы документа:
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
ПолученныеДанные = СокрЛП(Данные);
// Проверяем, настроено ли торговое оборудование
Если ПоддерживаетсяМаркировка(ТекущееУстройство) Тогда
// Поиск номенклатуры по коду GTIN, зашитому в DataMatrix
ДанныеШтрихкода = СчитатьКодМаркировки(ПолученныеДанные);
Если ДанныеШтрихкода.Найден Тогда
СтрокаТоваров = Товары.Найти(ДанныеШтрихкода.Номенклатура, "Номенклатура");
Если СтрокаТоваров = Неопределено Тогда
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Номенклатура = ДанныеШтрихкода.Номенклатура;
НоваяСтрока.Количество = 1;
Иначе
СтрокаТоваров.Количество = СтрокаТоваров.Количество + 1;
КонецЕсли;
// Регистрируем код маркировки в подчиненном регистре/табличной части
ЗарегистрироватьКодМаркировкиВДокументе(ДанныеШтрихкода.КодМаркировки, ЭтотОбъект);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Этот код наглядно иллюстрирует, что в УТ 10.3 вся логика базировалась на обработке внешнего события от сканера и сопоставлении GTIN с базой номенклатуры. Но современные требования ушли далеко вперед.
Если в 2020 году запустить маркировку на релизе 10.3.64.4 действительно удавалось за несколько часов работы программиста, то современные реалии делают использование типовой УТ 10.3 практически невозможным для полноценного соответствия закону по следующим причинам:
Если ваша база УТ 10.3 настолько сильно изменена, что полноценный переход на УТ 11 займет месяцы работы и парализует бизнес, рассмотрим рабочие альтернативные варианты интеграции маркировки.
Это наиболее надежное и рекомендуемое решение для средних и крупных торговых компаний. Мы оставляем оперативный, складской и финансовый учет в привычной переписанной УТ 10.3, но разворачиваем рядом небольшую, полностью типовую и регулярно обновляемую базу (например, «1С:Управление нашей фирмой», «1С:Розница 3.0» или пустую «1С:Управление торговлей 11.5»).
Как организована работа по этой схеме:
На рынке систем автоматизации представлены готовые платные и бесплатные модули от независимых интеграторов, созданные специально для УТ 10.3. Эти модули внедряются в конфигурацию без необходимости глобального изменения структуры метаданных.
Разберем типичную архитектуру такого расширения. Оно заменяет стандартные механизмы работы с маркировкой внешними обработками, которые напрямую по API взаимодействуют со станциями управления заказами (СУЗ) ЦРПТ. Пример схемы взаимодействия выглядит так:
// Пример вызова внешнего API ГИС МТ через HTTP-соединение в кастомном модуле для УТ 10.3
Функция ПроверитьСтатусКодаВГИСМТ(КодМаркировки, ТокенАвторизации)
АдресРесурса = "api/v3/true-api/codes/check";
Сервер = "api.gismt.ru";
Запрос = Новый HTTPЗапрос(АдресРесурса);
Запрос.Заголовки.Вставить("Authorization", "Bearer " + ТокенАвторизации);
Запрос.Заголовки.Вставить("Content-Type", "application/json");
ТелоЗапроса = "{""codes"": [""" + КодМаркировки + """]}";
Запрос.УстановитьТелоИзСтроки(ТелоЗапроса, КодировкаТекста.UTF8);
Соединение = Новый HTTPСоединение(Сервер, 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
Попытка
Ответ = Соединение.ОтправитьДляОбъекта(Запрос);
Если Ответ.КодСостояния = 200 Тогда
Возврат ПарситьОтветГИСМТ(Ответ.ПолучитьТелоКакСтроку());
Иначе
ЗаписатьВЛогОшибок("Ошибка проверки кода: " + Ответ.КодСостояния);
Возврат Неопределено;
EndIf;
Исключение
ЗаписатьВЛогОшибок("Не удалось установить соединение с сервером маркировки.");
Возврат Неопределено;
КонецПопытки;
КонецФункции
Использование таких внешних решений позволяет обходить ограничения платформы 1С старых версий и поддерживать актуальные требования законодательства, не затрагивая ядро УТ 10.3.
Для оптовых складов, где критически важна проверка кодов маркировки при приемке и отгрузке, отличным выходом является перенос всей логики маркировки на мобильные терминалы сбора данных под управлением специализированного софта (например, «Клеверенс» или «DataMobile»).
При такой схеме ТСД обменивается данными напрямую с базой ГИС МТ через интернет. Кладовщик сканирует DataMatrix на складе, программа на ТСД проверяет корректность кодов, собирает их в упаковочные листы и агрегирует. Затем в УТ 10.3 передается уже готовый, проверенный документ с перечнем кодов маркировки, который просто прикрепляется к расходной или приходной накладной без дополнительных внутренних проверок в самой 1С.
Для обмена электронными накладными (УПД) можно использовать не типовой функционал 1С-ЭДО, а внешние обработки, предоставляемые операторами документооборота (например, Контур.Диадок или СБИС). Эти обработки регулярно обновляются самими операторами под новые требования маркировки, корректно работают в обычных формах УТ 10.3 и позволяют подписывать и отправлять документы с маркированными товарами напрямую из интерфейса обработки, минуя механизмы 1С.
Запуск маркировки в «1С:Управление торговлей 10.3» возможен, но требует взвешенного подхода: