При организации рабочего места кассира в связке 1С:Розница, кассового аппарата АТОЛ Fprint-22ПТК и банковского терминала Pax SP30 (Сбербанк) часто возникает проблема некорректной печати слип-чеков. Проблема может проявляться по-разному: печатается лишнее количество копий, отсутствует отрез (лента не прокручивается), или текст квитанции выглядит «криво» из-за неправильной ширины символов. Ситуация осложняется, если работа ведется через терминальный сервер (RDP), где настройки на разных локальных машинах могут отличаться.
В этой статье мы подробно разберем, как синхронизировать работу оборудования и программного обеспечения, чтобы добиться идеальной печати банковских документов. Проанализируем настройки на трех уровнях: ПО эквайринга, драйвер ККТ и параметры самой 1С.
Первым делом проанализируем настройки программного обеспечения терминала. Как правило, софт Сбербанка располагается в папке C:\sc552 или C:\sbrf на локальном компьютере кассира (или на сервере, в зависимости от способа подключения). Основным конфигурационным файлом является pinpad.ini. Именно в нем заложены инструкции для формирования текстового файла слип-чека.
Рассмотрим ключевые параметры, которые нам необходимо проверить и отредактировать:
ReceiptAmount. Если касса печатает две квитанции подряд без возможности их разделить, проверьте это значение. Установка ReceiptAmount=1 заставит систему печатать только одну копию (например, если вторая копия не требуется по регламенту магазина). Если нужно две, но с отрезом, переходим к следующему шагу.PrinterEndFeed отвечает за количество пустых строк после печати текста. Если чеки печатаются «встык», установим значение в диапазоне от 5 до 8. Это позволит ККТ выдвинуть ленту на достаточное расстояние, чтобы кассир мог удобно оторвать чек по гребенке или чтобы сработал автоотрезчик.CutReceipt. Установим CutReceipt=1, чтобы драйвер 1С понимал, что после блока текста от терминала нужно послать команду Cut() на кассовый аппарат.Далее перейдем к настройке драйвера ККТ. Модель АТОЛ Fprint-22ПТК использует широкую ленту (80 мм), и если текст слип-чека выглядит сжатым или, наоборот, переносится по буквам, значит, существует рассинхронизация по ширине строки между терминалом и кассой.
Разберем последовательность действий в утилите «Тест драйвера ККТ»:
pinpad.ini за это может отвечать параметр PrinterWidth. Если в терминале стоит 32 символа, а в кассе 48, текст будет смещен влево. Настроим их на одинаковое значение.Теперь обратимся к настройкам внутри самой программы 1С:Розница. Проанализируем настройки в разделе «Администрирование» — «Подключаемое оборудование».
Посмотрим на параметры эквайрингового терминала:
pilot_nt.dll, напрямую в драйвер ККТ. Это самый надежный способ. Если флаг снят, 1С пытается сама сформировать печатную форму, используя свои макеты, что часто приводит к искажению верстки слипа.01 или 1. Это специфический параметр, который указывает системе количество символов или команд для разделения двух экземпляров квитанции.Поскольку используется терминальный сервер, выясним причину, по которой на разных кассах поведение отличается. В среде RDP критически важна идентичность версий библиотек.
Рассмотрим шаги по унификации рабочих мест:
pilot_nt.dll на сервере и на локальных ПК. Они должны быть строго одинаковыми. Разные версии библиотек Сбербанка могут по-разному обрабатывать пустые строки и команды управления принтером.Если стандартные средства настройки не помогают, программисты иногда прибегают к перехвату текста слип-чека. Хотя в типовой «Рознице» это требуется редко, полезно понимать принцип. Софт терминала выдает обычный текст. Рассмотрим упрощенный пример того, как это обрабатывается на уровне кода (мета-код):
// Пример логики обработки текста слип-чека
ТекстСлипа = ЭквайринговаяСистема.ПолучитьТекстПоследнегоСлипа();
Если Найти(ТекстСлипа, "[ОТРЕЗ]") > 0 Тогда
МассивЧеков = СтрРазделить(ТекстСлипа, "[ОТРЕЗ]");
Для Каждого ТекущийЧек Из МассивЧеков Цикл
ДрайверККТ.НапечататьНефискальныйДокумент(ТекущийЧек);
ДрайверККТ.Отрезать();
КонецЦикла;
Иначе
ДрайверККТ.НапечататьНефискальныйДокумент(ТекстСлипа);
КонецЕсли;
В типовой конфигурации 1С:Розница за это отвечают встроенные обработки драйверов. Если вы видите, что один чек печатается нормально, а на втором «каша», скорее всего, проблема в символах перевода строки, которые драйвер АТОЛ версии 10 интерпретирует иначе, чем старые версии. В настройках драйвера в 1С убедитесь, что выбран правильный тип кодировки (обычно Windows-1251 или UTF-8 в зависимости от прошивки ККТ).
Подведем итог: для решения проблемы «кривой» печати необходимо синхронизировать ширину строки в pinpad.ini и параметрах ККТ, настроить PrinterEndFeed для прокрутки ленты и убедиться, что в 1С включена трансляция печати на устройство. Совместная настройка этих параметров обеспечит стабильную и корректную работу кассового узла.