При торговле обувью или одеждой учет товаров практически всегда ведется в разрезе характеристик (размеров, цветов, ростовок). Одной из частых задач при оформлении торгового зала является печать сводного ценника на модель, в котором перечислены только те размеры, которые физически есть в наличии на складе магазина.
В этом материале мы подробно разберем, почему стандартный конструктор шаблонов ценников в 1С не позволяет решить эту задачу «из коробки», проанализируем архитектуру работы типовых конфигураций и рассмотрим пошаговые алгоритмы реализации данной функциональности.
Проанализируем работу штатного механизма печати ценников и этикеток в конфигурациях 1С:Розница 2.x / 3.x, 1С:Управление торговлей и 1С:УНФ. В базовом исполнении программа работает по следующему принципу:
1 строка табличной части печати = 1 сочетание «Номенклатура + Характеристика» = 1 отдельный ценник.
Когда вы открываете обработку Печать этикеток и ценников и выбираете товар с характеристиками, программа генерирует отдельную печатную форму для каждого размера. Если попытаться отредактировать схему компоновки данных (СКД) внутри редактора шаблонов ценников, вы столкнетесь со следующими архитектурными ограничениями:
Таким образом, настроить вывод размерной сетки с остатками только через пользовательский интерфейс редактора шаблонов невозможно.
Рассмотрим технический алгоритм, который позволяет реализовать печать сводного ценника с актуальными остатками без снятия конфигурации с поддержки. Для этого используется механизм расширений или внешних обработок (печатных форм).
Разберем по шагам, как должна работать доработанная печатная форма:
ТоварыНаСкладах (или ОстаткиТоваров) для получения всех характеристик, у которых остаток строго больше нуля.Посмотрим на пример запроса на языке 1С, который собирает актуальные остатки по характеристикам номенклатуры:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстатки.Характеристика КАК Характеристика,
| ТоварыНаСкладахОстатки.В НаличииОстаток КАК Количество
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(
| &Период,
| Магазин = &Магазин
| И Номенклатура В (&МассивНоменклатуры)
| И ВНаличииОстаток > 0) КАК ТоварыНаСкладахОстатки
|УПОРЯДОЧИТЬ ПО
| ТоварыНаСкладахОстатки.Характеристика.Наименование ИЕРАРХИЯ";
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("Магазин", ВыбранныйМагазин);
Запрос.УстановитьПараметр("МассивНоменклатуры", МассивТоваров);
РезультатЗапроса = Запрос.Выполнить();
Далее в коде обработки полученные характеристики сворачиваются в текстовую строку с помощью функции СтрСоединить():
МассивРазмеров = Новый Массив;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
МассивРазмеров.Добавить(Строка(Выборка.Характеристика));
КонецЦикла;
СтрокаРазмеровНаЦенник = СтрСоединить(МассивРазмеров, " | ");
В результате в макете ценника в поле размера будет выведена готовая строка вида: 38 | 39 | 40 | 42, содержащая только реально присутствующие в магазине позиции.
Если бюджет или ресурсы на доработку программы ограничены, проанализируем альтернативные варианты организации работы в розничном магазине:
В специализированной конфигурации 1С:Розница. Магазин одежды и обуви функционал работы с размерными сетками и печатью обувных матриц интегрирован на уровне ядра системы. В ней штатно предусмотрена возможность вывода полноразмерных матриц с автоматическим подсвечиванием или скрытием отсутствующих размеров.
Распространенная схема в обувных магазинах: на ценник выводится полный список существующих размеров модели (вся линейка от производителя). При выкладке товара на витрину продавцы вручную зачеркивают ручкой или маркером отсутствующие размеры. При продаже последнего экземпляра размер зачеркивается, при поступлении партии — ценник перепечатывается целиком.
Для автоматизации магазинов с высокой динамикой продаж применяется интеграция 1С с электронными ценниками на основе «электронной бумаги» (E-Ink). При проведении документа Реализация товаров или Чек ККМ система 1С по радиоканалу отправляет обновленные данные на дисплей ценника. В этом случае список доступных размеров меняется на витрине автоматически в режиме реального времени без затрат на бумагу и печать.
Вывод актуальных остатков по характеристикам на один ценник в стандартной 1С:Розница невозможно выполнить путем простой настройки встроенного СКД. Оптимальным техническим решением является разработка внешней печатной формы, которая выполняет запрос к остаткам и формирует сводную строку размеров для макета ценника.