Столкнулся с тем, что на последних платформах перестали печататься ШК по старой технологии.
Раньше мы вставляли в макет объект ActivX
давали ему имя Штрихкод и тексте прописывали
ОбластьМакета.Рисунки.Штрихкод.Объект.ТипКода = 1;
ОбластьМакета.Рисунки.Штрихкод.Объект.отображатьТекст=истина;
ОбластьМакета.Рисунки.Штрихкод.Объект.УстановитьШрифт(,2);
ОбластьМакета.Рисунки.Штрихкод.Объект.Сообщение = Штрихкод;
ОбластьМакета.Рисунки.Штрихкод.Объект.ТекстКода = Штрихкод;
ТабДокумент.Вывести(ОбластьМакета);
Платформы старше 8.3.12.1313 перестали это поддерживать и старые обработки и отчеты вылетают по ошибке.
Теперь что бы поправить печатные формы надо подключить внешнюю компоненту положить в макет Картинку (можно взять любую из стандартных) растянуть ее до нужных размеров и программным способом заменить ее на то что вернет подключенная внешняя компонента 1CBarcodWin32_9_0_4_7.dll или 1CBarcodWin64_9_0_4_7.dll .
Для управляемых форм:
ШК="000000000025768";
о=РеквизитФормыВЗначение("Объект");
ВК=о.ПодключитьВнешнююКомпонентуПечатиШтрихкода();
табдок=Новый ТабличныйДокумент;
макет=о.ПолучитьМакет("Макет");
Ш=макет.ПолучитьОбласть("Шапка");
//Эталон = ПолучитьМакет("Эталон");
//КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100; //0.26454
КоличествоМиллиметровВПикселе = 0.26454; //Можно указывать напрямую без Эталон = ПолучитьМакет("Эталон"); и КоличествоМиллиметровВПикселе = Эталон.Рисунки.....
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Ширина", Окр(Ш.Рисунки.Штрихкод.Ширина / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Высота", Окр(Ш.Рисунки.Штрихкод.Высота / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Штрихкод", ШК);//СокрЛП(ЧисловойКодПоСсылке(Ссылка)));
ПараметрыШтрихкода.Вставить("ОтображатьТекст", истина);
ПараметрыШтрихкода.Вставить("РазмерШрифта", 6);
Ш.Рисунки.Штрихкод.Картинка = о.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода,ВК);
табдок.Вывести(Ш);
Возврат табдок;
Для обычных форм:
ШК="000000000025768";
ВК=ПодключитьВнешнююКомпонентуПечатиШтрихкода();
табдок=Новый ТабличныйДокумент;
макет=ПолучитьМакет("Макет");
Ш=макет.ПолучитьОбласть("Шапка");
Эталон = ПолучитьМакет("Эталон");
КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100; //0.26454
//КоличествоМиллиметровВПикселе = 0.26454; //Можно указывать напрямую без Эталон = ПолучитьМакет("Эталон"); и КоличествоМиллиметровВПикселе = Эталон.Рисунки.....
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Ширина", Окр(Ш.Рисунки.Штрихкод.Ширина / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Высота", Окр(Ш.Рисунки.Штрихкод.Высота / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Штрихкод", ШК);//СокрЛП(ЧисловойКодПоСсылке(Ссылка)));
ПараметрыШтрихкода.Вставить("ОтображатьТекст", истина);
ПараметрыШтрихкода.Вставить("РазмерШрифта", 6);
Ш.Рисунки.Штрихкод.Картинка = ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода,ВК);
табдок.Вывести(Ш);
табдок.Показать();
К публикации прикреплена обработка, которая реализует печать ШК для УФ и Обычных форм. В Макетах содержаться компоненты для windows 32 и 64. Если ваша конфигурация снята с поддержки, то встраиваем внешнюю обработку в конфигурацию, немного изменяем код. Публикация для программистов! Это всего лишь болванка для реализации ваших потребностей!
Хоть от конфигурации и не зависит напишу что проверялось на платформе 1С:Предприятие 8.3 (8.3.15.1700)
Бухгалтерия предприятия, редакция 3.0 (3.0.73.54)
Управление торговлей, редакция 10.3 (103.5)
Управление торговлей, редакция 11 (11.4.9.91)
и на пустой конфигурации.
многие (в том числе и я) делали подобный финт еще в лет 7-8 назад, когда перетаскивали в УТ 10.3 компоненты печати штрихкодов, сделанные по технологии Native API из УТ 11.
а я только добрался и не нашел готового решения в инете. поэтому и поделился своим опытом