1С 8.3 БСП ИзображениеШтрихкода
Данные > 1С 8.3 БСП > Генерация штрих-кода
Перейти в раздел примеры кода 1С 8.3:
1С 8.3 БСП ИзображениеШтрихкода. Формирование изображения штрихкода.
Примера кода от rayastar
Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
// Автор библиотеки: ООО "1С-Софт". Все права защищены © 2021
// Типовая конфигурация Библиотека стандартных подсистем (далее - БСП)
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode
Метод БСП
// Формирование изображения штрихкода.
//
// Параметры:
// ПараметрыШтрихкода - см. ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода.
//
// Возвращаемое значение:
// Структура:
// Результат - Булево - результат генерации штрихкода.
// ДвоичныеДанные - ДвоичныеДанные - двоичные данные изображения штрихкода.
// Картинка - Картинка - картинка с сформированным штрихкодом или НЕОПРЕДЕЛЕНО.
//
Функция ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
ТипПлатформыКомпоненты = Строка(СистемнаяИнформация.ТипПлатформы);
ВнешняяКомпонента = ГенерацияШтрихкодаСерверПовтИсп.ПодключитьКомпонентуГенерацииИзображенияШтрихкода(ТипПлатформыКомпоненты);
Если ВнешняяКомпонента = Неопределено Тогда
ТекстСообщения = НСтр("ru = 'Ошибка подключения внешней компоненты печати штрихкода.'");
ЗаписьЖурналаРегистрации(НСтр("ru = 'Ошибка генерации штрихкода'",
ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,,
ТекстСообщения);
ВызватьИсключение ТекстСообщения;
КонецЕсли;
Возврат ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода);
КонецФункции
//
// Параметры:
// ПараметрыШтрихкода - см. ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода.
//
// Возвращаемое значение:
// Структура:
// Результат - Булево - результат генерации штрихкода.
// ДвоичныеДанные - ДвоичныеДанные - двоичные данные изображения штрихкода.
// Картинка - Картинка - картинка с сформированным штрихкодом или НЕОПРЕДЕЛЕНО.
//
Функция ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
ТипПлатформыКомпоненты = Строка(СистемнаяИнформация.ТипПлатформы);
ВнешняяКомпонента = ГенерацияШтрихкодаСерверПовтИсп.ПодключитьКомпонентуГенерацииИзображенияШтрихкода(ТипПлатформыКомпоненты);
Если ВнешняяКомпонента = Неопределено Тогда
ТекстСообщения = НСтр("ru = 'Ошибка подключения внешней компоненты печати штрихкода.'");
ЗаписьЖурналаРегистрации(НСтр("ru = 'Ошибка генерации штрихкода'",
ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,,
ТекстСообщения);
ВызватьИсключение ТекстСообщения;
КонецЕсли;
Возврат ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода);
КонецФункции
// Автор библиотеки: ООО "1С-Софт". Все права защищены © 2021
// Типовая конфигурация Библиотека стандартных подсистем (далее - БСП)
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode
Реализация метода БСП
// Отправляем структуру параметров в серверную функцию ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода)
// через экспортную функцию ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт
Функция ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода)
// Результат
РезультатОперации = Новый Структура();
РезультатОперации.Вставить("Результат", Ложь);
РезультатОперации.Вставить("ДвоичныеДанные");
РезультатОперации.Вставить("Картинка");
// Зададим размер формируемой картинки.
ШиринаШтрихкода = Окр(ПараметрыШтрихкода.Ширина);
ВысотаШтрихкода = Окр(ПараметрыШтрихкода.Высота);
Если ШиринаШтрихкода <= 0 Тогда
ШиринаШтрихкода = 1
КонецЕсли;
Если ВысотаШтрихкода <= 0 Тогда
ВысотаШтрихкода = 1
КонецЕсли;
ВнешняяКомпонента.Ширина = ШиринаШтрихкода;
ВнешняяКомпонента.Высота = ВысотаШтрихкода;
ВнешняяКомпонента.АвтоТип = Ложь;
ШтрихкодВрем = Строка(ПараметрыШтрихкода.Штрихкод); // Преобразуем явно в строку.
Если ПараметрыШтрихкода.ТипКода = 99 Тогда
ВнешняяКомпонента.АвтоТип = Истина;
Иначе
ВнешняяКомпонента.АвтоТип = Ложь;
ВнешняяКомпонента.ТипКода = ПараметрыШтрихкода.ТипКода;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("ПрозрачныйФон") Тогда
ВнешняяКомпонента.ПрозрачныйФон = ПараметрыШтрихкода.ПрозрачныйФон;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("ТипВходныхДанных") Тогда
ВнешняяКомпонента.ТипВходныхДанных = ПараметрыШтрихкода.ТипВходныхДанных;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("GS1DatabarКоличествоСтрок") Тогда
ВнешняяКомпонента.GS1DatabarКоличествоСтрок = ПараметрыШтрихкода.GS1DatabarКоличествоСтрок;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("УбратьЛишнийФон") Тогда
ВнешняяКомпонента.УбратьЛишнийФон = ПараметрыШтрихкода.УбратьЛишнийФон;
КонецЕсли;
ВнешняяКомпонента.ОтображатьТекст = ПараметрыШтрихкода.ОтображатьТекст;
// Формируем картинку штрихкода.
ВнешняяКомпонента.ЗначениеКода = ШтрихкодВрем;
// Угол поворота штрихкода.
ВнешняяКомпонента.УголПоворота = ?(ПараметрыШтрихкода.Свойство("УголПоворота"), ПараметрыШтрихкода.УголПоворота, 0);
// Уровень коррекции QR кода (L=0, M=1, Q=2, H=3).
ВнешняяКомпонента.УровеньКоррекцииQR =
// через экспортную функцию ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт
Функция ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода)
// Результат
РезультатОперации = Новый Структура();
РезультатОперации.Вставить("Результат", Ложь);
РезультатОперации.Вставить("ДвоичныеДанные");
РезультатОперации.Вставить("Картинка");
// Зададим размер формируемой картинки.
ШиринаШтрихкода = Окр(ПараметрыШтрихкода.Ширина);
ВысотаШтрихкода = Окр(ПараметрыШтрихкода.Высота);
Если ШиринаШтрихкода <= 0 Тогда
ШиринаШтрихкода = 1
КонецЕсли;
Если ВысотаШтрихкода <= 0 Тогда
ВысотаШтрихкода = 1
КонецЕсли;
ВнешняяКомпонента.Ширина = ШиринаШтрихкода;
ВнешняяКомпонента.Высота = ВысотаШтрихкода;
ВнешняяКомпонента.АвтоТип = Ложь;
ШтрихкодВрем = Строка(ПараметрыШтрихкода.Штрихкод); // Преобразуем явно в строку.
Если ПараметрыШтрихкода.ТипКода = 99 Тогда
ВнешняяКомпонента.АвтоТип = Истина;
Иначе
ВнешняяКомпонента.АвтоТип = Ложь;
ВнешняяКомпонента.ТипКода = ПараметрыШтрихкода.ТипКода;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("ПрозрачныйФон") Тогда
ВнешняяКомпонента.ПрозрачныйФон = ПараметрыШтрихкода.ПрозрачныйФон;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("ТипВходныхДанных") Тогда
ВнешняяКомпонента.ТипВходныхДанных = ПараметрыШтрихкода.ТипВходныхДанных;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("GS1DatabarКоличествоСтрок") Тогда
ВнешняяКомпонента.GS1DatabarКоличествоСтрок = ПараметрыШтрихкода.GS1DatabarКоличествоСтрок;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("УбратьЛишнийФон") Тогда
ВнешняяКомпонента.УбратьЛишнийФон = ПараметрыШтрихкода.УбратьЛишнийФон;
КонецЕсли;
ВнешняяКомпонента.ОтображатьТекст = ПараметрыШтрихкода.ОтображатьТекст;
// Формируем картинку штрихкода.
ВнешняяКомпонента.ЗначениеКода = ШтрихкодВрем;
// Угол поворота штрихкода.
ВнешняяКомпонента.УголПоворота = ?(ПараметрыШтрихкода.Свойство("УголПоворота"), ПараметрыШтрихкода.УголПоворота, 0);
// Уровень коррекции QR кода (L=0, M=1, Q=2, H=3).
ВнешняяКомпонента.УровеньКоррекцииQR =
?(ПараметрыШтрихкода.Свойство("УровеньКоррекцииQR"), ПараметрыШтрихкода.УровеньКоррекцииQR, 1);
// Для обеспечения совместимости с предыдущими версиями БПО.
Если Не ПараметрыШтрихкода.Свойство("Масштабировать")
Или (ПараметрыШтрихкода.Свойство("Масштабировать") И ПараметрыШтрихкода.Масштабировать) Тогда
Если Не ПараметрыШтрихкода.Свойство("СохранятьПропорции")
Или (ПараметрыШтрихкода.Свойство("СохранятьПропорции") И Не ПараметрыШтрихкода.СохранятьПропорции) Тогда
// Если установленная нами ширина меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда
ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода;
КонецЕсли;
// Если установленная нами высота меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Тогда
ВнешняяКомпонента.Высота = ВнешняяКомпонента.МинимальнаяВысотаКода;
КонецЕсли;
ИначеЕсли ПараметрыШтрихкода.Свойство("СохранятьПропорции") И ПараметрыШтрихкода.СохранятьПропорции Тогда
Пока ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода
Или ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Цикл
// Если установленная нами ширина меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда
ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода;
ВнешняяКомпонента.Высота = (ВнешняяКомпонента.МинимальнаяШиринаКода
// Для обеспечения совместимости с предыдущими версиями БПО.
Если Не ПараметрыШтрихкода.Свойство("Масштабировать")
Или (ПараметрыШтрихкода.Свойство("Масштабировать") И ПараметрыШтрихкода.Масштабировать) Тогда
Если Не ПараметрыШтрихкода.Свойство("СохранятьПропорции")
Или (ПараметрыШтрихкода.Свойство("СохранятьПропорции") И Не ПараметрыШтрихкода.СохранятьПропорции) Тогда
// Если установленная нами ширина меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда
ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода;
КонецЕсли;
// Если установленная нами высота меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Тогда
ВнешняяКомпонента.Высота = ВнешняяКомпонента.МинимальнаяВысотаКода;
КонецЕсли;
ИначеЕсли ПараметрыШтрихкода.Свойство("СохранятьПропорции") И ПараметрыШтрихкода.СохранятьПропорции Тогда
Пока ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода
Или ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Цикл
// Если установленная нами ширина меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда
ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода;
ВнешняяКомпонента.Высота = (ВнешняяКомпонента.МинимальнаяШиринаКода
/ Окр(ПараметрыШтрихкода.Ширина)) * Окр(ПараметрыШтрихкода.Высота);
КонецЕсли;
// Если установленная нами высота меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Тогда
ВнешняяКомпонента.Высота = ВнешняяКомпонента.МинимальнаяВысотаКода;
ВнешняяКомпонента.Ширина = (ВнешняяКомпонента.МинимальнаяВысотаКода /
КонецЕсли;
// Если установленная нами высота меньше минимально допустимой для этого штрихкода.
Если ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Тогда
ВнешняяКомпонента.Высота = ВнешняяКомпонента.МинимальнаяВысотаКода;
ВнешняяКомпонента.Ширина = (ВнешняяКомпонента.МинимальнаяВысотаКода /
Окр(ПараметрыШтрихкода.Высота)) * Окр(ПараметрыШтрихкода.Ширина);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
// ВертикальноеВыравниваниеКода: 1 - по верхнему краю, 2 - по центру, 3 - по нижнему краю.
Если ПараметрыШтрихкода.Свойство("ВертикальноеВыравнивание") И (ПараметрыШтрихкода.ВертикальноеВыравнивание > 0) Тогда
ВнешняяКомпонента.ВертикальноеВыравниваниеКода = ПараметрыШтрихкода.ВертикальноеВыравнивание;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("РазмерШрифта") И (ПараметрыШтрихкода.РазмерШрифта > 0)
И (ПараметрыШтрихкода.ОтображатьТекст) И (ВнешняяКомпонента.РазмерШрифта <> ПараметрыШтрихкода.РазмерШрифта) Тогда
ВнешняяКомпонента.РазмерШрифта = ПараметрыШтрихкода.РазмерШрифта;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("РазмерШрифта") И ПараметрыШтрихкода.РазмерШрифта > 0
И ПараметрыШтрихкода.Свойство("МонохромныйШрифт") Тогда
Если ПараметрыШтрихкода.МонохромныйШрифт Тогда
ВнешняяКомпонента.МаксимальныйРазмерШрифтаДляПринтеровНизкогоРазрешения = ПараметрыШтрихкода.РазмерШрифта + 1;
Иначе
ВнешняяКомпонента.МаксимальныйРазмерШрифтаДляПринтеровНизкогоРазрешения = -1;
КонецЕсли;
КонецЕсли;
Если ПараметрыШтрихкода.ТипКода = 16 Тогда // QR
Если ПараметрыШтрихкода.Свойство("ЛоготипКартинка") И Не ПустаяСтрока(ПараметрыШтрихкода.ЛоготипКартинка) Тогда
ВнешняяКомпонента.ЛоготипКартинка = ПараметрыШтрихкода.ЛоготипКартинка;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("ЛоготипРазмерПроцентОтШК") И
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
// ВертикальноеВыравниваниеКода: 1 - по верхнему краю, 2 - по центру, 3 - по нижнему краю.
Если ПараметрыШтрихкода.Свойство("ВертикальноеВыравнивание") И (ПараметрыШтрихкода.ВертикальноеВыравнивание > 0) Тогда
ВнешняяКомпонента.ВертикальноеВыравниваниеКода = ПараметрыШтрихкода.ВертикальноеВыравнивание;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("РазмерШрифта") И (ПараметрыШтрихкода.РазмерШрифта > 0)
И (ПараметрыШтрихкода.ОтображатьТекст) И (ВнешняяКомпонента.РазмерШрифта <> ПараметрыШтрихкода.РазмерШрифта) Тогда
ВнешняяКомпонента.РазмерШрифта = ПараметрыШтрихкода.РазмерШрифта;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("РазмерШрифта") И ПараметрыШтрихкода.РазмерШрифта > 0
И ПараметрыШтрихкода.Свойство("МонохромныйШрифт") Тогда
Если ПараметрыШтрихкода.МонохромныйШрифт Тогда
ВнешняяКомпонента.МаксимальныйРазмерШрифтаДляПринтеровНизкогоРазрешения = ПараметрыШтрихкода.РазмерШрифта + 1;
Иначе
ВнешняяКомпонента.МаксимальныйРазмерШрифтаДляПринтеровНизкогоРазрешения = -1;
КонецЕсли;
КонецЕсли;
Если ПараметрыШтрихкода.ТипКода = 16 Тогда // QR
Если ПараметрыШтрихкода.Свойство("ЛоготипКартинка") И Не ПустаяСтрока(ПараметрыШтрихкода.ЛоготипКартинка) Тогда
ВнешняяКомпонента.ЛоготипКартинка = ПараметрыШтрихкода.ЛоготипКартинка;
КонецЕсли;
Если ПараметрыШтрихкода.Свойство("ЛоготипРазмерПроцентОтШК") И
Не ПустаяСтрока(ПараметрыШтрихкода.ЛоготипРазмерПроцентОтШК) Тогда
ВнешняяКомпонента.ЛоготипРазмерПроцентОтШК = ПараметрыШтрихкода.ЛоготипРазмерПроцентОтШК;
КонецЕсли;
КонецЕсли;
// Сформируем картинку
ДвоичныеДанныеКартинки = ВнешняяКомпонента.ПолучитьШтрихкод();
РезультатОперации.Результат = ВнешняяКомпонента.Результат = 0;
// Если картинка сформировалась.
Если ДвоичныеДанныеКартинки <> Неопределено Тогда
РезультатОперации.ДвоичныеДанные = ДвоичныеДанныеКартинки;
РезультатОперации.Картинка = Новый Картинка(ДвоичныеДанныеКартинки); // Формируем из двоичных данных.
КонецЕсли;
Возврат РезультатОперации;
КонецФункции
// Данная функция возвращает структуру РезультатОперации следующего содержания
РезультатОперации = Новый Структура();
РезультатОперации.Вставить("Результат", Ложь); // сработало или нет
РезультатОперации.Вставить("ДвоичныеДанные"); // двоичные данные изображения штрихкода
РезультатОперации.Вставить("Картинка"); // картинка
// Внешняя компонента - основной объект для формирования "картинки" штрихкода,
// встроенный в ОбщийМакет.КомпонентаПечатиШтрихкодов конфигурации БСП.
// Получить его можно вот так:
СистемнаяИнформация = Новый СистемнаяИнформация;
ТипПлатформыКомпоненты = Строка(СистемнаяИнформация.ТипПлатформы);
ВнешняяКомпонента = ГенерацияШтрихкодаСерверПовтИсп.ПодключитьКомпонентуГенерацииИзображенияШтрихкода(ТипПлатформыКомпоненты);
ВнешняяКомпонента.ЛоготипРазмерПроцентОтШК = ПараметрыШтрихкода.ЛоготипРазмерПроцентОтШК;
КонецЕсли;
КонецЕсли;
// Сформируем картинку
ДвоичныеДанныеКартинки = ВнешняяКомпонента.ПолучитьШтрихкод();
РезультатОперации.Результат = ВнешняяКомпонента.Результат = 0;
// Если картинка сформировалась.
Если ДвоичныеДанныеКартинки <> Неопределено Тогда
РезультатОперации.ДвоичныеДанные = ДвоичныеДанныеКартинки;
РезультатОперации.Картинка = Новый Картинка(ДвоичныеДанныеКартинки); // Формируем из двоичных данных.
КонецЕсли;
Возврат РезультатОперации;
КонецФункции
// Данная функция возвращает структуру РезультатОперации следующего содержания
РезультатОперации = Новый Структура();
РезультатОперации.Вставить("Результат", Ложь); // сработало или нет
РезультатОперации.Вставить("ДвоичныеДанные"); // двоичные данные изображения штрихкода
РезультатОперации.Вставить("Картинка"); // картинка
// Внешняя компонента - основной объект для формирования "картинки" штрихкода,
// встроенный в ОбщийМакет.КомпонентаПечатиШтрихкодов конфигурации БСП.
// Получить его можно вот так:
СистемнаяИнформация = Новый СистемнаяИнформация;
ТипПлатформыКомпоненты = Строка(СистемнаяИнформация.ТипПлатформы);
ВнешняяКомпонента = ГенерацияШтрихкодаСерверПовтИсп.ПодключитьКомпонентуГенерацииИзображенияШтрихкода(ТипПлатформыКомпоненты);
Пример использования данного функционала от quazаrе
&НаКлиенте
Процедура Команда1(Команда)
СформироватьНаСервере();
КонецПроцедуры
&НаСервере
Процедура СформироватьНаСервере()
Результат.Очистить();
ВремОбъект = РеквизитФормыВЗначение("Объект");
Макет = ВремОбъект.ПолучитьМакет("Макет");
Область = Макет.ПолучитьОбласть("Строка |Колонка");
Рисунок = Область.Рисунки.ШтрихКод;
Эталон = ВремОбъект.ПолучитьМакет("МакетДляОпределенияКоэффициентовЕдиницИзмерения");
КоличествоМиллиметровВПикселеВысота = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;
КоличествоМиллиметровВПикселеШирина = Эталон.Рисунки.Квадрат100Пикселей.Ширина / 100;
ШиринаШтрихкода = Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселеШирина);
ВысотаШтрихкода = Окр(Рисунок.Высота / КоличествоМиллиметровВПикселеВысота);
ВходныеДанные = "(01)04600829201507(11)116109(30)2434";
Картинка = ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, ВходныеДанные, 24); // 24 - Datamatrix GS1ASCII
Рисунок.Картинка = Картинка;
Результат.Вывести(Область);
КонецПроцедуры
&НаСервере
Функция ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, ЗначШтрихкод, ЗначТипШтрихкода)
ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыШтрихкода.Ширина = ШиринаШтрихкода;
ПараметрыШтрихкода.Высота = ВысотаШтрихкода;
ПараметрыШтрихкода.ТипКода = ЗначТипШтрихкода;
ПараметрыШтрихкода.Штрихкод = ЗначШтрихкод;
ПараметрыШтрихкода.ПрозрачныйФон = Истина;
ПараметрыШтрихкода.УровеньКоррекцииQR = 2;
ПараметрыШтрихкода.ОтображатьТекст = Ложь;
ПараметрыШтрихкода.Масштабировать = Истина;
ПараметрыШтрихкода.СохранятьПропорции = Истина;
ПараметрыШтрихкода.ВертикальноеВыравнивание = 0;
ПараметрыШтрихкода.GS1DatabarКоличествоСтрок = 1;
ПараметрыШтрихкода.ТипВходныхДанных = 0;
РезультатШтрихкод = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
Возврат РезультатШтрихкод.Картинка;
КонецФункции
Процедура Команда1(Команда)
СформироватьНаСервере();
КонецПроцедуры
&НаСервере
Процедура СформироватьНаСервере()
Результат.Очистить();
ВремОбъект = РеквизитФормыВЗначение("Объект");
Макет = ВремОбъект.ПолучитьМакет("Макет");
Область = Макет.ПолучитьОбласть("Строка |Колонка");
Рисунок = Область.Рисунки.ШтрихКод;
Эталон = ВремОбъект.ПолучитьМакет("МакетДляОпределенияКоэффициентовЕдиницИзмерения");
КоличествоМиллиметровВПикселеВысота = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;
КоличествоМиллиметровВПикселеШирина = Эталон.Рисунки.Квадрат100Пикселей.Ширина / 100;
ШиринаШтрихкода = Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселеШирина);
ВысотаШтрихкода = Окр(Рисунок.Высота / КоличествоМиллиметровВПикселеВысота);
ВходныеДанные = "(01)04600829201507(11)116109(30)2434";
Картинка = ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, ВходныеДанные, 24); // 24 - Datamatrix GS1ASCII
Рисунок.Картинка = Картинка;
Результат.Вывести(Область);
КонецПроцедуры
&НаСервере
Функция ПолучитьШтрихкод(ШиринаШтрихкода, ВысотаШтрихкода, ЗначШтрихкод, ЗначТипШтрихкода)
ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыШтрихкода.Ширина = ШиринаШтрихкода;
ПараметрыШтрихкода.Высота = ВысотаШтрихкода;
ПараметрыШтрихкода.ТипКода = ЗначТипШтрихкода;
ПараметрыШтрихкода.Штрихкод = ЗначШтрихкод;
ПараметрыШтрихкода.ПрозрачныйФон = Истина;
ПараметрыШтрихкода.УровеньКоррекцииQR = 2;
ПараметрыШтрихкода.ОтображатьТекст = Ложь;
ПараметрыШтрихкода.Масштабировать = Истина;
ПараметрыШтрихкода.СохранятьПропорции = Истина;
ПараметрыШтрихкода.ВертикальноеВыравнивание = 0;
ПараметрыШтрихкода.GS1DatabarКоличествоСтрок = 1;
ПараметрыШтрихкода.ТипВходныхДанных = 0;
РезультатШтрихкод = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
Возврат РезультатШтрихкод.Картинка;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник