Формирование 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 не будет опубликован. Обязательные поля помечены *