Версия для печати темы (https://pro1c.org.ua/index.php?s=aedcca7859da5897cbda71db7f7980e1&showtopic=9988)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ Формирование и печать ШтрихКодов

Автор: Yoja 29.11.12, 16:41

Добрый день!
1С:Підприємство 8.2 (8.2.16.368)
Управление небольшой фирмой для Украины, редакция 1.4

Делаю Внешнюю печатную форму Печати ШтрихКодов.
В конфигурации нашел функцию ПодключитьВнешнююКомпонентуПечатиШтрихкода
Сама внешняя компонента установлена, см. рисунок 1


Делаем вызов функции

     ....
     ВК = ПодключитьВнешнююКомпонентуПечатиШтрихкода();
     ....



Вылетает ошибка, см.рисунок 2. Как ее победить?


Рисунок 2



Рисунок 1

// Функция выполняет подключение внешней компоненты и ее первоначальную настройку.
           //
           // Параметры:
           //  Нет
           //
           // Возвращаемое значение:
           //  Картинка - Картинка со сформированным штрихкодом или НЕОПРЕДЕЛЕНО
           Функция ПодключитьВнешнююКомпонентуПечатиШтрихкода()
              
               // В зависимости от типа платформы подключим соответствующую внешнюю компоненту
               ПодключениеВыполнено = Неопределено;
               СистемнаяИнформация = Новый СистемнаяИнформация;
               Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда
                   ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("Обработка.ПечатьЭтикетокИЦенников.Макет.КомпонентаПечатиШтрихкодовWindows32", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
               ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
                   ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("Обработка.ПечатьЭтикетокИЦенников.Макет.КомпонентаПечатиШтрихкодовWindows64", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
               ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86 Тогда
                   ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("Обработка.ПечатьЭтикетокИЦенников.Макет.КомпонентаПечатиШтрихкодовLinux32", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
               Иначе
                   ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("Обработка.ПечатьЭтикетокИЦенников.Макет.КомпонентаПечатиШтрихкодовLinux64", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
               КонецЕсли;
              
               // Создадим объект внешней компоненты
               Если ПодключениеВыполнено Тогда
                   ВнешняяКомпонента = Новый("AddIn.КартинкаШтрихкода.Barcode");
               Иначе
                   Возврат Неопределено;
               КонецЕсли;
              
               // Если нет возможности рисовать
               Если НЕ ВнешняяКомпонента.ГрафикаУстановлена Тогда
                   // То картинку сформировать не сможем
                   Возврат Неопределено;
               Иначе
                  
                   // Установим основные параметры компоненты
                  
                   // Если в системе установлен шрифт Tahoma
                   Если ВнешняяКомпонента.НайтиШрифт("Tahoma") = Истина Тогда
                       // Выбираем его как шрифт для формирования картинки
                       ВнешняяКомпонента.Шрифт = "Tahoma";
                   Иначе
                      
                       // Шрифт Tahoma в системе отсутствует
                       // Обойдем все доступные компоненте шрифты
                       Для Сч = 0 По ВнешняяКомпонента.КоличествоШрифтов -1 Цикл
                           // Получим очередной шрифт, доступный компоненте
                           ТекущийШрифт = ВнешняяКомпонента.ШрифтПоИндексу(Сч);
                           // Если шрифт доступен
                           Если ТекущийШрифт <> Неопределено Тогда
                               // Они и будет шрифтом для формирования штри-кода
                               ВнешняяКомпонента.Шрифт = ТекущийШрифт;
                               Прервать;
                           КонецЕсли;
                       КонецЦикла;
                   КонецЕсли;
                  
                   // Утановим размер шрифта
                   ВнешняяКомпонента.РазмерШрифта = 12;
                  
                   Возврат ВнешняяКомпонента;
                  
               КонецЕсли;
              
           КонецФункции

Автор: logist 29.11.12, 19:08

Цитата(Yoja @ 29.11.12, 16:41) *
Делаем вызов функции

Раздел "Управляемое приложение", поэтому не мешало бы сказать - где делаете вызов. Возможно уточнив вы и найдете ответ на вопрос smile.gif

Автор: Yoja 29.11.12, 22:48

Да, думаю Вы правы!

Так как пишу внешнюю печатную форму, естественно вызов делаю в ней

Однако, хочу сразу добавить
Функцию ПодключитьВнешнююКомпонентуПечатиШтрихкода
и функцию ПолучитьКартинку добавил в саму ВПФ

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua