Доброго времени суток! Делаю внешний отчет, в макет которого добавляю Таблицы -> Рисунки -> Вставить объект -> Элемент управления -> ActiveBarcode. Сразу оговорюсь что в 1С 7.7 данный компонент работает стабильно и уже на протяжении долгого времени, все печатается, все формируется. Нужно использовать тип штрихкода Code128 (40 символов). В настройках он есть и все четко устанавливается. Но весь вопрос в том, что программно не получается задать его значение. Ну и, собственно говоря, он не отображается при запуске и формировании отчета.
Вот часть кода:
Может кто сталкивался или есть пример использования, буду признателен. Спасибо!
Вот часть кода:
Штрихкод = "010000001234560000000020160823000000000";
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьСтрока.Рисунки.Штрихкод.Объект.ТипКода = 2;
ОбластьСтрока.Рисунки.Штрихкод.Объект.Сообщение = ?(ПустаяСтрока(""),Штрихкод,"");
ОбластьСтрока.Рисунки.Штрихкод.Объект.ТекстКода = Штрихкод;
ТабДок.Вывести(ОбластьСтрока);
Может кто сталкивался или есть пример использования, буду признателен. Спасибо!
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) va_79, в новых конфигурациях уже не используется эта штука. Теперь в макет вставляется рисунок, а штрихкод формируется внешней компонентой (пример из бухни, в ШК шифруется ссылка на док):
Пример ТОРГ-12 со штрихкодом для бухни с этой реализацией:
ВК = ПодключитьВнешнююКомпонентуПечатиШтрихкода();
Картинка = ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
ОбластьШК.Рисунки.ШтрихкодРис.Картинка = Картинка;
Функция ПодключитьВнешнююКомпонентуПечатиШтрихкода()
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
// Создадим объект внешней компоненты.
Если ПодключениеВыполнено Тогда
ВнешняяКомпонента = Новый("AddIn.КартинкаШтрихкода.Barcode");
Иначе
Возврат Неопределено;
КонецЕсли;
// Если нет возможности рисовать.
Если НЕ ВнешняяКомпонента.ГрафикаУстановлена Тогда
// То картинку сформировать не сможем.
Возврат Неопределено;
Иначе
// Установим основные параметры компоненты.
// Если в системе установлен шрифт Tahoma.
Если ВнешняяКомпонента.НайтиШрифт("Tahoma") Тогда
// Выбираем его как шрифт для формирования картинки.
ВнешняяКомпонента.Шрифт = "Tahoma";
Иначе
// Шрифт Tahoma в системе отсутствует.
// Обойдем все доступные компоненте шрифты.
Для Сч = 0 По ВнешняяКомпонента.КоличествоШрифтов -1 Цикл
// Получим очередной шрифт, доступный компоненте.
ТекущийШрифт = ВнешняяКомпонента.ШрифтПоИндексу(Сч);
// Если шрифт доступен
Если ТекущийШрифт <> Неопределено Тогда
// Они и будет шрифтом для формирования штрихкода.
ВнешняяКомпонента.Шрифт = ТекущийШрифт;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
// Установим размер шрифта
ВнешняяКомпонента.РазмерШрифта = 12;
Возврат ВнешняяКомпонента;
КонецЕсли;
КонецФункции
Функция ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода) Экспорт
ВнешняяКомпонента = МенеджерОборудованияСерверПовтИсп.ПодключитьВнешнююКомпонентуПечатиШтрихкода();
Если ВнешняяКомпонента = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Ошибка подключения внешней компоненты печати штрихкода!'");
КонецЕсли;
// Зададим размер картинки
ВнешняяКомпонента.Ширина = Окр(ПараметрыШтрихкода.Ширина);
ВнешняяКомпонента.Высота = Окр(ПараметрыШтрихкода.Высота);
ВнешняяКомпонента.АвтоТип = Ложь;
Если ПараметрыШтрихкода.ТипКода = 99 Тогда
ТипШтрихкодаВрем = ОпределитьТипШтрихкода(ПараметрыШтрихкода.Штрихкод);
Если ТипШтрихкодаВрем = "EAN8" Тогда
ВнешняяКомпонента.ТипКода = 0;
ИначеЕсли ТипШтрихкодаВрем = "EAN13" Тогда
ВнешняяКомпонента.ТипКода = 1;
// Если код содержит контрольный символ, обязательно указываем.
ВнешняяКомпонента.СодержитКС = СтрДлина(ПараметрыШтрихкода.Штрихкод) = 13;
ИначеЕсли ТипШтрихкодаВрем = "EAN128" Тогда
ВнешняяКомпонента.ТипКода = 2;
ИначеЕсли ТипШтрихкодаВрем = "CODE39" Тогда
ВнешняяКомпонента.ТипКода = 3;
ИначеЕсли ТипШтрихкодаВрем = "CODE128" Тогда
ВнешняяКомпонента.ТипКода = 4;
ИначеЕсли ТипШтрихкодаВрем = "ITF14" Тогда
ВнешняяКомпонента.ТипКода = 11;
Иначе
ВнешняяКомпонента.АвтоТип = Истина;
КонецЕсли;
Иначе
ВнешняяКомпонента.АвтоТип = Ложь;
ВнешняяКомпонента.ТипКода = ПараметрыШтрихкода.ТипКода;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("ПрозрачныйФон") Тогда
ВнешняяКомпонента.ПрозрачныйФон = ПараметрыШтрихкода.ПрозрачныйФон;
КонецЕсли;
ВнешняяКомпонента.ОтображатьТекст = ПараметрыШтрихкода.ОтображатьТекст;
// Формируем картинку штрихкода.
ВнешняяКомпонента.ЗначениеКода = ПараметрыШтрихкода.Штрихкод;
Если ПараметрыШтрихкода.Свойство("УголПоворота") Тогда
ВнешняяКомпонента.УголПоворота = ПараметрыШтрихкода.УголПоворота;
Иначе
ВнешняяКомпонента.УголПоворота = 0;
КонецЕсли;
// Если установленная нами ширина меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда
ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода;
КонецЕсли;
// Если установленная нами высота меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Тогда
ВнешняяКомпонента.Высота = ВнешняяКомпонента.МинимальнаяВысотаКода;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("РазмерШрифта") И (ПараметрыШтрихкода.РазмерШрифта > 0)
И (ПараметрыШтрихкода.ОтображатьТекст) И (ВнешняяКомпонента.РазмерШрифта <> ПараметрыШтрихкода.РазмерШрифта) Тогда
ВнешняяКомпонента.РазмерШрифта = ПараметрыШтрихкода.РазмерШрифта;
КонецЕсли;
// Сформируем картинку
ДвоичныеДанныеКартинки = ВнешняяКомпонента.ПолучитьШтрихкод();
// Если картинка сформировалась.
Если ДвоичныеДанныеКартинки <> Неопределено Тогда
// Формируем из двоичных данных.
Возврат Новый Картинка(ДвоичныеДанныеКартинки);
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ПодключитьВнешнююКомпонентуПечатиШтрихкода() Экспорт
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
// Создадим объект внешней компоненты.
Если ПодключениеВыполнено Тогда
ВнешняяКомпонента = Новый("AddIn.КартинкаШтрихкода.Barcode");
Иначе
Возврат Неопределено;
КонецЕсли;
// Если нет возможности рисовать.
Если НЕ ВнешняяКомпонента.ГрафикаУстановлена Тогда
// То картинку сформировать не сможем.
Возврат Неопределено;
Иначе
// Установим основные параметры компоненты.
// Если в системе установлен шрифт Tahoma.
Если ВнешняяКомпонента.НайтиШрифт("Tahoma") Тогда
// Выбираем его как шрифт для формирования картинки.
ВнешняяКомпонента.Шрифт = "Tahoma";
Иначе
// Шрифт Tahoma в системе отсутствует.
// Обойдем все доступные компоненте шрифты.
Для Сч = 0 По ВнешняяКомпонента.КоличествоШрифтов -1 Цикл
// Получим очередной шрифт, доступный компоненте.
ТекущийШрифт = ВнешняяКомпонента.ШрифтПоИндексу(Сч);
// Если шрифт доступен
Если ТекущийШрифт <> Неопределено Тогда
// Они и будет шрифтом для формирования штрихкода.
ВнешняяКомпонента.Шрифт = ТекущийШрифт;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
// Установим размер шрифта
ВнешняяКомпонента.РазмерШрифта = 12;
Возврат ВнешняяКомпонента;
КонецЕсли;
КонецФункции
ПоказатьПример ТОРГ-12 со штрихкодом для бухни с этой реализацией:
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот