ТекстовыйДокумент.УдалитьСтроку

Методы · DeleteLine

Удаляет из текстового документа строку с указанным номером.

Синтаксис

УдалитьСтроку(<НомерСтроки>)

Примеры платформы

ТекстДок.УдалитьСтроку(23);
Полное описание, параметры и ограничения

ТекстовыйДокумент.УдалитьСтроку (TextDocument.DeleteLine)

ТекстовыйДокумент (TextDocument)

УдалитьСтроку (DeleteLine)

Доступен, начиная с версии 8.0.

Синтаксис:
УдалитьСтроку(<НомерСтроки>)
Параметры:

<НомерСтроки> (обязательный)
Тип: Число.
Номер удаляемой строки.
Описание:

Удаляет из текстового документа строку с указанным номером.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Пример:

ТекстДок.УдалитьСтроку(23);

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Собрать и исправить текстовый отчёт по строкам

Редактируем небольшой отчёт в памяти: вставка заголовка, замена ошибочной строки, удаление черновика и добавление подвала.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Файлы, макеты и реквизиты конфигурации не нужны.

  2. Номера строк ТекстовогоДокумента начинаются с 1, в отличие от индексов Массив.


Документ = Новый ТекстовыйДокумент;
Документ.РазделительСтрок = Символы.ПС;
Документ.УстановитьТекст("Книга: 3" + Символы.ПС + "Ручка: 99" + Символы.ПС + "Черновик");
Документ.ВставитьСтроку(1, "Учебный остаток");
Документ.ЗаменитьСтроку(3, "Ручка: 1");
Документ.УдалитьСтроку(4);
Подвал = Новый ТекстовыйДокумент;
Подвал.ДобавитьСтроку("Всего товаров: 4");
Документ.Вывести(Подвал);
Документ.УстановитьТипФайла(КодировкаТекста.UTF8);
Для Номер = 1 По Документ.КоличествоСтрок() Цикл
    Сообщить(СтрШаблон("%1: %2", Номер, Документ.ПолучитьСтроку(Номер)));
КонецЦикла;
Сообщить(Документ.ПолучитьТекст());
Копия = Новый ТекстовыйДокумент;
Копия.УстановитьТекст(Документ.ПолучитьТекст());
Копия.Очистить();
Сообщить(Копия.ПолучитьТекст() = "");

Разбор по шагам

  1. УстановитьТекст задаёт три строки исходника с известной ошибкой.

  2. Вставка в начало сдвигает номера: Ручка теперь третья строка, Черновик четвёртая.

  3. Заменяем количество, удаляем черновик, добавляем другой текстовый документ методом Вывести.

  4. Обходим строки и читаем полный текст; очищаем отдельную копию, не исходный отчёт.

Как проверить результат

  1. В отчёте есть Учебный остаток, Книга: 3, Ручка: 1 и Всего товаров: 4; слова Черновик нет.

  2. Очищенная копия возвращает пустой текст; исходный документ остаётся заполненным.

  3. Попробуйте номер 0 в ПолучитьСтроку только в учебной базе: это не первая строка.

Ожидаемый результат

Отчёт исправлен в памяти, оригинал и очищенная копия — разные объекты.

На что обратить внимание

  1. После вставки или удаления номера следующих строк меняются.

  2. УстановитьТипФайла задаёт параметры интерактивного сохранения, но сам по себе не создаёт файл.

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

Выделить собственные именованные области и убрать только их служебные границы

Свою памятку делим на Шапка/Итог с помощью #Область. ПолучитьОбласть создаёт новый текстовый документ, поэтому изменение копии не портит источник.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Учебная база, серверный общий модуль УчебныеЗадачи. Фрагмент без директив поместите внутрь ВыполнитьПример() Экспорт.

  2. Каждый пример создаёт собственный текстовый документ. Ни рабочий файл, ни макет конфигурации не перезаписывается.

  3. Индексы строк ТекстовыйДокумент начинаются с 1, а индексы массивов/параметров — с 0.

Макет = Новый ТекстовыйДокумент;
Макет.УстановитьТекст("#Область Шапка" + Символы.ПС
    + "Учебная покупка" + Символы.ПС + "#КонецОбласти" + Символы.ПС
    + "#Область Итог" + Символы.ПС
    + "Книга: 3 × 250 = 750 руб." + Символы.ПС + "#КонецОбласти");
Макет.КодЯзыкаМакета = "ru";
Сообщить(Макет.КодЯзыкаМакета = "ru");
ИсходныйТекст = Макет.ПолучитьТекст();
Шапка = Макет.ПолучитьОбласть("Шапка");
Итог = Макет.ПолучитьОбласть("Итог");
Если Шапка.КоличествоСтрок() <> 3 Или Итог.КоличествоСтрок() <> 3 Тогда
    ВызватьИсключение "Учебные области должны содержать границы и одну строку содержимого";
КонецЕсли;
Шапка.УдалитьСтроку(Шапка.КоличествоСтрок());
Шапка.УдалитьСтроку(1);
Итог.УдалитьСтроку(Итог.КоличествоСтрок());
Итог.УдалитьСтроку(1);
Результат = Новый ТекстовыйДокумент;
Результат.Вывести(Шапка);
Результат.Вывести(Итог);
Сообщить(Результат.ПолучитьСтроку(1) = "Учебная покупка");
Сообщить(Результат.ПолучитьСтроку(2) = "Книга: 3 × 250 = 750 руб.");
Сообщить(Макет.ПолучитьТекст() = ИсходныйТекст);

Разбор по шагам

  1. Во входном тексте две явно закрытые области с одной строкой содержимого внутри каждой.

  2. КодЯзыкаМакета задаёт язык получения областей; это не кодировка байтов файла UTF-8.

  3. ПолучитьОбласть возвращает новый ТекстовыйДокумент. В разборе BSL-маркеров границы включены в полученную область, что сначала проверяем количеством строк.

  4. Удаляем последнюю служебную строку и затем первую, поэтому номера не сдвигаются до обращения к последней.

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

  6. Такая работа с #Область встречается в реальном КА2 Gorizont: процедура СодержимоеОбластейПравилЗагрузки в общем модуле РегламентированнаяОтчетностьЗагрузка. Здесь её данные и загрузка не выполняются.

Как проверить результат

  1. Четыре булевых сообщения Истина: язык ru, заголовок, итог, неизменный источник.

  2. Итог содержит только две полезные строки без #Область/#КонецОбласти.

Ожидаемый результат

Из своей размеченной памятки получены две независимые области и собран выходной текст.

На что обратить внимание

  1. Не смешивайте BSL-области с синтаксисом параметров/форматных полей текстового печатного макета — это отдельная тема.

  2. ПолучитьОбласть доступен на сервере/в толстом клиенте/внешнем соединении, не в обработчике тонкого клиента.

  3. Ошибки границ и отсутствующее имя области надо обрабатывать отдельно; это упражнение использует известную собственную разметку.

  4. Реальная процедура загрузки в КА2 имеет дополнительные условия прав и входных данных; здесь только самостоятельное упражнение в памяти.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.