Как правильно реализовать печать штрихкода Code128 в управляемых формах 1С?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия
← На главную

При попытке вывести штрихкод на печатную форму в 1С:Бухгалтерия часто возникают сложности, связанные с особенностями обращения к элементам макета и использованием внешних компонент. Рассмотрим подробнее, как избежать распространенных ошибок и настроить корректное отображение Code128.

Анализ распространенных ошибок

Одной из главных причин возникновения ошибок, таких как Поле объекта не обнаружено или Значение не является значением объектного типа, является неверный путь доступа к элементам управления внутри табличного документа. Разберем типичные проблемы:

  1. Несоответствие имен элементов в Конфигураторе и программном коде.
  2. Попытка прямого обращения к свойству ТипКода без доступа к объекту внутри рисунка.
  3. Использование устаревших методов работы с ActiveX-объектами V8.Печать штрих-кодов, которые часто конфликтуют с 64-битными платформами.

Решение проблемы через использование объекта внешней компоненты

Если вы решили использовать классический метод формирования штрихкода через внешнюю компоненту, важно правильно обращаться к свойствам объекта. Рассмотрим пример корректного кода для работы с макетом:


// Сначала необходимо получить область макета
Область = Макет.ПолучитьОбласть("Штрихкод");
// Правильный синтаксис обращения к объекту внутри рисунка:
Область.Рисунки.D2.Объект.ТипКода = Перечисления.ТипыШтрихкодов.Code128;
Область.Рисунки.D2.Объект.Сообщение = Штрихк;
Область.Рисунки.D2.Объект.ТекстКода = Штрихк;

Обратите внимание: доступ к свойствам ТипКода и Сообщение осуществляется строго через поле Объект. Если вы пропускаете этот уровень вложенности, платформа выдает ошибку, так как у самого рисунка табличного документа нет таких свойств.

Современный подход: печать через формирование картинки

Наиболее надежным способом печати штрихкодов в современных конфигурациях является формирование двоичных данных штрихкода с последующей передачей их в рисунок типа Картинка. Это избавляет от проблем с установкой компонент на стороне клиента и повышает стабильность печати.

Рассмотрим по шагам алгоритм работы с МенеджерОборудованияСервер:

  1. Подготовка параметров: Сформируйте структуру с настройками штрихкода.
  2. Генерация изображения: Используйте функцию ПолучитьКартинкуШтрихкода, передав туда структуру параметров.
  3. Вывод в макет: Присвойте результат функции свойству Картинка вашего рисунка в табличном документе.

Пример программной реализации:


ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Ширина", 60);
ПараметрыШтрихкода.Вставить("Высота", 100);
ПараметрыШтрихкода.Вставить("Штрихкод", Штрихк);
ПараметрыШтрихкода.Вставить("ТипКода", 4); // Код для Code128
ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
// Формируем картинку
Картинка = МенеджерОборудованияСервер.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
// Передаем в макет
ОбластьПечати.Рисунки.D2.Картинка = Картинка;

Советы по настройке отображения

Для того чтобы штрихкод выглядел корректно и не обрезался при выводе на печать, выполните следующие действия:

Использование предложенных методов позволит вам добиться стабильного вывода штрихкодов в любой конфигурации 1С на управляемых формах.

← На главную