При разработке или редактировании печатных форм в 1С начинающие специалисты часто сталкиваются с вопросом: «Где взять список всех доступных параметров для макета?». Кажется, что должен существовать некий иерархический справочник, из которого можно просто выбрать Производитель или Штрихкод. Однако архитектура 1С устроена иначе. В этой статье мы подробно разберем, как работают параметры макета, где искать их истоки в программном коде и как добавить собственные данные для вывода на печать.
Для начала проанализируем, что представляет собой ячейка макета. В конфигураторе 1С, открыв макет (табличный документ), мы можем увидеть ячейки, текст в которых заключен в угловые скобки, например, <Номенклатура>. Это означает, что для данной ячейки в свойстве Заполнение выбрано значение Параметр.
Важно понимать: имя параметра (например, Производитель) — это просто «название переменной» внутри макета. Само по себе оно ничего не выводит. Чтобы в печатной форме появились реальные данные, программа должна выполнить команду заполнения этого параметра в коде модуля.
Рассмотрим стандартный механизм вывода области макета. Процесс всегда состоит из трех этапов: получение области, заполнение параметров и вывод области в итоговый документ. Разберем типичный пример кода:
// 1. Получаем область из макета по ее имени
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
// 2. Заполняем параметры данными из выборки или объекта
ОбластьМакета.Параметры.Номенклатура = ДанныеСтроки.Наименование;
ОбластьМакета.Параметры.Артикул = ДанныеСтроки.Артикул;
// 3. Выводим заполненную область в табличный документ
ТабличныйДокумент.Вывести(ОбластьМакета);
Если вы добавили в макет параметр Производитель, но не добавили в код строку ОбластьМакета.Параметры.Производитель = ..., ячейка на печати останется пустой. Именно в этом кроется причина, по которой простое редактирование макета часто не дает результата.
Поскольку единого списка параметров не существует, нам необходимо выяснить, какие данные «умеет» собирать конкретная печатная форма. Проанализируем основные способы поиска:
Печать или СформироватьДанныеДляПечати. Найдите текст запроса — все поля, которые выбираются в нем (ВЫБРАТЬ Номенклатура.Артикул КАК Артикул...), потенциально доступны для вывода.ДанныеПечати или Параметры. Вы увидите все доступные поля и их значения в реальном времени.Номенклатура, вы можете получить ее реквизиты: Номенклатура.Производитель, Номенклатура.ЕдиницаИзмерения и так далее.Рассмотрим специфические параметры, о которых часто спрашивают пользователи:
В типовых конфигурациях (УТ 11, ERP, КА) поле «Бренд» может отсутствовать как прямой реквизит. Часто оно реализовано через:
Производитель (ссылка на справочник «Производители»).ДополнительныеРеквизиты).Чтобы вывести их, убедитесь, что в запросе печатной формы эти данные извлекаются. Если нет — запрос придется расширить через расширение конфигурации или создать внешнюю печатную форму.
Штрихкод — это не просто текст, а информация, которая обычно хранится в регистре сведений ШтрихкодыНоменклатуры. Выясним, как вывести его в макет:
ГенерацияШтрихкода (в БСП), чтобы преобразовать цифры в графическое изображение и передать его в рисунок макета.Иногда удобнее использовать не Параметр, а Шаблон. В свойствах ячейки выберите Заполнение: Шаблон. Это позволит вам писать текст вперемешку с параметрами, например: Товар: [Номенклатура], Производитель: [Производитель].
При использовании шаблона 1С автоматически попытается сопоставить имена в квадратных скобках с именами свойств в структуре данных, которую вы передаете для заполнения всей области целиком:
// Заполнение всех параметров области одной командой
ОбластьМакета.Параметры.Заполнить(СтруктураДанных);
Если вам нужно добавить в печатную форму данные, которых там изначально нет (например, «Вес» или «Страна происхождения»), придерживайтесь следующего алгоритма:
ВесНоменклатуры).Область.Параметры.ВесНоменклатуры = СтрокаДанных.Вес;.Важный совет: старайтесь не изменять типовые печатные формы напрямую. Лучшим решением будет создание Внешней печатной формы. Это позволит вам сохранить возможность автоматического обновления конфигурации и обеспечит гибкость настройки под нужды бизнеса.