После масштабного обновления конфигурации 1С:Управление торговлей 11 (особенно если база не обновлялась несколько лет) пользователи часто сталкиваются с тем, что привычный вид банковского слип-чека при оплате картой меняется. Он может стать слишком длинным, изменить шрифт, лишиться части отступов или, наоборот, получить лишние пустые строки. Рассмотрим подробно, почему это происходит и как вернуть оформление чека в нормальное состояние.
Проанализируем ситуацию: в современных релизах 1С существенно обновилась Библиотека подключаемого оборудования (БПО). Раньше 1С работала с терминалом по принципу прямой передачи команды: «напечатай чек». Терминал сам формировал текст, шрифты и отступы, используя свои внутренние алгоритмы. Теперь же 1С зачастую перехватывает текстовые данные от терминала, обрабатывает их по своим внутренним шаблонам и отправляет на ККТ как обычный нефискальный текст.
Основные факторы, влияющие на результат:
1С:Эквайринговые терминалы Сбербанк 2.Х) жестко интегрированы с требованиями 54-ФЗ и БПО.Прежде чем переходить к глубоким техническим настройкам, проверим стандартные опции. Разберем шаги:
Одним из эффективных способов решения проблемы, предложенным опытными специалистами, является смена способа взаимодействия 1С с программным обеспечением Сбербанка. Рассмотрим, как это сделать:
По умолчанию 1С часто использует интерфейс Pilot. Однако использование интерфейса командной строки WinCLI иногда позволяет «пробросить» текст от банка в неизменном виде. Выполним следующие действия:
C:\sc552).WinCLI. Если её нет, необходимо обратиться в службу поддержки банка для предоставления нужных компонентов.Многие параметры печати хранятся в конфигурационном файле Сбербанка p.ini. Выясним, какие настройки могут влиять на некорректный перенос строк или шрифты. Откроем файл блокнотом и проанализируем следующие строки:
PrinterType=0 — при таком значении текст отдается в 1С в «сыром» виде.CheckLength=40 — определяет максимальную ширину строки. Если в 1С после обновления задана другая ширина ленты, текст может «прыгать». Попробуйте изменить это значение в соответствии с шириной вашей чековой ленты (например, 32, 38 или 40).PrintWays — параметр, отвечающий за каналы печати. Значение зависит от конкретной модели терминала и кассы.Если манипуляции с драйверами не помогли, значит, 1С принудительно использует свой внутренний макет для формирования чека. В новых релизах УТ 11 мы можем отредактировать его без программирования. Разберем этот процесс по шагам:
ЧекЭквайринговойОперации (название может незначительно отличаться в зависимости от версии БПО).Не стоит забывать, что финальную точку в печати ставит драйвер кассового аппарата. Проанализируем настройки в Тесте драйвера ККТ (например, Атол версии 10):
В разделе «Параметры ККТ» есть пункты, отвечающие за шрифты и экономию ленты. Если включен режим максимальной экономии, драйвер может игнорировать межстрочные интервалы, заданные в 1С, из-за чего чек слипается в нечитаемое полотно. Попробуйте изменить настройки шрифта для «Текстовых документов» (это именно тот тип документа, которым печатается слип-чек).
Также в коде 1С при формировании чека может использоваться объект ТекстовыйДокумент. Посмотрим на пример того, как программно может быть реализован вывод строк, если вы решите прибегнуть к расширению конфигурации:
// Пример модификации вывода слип-чека через расширение
&После("СформироватьТекстСлипЧека")
Процедура Имя_СформироватьТекстСлипЧека(ТекстДанных)
// Удаляем лишние переносы строк, которые могут добавляться БПО
ТекстДанных = СтрЗаменить(ТекстДанных, Символы.ПС + Символы.ПС, Символы.ПС);
// Можно добавить разделитель для наглядности
ТекстДанных = ТекстДанных + Символы.ПС + "--------------------------";
КонецПроцедуры
Важный момент: если вы решите редактировать макеты или использовать расширения, обязательно проверяйте результат на тестовой оплате в 1 рубль, чтобы убедиться, что все обязательные реквизиты (номер операции, RRN, сумма, тип карты) остались на месте и читаемы для клиента.