В какой момент лучше инициализироать внешнюю компоненту?
Всем добра. У меня на внешней печатной форме печатается картинка штрихкода. Генерится картинка через внешнюю компоненту 1С Печать штрихкодов.
Я пока каждый раз при печати делаю инициализацию компоненты. Талонов печати печатается в день до 800 штук.
Хотелось бы уточнить как првильнее и где лучше инициировать внешнюю компоненту для уменьшения накладных расходов по части производительности.
Я пока каждый раз при печати делаю инициализацию компоненты. Талонов печати печатается в день до 800 штук.
Хотелось бы уточнить как првильнее и где лучше инициировать внешнюю компоненту для уменьшения накладных расходов по части производительности.
Найденные решения
(8) теперь посмотрите есть общий модуль ГенерацияШтрихкода и в нем метод ИзображениеШтрихкода.
Если есть, то замените нижнюю половину кода на приведенную мной.
Если есть, то замените нижнюю половину кода на приведенную мной.
Если ОбластьШапка.Области.Найти("КартинкаШтрихкода") <> Неопределено Тогда
ОбластьШтрихкода = ОбластьШапка.Область("КартинкаШтрихкода");
ОбластьШтрихкода.РазмерКартинки = РазмерКартинки.РеальныйРазмер;
ОбластьШтрихкода.Высота = 15;
ПараметрыГенерацииШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыГенерацииШтрихкода.Высота = 45;
ПараметрыГенерацииШтрихкода.Ширина = 210;
ПараметрыГенерацииШтрихкода.ТипКода = 1; //EAN 13
ПараметрыГенерацииШтрихкода.Штрихкод = Прав("0000000000" + СтрЗаменить(Число(ДанныеПечати.Номер), Символы.НПП, ""), 12); // номер преврашаем в штрихкод
РезультатГенерацииШтрихкода = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
КартинкаШК = РезультатГенерацииШтрихкода.Картинка;
ОбластьШтрихкода.Картинка = КартинкаШК;
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В типовых компонента инициализируется при печати .
Но в теории можно сохранить внешнюю компоненту в переменную (В открытой форме) и генерировать новые штрихкоды...
Так же можно использовать методы БСП, если конфа типовая
Но в теории можно сохранить внешнюю компоненту в переменную (В открытой форме) и генерировать новые штрихкоды...
(3) теперь вопрос: как инициируете и зачем?
Все же просто.
Формируете структура с параметрами для штрихкода.
Передаете эти параметры в метод:
В РезультатГенерацииШтрихкода.Картинка будет уже сформированная картинка штрихкода.
А внутри вызываемого метода идет вызов метода инициализации через общий модуль с Повторное использование возвращаемых значений На время сеанса. Т.е. инициализация будет не постоянно.
Все же просто.
Формируете структура с параметрами для штрихкода.
Передаете эти параметры в метод:
РезультатГенерацииШтрихкода = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
В РезультатГенерацииШтрихкода.Картинка будет уже сформированная картинка штрихкода.
А внутри вызываемого метода идет вызов метода инициализации через общий модуль с Повторное использование возвращаемых значений На время сеанса. Т.е. инициализация будет не постоянно.
(7)вот кусок кода который генерит ШК из фунгкции Печать() внешней печатной формы.
Если ОбластьШапка.Области.Найти("КартинкаШтрихкода") <> Неопределено Тогда
ОбластьШтрихкода = ОбластьШапка.Область("КартинкаШтрихкода");
ОбластьШтрихкода.РазмерКартинки = РазмерКартинки.РеальныйРазмер;
ОбластьШтрихкода.Высота = 15;
ПараметрыГенерацииШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыГенерацииШтрихкода.Высота = 45;
ПараметрыГенерацииШтрихкода.Ширина = 210;
ПараметрыГенерацииШтрихкода.ТипКода = 1; //EAN 13
ПараметрыГенерацииШтрихкода.Штрихкод = Прав("0000000000" + СтрЗаменить(Число(ДанныеПечати.Номер), Символы.НПП, ""), 12); // номер преврашаем в штрихкод
СистемнаяИнформация = Новый СистемнаяИнформация;
//Внешняя компонрента для генерации ШК, по хорошему надо перенсти ее инициализацию в модуль сеанса
//и каждый раз вызывать уже инициализированную
ВнешняяКомпонента = ГенерацияШтрихкодаСерверПовтИсп.ПодключитьКомпонентуГенерацииИзображенияШтрихкода(Строка(СистемнаяИнформация.ТипПлатформы));
Если ВнешняяКомпонента = Неопределено Тогда
ТекстСообщения = НСтр("ru = 'Ошибка подключения внешней компоненты печати штрихкода.'");
ЗаписьЖурналаРегистрации(ТекстСообщения,
ОбщегоНазначения.КодОсновногоЯзыка(),
УровеньЖурналаРегистрации.Ошибка,,,
ТекстСообщения);
ВызватьИсключение ТекстСообщения;
КонецЕсли;
КартинкаШК = Штрихкодирование.ПолучитьКартинкуШтрихкода(ВнешняяКомпонента, ПараметрыГенерацииШтрихкода);
ОбластьШтрихкода.Картинка = КартинкаШК;
КонецЕсли;
Показать
(8) теперь посмотрите есть общий модуль ГенерацияШтрихкода и в нем метод ИзображениеШтрихкода.
Если есть, то замените нижнюю половину кода на приведенную мной.
Если есть, то замените нижнюю половину кода на приведенную мной.
Если ОбластьШапка.Области.Найти("КартинкаШтрихкода") <> Неопределено Тогда
ОбластьШтрихкода = ОбластьШапка.Область("КартинкаШтрихкода");
ОбластьШтрихкода.РазмерКартинки = РазмерКартинки.РеальныйРазмер;
ОбластьШтрихкода.Высота = 15;
ПараметрыГенерацииШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыГенерацииШтрихкода.Высота = 45;
ПараметрыГенерацииШтрихкода.Ширина = 210;
ПараметрыГенерацииШтрихкода.ТипКода = 1; //EAN 13
ПараметрыГенерацииШтрихкода.Штрихкод = Прав("0000000000" + СтрЗаменить(Число(ДанныеПечати.Номер), Символы.НПП, ""), 12); // номер преврашаем в штрихкод
РезультатГенерацииШтрихкода = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
КартинкаШК = РезультатГенерацииШтрихкода.Картинка;
ОбластьШтрихкода.Картинка = КартинкаШК;
КонецЕсли;
Показать
(11) да вижу, есть такое.,
Спасибо, за помощь.
Функция ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
ТипПлатформыКомпоненты = Строка(СистемнаяИнформация.ТипПлатформы);
ВнешняяКомпонента = ГенерацияШтрихкодаСерверПовтИсп.ПодключитьКомпонентуГенерацииИзображенияШтрихкода(ТипПлатформыКомпоненты);
Если ВнешняяКомпонента = Неопределено Тогда
ТекстСообщения = НСтр("ru = 'Ошибка подключения внешней компоненты печати штрихкода.'", ОбщегоНазначения.КодОсновногоЯзыка());
#Если НЕ МобильноеПриложениеСервер Тогда
ЗаписьЖурналаРегистрации(НСтр("ru = 'Ошибка генерации штрихкода'",
ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,,
ТекстСообщения);
#КонецЕсли
ВызватьИсключение ТекстСообщения;
КонецЕсли;
Возврат ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода);
КонецФункции
ПоказатьСпасибо, за помощь.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот