Областью табличного документа называется группа ячеек, имеющая
имя. Обычно области включают в себя одну или несколько строк, колонок или любой
прямоугольный диапазон ячеек. К области можно обратиться по координатам или
имени.
Именование областей
Редактировать имена областей можно через окно свойств или с помощью панели «Имена», предварительно выделив нужный диапазон ячеек.
Панель «Имена» имеет следующие кнопки:
• Отображение именованных строк / колонок,
• Отображение именованных ячеек,
• Назначить имя,
• Убрать имя.
Любая область уже имеет системное имя, например:
• R5C3 — ячейка в 5-й строке и 3-й колонке;
• R5 — 5-я строка;
• С3 — 3-я колонка;
• R5C4:R6C5 — диапазон ячеек;
• СЗ:С5 — ячейки, входящие с 3-ю по 5-ю колонку;
• R2:R6 — ячейки, входящие с 2-ю по 6-ю строки;
• Т — табличный документ в целом;
• D5 — 5-й рисунок (графический объект).
Разработчик может задать собственное имя для области, например,
«Шапка», и использовать его при формировании табличного документа. Для вывода
пересечения горизонтальной и вертикальной секции можно использовать конструкцию
с вертикальной чертой, например, «Обл = Макет.ПолучитьОбласть("Строка |
Колонка")». Второй вариант — задать имя для пересечения и работать с этой
областью, как с любой другой.
Общая схема работы
Основные методы формирования печатной формы следующие:
Вывести
Выводит в печатную форму очередной фрагмент табличного документа, добавляя его снизу, начиная с первой колонки.
Присоединить
Присоединяет к печатной форме очередной фрагмент табличного документа справа, начиная со строки, с которой выводился предыдущий фрагмент методом Вывести.
Область
Позволяет получить область как объект типа ОбластьЯчеекТабличногоДокумента.
ПолучитьОбласть
Позволяет получить область как объект типа ТабличныйДокумент.
Обратите внимание на различие методов Область и ПолучитьОбласть:
• Метод Область() предоставляет доступ к части табличного документа. Он возвращает объект ОбластьЯчеекТабличногоДокумента, предназначенный для установки форматирования области ячеек, установки текста, значения, примечания и расшифровки. Этот объект можно передать в методы ВставитьОбласть и УдалитьОбласть.
• Метод ПолучитьОбласть() создает отдельный табличный документ из указанной области. Он возвращает объект ТабличныйДокумент, который можно передать в методы Вывести и Присоединить.
Следующая программа формирует простую печатную форму (без данных в ячейках):
ТабДок = Новый ТабличныйДокумент;
//Получение макета
Макет - Документы.РасходнаяНакладная.ПолучитьМакет("Печать");
//получим область как новый табличный документ (!)
Область = Макет.ПолучитьОбласть("Заголовок");
//выведем область в табличный документ
ТабДок.Вывести(Область);
//Шапка
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));
//Состав
Для Каждого СтрСостава Из Состав Цикл
Область = Макет.ПолучитьОбласть("Строка");
ТабДок.Вывести(Область);
КонецЦикла;
//Подвал
Область = Макет.ПолучитьОбласть("Подвал");
ТабДок.Вывести(Область);
ТабДок.Показать(); //покажем на экране
А следующий пример формирует более сложный отчет. В нем выводятся горизонтальные и вертикальные области, устанавливаются различные свойства области:
ТабДок = ЭлементыФормы.ПолеТабДок;
ТабДок.Очистить();
Макет = ПолучитьМакет("Основной");
//получим область как объект ТабличныйДокумент
ОбластьТабДок = Макет.ПолучитьОбласть("ЛеваяЧастьШапки");
ТабДок.Вывести(ОбластьТабДок);
Для НомМес = 1 По 12 Цикл
//получим область как объект ОбластьЯчеекТабличногоДокумента
//свойства области нужно заполнять до ее вывода в печатную форму
ОбластьЯчеек = Макет.Область("НазваниеМесяца");
ОбластьЯчеек.Шрифт = Новый Шрифт(,,Истина); //жирный
ОбластьЯчеек.Текст = НомМес;
//получим область как объект ТабличныйДокумент
ОбластьТабДок = Макет.ПолучитьОбласть("МесяцШапка");
ТабДок.Присоединить(ОбластьТабДок) ;
КонецЦикла;
К области можно обращаться не только через метод Область, но и через свойство-коллекцию Области объекта ТабличныйДокумент.
Следующие примеры эквивалентны друг другу:
ОбластьЯчеек = Макет.Область("НазваниеМесяца") ;
ОбластьЯчеек = Макет.Области("НазваниеМесяца");
ОбластьЯчеек = Макет.Области.НазваниеМесяца,
При двойном щелчке (или нажатии Enter) на ячейке табличного документа или рисунке возникает событие Выбор. Это же событие возникает при одинарном щелчке на гиперссылке. Программист может перехватить это событие с помощью процедуры-обработчика.
Внимание! Следует различать события Выбор и ОбработкаРасшифровки. Событие Выбор возникает при двойном щелчке (или нажатии Enter) на ячейке или рисунке, даже если у них нет расшифровки, тогда как событие ОбработкаРасшифровки возникает у ячеек или рисунков, содержащих расшифровку. Причем сначала возникает событие Выбор, а потом ОбработкаРасшифровки. Версия 8.1 внедрение 1С с выездом специалиста