gifts2017

Генерация QRCode без внешних компонент и подключения к Интернету

Опубликовал Денис Ткаченко (dattk) в раздел Программирование - Инструментарий

Для генерации QR-кода нужны были внешние компоненты, программы или доступ к интернет, а почему бы не сгенерировать QRCode javascript-ом? В таком виде он будет доступен всем платформам, которые в состоянии отобразить HTML документ. Проверил на 1С  8.1-8.3 и на последней мобильной платформе.

Потребовалось передать настройки инициализации с 1С 8.1 на мобильное устройство - решил воспользоваться QR-кодом для этого. Поискал готовое решение - не нашел подходящего. Сделал - решил поделиться.

Используется библиотека javascript QRCode.js: http://davidshimjs.github.io/qrcodejs/

Для 8.1 обработка использует шаблон в макете, из которого создается страничка. В javascript создана функция, которая вызывается из 1С при изменнии строки, которую требуется закодировать. Там все просто. Выкладываю в виде обработки.

Сложности начались в мобильном приложении. Там макеты могут быть только двух типов: или ДвоичныеДанные, или ТабличныйДокумент - нам уж совсем не подходит. Пришлось шаблон страницы размещать в коде 1С. Также нам недоступен в мобильном приложении реквизит Документ расширения поля формы для поля HTML документа. Поэтому пришлось отказаться от вызовов javascript и переформировывать страницу при изменении строки, которую требуется закодировать. Выкладываю в виде конфигурации.

Спасибо за внимание.

P.S. кстати, можно обойтись без jQuery - для этого нужно её вызовы заменить на нативные в QRCode.js - это сократит код страницы на 100 Кб =))

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
конфигурация мобильного приложения QRCode
.cf 56,76Kb
18.05.16
8
.cf 56,76Kb 8 Скачать
внешняя обработка для 8.1 для генерации и отображения QRCode
.epf 71,48Kb
19.05.16
17
.epf 71,48Kb 17 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей (Che) Коцюра (CheBurator) 18.05.16 22:47
лучше бы написали 1. отдельно генерацию кода на чистом макете (печформе), отдельно 2.преобразование его в картинку
2. Денис Ткаченко (dattk) 19.05.16 05:37
(1) CheBurator,
я поделился подходом - ссылка на библиотеку JS в сообщении, можно сделать все что угодно, всем с форматом не угодишь =), а мобильное приложение сделано в форме конфигурации для удобства тестирования. опубликовал конфигурацию, залил на мобильное устройство и проверил.
Смысл генерации QR-кода у меня был в отображении его на экране для передачи строки информации - поэтому не макеты и не печформы.
3. Денис Ткаченко (dattk) 20.05.16 07:41
Нашел ошибку при генерации длинной строки на русском языке. Ошибка была в qrcode.min.js, потом на гитхабе увидел различие между полной версией qrcode.js и qrcode.min.js.

Рекомендую использовать полную версию библиотеки qrcode.js в шаблоне и смотреть Issues и Pull requests при возникновении ошибок у вас с библиотекой в дальнейшем.
4. Игорь Пашутин (Alien_job) 24.05.16 14:29
Тут уважаемый minimajack уж выкладывал такую штуку, правда очень скромно. Работает отлично
http://forum.infostart.ru/forum24/topic63560/message1301558/#message1301558
ZyZer; dattk; Amel2010; +3 Ответить 1
5. Денис Ткаченко (dattk) 25.05.16 17:17
(4) Alien_job,
жаль, что не нашёл, а изобретал велосипед =(, спасибо за ссылку!
6. Сергей (Che) Коцюра (CheBurator) 25.05.16 22:29
(3) да вы что...? оказывается для генерации QR без ВК надо использовать что-то вместо ВК...
;-)
7. Ридван (утюгчеловек) 29.05.16 12:07
да вы что...? оказывается для генерации QR без ВК надо использовать что-то вместо ВК...


(6) CheBurator,
Ничего удивительного. Генерить QR-код из пустоты умеют только волшебники.
И даже им нужна по крайней мере мана.
8. Orgalit 01.07.16 10:37
Как раз то, что было давно нужно. Спасибо!
9. Xer shi (Xershi) 01.07.16 10:46
(7) утюгчеловек, так я глянул много кода вшито, портировать его на 1С наверно долго будет, а использовать готовую компоненту проще всего) Кстати на скприпте аж в 2009 это написали.
10. Сергей (Che) Коцюра (CheBurator) 03.07.16 22:57
(7) на клюшках тыщу лет назад умели генерить EAN без шрифтов, ВК и прочих внешних инструментов - чисто на возможностях мокселя.
Принципиальную проблему сгенерить QR например на том же самом мокселе - не вижу...
11. Xer shi (Xershi) 03.07.16 23:01
(10) CheBurator, так вопрос же не в подмене, а в портировании кода! Портируйте код все вам похлопаем в ладоши, друдоемко его разобрать. Но если бы деньги платили был бы живее интерес!
12. Сергей (Che) Коцюра (CheBurator) 04.07.16 10:27
нафига код портировать если это так трудоемко? м.б. имеет смысл разобраться что к чему и написать код? хотя, конечно, нафига...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа