Вход | Регистрация
 

1С 8.3 УФ Вывести штрих-код на печатную форму

1С 8.3 УФ Вывести штрих-код на печатную форму
Я
   laby1
 
30.09.20 - 15:03
Друзья, подскажите, как сейчас будет правильно вывести штрих-код на печатную форму?
Конфигурация УНФ.
   laby1
 
1 - 30.09.20 - 15:22
Ну ладно там правильно, как вообще можно на ПФ вывести ШК?
   laby1
 
2 - 30.09.20 - 16:28
Пока нашел только вот это:

ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
    
    // Создадим объект внешней компоненты

    Если ПодключениеВыполнено Тогда
        ВнешняяКомпонента = Новый("AddIn.КартинкаШтрихкода.Barcode");
    Иначе
        Возврат Неопределено;
    КонецЕсли;

но куда это лепить непонятно.
   laby1
 
3 - 01.10.20 - 09:44
Помогите гугл-программисту
   laby1
 
4 - 01.10.20 - 10:10
нагуглил такую штуку https://its.1c.ru/db/metod8dev#content:5963:hdoc

Внешняя компонента "1С:Печать штрихкодов" для платформы "1С:Предприятие 8.3" поставляется в составе Библиотеки подключаемого оборудования.

пример использования дан:

Функция ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода)

    ПараметрыШтрихкода = Новый Структура;
    ПараметрыШтрихкода.Вставить("Ширина" , ШиринаШтрихкода);
    ПараметрыШтрихкода.Вставить("Высота" , ВысотаШтрихкода);
    ПараметрыШтрихкода.Вставить("ТипКода" , ТипШтрихкодаЗнач);
    ПараметрыШтрихкода.Вставить("ОтображатьТекст" , Истина);
    ПараметрыШтрихкода.Вставить("РазмерШрифта", РазмерШрифта);
    ПараметрыШтрихкода.Вставить("УголПоворота" , Число(УголПоворота));
    ПараметрыШтрихкода.Вставить("Штрихкод" , Штрихкод);
    ПараметрыШтрихкода.Вставить("ПрозрачныйФон" , ПрозрачныйФон);
    ПараметрыШтрихкода.Вставить("УровеньКоррекцииQR", УровеньКоррекцииQR);
    ПараметрыШтрихкода.Вставить("Масштабировать" , Масштабировать);
    ПараметрыШтрихкода.Вставить("СохранятьПропорции" , СохранятьПропорции);
    ПараметрыШтрихкода.Вставить("ВертикальноеВыравнивание", ВертикальноеВыравнивание); 
    ПараметрыШтрихкода.Вставить("GS1DatabarКоличествоСтрок", КоличествоСтрокGS1Databar);

    Возврат МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);

КонецФункции
   laby1
 
5 - 01.10.20 - 10:12
да, есть такая функция, только пишут устарела:
// Устарела. Следует использовать ГенерацияШтрихкодаВызовСервера.ИзображениеШтрихкода()

// Формирование изображения штрихкода.
//

// Параметры: 
//   ПараметрыШтрихкода - Структура (Конструктор ГенерацияШтрихкодаКлиентСервер.ПараметрыГенерацииШтрихкода())

//
// Возвращаемое значение: 

//   Картинка - Картинка со сформированным штрихкодом или НЕОПРЕДЕЛЕНО.
//

Функция ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода) Экспорт
    
    РезультатОперации = ГенерацияШтрихкодаВызовСервера.ИзображениеШтрихкода(ПараметрыШтрихкода);
    Если РезультатОперации.Результат Тогда
        Возврат РезультатОперации.Картинка;
    Иначе
        Возврат Неопределено;
    КонецЕсли;
    
КонецФункции
   laby1
 
6 - 01.10.20 - 10:13
хотя она же и вызывается ...
   laby1
 
7 - 01.10.20 - 10:14
// Формирование изображения штрихкода.

//
// Параметры: 

//   ПараметрыШтрихкода - Структура (Конструктор ГенерацияШтрихкодаКлиентСервер.ПараметрыГенерацииШтрихкода())
//

// Возвращаемое значение: 
//   Картинка - Картинка со сформированным штрихкодом или НЕОПРЕДЕЛЕНО.

//
Функция ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт
    
    ВнешняяКомпонента = ГенерацияШтрихкодаСерверПовтИсп.ПодключитьКомпонентуГенерацииИзображенияШтрихкода();
    
    Если ВнешняяКомпонента = Неопределено Тогда
        ТекстОшибки = НСтр("ru = 'Ошибка подключения внешней компоненты печати штрихкода.'");
        ЗаписьЖурналаРегистрации(ТекстОшибки, УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
        ВызватьИсключение ТекстОшибки;
    КонецЕсли;
    
    Возврат ГенерацияШтрихкодаКлиентСервер.ИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода); 
     
КонецФункции
   Philix
 
8 - 01.10.20 - 10:24
На макет надо воткнуть любую рисунок нужного размера. Он получит имя, например, D1.
Далее - получить картинку штрихкода через функцию ИзображениеШтрихкода и установить полученное из функции как картинку того рисунка.

Область.Рисунки.D1.Картинка = ПолученнаяИзфункцииКартинка;

и вывести область в табличный документ
   laby1
 
9 - 01.10.20 - 10:28
Да, есть в конфе вызов, только тут QR-код:

&НаСервере
Функция ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, Штрихкод)
    
    ПараметрыШтрихкода = ГенерацияШтрихкодаКлиентСервер.ПараметрыГенерацииШтрихкода();
    ПараметрыШтрихкода.Ширина  = ШиринаШтрихкода;
    ПараметрыШтрихкода.Высота  = ВысотаШтрихкода;
    ПараметрыШтрихкода.ТипКода = 16;
    ПараметрыШтрихкода.ОтображатьТекст = Истина;
    ПараметрыШтрихкода.РазмерШрифта   = 12;
    ПараметрыШтрихкода.УголПоворота   = 0;
    ПараметрыШтрихкода.Штрихкод       = Штрихкод;
    ПараметрыШтрихкода.ПрозрачныйФон  = Ложь;
    ПараметрыШтрихкода.Масштабировать = Ложь;
    
    РезультатОперации = ГенерацияШтрихкодаВызовСервера.ИзображениеШтрихкода(ПараметрыШтрихкода);
    Возврат РезультатОперации.Картинка;
    
КонецФункции

&НаСервере
Процедура СформироватьНаСервере(Текст, QRКодЧека)
    
    QRКод.Очистить();
    
    Макет = РегистрыСведений.ОчередьЧековККТ.ПолучитьМакет("Макет");
    Область = Макет.ПолучитьОбласть("Строка|Колонка");
    Рисунок = Область.Рисунки.ШтрихКод;
    
    ОбластьТекст = Макет.ПолучитьОбласть("Текст");
    ОбластьТекст.Область("Текст").Текст = Текст;
    QRКод.Вывести(ОбластьТекст);
    
    Если QRКодЧека <> Неопределено Тогда
        Эталон = Справочники.ПодключаемоеОборудование.ПолучитьМакет("МакетДляОпределенияКоэффициентовЕдиницИзмерения");
        КоличествоМиллиметровВПикселеВысота = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;
        КоличествоМиллиметровВПикселеШирина = Эталон.Рисунки.Квадрат100Пикселей.Ширина / 100;
        ШиринаШтрихкода = Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселеШирина);
        ВысотаШтрихкода = Окр(Рисунок.Высота / КоличествоМиллиметровВПикселеВысота);
        Картинка = ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, QRКодЧека);
        Рисунок.Картинка = Картинка;
        QRКод.Вывести(Область);
    КонецЕсли;
    
КонецПроцедуры
   laby1
 
10 - 01.10.20 - 10:30
QRКод тут табличный документа на форме
   laby1
 
11 - 01.10.20 - 10:31
(8) ага, мне надо получить картинку и вывести в макет, кажись понял, спасибо, попробую
   laby1
 
12 - 01.10.20 - 12:18
какая-то лажа выходит, тип кода ставлю 1, всё равно как QR
https://yadi.sk/i/3-g4h-Q1p2cyvg
   laby1
 
13 - 01.10.20 - 12:20
ПараметрыШтрихкода    Структура    Структура
GS1DatabarКоличествоСтрок    2    Число
ВертикальноеВыравнивание    1    Число
Высота    10,6715277777778    Число
Масштабировать    Истина    Булево
ОтображатьТекст    Ложь    Булево
ПрозрачныйФон    Ложь    Булево
РазмерШрифта    12    Число
СохранятьПропорции    Ложь    Булево
ТипВходныхДанных    0    Число
ТипКода    1    Число
УбратьЛишнийФон    Ложь    Булево
УголПоворота    0    Число
УровеньКоррекцииQR    1    Число
Ширина    73,025    Число
Штрихкод    "1273720200908"    Строка
   laby1
 
14 - 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"    Строка
   laby1
 
15 - 01.10.20 - 12:27
GS1DatabarКоличествоСтрок   я поставил 1 вместо 2 - тот же результат
   laby1
 
16 - 01.10.20 - 12:30
значение кода недоступно для чтения, но туда передаётся код "1273720200908"    Строка
   laby1
 
17 - 01.10.20 - 12:42
почему-то получается штрих-код только в "CODE39" (ВнешняяКомпонента.ТипКода = 3)
   SadrArt
 
18 - 01.10.20 - 12:54
Извините, а вы с кем разговариваете? )
   laby1
 
19 - 01.10.20 - 12:59
да, после мытарств с подбором параметром получилось:
Функция ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, Штрихкод)
    
    ПараметрыШтрихкода = ГенерацияШтрихкодаКлиентСервер.ПараметрыГенерацииШтрихкода();
    ПараметрыШтрихкода.GS1DatabarКоличествоСтрок = 2;
    ПараметрыШтрихкода.Ширина  = ШиринаШтрихкода;
    ПараметрыШтрихкода.Высота  = ВысотаШтрихкода;
    ПараметрыШтрихкода.ТипКода = 1;
    ПараметрыШтрихкода.ОтображатьТекст = Ложь;
    ПараметрыШтрихкода.РазмерШрифта   = 0;
    ПараметрыШтрихкода.УголПоворота   = 0;
    ПараметрыШтрихкода.Штрихкод       = Штрихкод;
    ПараметрыШтрихкода.ПрозрачныйФон  = Ложь;
    ПараметрыШтрихкода.Масштабировать = Истина;
    
    РезультатОперации = ГенерацияШтрихкодаВызовСервера.ИзображениеШтрихкода(ПараметрыШтрихкода);
    Возврат РезультатОперации.Картинка;
    
КонецФункции

&Вместо("ПечатнаяФорма")
Функция Расш_ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, ИмяМакета)
...
    РисунокШК = ОбластьМакета.Рисунки.ШтрихКод;
    ШтрихКод = "01" + Прав(Шапка.Номер,4) + Формат(Шапка.ДатаДокумента,"ДФ=yyMMdd");
    РисунокШК.Картинка = ПолучитьШтрихкод(РисунокШК.Ширина,РисунокШК.Высота, Штрихкод);
...
КонецФункции
   laby1
 
20 - 01.10.20 - 14:18
Тот странный рисунок - это как бы надпись "invalid barcode"
А возникал он потому, что для формата EAN-13 оказывается воспринимает только 12 цифр,
а для ITF14 - максимум 13. А я пытался 13 и 14 соответственно.
А когда ошибся с кол-вом цифр и о чудо, штрихкод появился.

гугл-программист ха-ха
   laby1
 
21 - 02.10.20 - 16:04
А кто-нибудь в курсе, можно ли, чтоб эта компонента выводила вместе со штрихкодом и соответствующий ему числовой код.
Если я в параметры добавляю  
ПараметрыШтрихкода.ОтображатьТекст = Истина;
то выводятся большие пиксельные цифры без самого штрих-кода. Там в компоненте по умолчанию размер шрифта 12.
А если пытаюсь передать другой размер шрифта к примеру
ПараметрыШтрихкода.РазмерШрифта   = 10;
То выпадает ошибка
Ошибка при установке значения атрибута контекста (РазмерШрифта)
    ВнешняяКомпонента.РазмерШрифта = ПараметрыШтрихкода.РазмерШрифта;


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