При работе с маркированной молочной продукцией, особенно с весовым товаром, пользователи часто сталкиваются с трудностями при отправке документов через систему электронного документооборота (ЭДО). Рассмотрим типичную ситуацию: вы формируете реализацию на весовой сыр в программе 1С:Управление торговлей, например, на 2,1 кг. При попытке отправить универсальный передаточный документ (УПД) по ЭДО система выдает ошибку: «не удалось разобрать код маркировки (02)04610167520028(37)2,1. Код маркировки не соответствует ни одному шаблону». При этом реализации с целым весом (например, 10 кг) проходят без проблем.
Эта ошибка указывает на то, что структура кода, которую 1С генерирует для передачи в систему "Честный ЗНАК", некорректна. Чтобы разобраться в причинах, иногда полезно сохранить полные коды маркировки и проанализировать их структуру вручную. Давайте вместе разберем, в чем кроются причины этой проблемы и как ее исправить.
Первое, на что стоит обратить внимание в строке кода (02)04610167520028(37)2,1 — это использование запятой в качестве разделителя целой и дробной части веса. Согласно международным стандартам GS1, которые лежат в основе системы маркировки, в таких кодах в качестве десятичного разделителя должен использоваться символ «точка» (.), а не «запятая» (,).
Почему 1С формирует код с запятой?
Чаще всего это связано с региональными настройками операционной системы Windows. В российских настройках по умолчанию разделителем дробной части является запятая. Некоторые модули и обработки в 1С могут некорректно обрабатывать эти настройки и подставлять системный разделитель в код маркировки, что и приводит к ошибке. Хотя это не единственная причина, проверка региональных стандартов может помочь в диагностике.
Однако, даже если мы заменим запятую на точку, проблема не будет полностью решена. Корень зла лежит глубже — в самой структуре кода.
Чтобы понять основную ошибку, давайте разберемся со структурой кода маркировки. Код состоит из так называемых идентификаторов применения (Application Identifiers, AI), которые заключены в скобки. Каждый идентификатор сообщает системе, какие данные идут следом за ним.
Проанализируем проблемный код:
(02) — это идентификатор, указывающий на код товара (GTIN) логистической упаковки.04610167520028 — сам GTIN.(37) — это идентификатор, который, согласно стандарту GS1, обозначает КОЛИЧЕСТВО единиц товара в упаковке. Важно понимать, что это целое, счетное значение. Например, количество головок сыра или пачек масла в коробке.2,1 — значение, которое система ошибочно подставила для веса.Здесь и кроется главная ошибка: программа пытается передать вес (дробное число 2,1) в поле, предназначенном для количества штук (целое число). Система "Честный ЗНАК" видит идентификатор (37), ожидает после него целое число, но получает "2,1", что не соответствует шаблону, и закономерно выдает ошибку. Если вам требуется оперативно перепечатать этикетку с верными данными, можно использовать дубликатор кодов маркировки DataMatrix, который поддерживает работу с различными КИЗами. Для предотвращения подобных сбоев есть решение для автоматизации обмена с ЦРПТ и проверки кодов.
Для указания веса товара с переменной массой в стандарте GS1 предусмотрен другой идентификатор — (3103). Он обозначает вес нетто в килограммах, но есть важный нюанс: значение после него должно быть представлено в виде шестизначного числа, обозначающего вес в граммах.
Посмотрим на примеры:
(3103)002100.(3103)000276.(3103)010000.При передаче данных о молочной продукции используется объемно-сортовой учет (ОСУ). В этом случае в УПД передается не индивидуальный код с каждой упаковки, а агрегированная информация о партии товара. Структура кода для ОСУ выглядит следующим образом:
(02)[GTIN](37)[Количество](3103)[Вес в граммах]
Разберем эту структуру подробнее:
(02)[GTIN] — GTIN товара.(37)[Количество] — Количество единиц весового товара. Если вы отгружаете один кусок сыра, здесь будет стоять 1.(3103)[Вес в граммах] — Точный вес этого куска (или суммарный вес, если их несколько) в граммах.Таким образом, для нашего примера с реализацией одного куска сыра весом 2,1 кг правильная строка в УПД должна содержать примерно такую конструкцию (поможет модуль организации юридически значимого ЭДО в 1С):
(02)04610167520028(37)1(3103)002100
Именно такой формат ожидает получить система "Честный ЗНАК".
Теперь, когда мы выяснили причину, давайте разберем, какие шаги предпринять для устранения ошибки в 1С.
Правила маркировки и форматы обмена данными с "Честным ЗНАКом" периодически меняются. Разработчики 1С вносят соответствующие изменения в новые релизы конфигураций. Ошибочное формирование кода может быть просто багом в устаревшей версии вашей программы. Убедитесь, что у вас установлена последняя актуальная версия конфигурации 1С:Управление торговлей. Это первый и самый важный шаг.
Убедитесь, что для весового сыра в карточке номенклатуры правильно указаны все параметры, связанные с маркировкой. Проверьте следующее:
В настройках обмена с системой маркировки могут быть параметры, влияющие на формирование кодов. Убедитесь, что все настройки соответствуют актуальным требованиям. Чтобы процессы отгрузки не прерывались из-за проблем с доступом, рекомендуем настроить автоматическое обновление токенов Честного Знака в 1С.
Если обновление конфигурации не помогло, и вы уверены, что проблема в разделителе (запятая вместо точки), можно попробовать временно изменить региональные настройки Windows. Для этого перейдите в "Панель управления" -> "Часы и регион" -> "Региональные стандарты", на вкладке "Форматы" нажмите "Дополнительные параметры" и в поле "Разделитель целой и дробной части" установите точку. Однако это стоит делать с осторожностью, так как это может повлиять на работу других программ. В идеале, 1С должна корректно обрабатывать любые системные настройки.
В заключение, ошибка "не удалось разобрать код маркировки" для весового товара почти всегда связана с тем, что система 1С генерирует код в неверном формате. Ключ к решению — обеспечить формирование кода с использованием правильного идентификатора веса (3103) и корректного десятичного разделителя. Если ваша работа связана с большими объемами товаров, полезно изучить практический опыт коллег про маркировку остатков товаров на складе или маркировку остатков в распределенной рознице, чтобы избежать хаоса и ошибок в будущем.