gifts2017

Формирование QR кода в 1С без интернета и бесплатно!

Опубликовал Иван (Powervalid) в раздел Оборудование - Сканер штрих-кода

Создание популярного QR кода в 1с без интернета и бесплатно с помощью собственного веб сервера.

Устанавливаем бесплатный веб сервер в локальной сети предприятия поддерживающий php, например по адресу http://192.168.12.80.Выкладываем на него скрипт, в приложенном файле допустим в папочку qrcode. В итоге доступ к получению самой картинки qr кода фразы, к примеру,  "test" будет осуществлен в браузере IE по адресу http://192.168.12.80/qrcode/?data=test.

Теперь собственно функции:

1) Получение картинки QR кода, где ПараметрыСеанса.АдресСервераПолученияQRКода = "http://192.168.12.80/qrcode/?data="

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

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

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

Идея взята от сюда: http://infostart.ru/public/80106/  


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

Наименование Файл Версия Размер
phpqrcode.zip 59
.zip 207,54Kb
28.05.12
59
.zip 207,54Kb Скачать

См. также

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

Комментарии

1. Александр Медведев (anig99) 28.05.12 16:04
А без локального сервера совсем никак?
2. Иван (Powervalid) 28.05.12 18:41
В данном случае никак, зато нет зависимости от инета :(. Но особых трудностей я не вижу в веб сервере.
3. Александр Медведев (anig99) 29.05.12 01:42
Вот тут есть java script. Осталось решить 2 проблемы:
1. прикрутить её к 1с (у меня вываливается с ошибкой, но я не дока в web-кодинге)
2. написать процедуру перевода двухмерного массива булево в картинку (это попроще)
4. Александр Медведев (anig99) 29.05.12 01:53
или вот прикрутить эту штуку http://zint.github.com/ - тут есть работа через командную строку
5. Иван (Powervalid) 29.05.12 10:51
6. Серёжка Шеянов (CepeLLlka) 15.08.12 22:52
Скачал.. залил не на локальный.. а просто на вебсервер где у меня лежит сайт.. и чудо не произошло.. в чём может быть дело?
7. Серёжка Шеянов (CepeLLlka) 16.08.12 07:07
Автор ответь пожалуйста..
Я не могу гугловским пользоваться, так как инфа конфедициальная в qrcode

Сёдня буду пробовать ставить Denwer, расшарю его по сети.. проверю ещё раз таким образом.
8. Иван (Powervalid) 16.08.12 09:03
Посмотри вот эту публикацию http://infostart.ru/public/137720/. Здесь вообще не нужен вэб сервер. Бесплатную утилиту качаешь и все.
9. Серёжка Шеянов (CepeLLlka) 16.08.12 10:05
А вы пробовали на УФ юзать ActiveX? Не работает это.. я использовал OcvitaBarcode.. там тоже самое на основе это Zint
Но на управляемых формах не работает..
10. Серёжка Шеянов (CepeLLlka) 16.08.12 10:08
Хотя нет.. тут по другому вроде.. сейчас попробую.. спасибо.. отпишусь.
11. Серёжка Шеянов (CepeLLlka) 16.08.12 17:33
Вобщем и на денвере тоже не работает.. ни на платном хостинге.. ни на бесплатном.. нашёл автора этого скрипта.. с его сайта скачал скрипт заливаю.. тоже не пашет :)
Наверное я что-то делаю не так
12. Андрей Карев (lamelioss) 25.06.13 17:56
с activeX на управляемых вообще тяжело. OcvitaBarcode не будет работать.
13. Андрей Карев (lamelioss) 25.06.13 17:57
Проще уж тогда собрать сервак в локальной сети, если так неохота внешние api тянуть =)
14. pila86 pila86 (pila86) 01.08.14 15:55
Залил на убунту, все сразу заработало, но есть один нюанс, кириллица не работает:
При сканировании полученного из кириллического текста кода получаются кракозябры.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа