ТекстовыйДокумент.ПолучитьСтроку

Методы · GetLine

Получает строку текстового документа по номеру.

Синтаксис

ПолучитьСтроку(<НомерСтроки>)

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

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

ТекстовыйДокумент.ПолучитьСтроку (TextDocument.GetLine)

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

ПолучитьСтроку (GetLine)

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

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

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

Описание:

Получает строку текстового документа по номеру.

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

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

Пример:

Стр = Текст.ПолучитьСтроку(Ном);

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

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

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

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

Асинхронно показать свой протокол 125 без чтения и записи файлов

Две учебные цены складываются в памяти. Настоящий ТекстовыйДокумент передаётся в ОткрытьЗначениеАсинх, а результат настоящего обещания проверяется отдельно от содержимого.

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

Полный клиентский модуль собственной общей управляемой формы ПросмотрПротокола125. Настоящая кнопка запускает Асинх Процедура; ни серверные процедуры, ни RPC не используются.

Подготовка

  1. Работайте только в своей новой пустой учебной файловой базе на 8.5.1.1343, не в рабочей конфигурации. Никаких справочников, файлов, внешних объектов, учётных записей сервисов или сетевых ресурсов не нужно.

  2. Конфигуратор → корень Конфигурация → Основной режим запуска: Управляемое приложение; Режим совместимости: НеИспользовать. Сохраните конфигурацию и обновите конфигурацию базы данных.

  3. Конфигуратор → Общие → Общие формы → Добавить. Имя: ПросмотрПротокола125, тип: управляемая форма. Реквизиты и обработчики открытия для этого примера не нужны.

  4. В редакторе формы на вкладке Команды создайте ПоказатьПротокол125. Для её Действия назначьте процедуру ПоказатьПротокол125. Перетащите команду в дерево элементов формы, чтобы получить настоящую кнопку.

  5. Вставьте весь показанный блок на верхнем уровне модуля этой формы, заменив созданную заготовку обработчика. Не вставляйте Асинх Процедура внутрь другой процедуры и не вызывайте её вручную с выдуманным параметром Команда.

  6. В редакторе рабочей области начальной страницы добавьте только свою общую форму ПросмотрПротокола125. Обновите свою учебную базу, запустите её толстым клиентом в управляемом режиме и один раз нажмите кнопку. Новичку не требуется писать дополнительный запускной модуль.

  7. Всё создание базы и формы — будущая ручная подготовка пользователя. Здесь не запускались 1С, диалог, конфигуратор, запись БД или файловые операции.

&НаКлиенте
Асинх Процедура ПоказатьПротокол125(Команда)
    #Если ТолстыйКлиентУправляемоеПриложение Тогда
    Если ТипЗнч(Команда) <> Тип("КомандаФормы") Тогда
        ВызватьИсключение "Запустите настоящую команду своей учебной формы";
    КонецЕсли;
    Если Команда.Имя <> "ПоказатьПротокол125" Тогда
        ВызватьИсключение "Нужна команда ПоказатьПротокол125";
    КонецЕсли;
    ЦенаА = 50;
    ЦенаБ = 75;
    Итого = ЦенаА + ЦенаБ;
    Протокол = СтрШаблон("Учебный протокол: A=%1; B=%2; итого=%3", ЦенаА, ЦенаБ, Итого);
    Документ = Новый ТекстовыйДокумент;
    Документ.УстановитьТекст(Протокол);
    Документ.ТолькоПросмотр = Истина;
    Если Документ.КоличествоСтрок() <> 1
        Или Документ.ПолучитьСтроку(1) <> Протокол
        Или Не Документ.ТолькоПросмотр Тогда
        ВызватьИсключение "Не подготовлен собственный протокол в памяти";
    КонецЕсли;
    РезультатПоказа = Ждать ОткрытьЗначениеАсинх(Документ);
    Если РезультатПоказа <> Неопределено Тогда
        ВызватьИсключение "Нарушен документированный контракт результата обещания";
    КонецЕсли;
    Если Документ.КоличествоСтрок() <> 1
        Или Документ.ПолучитьСтроку(1) <> Протокол
        Или Не Документ.ТолькоПросмотр Тогда
        ВызватьИсключение "Содержимое собственного протокола изменилось";
    КонецЕсли;
    Сообщить("Вызов просмотра завершён. Это не подтверждение прочтения или сохранения документа.");
    #Иначе
    ВызватьИсключение "Запустите собственную учебную форму толстым клиентом в управляемом режиме";
    #КонецЕсли
КонецПроцедуры

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

  1. Директива &НаКлиенте и модификатор Асинх относятся к настоящему обработчику кнопки. Препроцессор оставляет рабочую ветку только в толстом управляемом клиенте.

  2. Команда — штатный параметр события кнопки. Проверяем его фактический тип и имя, а не передаём неизвестный ИсходныйОбъект.

  3. ЦенаА=50 и ЦенаБ=75 — собственные учебные числа. Итого вычисляется сложением; СтрШаблон включает фактический результат в одну строку.

  4. Новый ТекстовыйДокумент создаёт объект в памяти; УстановитьТекст наполняет его нашей строкой. ТолькоПросмотр запрещает редактирование его содержимого в режиме просмотра.

  5. Перед показом перечитываем фактическое число строк, строку 1 и режим просмотра. ОткрытьЗначениеАсинх получает именно этот проверенный объект.

  6. Ждать потребляет настоящее обещание метода. Его документированный результат — Неопределено, а не Истина, выбранная строка или отредактированный документ.

  7. После наполнения обещания снова перечитываем тот же объект. Сообщение сообщает только о завершении вызова; оно не утверждает, что пользователь прочитал текст, закрыл окно или сохранил файл.

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

  1. В диалоге просмотра должен быть собственный текст: Учебный протокол: A=50; B=75; итого=125. Сравните все три числа с исходниками и сложением.

  2. Попробуйте изменить текст в режиме просмотра: ТолькоПросмотр=Истина означает, что содержимое не доступно для редактирования. Не используйте команды сохранения или печати.

  3. После наполнения обещания выполняется контроль Неопределено и повторное чтение. Если возникло исключение, это не успешный показ и не повод подставлять ожидаемый текст.

  4. В новой учебной проверке измените только ЦенаА на 60: ожидаемые A=60, B=75, итого=135. Объект и показ должны содержать вычисленные новые значения.

  5. Один запуск кнопки создаёт один собственный документ. Для повторного опыта завершите предыдущий просмотр и снова нажмите кнопку вручную; автоматических повторов и таймеров нет.

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

Настоящий собственный текстовый документ показан через асинхронный API. Содержимое читается из того же объекта до и после вызова; Неопределено трактуется как результат обещания, а не пользовательское согласие.

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

  1. Справка не обещает, что завершение этого обещания означает закрытие окна или прочтение человеком. Код не использует эти недоказанные выводы.

  2. Здесь показан только ТекстовыйДокумент: не любой тип гарантированно поддерживает диалог. Для ссылок, форм и других объектов действует их собственный контракт.

  3. ТолькоПросмотр не является защитой от копирования, снимка экрана или отдельной пользовательской команды сохранения. Наш код не вызывает запись, печать, запуск программ или сеть.

  4. Проверка строк не заменяет визуальную проверку настоящего диалога. Блоки и сигнатуры проверены статически, запуск в 1С не выполнен.

  5. Не переносите Ждать в обычную процедуру: оператор допустим только в Асинх. Не заменяйте настоящее обещание заранее созданным Обещание или ручным вызовом продолжения.

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

Асинхронно записать две русские строки в память и прочитать их обратно

Согласовываем кодировку UTF-8 и разделитель ПС, ожидаем обе операции и проверяем содержимое строк, не результат обещания записи как Булево.

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

Модуль пустой управляемой формы учебной внешней обработки; тонкий или толстый клиент Windows. Вставьте весь модуль. Это не серверный код.

Подготовка

  1. Создайте учебную внешнюю обработку с пустой управляемой основной формой. Создайте команду УчебныйПример и кнопку этой команды.

  2. В свойстве команды Действие выберите процедуру УчебныйПример. Вставьте полный приведённый модуль формы.

  3. Откройте EPF в тонком или толстом клиенте Windows и нажмите кнопку. Не переносите Ждать и Асинх в серверный общий модуль.

  4. Пример работает только со своими данными в памяти; записи в базу, файлы и сеть нет.

&НаКлиенте
Асинх Процедура УчебныйПример(Команда)
    Исходный = Новый ТекстовыйДокумент;
    Исходный.УстановитьТекст("Книга" + Символы.ПС + "Ручка");
    ПотокЗаписи = Новый ПотокВПамяти;
    Попытка
        Ждать Исходный.ЗаписатьАсинх(ПотокЗаписи, КодировкаТекста.UTF8, Символы.ПС, Ложь);
    Исключение
        ПотокЗаписи.Закрыть();
        ВызватьИсключение;
    КонецПопытки;
    Данные = ПотокЗаписи.ЗакрытьИПолучитьДвоичныеДанные();
    Сообщить(Данные.Размер() > 0);
    ПотокЧтения = Данные.ОткрытьПотокДляЧтения();
    Копия = Новый ТекстовыйДокумент;
    Попытка
        Ждать Копия.ПрочитатьАсинх(ПотокЧтения, КодировкаТекста.UTF8, Символы.ПС);
    Исключение
        ПотокЧтения.Закрыть();
        ВызватьИсключение;
    КонецПопытки;
    ПотокЧтения.Закрыть();
    Сообщить(Копия.КоличествоСтрок() = Исходный.КоличествоСтрок());
    Сообщить(Копия.ПолучитьСтроку(1) = "Книга");
    Сообщить(Копия.ПолучитьСтроку(2) = "Ручка");
КонецПроцедуры

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

  1. Исходный документ содержит две русские строки. Экспортируем в свой поток, а не в файл.

  2. Перегрузка ЗаписатьАсинх в поток позволяет явно указать ЗаписатьBOM=Ложь.

  3. Закрытие и извлечение ДвоичныеДанные выполняется только ПОСЛЕ Ждать записи.

  4. Для чтения открываем другой поток из готовых данных и ожидаем ПрочитатьАсинх в той же кодировке.

  5. ПрочитатьАсинх заполняет сам объект Копия; результат обещания — Неопределено, не новый ТекстовыйДокумент.

  6. Поток чтения принадлежит нашему коду и закрывается явно после операции.

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

  1. Все четыре сравнения Истина: байты непустые, число строк совпало, восстановлены Книга и Ручка.

  2. Повторный запуск не дописывает старые данные и не создаёт файлов.

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

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

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

  1. Не присваивайте Копия = Ждать Копия.ПрочитатьАсинх(...): вы затрёте объект значением Неопределено.

  2. Отсутствие BOM требует согласованной явной кодировки. Не полагайтесь на угадывание кириллицы.

  3. Не закрывайте поток, пока операция ожидается; пользовательское скачивание в браузере этим примером не проверяется.

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

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

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

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

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