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