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

Создание популярного 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Кода;
            КонецЕсли;    
        КонецЕсли;
    КонецЦикла;
КонецФункции

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

14 Comments

  1. anig99

    А без локального сервера совсем никак?

    Reply
  2. Powervalid

    В данном случае никак, зато нет зависимости от инета :(. Но особых трудностей я не вижу в веб сервере.

    Reply
  3. anig99

    Вот тут есть java script. Осталось решить 2 проблемы:

    1. прикрутить её к 1с (у меня вываливается с ошибкой, но я не дока в web-кодинге)

    2. написать процедуру перевода двухмерного массива булево в картинку (это попроще)

    Reply
  4. anig99

    или вот прикрутить эту штуку http://zint.github.com/ — тут есть работа через командную строку

    Reply
  5. Powervalid

    (4) anig99, прикрутил http://infostart.ru/public/137720/

    Reply
  6. CepeLLlka

    Скачал.. залил не на локальный.. а просто на вебсервер где у меня лежит сайт.. и чудо не произошло.. в чём может быть дело?

    Reply
  7. CepeLLlka

    Автор ответь пожалуйста..

    Я не могу гугловским пользоваться, так как инфа конфедициальная в qrcode

    Сёдня буду пробовать ставить Denwer, расшарю его по сети.. проверю ещё раз таким образом.

    Reply
  8. Powervalid

    Посмотри вот эту публикацию http://infostart.ru/public/137720/. Здесь вообще не нужен вэб сервер. Бесплатную утилиту качаешь и все.

    Reply
  9. CepeLLlka

    А вы пробовали на УФ юзать ActiveX? Не работает это.. я использовал OcvitaBarcode.. там тоже самое на основе это Zint

    Но на управляемых формах не работает..

    Reply
  10. CepeLLlka

    Хотя нет.. тут по другому вроде.. сейчас попробую.. спасибо.. отпишусь.

    Reply
  11. CepeLLlka

    Вобщем и на денвере тоже не работает.. ни на платном хостинге.. ни на бесплатном.. нашёл автора этого скрипта.. с его сайта скачал скрипт заливаю.. тоже не пашет 🙂

    Наверное я что-то делаю не так

    Reply
  12. lamelioss

    с activeX на управляемых вообще тяжело. OcvitaBarcode не будет работать.

    Reply
  13. lamelioss

    Проще уж тогда собрать сервак в локальной сети, если так неохота внешние api тянуть =)

    Reply
  14. pila86

    Залил на убунту, все сразу заработало, но есть один нюанс, кириллица не работает:

    При сканировании полученного из кириллического текста кода получаются кракозябры.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *