Устанавливает порядок по указанной колонке. Если в момент установки порядка по этой колонке уже выполняется сортировка, порядок сортировки устанавливается на противоположный.
Синтаксис
УстановитьПорядок(<ЗаголовокКолонки>)Полное описание, параметры и ограничения
ТестируемаяТаблицаФормы.УстановитьПорядок (TestedFormTable.SetOrder)
ТестируемаяТаблицаФормы (TestedFormTable)
УстановитьПорядок (SetOrder)
Доступен, начиная с версии 8.3.6.
Синтаксис:
УстановитьПорядок(<ЗаголовокКолонки>)
Параметры:
<ЗаголовокКолонки> (обязательный)
Тип: Строка.
Заголовок колонки, по которой требуется установить сортировку, например: "Код".
Описание:
Устанавливает порядок по указанной колонке. Если в момент установки порядка по этой колонке уже выполняется сортировка, порядок сортировки устанавливается на противоположный.
Доступность:
Тонкий клиент, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.6.
Методическая информация
Практические примеры
Отсортировать учебную таблицу и изменить направление
Проверяем сортировку по заголовку Наименование и её повторное переключение. Отдельно ищем визуальные колонки и не обращаемся к индексу пустого результата.
Где и как запускать
Полный клиентский модуль формы обработки в менеджере тестов, запущенном с /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);
Колонки = Таблица.НайтиОбъекты(Тип("ТестируемоеПолеФормы"), , "Товары*", 10);
Сообщить("Найдено учебных визуальных полей: " + Строка(Колонки.Количество()));
Код = Таблица.НайтиОбъект(Тип("ТестируемоеПолеФормы"), , "ТоварыКод", 10);
Если Код = Неопределено Тогда
ВызватьИсключение "Учебная колонка кода не найдена";
КонецЕсли;
Количество = Таблица.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ТоварыКоличество", 10);
Сообщить(Количество.ТекущаяДоступность());
Сообщить("Панель команд найдена: " + Строка(Таблица.ПолучитьКоманднуюПанель() <> Неопределено));
Таблица.Активизировать();
Таблица.УстановитьПорядок("Наименование");
Таблица.ПерейтиКПервойСтроке();
ПервыйДоПереключения = Таблица.ПолучитьТекстЯчейки("ТоварыКод");
Таблица.ПерейтиКПоследнейСтроке();
ПоследнийДоПереключения = Таблица.ПолучитьТекстЯчейки("ТоварыКод");
Сообщить("Первый/последний после сортировки: " + ПервыйДоПереключения + "/" + ПоследнийДоПереключения);
Таблица.УстановитьПорядок("Наименование");
Таблица.ПерейтиКПервойСтроке();
Сообщить(Таблица.ПолучитьТекстЯчейки("ТоварыКод") = ПоследнийДоПереключения);
Таблица.ПерейтиКПоследнейСтроке();
Сообщить(Таблица.ПолучитьТекстЯчейки("ТоварыКод") = ПервыйДоПереключения);
Исключение
ОшибкаТеста = ОписаниеОшибки();
КонецПопытки;
ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
КонецЕсли;
Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры
&НаКлиенте
Функция ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит)
ОшибкиЗавершения = "";
Если ТипЗнч(ИсходныйЛимит) = Тип("Число") Тогда
Попытка
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(ИсходныйЛимит);
Исключение
ОшибкиЗавершения = "Не восстановлен лимит действий: " + ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Попытка
Приложение.РазорватьСоединение();
Исключение
ОшибкиЗавершения = ОшибкиЗавершения + " Не разорвано соединение: " + ОписаниеОшибки();
КонецПопытки;
Возврат ОшибкиЗавершения;
КонецФункцииРазбор по шагам
Сначала открываем собственную таблицу в отдельном клиенте тестирования. Подключаемся только к 127.0.0.1:15380, ищем точный заголовок и внутреннее имя таблицы с таймаутами 10 секунд.
НайтиОбъекты возвращает фиксированный массив, НайтиОбъект — объект или Неопределено, ПолучитьОбъект при отсутствии вызывает исключение. Для известного обязательного поля применяется последний вариант.
Шаблон Товары* используется только внутри уже проверенной собственной таблицы, не по всему рабочему приложению.
УстановитьПорядок принимает видимый заголовок Наименование. В этом fixture он отличается от подписи реквизита Название; код таблицы явно задал Наименование.
Повторный вызов по той же колонке переключает направление сортировки. Поэтому запоминаем крайние коды после первого вызова и проверяем их обмен после второго, не угадывая исходную сортировку.
Поиск командной панели — получение тестируемого объекта, не нажатие её команд и не доказательство конкретного набора кнопок.
После теста восстанавливаем исходный лимит действий и отдельно пытаемся разорвать соединение, даже при исключении. Ошибки завершения не скрываем; разрыв соединения не закрывает тестируемое приложение.
Как проверить результат
Поле количества доступно; две проверки крайних кодов после переключения дают Истина.
Строки по-прежнему Книга, Ручка, Бумага с теми же кодами/количествами. Сортировка меняет порядок показа, не код товара.
Ожидаемый результат
Показан устойчивый тест переключения сортировки и три варианта поиска объектов.
На что обратить внимание
Не считайте повторный УстановитьПорядок идемпотентным: он меняет направление.
Отсутствие командной панели/полей нужно диагностировать по реальному интерфейсу, не заменять выдуманными объектами.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.