Как найти и добавить параметры в печатные формы 1С: работа с номенклатурой, брендами и штрихкодами

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

При разработке или редактировании печатных форм в 1С начинающие специалисты часто сталкиваются с вопросом: «Где взять список всех доступных параметров для макета?». Кажется, что должен существовать некий иерархический справочник, из которого можно просто выбрать Производитель или Штрихкод. Однако архитектура 1С устроена иначе. В этой статье мы подробно разберем, как работают параметры макета, где искать их истоки в программном коде и как добавить собственные данные для вывода на печать.

Понятие параметра в макете печатной формы

Для начала проанализируем, что представляет собой ячейка макета. В конфигураторе 1С, открыв макет (табличный документ), мы можем увидеть ячейки, текст в которых заключен в угловые скобки, например, <Номенклатура>. Это означает, что для данной ячейки в свойстве Заполнение выбрано значение Параметр.

Важно понимать: имя параметра (например, Производитель) — это просто «название переменной» внутри макета. Само по себе оно ничего не выводит. Чтобы в печатной форме появились реальные данные, программа должна выполнить команду заполнения этого параметра в коде модуля.

Связь макета с программным кодом

Рассмотрим стандартный механизм вывода области макета. Процесс всегда состоит из трех этапов: получение области, заполнение параметров и вывод области в итоговый документ. Разберем типичный пример кода:


// 1. Получаем область из макета по ее имени
ОбластьМакета = Макет.ПолучитьОбласть("Строка");

// 2. Заполняем параметры данными из выборки или объекта
ОбластьМакета.Параметры.Номенклатура = ДанныеСтроки.Наименование;
ОбластьМакета.Параметры.Артикул = ДанныеСтроки.Артикул;

// 3. Выводим заполненную область в табличный документ
ТабличныйДокумент.Вывести(ОбластьМакета);

Если вы добавили в макет параметр Производитель, но не добавили в код строку ОбластьМакета.Параметры.Производитель = ..., ячейка на печати останется пустой. Именно в этом кроется причина, по которой простое редактирование макета часто не дает результата.

Где искать доступные данные (иерархию полей)

Поскольку единого списка параметров не существует, нам необходимо выяснить, какие данные «умеет» собирать конкретная печатная форма. Проанализируем основные способы поиска:

  1. Изучение запроса в модуле менеджера. В современных конфигурациях (на базе БСП) логика сбора данных обычно сосредоточена в модуле менеджера объекта (справочника или документа) в процедуре Печать или СформироватьДанныеДляПечати. Найдите текст запроса — все поля, которые выбираются в нем (ВЫБРАТЬ Номенклатура.Артикул КАК Артикул...), потенциально доступны для вывода.
  2. Использование точки останова. Это самый эффективный метод. Поставьте точку останова в коде перед выводом области и посмотрите содержимое структуры ДанныеПечати или Параметры. Вы увидите все доступные поля и их значения в реальном времени.
  3. Путь «через точку». Для номенклатуры данные часто организованы иерархически. Если у вас есть ссылка на Номенклатура, вы можете получить ее реквизиты: Номенклатура.Производитель, Номенклатура.ЕдиницаИзмерения и так далее.

Особенности вывода Штрихкодов и Брендов

Рассмотрим специфические параметры, о которых часто спрашивают пользователи:

Работа с Брендом и Производителем

В типовых конфигурациях (УТ 11, ERP, КА) поле «Бренд» может отсутствовать как прямой реквизит. Часто оно реализовано через:

Чтобы вывести их, убедитесь, что в запросе печатной формы эти данные извлекаются. Если нет — запрос придется расширить через расширение конфигурации или создать внешнюю печатную форму.

Вывод Штрихкода

Штрихкод — это не просто текст, а информация, которая обычно хранится в регистре сведений ШтрихкодыНоменклатуры. Выясним, как вывести его в макет:

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

Использование шаблонов для упрощения работы

Иногда удобнее использовать не Параметр, а Шаблон. В свойствах ячейки выберите Заполнение: Шаблон. Это позволит вам писать текст вперемешку с параметрами, например: Товар: [Номенклатура], Производитель: [Производитель].

При использовании шаблона 1С автоматически попытается сопоставить имена в квадратных скобках с именами свойств в структуре данных, которую вы передаете для заполнения всей области целиком:


// Заполнение всех параметров области одной командой
ОбластьМакета.Параметры.Заполнить(СтруктураДанных);

Рекомендации по добавлению новых параметров

Если вам нужно добавить в печатную форму данные, которых там изначально нет (например, «Вес» или «Страна происхождения»), придерживайтесь следующего алгоритма:

  1. Проверьте макет: добавьте новую ячейку и установите ей имя параметра (например, ВесНоменклатуры).
  2. Найдите код заполнения: через глобальный поиск найдите имя макета в модулях конфигурации.
  3. Модифицируйте сбор данных: если данные берутся из запроса, добавьте поле в запрос. Если из объекта — убедитесь, что реквизит доступен.
  4. Передайте значение: добавьте строку Область.Параметры.ВесНоменклатуры = СтрокаДанных.Вес;.

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

← На главную