Упаковка строк/массивов строк/таблиц/массивов таблиц в 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    59319    192    103    

172

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 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    97283    587    189    

321

Сканер штрих-кода Пользователь Платформа 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    36538    170    159    

142

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

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

3450 руб.

28.04.2023    9487    15    0    

9

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

Теперь практически все торговые документы в конфигурации 1С Бухгалтерия 3.0 (ПРОФ / КОРП) и в конфигурации 1С Бухгалтерия сельскохозяйственного предприятия 3.0 поддерживают подбор товара по штрих-коду. Можно пользоваться сканером штрихкода или подбирать штрих-код вручную. В основных печатных формах документов выводится колонка Штрихкод. Для менеджеров по продажам будет удобным дополнительный отчет Прайс-лист с остатками и штрих-кодом.

3600 руб.

28.07.2020    29250    79    32    

58

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

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

12000 руб.

19.04.2021    22826    64    44    

57

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

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

2 стартмани

09.07.2024    717    2    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 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 в этикетку, чтобы увеличить расстояние, на котором ТСД смогут "увидеть" и прочитать данные.
Оставьте свое сообщение