Формирование 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Кода;
            КонецЕсли;    
        КонецЕсли;
    КонецЦикла;
КонецФункции

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


Файлы обработки:

-