Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Компонента печати 1С QRCode. Странный глюк. Помогите разобраться

Компонента печати 1С QRCode. Странный глюк. Помогите разобраться
Я
   arsik
 
26.06.20 - 10:41
Стандартная компонента печати от 1С (native), используется в толстом клиенте (на УФ такое же поведение).
Засовываем туда длинную строку (допустим символов 200) результат - https://i.imgur.com/oE3sLIa.png
Сам штрихкод маленький, большие поля, сканером не читается.
Кто решал такую проблему?
   RomanYS
 
1 - 26.06.20 - 10:47
(0) код покажи и свойства картинки
   arsik
 
2 - 26.06.20 - 11:03
(1) Код стандартный. Вот свойства из компоненты перед получением изображения.
https://i.imgur.com/Ed0J4ow.png
Какие свойства картинки нужны? В (0) есть размер.
Во сути компонента не вписывает ШК в переданный размер, а выводит маленький ШК + большие поля.
   NorthWind
 
3 - 26.06.20 - 11:05
может, слишком громоздкий код для выбранного разрешения и размера?
   RomanYS
 
4 - 26.06.20 - 11:10
(2) В стандартный код передается требуемый размер ШК, у картинки в макете есть размеры и свойство Пропорционально
   RomanYS
 
5 - 26.06.20 - 11:11
*(4) свойство РазмерКартирнки (Реальный/Пропорционально/....)
   arsik
 
6 - 26.06.20 - 11:16
(5) Без разницы, хоть реальный, хоть пропорционально - результат одинаковый. Компонентой возвращается под переданный размер. Но с большими пустыми полями, в (0) стрелочкой показано.
   arsik
 
7 - 26.06.20 - 11:24
(3) Ну с коротким кодом выходит нормальная картинка.
Я конечно нашел один вариант, но он мне не нравится. Можно компоненте размер картинки указать раза в 4-5 больше реального и в свойствах указать "Пропорционально" - но это как я сказал мне не нравится. Во первых картинка тяжелая получается, ну и это неправильно.
Нестандартная компонента (не нативная) выводит все нормально.
   RomanYS
 
8 - 26.06.20 - 11:25
(6) у меня никаких полей нет
https://i.imgur.com/n4GmWum.png

Процедура КнопкаВыполнитьНажатие(Кнопка)
    ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(ПолеВвода1, 0, 190);
    Если НЕ ДанныеQRКода = Неопределено Тогда
        КартинкаQRКода = Новый Картинка(ДанныеQRКода);
        ЭлементыФормы.ПолеКартинки1.Картинка = КартинкаQRКода;
    КонецЕСли;
КонецПроцедуры
   arsik
 
9 - 26.06.20 - 11:30
(8) Версия компоненты какая?
   RomanYS
 
10 - 26.06.20 - 11:32
(9) без понятия. Весь код здесь. Конфигурация БП2
   arsik
 
11 - 26.06.20 - 11:34
(10) Я так полагаю, это старый вариант компоненты, он работал нормально
   RomanYS
 
12 - 26.06.20 - 11:38
(11) возможно. Никаких версий нигде не нашел (ни в свойствах компоненты в отладчике, ни ни в свойствах выгруженной из макета dll)
...
        Если ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиQRКода", "QR") Тогда
            QRCodeGenerator = Новый("AddIn.QR.QRCodeExtension");
...
   arsik
 
13 - 26.06.20 - 12:47
Отправил ошибку в 1С.
   arsik
 
14 - 30.06.20 - 15:25
Короче разрешился вопрос. Может кому будет интересно.
Вот ответ от 1С:
Это не ошибка.
Учитывая плотность данных и размер поля, так и должно генерироваться.
Размер поля 160x140 размер генерируемого QR 72x72, то есть размер элемента такого QR 1 пиксел (большего размера нацело просто он не влезет).
То есть, в такой размер больше особо и не впишешь. Естественно, что при таких условиях (особенно после печати) читаемость будет низкая. Но учитывая нагруженность этого QR не уверен, что и 2-х пикселей на элемент будет достаточно. Если это должно быть что-то типа платежек банка, то имеент смысл делать их достаточно большими, чтобы могло прочитаться большинством сканеров.


По сути так и есть.
Но в старой версии (из манифеста компоненты 1CQRCodeWin64_005.dll) картинка возвращалась без полей - 72х72.
В новой версии возвращается картинка под размер поля (160х140) , но в нее вписан QR 72х72.
При размещении на ТабличномПоле со свойством Размер картинки: Пропорционально
В первом варианте будет нормально читаться, а во втором нет. (смотри картинку)

https://i.imgur.com/htWCOOJ.png

Короче стало понятно что в нашем случае нам нужно передать в компоненту не реальный размер поля, а минимальные размеры QR из свойств компоненты (в (2) это видно МинимальнаяВысотаКода, МинимальнаяШиринаКода), тогда QR получится без полей.
Но лучше конечно такое свойство добавить в компоненту.
   arsik
 
15 - 06.07.20 - 11:53
Ну что много плюсов фирме 1С. Добавили свойство в компоненту печати ШК "УбратьЛишнийФон". Теперь с этим свойством все работает как должно.
https://i.imgur.com/KzKx3PR.png

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.