При ведении розничной торговли часто возникает ситуация, когда в одном магазине работают две организации (например, ООО для продажи подакцизных товаров и ИП для оказания услуг или продажи прочих товаров). В такой конфигурации кассиру удобно работать в едином окне Рабочего места кассира (РМК), но при этом система должна автоматически разделять товары по разным чекам и пробивать их на разные фискальные регистраторы. Рассмотрим подробно, как реализовать этот механизм в программе «1С:Розница», и разберем специфику работы с документом Заказ покупателя.
Проанализируем базовые возможности конфигурации. В «1С:Розница» (начиная с редакции 2.x и выше) предусмотрен штатный функционал, который позволяет закрепить определенные категории товаров за конкретными организациями. Для этого мы должны использовать справочник Настройка распределения продаж.
Рассмотрим пошагово процесс настройки распределения:
Проанализируем ситуацию в РМК: когда кассир сканирует товар, система обращается к этому регистру настроек. Если в корзине оказываются позиции из разных групп, то при нажатии кнопки Оплата программа автоматически создаст два чека. Кассир сначала закроет оплату по первому чеку (на первую ККМ), а затем система сразу предложит оплатить второй чек (на вторую ККМ).
Чтобы распределение сработало корректно, нам необходимо убедиться, что оборудование правильно привязано к рабочему месту. Разберем основные моменты настройки:
Выясним причину, почему автоматическое разделение может не сработать, если мы используем Заказ покупателя. В типовой архитектуре «1С:Розница» документ Заказ покупателя создается от имени одной организации. Когда мы пытаемся оплатить такой заказ через РМК, система ориентируется на организацию, указанную в шапке заказа.
Рассмотрим варианты решения этой проблемы:
Вариант 1: Разделение заказов на этапе создания. Если менеджер принимает заказ, в котором есть и товары, и услуги (относящиеся к разным фирмам), правильным решением будет создание двух отдельных документов Заказ покупателя. В этом случае в РМК кассир будет поочередно выбирать и оплачивать сначала один заказ (на первую ККМ), затем другой.
Вариант 2: Использование сегментации номенклатуры. Посмотрим на ситуацию глубже. Если мы не хотим жестко делить заказы, можно попробовать настроить распределение через Сегменты номенклатуры. В правилах распределения продаж укажем не группы, а сегменты. Однако ограничение по организации в шапке заказа все равно может привести к тому, что РМК попытается пробить всё на одну кассу, игнорируя настройки распределения для товаров, не принадлежащих организации заказа.
Если типового функционала недостаточно и требуется, чтобы один Заказ покупателя «бесшовно» превращался в два чека разных организаций, нам придется внести изменения в программный код. Рассмотрим примерную логику, которую должен реализовать программист.
Нам необходимо перехватить момент создания чека на основании заказа в модуле РМК. Логика работы может выглядеть следующим образом:
// Примерная схема логики разделения корзины в РМК
Процедура ОбработкаОплатыЗаказа(ДокументЗаказ)
// 1. Получаем таблицу товаров из заказа
ТаблицаТоваров = ДокументЗаказ.Товары.Выгрузить();
// 2. Группируем товары по правилам распределения продаж
// Используем типовой метод получения организации по номенклатуре
Для Каждого СтрокаТовар Из ТаблицаТоваров Цикл
ОрганизацияПродавца = ПолучитьОрганизациюПоРаспределению(СтрокаТовар.Номенклатура, Магазин);
СтрокаТовар.Организация = ОрганизацияПродавца;
КонецЦикла;
// 3. Формируем отдельные пакеты данных для каждой ККМ
// И вызываем стандартный механизм пробития чека для каждой группы
КонецПроцедуры
При такой доработке система проигнорирует реквизит Организация в самом заказе и распределит позиции по чекам согласно актуальным правилам в регистре Распределение продаж.
Проанализируем еще одну техническую деталь: Склады. Часто распределение по организациям требует и разделения остатков по разным складам. Если товар для Организации №1 числится на «Складе А», а для Организации №2 на «Складе Б», убедитесь, что в настройках РМК у кассира есть доступ к обоим складам. В противном случае при попытке пробить чек система выдаст ошибку о недостаточном количестве товара на складе, указанном в правиле распределения.
Подведем итог нашему разбору. Типовая «1С:Розница» отлично справляется с задачей разделения чеков в РМК при обычной продаже (подбор товара напрямую в корзину). Основной инструмент для этого — Настройка распределения продаж.
Рекомендации:
Таким образом, мы выяснили, что задача решаема, и выбор конкретного метода зависит от того, насколько критично для бизнес-процесса сохранение единого документа заказа.