Как изменить вид и тип оплаты при печати чека на фискальном регистраторе Штрих-М в 1С

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

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

Особенности работы фискальных регистраторов с видами оплат

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

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

Настройка наименований видов оплат в ККТ

Если на бумажном чеке вместо нужного названия выводится «КРЕДИТ» или другое нерелевантное слово, в первую очередь необходимо скорректировать внутренние таблицы оборудования через тест драйвера ККТ:

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

Программное управление видами оплат в 1С

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

Вариант 1. Изменение параметров метода ЗакрытьЧек в обработке обслуживания

В старых версиях обработок обслуживания (например, ShtrihMFiscalPrinters_v2.epf) вызов закрытия чека выполняется через единый метод объекта драйвера. В коде это выглядит следующей строкой:

Объект.Драйвер.ЗакрытьЧек(Объект.ИДУстройства, СуммаНал, СуммаБезнал, 0);

В данном вызове аргументы отвечают за распределение сумм по типам оплат из внутренней таблицы устройства:

  1. Объект.ИДУстройства — идентификатор подключенного ККТ.
  2. СуммаНал — сумма, направляемая в 1-й тип оплаты (как правило, наличные).
  3. СуммаБезнал — сумма, направляемая во 2-й тип оплаты (например, безналичные/банковская карта).
  4. Последующие аргументы — суммы для 3-го, 4-го и других типов оплат.

Если требуется направить сумму в 3-й или 4-й вид оплаты, необходимо передавать значения в соответствующие по порядку аргументы вызова метода ЗакрытьЧек.

Вариант 2. Прямая работа с объектом драйвера через свойства и методы

Если работа с фискальным регистратором выполняется напрямую через низкоуровневый COM-объект драйвера (например, DrvFR), передача оплат выполняется путем заполнения свойств объекта перед закрытием чек-сессии. Проанализируем пример кода:


// Передаем оплату по конкретному типу
Объект.Драйвер.Summ1 = СуммаСертификат; // Указываем сумму оплаты
Объект.Драйвер.TypeClose = 2;            // Указываем тип оплаты (0 - нал, 1 - безнал, 2 - тип 3 и т.д.)
Объект.Драйвер.Payment();                // Вызываем команду регистрации оплаты

Ответ = Объект.Драйвер.ResultCode;       // Проверяем результат выполнения команды

После регистрации всех необходимых оплат вызывается непосредственно команда закрытия чека CloseCheck() / ЗакрытьЧек().

Ограничения ФФД (54-ФЗ) и смешанные оплаты

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

  1. Наличными (тег 1031).
  2. Безналичными / Электронными (тег 1081).
  3. Предоплата / Аванс (тег 1215).
  4. Постоплата / Кредит (тег 1216).
  5. Встречное предоставление (тег 1217).

Если в торговой точке используется смешанная оплата (например, подарочный сертификат + наличные):

← На главную