При автоматизации розничной торговли алкоголем и другими маркированными товарами в программе 1С:Розница пользователи часто сталкиваются с аппаратной проблемой печатающих устройств (фискальных регистраторов). Когда покупатель приобретает крупную партию однотипного алкоголя (например, десятки или сотни бутылок для праздника), кассовый чек разрастается до огромных размеров. Это связано с тем, что каждая бутылка содержит уникальную акцизную марку (или код маркировки), из-за чего система регистрирует каждую единицу товара отдельной строкой.
Такой "бесконечный" чек не просто расходует чековую ленту, но и может приводить к аварийному завершению работы ККТ. Большинство фискальных накопителей и принтеров чеков имеют жесткие ограничения по количеству строк в одном документе (часто лимит составляет до 1000 строк, но сбои могут начинаться гораздо раньше). В этой статье мы подробно разберем, как решить проблему избыточного количества строк в печатных чеках в конфигурации 1С:Розница, рассмотрим штатные настройки и современные механизмы платформы.
Рассмотрим детально, почему система ведет себя именно так. Согласно требованиям законодательства по регулированию алкогольного рынка (ЕГАИС) и правилам маркировки «Честный Знак», учет маркированных товаров ведется строго поштучно (помарочно). Для каждой единицы продукции в чеке должен быть зафиксирован её индивидуальный код (акцизная марка или код маркировки DataMatrix).
В старых релизах конфигураций (в частности, в ветке 1С:Розница 2.2) это приводило к тому, что помарочный товар физически не мог быть объединен в одну строку. Каждая марка требовала создания отдельной товарной позиции в документе продаж. В результате при продаже 100 бутылок водки одного наименования в ККТ отправлялось 100 отдельных строк с количеством "1" в каждой. ККТ, в свою очередь, послушно распечатывал длинную ленту, рискуя зависнуть на середине операции.
Если вы по-прежнему работаете на старых релизах линейки 2.2 (например, 2.2.7), то частично обойти проблему при вводе данных в режиме РМК (Рабочее место кассира) можно с помощью специального интерфейса:
Важное предостережение: При использовании этого метода в старых релизах Розницы 2.2 система практически не контролирует соответствие сканируемой марки выбранной номенклатуре. Кассир должен быть предельно внимателен, чтобы не допустить пересортицы. Кроме того, данный способ не всегда решает проблему разделения строк при непосредственной печати на фискальном регистраторе из-за ограничений драйвера ККТ и требований ФФД.
Начиная с более поздних релизов ветки 2.2 и во всех актуальных версиях 2.3, разработчики улучшили механизм сканирования. Выясним, как настроить автоматическое свертывание строк при подборе товара:
Когда эта опция включена, кассиру больше не нужно открывать форму множественного ввода вручную. При обычном последовательном сканировании только акцизных марок (минуя предварительное сканирование штрихкода самой бутылки) система автоматически распознает продукцию, сопоставит ее с номенклатурой базы данных и сгруппирует марки в одну строку в интерфейсе РМК. Для корректной работы этой функции в базе обязательно должно быть настроено сопоставление алкогольной продукции ЕГАИС с номенклатурой 1С.
Описанные выше способы группируют позиции только на экране кассира в 1С. Но как обстоит дело с отправкой в ККТ? Ведь фискальный накопитель все равно требует передачи сведений о каждой марке отдельно для ОФД.
В современных релизах 1С:Розница 2.3 (начиная с 2.3.14) и 1С:Розница 3.0 разработчики внедрили революционный механизм — разделение электронной и печатной формы чека. Разберем по шагам, как это работает:
Этот механизм позволяет сэкономить метры кассовой ленты и гарантирует, что фискальный регистратор не зависнет из-за превышения лимита строк.
Если к вам часто приходят оптовые покупатели, закупающие алкоголь коробками, лучшим решением будет полный отказ от бумажного носителя в пользу электронного чека. В интерфейсе РМК перед пробитием чека выполните следующие действия:
Проанализируем ситуацию, если вы решите остаться на старой конфигурации 2.2.7 и попытаетесь "дописать" систему силами программиста. Настоятельно рекомендуем отказаться от идеи "ломания конфы" по следующим причинам:
Рассмотрим пример кода, демонстрирующий, как в новых версиях программно проверяется возможность сворачивания строк при формировании печатной формы фискального документа:
// Пример логики определения необходимости свертки строк для печати
Функция НужноСворачиватьСтрокиПриПечати(ПараметрыРегистрации) Экспорт
НастройкаСвертки = ПолучитьНастройкуРМК("СворачиватьСтрокиПриПечати");
Если НастройкаСвертки Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
Если функция возвращает Истина, то при формировании xml-пакета для драйвера ККТ (например, Атол) система подготавливает две разные таблицы: ТаблицаОФД (с детальным списком марок) и ТаблицаПечати (со свернутыми по номенклатуре строками).
Для эффективного решения проблемы длинных чеков при продаже алкоголя без нарушения законодательства рекомендуем придерживаться следующего алгоритма: