Упаковка строк/массивов строк/таблиц/массивов таблиц в QR Code без ВК с поддержкой русских букв через Google API/локальный сервер

22.08.12

Интеграция - Сканер штрих-кода

Функция позволяет генерировать QRCode из строк/масс.строк/ТЗ/масс.тз  2-мя способами:
1. Через Google API (требует наличия интернета)
2. Через собственный веб-сервер (у меня стоит Denwer, но должен подойти любой)

Поддержка русских букв. Проверено на планшетнике с Андроидом //что было в наличии, тем и проверял

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

Наименование Файл Версия Размер
Текст функции для 1С
.txt 8,76Kb
46
.txt 8,76Kb 46 Скачать
PHP QRCode для вебсервера
.rar 35,76Kb
22
.rar 35,76Kb 22 Скачать

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

На основе //infostart.ru/public/137613/ написал свою функцию, избавившись от COMОбъектов Microsoft.XMLHTTP и ADODB.Stream.

C Get запроса перешел на Post, т.к. у Get ограничение в 2кб, а у Post ограничение только самого QR кода (а именно 4296 знаков при использовании кириллицы)

Картинка с кодом выводится в независимости от макета, т.е. макеты документов, справочников и т.д. редактировать не требуется (что для меня огромный плюс). 


Итого имеем:

- генерируем QR-Code без ВК и внешних сервисов.

- не нужно править макеты, только добавить неск. строк кода в формирование макета

- если все же нужно, то можно в макет добавить картинку под код и передать её область в качестве параметра в функцию

- в код можно запихивать строки, таблицы значений, массивы строк и таблиц значений

- работает в управляемых формах (на веб-клиенте пока не проверял, но думаю проблем не будет)

- самый огромный плюс - возможность быстрой загрузки документа у контрагента (приемка продукции по сопроводительным листам, ввод ТТН, СФ и т.д.) с бумажного носителя.

 

В данном коде используются разработки/ПО:

//infostart.ru/public/137613/ - идея, функции конвертации в UTF+hex

http://tcpdf.org - QR Code generator,  PHP QR Code

http://www.denwer.ru/ - Apache/PHP Web Server

 

Комментарии:

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

- Для раскраски кода использовал http://www.oscomp.ru/1Color.php , т.к. я новичок и скачать разукрашку не могу

- Код функции лежит в файлах. Файлы для денвера там же. Сам денвер можно скачать по ссылке выше

- С помощью файлов PHP QRCode можете сделать сервер генерации QRCode на своем сайте ;) Например, быстрые ссылки для страничек.

 

В планах:

- Масштабирование области под размер кода, т.к. не всегда код влезает в область, а иногда размер области избыточен.

 

Будут вопросы - спрашивайте, отвечу :)

 

*****

Инсталляция:

В 1С:

1. Добавьте функции в любой имеющийся модуль с возможностями вызова сервера клиентом, либо создайте новый

2. В общих макетах создайте макет с именем МакетПечатиКода. В нем добавьте картинку с именем КодРисунок и укажите область в макете с именем Код 

3. В нужных участках кода добавьте соответствующий код

 

Для использования локального веб-сервера:

1. На любом компьютере установите Денвер, настройте права. Создайте папку и разархивируйте туда файлы из вложения.

2. Адрес сервера вписать в код функции. У меня вебсервер стоит на локальной машине, папка с файлами QRCode. Соответственно, в функции Новый HTTPСоединение("localhost/QRCode");

*****

 

Например, код формирования картинки в анонс этой публикации:

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

 

Использование у меня в конфигурации

// формируем шапку для QR кода
ТЗШапка = Новый ТаблицаЗначений;
ТЗШапка.Колонки.Добавить("Клиент");
ТЗШапка.Колонки.Добавить("NДок");
ТЗШапка.Колонки.Добавить("ДатаДок");

ТЗСериализацияНоменклатуры = Новый ТаблицаЗначений;
ТЗСериализацияНоменклатуры.КОлонки.Добавить("Номенклатура");
ТЗСериализацияНоменклатуры.КОлонки.Добавить("Код");

ТЗДляКода = Новый ТаблицаЗначений;
ТЗДляКода.Колонки.Добавить("Номенклатура");
 ТЗДляКода.Колонки.Добавить("Характеристика1");
 ТЗДляКода.Колонки.Добавить("Характеристика2");
 //-- формируем шапку для QR кода

//...............
Если ВыводитьQR Тогда
ТЗШапка.Очистить();
ТЗДляКода.Очистить();
ТЗСериализацияНоменклатуры.Очистить();

СтрокаТЗШапка = ТЗШапка.Добавить();
СтрокаТЗШапка.Клиент = ВыборкаЗаявка.Клиент.НаименованиеПолное;
СтрокаТЗШапка.NДок = ВыборкаЗаявка.Ссылка.Номер;
СтрокаТЗШапка.ДатаДок = Формат(ВыборкаЗаявка.Ссылка.Дата,"ДЛФ=D");
КонецЕсли;

// В цикле обхода табличной части документа
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Проверяем наличие номенклатуры в таблице сериализации. При отсутствии добавляем
Если ВыводитьQR Тогда
Если ТЗСериализацияНоменклатуры.Найти(Формат(Число(ВыборкаДетальныеЗаписи.Код),"ЧГ=0"),"Код")=Неопределено Тогда
НоваяСтрокаСериализации = ТЗСериализацияНоменклатуры.Добавить();
НоваяСтрокаСериализации.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура.Наименование;
НоваяСтрокаСериализации.Код = Формат(Число(ВыборкаДетальныеЗаписи.Код),"ЧГ=0");
КонецЕсли;

НоваяСтрока = ТЗДляКода.Добавить();
НоваяСтрока.Номенклатура = Формат(Число(ВыборкаДетальныеЗаписи.Код),"ЧГ=0");
НоваяСтрока.Характеристика1 = ВыборкаДетальныеЗаписи.Характеристика1; 
 НоваяСтрока.Характеристика2 = ВыборкаДетальныеЗаписи.Характеристика2; 
 КонецЕсли;

КонецЦикла;
// В конце табличного документа выводим QR Code
Если ВыводитьQR Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ТЗВМассиве = Новый Массив;
ТЗВМассиве.Добавить(ТЗСериализацияНоменклатуры);
ТЗВМассиве.Добавить(ТЗДляКода);
ОбластьСКодом = ИнтересныеФишки.НапечататьКодСервер(ТЗШапка,ТЗВМассиве,,ТабДок,,,,"|");

КонецЕсли;

См. также

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

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

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

2880 руб.

03.12.2018    54604    137    102    

161

Подсистема штрихкодирования серий номенклатуры для 1С:УТ 11.4/11.5 КА, ERP 2.4/2.5

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

Стандартные конфигурации ERP, КА, УТ 11 позволяют работать с штрихкодированием серий. Есть только одно суровое ограничение – на упаковке должна быть этикетка для номенклатуры и отдельно для серии. Во многих случаях это критически неудобно.

12000 руб.

19.04.2021    20697    57    35    

51

Проверка товаров сканером штрихкода/ТСД для УТ11, КА2, ERP2, УНФ, БП3, Розница 2/ 3

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

У вас возникал вопрос - Как быстро и правильно выполнить приемку товара в торговой точке? Как минимизировать ошибки при сборке заказа клиента? Текущая разработка способна помочь в решении данных проблем. Её назначение - проверка с помощью сканера штрих кода поступления и реализации товаров, заказов клиентов, заказов поставщикам, расходных и приходных ордеров, перемещений и возвратов.

2400 руб.

29.07.2020    34085    157    152    

128

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android

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

Простой мобильный терминал сбора данных для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    91938    511    186    

293

Конфигурация "Информационный киоск". Обработки выгрузки товаров для ТиС 9.2, УТ 10.3, УТ 11 (обмен данными с любой конфигурацией 1С 7.7, 8.х)

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

Конфигурация предназначена для организации offline доступа клиента (покупателя) к информации о товарах, услугах или дисконтных картах посредством сканирования штрих-кода. Основная цель – мгновенно предоставить наиболее актуальную информацию о цене, остатках, наименовании товара (услуги) или накоплениях, держателе, состоянии дисконтной карты.

1800 руб.

21.12.2014    59233    8    21    

20

Прайс-чекер. Розница (Россия, Казахстан)

Сканер штрих-кода Платформа 1С v8.3 1С:Розница 2 Абонемент ($m)

Простой и удобный прайс-чекер, работающий в режиме рабочего стола.

1 стартмани

28.11.2023    412    0    x-ynegve    0    

2

Прайсчекер для 1С (УНФ, УТ, Розница)

Сканер штрих-кода Платформа 1С v8.3 Управляемые формы 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Абонемент ($m)

Внешняя обработка (доработка) - прайсчекер для 1С (для следующих конфигураций УНФ 1.6 и 3.0, для УТ 11 и Розница 3.0), подойдет для Ритейла как полная альтернатива прайсчекеру, точнее, полноценная его замена с функцией озвучки цены.

3 стартмани

15.11.2023    582    6    usinfostart1c    2    

4
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Wanderer.nk 18 22.08.12 10:38 Сейчас в теме
Самый главный плюс этой обработки - возможность передачи любых документов в "электронном" виде на бумаге.
У меня в компании на каждой ТТН, СФ, сопроводительном документе выводится такой код.
Очень упрощает ввод документа в базу у контрагента.
2. mkostya 30 22.08.12 12:15 Сейчас в теме
Видно что огромная работа проделана, однозначно плюс. Пойду тестировать...
3. Wanderer.nk 18 22.08.12 12:19 Сейчас в теме
mkostya :) Спасибо

Вообще эта разработка была написана еще в апреле в зачаточном состоянии и запущена в работу в компании.
Постепенно дорабатывалась и на Инфостарте выложил в июне в черновиках. 2 месяца накапливались изменения, решил опубликовать. Вроде мыслей по доработкам больше нет, может у вас появятся :) Пишите, сделаем :)
4. Dimasik2007 430 22.08.12 12:50 Сейчас в теме
Вопрос очередной опять же к модератаром.
Вот это "нафига":
Конфигурации: 1C: Предприятие 8, 1С:Комплексная автоматизация 8, 1С:Бухгалтерия 8, 1С:Зарплата и Управление Персоналом 8, 1С:Налогоплательщик 8, 1С:Платежные документы 8, 1С:Предприниматель 8, 1С:Управление торговлей 8, 1С:Зарплата и кадры бюджетного учреждения 8 , 1С:Свод отчетов 8, 1С:Консолидация 8 , 1С:Розница 8, 1С:Управление производственным предприятием 8, 1C:Управление небольшой фирмой, 1С:Бухгалтерия бюджетного учреждения 8, 1С:Бухгалтерия государственного учреждения 8
Внешний отчет, обработка для 1С: Предприятие 8.2
5. Wanderer.nk 18 22.08.12 12:58 Сейчас в теме
(4) Dimasik2007, извиняюсь. Моя первая публикация. Исправлю.
6. 1cNike 209 11.12.13 13:16 Сейчас в теме
Генерируемый QR код не читается сканером. Сравнивал его с кодом полученным другой обработкой - они разные. Кодировалось одно и тоже слово. Куда копать?
7. 1cNike 209 11.12.13 13:36 Сейчас в теме
Разобрался. Оказывается сам виноват, в кодируемой строке был символ "№". Спасибо за публикацию
8. lcd 02.02.15 11:53 Сейчас в теме
http://v8.1c.ru/news/newsAbout.jsp?id=11184
Новая возможность программ 1С - формирование платежных документов с QR-кодом
Фирма "1С" реализовала поддержку нового стандарта на уровне "Библиотеки стандартных подсистем" 1С:Предприятия 8. Функция печати QR-кода предоставляется в рамках договора информационно-технологического сопровождения 1С:ИТС и может быть легко встроена в любое прикладное решение системы.
9. Wanderer.nk 18 11.02.15 10:44 Сейчас в теме
(8) lcd, Спасибо за информацию
нужно проверить, как решение от 1С поведет себя на упаковке массивов данных и какой максимальный объем можно запихнуть в один QR код у 1С.
10. minimajack 80 11.02.15 10:59 Сейчас в теме
(9)
QR-Code
Максимальное количество символов, которые помещаются в один QR-код:
цифры — 7089;
цифры и буквы (латиница) — 4296;
двоичный код — 2953 байт (следовательно, около 2953 букв кириллицы в кодировке windows-1251 или около 1450 букв кириллицы в utf-8);

По факту уже при 1кб данных - адекватно считывать не получается
один гуид = 128 бит = 16 байт - максимум 184 гуида; для платежки хватит - для упаковки массива идея бредовая
11. Wanderer.nk 18 11.02.15 11:16 Сейчас в теме
(10) minimajack, почему же бредовая?
мое решение успешно работает с момента публикации (даже на пару месяцев больше).

Мой предыдущий комментарий был к вопросу о технических ограничениях решения от 1С, а не стандарта. Про лимиты стандарта я в самой публикации указал в части кириллицы.
12. minimajack 80 11.02.15 11:41 Сейчас в теме
(11)
а именно 4296 знаков при использовании кириллицы
- это при использовании латиницы
1С реализует стандарт оплаты по QR -коду, это совершенно не относится к упаковке массивов.
Прочитать про стандарт
13. Wanderer.nk 18 11.02.15 16:10 Сейчас в теме
(12) minimajack, но в том числе 1С в БСП предоставляет механизмы по формированию и выводу QR кодов.
В моем случае можно заменить используемые мной костыли с php на решение от 1С.
Все остальное смысла менять нет.

UPD: Посмотрел БСП 2.2.5 Да, компоненты и механизмы уже реализованы и встроены в БСП (не платформу).
В демо примерах (да и в реальной жизни будет так же) QR код формируется конечно на основании кириллических данных.

Да, кстати, в стандарте сказано (стр. 5)
- алфавитно-цифровые данные: 4296 знаков;

вот только какой именно алфавит используется в данном стандарте....
14. minimajack 80 11.02.15 16:54 Сейчас в теме
(13) я не знаю какой стандарт вы читаете, но тут спецификация -> QR code specification
на 26 странице как раз и показан алфавит при alfanumeric сжатии, грубо говоря используется 6 бит вместо 8. Поэтому объем увеличивается.
Для простого расчета лучше использовать raw данные двоичный код — 2953 байт. Ну и в зависимости от сжатия( кодировки) данных этот параметр плавает для самих данных (числа, числабуквы, утф8, канджи).
15. Wanderer.nk 18 12.02.15 09:51 Сейчас в теме
(14) minimajack, Я читал именно тот стандарт, который Вы привели в 12-ом сообщении.
У меня ощущение, что мы с Вами говорим о разном.

Еще раз:
1. Я не скажу сейчас(!), сколько символов кириллицы влезает в QR код, который генерируется данным решением и затем считывается оборудованием клиента, поскольку я 2 года как покинул компанию, где это решение было реализовано. Знаю только, что оно работает.
2. Откуда была взята информация о количестве символов (а именно 4296 знаков при использовании кириллицы) уточнить не смогу, просто не помню. Информацию в стандарте априори считаем правильной, если решение выполнено по стандарту. Поэтому если в стандарте сказано про 2953 символов кириллицы, принимаем это.
3. Решение от 1С, о котором сказал lcd для меня в первую очередь интересно возможностью отказаться от php, а не печатью документов в УФЭБС
16. minimajack 80 12.02.15 13:34 Сейчас в теме
(15) возможно вам будет интересно альтернативное решение созданное на основе ком объекта JScript.
Решение делалось как проверка возможностей jscript движка и является портом двух js библиотек QRCode и PNG.
Прикрепленные файлы:
QRCode.epf
Dimka74; EliasShy; Irwin; ZyZer; Amel2010; lunjio; Wanderer.nk; Alien_job; +8 Ответить
17. Alien_job 190 26.08.15 14:26 Сейчас в теме
(16) minimajack, большое спасибо за обработку!
18. p-serg 14.08.17 09:30 Сейчас в теме
Павел, помогите понять: а мона вводить "первичку": Торг-12, Сч\фак, сами счета, и приёмные акты из другой программы в 1С посредством QR -кода.
При условии, конечно, что они уже несут на себе изображение QR ?
Сергей
19. GreenDragon 27.02.19 16:21 Сейчас в теме
- Масштабирование области под размер кода, т.к. не всегда код влезает в область, а иногда размер области избыточен.


Реализовано? у меня как раз сейчас стоит задача максимально вписать QR в этикетку, чтобы увеличить расстояние, на котором ТСД смогут "увидеть" и прочитать данные.
Оставьте свое сообщение