Перейти к содержимому

Макет

Страница “Макет” одна из ключевых, с точки зрения настройки печатной формы. Внешний вид закладки напрямую зависит от настройки “Макет в формате Opеn Office Documents (*.docx)” заданной на странице “Описание”.

Вид закладки “Макет” для табличного документа

Вид закладки “Макет” для офисного документа

Форма закладки “Макет” разделена на 2 части:

  • левая сторона: макет печатной формы (табличный документ или просмотр офисного документа);
  • правая сторона: две табличные части:
    • области макета
    • параметры текущей области макета

Более подробная работа с макетами табличного или офисного документа рассмотрены в отдельных разделах. В данной статье подробно рассмотрим работу с областями и параметрами областей.

В правой верхней части располагается таблица с областями макета. Список областей обновляется автоматически для макета офисного документа после загрузки макета. Для табличного документа при редактировании области надо обновлять вручную.

После того, как области были заполнены автоматически, можно добавить области самостоятельно и выбрать одну из ранее найденных программой областей. Добавленные области могут быть удалены. При этом программа не даст удалить единственную (оставшуюся) область.

Рассмотрим колонки таблицы “Области макета”

КолонкаОписание
Настройка вывода области. Существует только для табличного документа.
Имя областиИмя области, как оно задано в макете
Способ выводаСпособ вывода области макета
НаборИмя набора, с которым связана область макета. Доступна только для Способ вывода = По строкам коллекции
УсловияПиктограмма-индикатор условий вывода области. Заполнена — у области задано хотя бы одно правило, пустая — правил нет. Двойной клик по ячейке открывает редактор правил вывода (см. ниже)

Для табличного документа доступна возможность настройки вывода области при печати. При двойном клике по колонке настройки будет предложены варианты:

Варианты настройки вывода области

Рассмотрим варианты настройки:

ВариантОписание
Без настройкиОбласть будет выведена в табличный документ без какой-либо настройки
Новый разделНачиная с этой области, все предыдущие настройки обнуляются и можно задать новые области для повтора в шапке, подвале и контроля переноса на след. страницу
Повторять в шапкеОбласть будет повторяться в начале каждой страницы печатной формы
Повторять в подвалеОбласть будет повторяться в конце каждой страницы печатной формы
Проверить с переносом на след. страницуБудет выполнена проверка на вместимость области (или нескольких областей) на остаток страницы. Если указанные области не вмещаются, они будут перенесены на следующую страницу с последней выведенной областью

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

Области макета “Счет на оплату”

Среди представленных областей, можно выделить следующие:

  • Шапка - это шапка табличной части счета на оплату. Ее необходимо выводить в начале табличной части и на каждой новой странице (если строки были перенесены на новую страницу);
  • Строка - это строки табличной части. Они будут выводиться согласно какому-то набору из макета. Заранее мы не знаем сколько будет строк, поэтому предполагаем что они могут не поместиться в какой-то определенный диапазон;
  • Подвал - это итоги табличной части. Данная область должна быть выведена после завершения вывода всех строк. При этом, если подвал не помещается на последнюю страницу, необходимо перенести последнюю строку на новую страницу и только после этого выводить подвал. Также мы помним, что при переносе строк на новую страницу, будет снова напечатана область “Шапка”;
  • Подписи - эта область с подписями и печатью организации. Она также должна быть проверена вместе с областью “Подвал”, помещается ли она с последней строкой на странице.

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

Настройки вывода областей макета “Счет на оплату”

  • Шапка - Повторять в шапке
  • Строка - без настройки
  • Подвал - Проверить с переносом
  • Подписи - Проверить с переносом

Настройка вывода “Проверить с переносом на след. страницу”.

Заголовок раздела «Настройка вывода “Проверить с переносом на след. страницу”.»

Согласно требованию область “Подписи” должна переноситься на новую страницу, если не вмещается целиком на текущую. При этом контроль на “вместимость” необходимо выполнять с учетом области “Подвал”, перед выводом последней строкой.

Для этого настройку “Проверить с переносом” необходимо установить для области: Подвал, а также Подписи (на скриншоте дополнительно указана область Задолженность), чтобы они проверялись обе. Таким образом, при выводе последней строки набора “Товары” программа проверит вместимость данной области вместе с подвалом, подписью (и задолженностью). И если целиком на странице данные области не вместить, перенесет все на новую страницу. А поскольку для области “Шапка” установлено “Повторять в шапке” то в результате последняя страница печатной форма будет иметь вид:

Варианты настройки вывода области

Несколько табличных частей различной структуры

Заголовок раздела «Несколько табличных частей различной структуры»

Если в одной печатной форме несколько табличных частей с различной структурой колонок, а также разными настройками вывода шапки (подвала и т.п.), необходимо для каждой области шапки, подвала (и т.п.) выставить соответствующие настройки. При этом, в таком случае, для области перед шапкой рекомендуется установить настроку Новый раздел. Таким образом, печатная форма будет разделена на части, для каждой из которых будут действовать свои настройки повторения шапки, подвала или контроля переноса.

Раньше для условного вывода области приходилось писать обработчик события ПередВыводомОбласти и устанавливать ПараметрыСобытия.Отказ = Истина. Начиная с версии 2026.2.9 для типовых сценариев («вывести область только если поле равно значению», «пропустить область, если параметр не заполнен» и т.п.) программирование больше не требуется — условия задаются декларативно в отдельной форме редактора.

В таблице областей макета добавлена правая колонка-пиктограмма «Условия»:

  • пиктограмма пустая — у области нет правил, она выводится всегда (как раньше);
  • пиктограмма заполнена — у области задано хотя бы одно правило (даже отключённое).

Колонка «Условия» в таблице областей макета

Двойной клик по ячейке колонки открывает форму «Правила вывода областей».

Форма редактора правил вывода области

В форме — плоский список правил с колонками:

КолонкаОписание
ИспользованиеФлажок. Если снят — правило не учитывается при выводе. Отключённое правило остаётся в списке и выделяется серым
Левое значениеПоле набора данных области. Выбирается из дерева доступных полей (как при настройке параметров области)
Вид сравненияСпособ сравнения левого и правого значений (см. таблицу ниже). Список значений автоматически фильтруется по типу левого поля
ЗначениеПравое значение. Тип поля ввода зависит от типа левого значения (строка / число / дата / ссылка / список значений). Для видов «Заполнено» и «Не заполнено» значение не задаётся

Команды панели:

  • Записать и закрыть — сохранить изменения и вернуться в макет
  • Добавить — добавить новое правило (по умолчанию: «Использование» = Истина, «Вид сравнения» = «Равно»)
  • ↑ / ↓ — переместить правило вверх/вниз по списку
  • Удалить (через контекстное меню) — удалить правило

Доступные виды сравнения совпадают с типовым 1С-перечислением ВидСравненияКомпоновкиДанных:

Выпадающий список видов сравнения, фильтрованный по типу левого значения

Вид сравненияПрименимостьОписание
Равно / Не равнолюбой типТочное совпадение значений
Меньше / Меньше или равно / Больше / Больше или равноЧисло, Дата, Строка, БулевоЧисловое или лексикографическое сравнение
В списке / Не в спискелюбой типПравое значение — список значений
В иерархии / Не в иерархиииерархические ссылкиЛевое значение принадлежит ветке иерархии правого
В списке по иерархии / Не в списке по иерархиииерархические ссылкиЛевое значение принадлежит хотя бы одной из веток списка
Содержит / Не содержитСтрокаПодстрока в строке
Заполнено / Не заполненолюбой типНе требует правого значения
Подобно / Не подобноСтрокаСравнение по шаблону (%, _)
Начинается с / Не начинается сСтрокаПрефиксное сравнение

При выводе области исполнитель до вызова события ПередВыводомОбласти:

  1. Если у области нет правил — вывод выполняется как обычно.
  2. Если правила есть — вычисляются все правила со включённым флажком «Использование» (отключённые игнорируются).
  3. Результаты включённых правил объединяются логическим И: область выводится, только если выполняются все включённые правила. Если включённых правил нет — итог считается истинным.
  4. Если итог — Ложь, область пропускается: события ПередВыводомОбласти и ПослеВыводаОбласти для этой области не вызываются, соседние области и повторения выводятся в обычном порядке.

Требуется вывести подвал страницы только начиная со второй страницы счёта. Без программирования это решается одним правилом:

ИспользованиеЛевое значениеВид сравненияЗначение
НаборыДанных.СистемныеПоля.НомерСтраницыБольше или равно2

Системный набор НаборыДанных.СистемныеПоля доступен в дереве полей и содержит готовые поля НомерСтраницы, ТекущаяДата, ТекущийПользователь.

  • Левое значение — только поле набора данных. Поля свойств, контактной информации, нумератора, QR-кода, суммы прописью и алгоритма в правилах вывода не поддерживаются. Для таких сценариев пока используется обработчик ПередВыводомОбласти.
  • Правила объединяются только логическим И. Группы И/ИЛИ и произвольное BSL-выражение запланированы как развитие в следующих версиях.
  • Правила задаются на уровне области целиком. Условный вывод отдельных параметров / столбцов / страниц — также запланирован в развитии.

Рассмотрим существующие способы вывода области в печатную форму:

