Рассмотрим частую бизнес-задачу: в магазине есть несколько отделов (например, "Продукты" и "Бытовая химия"), но используется одна касса (ККМ). Необходимо, чтобы в каждом кассовом чеке, а также в итоговом Z-отчете, было четко видно, какой товар к какому отделу относится и какова сумма продаж по каждому из них. Простая группировка номенклатуры по папкам, складам или сегментам не дает нужного результата, так как эта информация не передается на фискальный регистратор.
Проанализируем, как решить эту задачу стандартными средствами в 1С:Розница 2.3, а также разберем технические нюансы и отличия для версии 3.0.
Наиболее простое и эффективное решение для версии 2.3 не требует доработок конфигурации и выполняется через стандартные настройки кассы ККМ. Этот механизм позволяет "привязать" определенные виды номенклатуры к номерам секций (отделов) на фискальном регистраторе.
Разберем настройку по шагам:
НСИ (Нормативно-справочная информация) и выберите пункт Кассы ККМ.
1).После выполнения этих настроек при продаже товара, относящегося к указанным видам номенклатуры, 1С будет передавать на кассовый аппарат соответствующий номер секции. Этот номер будет напечатан в чеке рядом с позицией товара и учтен в итоговых суммах по секциям в Z-отчете.
В версии 1С:Розница 3.0, которая базируется на 1С:УНФ, логика работы с секциями изменилась. Привычной настройки "Распределение выручки по секциям ФР" в карточке кассы вы, скорее всего, не найдете.
В этой версии используется более сложный механизм "Распределение продаж". Он в первую очередь предназначен для более глобальных задач, таких как продажа от имени разных организаций или с применением разных систем налогообложения (СНО) в одном чеке.
Для реализации простой разбивки по отделам в рамках одной СНО в 1С:Розница 3.0 часто требуется доработка конфигурации с помощью расширений. Штатно программа обычно передает номер отдела, равный 1. В некоторых случаях эту логику можно настроить через Сценарии подключения оборудования, если используемый драйвер ККТ позволяет гибко сопоставлять параметры из 1С с командами для кассы.
Для программистов и продвинутых пользователей будет полезно понимать, как происходит взаимодействие на более низком уровне.
Когда 1С отправляет команду на печать позиции чека, она передает драйверу ККТ набор параметров, включая цену, количество, ставку НДС и, в нашем случае, номер секции (отдела). В старых версиях драйверов (например, АТОЛ ДТО 8 или 9) это могло выглядеть как прямой вызов метода:
FR.setParam(FR.LIBFPTR_PARAM_DEPARTMENT, НомерОтдела)
В современных конфигурациях 1С, работающих через Библиотеку подключаемого оборудования (БПО) и Native-драйверы (например, АТОЛ ДТО 10), взаимодействие происходит через обмен XML-пакетами. В структуре XML-данных для позиции чека передается специальный тег, например Department, значение которого и является номером секции.
Если вы уверены, что в 1С все настроено верно, но секция в чеке не печатается, проблема может быть на стороне драйвера или самой кассы. Проверить это можно через утилиту "Тест драйвера ККТ", где в параметрах оборудования можно посмотреть, разрешено ли использование секций и как они настроены.
Даже при идеальной настройке в 1С можно столкнуться с проблемами, связанными с особенностями оборудования. В обсуждаемом случае используется касса АТОЛ 90Ф — это "ньюджер", то есть автономная касса, работающая в режиме фискального регистратора. Такие устройства могут иметь ряд ограничений.
Таким образом, для успешной настройки требуется комплексный подход: корректно указать распределение в 1С, убедиться, что прошивка и настройки ККТ поддерживают эту функцию, и при необходимости отредактировать шаблон Z-отчета на самом устройстве.