В практике автоматизации торговых точек и предприятий сферы услуг (особенно в общепите) часто возникает задача печати документов, которые не являются фискальными чеками. Это могут быть пречеки для ознакомления клиента со счетом, информационные сообщения о бонусах, купоны на скидку или квитанции внутреннего учета. В конфигурации 1С:Управление нашей фирмой (УНФ), базирующейся на современных версиях БСП, это можно реализовать несколькими способами.
Рассмотрим подробно, как программно вывести произвольную информацию на чековую ленту ККТ, какие ограничения накладывает законодательство (ФФД 1.2) и как правильно использовать методы БСП для решения этой задачи.
Для реализации печати произвольного текста в среде 1С основным инструментом является библиотека подключаемого оборудования. Проанализируем программный интерфейс, который позволяет взаимодействовать с кассовым аппаратом в нефискальном режиме. Самый простой способ — использование метода ВыполнитьКоманду.
Разберем по шагам, как сформировать команду печати текста. Большинство современных драйверов поддерживают операцию ПечатьТекста. Важно помнить, что печать текста возможна только в том случае, если в данный момент на ККТ не открыт фискальный чек (т. е. между закрытием одного чека и открытием другого).
Пример кода для вывода простого текстового блока:
// Подготовим массив строк для печати
МассивСтрок = Новый Массив;
МассивСтрок.Добавить("=== ПРЕЧЕК (НЕ ЧЕК) ===");
МассивСтрок.Добавить("Заказ №: " + Объект.Номер);
МассивСтрок.Добавить("Официант: " + Объект.Ответственный);
МассивСтрок.Добавить("-----------------------");
МассивСтрок.Добавить("ИТОГО К ОПЛАТЕ: " + Объект.СуммаДокумента);
// Параметры команды
ПараметрыКоманды = Новый Структура;
ПараметрыКоманды.Вставить("Текст", МассивСтрок);
// Вызов выполнения команды через менеджер оборудования
Результат = МенеджерОборудованияКлиент.ВыполнитьКоманду(
ИдентификаторУстройства,
"ПечатьТекста",
ПараметрыКоманды
);
Проанализируем этот подход: он максимально универсален, так как БСП транслирует этот массив в команды драйвера (например, printText для АТОЛ или PrintString для Штрих-М).
Если нам требуется более сложное оформление (жирный шрифт, штрихкоды или логотипы), в 1С:УНФ удобно использовать механизм макетов. Посмотрим на функцию СформироватьТекстЧекаПоМакету, которая находится в модуле ПодключаемоеОборудованиеРТ.
Этот метод позволяет создать XML-описание чека, где для каждой строки можно задать параметры форматирования. Выясним, как это работает на практике:
Преимущество этого способа: ККТ сама выровняет текст по ширине ленты (32, 42 или 48 символов), что избавляет программиста от ручного подсчета пробелов.
Выясним технические нюансы прямой работы с драйверами, если стандартных средств БСП недостаточно. Разные производители ККТ по-разному обрабатывают нефискальную печать.
Для устройств АТОЛ (Драйвер 10.х): используются методы printText, printBarcode. Важно учитывать, что если ККТ работает под управлением ФФД 1.2, прошивка может автоматически добавлять в конце документа надпись «НЕ ЯВЛЯЕТСЯ КАССОВЫМ ЧЕКОМ». Это защитный механизм, предотвращающий мошенничество.
Для устройств Штрих-М: часто применяется метод PrintString. У этого производителя есть возможность управления шрифтами через свойства драйвера. Также можно использовать режим «печать слипа», который часто применяется для банковских операций, но подходит и для пречеков.
Если необходимость печати нефискальных документов возникает часто (например, в кафе для передачи заказов на кухню — «бегунки»), рассмотрим вариант приобретения специализированного чекового принтера (не ККТ).
Проанализируем плюсы этого решения:
Разберем ситуацию с точки зрения закона. Статья 4.7 Федерального закона № 54-ФЗ жестко регламентирует состав реквизитов кассового чека. Печать лишней информации не запрещена, но выдача пречека вместо фискального чека при получении денег является серьезным нарушением.
Чтобы минимизировать риски при проверках, рекомендуем соблюдать следующие правила оформления нефискальных документов:
Рассмотрим, как быстро настроить печать «товарного чека» на ККТ без фискализации, что по сути является встроенным способом печати нефискального документа в типовых конфигурациях. В УНФ при нажатии кнопки «Печать» в документе «Чек ККМ» можно выбрать «Товарный чек». Если в настройках оборудования указано, что товарный чек печатается на ККТ, система сама вызовет нужные методы драйвера для нефискальной печати.
Проанализируем возможность использования «Клише» и «Рекламного текста». Если ваша задача — печатать одну и ту же информацию (например, условия возврата или ссылку на соцсети) на каждом чеке, лучше записать эту информацию непосредственно в память ККТ через утилиту налогового инспектора или тест драйвера. В этом случае текст будет добавляться к каждому чеку автоматически самой кассой, не нагружая 1С.
Подводя итог, наиболее правильным путем для программиста 1С будет использование метода ПечатьТекста через МенеджерОборудованияКлиент, так как это обеспечивает совместимость с большинством моделей кассовых аппаратов, поддерживаемых БСП.