Как организовать массовую маркировку остатков одежды в 1С:УТ 10.3 и работать с кодами Честного Знака

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

Процесс маркировки одежды, особенно в старых конфигурациях 1С, таких как Управление торговлей 10.3, часто превращается в техническое испытание. Основная сложность заключается в том, что типовые механизмы требуют глубокой настройки справочников и карточек номенклатуры, что практически невозможно реализовать оперативно, когда речь идет о тысячах единиц остатков. Разберем пошагово, как обойти системные ограничения, правильно получить коды из системы «Честный Знак» (ЧЗ) и организовать процесс печати и ввода в оборот.

Анализ проблемы: почему стандартный путь в УТ 10.3 не всегда эффективен

Рассмотрим ситуацию, когда у организации имеется многоуровневый справочник номенклатуры с тысячами уникальных наименований. При обновлении до релизов, поддерживающих маркировку (например, 10.3.66.3 и выше), в каждой карточке товара необходимо проставить соответствующие признаки маркированности. Если делать это через типовые обработки, возникает логистическая проблема: кладовщик не сможет быстро сопоставить напечатанную марку с конкретным физическим товаром на складе, если торговля идет «вяло» или учет не был идеально выверен до этого момента.

Проанализируем альтернативный путь: использование упрощенного описания остатков. Вместо того чтобы заводить тысячи карточек, можно описать товар по категориям (например, «Пальто женское», «Одежда мужская»), получить необходимое количество кодов маркировки и клеить их по факту, занимаясь сопоставлением с номенклатурой позже. Выясним, как технически реализовать этот процесс.

Шаг 1: Получение кодов из Честного Знака (CSV против PDF)

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

  1. CSV-формат: Это наиболее предпочтительный вариант для работы с 1С. При нажатии кнопки печати система генерирует файл со списком кодов. Важно помнить: никогда не открывайте этот файл в Microsoft Excel. Эксель автоматически преобразует длинные цифровые последовательности в экспоненциальный вид и безвозвратно удаляет управляющие символы, что делает коды невалидными. Используйте только текстовые редакторы, такие как Notepad++.
  2. PDF-формат: Удобен для прямой печати, но крайне негибок. По умолчанию ЧЗ предлагает шаблоны для листов А4, где этикетки расположены в несколько колонок. Если ваш принтер этикеток требует специфического размера (например, 58х40), PDF из ЧЗ может не подойти без предварительной настройки шаблонов в редакторе JasperReports.

Рассмотрим, как выглядит «чистый» код в текстовом редакторе. Между GTIN и серийным номером, а также перед криптохвостом, должны присутствовать спецсимволы. В Notepad++ они отображаются как GS (символ разделителя групп). Если вместо них вы видите пробелы — ваш метод чтения файла повредил структуру кода.

Шаг 2: Работа с символом GS (Group Separator)

Символ GS (код ASCII 29) критически важен для сканеров и систем проверки. При загрузке кодов в 1С через CSV-файл необходимо убедиться, что ваша обработка корректно считывает этот непечатный символ. Проанализируем пример кода для разбора строки кода маркировки:


Функция ОчиститьКодМаркировки(ИсходныйКод)
    // Символ GS часто отображается как символ с кодом 29
    СимволGS = Символы.ВК; // В некоторых случаях это может быть другой код
    СимволGS = Символ(29);
    
    // Удаляем или заменяем спецсимволы для корректного поиска в базе
    Результат = СтрЗаменить(ИсходныйКод, СимволGS, ""); 
    Возврат Результат;
КонецФункции

Важный момент: При печати через 1С необходимо использовать компоненту 1С:Печать штрихкодов, которая умеет правильно кодировать DataMatrix с учетом управляющих символов.

Шаг 3: Настройка печати этикеток

Если стандартные шаблоны из ЛК Честного Знака вам не подходят, рассмотрим два пути:

  1. Использование JasperReports: Техподдержка ЧЗ предоставляет инструкции по редактированию шаблонов через этот сторонний редактор. Вы можете создать шаблон точно под размер вашей этикетки и загрузить его обратно в ЛК.
  2. Внешняя обработка в 1С: Это самый надежный способ. Мы загружаем CSV-файл в 1С, создаем макет этикетки в обычном редакторе макетов и выводим туда DataMatrix. Это позволяет добавить на этикетку любую дополнительную информацию: наименование, артикул или дату, что значительно облегчит работу кладовщика.

Посмотрим на настройки печати в самом ЧЗ. Существует два варианта расположения в PDF:

Шаг 4: Ввод в оборот — автоматизация или ручной труд?

После того как марки наклеены, их необходимо ввести в оборот. Выясним, обязательно ли формировать сложный XML для выгрузки из 1С.

Если вы маркируете остатки, система «Честный Знак» позволяет сделать это вручную через веб-интерфейс. В разделе «Документы» создается документ «Ввод в оборот», вид операции — «Маркировка остатков». Рассмотрим алгоритм:

  1. Выбираете товар, описанный по упрощенной схеме.
  2. Переходите к списку кодов.
  3. Система предложит выбрать коды из тех, что были эмитированы ранее.
  4. Если у вас 1000 марок, вам придется отметить их галочками (обычно по 10-100 штук на страницу).

Хотя ручной способ кажется трудоемким, для разовой акции по маркировке остатков это зачастую быстрее, чем написание и отладка выгрузки XML в 1С:УТ 10.3, которая может выдать ошибку из-за любого лишнего пробела в файле.

Шаг 5: Рекомендации по хранению и учету

Проанализируем ситуацию, когда марка потерялась или не читается. Выясним, как организовать хранение данных:

В завершение отметим, что для стабильной работы в будущем стоит рассмотреть переход на обмен через API (JSON). Это позволит вашей 1С напрямую «общаться» со Станцией управления заказами (СУЗ), запрашивать коды и проверять их статусы без промежуточного скачивания файлов и ручного манипулирования данными в браузере. Для УТ 10.3 такие решения реализуются через HTTPСоединение и внешние компоненты для работы с JSON.

← На главную