При работе с торговым оборудованием в режиме Offline пользователи 1С:Управление торговлей 11.2 часто сталкиваются с критической ошибкой: «Выгрузить товары не удалось: Описание ошибок для устройства Фронтол. Выгрузка невозможно! Дублируются следующие коды товаров: [номер кода]». Эта проблема блокирует обновление кассовой базы и может привести к остановке розничных продаж. Рассмотрим подробно причины возникновения этой ситуации и разберем пошаговые методы её решения.
Для начала проанализируем механизм работы 1С с оборудованием Offline. В отличие от обычной продажи, где идентификация идет по штрихкоду или ссылке на объект, ККМ Frontol требует уникальный числовой идентификатор — PLU (Price Look-Up). В системе 1С эти идентификаторы хранятся в специализированном регистре сведений КодыТоваровПодключаемогоОборудованияOffline.
Ошибка дублирования возникает в следующих случаях:
Самый быстрый и эффективный способ решить проблему «здесь и сейчас» — полная очистка регистра сведений, отвечающего за хранение кодов для ККМ. Разберем этот процесс по шагам:
КодыТоваровПодключаемогоОборудованияOffline.Важно: При полной очистке регистра и переназначении кодов необходимо обязательно выполнить полную загрузку справочника товаров в самом Frontol, так как старые коды в кассе больше не будут соответствовать новым кодам в 1С.
Выясним причину конфликта между весовыми и штучными позициями. В торговле принято использовать определенные стандарты для кодирования. Рассмотрим типичную логику системы:
Для весового товара коды обычно ограничиваются диапазоном до 100 000. Это связано с форматом этикеток и штрихкодов EAN-13, где под код товара выделяется всего 5 знаков (префикс 2x + 5 знаков кода + 5 знаков веса + контрольное число).
Для штучного товара рекомендуется использовать диапазон свыше 100 000. Если в настройках 1С начальный код установлен как «1», а весовых товаров много, система неизбежно начнет пересекать эти диапазоны. Проверим настройки:
Иногда проблема кроется в ошибке самого релиза 1С:УТ 11.2. Проанализируем ситуацию: программа при выгрузке делает проверку всей таблицы товаров на уникальность кодов. Если в таблицу попали дубли (например, из-за ошибки в запросе формирования данных), выгрузка прерывается.
Посмотрим на пример кода, который может помочь локализовать ошибку в общем модуле ОбменДаннымиПодключаемоеОборудованиеOffline. Нам нужно найти место, где формируется ТаблицаТоваров и происходит её свертка.
// Пример логики проверки дублей перед выгрузкой
ТаблицаТоваров.Загрузить(РезультатЗапроса.Выгрузить());
ТаблицаПроверки = ТаблицаТоваров.Скопировать();
ТаблицаПроверки.Свернуть("Код", "Количество"); // Где Количество - вспомогательная колонка
Для Каждого СтрокаПроверки Из ТаблицаПроверки Цикл
Если СтрокаПроверки.Количество > 1 Тогда
ТекстОшибки = "Выгрузка невозможна! Дублируются следующие коды товаров: " + СтрокаПроверки.Код;
ВызватьИсключение ТекстОшибки;
КонецЕсли;
КонецЦикла;
Если вы обнаружили, что 1С «видит» дубли там, где их нет в основной базе, проверьте, не попадают ли в выгрузку одновременно и сам товар, и его характеристики как отдельные записи с одинаковым PLU. В коде конфигурации следует убедиться, что при формировании запроса учитывается связка Номенклатура + Характеристика как уникальный ключ для получения кода из регистра.
Чтобы быстро найти конкретные позиции-виновники, не дожидаясь ошибки выгрузки, проанализируем состояние регистра с помощью простого запроса. Это поможет выявить «битые» ссылки или дублирующиеся записи.
ВЫБРАТЬ
КодыТоваров.Код КАК Код,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КодыТоваров.Номенклатура) КАК КоличествоНоменклатуры
ИЗ
РегистрСведений.КодыТоваровПодключаемогоОборудованияOffline КАК КодыТоваров
СГРУППИРОВАТЬ ПО
КодыТоваров.Код
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КодыТоваров.Номенклатура) > 1
Этот запрос покажет все коды, которые присвоены более чем одной номенклатурной позиции. Если результат запроса не пустой — это и есть причина ошибки. Вам останется лишь найти эти позиции в регистре и исправить их вручную или через переназначение кодов.
Проанализируем еще несколько моментов, которые могут влиять на стабильность обмена:
atol.txt, проверьте права доступа к папке обмена. Иногда 1С не может перезаписать старый файл, и Frontol пытается загрузить старые данные, что воспринимается как ошибка.Подводя итог, можно сказать, что в 90% случаев проблема решается полной очисткой регистра сведений и повторным переназначением кодов с учетом правильных диапазонов для весовой продукции. Регулярная профилактика базы и контроль за уникальностью кодов в регистре позволят избежать подобных сбоев в будущем.