Как настроить и кастомизировать шаблон чека ККТ в 1С:Розница

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Рано или поздно любой разработчик 1С или администратор торговой системы сталкивается с задачей настройки внешнего вида чека ККТ. Стандартный чек часто кажется перегруженным лишней информацией или, наоборот, не содержит важных для покупателя сведений: маркетинговых предложений, информации о бонусах, артикулов или специфических характеристик товаров.

В этой статье мы подробно разберем, как устроен механизм формирования чеков в конфигурации 1С:Розница 2.3 (и аналогичных решениях на базе Библиотеки подключаемого оборудования — БПО), какие ограничения накладывает законодательство и само кассовое оборудование, и как обойти эти ограничения стандартными и программными методами.

Почему не удается произвольно отредактировать фискальную часть чека в 1С

При первой попытке отредактировать шаблон чека ККМ через меню Администрирование — Печатные формы, отчеты и обработки — Шаблоны этикеток, ценников и чеков ККМ многие разработчики сталкиваются с тем, что программа не позволяет добавить произвольную таблицу или удалить некоторые стандартные элементы. Выясним причину этого поведения.

Встроенный редактор шаблонов чеков в 1С имеет жесткие ограничения, обусловленные требованиями Федерального закона № 54-ФЗ и логикой работы БПО:

  1. Три предопределенные секции: Шаблон чека ККТ всегда состоит из трех обязательных разделов: «Шапка чека», «Состав чека» (с таблицей «Товары») и «Оплата».
  2. Фискальный контроль: Данные в таблице «Товары» (наименование, количество, цена, сумма, ставка НДС) формируют фискальный блок. Эти данные жестко контролируются кассовым аппаратом и ОФД. Изменять структуру этого блока, удалять его или менять местами обязательные реквизиты в рамках стандартного визуального редактора 1С нельзя.
  3. Запрет на таблицы: В отличие от шаблонов ценников или этикеток, для шаблона «Чек ККТ» добавление новых произвольных таблиц визуальными средствами не предусмотрено. Мы можем оперировать только обычными строками, составными строками и произвольным текстом.

Таким образом, наша задача при кастомизации чека сводится к тому, чтобы максимально эффективно использовать нефискальные зоны (шапку, подвал и добавление текстовых строк к позициям номенклатуры).

Как добавить в доступные поля свои реквизиты через СКД

Если в стандартном списке «Доступные поля» визуального редактора вам не хватает нужных данных (например, артикула, кода товара, характеристик или остатка бонусов), их можно добавить с помощью редактирования Схемы компоновки данных (СКД), на которой базируется шаблон.

Рассмотрим этот процесс по шагам:

  1. Откройте форму редактирования шаблона чека ККМ.
  2. В верхней панели нажмите кнопку Редактировать СКД.
  3. В открывшемся окне схемы компоновки перейдите на вкладку Набор данных - Запрос. Вы увидите запрос, который собирает данные для печати чека.
  4. Модифицируйте запрос, добавив левое соединение с необходимыми таблицами (например, с регистром сведений по штрихкодам, остаткам бонусов или справочником характеристик) и выберите нужные поля в секции ВЫБРАТЬ.
  5. Перейдите на вкладку Настройки, выберите добавленные поля и перенесите их в список выбранных полей.
  6. Сохраните изменения в СКД.

После выполнения этих действий новые параметры появятся в списке Доступные поля макета чека. Теперь вы можете перетащить их мышкой в область дополнительных нефискальных строк — например, выводить артикул прямо под наименованием товара в составе чека.

Как протестировать макет на реальном документе в 1С

При редактировании шаблона очень важно сразу видеть результат изменений без необходимости постоянно пробивать тестовые чеки на реальной кассе. Для этого в конфигураторе шаблонов предусмотрен удобный механизм тестирования.

Проанализируем, как им пользоваться:

  1. В верхней части окна конструктора шаблона найдите поле Документ.
  2. Нажмите на кнопку выбора и выберите из списка любой уже существующий в базе документ ЧекККМ (желательно выбрать документ с несколькими позициями номенклатуры, скидками и разными видами оплаты).
  3. После выбора документа нажмите кнопку Обновить пример.
  4. В правой панели предпросмотра отобразится реальный текст чека с данными выбранного документа, с учетом всех настроенных шрифтов, переносов и префиксов.

Это позволяет быстро выравнивать строки, настраивать ширину колонок и оценивать читаемость будущего чека.

Программный обход ограничений через расширение конфигурации

Если стандартный конструктор шаблонов все же не позволяет добиться нужного внешнего вида (например, требуется кардинально переделать логику вывода скидок или полностью убрать лишний текст, который 1С принудительно добавляет в фискальный документ), разработчики прибегают к использованию механизмов расширения конфигурации.

Вся логика формирования текстового представления чеков сосредоточена в общих модулях, связанных с подключаемым оборудованием. Основная функция, отвечающая за сборку текста нефискальных документов, обычно называется СформироватьТекстНефискальногоДокумента (или имеет схожее название в зависимости от релиза БПО) в общем модуле МенеджерОборудованияКлиентСервер или МенеджерОборудованияВызовСервера.

Давайте посмотрим на пример того, как можно перехватить и модифицировать вывод чека в расширении:


&Вместо("СформироватьТекстНефискальногоДокумента")
Функция Расш_СформироватьТекстНефискальногоДокумента(ПараметрыДокумента, ВходящиеДанные)
    
    // Получаем стандартно сформированный массив строк чека
    Результат = ПродолжитьВызов(ПараметрыДокумента, ВходящиеДанные);
    
    // Модифицируем результат: ищем нужные строки и заменяем их
    Для Каждого СтрокаТекста Из Результат Цикл
        Если Найти(СтрокаТекста, "СтарыйТекст") > 0 Тогда
            СтрокаТекста = СтрЗаменить(СтрокаТекста, "СтарыйТекст", "НовыйТекст");
        КонецЕсли;
    КонецЦикла;
    
    Возврат Результат;
    
КонецФункции

С помощью этого метода вы можете полностью контролировать передаваемый на ККТ поток текста: удалять ненужные строки, переформатировать их, добавлять разделители из символов или полностью переписывать логику вывода нефискальной части чека.

Разделение зон ответственности: Настройки 1С и Драйвер ККТ

Важно понимать, что финальный вид чека на бумажной ленте зависит не только от настроек в 1С, но и от параметров самого кассового аппарата (Атол, Штрих-М и др.). Если вы бьетесь над красивым шрифтом в 1С, но на бумаге все равно выводится сжатый нечитаемый текст, проблема кроется в настройках кассы.

Адрес расчета, ИНН, кассир и СНО: Некоторые обязательные реквизиты (например, наименование организации, ИНН, заводские номера ККТ/ФН) прописываются непосредственно в самом фискальном накопителе при регистрации кассы. Из 1С изменить их шрифт или убрать их из шапки невозможно — за их автоматический вывод отвечает прошивка кассового аппарата.

Клише и подвал (рекламный текст): Текст в самом верху (приветствие, логотип) и в самом низу (спасибо за покупку) часто настраивается напрямую через утилиту драйвера ККТ (например, «Тест драйвера ККТ Атол» или «Тест драйвера Штрих-М»). Рекомендуется очистить эти поля в драйвере, если вы хотите полностью контролировать вывод этой информации из 1С, либо, наоборот, настроить их там один раз, чтобы не перегружать макет в 1С.

Редакторы шаблонов от производителей: Крупные производители ККТ предоставляют свои редакторы шаблонов. Например, у Атол есть инструмент «Редактор шаблонов ККТ», который позволяет редактировать внутренний шаблон кассы (шрифты, межстрочные интервалы, плотность текста). Если настроить шаблон на стороне кассы, то даже стандартный поток данных из 1С будет печататься в красивом, компактном и кастомизированном виде без существенных доработок кода.

← На главную