QR-display

03.08.22

Разработка - Работа с интерфейсом

Приложение для формирования и отображения QR-кода на любом доступном экране.

Скачать файл

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

Наименование Бесплатно
qrdisplay
.rar 26,66Kb
100
100 Скачать бесплатно

Основная идея – в 1С в обычных формах нет вьюхи для отдельного вывода изображения с qr-кодом, например, на второй монитор.

С ростом популярности оплаты через Систему Быстрых Платежей (СБП) возникла необходимость в интеграции с API банка для конфигурации УТ 10.3, в ходе которой вылез вопрос способов отображения изображения с QR-кодом для клиента – все примеры сводятся к получению QR-кода любым доступным способом и печати его на бумажном носителе, или выводе его на специальном дисплее для таких кодов, цена на который начинается от 3 т.р. Немного помониторив рынок б/у торгового оборудования, попались объявления на POS-мониторы стоимостью от 500р., которые как раз и можно приспособить для вывода QR-кода для покупателя: просто втыкаем как второй дисплей на точке продаж и выводим на него изображения с QR-кодом.

Для вывода было нарисовано win-приложение, данные которому можно передавать через обычный файл *.json в виде задания.

Приложение умеет отображать QR-код и несколько вариантов статусов. Весь процессинг выполняется на стороне 1С и приложение служит только для отображения статуса операции или вывода кода для оплаты.

Как использовать:

После запуска приложения в директории запуска создаётся дополнительный каталог "swap", в который можно складывать задание в формате *.json. Допустимое наименование для файла с заданием - "task.json".

Настройка фонового изображения:

При первом запуске в директории приложения создаётся файл настроек "config.ini", в котором можно указать стиль фона и его цвет (по умолчанию применяется клетчатая расцветка, как в анонсе). Пример:

[main]
bgstyle=solid
bgcolor=#ffddaa ;Или сокращение #fda

Допустимые параметры для task.json:

"header" -  Произвольная строка, которая выводится над QR-кодом. В неё можно передать, например, номер и сумму чека. Можно вывести не более 2-х строк.

"operation" -  Выполняемая команда. Допускаемые значения:

"qrstring" – вывести QR-код,  который будет сформирован из строки, содержащейся в параметре "qrdata"

"notice" – вывести статус операции, указанный  в параметры "status"

"clear" – очистить форму на дисплее

"qrdata" -  Строка с данными для QR-кода

"status" -  Статус выполнения операции. Допускаемые значения:

"ok" – Всё хорошо

"fail" – Ошибка при выполнении

"warning" – Предупреждение

*Все операции допускают использование "header".

**Тип значение любого параметры - Строка

Пример: в 1С формируется обращение к API банка, на которое возвращается ссылка для оплаты через СБП -> Затем формируется задания для QR-дисплея в виде json:

{
  "qrdata": "https://qr.nspk.ru/AS100001ORTF4GAF80KPJ53K186D9A3G?type=01&bank=100000000007&crc=0C8A",
  "operation": "qrstring"
}

На  экране отобразится код для оплаты:

 

 

После того как операция будет обработана, на экран можно вывести статус её выполнения с помощью json:

{
  "operation": "notice",
  "status": "ok" ИЛИ "fail"
}

 

И ли

 

Ещё один сценарий использования:

В офис организации приходит юр. лицо, которое хочет рассчитаться по безналу через мобильное приложение. Можно сформировать для него QR-код, который автоматически заполнит платёжное поручение.

 

 

JSON-задание для такого QR-кода можно получить с помощью подобного кода:

//  Структуры для передачи на дисплей   
//////////////////////////////////////////////////////////////////////////////////////////
//// Данный для "qrdata"                                                                //
//// Обязательные:                                                                      //
//////////////////////////////////////////////////////////////////////////////////////////
//Name          - Наименование получателя платежа               - Макс. 160 символов    //
//PersonalAcc   - Номер счета получателя платежа                - Макс. 20 символов     //
//BankName      - Наименование банка получателя платежа         - Макс. 45 символов     //
//BIC           - БИК                                           - Макс. 9 символов      //
//CorrespAcc    - Номер кор./сч. банка получателя платежа       - Макс. 20 символов     //
//////////////////////////////////////////////////////////////////////////////////////////
//// Дополнительные:                                                                    //
//////////////////////////////////////////////////////////////////////////////////////////
//Sum           - Сумма платежа, в копейках                     - Макс. 18 символов     //
//Purpose       - Наименование платежа (назначение)             - Макс. 210 символов    //
//PayeeINN      - ИНН получателя платежа                        - Макс. 12 символов     //
//KPP           - КПП получателя платежа                        - Макс. 9 символов      //
//////////////////////////////////////////////////////////////////////////////////////////
Функция ПолучитьСтруктуруКлиентБанк(ДокументСсылка)

  Результат = Новый Структура;               

// Тип операции

  Результат.Вставить("operation", "qrstring"); 
                              
  ДанныеДляПлатежа = ПолучитьПараметрыПечатиСчетаЗаказа("счет");  
  ДанныеШапки = ПолучитьДанныеШапкиДокумента(); 
  НомерСчета = ОбщегоНазначения.ПолучитьНомерНаПечать(ДокументСсылка);
  ВалютаНаименование = ДокументСсылка.ВалютаДокумента.Наименование;                

//  Заголовок

  Заголовок = "Счёт №" + НомерСчета + " от " + Формат(ДокументСсылка.Дата, "ДФ='дд ММММ гггг'") + " г."
                  + Символы.ПС + "Сумма: " + ДанныеДляПлатежа.Всего + ВалютаНаименование;

  Результат.Вставить("header", Заголовок);

//  Данные для QR-кода

  СтрокаНазначениеПлатежа = "Оплата по счету №" + НомерСчета + " от " + Формат(ДокументСсылка.Дата, "ДФ='дд ММММ гггг'") + " г. "
                  + ДанныеДляПлатежа.НДС
                  + ?(ДанныеДляПлатежа.ВсегоНДС > 0,
                  " " + Формат(ДанныеДляПлатежа.ВсегоНДС, "ЧДЦ=2") + ВалютаНаименование, 
                  "");                                                                                             

  Тело = "ST00012"
         + "|Name=" + ДокументСсылка.Организация.Наименование
         + "|PersonalAcc=" + ДокументСсылка.Организация.ОсновнойБанковскийСчет.НомерСчета
         + "|BankName=" + ДокументСсылка.Организация.ОсновнойБанковскийСчет.Банк.Наименование
         + "|BIC=" + ДокументСсылка.Организация.ОсновнойБанковскийСчет.Банк.Код
         + "|CorrespAcc=" + ДокументСсылка.Организация.ОсновнойБанковскийСчет.Банк.КоррСчет
         + "|Sum=" + Формат(ДанныеДляПлатежа.ВсегоКОплате * 100, "ЧДЦ=0; ЧН=0; ЧГ=0")
         + "|Purpose=" + СтрокаНазначениеПлатежа
         + "|PayeeINN=" + ДокументСсылка.Организация.ИНН
         + ?(ПустаяСтрока(ДокументСсылка.Организация.КПП) = Истина, "","|KPP=" + ДокументСсылка.Организация.КПП);                             
  
  Результат.Вставить("qrdata", Тело);                              
  
  Возврат Результат;

КонецФункции

 

QR-display QR-дисплей QR-код СБП системы быстрых платежей оплата эквайринг qr-pay куар 2D ST00012 РМК клиент-банк

См. также

СБП. Оплата по QR-коду 8.3.14 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Простой «виртуальный терминал» позволяет принимать платежи за товары или услуги с помощью Системы Быстрых Платежей, не требующий сложных настроек. Оплата по СБП - это способ не только ускорить обслуживание клиентов, но и экономить на эквайринге. Банки партнеры: АО Газпромбанк ,АО АЛЬФА-БАНК, АО Россельхозбанк,ПАО Промсвязьбанк,ПАО Банк ФК Открытие,АО Райффайзенбанк,ПАО ВТБ,ПАО Московский Кредитный Банк,ПАО Сбербанк, ПАО Совкомбанк, АО АО Т-Банк (Тинькофф Банк) и т.д.

14400 руб.

08.08.2023    5062    24    3    

39

СБП. Оплата по QR-коду 8.3.14 Конфигурации 1cv8 Платные (руб)

Простой «виртуальный терминал» позволяет принимать платежи за товары или услуги с помощью Системы Быстрых Платежей, не требующий сложных настроек. Оплата по СБП - это способ не только ускорить обслуживание клиентов, но и экономить на эквайринге. Банки партнеры: АО Газпромбанк ,АО АЛЬФА-БАНК, АО Россельхозбанк,ПАО Промсвязьбанк,ПАО Банк ФК Открытие,АО Райффайзенбанк,ПАО ВТБ,ПАО Московский Кредитный Банк,ПАО Сбербанк, ПАО Совкомбанк, АО АО Т-Банк (Тинькофф Банк) и т.д.

16800 руб.

06.09.2024    763    7    0    

4

СБП. Оплата по QR-коду 8.3.14 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Простой «виртуальный терминал» позволяет принимать платежи за товары или услуги с помощью Системы Быстрых Платежей, не требующий сложных настроек. Установите в кассовой зоне дисплей QR-кода в качестве терминала для оплаты по СБП и принимайте платежи с комиссией эквайринга до 0,7%

14400 руб.

06.06.2023    6807    14    13    

19

СБП. Оплата по QR-коду Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Платные (руб)

Система быстрых платежей - мгновенный способ оплаты чека по QR-коду. Комиссия за эквайринг СБП в 3-4 раза ниже чем у традиционного эквайринга. «Терминал системы быстрых платежей: оплата по QR » - это драйвер терминала эквайринговых систем и расширение позволяющее подключатся к системе СБП в 1С:УТ11, КА 2.х и ERP 2.х,Розница отраслевые и принимать оплаты.

4000 руб.

22.04.2022    32443    100    103    

75

СБП. Оплата по QR-коду Сайты и интернет-магазины Программист Платформа 1С v8.3 Конфигурации 1cv8 Автомобили, автосервисы Россия Бухгалтерский учет Управленческий учет Платные (руб)

В настоящее время система СБП очень часто стала использоваться в повседневной жизни. Одна из систем интеграции СБП через СБЕР. Данная конфигурация является инструментом интеграции СБП в Альфа Авто. Данная система не просто формирует статический QR, а динамический, а значит, в системе будет привязка и на покупателя, и на документ.

7200 руб.

25.10.2022    6310    33    4    

11

Кассовые операции Рабочее место СБП. Оплата по QR-коду Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Расширение для программ 1С:УТ, 1С:КА, 1С:ERP Управление предприятием, которое позволяет принимать оплату через СПБ для ПАО Сбербанк. Подключается прозрачно, работает как типовой механизм.

7080 руб.

08.11.2023    2298    11    6    

9

СБП. Оплата по QR-коду Программист Бухгалтер Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Очень нужная для бизнеса внешняя обработка для генерации QR кода по системе быстрых платежей Тинькофф.

3600 руб.

20.04.2022    12599    20    33    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Torin 828 03.08.22 14:39 Сейчас в теме
+ однозначно!
ИМХО - если бы фон однотонный , да еще и задать цвет можно было.. было бы супер!
2. erik74 13 03.08.22 15:04 Сейчас в теме
(0) + Супер!
а вот фон ...:( Так было бы более строже
Прикрепленные файлы:
3. user786146 27 03.08.22 16:50 Сейчас в теме
(2) Фон динамически меняется при ресайзе и иногда получаются красивые цвета. Но возможность установить сплошной цвет добавил и обновил описание (см. "Настройка фонового изображения")
Ali_q; erik74; +2 Ответить
4. erik74 13 04.08.22 06:58 Сейчас в теме
(3) За это вам наша искренняя сердечная благодарность.
5. CheBurator 2712 05.08.22 20:28 Сейчас в теме
"данные которому можно передавать через обычный файл *.json в виде задания."
- главное. чтобы QR-код. который сканирует клиент - был тем что нужно, а не остался от предыдущего...
6. Torin 828 07.08.22 10:06 Сейчас в теме
(5) ИМХО - после получения ответа от СБП что операция завершена передавать в *.json
{
"operation": "clear"
}
7. CheBurator 2712 07.08.22 11:16 Сейчас в теме
8. user786146 27 08.08.22 10:29 Сейчас в теме
(5) Вообще для этих целей я предполагал использование параметра "header" (в него можно передавать, например, номер чека), от выводится только после отрисовки нового QR-кода.

Файл в раздаче сегодня обновился:
- Небольшая оптимизация
- Добавлена возможность автоматического запуска на втором дисплее
- Добавлена возможность нанесения на QR-код отпечатка времени создания

*Все опции включаются через файл "config.ini". Файл с новыми параметрами создаётся при первом запуске приложения.
9. akR00b 24 18.11.22 11:22 Сейчас в теме
Оставьте свое сообщение