Как сформировать qr код в 1с
Перейти к содержимому

Как сформировать qr код в 1с

  • автор:

Платежные документы с QR-кодом в «1С:Предприятии 8»

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

С этой целью в системе «1С:Предприятие 8» реализован национальный стандарт штрихкодирования платежных реквизитов, разработанный Некоммерческим партнерством «Национальный платежный совет» совместно со Сбербанком России. Это позволило совершать платежи быстро и без ошибок.

Процедура оплаты предусматривает три шага:

  • в системе «1С:Предприятие 8» печатает платежный документ с QR-кодом;
  • плательщик производит оплату путем автоматического сканирования данных удобным для него способом (Платежный терминал; Мобильный интернет-банк; Отделение Банка);
  • денежные средства за оказанные услуги поступают на счет получателя.

При этом исключена вероятность ошибочной привязки платежа к чужому лицевому счету — в QR-коде содержится вся информация, необходимая для однозначного определения как потребителя, так и поставщика услуг. Оплачивая свои счета по квитанциям с двумерным кодом, плательщик может быть спокоен — его деньги обязательно дойдут по назначению.

В отличие от обычных квитанций, обработка документов с QR-кодом занимает считанные секунды, ошибки операциониста при этом исключены. Такие квитанции принимаются к оплате в Сбербанке, а также в ряде других банков и финансовых организациях, поддержавших стандарт: ВТБ, Альфа-банк, КиберПлат, Почта России и др.

Фирма «1С» реализовала поддержку QR-кода на уровне «Библиотеки стандартных подсистем» «1С:Предприятия 8». Функция печати QR-кода предоставляется в рамках договора информационно-технологического сопровождения 1С:ИТС и может быть легко встроена в любое прикладное решение системы. Подробную инструкцию по созданию платежных документов с QR-кодом можно получить на сайте http://www.sbqr.ru/standard/files/QR_code_in_1C.pdf.

Готовые формы с QR-кодами реализованы в настоящее время в следующих решениях системы «1С:Предприятие 8»:

  • «1С:Бухгалтерия государственного учреждения 8» — документы ПД-4, Заявление физического лица на перевод денежных средств, Счет на оплату.
  • «1С:Учет в управляющих компаниях ЖКХ, ТСЖ и ЖСК» — квитанция на оплату услуг ЖКХ.
  • «1С:Расчет квартплаты и бухгалтерия ЖКХ» — квитанция на оплату услуг ЖКХ

Формы этих документов используются службами ЖКХ, государственными и муниципальными учреждениями для выставления квитанций на оплату госпошлин, услуг ЖКХ, услуг дошкольного и дополнительного образования и т. п. Провести платеж по квитанциям с QR-кодом можно за считанные секунды в любом отделении Сбербанка, а также в ряде других банков и финансовых организаций.

Платежные документы с QR-кодом в «1С:Предприятии 8», Печать квитанции

Печать квитанции

Информация о Едином стандарте «Двумерные символы штрихового кода на документах для осуществления платежей физическими лицами» размещена на нашем сайте в разделе «Стандарты и форматы».

  • Обмен данными с интернет-магазином
  • Системы «Клиент банка»
  • Зарплатные проекты банков
  • Обмен данными в бюджетных решениях
  • Автономное решение
  • DirectBank (прямой обмен с банком)
  • Подключение торгового оборудования
  • Система быстрых платежей — мгновенный перевод денежных средств от покупателей в программах «1С»
  • Платежные документы с QR-кодом в «1С:Предприятии 8»
  • 1C-Отчетность
  • Система сервисов 1С:Мультибанк
  • Сервис 1С:Кредит
  • Сервис 1С:Лизинг
  • Сервис 1С:ФинОтчетность
  • Сервис 1С:Открытие счета
  • Архив разработок
  • Вход для партнеров 1С
  • Учебная версия
  • Стать партнером

QR код в 1С

Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google. Вот сайт, который работает с ним. После того, как вы вводите все параметры кода и нажимаете кнопку генерировать, получаем что-то вроде такой ссылки. По сути эта ссылка нам и нужна. Создав необходимый url можно скачать картинку, которая генерируется с помощью api.
И так в чем заключается подход:
1. Генерируем текст, который надо прописать в qr-коде.
2. Используя ссылку «http://chart.apis.google.com/chart?cht=qr&chs=230?230&chl=» +»Наш текст» скачиваем картинку.
3. Размещаем картинку в нашем табличном документе.
Код реализации:
Код 1C v 8.2 УП

 &НаСервере 
Функция hex(Знач Значение)
Значение=Число(Значение);
Если Значение Результат="0";
Иначе
Значение=Цел(Значение);
Результат="";
Пока Значение>0 Цикл
Результат=Сред("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Значение%16 + 1,1)+Результат;
Значение=Цел(Значение/16) ;
КонецЦикла;
КонецЕсли;
Если СтрДлина(Результат) < 2 Тогда

Результат = "0" + Результат;

КонецЕсли;
Возврат "%" + Результат;
КонецФункции

&НаСервере
Функция EncodeURL(URL)
Рез = "";
Для Сч = 1 По СтрДлина(URL) Цикл
ch = Сред(URL,Сч,1);
vch = КодСимвола(ch);

Если ("A" Рез = Рез + ch;
ИначеЕсли ("a" Рез = Рез + ch;
ИначеЕсли ("0" Рез = Рез + ch;
ИначеЕсли (ch = " ") ИЛИ ( ch = "+") Тогда // space
Рез = Рез + "+";
ИначеЕсли (ch = "-" ) ИЛИ ( ch = "_") // unreserved
ИЛИ (ch = ".") ИЛИ (ch = "!")
ИЛИ (ch = "~") ИЛИ (ch = "*")
ИЛИ (ch = "") ИЛИ (ch = "(")
ИЛИ (ch = ")") Тогда
Рез = Рез + ch;
ИначеЕсли (vch Рез = Рез + hex(vch);
ИначеЕсли (vch Рез = Рез + hex(192 + Цел(vch / 64));
Рез = Рез + hex(128 + (vch % 64));
Иначе // 0x7FF < ch Рез = Рез + hex(224 + Цел(vch / 4096));
Рез = Рез + hex(128 + (Цел(vch / 64) % 64));
Рез = Рез + hex(128 + (vch % 64));
КонецЕсли;
КонецЦикла;

Возврат Рез;
КонецФункции // ()

&НаСервере
Функция СохранитьДвоичныйБуферВФайл(Буфер, ИмяФайла) Экспорт
Поток = Новый COMОбъект("ADODB.Stream");
Поток.Type = 1; //Бинарный
Поток.Mode = 3;
Поток.Open();
Поток.Write(Буфер);
Поток.SaveToFile(ИмяФайла);
Поток.Close();
КонецФункции

&НаСервере
Функция НапечататьКодСервер(ЗаказСсылка)
ТабДок = Новый ТабличныйДокумент;
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("png");
АдресНачало = "http://chart.apis.google.com/chart?cht=qr&chs=230x230&chl=";
АдресКонец = ЗаказСсылка.Номер + Символы.ПС + Заказссылка.Контрагент.Наименование;
АдресКонец = СтрЗаменить(АдресКонец, " ", "+");
АдресКонец = EncodeURL(АдресКонец);

Соединение = ПолучитьCOMОбъект("","Microsoft.XMLHTTP");
Соединение.open("GET", АдресНачало + АдресКонец,0,,);
Соединение.send(null);
СохранитьДвоичныйБуферВФайл(Соединение.responseBody, ИмяВременногоФайла);

//Печать
Макет = Документы.ЗаказПокупателя.ПолучитьМакет("МакетПечатиКода");
Область = Макет.ПолучитьОбласть("Код");
Область.Рисунки.КодРисунок.Картинка = Новый Картинка(ИмяВременногоФайла);
ТабДок.Вывести(Область);
Возврат ТабДок;
КонецФункции

QR код в Счете покупателю

Если Вид контрагентаФизическое лицо, в Счете на оплату ( Продажи — Счета покупателям ) автоматически происходит генерация QR кода 1С.

В 1С 8.3 автоматизирована печать QR кода в Счете на оплату.

  • Самоучитель по 1С Бухгалтерии 8.3;
  • Самоучитель по 1С ЗУП 8.3.

Счет покупателю — помощь в 1С-учете

Пользуйтесь активно документом Счет покупателю :

  • облегчает дальнейший документооборот;
  • помогает выписать правильно авансовый счет-фактуру;
  • обеспечивает управленческую отчетность в части отгрузок и оплат.

Быстрая оплата для физлиц и ИП

В приложении банка:

За счет формирования QR кода в 1С 8.3 Бухгалтерия 3.0 можно значительно облегчить оплату своим покупателям.

См. также:
  • Документ Счет покупателю
  • Как выставить счет на оплату в 1С Бухгалтерия 8.3
  • Реализация по нескольким Счетам покупателям
  • Как быстро посмотреть неоплаченные счета покупателей?
  • Справочник Контрагенты
  • [18.08.2020 запись] Поддерживающий семинар 1С БП за июль 2020

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С:Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

  1. Документ Счет покупателю в 1СДля того чтобы проконтролировать исполнение обязательств покупателей, организация может выставить.
  2. Автоматическая подстановка цены в документы в 1СМожно ли сократить время на заполнение документов? Конечно! Один из.
  3. Акт сверки в 1С 8.3 — где найти, как сделатьАкт сверки взаиморасчетов 1С — документ, содержащий сведения о состоянии.
  4. Товарно-транспортная накладная (ТТН) в 1С 8.3 — где находится, как сделатьВы ищете, как сделать товарно-транспортную накладную в 1С 8.3 Бухгалтерия.

Оцените публикацию
(Пока оценок нет)

Публикацию можно обсудить в комментариях ниже.
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Генерация QR кода для любых конфигураций 1С (обычные и управляемые формы)

  • 2.jpg
  • 1.jpg
  • 3.jpg

Создайте внешнюю обработку и из конфирурации УТ 11.4 перетащите в нее общий макет «КомпонентаПечатиQRКода».

В модуле объекта:

1 Создаем функцию получить генератор QR кода из макета:

функция ПолучитьГенераторQRкода() лМакетКомпоненты=ПолучитьМакет("КомпонентаПечатиQRКода"); лАдрес=ПоместитьВоВременноеХранилище(лМакетКомпоненты); ГенераторQRкода=неопределено; попытка Если ПодключитьВнешнююКомпоненту(лАдрес,"QR") тогда ГенераторQRкода=новый("AddIn.QR.QRCodeExtension"); иначе сообщить("Не удалось подключить компоненту генерации QR кода"); конецЕсли; исключение сообщить(ОписаниеОшибки()); КонецПопытки; возврат ГенераторQRкода; конецФункции

2 Создаем функцию получить двоичные данные QR-кода:

// Возвращает двоичные данные для формирования QR кода. // // Параметры: // QRСтрока - Строка - данные, которые необходимо разместить в QR-коде. // // УровеньКоррекции - Число - уровень погрешности изображения при котором данный QR-код все еще возможно 100% // распознать. // Параметр должен иметь тип целого и принимать одно из 4 допустимых значений: // 0(7% погрешности), 1(15% погрешности), 2(25% погрешности), 3(35% погрешности). // // Размер - Число - определяет длину стороны выходного изображения в пикселях. // Если минимально возможный размер изображения больше этого параметра - код сформирован не будет. // // Возвращаемое значение: // ДвоичныеДанные - буфер, содержащий байты PNG-изображения QR-кода. // // Пример: // // // Выводим на печать QR-код, содержащий в себе информацию зашифрованную по УФЭБС. // // QRСтрока = УправлениеПечатью.ФорматнаяСтрокаУФЭБС(РеквизитыПлатежа); // ТекстОшибки = ""; // ДанныеQRКода = получитьQRкод(QRСтрока, 0, 190); // Если ДанныеQRКода=неопределено тогда // возврат; // КонецЕсли; // // КартинкаQRКода = Новый Картинка(ДанныеQRКода); // ОбластьМакета.Рисунки.QRКод.Картинка = КартинкаQRКода; // Функция получитьQRкод(QRСтрока, УровеньКоррекции, Размер) экспорт УстановитьОтключениеБезопасногоРежима(Истина); ГенераторQRКода = ПолучитьГенераторQRкода(); Если ГенераторQRКода = Неопределено Тогда Возврат Неопределено; КонецЕсли; Попытка ДвоичныеДанныеКартинки = ГенераторQRКода.GenerateQRCode(QRСтрока, УровеньКоррекции, Размер); Исключение сообщить(ОписаниеОшибки()); КонецПопытки; Возврат ДвоичныеДанныеКартинки; КонецФункции
&НаСервере Процедура получитьQRкодНаСервере() QRкод=""; об=РеквизитФормыВЗначение("Объект"); если СтрДлина(сокрлп(объект.Текст))=0 тогда сообщить("Нет данных для генерации QR-кода"); возврат; конецЕсли; ДанныеQRКода = об.получитьQRкод(Объект.Текст, 0, 190); QRкод =ПоместитьВоВременноеХранилище(Новый Картинка(ДанныеQRКода)); КонецПроцедуры &НаКлиенте Процедура получитьQRкод(Команда) получитьQRкодНаСервере(); КонецПроцедуры

Тестировалось на платформе 1С:Предприятие 8.3 (8.3.14.1565), конфигурации: БП (3.0.70.25), БП(2.0.66.77), УНФ (1.6.13.58), УТ(11.4.6.200), УТ (10.3.38.1).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *