Получает область текстового документа в качестве нового текстового документа.
Синтаксис
ПолучитьОбласть(<ИмяОбласти>)Полное описание, параметры и ограничения
ТекстовыйДокумент.ПолучитьОбласть (TextDocument.GetArea)
ТекстовыйДокумент (TextDocument)
ПолучитьОбласть (GetArea)
Доступен, начиная с версии 8.0.
Синтаксис:
ПолучитьОбласть(<ИмяОбласти>)
Параметры:
<ИмяОбласти> (обязательный)
Тип: Строка.
Имя области текстового документа.
Возвращаемое значение:
Тип: ТекстовыйДокумент.
Описание:
Получает область текстового документа в качестве нового текстового документа.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Выделить собственные именованные области и убрать только их служебные границы
Свою памятку делим на Шапка/Итог с помощью #Область. ПолучитьОбласть создаёт новый текстовый документ, поэтому изменение копии не портит источник.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Учебная база, серверный общий модуль УчебныеЗадачи. Фрагмент без директив поместите внутрь ВыполнитьПример() Экспорт.
Каждый пример создаёт собственный текстовый документ. Ни рабочий файл, ни макет конфигурации не перезаписывается.
Индексы строк ТекстовыйДокумент начинаются с 1, а индексы массивов/параметров — с 0.
Макет = Новый ТекстовыйДокумент;
Макет.УстановитьТекст("#Область Шапка" + Символы.ПС
+ "Учебная покупка" + Символы.ПС + "#КонецОбласти" + Символы.ПС
+ "#Область Итог" + Символы.ПС
+ "Книга: 3 × 250 = 750 руб." + Символы.ПС + "#КонецОбласти");
Макет.КодЯзыкаМакета = "ru";
Сообщить(Макет.КодЯзыкаМакета = "ru");
ИсходныйТекст = Макет.ПолучитьТекст();
Шапка = Макет.ПолучитьОбласть("Шапка");
Итог = Макет.ПолучитьОбласть("Итог");
Если Шапка.КоличествоСтрок() <> 3 Или Итог.КоличествоСтрок() <> 3 Тогда
ВызватьИсключение "Учебные области должны содержать границы и одну строку содержимого";
КонецЕсли;
Шапка.УдалитьСтроку(Шапка.КоличествоСтрок());
Шапка.УдалитьСтроку(1);
Итог.УдалитьСтроку(Итог.КоличествоСтрок());
Итог.УдалитьСтроку(1);
Результат = Новый ТекстовыйДокумент;
Результат.Вывести(Шапка);
Результат.Вывести(Итог);
Сообщить(Результат.ПолучитьСтроку(1) = "Учебная покупка");
Сообщить(Результат.ПолучитьСтроку(2) = "Книга: 3 × 250 = 750 руб.");
Сообщить(Макет.ПолучитьТекст() = ИсходныйТекст);Разбор по шагам
Во входном тексте две явно закрытые области с одной строкой содержимого внутри каждой.
КодЯзыкаМакета задаёт язык получения областей; это не кодировка байтов файла UTF-8.
ПолучитьОбласть возвращает новый ТекстовыйДокумент. В разборе BSL-маркеров границы включены в полученную область, что сначала проверяем количеством строк.
Удаляем последнюю служебную строку и затем первую, поэтому номера не сдвигаются до обращения к последней.
Вывести собирает новый результат из очищенных копий. Исходный текст проверяем на полное сохранение.
Такая работа с #Область встречается в реальном КА2 Gorizont: процедура СодержимоеОбластейПравилЗагрузки в общем модуле РегламентированнаяОтчетностьЗагрузка. Здесь её данные и загрузка не выполняются.
Как проверить результат
Четыре булевых сообщения Истина: язык ru, заголовок, итог, неизменный источник.
Итог содержит только две полезные строки без #Область/#КонецОбласти.
Ожидаемый результат
Из своей размеченной памятки получены две независимые области и собран выходной текст.
На что обратить внимание
Не смешивайте BSL-области с синтаксисом параметров/форматных полей текстового печатного макета — это отдельная тема.
ПолучитьОбласть доступен на сервере/в толстом клиенте/внешнем соединении, не в обработчике тонкого клиента.
Ошибки границ и отсутствующее имя области надо обрабатывать отдельно; это упражнение использует известную собственную разметку.
Реальная процедура загрузки в КА2 имеет дополнительные условия прав и входных данных; здесь только самостоятельное упражнение в памяти.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.