Подготовить собственную таблицу для UI-тестов

Учебные задачи

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

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

Полный модуль формы отдельной тестируемой обработки. Событие ПриСозданииНаСервере назначается вручную. Этот урок запускается в клиенте, а не менеджере тестов.

Подготовка

  1. Создайте собственную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса. Первый урок содержит полный модуль отдельной внешней обработки УчебнаяТаблицаТестирования; её данные только в памяти.

  2. Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.

  3. В тестируемом клиенте вручную откройте собственную обработку из первого урока. В менеджере создайте другую внешнюю обработку с командой ВыполнитьПример; полный код одного теста вставьте в её модуль формы.

  4. Перед каждым тестом закройте и заново откройте таблицу в тестируемом клиенте. Исходно в ней A-01/Книга/3, B-02/Ручка/1, C-00/Бумага/2, без ранее установленной сортировки и редактирования.

  5. Каждый тест ищет точный учебный заголовок и таблицу ТаблицаТоваров внутри этой формы. Не заменяйте селекторы на * или первый найденный элемент рабочего приложения.

  6. Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЭтаФорма.АвтоЗаголовок = Ложь;
    ЭтаФорма.Заголовок = "Учебная таблица guide-owned-ui-2026";
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Товары", Новый ОписаниеТипов("ТаблицаЗначений")));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Код", Новый ОписаниеТипов("Строка"), "Товары", "Код"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Наименование", Новый ОписаниеТипов("Строка"), "Товары", "Название"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)), "Товары", "Количество"));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)));

    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "A-01";
    СтрокаТовара.Наименование = "Книга";
    СтрокаТовара.Количество = 3;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "B-02";
    СтрокаТовара.Наименование = "Ручка";
    СтрокаТовара.Количество = 1;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "C-00";
    СтрокаТовара.Наименование = "Бумага";
    СтрокаТовара.Количество = 2;

    ЭтаФорма.ЗначениеВРеквизитФормы(Данные, "Товары");
    Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаТоваров", Тип("ТаблицаФормы"));
    Таблица.ПутьКДанным = "Товары";
    Таблица.Заголовок = "Учебные товары";
    Таблица.Шапка = Истина;
    Таблица.АвтоВводНезаполненного = Ложь;
    Таблица.АвтоВводНовойСтроки = Ложь;
    Для Каждого ИмяКолонки Из СтрРазделить("Код,Наименование,Количество", ",") Цикл
        Колонка = Элементы.Добавить("Товары" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
        Колонка.Вид = ВидПоляФормы.ПолеВвода;
        Колонка.ПутьКДанным = "Товары." + ИмяКолонки;
        Колонка.Заголовок = ИмяКолонки;
    КонецЦикла;
    Таблица.Подсказка = "Собственные данные: три строки, без записи базы";
    Таблица.ТолькоПросмотр = Ложь;
    Элементы.ТоварыКоличество.Формат = "ЧГ=0;ЧДЦ=0";
КонецПроцедуры

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

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

  2. Сначала проверяется имя собственной конфигурации, затем создаются реквизит ТаблицаЗначений и три колонки. Имя обработки само по себе не заменяет защиту от открытия в рабочей базе.

  3. Порядок строк Книга, Ручка, Бумага специально не алфавитный. Количества целые: 3, 1, 2. Формат числового поля не показывает дробную часть.

  4. Названия данных и элементов различаются: Товары — данные, ТаблицаТоваров — элемент, ТоварыКод/ТоварыНаименование/ТоварыКоличество — визуальные поля.

  5. Тестируемые API ищут заголовки/имена интерфейса, не имена полей SQL. Точный заголовок формы служит собственным селектором, не гарантией безопасности любого приложения.

  6. После закрытия и нового открытия данные создаются заново. Код не записывает товары, документы или пользовательские настройки.

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

  1. Видны ровно три строки и заголовок Учебная таблица guide-owned-ui-2026.

  2. При повторном открытии вновь исходные количества 3/1/2 и исходный порядок; при чужом имени конфигурации создание запрещено.

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

Подготовлена контролируемая собственная поверхность для реальных штатных UI-тестов 1С.

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

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

  2. Наличие модуля ещё не подтверждает отображение и автоматизацию в вашей 1С; проверяйте запуск вручную.

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

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

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

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

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