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