Разработка и Конфигурация · 11 мин
Как заполнить параметры в макете 1С
Как заполнить параметры в макете 1С: типы ячеек, синтаксис параметров, заполнение из кода и через СКД, вывод табличных частей и проверка результата.
Макет в 1С — это шаблон печатной формы или табличного документа, в котором часть ячеек содержит не статичный текст, а параметры. При формировании отчёта или печати программа подставляет в эти параметры реальные данные: номер документа, наименование контрагента, суммы, даты. Если параметры описаны неправильно, на печати вместо значений выводятся пустые места, текст «Параметр» или ошибка времени выполнения.
Работа с параметрами состоит из двух частей. Первая — подготовка макета: создание областей, указание типа заполнения ячеек и имён параметров. Вторая — заполнение параметров данными: либо из встроенного кода через методы «Параметры», либо автоматически через схему компоновки данных (СКД). Понимание обоих способов позволяет корректно настроить любую печатную форму — от простой накладной до сложного аналитического отчёта.
Ниже разобраны типы заполнения ячеек, синтаксис параметров, пошаговые инструкции для табличного макета и СКД, способы вывода табличных частей и типичные ошибки с их устранением.
Типы заполнения ячеек: текст, параметр и шаблон
Каждая ячейка табличного макета имеет свойство «Заполнение», которое определяет, как 1С обрабатывает её содержимое. Значение «Текст» означает, что содержимое выводится как есть — это подходит для заголовков, подписей и статичных элементов. Такие ячейки не изменяются при формировании печатной формы.
Значение «Параметр» означает, что весь текст ячейки трактуется как имя одного параметра. В этом случае в ячейке пишется только имя, например Контрагент, без скобок и дополнительного текста. Имя параметра в свойствах макета и в коде должно совпадать с точностью до символа, включая регистр букв.
Значение «Шаблон» позволяет смешивать статичный текст и параметры в одной ячейке. Параметры внутри шаблона заключаются в квадратные скобки: Договор № [НомерДоговора] от [ДатаДоговора]. При выводе программа заменит каждую конструкцию в скобках соответствующим значением. Шаблон удобен для строк, где данные встроены в предложение.
Создание макета и областей
Макет создаётся в конфигураторе: в дереве конфигурации у нужного объекта (документа, справочника, отчёта) откройте ветку «Макеты», добавьте новый макет и выберите тип «Табличный документ». Откроется редактор, внешне похожий на электронную таблицу.
Печатная форма строится из именованных областей — прямоугольных блоков ячеек, которые выводятся в результирующий документ целиком. Чтобы создать область, выделите нужные строки (обычно выделяют целые строки кликом по заголовкам слева) и задайте имя через меню «Таблица — Имена — Назначить имя» или сочетанием клавиш. Типовая структура макета накладной: «Шапка», «СтрокаТовары», «Итого», «Подвал».
Область «СтрокаТовары» обычно состоит из одной строки с параметрами колонок: Номенклатура, Количество, Цена, Сумма. В коде эта область выводится в цикле — по одному разу на каждую позицию табличной части документа.
- 1Откройте конфигуратор и добавьте макет типа «Табличный документ» у нужного объекта
- 2Создайте именованные области: шапку, строку данных, подвал
- 3Для ячеек со значениями установите заполнение «Параметр» или «Шаблон» и укажите имена
- 4Сохраните макет и перейдите к написанию кода формирования печатной формы
- 5Сформируйте печатную форму на тестовом документе и проверьте подстановку значений
Заполнение параметров из кода
Основной сценарий: в модуле менеджера объекта или в общем модуле печати создаётся функция, которая получает макет, заполняет параметры областей и выводит их в итоговый табличный документ. Получение макета выполняется методом ПолучитьМакет("ИмяМакета"), область извлекается методом ПолучитьОбласть("Шапка").
Значения присваиваются через коллекцию Параметры области: ОбластьШапка.Параметры.НомерДокумента = Документ.Номер;. После заполнения область выводится: ТабДок.Вывести(ОбластьШапка). Если параметру не присвоить значение, на печати останется пустое место — ошибки не возникнет, поэтому пропуски легко не заметить.
Для вывода табличной части используется цикл по строкам документа. На каждой итерации область строки получается заново или очищается, параметры заполняются значениями текущей строки, область выводится через Вывести. Если нужна компоновка по горизонтали (например, колонки), применяется метод Присоединить.
Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("Печать");
ТабДок = Новый ТабличныйДокумент;
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = Ссылка.Номер;
ОбластьШапка.Параметры.Контрагент = Ссылка.Контрагент;
ТабДок.Вывести(ОбластьШапка);
ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТовары");
Для Каждого Строка Из Ссылка.Товары Цикл
ОбластьСтрока.Параметры.Заполнить(Строка);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;Метод Параметры.Заполнить(Источник) заполняет сразу все параметры области, имена которых совпадают с именами полей источника (строки табличной части, выборки запроса). Это сокращает код, но требует, чтобы имена параметров в макете точно совпадали с именами полей данных.
Заполнение параметров через СКД
В отчётах на системе компоновки данных параметры макета заполняются автоматически. В схеме компоновки на закладке «Макеты» создаётся макет области или поля, где в ячейках указываются имена параметров. СКД сопоставляет эти имена с полями набора данных и подставляет значения при формировании отчёта — писать код вывода не требуется.
Для макета поля в СКД важно правильно указать область применения: «Заголовок» или «Детали». Макет детальных записей выводится для каждой строки результата запроса. Имя параметра в ячейке должно совпадать с именем поля в наборе данных (псевдонимом поля запроса).
Отдельный случай — параметры самой СКД (период, организация, склад), которые пользователь задаёт перед формированием отчёта. Они объявляются на закладке «Параметры» схемы и подставляются в текст запроса через амперсанд: ГДЕ Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода. Не путайте их с параметрами ячеек макета — это разные механизмы.
Способы заполнения параметров
Полный контроль над выводом, подходит для печатных форм документов; требует написания кода
Параметры заполняются по именам полей без кода; подходит для отчётов, сложнее для нестандартных печатных форм
Массовое заполнение по совпадающим именам; удобно, но чувствительно к расхождению имён
Форматирование и расшифровка параметров
У ячейки-параметра можно задать формат вывода: в свойствах ячейки поле «Формат» принимает форматную строку, например ЧЦ=15; ЧДЦ=2 для сумм или ДЛФ=D для дат. Если формат не задан, дата выводится со временем, а число — без разделителей разрядов, что ухудшает читаемость печатной формы.
Свойство «ПараметрРасшифровки» позволяет сделать ячейку кликабельной: при двойном щелчке пользователь откроет связанный объект, например документ или карточку контрагента. В коде расшифровка задаётся через Область.Параметры.РасшифровкаНоменклатуры = Строка.Номенклатура; — при этом в макете должен существовать параметр с таким именем.
Для защиты макета от случайного изменения пользователем итоговый табличный документ выводится с отключённым редактированием: в форме печати устанавливается свойство «ТолькоПросмотр». Это не влияет на заполнение параметров, но предотвращает порчу готовой формы.
Проверка результата и типичные ошибки
После настройки сформируйте печатную форму на документе с заполненными данными и на документе, где часть полей пуста. Проверьте: все ли параметры подставились, корректно ли выглядят даты и суммы, не «съехали» ли колонки при длинных наименованиях. Для отчёта на СКД дополнительно проверьте работу отборов и группировок.
Частая ошибка — несовпадение имени параметра в макете и в коде: лишний пробел, другой регистр, опечатка. В этом случае 1С при обращении Параметры.Имя выдаёт ошибку «Параметр не найден» либо молча оставляет ячейку пустой, если используется Заполнить(). Вторая типичная проблема — вывод области до заполнения параметров: значения присваиваются уже после Вывести(), и на печать попадают пустые ячейки.
Ещё одна ошибка — попытка вывести в параметр таблицу значений или другой составной объект. Параметр ячейки принимает строку, число, дату или ссылку; сложные структуры нужно предварительно преобразовать в строку. Также следите за типом заполнения: ячейка с типом «Текст», содержащая имя параметра, выведет это имя как обычный текст.
Как проверить результат
Все параметры заменены данными документа
Пустые ячейки или текст имени параметра на печати
Дата без времени, суммы с двумя знаками после запятой
Дата вида 01.01.2026 0:00:00, суммы без дробной части
Каждая строка документа выведена отдельной строкой области
Выведена только первая строка или строки дублируются
Пустое значение выводится как пустая ячейка, форма не «разваливается»
Ошибка времени выполнения или сдвиг колонок
Часто задаваемые вопросы
Чем параметр отличается от шаблона в макете 1С?
Параметр — это ячейка, целиком содержащая имя одного параметра; значение подставляется вместо всего текста ячейки. Шаблон — ячейка со смешанным содержимым, где параметры в квадратных скобках встроены в обычный текст, например «Договор № [Номер] от [Дата]». Шаблон удобен для фраз, параметр — для отдельных полей таблицы.
Почему на печати вместо значения выводится имя параметра?
Чаще всего у ячейки установлен тип заполнения «Текст» вместо «Параметр» или «Шаблон». Откройте свойства ячейки в макете и измените заполнение. Также проверьте, что область выводится после присвоения значений через Параметры.
Как вывести табличную часть документа в макет?
Создайте отдельную область из одной строки с параметрами колонок. В коде получите эту область и в цикле по строкам табличной части заполняйте параметры (вручную или через Параметры.Заполнить(Строка)) и выводите область методом Вывести(). Каждая итерация добавляет одну строку в результирующий документ.
Можно ли заполнить параметры макета без программирования?
Да, если используется СКД: в схеме компоновки данных на закладке «Макеты» создаётся макет, параметры которого совпадают с именами полей набора данных. СКД подставит значения автоматически при формировании отчёта. Для произвольных печатных форм документов без кода обойтись нельзя, но можно использовать механизм внешних печатных форм с готовыми шаблонами.
Что делать, если параметр содержит длинный текст и не помещается в ячейку?
В свойствах ячейки включите «Размещение текста» со значением «Переносить» и снимите фиксированную высоту строки, либо установите автоподбор высоты. Альтернатива — сократить выводимое значение в коде через функции работы со строками, если полная длина не обязательна.
Как изменить макет типовой печатной формы, не нарушая обновление?
Скопируйте макет в собственный объект или используйте механизм внешних печатных форм (для конфигураций с БСП). Внешняя печатная форма подключается через справочник дополнительных отчётов и обработок и переопределяет типовую печать без изменения конфигурации.
Что важно запомнить
Параметр создаётся в свойствах ячейки макета: тип «Параметр» для одиночного значения, «Шаблон» для текста с вставками в квадратных скобках. Заполнение выполняется через Область.Параметры до вывода области либо автоматически в СКД по совпадающим именам полей. Большинство проблем связано с опечатками в именах и неверным типом заполнения — проверка на тестовом документе выявляет их за минуты.