Как настроить печать слип-чеков на ККТ АТОЛ при работе с терминалом Pax SP30 в 1С:Розница?

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

При организации рабочего места кассира в связке 1С:Розница, кассового аппарата АТОЛ Fprint-22ПТК и банковского терминала Pax SP30 (Сбербанк) часто возникает проблема некорректной печати слип-чеков. Проблема может проявляться по-разному: печатается лишнее количество копий, отсутствует отрез (лента не прокручивается), или текст квитанции выглядит «криво» из-за неправильной ширины символов. Ситуация осложняется, если работа ведется через терминальный сервер (RDP), где настройки на разных локальных машинах могут отличаться.

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

Настройка параметров печати в ПО Сбербанка

Первым делом проанализируем настройки программного обеспечения терминала. Как правило, софт Сбербанка располагается в папке C:\sc552 или C:\sbrf на локальном компьютере кассира (или на сервере, в зависимости от способа подключения). Основным конфигурационным файлом является pinpad.ini. Именно в нем заложены инструкции для формирования текстового файла слип-чека.

Рассмотрим ключевые параметры, которые нам необходимо проверить и отредактировать:

  1. Количество копий чека: Найдем в файле параметр ReceiptAmount. Если касса печатает две квитанции подряд без возможности их разделить, проверьте это значение. Установка ReceiptAmount=1 заставит систему печатать только одну копию (например, если вторая копия не требуется по регламенту магазина). Если нужно две, но с отрезом, переходим к следующему шагу.
  2. Прокрутка ленты для отрыва: Параметр PrinterEndFeed отвечает за количество пустых строк после печати текста. Если чеки печатаются «встык», установим значение в диапазоне от 5 до 8. Это позволит ККТ выдвинуть ленту на достаточное расстояние, чтобы кассир мог удобно оторвать чек по гребенке или чтобы сработал автоотрезчик.
  3. Команда отрезки: В некоторых конфигурациях ПО Сбербанка за физическую отрезку отвечает параметр CutReceipt. Установим CutReceipt=1, чтобы драйвер 1С понимал, что после блока текста от терминала нужно послать команду Cut() на кассовый аппарат.

Корректировка настроек в драйвере АТОЛ (DTO 10)

Далее перейдем к настройке драйвера ККТ. Модель АТОЛ Fprint-22ПТК использует широкую ленту (80 мм), и если текст слип-чека выглядит сжатым или, наоборот, переносится по буквам, значит, существует рассинхронизация по ширине строки между терминалом и кассой.

Разберем последовательность действий в утилите «Тест драйвера ККТ»:

  1. Зайдем в раздел «Свойства» и нажмем «Параметры ККТ».
  2. Найдем пункт «Печать» или «Шрифт». Здесь важно проверить количество символов в строке для используемого шрифта. Обычно для 80-мм ленты это 48 символов.
  3. Сравним это значение с тем, что выдает софт Сбербанка. В файле pinpad.ini за это может отвечать параметр PrinterWidth. Если в терминале стоит 32 символа, а в кассе 48, текст будет смещен влево. Настроим их на одинаковое значение.
  4. Отделение нефискальных документов: Чтобы слип-чек (который является нефискальным документом) визуально отделялся от фискального чека продажи, включим в параметрах ККТ опцию «Отделять нефискальные документы». Это заставит кассу делать микро-отрез или прокрутку ленты автоматически.

Настройка оборудования в 1С:Розница

Теперь обратимся к настройкам внутри самой программы 1С:Розница. Проанализируем настройки в разделе «Администрирование» — «Подключаемое оборудование».

Посмотрим на параметры эквайрингового терминала:

  1. Откроем карточку вашего терминала Pax SP30.
  2. Обратим внимание на флаг «Использовать устройство для печати чеков». Если этот флаг стоит, 1С просто передает текстовый блок, полученный от pilot_nt.dll, напрямую в драйвер ККТ. Это самый надежный способ. Если флаг снят, 1С пытается сама сформировать печатную форму, используя свои макеты, что часто приводит к искажению верстки слипа.
  3. В поле «Разрыв слип-чека» (или аналогичном в настройках драйвера в 1С) попробуем установить значение 01 или 1. Это специфический параметр, который указывает системе количество символов или команд для разделения двух экземпляров квитанции.

Особенности работы в терминальном режиме (RDP)

Поскольку используется терминальный сервер, выясним причину, по которой на разных кассах поведение отличается. В среде RDP критически важна идентичность версий библиотек.

Рассмотрим шаги по унификации рабочих мест:

  1. Проверим версию файла pilot_nt.dll на сервере и на локальных ПК. Они должны быть строго одинаковыми. Разные версии библиотек Сбербанка могут по-разному обрабатывать пустые строки и команды управления принтером.
  2. Проанализируем проброс портов. Если ККТ подключена по USB (эмуляция COM-порта), убедимся, что в настройках RDP-клиента включен проброс портов и скорость порта в диспетчере устройств совпадает со скоростью, установленной в драйвере АТОЛ (рекомендуется 115200).
  3. В случае задержек при печати (когда текст идет рывками или отрезается посередине слова), увеличим «Таймаут» в настройках драйвера ККТ в 1С. Для терминальных сессий нормальным значением считается 5000–10000 мс.

Пример настройки программного метода печати

Если стандартные средства настройки не помогают, программисты иногда прибегают к перехвату текста слип-чека. Хотя в типовой «Рознице» это требуется редко, полезно понимать принцип. Софт терминала выдает обычный текст. Рассмотрим упрощенный пример того, как это обрабатывается на уровне кода (мета-код):


// Пример логики обработки текста слип-чека
ТекстСлипа = ЭквайринговаяСистема.ПолучитьТекстПоследнегоСлипа();
Если Найти(ТекстСлипа, "[ОТРЕЗ]") > 0 Тогда
    МассивЧеков = СтрРазделить(ТекстСлипа, "[ОТРЕЗ]");
    Для Каждого ТекущийЧек Из МассивЧеков Цикл
        ДрайверККТ.НапечататьНефискальныйДокумент(ТекущийЧек);
        ДрайверККТ.Отрезать();
    КонецЦикла;
Иначе
    ДрайверККТ.НапечататьНефискальныйДокумент(ТекстСлипа);
КонецЕсли;

В типовой конфигурации 1С:Розница за это отвечают встроенные обработки драйверов. Если вы видите, что один чек печатается нормально, а на втором «каша», скорее всего, проблема в символах перевода строки, которые драйвер АТОЛ версии 10 интерпретирует иначе, чем старые версии. В настройках драйвера в 1С убедитесь, что выбран правильный тип кодировки (обычно Windows-1251 или UTF-8 в зависимости от прошивки ККТ).

Подведем итог: для решения проблемы «кривой» печати необходимо синхронизировать ширину строки в pinpad.ini и параметрах ККТ, настроить PrinterEndFeed для прокрутки ленты и убедиться, что в 1С включена трансляция печати на устройство. Совместная настройка этих параметров обеспечит стабильную и корректную работу кассового узла.

← На главную