Способ выводаОписаниеВид макета
Без повторенийВывести область в печатную форму один развсе
По строкам коллекцииВывести область в печатную форму для каждой строки коллекции, указанной в колонке Наборвсе
Перенос строкиВывести область с переносом текста на новую строкувсе
Верхний колонтитулВывести область как верхний колонтитулdocx
Нижний колонтитулВывести область как нижний колонтитулdocx
Не выводить на печать [без вывода]Не выводить область на печатьвсе
Область колонки [без вывода]Область колонок (не используется)mxl
Контрольная строка [служ: перенос строки]Служебная область. Только при наличии областей где Способом вывода = Перенос строкивсе
Строка переноса [служ: перенос строки]Служебная область. Только при наличии областей где Способом вывода = Перенос строкивсе
Пустая область [служ: перенос строки]Служебная область. Только при наличии областей где Способом вывода = Перенос строкивсе

Для каждого из трех базовых вариантов вывода области доступны разные наборы данных:

Способ выводаДанные наборов
Без повторенийНаборы с видом “Первая строка”, “Последняя строка”, “Соединение строк” полностью.
Наборы с видом “Многострочная коллекция” только итоговые колонки или количество строк
По строкам коллекцииНаборы с видом “Первая строка”, “Последняя строка”, “Соединение строк” полностью
Данные строки из коллекции указанной в наборе области
Наборы с видом “Многострочная коллекция” только итоговые колонки или количество строк
Перенос строкиНаборы с видом “Первая строка”, “Последняя строка”, “Соединение строк” полностью.
Наборы с видом “Многострочная коллекция” только итоговые колонки или количество строк
Верхний колонтитулНаборы с видом “Первая строка”, “Последняя строка”, “Соединение строк” полностью.
Наборы с видом “Многострочная коллекция” только итоговые колонки или количество строк
Нижний колонтитулНаборы с видом “Первая строка”, “Последняя строка”, “Соединение строк” полностью.
Наборы с видом “Многострочная коллекция” только итоговые колонки или количество строк

Способ вывода “Без повторений” и “По строкам коллекции” не требуют дополнительных настроек. Достаточно создать область, указать способ вывода и назначить набор (для вывода по строкам коллекции). Данные области будут выведены (как указывалось ранее) согласно последовательности в таблице областей.

Области со способами “Верхний колонтитул” и “Нижний колонтитул” могут располагаться в любой последовательности. В любом случае они будут выведены в соответствующих областях макета. При этом, если у макета отсутствуют колонтитулы или для области колонтитула изменен Способ вывода, данные области не будут выведены в печатную форму.

Способ вывода “Перенос строки” достаточно специфический и рассмотрен в отдельной главе.

Под табличной частью областей располагается таблица с параметрами области макета. Если в процессе редактирования макета или обновления областей параметры по каким-либо причинам не обновились, рекомендуется нажать кнопку “Обновить” повторного чтения параметров.

Рассмотрим колонки таблицы “Параметры области”

КолонкаОписание
Параметр используется в расшифровке
ИмяИмя параметра, как оно задано в макете
ТипТип значения задаваемого в параметре
ЗначениеПредставление заданного значения
Настройка форматирования значения

Доступны следующие типа значения параметра:

ТипОписание
Значение набораСвязь параметра напрямую со значением из набора. Доступные значения наборов зависят от способа вывода области.
Конструктор строкиИспользование конструктора представления для формирования значения (см. рисунок ниже)
Произвольный алгоритмВычисление значения для подстановки произвольным кодом
Данные QR-кодаКонструктор значения для формирования QR-кода (подробнее)
Сумма прописьюКонструктор данных для формирования суммы прописью с учетом валюты (подробнее)

Конструктор представления параметра области

Для параметров области с типом “Значение набора” возможно редактирование текста (подбор) или автозаполнение (по кнопке “Заполнить” над табличной частью).

При автозаполнении программа находит поля в наборах с именем = имени параметра, но есть ограничения:

  • если по имени параметра найдено более 1 возможного поля из наборов, параметр не заполняется;
  • если способ вывода области = “По строкам коллекции”, совпадение анализируется только для указанного набора.

Для табличного документа программа определяет тип области с картинкой автоматически, рядом с именем параметра отображается пиктограмма картинки. Для офисного документа область с картинкой определяется исходя из установленного значения параметра.

Для вывода картинки можно использовать следующие сочетания типов и значений:

ТипЗначение
Данные QR-кодаКартинка QR-кода генерируется автоматически, на основе данных (подсистема Генерация штрихкода БСП)
Значение набораЗначение набора с типом данных “Картинка”
Значение набораЗначение набора с типом данных “Двоичные данные”
Значение набораЗначение набора с типом данных ”…ПрисоедиенныеФайлы” (подсистема Работа с файлами БСП)

При этом программа самостоятельно преобразует данные в картинку и выведет в печатную форму (табличного или офисного документа).