Обработка обслуживания QR Дисплея

27.04.22

Интеграция - Периферийные устройства

Обработка обслуживания QR Дисплея от "Бизнес код." для 1С 8.2. QR-дисплей - это устройство, позволяющее выводить динамический QR-код для оплаты в вашем магазине, ресторане и любом другом заведении, занимающемся торговлей или услугами. При этом в QR-код сразу выводятся ваши реквизиты для оплаты вместе с суммой оплаты. Покупателю нужно только навести камеру своего мобильного телефона, и ... платеж проведен. Зачисление на расчетный счет происходит моментально!

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка обслуживая QR дисплея:
.epf 25,03Kb
4
4 Скачать (3 SM) Купить за 2 450 руб.

Выводит на QR дисплей сформированный QR код. Судя по API производителей должна работать и с другими производителями QR дисплеев. Подключается как обработка обслуживания торгового оборудования.

Кодировку устанавливаем UTF8. В комплекте (макеты) MSComm32.ocx и файл лицензии.

MSComm32.ocx и Файл лицензий необходимо сохранить из макета. 

MSComm32.ocx необходимо зарегистрировать в системе "regsvr32  MSComm32.ocx"

Файл лицензий внести в реестр windows (без этого работать не будет)

Тестировалось на платформе 8.3.20.1710. Подойдет к конфигурациям, где есть Подключаемое оборудование (неуправляемые формы).  

Подключается как обработка обслуживания торгового оборудования.  Меню "Сервис" - "Служебные" - "Подключение и настройка торгового оборудования"

В форме где будем вызывать вывод на QR дисплей в процедуре "ПриОткрытии" вставить следующий код:

Результат = ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);

Разместить процедуры


// Процедура осуществляет вывод информации на дисплей покупателя.
//
// Параметры:
//  Нет.
//
&НаКлиенте
Процедура ВывестиИнформациюНаДисплейПокупателя(Данные) Экспорт
	
	ВидТО    = Перечисления.ВидыТорговогоОборудования.ДисплейПокупателя;
	Дисплеи  = ПолучитьСерверТО().ПолучитьСписокУстройств(ВидТО);
	Дисплей  = Неопределено;
	
	Для Каждого Дисплей Из Дисплеи Цикл
		Если ПустаяСтрока(Данные) Тогда
			ПолучитьСерверТО().ОчиститьДисплейПокупателя(Дисплей);
		Иначе
			ПолучитьСерверТО().ВывестиСтрокуНаДисплейПокупателя(Дисплей, Данные);
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры // ВывестиИнформациюНаДисплейПокупателя()


// Функция возвращает признак того, что клиент поддерживает работу с видом ТО,
// переданным в качестве параметра.
//
// Параметры:
//  Вид      - <ПеречислениеСсылка.ВидыТорговогоОборудования>
//           - Вид торгового оборудования, информация о поддержке
//             которого запрашивается.
//
// Возвращаемое значение:
//  <Булево> - Признак поддержки указанного класса торгового оборудования.
//
Функция ПоддерживаетсяВидТО(Вид) Экспорт
	
	Результат = Ложь;
	Если Вид = Перечисления.ВидыТорговогоОборудования.ДисплейПокупателя Тогда
		Результат = Истина;			
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции // ПоддерживаетсяВидТО()   

Вызывается с помощью 

  ВывестиИнформациюНаДисплейПокупателя(
    "[T1]" + "Верхняя строка"+ Символы.ВК + Символы.ПС + 
    "[QL]" + "QR КОД" + Символы.ВК + Символы.ПС + 
    "[T2]" + "Нижняя строка" + Символы.ВК + Символы.ПС);

Для более корректного отображения русских букв Верхнюю строку и Нижнюю строку перекодировать в UTF8 с помощью функций


Функция Dec_to_Hex(Знач пDec, Знач Разрядность = 2)   
	
	пHex = "0123456789ABCDEF";
	Результат = "";
	
	Для СимвЧисло = 1 По Разрядность Цикл
		ТекЧисло = пDec % 16;
		пDec = Цел(пDec / 16);
		Результат = Сред(пHex, ТекЧисло + 1, 1) + Результат;
	КонецЦикла;
	
	Возврат Результат;
	
КонецФункции


