|   |   | 
| 
 | Добавление 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 | 
        Ребят, подскажите, почему у меня русские буквы в знаки вопроса превращаются при считывании? Не могу разобраться. Может, кто сталкивался, или ссылка есть на тему, буду весьма признателен     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |