1С 8.2 Печать штрихкодов
Компоненты печати штрихкодов можно найти в демонстрационной конфигурации “Управляемое приложение”. Там же находится пример печати штрихкодов. Загрузить конфигурацию можно здесь при наличии доступа или здесь.
Одна из компонент печати штрихкодов – для платформы windows 32, прикреплена к данной статье в формате 7z (это архив, извлекается winrar-ом).
Рассмотрим пример процедуры печати штрихкодов для случая, когда у нас имеются компоненты для различных платформ:
// Формирование изображения штрихкода для указанного объекта
//
// Параметры:
// Нет
//
// Возвращаемое значение:
// Картинка – Картинка со сформированным штрихкодом ИЛИ НЕОПРЕДЕЛЕНО
Функция ПолучитьКартинкуШтрихкода(ШтрихКод, ТипКода=Неопределено) Экспорт
// В зависимости от типа платформы подключим соответствующую внешнюю компоненту
ИнформацияОСистеме = Новый СистемнаяИнформация;
Если ИнформацияОСистеме.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда
ПодключитьВнешнююКомпоненту(“ОбщийМакет.КомпонентаПечатиШтрихкодовWindows32”, “КартинкаШтрихкода”, ТипВнешнейКомпоненты.Native);
ИначеЕсли ИнформацияОСистеме.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
ПодключитьВнешнююКомпоненту(“ОбщийМакет.КомпонентаПечатиШтрихкодовWindows64”, “КартинкаШтрихкода”, ТипВнешнейКомпоненты.Native);
ИначеЕсли ИнформацияОСистеме.ТипПлатформы = ТипПлатформы.Linux_x86 Тогда
ПодключитьВнешнююКомпоненту(“ОбщийМакет.КомпонентаПечатиШтрихкодовLinux32”, “КартинкаШтрихкода”, ТипВнешнейКомпоненты.Native);
Иначе
ПодключитьВнешнююКомпоненту(“ОбщийМакет.КомпонентаПечатиШтрихкодовLinux64”, “КартинкаШтрихкода”, ТипВнешнейКомпоненты.Native);
КонецЕсли;
// Создадим объект внешней компоненты
Компонент = Новый(“AddIn.КартинкаШтрихкода.Barcode”);
// Если нет возможности рисовать
Если НЕ Компонент.ГрафикаУстановлена Тогда
// То картинку сформировать не сможем
Возврат Неопределено;
КонецЕсли;
// Если в системе установлен шрифт Tahoma
Если Компонент.НайтиШрифт(“Tahoma”) = Истина Тогда
// Выбираем его как шрифт для формирования картинки
Компонент.Шрифт = “Tahoma”;
Иначе
// Шрифт Tahoma в системе отсутствует
// Обойдем все доступные компоненте шрифты
Для Сч = 0 По Компонент.КоличествоШрифтов -1 Цикл
// Получим очередной шрифт, доступный компоненте
ТекущийШрифт = Компонент.ШрифтПоИндексу(Сч);
// Если шрифт доступен
Если ТекущийШрифт <> Неопределено Тогда
// Они и будет шрифтом для формирования штрихкода
Компонент.Шрифт = ТекущийШрифт;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
// Установим размер шрифта
Компонент.РазмерШрифта = 12;
// Зададим размер картинки
Компонент.Ширина = 100;
Компонент.Высота = 90;
Если ТипКода = Неопределено Тогда
// Разрешим компоненте самой определять тип кода
Компонент.АвтоТип = Истина;
// ИЛИ установим код EAN-13
// Компонент.ТипКода = 1;
//
// Тип смотрим в документации на внешнюю компоненту
Иначе
Компонент.ТипКода = ТипКода;
КонецЕсли;
// Если код содержит контрольный символ, обязательно указываем
Компонент.СодержитКС = СтрДлина(Штрихкод) = 13;
// Если отображать контрольный символ не нужно
// Компонент.ВидимостьКС = Ложь;
// Формируем картинку штрихкода
Компонент.ЗначениеКода = Штрихкод;
// Если установленная нами ширина меньше минимально допустимой для этого штрихкода
Если Компонент.Ширина < Компонент.МинимальнаяШиринаКода Тогда
// Скорректируем ширину
Компонент.Ширина = Компонент.МинимальнаяШиринаКода + 10;
КонецЕсли;
// Сформируем картинку
ДвоичныеДанныеКартинки = Компонент.ПолучитьШтрихкод();
// Если картинка сформировалась
Если НЕ ДвоичныеДанныеКартинки = Неопределено Тогда
// Формируем из двоичных данных
Возврат Новый Картинка(ДвоичныеДанныеКартинки);
КонецЕсли;
Возврат Неопределено;
КонецФункции
Данная функция возвращает картинку, которую можно выводить в табличный документ печатной формы необходимого объекта.
Свойства объекта Компонента можно посмотреть на картинке:
Удачи в работе!
С.С.С.