Перемещает курсор к следующей строке.
Синтаксис
ПерейтиКСледующейСтроке(<ПереключитьВыделение>)Полное описание, параметры и ограничения
ТестируемаяТаблицаФормы.ПерейтиКСледующейСтроке (TestedFormTable.GotoNextRow)
ТестируемаяТаблицаФормы (TestedFormTable)
ПерейтиКСледующейСтроке (GotoNextRow)
Доступен, начиная с версии 8.3.1.
Синтаксис:
ПерейтиКСледующейСтроке(<ПереключитьВыделение>)
Параметры:
<ПереключитьВыделение> (необязательный)
Тип: Булево.
Если установлено Ложь, поведение метода эмулирует обычный переход курсора к строке при помощи клавиатуры.
Если установлено Истина, поведение метода эмулирует обычный переход курсора к строке при помощи клавиатуры с нажатой клавишей Shift.
Значение по умолчанию: Ложь.
Описание:
Перемещает курсор к следующей строке.
Доступность:
Тонкий клиент, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.1.
Методическая информация
Практические примеры
Записать журнал собственных UI-действий и разобрать XML
Записываем навигацию своей таблицы, временно приостанавливаем журнал, продолжаем и читаем полученный XML. При ошибке запись явно прерывается.
Где и как запускать
Полный клиентский модуль формы обработки в менеджере тестов, запущенном с /TESTMANAGER. Это не модуль тестируемой таблицы.
Подготовка
Создайте собственную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса. Первый урок содержит полный модуль отдельной внешней обработки УчебнаяТаблицаТестирования; её данные только в памяти.
Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.
В тестируемом клиенте вручную откройте собственную обработку из первого урока. В менеджере создайте другую внешнюю обработку с командой ВыполнитьПример; полный код одного теста вставьте в её модуль формы.
Перед каждым тестом закройте и заново откройте таблицу в тестируемом клиенте. Исходно в ней A-01/Книга/3, B-02/Ручка/1, C-00/Бумага/2, без ранее установленной сортировки и редактирования.
Каждый тест ищет точный учебный заголовок и таблицу ТаблицаТоваров внутри этой формы. Не заменяйте селекторы на * или первый найденный элемент рабочего приложения.
Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Приложение = Новый ТестируемоеПриложение("127.0.0.1", 15380);
Приложение.УстановитьСоединение();
ИсходныйЛимит = Неопределено;
ОшибкаТеста = "";
Попытка
Форма = Приложение.ПолучитьОбъект(Тип("ТестируемаяФорма"), "Учебная таблица guide-owned-ui-2026", , 10);
Таблица = Форма.ПолучитьОбъект(Тип("ТестируемаяТаблицаФормы"), , "ТаблицаТоваров", 10);
ИсходныйЛимит = Приложение.ПолучитьМаксимальноеВремяВыполненияДействия();
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(10);
ЗаписьНачата = Ложь;
ОшибкаЖурнала = "";
ТекстЖурнала = "";
Попытка
Приложение.НачатьЗаписьЖурналаДействийПользователя();
ЗаписьНачата = Истина;
Таблица.Активизировать();
Таблица.ПерейтиКПервойСтроке();
Таблица.ПерейтиКСледующейСтроке();
Приложение.ПриостановитьЗаписьЖурналаДействийПользователя();
Таблица.ПерейтиКПоследнейСтроке();
Приложение.ПродолжитьЗаписьЖурналаДействийПользователя();
Таблица.ПерейтиКПервойСтроке();
ТекстЖурнала = Приложение.ЗавершитьЗаписьЖурналаДействийПользователя();
ЗаписьНачата = Ложь;
Исключение
ОшибкаЖурнала = ОписаниеОшибки();
КонецПопытки;
Если ЗаписьНачата Тогда
Попытка
Приложение.ПрерватьЗаписьЖурналаДействийПользователя();
Исключение
ВызватьИсключение "Запись не прервана: " + ОписаниеОшибки() + "; исходная ошибка: " + ОшибкаЖурнала;
КонецПопытки;
КонецЕсли;
Если Не ПустаяСтрока(ОшибкаЖурнала) Тогда
ВызватьИсключение ОшибкаЖурнала;
КонецЕсли;
Если ПустаяСтрока(ТекстЖурнала) Тогда
ВызватьИсключение "Журнал собственных действий пуст";
КонецЕсли;
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(ТекстЖурнала);
Узлов = 0;
Попытка
Пока Чтение.Прочитать() Цикл
Узлов = Узлов + 1;
КонецЦикла;
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Сообщить(Узлов > 0);
Сообщить("Журнал прочитан как XML; весь текст не публикуется");
Исключение
ОшибкаТеста = ОписаниеОшибки();
КонецПопытки;
ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
КонецЕсли;
Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры
&НаКлиенте
Функция ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит)
ОшибкиЗавершения = "";
Если ТипЗнч(ИсходныйЛимит) = Тип("Число") Тогда
Попытка
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(ИсходныйЛимит);
Исключение
ОшибкиЗавершения = "Не восстановлен лимит действий: " + ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Попытка
Приложение.РазорватьСоединение();
Исключение
ОшибкиЗавершения = ОшибкиЗавершения + " Не разорвано соединение: " + ОписаниеОшибки();
КонецПопытки;
Возврат ОшибкиЗавершения;
КонецФункцииРазбор по шагам
Сначала открываем собственную таблицу в отдельном клиенте тестирования. Подключаемся только к 127.0.0.1:15380, ищем точный заголовок и внутреннее имя таблицы с таймаутами 10 секунд.
Тестируемое приложение должно быть изолированным, без чужой уже начатой записи действий. Здесь записываем только собственную таблицу памяти.
Приостановить останавливает добавление записей, не сам клиент. Переход к последней строке во время паузы выполняется, но его запись не ожидается в журнале.
Продолжить возобновляет запись, Завершить возвращает XML-строку. Прервать используется при ошибке, когда запись всё ещё начата.
Отдельно обрабатываем сбой прерывания, сохраняя описание исходной ошибки. Не выдаём потерю соединения за успешно остановленный журнал.
XML читается стандартным ЧтениеXML без предположений об именах узлов схемы. Количество XML-узлов не равно числу пользовательских действий.
Не выводим весь журнал в сообщения: реальная запись действий может содержать имена, пути и введённые значения. Собственный fixture минимизирует данные, но не заменяет просмотр содержимого.
После теста восстанавливаем исходный лимит действий и отдельно пытаемся разорвать соединение, даже при исключении. Ошибки завершения не скрываем; разрыв соединения не закрывает тестируемое приложение.
Как проверить результат
Непустой журнал успешно читается как XML; контроль Узлов > 0 даёт Истина.
Если нужно проверить паузу, изучите XML вручную только в своей базе и сверяйте записанные переходы, не угадывая теги. После успеха/обработанной ошибки запись не должна оставаться активной.
Ожидаемый результат
Показан полный жизненный цикл журнала с паузой, продолжением, завершением и аварийным прерыванием.
На что обратить внимание
Не путайте этот журнал с журналом регистрации информационной базы.
Не публикуйте XML журнала рабочего приложения без проверки персональных и служебных данных.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Найти строку Ручки и управлять выделением
Переходим по соответствию заголовок→текст, проверяем многовыделение и очищаем его без удаления товаров.
Где и как запускать
Полный клиентский модуль формы обработки в менеджере тестов, запущенном с /TESTMANAGER. Это не модуль тестируемой таблицы.
Подготовка
Создайте собственную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса. Первый урок содержит полный модуль отдельной внешней обработки УчебнаяТаблицаТестирования; её данные только в памяти.
Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.
В тестируемом клиенте вручную откройте собственную обработку из первого урока. В менеджере создайте другую внешнюю обработку с командой ВыполнитьПример; полный код одного теста вставьте в её модуль формы.
Перед каждым тестом закройте и заново откройте таблицу в тестируемом клиенте. Исходно в ней A-01/Книга/3, B-02/Ручка/1, C-00/Бумага/2, без ранее установленной сортировки и редактирования.
Каждый тест ищет точный учебный заголовок и таблицу ТаблицаТоваров внутри этой формы. Не заменяйте селекторы на * или первый найденный элемент рабочего приложения.
Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Приложение = Новый ТестируемоеПриложение("127.0.0.1", 15380);
Приложение.УстановитьСоединение();
ИсходныйЛимит = Неопределено;
ОшибкаТеста = "";
Попытка
Форма = Приложение.ПолучитьОбъект(Тип("ТестируемаяФорма"), "Учебная таблица guide-owned-ui-2026", , 10);
Таблица = Форма.ПолучитьОбъект(Тип("ТестируемаяТаблицаФормы"), , "ТаблицаТоваров", 10);
ИсходныйЛимит = Приложение.ПолучитьМаксимальноеВремяВыполненияДействия();
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(10);
Таблица.Активизировать();
Таблица.ПерейтиКПервойСтроке();
ОписаниеРучки = Новый Соответствие;
ОписаниеРучки.Вставить("Код", "B-02");
Перешли = Таблица.ПерейтиКСтроке(ОписаниеРучки, НаправлениеПереходаКСтроке.Вниз, Ложь);
Если Не Перешли Тогда
ВызватьИсключение "Собственная строка B-02 не найдена";
КонецЕсли;
Сообщить(Таблица.ПолучитьТекстЯчейки("ТоварыНаименование") = "Ручка");
Если Таблица.ТекущийРежимРедактирование() Тогда
Таблица.ЗакончитьРедактированиеСтроки();
КонецЕсли;
Таблица.ВыделитьВсеСтроки();
Сообщить(Таблица.ПолучитьВыделенныеСтроки().Количество() = 3);
Таблица.СнятьВыделениеВсехСтрок();
Сообщить(Таблица.ПолучитьВыделенныеСтроки().Количество() = 0);
Таблица.ВыделитьСтроку(ОписаниеРучки);
Сообщить(Таблица.ПолучитьВыделенныеСтроки().Количество() = 1);
Таблица.СнятьВыделениеСтроки(ОписаниеРучки);
Сообщить(Таблица.ПолучитьВыделенныеСтроки().Количество() = 0);
Таблица.ПерейтиКПоследнейСтроке();
Сообщить(Таблица.ПолучитьТекстЯчейки("ТоварыКод") = "C-00");
Таблица.ПерейтиКПредыдущейСтроке();
Сообщить(Таблица.ПолучитьТекстЯчейки("ТоварыКод") = "B-02");
Таблица.ПерейтиКСледующейСтроке();
Сообщить(Таблица.ПолучитьТекстЯчейки("ТоварыКод") = "C-00");
Исключение
ОшибкаТеста = ОписаниеОшибки();
КонецПопытки;
ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
КонецЕсли;
Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры
&НаКлиенте
Функция ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит)
ОшибкиЗавершения = "";
Если ТипЗнч(ИсходныйЛимит) = Тип("Число") Тогда
Попытка
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(ИсходныйЛимит);
Исключение
ОшибкиЗавершения = "Не восстановлен лимит действий: " + ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Попытка
Приложение.РазорватьСоединение();
Исключение
ОшибкиЗавершения = ОшибкиЗавершения + " Не разорвано соединение: " + ОписаниеОшибки();
КонецПопытки;
Возврат ОшибкиЗавершения;
КонецФункцииРазбор по шагам
Сначала открываем собственную таблицу в отдельном клиенте тестирования. Подключаемся только к 127.0.0.1:15380, ищем точный заголовок и внутреннее имя таблицы с таймаутами 10 секунд.
ОписаниеСтроки — Соответствие с заголовком Код и текстом B-02, не SQL-условие, номер строки или её внутренний идентификатор.
Направление Вниз применяется от текущего положения, поэтому сначала переходим к первой строке. Ложь имитирует обычный выбор, не Ctrl-многовыделение.
ВыделитьВсеСтроки запрещён во время редактирования/добавления. Сначала проверяем режим и завершаем редактирование.
ВыделитьСтроку требует видимой строки. Fixture содержит три видимых строки, не длинный рабочий список с виртуальной загрузкой.
Снять выделение не удаляет строку. Последняя/предыдущая/следующая перемещают курсор по исходному несортированному списку.
После теста восстанавливаем исходный лимит действий и отдельно пытаемся разорвать соединение, даже при исключении. Ошибки завершения не скрываем; разрыв соединения не закрывает тестируемое приложение.
Как проверить результат
Восемь контрольных Истина; выделение меняется 3→0→1→0.
Количество строк всё ещё 3. Навигация по кодам даёт C-00→B-02→C-00; значения не меняются.
Ожидаемый результат
Показан поиск строки, навигация и полноценный цикл многовыделения без удаления данных.
На что обратить внимание
Заголовок колонки и внутреннее имя поля — разные селекторы.
Шаблоны * и ? в тексте описания строки могут выбрать не ту строку; собственные коды здесь точные.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.