Как настроить вывод сообщений «Добро пожаловать!» и «Спасибо за покупку!» на дисплее покупателя в 1С:Управление торговлей 10.3?

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

При автоматизации рабочего места кассира на базе конфигурации «1С:Управление торговлей 10.3» (обычные формы) часто возникает задача оформить взаимодействие с клиентом через дисплей покупателя (например, популярные модели Posiflex PD-2800 с драйверами АТОЛ). Клиенты ожидают увидеть надпись «Добро пожаловать!» при открытии нового чека или простое кассы, а после успешной оплаты — сообщение «Спасибо за покупку!».

Разберем, почему штатных настроек программы недостаточно и какими способами можно реализовать требуемое поведение оборудования.

Особенности работы с дисплеем покупателя в УТ 10.3

Проанализируем архитектуру работы с торговым оборудованием в типовых решениях 1С:

  1. В современных конфигурациях и в «1С:Розница» на базе Библиотеки подключаемого оборудования (БПО) присутствуют штатные шаблоны дисплея, где прямо в пользовательском режиме настраиваются строки при простое, при сканировании и при завершении чека.
  2. В типовой конфигурации «1С:Управление торговлей 10.3» такого функционала нет. Подсистема торгового оборудования лишь передает на устройство строку текущей позиции чека или итоговую сумму к оплате.
  3. Драйверы торгового оборудования (в частности, драйвер дисплеев покупателя АТОЛ) управляют передачей данных, но логика того, когда и какой текст отправлять, полностью определяется кодом конфигурации 1С.

Таким образом, для динамической смены приветствия и благодарности по таймеру необходима программная доработка модуля формы документа или рабочего места кассира.

Способ 1. Аппаратная запись статического приветствия в дисплей

Если требуется выводить надпись «Добро пожаловать!» только при старте оборудования и сбросе экрана, рассмотрим аппаратный вариант:

  1. Дисплеи серии Posiflex PD-2800 оснащены энергонезависимой памятью (EEPROM).
  2. С помощью сервисной утилиты производителя (Posiflex Line Display Utility / PST) подключимся к дисплею через соответствующий COM-порт.
  3. Запишем в память устройства дефолтный текст приветствия (например, «Добро пожаловать! / Магазин "Продукты"»).

Этот текст будет автоматически отображаться при включении питания и очистке экрана. Однако для отображения фразы «Спасибо за покупку!» после проведения документа всё равно потребуется отправка команды из 1С.

Способ 2. Программная доработка в документе «Чек ККМ»

Рассмотрим доработку типовой конфигурации. Основная логика вывода информации на экран покупателя сосредоточена в форме документа ЧекККМ (или специализированной форме РМК, если кассиры работают в режиме интерфейса кассира).

В модуле формы документа ЧекККМ найдем типовую процедуру отправки данных на дисплей:


Процедура ВывестиИнформациюНаДисплейПокупателя(Данные)
    // Штатный вызов метода работы с торговым оборудованием
    ПолучитьСерверТО().ВывестиИнформациюНаДисплейПокупателя(Данные);
КонецПроцедуры

Разберем по шагам, как выстроить сценарий показа сообщений:

  1. Вывод приветствия при открытии нового чека: в обработчике ПриОткрытии формы документа или в процедуре очистки/создания нового чека вызовем передачу текста приветствия.
  2. Вывод благодарности при завершении продажи: после успешной фискализации чека (в процедуре печати/пробития) сформируем и отправим на экран покупателя строку с благодарностью.
  3. Автоматический возврат к приветствию по таймеру: чтобы надпись «Спасибо за покупку!» не оставалась на экране бесконечно, запустим фоновый таймер с помощью обработчика ожидания.

Посмотрим на пример реализации данного алгоритма в модуле формы документа ЧекККМ:


// Процедура отображения стартового баннера
Процедура ВывестиПриветствие() Экспорт
    ТекстПервойСтроки  = "  Добро пожаловать! ";
    ТекстВторойСтроки  = "  Касса свободна    ";
    
    ДанныеДляДисплея = Новый Структура("Строка1, Строка2", ТекстПервойСтроки, ТекстВторойСтроки);
    ВывестиИнформациюНаДисплейПокупателя(ДанныеДляДисплея);
КонецПроцедуры

// Процедура отображения благодарности после печати чека
Процедура ВывестиБлагодарность()
    ТекстПервойСтроки = "Спасибо за покупку! ";
    ТекстВторойСтроки = "   Ждем Вас снова!  ";
    
    ДанныеДляДисплея = Новый Структура("Строка1, Строка2", ТекстПервойСтроки, ТекстВторойСтроки);
    ВывестиИнформациюНаДисплейПокупателя(ДанныеДляДисплея);
    
    // Подключаем однократный возврат к приветствию через 5 секунд
    ПодключитьОбработчикОжидания("ВывестиПриветствие", 5, Истина);
КонецПроцедуры

Важное замечание: третий параметр метода ПодключитьОбработчикОжидания установлен в значение Истина (однократный вызов). Это исключает циклические постоянные обращения к оборудованию. Категорически не рекомендуется использовать синхронные задержки или холостые циклы ожидания в основном потоке, так как это заблокирует работу интерфейса кассира.

Настройка кодировок и параметров дисплея

При выводе русских сообщений на экран дисплея покупателя проанализируем частые ошибки с кодировками:

  1. Длина строки: дисплей Posiflex PD-2800 стандартно отображает 2 строки по 20 символов. Если передаваемый текст превышает 20 символов в одной строке без включения бегущей строки, он будет обрезан или некорректно перенесен.
  2. Кодовая страница (DIP-переключатели): на нижней панели дисплея покупателя расположены аппаратные микропереключатели (DIP-switches), определяющие набор символов и кодировку (обычно CP866 или Windows-1251).
  3. Синхронизация параметров: кодовая страница в настройках драйвера торгового оборудования в 1С должна строго совпадать с аппаратным режимом дисплея. Если на экран вместо русских букв выводятся нечитаемые символы («кракозябры»), выясним кодировку на самом дисплее и установим аналогичную в параметрах драйвера АТОЛ.
← На главную