Как изменить структуру кассового чека при печати из 1С и вывести в него дополнительные данные?

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

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

В этой статье мы подробно разберем по шагам, как устроен процесс печати чеков в 1С, какие законодательные ограничения накладывает Федеральный закон № 54-ФЗ, а также какими техническими способами можно изменить структуру чека.

1. Законодательные ограничения (ФЗ-54): что можно и что нельзя менять в чеке

Прежде чем приступать к программированию или изменению макетов, проанализируем ситуацию с точки зрения законодательства РФ. Кассовый чек — это не просто бумажная квитанция для покупателя, а строгий фискальный документ. Согласно Федеральному закону № 54-ФЗ (статья 4.7), чек должен содержать обязательный перечень реквизитов.

В чеке в обязательном порядке должны присутствовать:

  1. Наименование документа («Кассовый чек»).
  2. Дата, время и адрес осуществления расчета.
  3. ИНН и наименование организации-продавца (или ИП).
  4. Признак расчета (приход, возврат прихода, расход, возврат расхода).
  5. Наименование товаров, работ или услуг, их количество, цена за единицу и общая сумма расчета.
  6. Ставка НДС и сумма налога (для плательщиков НДС).
  7. Форма расчета (наличные или безналичные).
  8. Заводской номер фискального накопителя (ФН), регистрационный номер ККТ, фискальный признак документа и QR-код.

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

Что касается данных покупателя (плательщика): при расчете с обычными физическими лицами указывать их ИНН или ФИО на бумажном чеке не требуется. Однако при расчете между юридическими лицами или ИП (B2B-сегмент) указание наименования и ИНН покупателя в чеке является обязательным по закону.

2. Фискальная и нефискальная части чека

Для понимания принципов настройки чека разделим его структуру на две части:

3. Как изменить чек стандартными средствами 1С (без программирования)

Рассмотрим подробнее возможности современных конфигураций 1С (таких как «1С:Розница», «1С:УНФ» или «1С:Управление торговлей»), которые используют Библиотеку подключаемого оборудования (БПО). В них встроен удобный интерактивный механизм.

Выясним, как им воспользоваться:

  1. Перейдите в раздел администрирования подключаемого оборудования.
  2. Найдите справочник «Шаблоны этикеток, ценников и чеков ККМ».
  3. Создайте новый шаблон с типом «Чек ККМ».
  4. С помощью встроенного визуального конструктора вы можете добавлять новые текстовые поля в шапку или подвал чека.
  5. Также доступна настройка печати так называемого «Нефискального документа» (слип-чека). Касса сначала напечатает стандартный фискальный чек, а следом за ним автоматически выдаст второй чек с любой произвольной информацией (например, детальным списком комплектации для склада).

В «1С:Бухгалтерии предприятия 3.0» (БП 3) возможности визуального редактора шаблонов сильно ограничены по сравнению с торговыми решениями, поэтому для решения задачи автора (вывод состава реализации из ПКО) потребуется привлечение программиста 1С.

4. Программная доработка чека в 1С с помощью Расширений

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

Нам потребуется перехватить процедуру подготовки XML-пакета с данными чека, который 1С отправляет на ККТ. В современных версиях БПО за это отвечает интеграционный компонент и общие модули работы с подключаемым оборудованием.

Рассмотрим пример кода, который перехватывает формирование чека и добавляет в него произвольный текст (нефискальные строки) с информацией о документе-основании:


&ВОбходе
Процедура Перед_МенеджерОборудованияКлиентСервер_ПодготовитьДанныеДляПечати(ПараметрыЧека, ДанныеФискальногоУстройства) Экспорт
    
    // Проверим, что документ-основание является Приходным кассовым ордером
    Если ТипЗнч(ПараметрыЧека.ДокументОснование) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") Тогда
        
        ПКО = ПараметрыЧека.ДокументОснование;
        
        // Проверяем наличие заполненного документа-основания "Реализация товаров и услуг"
        Если ЗначениеЗаполнено(ПКО.ДокументОснование) И ТипЗнч(ПКО.ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
            
            Реализация = ПКО.ДокументОснование;
            
            // Создаем массив текстовых строк для нефискальной части
            ТекстовыеСтроки = Новый Массив;
            ТекстовыеСтроки.Добавить("--- Основание: " + Строка(Реализация) + " ---");
            
            // Обходим табличную часть реализации для вывода состава
            Для Каждого СтрокаТовара Из Реализация.Товары Цикл
                ИмяНоменклатуры = СокрЛП(СтрокаТовара.Номенклатура.Наименование);
                СтрокаДляПечати = Лев(ИмяНоменклатуры, 20) + " | Кол-во: " + Строка(СтрокаТовара.Количество);
                ТекстовыеСтроки.Добавить(СтрокаДляПечати);
            КонецЦикла;
            
            ТекстовыеСтроки.Добавить("----------------------------------------");
            
            // Добавляем подготовленный текст в структуру параметров чека (подвал)
            ПараметрыЧека.Вставить("ДополнительныеТекстовыеСтроки", ТекстовыеСтроки);
            
        КонецЕсли;
        
    КонецЕсли;
    
КонецПроцедуры

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

5. Настройка шаблонов на уровне драйвера ККТ

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

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

С помощью этого инструмента вы можете:

Однако этот способ подходит только для вывода статической информации. Динамические данные (такие как состав конкретной накладной реализации) передать таким образом не получится — для этого обязательно требуется доработка программного кода на стороне 1С, как было описано в предыдущем пункте.

← На главную