Проблема выгрузки иерархии товаров из типовых конфигураций 1С (таких как «Розница», «Управление торговлей» или «УНФ») во Frontol 5 является классической задачей для специалистов по автоматизации ритейла. По умолчанию типовые механизмы 1С выгружают товары «плоским списком», игнорируя структуру папок. Это происходит потому, что в 1С группы справочника Номенклатура обычно не имеют числового кода (SKU), необходимого Frontol для построения дерева через поле ParentCode.
В этой статье мы подробно разберем, как реализовать выгрузку групп товаров, проанализируем технические ограничения и рассмотрим альтернативные способы организации структуры справочника на кассе.
Проанализируем работу модуля обмена. В большинстве современных конфигураций 1С за сбор данных отвечает функция ПолучитьТаблицуТоваровКВыгрузке. Если мы заглянем в текст запроса, то увидим следующую картину:
Запрос = Новый Запрос(
"ВЫБРАТЬ
| КодыТоваровПодключаемогоОборудованияOffline.Используется КАК Используется,
| КодыТоваровПодключаемогоОборудованияOffline.Код КАК Код,
| """" КАК КодГруппы,
| КодыТоваровПодключаемогоОборудованияOffline.Номенклатура КАК Номенклатура,
|..."
Как мы видим, поле КодГруппы (которое соответствует ParentCode во Frontol) намеренно оставляется пустым. Более того, основным источником данных служит регистр сведений КодыТоваровПодключаемогоОборудованияOffline, в котором хранятся только элементы (товары), но отсутствуют сами группы справочника Номенклатура.
Разберем, как модифицировать механизм выгрузки, чтобы Frontol увидел структуру папок. Основная сложность здесь заключается в том, что у групп в 1С нет числового кода SKU, а формат ATOL требует именно числовую связь.
Для решения этой задачи выполним следующие шаги:
Код, если он числовой.GUID группы (преобразование ссылки в число).
// Пример получения иерархии групп для выгружаемых товаров
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Номенклатура.Родитель КАК Группа
|ПОМЕСТИТЬ ВТ_Группы
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В (&МассивТоваров)
|;
|ВЫБРАТЬ
| Группы.Группа КАК Ссылка,
| Группы.Группа.Наименование КАК Наименование,
| Группы.Группа.Родитель КАК Родитель
|ИЗ
| ВТ_Группы КАК Группы";
После получения списка групп их нужно добавить в таблицу выгрузки перед товарами, указав признак того, что это именно группа (соответствующие флаги в формате Frontol).
Выясним причину, по которой опытные интеграторы часто отказываются от прямой иерархии. Во Frontol 5 иерархия справочника товаров может замедлять работу интерфейса при глубокой вложенности (более 5 уровней). Каждое обращение к базе для проверки вхождения товара в группу требует рекурсивного обхода.
Вместо этого рассмотрим механизм Классификаторов. Это позволяет:
Для реализации этого метода в 1С можно использовать Виды номенклатуры или Ценовые группы, выгружая их как значения классификаторов.
Если иерархия нужна исключительно для настройки маркетинговых акций и скидок, проанализируем возможность использования Сегментов номенклатуры. В типовой «Рознице» или «УТ 11» скидки часто привязываются не к папкам справочника, а к сегментам.
Посмотрим на алгоритм действий:
UserValue1) или в те же классификаторы.Этот подход избавляет от необходимости дублировать сложную структуру папок 1С в кассовом ПО.
Проанализируем ситуацию с удалением данных. При использовании полной выгрузки ($$$DELETEALL) проблем обычно не возникает. Однако при инкрементальной (частичной) выгрузке важно помнить: если в 1С товар был перемещен из одной папки в другую, во Frontol необходимо передать обновление ParentCode. Если сама группа еще не была выгружена ранее, ее нужно создать в этом же файле обмена, иначе товар попадет в корень справочника.
Также обратим внимание на коды групп. В современных версиях «1С:Розница» (начиная с 2.3.10+) разработчики предусмотрели возможность создания SKU для групп (папок). Если эта опция включена, типовой механизм может подхватить эти коды, и задача упростится до выбора нужных папок в настройках обмена с подключаемым оборудованием.
Подводя итог, выбор метода зависит от целей: для визуального удобства кассира лучше использовать плиточное меню (Fast Goods) или классификаторы, а для скидок — сегменты. Прямая выгрузка иерархии папок целесообразна только в небольших справочниках с простой структурой.