В процессе работы с маркируемой продукцией (особенно это актуально для соковой продукции и упакованной воды) пользователи часто сталкиваются с технической сложностью при оформлении отгрузки. Ситуация выглядит следующим образом: в документе реализации присутствует одна товарная позиция, но фактически на складе подобраны единицы товара с разными кодами GTIN (например, из разных партий или в разных вариантах дизайна упаковки, для которых может потребоваться печать дубликатов маркировки). При попытке сформировать электронный документ (УПД) через ЭДО система выдает ошибку: «Подобранный объемно-сортовой код с GTIN и количеством маркируемых единиц... не подходит для формирования кода ОСУ по строкам документа по номенклатуре» — решается через выгрузку УПД в XML с поддержкой маркировки и GTIN. Рассмотрим подробно, почему это происходит и как правильно оформить документы в «1С:Бухгалтерии», «1С:Управлении торговлей» и других конфигурациях (также полезно учитывать вопросы локализации ЭДО).
Для начала проанализируем техническую сторону вопроса. Когда мы работаем в режиме объемно-сортового учета (ОСУ), система передает в «Честный ЗНАК» сведения о коде товара (GTIN) и количестве отгружаемых единиц. В типовых конфигурациях 1С форма «Проверка и подбор маркируемой продукции» (ускоряет работу расширение для подбора и сканирования кодов маркировки) позволяет указать несколько разных кодов GTIN для одной строки табличной части «Товары». С точки зрения внутреннего учета программы это допустимо, и документ реализации проводится без ошибок.
Однако проблема возникает на этапе формирования XML-файла электронного документа (инструмент для выгрузки УПД в XML). Согласно требованиям ФНС и формату электронного УПД, сведения о маркировке (тег НомУпак или сведения об ОСУ) жестко привязаны к конкретной товарной строке. Программный модуль ЭДО (Библиотека электронного документооборота) не всегда может корректно «расщепить» одну физическую строку документа на несколько сегментов в электронном файле, что часто требует выгрузки ЭД УПД внешними средствами., если в ней «зашито» более одного GTIN — есть формирование XML УПД при нескольких GTIN. В итоге возникает конфликт: количество в строке (например, 6 штук) не совпадает с количеством, которое система пытается привязать к первому найденному коду GTIN (например, 3 штуки).
Самый быстрый и действенный способ, который подтвердил свою эффективность на практике, — это разделение одной товарной позиции на несколько отдельных строк в табличной части документа реализации. Разберем этот процесс по шагам:
GTIN, а второй строке — второй GTIN.После такой манипуляции в XML-файле будут созданы две отдельные товарные позиции, каждая со своим кодом GTIN и соответствующим количеством. Это полностью соответствует требованиям системы «Честный ЗНАК» и формата ЭДО — поможет автоматизация обмена УПД и операций с маркировкой.
Если ситуация с разными GTIN для одного товара возникает регулярно, ручное разделение строк становится трудозатратным. В таком случае рассмотрим использование механизма характеристик. Выясним, как это помогает автоматизировать процесс:
В настройках номенклатуры включим использование характеристик. Для каждой характеристики (например, «Упаковка старого образца» и «Упаковка нового образца») создадим свой штрихкод и привяжем соответствующий GTIN. При подборе товара в документ реализации менеджер будет выбирать конкретную характеристику. В этом случае программа 1С автоматически создаст разные строки в документе, так как номенклатура с разными характеристиками не может быть объединена в одну строку. Это обеспечит беспрепятственное формирование ЭДО в будущем.
В конфигурациях «1С:Управление торговлей» или «1С:ERP» проанализируем возможность использования серийного учета. Если настроить политику учета серий таким образом, чтобы серия идентифицировала партию товара с определенным GTIN, то при отгрузке система потребует указать серии. Разные серии также будут разнесены по разным строкам (или будут иметь разные идентификаторы внутри документа), что позволит модулю маркировки корректно сопоставить данные для ОСУ.
Необходимо помнить, что для системы маркировки передача данных в разрезе GTIN является критически важной. Даже если для конечного потребителя товар выглядит одинаково, наличие разных GTIN означает, что это разные объекты учета в ГИС МТ. Если мы попытаемся отправить данные по одному (усредненному) коду, у принимающей стороны (вашего покупателя) могут возникнуть проблемы с постановкой товара на баланс, так как на их виртуальном складе в «Честном ЗНАКе» не будет числиться именно этот GTIN в нужном количестве.
Рассмотрим пример кода для проверки заполнения данных маркировки:
В некоторых случаях программистам приходится дорабатывать механизмы автоматического «расщепления» строк перед отправкой в ЭДО. Рассмотрим логику, которую можно реализовать в расширении для автоматизации этого процесса:
// Пример логики разделения строк перед формированием УПД
Процедура РаспределитьСтрокиПоGTIN(ДокументСсылка)
// Получаем таблицу подобранных марок или кодов ОСУ
ТаблицаОСУ = ПолучитьТаблицуМаркировки(ДокументСсылка);
Для Каждого СтрокаТЧ Из ДокументСсылка.Товары Цикл
НайденныеКоды = ТаблицаОСУ.НайтиСтроки(Новый Структура("Номенклатура", СтрокаТЧ.Номенклатура));
Если НайденныеКоды.Количество() > 1 Тогда
// Если для одной строки найдено несколько GTIN,
// необходимо программно разбить строку ТЧ на количество найденных кодов.
// ... реализация логики копирования строк с новым количеством ...
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Подведем итог. Ошибка формирования кода ОСУ в ЭДО при наличии нескольких GTIN в одной позиции — это следствие ограничения формата электронных документов ФНС и алгоритмов заполнения XML в 1С.
Краткий чек-лист для исправления ситуации:
GTIN указано в форме проверки маркировки для проблемной позиции.GTIN.Для долгосрочного решения задачи и минимизации ручного труда рекомендуется рассмотреть переход на учет по характеристикам или сериям, что позволит системе 1С автоматически разделять товарные потоки с разными идентификаторами маркировки еще на этапе подбора товара в документ.