При работе с алкогольной продукцией в программах 1С пользователи часто сталкиваются с необходимостью перемещения запасов с первого регистра (склад) на второй регистр (торговый зал). Этот процесс регламентирован и контролируется государственным модулем ЕГАИС через Универсальный Транспортный Модуль (УТМ). Однако в процессе отправки документа передачи может возникнуть критическая ошибка транспортной системы.
В этой статье мы подробно разберем, почему возникает ошибка вида «Продукция с идентификатором... Количество фасованной продукции должно быть указано отличным от нуля, целым, положительным числом», проанализируем логику работы ЕГАИС и предоставим пошаговое руководство по исправлению данной ситуации в конфигурациях 1С.
Давайте проанализируем текст типичной ошибки, которую возвращает УТМ ЕГАИС:
«Продукция с идентификатором "0015834000001449407": Количество фасованной продукции должно быть указано отличным от нуля, целым, положительным числом. Владелец ["030000335157"], передача продукции в торговый зал, позиция "6".»
Эта ошибка указывает на фундаментальное расхождение между тем, как конкретный алкогольный код (код АП) зарегистрирован в классификаторе ЕГАИС производителем (импортером), и тем, как эта же позиция настроена в вашей локальной базе 1С. Система ЕГАИС делит всю алкогольную продукцию на две категории:
Если в вашей учетной системе карточка товара настроена как разливной (нефасованный) алкоголь, программа при отправке XML-пакета в ЕГАИС формирует файлы с флагами нефасованной продукции. Однако сервер ЕГАИС, сверяя код АП 0015834000001449407 со своим глобальным реестром, видит, что данный товар зарегистрирован как фасованный. Происходит логический конфликт: сервер ожидает получить штучный (целочисленный) объем фасованной продукции, а УТМ передает параметры для разливного алкоголя. В итоге транзакция отклоняется.
Рассмотрим подробнее три основные причины этой проблемы и способы их устранения.
Наиболее распространенный сценарий в решениях «1С:Розница», «1С:Управление торговлей» или «1С:Общепит» — ошибочно включенная опция продажи на розлив для штучного алкоголя. Пытаясь настроить продажу коктейлей или порционного крепкого алкоголя, пользователи случайно выставляют этот признак в свойствах всей номенклатурной позиции.
Выясним, как это исправить по шагам:
Алкогольная продукция, продаваемая в розлив, его необходимо снять.Иногда признак розлива отключен, но в самом классификаторе алкогольной продукции ЕГАИС внутри 1С для данного кода АП не заполнена емкость тары (стоит нулевое значение). УТМ ЕГАИС считывает нулевой объем как признак некорректных данных для фасованного товара.
Для исправления проанализируем справочник классификатора:
Классификатор алкогольной продукции ЕГАИС.0015834000001449407).0 или поле вовсе не заполнено, программа не сможет корректно рассчитать передаваемые данные.0.5 или 0.75), соответствующий реальному товару.Бывают ситуации, когда в справочнике алкогольной продукции ЕГАИС присутствуют дублирующие элементы с одинаковым кодом АП. Это случается из-за сбоев синхронизации или некорректного ручного сопоставления. При заполнении документа перемещения 1С может подтягивать битую (пустую) карточку-дубль, игнорируя корректно заполненную основную.
Проанализируем базу на предмет дублей:
Классификатор алкогольной продукции ЕГАИС настроим отбор по коду алкогольной продукции.Если визуальный осмотр карточек не дал результатов, целесообразно выполнить технический анализ передаваемых данных. Разработчик может проверить, какие именно данные формирует система перед отправкой XML-пакета. Посмотрим на примере программного кода, как система определяет признак фасованности при формировании движений ЕГАИС:
// Пример анализа реквизитов алкогольной продукции перед отправкой в УТМ
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| АлкогольнаяПродукция.Ссылка КАК АП,
| АлкогольнаяПродукция.Код КАК КодАП,
| АлкогольнаяПродукция.Емкость КАК Емкость,
| АлкогольнаяПродукция.ВидПродукции.Фасованная КАК Фасованная
|ИЗ
| Справочник.КлассификаторАлкогольнойПродукцииЕГАИС КАК АлкогольнаяПродукция
|ГДЕ
| АлкогольнаяПродукция.Код = &КодАП";
Запрос.УстановитьПараметр("КодАП", "0015834000001449407");
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Фасованная И (Выборка.Емкость = 0 Или Выборка.Емкость = Неопределено) Тогда
Сообщить("Внимание! Продукция " + Выборка.АП + " является фасованной, но имеет нулевую емкость!");
КонецЕсли;
КонецЦикла;
КонецЕсли;
Этот простой алгоритм позволяет быстро выявить несоответствие реквизитов внутри базы данных 1С, предотвращая отправку некорректных XML-схем в транспортный модуль.
После того как мы устранили несоответствия в справочниках 1С, нам необходимо заново сформировать и отправить данные в ЕГАИС. Простое нажатие кнопки «Отправить» в старом документе может не помочь, так как XML-пакет мог уже кэшироваться или быть сформированным со старыми параметрами.
Выполним следующие шаги для гарантированной отправки:
Передача в торговый зал ЕГАИС (перемещение со склада на розничный регистр).Следуя этой инструкции, вы сможете оперативно устранять подобные конфликты данных ЕГАИС и избегать простоев в торговых точках при перемещении алкогольной продукции.