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