1С: размещение штрихкода в макете
Задача: в одной из конфигураций необходима вывести на печать штрихкод.
Решение:
В БСП этой конфигурации (3.1.5) поддержка печати есть, но «зашита намертво», т.е. без особых настроек. Чуть больше настроек можно получить если вынести функцию ПолучитьКартинкуШтрихкода в отдельный модуль.
В макете разместим картинку, назовем её например ШтрихКод1. Далее в конфигурацию необходимо добавить код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
&НаСервере Функция ПолучитьКартинкуШтрихкода(Код, ТипКода = 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 |
ОбластьСтрока.Рисунки.ШтрихКод1.Картинка=ПолучитьКартинкуШтрихкода(н.ИдентификаторПочты,4,100,Истина); |