С введением обязательного разрешительного режима (проверки кодов маркировки в реальном времени через систему «Честный ЗНАК») многие пользователи конфигурации 1С:Управление торговлей 11.5 столкнулись с критической ошибкой при пробитии чеков. Ошибка «не удалось распределить код маркировки по товарам...» обычно проявляется после обновления прошивки ККТ до версии 5.17 и выше. Ситуация осложняется тем, что сообщение об ошибке часто возникает уже после того, как кассир принял оплату, что блокирует работу розничной точки.
В этой статье мы подробно разберем причины возникновения данной проблемы и рассмотрим пошаговые методы её решения — от простых настроек интерфейса до внесения изменений в программный код.
Проанализируем ситуацию: начиная с версий прошивок 5.17 (для АТОЛ) и аналогичных для других производителей, ККТ берет на себя часть функций по проверке кодов маркировки. Программа 1С при этом должна корректно передать структуру данных в драйвер, а после получения ответа от кассы — сопоставить (распределить) полученные результаты проверки с конкретными строками в документе продажи. Если версии Библиотеки подключаемого оборудования (БПО), драйвера кассы и самой конфигурации не согласованы, механизм распределения «теряет» связь между маркой и товарной позицией.
Прежде всего, рассмотрим самый надежный и рекомендованный вендором способ. Разработчики 1С оперативно выпускают исправления для механизмов интеграции с ИС МП. Выясним, почему это важно: алгоритмы проверки кодов меняются практически ежемесячно, и старые релизы просто не содержат актуальных структур для обмена данными с обновленными прошивками касс. Кроме того, своевременное обновление позволяет заранее подготовиться к другим изменениям законодательства, таким как обновление УТ 11.5 на ставку 22% после наступления 2026 г..
1С:Управление торговлей. Если версия ниже 11.5.17.x, необходимо выполнить обновление.EF_00_00615432 (или аналогичным для вашего релиза), в описании которых фигурирует «Ошибка распределения кодов маркировки в рознице».ИнтеграцияИСМП.Иногда корень проблемы кроется не в программных ошибках, а в настройках справочников. Посмотрим на ситуацию с точки зрения учета серий. Если для товара включен серийный учет, 1С требует жесткой привязки марки к конкретной серии при распределении данных в чеке. Чтобы исключить ошибки на этапе подготовки данных, полезно запустить контроль заполнения полей маркированного товара, который поможет выявить номенклатуру с некорректными сведениями.
Разберем необходимые настройки:
Проанализируем техническое сопряжение 1С и кассового аппарата. Для работы с прошивками 5.17+ требуются драйверы не ниже версии 10.10.3.0 (для АТОЛ). Если в системе установлен старый драйвер, он может некорректно возвращать структуру JSON с результатом проверки марки, что и вызывает ошибку распределения. В случаях, когда в торговой сети используется большой парк техники, может потребоваться массовое исправление настроек ОФД для ККТ АТОЛ, чтобы оперативно восстановить корректную связь с оборудованием.
Пошаговые действия:
xml-файл или обновив из состава БПО.Если обновление конфигурации по каким-то причинам невозможно в данный момент, или оно не помогло для специфических групп товаров (например, алкогольной продукции), рассмотрим вариант исправления в коде. Чтобы убедиться, что ваши правки не конфликтуют с другими расширениями, рекомендуется предварительно выполнить анализ конфигураций, расширений и отчетов на наличие ошибок.
Нам потребуется внести изменения в общий модуль РозничныеПродажиЛокализация. Рассмотрим пример исправления в функции ПолучитьТоварыИШтрихкодыДляИСМП. В некоторых случаях запрос к товарам работает некорректно из-за отсутствия явной проверки особенностей учета.
Проанализируем пример кода для модификации:
// В функции ПолучитьТоварыИШтрихкодыДляИСМП необходимо модифицировать запрос
// Добавляем проверку на вид номенклатуры или особенность учета
ТекстЗапроса = "ВЫБРАТЬ
| ...
| ГДЕ
| (Номенклатура.ОсобенностьУчета = ЗНАЧЕНИЕ(Перечисление.ОсобенностиУчетаНоменклатуры.АлкогольнаяПродукция)
| ИЛИ Номенклатура.ОсобенностьУчета = ЗНАЧЕНИЕ(Перечисление.ОсобенностиУчетаНоменклатуры.МаркируемаяПродукцияГИСМ))";
Это позволит системе более точно идентифицировать товары, требующие особого распределения штрихкодов в табличной части перед передачей данных в фискальный накопитель.
Посмотрим на ситуацию в комплексе. Ошибка «не удалось распределить код маркировки по товарам» — это чаще всего конфликт между версией протокола обмена и версией программы. Если вы используете разрешительный режим (в этом поможет универсальная обработка фискализации маркированного товара), обязательно проверьте:
Если после сбоев возникла необходимость восстановить данные в системе, можно использовать загрузку и изменение фискальных операций из файла Excel. А в случаях, когда требуется повторная печать носителя с кодом, пригодится возможность вывести коды маркировки заказа на эмиссию с криптохвостом — для этого подойдёт обработка проверки и печати кодов маркировки.
Следуя этим шагам, мы сможем устранить ошибку распределения и обеспечить стабильную работу розничного магазина в условиях новых требований законодательства.