|
Добавление QR кода в макет | ☑ | ||
---|---|---|---|---|
0
Panda_oOo
06.03.20
✎
13:44
|
Добрый день
Часто ищу на данном форуме полезную информацию, и вот пришло время и мне попросить помощи. Поставлена задача - добавить QRкод в печатную форму, чтобы при формировании документа генерировался на основе текста + текущей даты. Нашёл в интернете информацию, но (позор мне) не могу собрать это дело воедино. Код выглядит примерно так: ОбластьКартинка = Макет.ПолучитьОбласть("Картинка"); QRСтрока = ("дловрпдлыврпдоыврпдлор"); ТекстОшибки =""; ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока,0,119); Если НЕ ПустаяСтрока(ТекстОшибки) Тогда ОбщегоНазначения.СообщитьПользователю(ТекстОшибки); КонецЕсли; КартинкаQRКода = Новый Картинка(ДанныеQRКода); ОбластьКартинка.Рисунки.Картинка = КартинкаQRКода; ДокументРезультат.Вывести(ОбластьКартинка); При запуске ругается на данную строку: ОбластьКартинка.Рисунки.Картинка = КартинкаQRКода; На макете создаю область "Картинка", там добавляю картинку. С макетами не работал до этого почти. Важное замечание! В режиме предприятия используют не стандартный макет, а измененный. а в конфигураторе отображается только стандартный макет. И если переключить на стандартный макет, то добавляемая картинка (не QR код, а просто картинка) показывается, а в пользовательском макете - нет. Может есть где информация по работе 1. с макетами, 2. с QR кодами. Мог что-то упустить, с радостью отвечу на дополнительные вопросы. |
|||
1
Panda_oOo
06.03.20
✎
13:50
|
К слову, работа происходит в конфе ЗУП 3.1
|
|||
2
Panda_oOo
06.03.20
✎
14:06
|
up
Народ, помогите разобраться плиз) |
|||
3
Kigo_Kigo
06.03.20
✎
14:35
|
(2) в отладчике КартинкаQRКода тип - картинка?
|
|||
4
Сергиус
06.03.20
✎
15:55
|
(0) Пример:
// Выводим на печать QR-код, содержащий в себе информацию зашифрованную по УФЭБС. QRСтрока = УправлениеПечатью.ФорматнаяСтрокаУФЭБС(РеквизитыПлатежа); ТекстОшибки = ""; ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190, ТекстОшибки); Если Не ПустаяСтрока(ТекстОшибки) ОбщегоНазначения.СообщитьПользователю(ТекстОшибки); КонецЕсли; КартинкаQRКода = Новый Картинка(ДанныеQRКода); ОбластьМакета.Рисунки.QRКод.Картинка = КартинкаQRКода; Попробуй так сделать, возможно ошибка в формировании самого кода. |
|||
5
1Садовник
06.03.20
✎
15:59
|
При запуске ругается на данную строку:
ОбластьКартинка.Рисунки.%ИМЯКАРТИНКИ%.Картинка = КартинкаQRКода; |
|||
6
Сергиус
06.03.20
✎
16:01
|
(0)Смотреть в отладчике, что в ОбластьКартинка.Рисунки. Часто бывает не совпадают имена
|
|||
7
Panda_oOo
09.03.20
✎
16:27
|
(5) Простите, а .%ИМЯКАРТИНКИ%. - это где указывается это имя?
Я в основном работал как пользователь, и в разработке опыта немного, в частности с макетами вообще не было |
|||
8
ДенисЧ
09.03.20
✎
16:29
|
(7) В отладчике встань на эту строку и посмотри коллекцию ОбластьКартинка.Рисунки
|
|||
9
Panda_oOo
10.03.20
✎
06:42
|
Спасибо, кто помогал.
Разобрался. Оказывается, в этой строчке ОбластьКартинка.Рисунки.%ИМЯКАРТИНКИ%.Картинка = КартинкаQRКода; Слово РИСУНКИ нельзя менять Оо кто бы знал. Сделал строку ОбластьКартинка.Рисунки.Картинка1.Картинка = КартинкаQRКода; где ОбластьКартинка - это область макета, Рисунки - я так понимаю, это название коллекции, к чему обращаюсь (поправьте, если не прав), Картинка1 - собственно имя элемента Картинка, расположенного на форме, а Картинка - ну я не знаю даже) В общем, код: ОбластьКартинка = Макет.ПолучитьОбласть("Картинка2"); QRСтрока = ("Hello, World!"); ТекстОшибки =""; ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока,0,119); Если НЕ ПустаяСтрока(ТекстОшибки) Тогда ОбщегоНазначения.СообщитьПользователю(ТекстОшибки); КонецЕсли; КартинкаQRКода = Новый Картинка(ДанныеQRКода); ОбластьКартинка.Рисунки.Картинка1.Картинка = КартинкаQRКода; ДокументРезультат.Вывести(ОбластьКартинка); Всё работает, на документе выводится QRКод, считывается любым устройством. Единственный вопрос, который возник в процессе: почему, если текст написан кириллицей, то на выходе получаем знаки вопроса (?????????????????????), а если латиницей - то нормальный текст (Hello, World!). |
|||
10
Panda_oOo
10.03.20
✎
06:45
|
И ещё вопрос, только что вспомнил. Непонятно про "Текст ошибки".
Если пытаюсь добавить в эту строку "ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока,0,119);" 4-ым параметром "Текст ошибки", то выходит ошибка, что много параметров. И выходит, что данная проверка в коде лишняя? Или я делаю что-то не так (как обычно) |
|||
11
Kigo_Kigo
10.03.20
✎
08:22
|
(10) Так залезь в общиемодули- управление печатью - ДанныеQRКода и посмотри есть там у тебя 4-й параметр - как код ошибки, если нет, то и передавать его туда не надо
|
|||
12
Panda_oOo
10.03.20
✎
08:44
|
(11) Глянул, только 3 параметра (QRСтрока, УровеньКоррекции, Размер).
А по поводу языка не можете подсказать, почему только на латинице работает нормально? |
|||
13
Kigo_Kigo
10.03.20
✎
09:02
|
(12) пробуйте Кодировки ансии или Юникод(утф-8)
|
|||
14
Сияющий в темноте
10.03.20
✎
09:12
|
скорей всего,потеря знаков идет при чтении,попробуйте почитать телефоном и посмотреть.
ну и у кода тоже есть кодировка,если что. |
|||
15
Panda_oOo
10.03.20
✎
10:00
|
(14) Ну вот с телефона прочитываю как раз, и идёт потеря символов.
|
|||
16
Panda_oOo
10.03.20
✎
10:00
|
(13) А не подскажете, как именно? это надо в строке сразу кодировку прописывать? или при выводе в QR код?
|
|||
17
Kigo_Kigo
10.03.20
✎
10:42
|
(16) Посммотри как идет формирование кода, потому как в ответ из УправлениеПечатью.ДанныеQRКода прилетает уже готовая картинка, ее перекодировать никак уже не получится, значит надо игратся с "QRСтрока" а вот в какой момент ее перекодировать - надо посмотреть
|
|||
18
Panda_oOo
10.03.20
✎
11:28
|
(17) в ответ из "УправлениеПечатью.ДанныеQRКода" прилетает ещё "89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00...." Вот такое.
А в КартинкаQRКода = Новый Картинка(ДанныеQRКода) уже заходит Картинка. Соответственно, в ДокументРезультат.Вывести(ОбластьКартинка) - Текстовый документ. Буду пробовать к строке дописывать кодировку... |
|||
19
Kigo_Kigo
10.03.20
✎
12:04
|
(18) Это код картинке в Хеш(в двоичных символах)
|
|||
20
Panda_oOo
10.03.20
✎
12:10
|
(19) Да,я понял ,спасибо. Сейчас ищу, как строку в utf-8 закодировать
|
|||
21
Panda_oOo
19.03.20
✎
08:16
|
Ребят, подскажите, почему у меня русские буквы в знаки вопроса превращаются при считывании? Не могу разобраться. Может, кто сталкивался, или ссылка есть на тему, буду весьма признателен
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |