|
1С 8.3 УФ Вывести штрих-код на печатную форму | ☑ | ||
---|---|---|---|---|
0
laby1
30.09.20
✎
15:03
|
Друзья, подскажите, как сейчас будет правильно вывести штрих-код на печатную форму?
Конфигурация УНФ. |
|||
1
laby1
30.09.20
✎
15:22
|
Ну ладно там правильно, как вообще можно на ПФ вывести ШК?
|
|||
2
laby1
30.09.20
✎
16:28
|
Пока нашел только вот это:
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native); // Создадим объект внешней компоненты Если ПодключениеВыполнено Тогда ВнешняяКомпонента = Новый("AddIn.КартинкаШтрихкода.Barcode"); Иначе Возврат Неопределено; КонецЕсли; но куда это лепить непонятно. |
|||
3
laby1
01.10.20
✎
09:44
|
Помогите гугл-программисту
|
|||
4
laby1
01.10.20
✎
10:10
|
нагуглил такую штуку https://its.1c.ru/db/metod8dev#content:5963:hdoc
Внешняя компонента "1С:Печать штрихкодов" для платформы "1С:Предприятие 8.3" поставляется в составе Библиотеки подключаемого оборудования. пример использования дан: Функция ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода) ПараметрыШтрихкода = Новый Структура; ПараметрыШтрихкода.Вставить("Ширина" , ШиринаШтрихкода); ПараметрыШтрихкода.Вставить("Высота" , ВысотаШтрихкода); ПараметрыШтрихкода.Вставить("ТипКода" , ТипШтрихкодаЗнач); ПараметрыШтрихкода.Вставить("ОтображатьТекст" , Истина); ПараметрыШтрихкода.Вставить("РазмерШрифта", РазмерШрифта); ПараметрыШтрихкода.Вставить("УголПоворота" , Число(УголПоворота)); ПараметрыШтрихкода.Вставить("Штрихкод" , Штрихкод); ПараметрыШтрихкода.Вставить("ПрозрачныйФон" , ПрозрачныйФон); ПараметрыШтрихкода.Вставить("УровеньКоррекцииQR", УровеньКоррекцииQR); ПараметрыШтрихкода.Вставить("Масштабировать" , Масштабировать); ПараметрыШтрихкода.Вставить("СохранятьПропорции" , СохранятьПропорции); ПараметрыШтрихкода.Вставить("ВертикальноеВыравнивание", ВертикальноеВыравнивание); ПараметрыШтрихкода.Вставить("GS1DatabarКоличествоСтрок", КоличествоСтрокGS1Databar); Возврат МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода); КонецФункции |
|||
5
laby1
01.10.20
✎
10:12
|
да, есть такая функция, только пишут устарела:
// Устарела. Следует использовать ГенерацияШтрихкодаВызовСервера.ИзображениеШтрихкода() // Формирование изображения штрихкода. // // Параметры: // ПараметрыШтрихкода - Структура (Конструктор ГенерацияШтрихкодаКлиентСервер.ПараметрыГенерацииШтрихкода()) // // Возвращаемое значение: // Картинка - Картинка со сформированным штрихкодом или НЕОПРЕДЕЛЕНО. // Функция ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода) Экспорт РезультатОперации = ГенерацияШтрихкодаВызовСервера.ИзображениеШтрихкода(ПараметрыШтрихкода); Если РезультатОперации.Результат Тогда Возврат РезультатОперации.Картинка; Иначе Возврат Неопределено; КонецЕсли; КонецФункции |
|||
6
laby1
01.10.20
✎
10:13
|
хотя она же и вызывается ...
|
|||
7
laby1
01.10.20
✎
10:14
|
// Формирование изображения штрихкода.
// // Параметры: // ПараметрыШтрихкода - Структура (Конструктор ГенерацияШтрихкодаКлиентСервер.ПараметрыГенерацииШтрихкода()) // // Возвращаемое значение: // Картинка - Картинка со сформированным штрихкодом или НЕОПРЕДЕЛЕНО. // Функция ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт ВнешняяКомпонента = ГенерацияШтрихкодаСерверПовтИсп.ПодключитьКомпонентуГенерацииИзображенияШтрихкода(); Если ВнешняяКомпонента = Неопределено Тогда ТекстОшибки = НСтр("ru = 'Ошибка подключения внешней компоненты печати штрихкода.'"); ЗаписьЖурналаРегистрации(ТекстОшибки, УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ВызватьИсключение ТекстОшибки; КонецЕсли; Возврат ГенерацияШтрихкодаКлиентСервер.ИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода); КонецФункции |
|||
8
Philix
01.10.20
✎
10:24
|
На макет надо воткнуть любую рисунок нужного размера. Он получит имя, например, D1.
Далее - получить картинку штрихкода через функцию ИзображениеШтрихкода и установить полученное из функции как картинку того рисунка. Область.Рисунки.D1.Картинка = ПолученнаяИзфункцииКартинка; и вывести область в табличный документ |
|||
9
laby1
01.10.20
✎
10:28
|
Да, есть в конфе вызов, только тут QR-код:
&НаСервере Функция ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, Штрихкод) ПараметрыШтрихкода = ГенерацияШтрихкодаКлиентСервер.ПараметрыГенерацииШтрихкода(); ПараметрыШтрихкода.Ширина = ШиринаШтрихкода; ПараметрыШтрихкода.Высота = ВысотаШтрихкода; ПараметрыШтрихкода.ТипКода = 16; ПараметрыШтрихкода.ОтображатьТекст = Истина; ПараметрыШтрихкода.РазмерШрифта = 12; ПараметрыШтрихкода.УголПоворота = 0; ПараметрыШтрихкода.Штрихкод = Штрихкод; ПараметрыШтрихкода.ПрозрачныйФон = Ложь; ПараметрыШтрихкода.Масштабировать = Ложь; РезультатОперации = ГенерацияШтрихкодаВызовСервера.ИзображениеШтрихкода(ПараметрыШтрихкода); Возврат РезультатОперации.Картинка; КонецФункции &НаСервере Процедура СформироватьНаСервере(Текст, QRКодЧека) QRКод.Очистить(); Макет = РегистрыСведений.ОчередьЧековККТ.ПолучитьМакет("Макет"); Область = Макет.ПолучитьОбласть("Строка|Колонка"); Рисунок = Область.Рисунки.ШтрихКод; ОбластьТекст = Макет.ПолучитьОбласть("Текст"); ОбластьТекст.Область("Текст").Текст = Текст; QRКод.Вывести(ОбластьТекст); Если QRКодЧека <> Неопределено Тогда Эталон = Справочники.ПодключаемоеОборудование.ПолучитьМакет("МакетДляОпределенияКоэффициентовЕдиницИзмерения"); КоличествоМиллиметровВПикселеВысота = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100; КоличествоМиллиметровВПикселеШирина = Эталон.Рисунки.Квадрат100Пикселей.Ширина / 100; ШиринаШтрихкода = Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселеШирина); ВысотаШтрихкода = Окр(Рисунок.Высота / КоличествоМиллиметровВПикселеВысота); Картинка = ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, QRКодЧека); Рисунок.Картинка = Картинка; QRКод.Вывести(Область); КонецЕсли; КонецПроцедуры |
|||
10
laby1
01.10.20
✎
10:30
|
QRКод тут табличный документа на форме
|
|||
11
laby1
01.10.20
✎
10:31
|
(8) ага, мне надо получить картинку и вывести в макет, кажись понял, спасибо, попробую
|
|||
12
laby1
01.10.20
✎
12:18
|
какая-то лажа выходит, тип кода ставлю 1, всё равно как QR
https://yadi.sk/i/3-g4h-Q1p2cyvg |
|||
13
laby1
01.10.20
✎
12:20
|
ПараметрыШтрихкода Структура Структура
GS1DatabarКоличествоСтрок 2 Число ВертикальноеВыравнивание 1 Число Высота 10,6715277777778 Число Масштабировать Истина Булево ОтображатьТекст Ложь Булево ПрозрачныйФон Ложь Булево РазмерШрифта 12 Число СохранятьПропорции Ложь Булево ТипВходныхДанных 0 Число ТипКода 1 Число УбратьЛишнийФон Ложь Булево УголПоворота 0 Число УровеньКоррекцииQR 1 Число Ширина 73,025 Число Штрихкод "1273720200908" Строка |
|||
14
laby1
01.10.20
✎
12:26
|
в саму компоненту передаётся:
Свойство Значение Тип ВнешняяКомпонента AddIn.BarcodeSymbolicName.Barcode AddIn.BarcodeSymbolicName.Barcode ECL 1 Число GS1DatabarКоличествоСтрок 1 Число АвтоТип Ложь Булево Версия "9.0.10.1" Строка ВертСмещение 0 Число ВертикальноеВыравниваниеКода 1 Число ВидимостьКС Истина Булево ВыравниваниеКода 2 Число Высота 11 Число ГорСмещение 0 Число ГрафикаУстановлена Истина Булево ЗначениеКода Недоступно для чтения ИмяФайла "" Строка КоличествоСтолбцов 0 Число КоличествоСтрок 0 Число КоличествоШрифтов 142 Число КонтрольныйСимвол "8" Строка МаксимальныйРазмерШрифтаДляПринтеровНизкогоРазрешения 16 Число МинимальнаяВысотаКода 2 Число МинимальнаяШиринаКода 109 Число ОриентацияТекста 4 Число ОтображатьТекст Ложь Булево ПоложениеТекста 0 Число ПрозрачныйФон Ложь Булево Пропорции "1:4" Строка РазделителиКода 30 Число РазмерКрая 0 Число РазмерШрифта 12 Число Результат 1 Число СодержитКС Ложь Булево ТекстКода "" Строка ТипВходныхДанных 0 Число ТипКода 1 Число УбратьЛишнийФон Ложь Булево УголПоворота 0 Число УровеньКоррекцииQR 1 Число ЦветПолос -16 777 216 Число ЦветТекста -16 777 216 Число ЦветФона -16 777 216 Число Ширина 109 Число Шрифт "Tahoma" Строка |
|||
15
laby1
01.10.20
✎
12:27
|
GS1DatabarКоличествоСтрок я поставил 1 вместо 2 - тот же результат
|
|||
16
laby1
01.10.20
✎
12:30
|
значение кода недоступно для чтения, но туда передаётся код "1273720200908" Строка
|
|||
17
laby1
01.10.20
✎
12:42
|
почему-то получается штрих-код только в "CODE39" (ВнешняяКомпонента.ТипКода = 3)
|
|||
18
SadrArt
01.10.20
✎
12:54
|
Извините, а вы с кем разговариваете? )
|
|||
19
laby1
01.10.20
✎
12:59
|
да, после мытарств с подбором параметром получилось:
Функция ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, Штрихкод) ПараметрыШтрихкода = ГенерацияШтрихкодаКлиентСервер.ПараметрыГенерацииШтрихкода(); ПараметрыШтрихкода.GS1DatabarКоличествоСтрок = 2; ПараметрыШтрихкода.Ширина = ШиринаШтрихкода; ПараметрыШтрихкода.Высота = ВысотаШтрихкода; ПараметрыШтрихкода.ТипКода = 1; ПараметрыШтрихкода.ОтображатьТекст = Ложь; ПараметрыШтрихкода.РазмерШрифта = 0; ПараметрыШтрихкода.УголПоворота = 0; ПараметрыШтрихкода.Штрихкод = Штрихкод; ПараметрыШтрихкода.ПрозрачныйФон = Ложь; ПараметрыШтрихкода.Масштабировать = Истина; РезультатОперации = ГенерацияШтрихкодаВызовСервера.ИзображениеШтрихкода(ПараметрыШтрихкода); Возврат РезультатОперации.Картинка; КонецФункции &Вместо("ПечатнаяФорма") Функция Расш_ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, ИмяМакета) ... РисунокШК = ОбластьМакета.Рисунки.ШтрихКод; ШтрихКод = "01" + Прав(Шапка.Номер,4) + Формат(Шапка.ДатаДокумента,"ДФ=yyMMdd"); РисунокШК.Картинка = ПолучитьШтрихкод(РисунокШК.Ширина,РисунокШК.Высота, Штрихкод); ... КонецФункции |
|||
20
laby1
01.10.20
✎
14:18
|
Тот странный рисунок - это как бы надпись "invalid barcode"
А возникал он потому, что для формата EAN-13 оказывается воспринимает только 12 цифр, а для ITF14 - максимум 13. А я пытался 13 и 14 соответственно. А когда ошибся с кол-вом цифр и о чудо, штрихкод появился. гугл-программист ха-ха |
|||
21
laby1
02.10.20
✎
16:04
|
А кто-нибудь в курсе, можно ли, чтоб эта компонента выводила вместе со штрихкодом и соответствующий ему числовой код.
Если я в параметры добавляю ПараметрыШтрихкода.ОтображатьТекст = Истина; то выводятся большие пиксельные цифры без самого штрих-кода. Там в компоненте по умолчанию размер шрифта 12. А если пытаюсь передать другой размер шрифта к примеру ПараметрыШтрихкода.РазмерШрифта = 10; То выпадает ошибка Ошибка при установке значения атрибута контекста (РазмерШрифта) ВнешняяКомпонента.РазмерШрифта = ПараметрыШтрихкода.РазмерШрифта; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |