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

22.08.12

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

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Текст функции для 1С
.txt 8,76Kb
46
46 Скачать (1 SM) Купить за 1 850 руб.
PHP QRCode для вебсервера
.rar 35,76Kb
22
22 Скачать (1 SM) Купить за 1 850 руб.

Клиент попросил сделать 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.х Управленческий учет Платные (руб)

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

3000 руб.

03.12.2018    62140    212    103    

180

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

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

12000 руб.

19.04.2021    24377    73    49    

66

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

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

2400 руб.

29.07.2020    38568    194    168    

158

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

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

2000 руб.

22.04.2019    102371    626    191    

336

Учет ОС и НМА Сканер штрих-кода Терминал сбора данных Логистика, склад и ТМЦ Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Приложение Инвентаризация ОС и ТМЦ предназначено для инвентаризации основных средств и товарно-материальных ценностей, закреплённых за конкретным материально ответственным лицом или складом. В конфигурации 1С:Бухгалтерии 3.0 отсутствуют возможности генерации и работы со штрих-кодами для основных средств. Приложение позволяет генерировать и обрабатывать штрих-коды как для основных средств, так и для товарно-материальных ценностей (материалы, товары). В новом релизе появилась возможность работы с фотографиями объектов учета.

07.07.2023    4084    2    alfanika    0    

6

Распознавание документов и образов Сканер штрих-кода Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Обработка для 1С, которая позволяет распознавать штрихкоды с изображений с помощью бесплатного онлайн-сервиса zxing.org. Простое и удобное решение для интеграции работы со штрихкодами без необходимости использования сторонних библиотек.

1 стартмани

05.12.2024    838    4    nailandroid    0    

3

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

Небольшой пример работы со сканером штрихкодов через библиотеку БПО и блока виртуальной цифровой клавиатуры.

2 стартмани

09.07.2024    1307    5    aximo    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Wanderer.nk 19 22.08.12 10:38 Сейчас в теме
Самый главный плюс этой обработки - возможность передачи любых документов в "электронном" виде на бумаге.
У меня в компании на каждой ТТН, СФ, сопроводительном документе выводится такой код.
Очень упрощает ввод документа в базу у контрагента.
2. mkostya 30 22.08.12 12:15 Сейчас в теме
Видно что огромная работа проделана, однозначно плюс. Пойду тестировать...
3. Wanderer.nk 19 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 19 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 19 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 19 11.02.15 11:16 Сейчас в теме
(10) minimajack, почему же бредовая?
мое решение успешно работает с момента публикации (даже на пару месяцев больше).

Мой предыдущий комментарий был к вопросу о технических ограничениях решения от 1С, а не стандарта. Про лимиты стандарта я в самой публикации указал в части кириллицы.
12. minimajack 80 11.02.15 11:41 Сейчас в теме
(11)
а именно 4296 знаков при использовании кириллицы
- это при использовании латиницы
1С реализует стандарт оплаты по QR -коду, это совершенно не относится к упаковке массивов.
Прочитать про стандарт
13. Wanderer.nk 19 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 19 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 192 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 в этикетку, чтобы увеличить расстояние, на котором ТСД смогут "увидеть" и прочитать данные.
Оставьте свое сообщение