Тип: КоллекцияОбластейТабличногоДокумента. Содержит коллекцию именованных областей таблицы.
Полное описание, параметры и ограничения
ТабличныйДокумент.Области (SpreadsheetDocument.Areas)
ТабличныйДокумент (SpreadsheetDocument)
Области (Areas)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Тип: КоллекцияОбластейТабличногоДокумента.
Содержит коллекцию именованных областей таблицы.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
См. также:
ТабличныйДокумент
РисунокТабличногоДокумента
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Сравнить технический и читательский вид своей таблицы
Сетка, заголовки координат и имена областей помогают разработчику. Их видимость не удаляет строки или именованную область.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте отдельную внешнюю обработку с новой пустой управляемой основной формой в учебной базе. ПриСозданииНаСервере назначьте одноимённой процедуре.
Вставьте полный модуль на уровне модуля формы. УчебныйДокумент, УчебноеПолеТаблицы и кнопку вручную не создавайте: их добавляет код.
Каждый урок — отдельная копия формы. Таблица содержит только собственную Книгу (3) и Ручку (1); это не печатная форма рабочего документа.
Настольный тонкий/толстый или веб-клиент. Для урока очистки выделения выберите интерфейс Версия 8.5: его поведение выделения отдельно отмечено в справке.
Код не вызывает печать, сохранение файла, сетевой обмен или запись базы. Внешняя кнопка остаётся вне табличного поля и его состояния.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("УчебныйДокумент", Новый ОписаниеТипов("ТабличныйДокумент")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
Документ = Новый ТабличныйДокумент;
Документ.Область(1, 1).Текст = "Товар";
Документ.Область(1, 2).Текст = "Количество";
Документ.Область(2, 1).Текст = "Книга";
Документ.Область(3, 1).Текст = "Ручка";
Для НомерСтроки = 2 По 3 Цикл
Ячейка = Документ.Область(НомерСтроки, 2);
Ячейка.СодержитЗначение = Истина;
Ячейка.ТипЗначения = Новый ОписаниеТипов("Число");
Если НомерСтроки = 2 Тогда
Ячейка.Значение = 3;
Иначе
Ячейка.Значение = 1;
КонецЕсли;
КонецЦикла;
Документ.Область(, 1, , 1).ШиринаКолонки = 25;
Документ.Область(, 2, , 2).ШиринаКолонки = 12;
Документ.Область(2, 1, 3, 2).Имя = "УчебныеТовары";
Документ.ТолькоПросмотр = Истина;
ЭтаФорма.УчебныйДокумент = Документ;
Поле = Элементы.Добавить("УчебноеПолеТаблицы", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеТабличногоДокумента;
Поле.ПутьКДанным = "УчебныйДокумент";
Поле.Редактирование = Ложь;
Поле.РазрешитьНачалоПеретаскивания = Ложь;
Поле.РазрешитьПеретаскивание = Ложь;
Поле.ОтображатьСетку = Истина;
Поле.ОтображатьЗаголовки = Истина;
Поле.ОтображатьГруппировки = Истина;
Поле.ОтображатьИменаСтрокИКолонок = Истина;
Поле.ОтображатьИменаЯчеек = Истина;
Поле.ЧерноБелыйПросмотр = Ложь;
Поле.ЦветРамки = Новый Цвет(180, 195, 210);
Поле.РежимМасштабированияПросмотра = РежимМасштабированияПросмотра.Обычный;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить свою таблицу";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.УчебноеПолеТаблицы;
ТехническийВид = НЕ Поле.ОтображатьСетку;
Поле.ОтображатьСетку = ТехническийВид;
Поле.ОтображатьЗаголовки = ТехническийВид;
Поле.ОтображатьГруппировки = ТехническийВид;
Поле.ОтображатьИменаСтрокИКолонок = ТехническийВид;
Поле.ОтображатьИменаЯчеек = ТехническийВид;
Поле.ЧерноБелыйПросмотр = НЕ ТехническийВид;
ОбластьТоваров = ЭтаФорма.УчебныйДокумент.Области.Найти("УчебныеТовары");
Если ОбластьТоваров = Неопределено Тогда
ВызватьИсключение "Собственная именованная область потеряна";
КонецЕсли;
Сообщить(ОбластьТоваров.Верх = 2 И ОбластьТоваров.Низ = 3);
Сообщить("Технический вид: " + Строка(ТехническийВид));
Сообщить(ЭтаФорма.УчебныйДокумент.Область(2, 2).Значение = 3);
Сообщить(ЭтаФорма.УчебныйДокумент.Область(3, 2).Значение = 1);
КонецПроцедурыРазбор по шагам
Режимы относятся к отображению поля. УчебныеТовары — собственная именованная область, созданная до привязки поля.
После переключения область снова ищется по имени и проверяется на отсутствие. Координаты остаются 2..3.
Группировки в этой маленькой таблице не созданы. ОтображатьГруппировки лишь разрешает их вывод и не создаёт группы само.
ЧерноБелыйПросмотр меняет просмотр, не преобразует и не записывает файл. Изменение свойств на клиенте может обращаться к серверу.
Как проверить результат
Три Истина и флаг технического вида. Первое нажатие скрывает служебное отображение, второе возвращает.
Без созданных групп не обещается появление значков группировки.
Ожидаемый результат
Служебные подсказки скрыты без удаления собственных областей.
На что обратить внимание
Черно-белый просмотр не равен настройке конкретного принтера.
Имена строк/колонок и именованная область ячеек — разные виды служебного отображения.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Именовать область товаров и проверить её координаты
Строки и колонки табличного документа начинаются с 1. Получаем именованную область и проверяем вложенность ячейки.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте новую внешнюю обработку с управляемой основной формой в учебной базе. Каждый урок — отдельная копия модуля.
На форме создайте команду УчебныйПример и перетащите её на форму как кнопку. В действии команды выберите процедуру УчебныйПример(Команда).
Вставьте весь приведённый модуль на уровне модуля формы: обработчик команды и функцию УчебнаяТаблица. Никакие макеты или реквизиты конфигурации не требуются.
Сохраните EPF и откройте в тонком клиенте Windows. Примеры показывают таблицу, но не вызывают принтер, не записывают файлы и не читают рабочие документы.
&НаКлиенте
Процедура УчебныйПример(Команда)
ТабДок = УчебнаяТаблица();
Товары = ТабДок.Область(3, 1, 4, 4);
Товары.Имя = "УчебныеТовары";
ПоИмени = ТабДок.Области.Найти("УчебныеТовары");
Если ПоИмени = Неопределено Тогда
ВызватьИсключение "Собственная именованная область не найдена";
КонецЕсли;
Сообщить(ПоИмени.Верх = 3);
Сообщить(ПоИмени.Низ = 4);
Сообщить(ПоИмени.Лево = 1);
Сообщить(ПоИмени.Право = 4);
Сообщить(ПоИмени.СодержитОбласть(ТабДок.Область(3, 3)));
Сообщить(Не ПоИмени.СодержитОбласть(ТабДок.Область(5, 4)));
Индекс = ТабДок.Области.Индекс(ПоИмени);
Сообщить(ТабДок.Области.Получить(Индекс).Имя = "УчебныеТовары");
Сообщить(ТабДок.Области.Количество() >= 1);
Сообщить("Тип области: " + Строка(ПоИмени.ТипОбласти));
ТабДок.Показать("Учебная таблица — без печати и сохранения");
КонецПроцедуры
&НаКлиенте
Функция УчебнаяТаблица()
ТабДок = Новый ТабличныйДокумент;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Область(, 1, , 1).ШиринаКолонки = 35;
ТабДок.Область(, 2, , 2).ШиринаКолонки = 10;
ТабДок.Область(, 3, , 3).ШиринаКолонки = 14;
ТабДок.Область(, 4, , 4).ШиринаКолонки = 15;
Заголовок = ТабДок.Область(1, 1, 1, 4);
Заголовок.Объединить();
Заголовок.Текст = "Учебная таблица — данные только в памяти";
Заголовок.Шрифт = Новый Шрифт("Arial", 12, Истина);
Заголовок.ЦветФона = Новый Цвет(230, 242, 255);
Заголовок.ВысотаСтроки = 24;
ТабДок.Область(2, 1).Текст = "Товар";
ТабДок.Область(2, 2).Текст = "Количество";
ТабДок.Область(2, 3).Текст = "Цена";
ТабДок.Область(2, 4).Текст = "Сумма";
Товары = Новый Массив;
Товары.Добавить(Новый Структура("Название,Количество,Цена", "Книга", 3, 250));
Товары.Добавить(Новый Структура("Название,Количество,Цена", "Ручка", 1, 50));
НомерСтроки = 3;
Итого = 0;
Для Каждого Товар Из Товары Цикл
ТабДок.Область(НомерСтроки, 1).Текст = Товар.Название;
Значения = Новый Массив;
Значения.Добавить(Товар.Количество);
Значения.Добавить(Товар.Цена);
Значения.Добавить(Товар.Количество * Товар.Цена);
Для НомерКолонки = 2 По 4 Цикл
Ячейка = ТабДок.Область(НомерСтроки, НомерКолонки);
Ячейка.СодержитЗначение = Истина;
Ячейка.ТипЗначения = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 2));
Ячейка.Значение = Значения.Получить(НомерКолонки - 2);
Ячейка.Формат = "ЧДЦ=2; ЧН=0";
КонецЦикла;
Итого = Итого + Товар.Количество * Товар.Цена;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
ПодписьИтога = ТабДок.Область(5, 1, 5, 3);
ПодписьИтога.Объединить();
ПодписьИтога.Текст = "Итого";
Итог = ТабДок.Область(5, 4);
Итог.СодержитЗначение = Истина;
Итог.ТипЗначения = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 2));
Итог.Значение = Итого;
Итог.Формат = "ЧДЦ=2; ЧН=0";
Все = ТабДок.Область(2, 1, 5, 4);
Все.Шрифт = Новый Шрифт("Arial", 10);
Граница = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1, Ложь);
Все.Обвести(Граница, Граница, Граница, Граница);
Возврат ТабДок;
КонецФункции
Разбор по шагам
Функция полностью создаёт таблицу: Книга 3 × 250, Ручка 1 × 50, итог 800.
Область(3,1,4,4) содержит две товарные строки и четыре колонки. Имя добавляет её в коллекцию именованных областей.
Верх/Низ — строки, Лево/Право — колонки, не координаты пикселей окна.
СодержитОбласть проверяет геометрию внутри того же документа, не наличие текста.
Индекс именованной области начинается с 0, хотя адрес её ячеек начинается с 1. Это разные API.
Как проверить результат
Восемь булевых проверок Истина, дополнительно выводится тип области.
В окне таблицы строки 3/4 — товары, строка 5 — итог 800.
Ожидаемый результат
Понятны именованные области, две системы нумерации и геометрическая проверка вложенности.
На что обратить внимание
Имя области не создаёт реквизит формы или метаданных.
После вставки/удаления строк координаты надо проверять заново; не храните жёсткие адреса рабочего макета без контроля.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.