1С: размещение штрихкода в макете
Задача: в одной из конфигураций необходима вывести на печать штрихкод.
Решение:
В БСП этой конфигурации (3.1.5) поддержка печати есть, но «зашита намертво», т.е. без особых настроек. Чуть больше настроек можно получить если вынести функцию ПолучитьКартинкуШтрихкода в отдельный модуль.
В макете разместим картинку, назовем её например ШтрихКод1. Далее в конфигурацию необходимо добавить код:
&НаСервере
Функция ПолучитьКартинкуШтрихкода(Код, ТипКода = 1, ВысотаВМиллиметрах, ВставлятьЦифры) Экспорт
ИнформацияОСистеме = Новый СистемнаяИнформация;
ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
// Создадим объект внешней компоненты
Компонент = Новый("AddIn.КартинкаШтрихкода.Barcode");
// Если нет возможности рисовать
Если НЕ Компонент.ГрафикаУстановлена Тогда
// То картинку сформировать не сможем
ТекстСообщения = НСтр("ru = 'Не удалось установить компонент штрихкодирования.'");
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Штрихкодирование'"),
УровеньЖурналаРегистрации.Ошибка,
, ,
ТекстСообщения);
ВызватьИсключение(ТекстСообщения);
КонецЕсли;
Компонент.ОтображатьТекст = ВставлятьЦифры;
Компонент.ПоложениеТекста=1;
// Установим размер шрифта
Компонент.РазмерШрифта = 12;
//Компонент.ОриентацияТекста = 3;
// Зададим размер картинки
Если НЕ ЗначениеЗаполнено(ВысотаВМиллиметрах) Тогда
ВысотаВМиллиметрах = 10;
КонецЕсли;
Компонент.Высота = Число(Формат((ВысотаВМиллиметрах/35.3) * 100, "ЧДЦ=0"));
Компонент.АвтоТип = Ложь;
//EAN-13 по умолчанию
Компонент.ТипКода = ТипКода;
// Если код содержит контрольный символ, обязательно указываем
Компонент.СодержитКС = Истина;
// Формируем картинку штрихкода
Компонент.ЗначениеКода = Код;
Компонент.Ширина = Компонент.МинимальнаяШиринаКода + 5;
// Сформируем картинку
ДвоичныеДанныеКартинки = Компонент.ПолучитьШтрихкод();
// Если картинка сформировалась
Если НЕ ДвоичныеДанныеКартинки = Неопределено Тогда
// Формируем из двоичных данных
Картинка = Новый Картинка(ДвоичныеДанныеКартинки);
Возврат Картинка;
КонецЕсли;
ТекстСообщения = НСтр("ru = 'Неизвестная ошибка штрихкодирования. Необходимо обратиться к администратору.'");
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Штрихкодирование'"),
УровеньЖурналаРегистрации.Ошибка,
, ,
ТекстСообщения);
ВызватьИсключение(ТекстСообщения);
КонецФункции
Более подробно о параметрах компоненты:
| Название RU/EN | Тип | Чтение | Запись | Описание |
|---|---|---|---|---|
| Свойства, общие для всех типов штриховых кодов | ||||
| ТипКода (CodeType) | Число | + | + | Свойство содержит идентификатор типа штрихкода. Может принимать одно из следующих значений: 0 (тип кода — EAN8) 1 (тип кода — EAN13) 2 (тип кода — EAN128) 3 (тип кода — CODE39) 4 (тип кода — CODE128) 5 (тип кода — CODE16K) 6 (тип кода — PDF417) 7 (тип кода — Industrial2of5) 8 (тип кода — Interleaved2of5) 9 (тип кода — Code39FullASCII) 10 (тип кода — CODE93) 11 (тип кода — ITF14) 12 (тип кода — RSS14) 13 (тип кода — CodaBar) 14 (тип кода — EAN13 AddOn 2) 15 (тип кода — EAN13 AddOn 5) 16(тип кода — QR) 17(тип кода — GS1 databar extended stacked), [с версии 9.0.2.2], 18(тип кода DataMatrix ASCII), [с версии 9.0.2.2], 19(тип кода DataMatrix Base256), [с версии 9.0.2.2], 20(тип кода DataMatrix Text), [с версии 9.0.2.2], 21(тип кода DataMatrix C40), [с версии 9.0.2.2], 22(тип кода DataMatrix X12), [с версии 9.0.2.2], 23(тип кода DataMatrix Edifact)[с версии 9.0.2.2], 24(тип кода GS1 Datamatrix) [с версии 9.0.6.4] |
| АвтоТип (CodeAuto, AutoType) | Булево | + | + | Свойство определяет признак автоматического определения ТипаКода в зависимости от значения переданных в свойствах ЗначениеКода и ТипВходныхДанных. Когда значение свойства принимает значение «Истина» ТипКода определяется автоматически. |
| ЗначениеКода (CodeValue)) | Строка | + | + | Строка или Base64 Строка (см. свойство ТипВходныхДанных) содержащая данные генерируемого ШК |
| ТекстКода (CodeText) | Строка | + | — | Свойство содержит подпись штрихкода |
| ОтображатьТекст (TextVisible) | Булево | + | + | Свойство указывает необходимость отображать подпись штрихкода на сгенерированном изображении |
| Шрифт (Font) | Шрифт | + | + | Свойство содержит шрифт, используемый при отображении подписи штрихкода |
| РазмерШрифта (FontSize) | Число | + | + | Свойство содержит размер шрифта в пикселах |
| КоличествоШрифтов(FontCount) | Число | + | — | Свойство содержит количество шрифтов установленных в системе, которые может использовать компонент. |
| Разделители (CodeSentinel) | Число | + | + | Свойство содержит высоту полос-разделителей (только в EAN8 и EAN13) в процентах от высоты текста |
| Шрифт (Font) | Шрифт | + | + | Свойство содержит шрифт, используемый при отображении строки на поверхности штрихкода (свойство имеет смысл только в том случае, когда предусмотрен вывод данной строки). |
| РазмерШрифта (FontSize) | Число | + | + | Свойство содержит размер шрифта в пикселях |
| КоличествоШрифтов(FontCount) | Число | + | — | Свойство содержит количество шрифтов установленных в системе, которые может использовать компонента. |
| ПоложениеТекста (TextPosition) | Число | + | + | Свойство задаёт положение подписи. Свойство принимать следующие значения: 0 (снизу) 1 (сверху) |
| ПрозрачныйФон (BgTransparent) | Булево | + | + | Свойство содержит признак использования прозрачного фона |
| УголПоворота (CanvasRotation) | Число | + | + | Свойство содержит угол поворота (в градусах) штрихкода на сгенерированном изображении. Может принимать следующие значения: 0 90 180 270 |
| УголПоворота (CanvasRotation) | Число | + | + | Свойство содержит угол поворота (в градусах) штрихкода. Может принимать следующие значения: 0 90 180 270 |
| ВертикальноеВыравниваниеКода(BarVerticalAlign, CodeVerticalAlign) | Число | + | + | Свойство задает способ вертикального выравнивания штрихкода на сгенерированном изображении. Свойство может принимать следующие значения: 1 (по верхнему краю) 2 (по центру) 3 (по нижнему краю) |
| ТипВходныхДанных (InputDataType) | Число | + | + | Отмечает тип входных данных, которые задаются в свойстве ЗначениеКода. Свойство может принимать следующие значения 0 –Строка 1 – Base64 строка |
| Результат (Result) | Число | + | — | Возвращает результат генерации изображения ШК 0 – успешная генерация 1 – ошибка |
| УбратьЛишнийФон (RemoveExeedBackgroud, RemoveExtraBackgroud) | Булево | + | + | Указывает генератору, что требуется убрать лишний фон по краям ШК. В этом случае сгенерированное изображение ШК может быть меньше, чем указанные в свойствах Ширина и Высота. Изображение штрихкода будет совпадать с максимальным размером ШК, который можно вписать в указанные Ширину и Высоту |
| Ширина (Width) | Число | + | + | Свойство задает Ширину генерируемого изображения в пикселах |
| Высота (Height) | Число | + | + | Свойство задает Высоту генерируемого изображения в пикселах |
| УровеньКоррекции (ECL) | Строка | + | + | Свойство задаёт уровень коррекции ошибок. Актуально для PDF417. |
| МинимальнаяВысота (CodeMinHeight) | Число | + | — | Свойство содержит минимально возможную высоту области, на которой может быть отображён данный штрихкод |
| МинимальнаяШирина (CodeMinWidth) | Число | + | — | Свойство содержит минимально возможную ширину области, на которой может быть отображён штрихкод с заданными параметрами |
| Линейные (ld) штрихкоды | ||||
| СодержитКС (CodeIsRaw, CodeHasCS) | Булево | + | + | Данное свойство содержит признак того, что переданное сообщение содержит контрольный символ |
| ВидимостьКС (CodeShowCS) | Булево | + | + | В случае, когда данное свойство принимает значение «Истина», контрольный символ будет включён в строку подписи |
| КонтрольныйСимвол (CodeCheckSymbol) | Строка | + | — | Свойство содержит контрольный символ, если тип штрихкода предполагает его использование |
| PDF417 | ||||
| КоличествоСтолбцов (ColumnCount) | Число | + | + | Свойство задаёт количество столбцов штрихкода. Актуально для PDF417 |
| КоличествоСтрок (RowCount) | Число | + | + | Свойство задаёт количество строк штрихкода. Актуально для PDF417 |
| Пропорции (AspectRatio) | Строка | + | + | Свойство задаёт соотношение высоты: ширины модулей штрихкода. Актуально для PDF417 |
| УровеньКоррекции (ECL) | Строка | + | + | Свойство задаёт уровень коррекции ошибок. Актуально для PDF417 |
| QR | ||||
| УровеньКоррекцииQR(QRErrorCorrectionLevel) | Число | + | + | Свойство содержит значение уровня коррекции QR-кода. Может принимать одно из следующих значений: 0 — L 1 — M 2 — Q 3 – H |
| ЛоготипКартинка(LogoImage) ЛоготипКартинкаBase64(LogoImageBase64) | Строка | + | — | Передает PNG картинку логотипа вписываемого в QR-код в виде Base64 строки |
| ЛоготипРазмерПроцентОтШК(LogoSizePercentFromBarcode) | Число | + | + | Отмечает процент заполнения логотипом изображения QR-кода |
| GS1 Databar extended stacked | ||||
| GS1DatabarКоличествоСтрок(GS1DatabarRowCount) | Число | + | + | Свойство содержит количество строк штрихкода GS1 Databar extended stacked |
| Устаревшие свойства* | ||||
| Разделители (CodeSentinel) | Число | + | + | Свойство содержит высоту полос-разделителей (только в EAN8 и EAN13) в процентах от высоты текста |
| ЦветТекста (TextColor | Цвет | + | + | Свойство содержит цвет, используемый при отображении строки на поверхности штрихкода (свойство имеет смысл только в том случае, когда предусмотрен вывод данной строки). |
| ЦветФона (BgColor) | Цвет | + | + | Свойство задаёт цвет заливки фона штрихкода. Имеет смысл только тогда, когда не используется прозрачный фон. |
| ЦветПолос (BarColor) | Цвет | + | + | Свойство содержит цвет, используемый для заливки полос на поверхности штрихкода |
| ГорСмещение (CanvasXOffset) | Число | + | + | (В настоящий момент не используется) Свойство содержит значение горизонтального смещения изображения штрихкода |
| ВертСмещение (CanvasYOffset) | Число | + | + | (В настоящий момент не используется) Свойство содержит значение вертикального смещения изображения штрихкода |
| РазмерКрая (CanvasMargin) | Число | + | + | (В настоящий момент не используется) Свойство задаёт ширину рамки вокруг изображения штрихкода |
| ВыравниваниеКода (BarAlign) | Число | + | + | (В настоящий момент не используется) Свойство задаёт способ автоматического расположения изображения штрихкода. Может принимать следующие значения: 0 (не использовать автоматическое выравнивание) 1 (по левому краю области) 2 (по центру) 3 (по правому краю области) |
| ОриентацияТекста (TextAlign) | Число | + | + | Свойство задаёт способ размещения подписи штрихкода. Свойство может принимать следующие значения: 0 (выравнивание текста по центру области) 1 (выравнивание текста по левому краю области) 2 (выравнивание текста по правому краю области) 3 (растянуть текст по ширине области) 4,5,6 (варианты расположения текста, обычно применяемые на штрихкодах типов EAN8 и EAN13) |
Далее собственно вывод штрихкода (пример):
ОбластьСтрока.Рисунки.ШтрихКод1.Картинка=ПолучитьКартинкуШтрихкода(н.ИдентификаторПочты,4,100,Истина);