Функция ПереводТекстаUnicodeToUTF8(СтрокаДляКодировки)
	
	СимволыДляИсключения = "-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~№";
	Результат = "";
	
	Для а = 1 По СтрДлина(СтрокаДляКодировки) Цикл
		ТекСимв = Сред(СтрокаДляКодировки, а, 1);
		
		Если ТекСимв = " " Тогда
			Результат = Результат + "20";
			Продолжить;
		КонецЕсли;
		Если Найти(СимволыДляИсключения, ТекСимв) > 0 Тогда
			Результат = Результат + ТекСимв;
			Продолжить;
		КонецЕсли;
		
		ЮниКод = КодСимвола(ТекСимв);
		Если ЮниКод < 128 Тогда
			Результат = Результат + "%" + Dec_to_Hex(ЮниКод);
		Иначе
			ИндексЮникод = 32;
			Байт = 8;
			ХексКод = "";
			Пока ИндексЮникод > 4 Цикл
				// установка следующих за первым байтов
				ТекБайт = ЮниКод % 64;
				ХексКод = "%" + Dec_to_Hex(128 + ТекБайт) + ХексКод;
				
				ЮниКод        = Цел(ЮниКод / 64);
				// проверка на закрывающий байт
				Если ЮниКод < ИндексЮникод Тогда
					ХексКод = "%" + Dec_to_Hex((Байт-2) * ИндексЮникод + ЮниКод) + ХексКод;
					Прервать;
				КонецЕсли;
				// переход к следующему уровню закрытия
				ИндексЮникод = ИндексЮникод / 2;
				Байт = Байт * 2;
			КонецЦикла;
			Результат = Результат + ХексКод;
		КонецЕсли;
	КонецЦикла;
	
	Буфер = ПолучитьБуферДвоичныхДанныхИзHexСтроки(Результат);
	Поток = Новый ПотокВПамяти(Буфер);
	ЧтениеТекста = Новый ЧтениеТекста(Поток, КодировкаТекста.ANSI, "", "");
	Данные = ЧтениеТекста.Прочитать();
	
	Возврат Данные;
КонецФункции  

 

Обработка обслуживания QR Дисплея

См. также

Периферийные устройства Программист Платформа 1С v8.3 1С:Управление производственным предприятием Россия Абонемент ($m)

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

1 стартмани

31.12.2024    356    0    user821472    0    

2

Периферийные устройства Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 Россия Абонемент ($m)

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

10 стартмани

14.11.2024    753    4    aximo    0    

3

Периферийные устройства Системный администратор Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Простая в использовании обработка https://infostart.ru/1c/tools/1001819/ в целом решает поставленную задачу, но имеет явный недостаток - взаимодействует только с принтерами, подключенными к серверу. Доработанная версия позволяет работать как с принтерами на клиенте, так и на сервере

1 стартмани

30.08.2024    499    3    Sergey1CSpb    0    

4

Периферийные устройства Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Расширение для вывода информации для покупателя из РМК на второй монитор. Также реализован вывод картинок из каталога в левую часть экрана покупателя. Разработано для УТ 11.5, УНФ 3.0.6 и 3.0.9.

1 стартмани

12.08.2024    1461    30    Rastopchinss    16    

4

Периферийные устройства Пользователь Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Вывод для клиента на второй монитор (информационное табло) номера заказа в браузер (по умолчанию, например, Яндекс). Внешняя обработка может быть легко переделана под другие конфигурации (нужды) даже начинающим программистом.

1 стартмани

02.08.2024    812    0    AlOkt    0    

5

Периферийные устройства Программист Пользователь Платформа 1С v8.3 1С:Розница 3.0 Абонемент ($m)

Пример работы с эмулятором дисплея покупателя через библиотеку БПО.

6 стартмани

10.07.2024    887    6    aximo    0    

3

Периферийные устройства Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Речь пойдет не о сканерах штрихкодов 2D/3D/RF/распознавании лиц и прочего, а о старом добром аппарате, позволяющем считать страницу и отправить ее образ в ПК через COM/USB порт. Рассмотрим, как можно подключить и использовать сканер в типовых 1С-конфигурациях. И что делать, если никак не найти команду настройки сканера.

1 стартмани

28.05.2024    1235    Sergey1CSpb    2    

7
Оставьте свое сообщение