Гельмер Александр

+79129291010 Telegram,WhatsApp,Viber ( helmer@ya.ru )

Публикация 000000026

Платформы младше 8.3.12.1313 использовали ActivX для печати ШтрихКода, сейчас технология изменилась. Эта обработка - замена старого механизма на новый.

Название Версия Размер Цена
   ВнешняяОбработкаВнешнее событие.epf      печать штрихкода управляемых форм для внешней обработки:      6kb     100.00 
   ПечатьЭтикетокИЦенников.epf      печать штрихкода для любой конфигурации и платформы 8.3:      2mb     100.00 


Платформы младше 8.3.12.1313 использовали ActivX для печати ШтрихКода, сейчас технология изменилась. Эта обработка - замена старого механизма на новый.

инфостарт



Столкнулся с тем, что на последних платформах перестали печататься ШК по старой технологии.

Раньше мы вставляли в макет объект ActivX



давали ему имя Штрихкод и тексте прописывали


Платформы старше 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)

и на пустой конфигурации.

Как читать ШК во внешней обработке:

Берем БП3 3.0 (3.0.75.104)



&НаКлиенте

Процедура ВнешнееСобытие(Источник, Событие, Данные)

//ставим точку останова на КонецПроцедуры

КонецПроцедуры


&НаКлиенте

Процедура ПриОткрытии(Отказ)

ПоддерживаемыеТипыВО = Новый Массив();

ПоддерживаемыеТипыВО.Добавить("СканерШтрихкода");

ОповещенияПриПодключении = Новый ОписаниеОповещения("ПодключитьОборудованиеЗавершение", ЭтотОбъект);

МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПоТипу(ОповещенияПриПодключении, УникальныйИдентификатор, ПоддерживаемыеТипыВО);

КонецПроцедуры


&НаКлиенте

Процедура ПодключитьОборудованиеЗавершение(РезультатВыполнения, Параметры) Экспорт

Если Не РезультатВыполнения.Результат Тогда

ТекстСообщения = НСтр( "ru = 'При подключении оборудования произошла ошибка:""%ОписаниеОшибки%"".'");

ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ОписаниеОшибки%" , РезультатВыполнения.ОписаниеОшибки);

Сообщить(ТекстСообщения);

Иначе

ТекстСообщения = НСтр("ru = 'Оборудование подключено.'" );

Сообщить(ТекстСообщения);

КонецЕсли;

КонецПроцедуры


&НаКлиенте

Процедура ПриЗакрытии(ЗавершениеРаботы)

ПоддерживаемыеТипыВО = Новый Массив();

ПоддерживаемыеТипыВО.Добавить("СканерШтрихкода");

ОповещенияПриПодключении = Новый ОписаниеОповещения("ОтключитьОборудованиеЗавершение", ЭтотОбъект);

МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПоТипу(ОповещенияПриПодключении, УникальныйИдентификатор, ПоддерживаемыеТипыВО);

КонецПроцедуры


&НаКлиенте

Процедура ОтключитьОборудованиеЗавершение(РезультатВыполнения, Параметры) Экспорт

Если Не РезультатВыполнения.Результат Тогда

ТекстСообщения = НСтр( "ru = 'При отключении оборудования произошла ошибка: ""%ОписаниеОшибки%"".'");

ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ОписаниеОшибки%" , РезультатВыполнения.ОписаниеОшибки);

Сообщить(ТекстСообщения);

Иначе

ТекстСообщения = НСтр("ru = 'Оборудование отключено.'" );

Сообщить(ТекстСообщения);

КонецЕсли;

КонецПроцедуры



---------------------------------------------

Публикация 000000026

Платформы младше 8.3.12.1313 использовали ActivX для печати ШтрихКода, сейчас технология изменилась. Эта обработка - замена старого механизма на новый.

Название Версия Размер Цена
   ВнешняяОбработкаВнешнее событие.epf      печать штрихкода управляемых форм для внешней обработки:      6kb     100.00 
   ПечатьЭтикетокИЦенников.epf      печать штрихкода для любой конфигурации и платформы 8.3:      2mb     100.00 


©AlexHelmer 2023