Программа не требует установки. Единственное условие - наличие установленного framework 4.0 и старше. Состоит из двух библиотек и выполняемого файла.
1. Запускаем программу.
2. Подносим QR код.
3. Программа считывает и закрывается.
В каталоге программы создается файл Output.txt с одной строкой формата: True|563067. Первый параметр "True" или "False" - статус сканирования. Второй - штрих код или описание ошибки.
Пример процедуры чтения QR кода. Используется для чтения кодов UDS GAME со смартфонов покупателей.
Процедура ОсновныеДействияФормыСканироватьКодUDS(Кнопка)
КаталогИБ = КаталогИБ();
Если КаталогИБ = КаталогВременныхФайлов() Тогда
КаталогИБ = КаталогДокументов();
КонецЕсли;
КаталогИБ = КаталогИБ+"QRreader\";
МассивФайловРезультата = НайтиФайлы(КаталогИБ,"output.txt",Истина);
Если НЕ МассивФайловРезультата.Количество() = 0 Тогда
ФайлРезультата = МассивФайловРезультата[0];
УдалитьФайлы(КаталогИБ+"output.txt");
КонецеслИ;
МассивФайлов = НайтиФайлы(КаталогИБ,"QRDecoder.exe",Истина);
Если МассивФайлов.Количество() = 0 Тогда
Предупреждение("Не установлена программа для чтения QR-кодов!", 60);
Иначе
ФайлQRreader = МассивФайлов[0].ПолноеИмя;
ЗапуститьПриложение(ФайлQRreader, КаталогИБ, Истина,);
МассивФайловРезультата = НайтиФайлы(КаталогИБ,"output.txt",Истина);
Если НЕ МассивФайловРезультата.Количество() = 0 Тогда
ФайлРезультата = МассивФайловРезультата[0];
ТД = Новый ТекстовыйДокумент;
ТД.Прочитать(КаталогИБ+"output.txt");
СтрокаОтвета = ТД.ПолучитьСтроку(1);
Если СтрокаОтвета <> "" Тогда
ПозицияРазделителя = Найти(СтрокаОтвета, "|");
Если ПозицияРазделителя <> 0 Тогда
ОтветПрограммы = Лев(СтрокаОтвета, ПозицияРазделителя-1);
Если ОтветПрограммы = "True" Тогда
КодСкидкиUDS = Сред(СтрокаОтвета, ПозицияРазделителя+1, СтрДлина(СтрокаОтвета)-ПозицияРазделителя);
Если КодСкидкиUDS <> "" Тогда
Отказ = Ложь;
ИмяКлиента = "";
СуммаСкидки = 0;
ОтветСкидки = UDSGame.GET_Customer(КодСкидкиUDS);
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ОтветСкидки);
СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON, ,"dateCreated");
Если СтруктураОтвета.Свойство("scores") Тогда
СуммаСкидкиUDS = СтруктураОтвета.scores;
КонецЕсли;
Если СтруктураОтвета.Свойство("name") Тогда
nameUDS = СтруктураОтвета.name;
КонецЕсли;
Если СтруктураОтвета.Свойство("surname") Тогда
surnameUDS = СтруктураОтвета.surname;
КонецЕсли;
Если СтруктураОтвета.Свойство("errorCode") Тогда
Предупреждение("Получена ошибка: " + СтруктураОтвета.errorCode, 60);
Отказ = Истина;
КонецЕсли;
Если Не Отказ Тогда
ЭтаФорма.Закрыть();
КонецЕсли;
Иначе
Предупреждение("Не удалось считать код. Попробуйте считать снова.",60);
КонецЕсли;
Иначе
Предупреждение("Не удалось считать код. Попробуйте считать снова.",60);
КонецЕсли;
Иначе
Предупреждение("Не удалось считать код. Попробуйте считать снова.",60);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры