diff --git a/VanessaAutomation/Ext/ObjectModule.bsl b/VanessaAutomation/Ext/ObjectModule.bsl
index 464d146e74..d11c17ab22 100644
--- a/VanessaAutomation/Ext/ObjectModule.bsl
+++ b/VanessaAutomation/Ext/ObjectModule.bsl
@@ -471,7 +471,7 @@
КонецФункции
Функция ПолучитьВерсиюОбработки(ДобавлятьНазвание = Истина, ТолькоЦифры = Ложь) Экспорт
- Версия = "1.2.041.26";
+ Версия = "1.2.041.30";
Если ТолькоЦифры Тогда
Возврат Версия;
diff --git "a/VanessaAutomation/Forms/\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217VA/Ext/Form/Module.bsl" "b/VanessaAutomation/Forms/\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217VA/Ext/Form/Module.bsl"
index 6e544d9ca3..4f3085679a 100644
--- "a/VanessaAutomation/Forms/\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217VA/Ext/Form/Module.bsl"
+++ "b/VanessaAutomation/Forms/\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217VA/Ext/Form/Module.bsl"
@@ -688,7 +688,7 @@
// если ЖдатьОкончания = -1, тогда будет ожидание окончания работы приложения
ИмяВременногоФайлаКоманды = ПолучитьИмяВременногоФайла("bat");
- Если ЗначениеЗаполнено(Ванесса.Объект.КаталогВременныхФайлов) Тогда
+ Если Ванесса <> Неопределено И ЗначениеЗаполнено(Ванесса.Объект.КаталогВременныхФайлов) Тогда
Файл = Новый Файл(ИмяВременногоФайлаКоманды);
ИмяВременногоФайлаКоманды = Ванесса.ДополнитьСлешВПуть(Ванесса.Объект.КаталогВременныхФайлов) + Файл.Имя;
КонецЕсли;
diff --git "a/VanessaAutomation/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\242\320\265\320\272\321\201\321\202\320\260/Ext/Form/Module.bsl" "b/VanessaAutomation/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\242\320\265\320\272\321\201\321\202\320\260/Ext/Form/Module.bsl"
index 06462e73a0..54165428d8 100644
--- "a/VanessaAutomation/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\242\320\265\320\272\321\201\321\202\320\260/Ext/Form/Module.bsl"
+++ "b/VanessaAutomation/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\242\320\265\320\272\321\201\321\202\320\260/Ext/Form/Module.bsl"
@@ -1085,6 +1085,34 @@
КонецФункции
+// Проверяет находится ли строка дерева в подцесценарии
+&НаКлиенте
+Функция СтрокаДереваНаходитсяВПодсценарии(СтрокаДерева, СтрокаПодсценария = Неопределено) Экспорт
+
+ Если СтрокаДерева = Неопределено Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ТекСтрока = СтрокаДерева;
+
+ Пока Истина Цикл
+ ТекСтрока = ТекСтрока.ПолучитьРодителя();
+
+ Если ТекСтрока = Неопределено Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Если ТекСтрока.Тип = "ШагСценарий" Тогда
+ СтрокаПодсценария = ТекСтрока;
+ Возврат Истина;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Ложь;
+
+КонецФункции
+
// Форматирует строку текста так, чтобы она была вставлена в редактор с нужным числом отступов
&НаКлиенте
Функция ОтформатироватьТекстДляВставкиВРедактор(Знач Стр) Экспорт
diff --git "a/VanessaAutomation/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/VanessaAutomation/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
index 1803d18051..25d7caf75d 100644
--- "a/VanessaAutomation/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
+++ "b/VanessaAutomation/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
@@ -7015,6 +7015,26 @@
+
+
+
+ ru
+ Заменить шаг
+
+
+ en
+ Replace step
+
+
+
+
+
+
+
@@ -44354,5 +44374,29 @@ Click on the hyperlink for more details.
ОбновитьКешMp3ВКаталогеПоТекущемуКешуMp3
+
+
+
+ ru
+ Заменить шаг проверки по имени на шаг проверки по заголовку и наоборот
+
+
+ en
+ Replace a verification step by name with a verification step by title and vice versa
+
+
+
+
+ ru
+ Заменить шаг проверки по имени на шаг проверки по заголовку и наоборот
+
+
+ en
+ Replace a verification step by name with a verification step by title and vice versa
+
+
+ Ctrl+J
+ ЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку
+
\ No newline at end of file
diff --git "a/VanessaAutomation/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/VanessaAutomation/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
index f57f06cc14..701c76ed39 100644
--- "a/VanessaAutomation/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
+++ "b/VanessaAutomation/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
@@ -192,6 +192,9 @@
&НаКлиенте
Перем КешСнипетов;
+&НаКлиенте
+Перем КешСоответствияШаговПоискПоИмени;
+
&НаКлиенте
Перем КэшФормПлагинов;
@@ -1238,6 +1241,7 @@
КешРассчитатьПараметрыТаблицы = Неопределено;
КешОпределенияТипа = Неопределено;
КешПоискаКлючевыхСлов = Неопределено;
+ КешСоответствияШаговПоискПоИмени = Неопределено;
КешСнипетов = Неопределено;
КэшФормПлагинов = Неопределено;
МассивСостоянияКонтекстовДоВыполненияШага = Неопределено;
@@ -2113,7 +2117,7 @@
КонецЕсли;
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
- Команда = "allure > " + ИмяВременногоФайла;
+ Команда = "allure > """ + ИмяВременногоФайла + """";
Результат = ВыполнитьКомандуОСБезПоказаЧерногоОкна(Команда);
Если НЕ ФайлСуществуетКомандаСистемы(ИмяВременногоФайла) Тогда
СообщитьПользователю(Локализовать("Не получилось выполнить проверку установки Allure."));
@@ -2150,7 +2154,7 @@
ЗТ.ЗаписатьСтроку(Стр);
ЗТ.Закрыть();
- КомандаСистемы(ИмяВременногоФайла);
+ КомандаСистемы("""" + ИмяВременногоФайла + """");
#КонецЕсли
@@ -2503,6 +2507,165 @@
ОткрытьРедактированиеТаблицыGherkin();
КонецПроцедуры
+&НаКлиенте
+Процедура ЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку(Команда)
+ Если Объект.ИспользоватьРедакторVanessaEditor И Элементы.ФункциональностьЗакладки.ТекущаяСтраница = Элементы.ГруппаЗапускТестов Тогда
+ Если НЕ ВозможенЗапускСценариевИзТекущейВкладки() Тогда
+ Возврат;
+ КонецЕсли;
+
+ ЭкземплярVanessaEditor = ПолучитьVanessaEditor();
+ ПозицияVanessaEditor = ЭкземплярVanessaEditor.getPosition();
+ Если НЕ ПустаяСтрока(ПозицияVanessaEditor.codeWidget) Тогда
+ //Опция доступна только для основного текста фичи
+ Возврат;
+ КонецЕсли;
+
+ ТекущаяСтрокаVanessaEditor = ПозицияVanessaEditor.LineNumber;
+ ОригиналСтроки = ЭкземплярVanessaEditor.getLineContent(ТекущаяСтрокаVanessaEditor);
+ ТекстСтроки = СокрЛ(ОригиналСтроки);
+ Если Лев(ТекстСтроки, 1) = "|" ИЛИ Лев(ТекстСтроки, 1) = "/" ИЛИ Лев(ТекстСтроки, 1) = "*" ИЛИ Лев(ТекстСтроки, 1) = "@" ИЛИ Лев(ТекстСтроки, 1) = "#" Тогда
+ Возврат;
+ КонецЕсли;
+
+ ДанныеШагаИзСтроки = МодульПарсерФич().ПолучитьДанныеШагаИзСтроки(ТекстСтроки);
+ Если ДанныеШагаИзСтроки.ЗначенияПараметров.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если Найти(НРег(ДанныеШагаИзСтроки.СнипетБезПараметров), "сименем") > 0 Тогда
+ ТекущийШагВыполняетПоискПоИмени = Истина;
+ Иначе
+ ТекущийШагВыполняетПоискПоИмени = Ложь;
+ КонецЕсли;
+
+ Если Найти(НРег(ДанныеШагаИзСтроки.СнипетБезПараметров), "втаблице") > 0 Тогда
+ ЭтоШагРаботыСТаблицей = Истина;
+ Иначе
+ ЭтоШагРаботыСТаблицей = Ложь;
+ КонецЕсли;
+
+ Если КешСоответствияШаговПоискПоИмени = Неопределено Тогда
+ КешСоответствияШаговПоискПоИмени = ЗаполнитьКешСоответствияШаговПоискПоИмени();
+ КонецЕсли;
+
+ СтрокаПоискаПарногоШага = "";
+ Если ТекущийШагВыполняетПоискПоИмени Тогда
+ СтрокаПоискаПарногоШага = КешСоответствияШаговПоискПоИмени.СоответствиеИмя[НРег(ДанныеШагаИзСтроки.СнипетБезПараметров)];
+ Иначе
+ СтрокаПоискаПарногоШага = КешСоответствияШаговПоискПоИмени.СоответствиеЗаголовок[НРег(ДанныеШагаИзСтроки.СнипетБезПараметров)];
+ КонецЕсли;
+
+ СтрокаПарногоШагаТаблицаИзвестныхStepDefinition = Неопределено;
+ Если ЗначениеЗаполнено(СтрокаПоискаПарногоШага) Тогда
+ ДанныеОтбора = Новый Структура;
+ ДанныеОтбора.Вставить("СтрокаДляПоиска", СтрокаПоискаПарногоШага);
+ СтрокиТаблицаИзвестныхStepDefinition = ТаблицаИзвестныхStepDefinition.НайтиСтроки(ДанныеОтбора);
+ Если СтрокиТаблицаИзвестныхStepDefinition.Количество() > 0 Тогда
+ СтрокаПарногоШагаТаблицаИзвестныхStepDefinition = СтрокиТаблицаИзвестныхStepDefinition[0];
+ КонецЕсли;
+ КонецЕсли;
+
+ Если СтрокаПарногоШагаТаблицаИзвестныхStepDefinition = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТекущееОкно = ПолучитьАктивноеОкноИзТестовоеПриложение();
+ Если ТекущееОкно = Неопределено Тогда
+ СообщитьПользователю(Локализовать("Клиент тестирования не подключен."));
+ Возврат;
+ КонецЕсли;
+
+ НайденныйЭлемент = Неопределено;
+ ИдПараметраДляЗамены = Неопределено;
+ Если СтрокаПарногоШагаТаблицаИзвестныхStepDefinition.Параметры.Количество() = 1 Тогда
+ ИдПараметраДляЗамены = 0;
+ Иначе
+
+ НайденнаяТаблица = Неопределено;
+ Если ЭтоШагРаботыСТаблицей Тогда
+ Для Сч = 0 По СтрокаПарногоШагаТаблицаИзвестныхStepDefinition.Параметры.Количество() - 1 Цикл
+ ИмяТаблицы = ДанныеШагаИзСтроки.ЗначенияПараметров[Сч].Значение.Значение;
+ ТекТаблица = ТекущееОкно.НайтиОбъект(Тип("ТестируемаяТаблицаФормы"),,ИмяТаблицы);
+ Если ТекТаблица <> Неопределено Тогда
+ НайденнаяТаблица = ТекТаблица;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ Для Сч = 0 По СтрокаПарногоШагаТаблицаИзвестныхStepDefinition.Параметры.Количество() - 1 Цикл
+ ЗначениеПараметра = ДанныеШагаИзСтроки.ЗначенияПараметров[Сч].Значение.Значение;
+
+ Если НайденнаяТаблица <> Неопределено Тогда
+ ГдеИскать = НайденнаяТаблица;
+ Иначе
+ ГдеИскать = ТекущееОкно;
+ КонецЕсли;
+
+ ПромЭлемент = ЭлементФормыПоСтроке(ГдеИскать, ЗначениеПараметра, ТекущийШагВыполняетПоискПоИмени, Ложь);
+ Если ПромЭлемент <> Неопределено И ТипЗнч(ПромЭлемент) <> Тип("ТестируемаяТаблицаФормы") Тогда
+ ИдПараметраДляЗамены = Сч;
+ НайденныйЭлемент = ПромЭлемент;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ Если ИдПараметраДляЗамены = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ЗначениеПараметраВТекущемШаге = ДанныеШагаИзСтроки.ЗначенияПараметров[ИдПараметраДляЗамены].Значение.Значение;
+
+ Если НайденныйЭлемент = Неопределено Тогда
+ НайденныйЭлемент = ЭлементФормыПоСтроке(ТекущееОкно, ЗначениеПараметраВТекущемШаге, ТекущийШагВыполняетПоискПоИмени, Истина);
+ КонецЕсли;
+
+ Если НайденныйЭлемент = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если ТекущийШагВыполняетПоискПоИмени Тогда
+ НовоеЗначение = НайденныйЭлемент.ТекстЗаголовка;
+ Иначе
+ НовоеЗначение = НайденныйЭлемент.Имя;
+ КонецЕсли;
+
+ НоваяСтрокаШага = СтрокаПарногоШагаТаблицаИзвестныхStepDefinition.ПредставлениеТеста;
+ ДанныеНовогоШага = МодульПарсерФич().ПолучитьДанныеШагаИзСтроки(НоваяСтрокаШага);
+
+ ЗначениеЗаменыВНовомШаге = ДанныеНовогоШага.ЗначенияПараметров[ИдПараметраДляЗамены].Значение.Значение;
+
+ НоваяСтрокаШага = СтрЗаменить(НоваяСтрокаШага, """" + ЗначениеЗаменыВНовомШаге + """", """" + ЭкранироватьСпецСимволыДляЗначенияШага(НовоеЗначение) + """");
+ НоваяСтрокаШага = СтрЗаменить(НоваяСтрокаШага, "'" + ЗначениеЗаменыВНовомШаге + "'", "'" + ЭкранироватьСпецСимволыДляЗначенияШага(НовоеЗначение) + "'");
+
+ //Надо заменить оставшиеся параметры
+ Для Сч = 0 По СтрокаПарногоШагаТаблицаИзвестныхStepDefinition.Параметры.Количество() - 1 Цикл
+ ЗначениеПараметра = ДанныеШагаИзСтроки.ЗначенияПараметров[Сч].Значение.Значение;
+ Если ЗначениеПараметраВТекущемШаге = ЗначениеПараметра Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ЗначениеЗаменыВНовомШаге = ДанныеНовогоШага.ЗначенияПараметров[Сч].Значение.Значение;
+ НоваяСтрокаШага = СтрЗаменить(НоваяСтрокаШага, """" + ЗначениеЗаменыВНовомШаге + """", """" + (ЗначениеПараметра) + """");
+ НоваяСтрокаШага = СтрЗаменить(НоваяСтрокаШага, "'" + ЗначениеЗаменыВНовомШаге + "'", "'" + (ЗначениеПараметра) + "'");
+ КонецЦикла;
+
+ ОтступСлева = Лев(ОригиналСтроки, СтрДлина(ОригиналСтроки) - СтрДлина(СокрЛ(ОригиналСтроки)));
+ НоваяСтрокаШага = ОтступСлева + НоваяСтрокаШага;
+
+ Соответствие = Новый Соответствие;
+ Соответствие.Вставить("startLineNumber", ТекущаяСтрокаVanessaEditor);
+ Соответствие.Вставить("startColumn", 1);
+ Соответствие.Вставить("endLineNumber", ТекущаяСтрокаVanessaEditor);
+ Соответствие.Вставить("endColumn", СтрДлина(ОригиналСтроки) + 1);
+ ЭкземплярVanessaEditor.insertText(НоваяСтрокаШага, ЗаписатьОбъектJSON(Соответствие));
+
+ КонецЕсли;
+
+КонецПроцедуры
+
&НаКлиенте
Процедура ПолучитьМакетПоТаблице(Команда)
@@ -6714,7 +6877,7 @@
ТекущийСценарий = Новый Структура;
ТекущийСценарий.Вставить("Имя", Неопределено);
ТекущийСценарий.Вставить("ИдСценария", Неопределено);
- Если ТекИД_СценарияВМассиве <> Неопределено Тогда
+ Если ТекИД_СценарияВМассиве <> Неопределено И ТекИД_СценарияВМассиве <= МассивСценариевДляВыполнения.Количество() - 1 Тогда
ИДСтрокиСценария = МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве].СтрокаДерева;
РезультатПрохожденияТестовСценария = ПолучитьРезультатПрохожденияТестовСценария(ИДСтрокиСценария);
ТекущийСценарий.Вставить("ОписаниеСценария", МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве]);
@@ -6878,11 +7041,10 @@
Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
ЗаписатьСтрокуВТекстовыйЛогИлиКонсоль(ПодставитьПараметрыВСтроку(
- Локализовать("Шаг <%1> упал в секции Попытка/Исключение. Строка дерева №%2. Строка фича файла №%3."),
- ТекШаг.Имя,
- Формат(ТекШаг.ИдСтроки, "ЧГ=; ЧН=0"),
- Формат(ТекШаг.НомерСтрокиВФиче, "ЧГ=; ЧН=0")
+ Локализовать("Шаг упал в секции Попытка/Исключение: <%1>"),
+ ТекШаг.Имя
));
+ ЗаписатьСтрокуВТекстовыйЛогИлиКонсоль(СтрОшибка + Символы.ПС);
КонецЕсли;
РезультатПрохожденияТестовСценария.Вставить("ШагУпавшийВПопыткеИсключении", ТекШаг);
@@ -15079,21 +15241,29 @@
// ИмяФайла - Строка - путь к файлу
//
&НаКлиенте
-Функция ПолучитьФайлКартинки(ИмяФайла) Экспорт
+Функция ПолучитьФайлКартинки(Знач ИмяФайла) Экспорт
Путь = Объект.КаталогПроекта;
Если НЕ ЗначениеЗаполнено(Путь) Тогда
ВызватьИсключение Локализовать("Не указано значение настройки Vanessa-automation: <КаталогПроекта>.");
КонецЕсли;
-
+
+ Если ФайлСуществуетКомандаСистемы(ИмяФайла) Тогда
+ Возврат Новый Файл(ИмяФайла);
+ КонецЕсли;
+
+ Если Найти(ИмяФайла, ".") = 0 Тогда
+ ИмяФайла = ИмяФайла + ".png";
+ КонецЕсли;
+
СписокКаталогов = Новый СписокЗначений;
СписокФайлов = Новый СписокЗначений;
- НайтиФайлыКомандаСистемы(Путь, СписокКаталогов, СписокФайлов, Истина, ИмяФайла + ".png");
+ НайтиФайлыКомандаСистемы(Путь, СписокКаталогов, СписокФайлов, Истина, ИмяФайла);
Если СписокФайлов.Количество() = 0 Тогда
Если ИдетВыполнениеСценариев() Тогда
Путь = ПолучитьСостояниеVanessaAutomation().ТекущаяФича.Каталог;
СписокКаталогов = Новый СписокЗначений;
СписокФайлов = Новый СписокЗначений;
- НайтиФайлыКомандаСистемы(Путь, СписокКаталогов, СписокФайлов, Истина, ИмяФайла + ".png");
+ НайтиФайлыКомандаСистемы(Путь, СписокКаталогов, СписокФайлов, Истина, ИмяФайла);
КонецЕсли;
Если СписокФайлов.Количество() = 0 Тогда
@@ -20547,6 +20717,45 @@
ДанныеДляОбновленияСтрокиРедактора = Неопределено;
+ СтрокаДереваПоИдСтроки = СтрокаДереваПоИдСтроки(ИДСтроки);
+ СтрокаПодсценария = Неопределено;
+ ЭтаСтрокаВПодсценарии = МодульРедакторТекста().СтрокаДереваНаходитсяВПодсценарии(СтрокаДереваПоИдСтроки, СтрокаПодсценария);
+
+ Если ЭтаСтрокаВПодсценарии И НЕ Ванесса.Объект.ПоказыватьСтрокиПодсценариевVanessaEditor Тогда
+ //Тогда не получится активизировать строку из подсценария, т.к. в редакторе не отображаются HTML вставки
+ АктивизироватьСтрокуРедактораПоИдСтрокиИНомеруСтрокиФичи(СтрокаПодсценария.ИДСтроки, СтрокаПодсценария.НомерСтрокиВФиче);
+ Возврат;
+ КонецЕсли;
+
+ Если ЭтаСтрокаВПодсценарии И Ванесса.Объект.ПоказыватьСтрокиПодсценариевVanessaEditor Тогда
+
+ СтрокаПодсценария2 = Неопределено;
+ СтрокаПодсценарияВПодсценарии = МодульРедакторТекста().СтрокаДереваНаходитсяВПодсценарии(СтрокаПодсценария, СтрокаПодсценария2);
+
+ Если СтрокаПодсценарияВПодсценарии Тогда
+ АктивизироватьСтрокуРедактораПоИдСтрокиИНомеруСтрокиФичиСлужебный(ИДСтроки, НомерСтрокиВФиче);
+ Возврат;
+ КонецЕсли;
+
+ НужнаяСтрока = Неопределено;
+ ИдПерваяИсполняемаяСтрока = ОпределитьИдИсполняемойСтрокиДерева(СтрокаПодсценария, НужнаяСтрока);
+
+ Если ИдПерваяИсполняемаяСтрока = ИДСтроки Тогда
+ //Значит идет попытка выполнить переход к первой строке подсценария, когда отображаются HTML вставки
+ //Делаем переход к строке подсценария
+ //Таким образом при выходе из HTML вставки всегда будет единое поведение - далее будет идти движение по верхнему уровню
+ АктивизироватьСтрокуРедактораПоИдСтрокиИНомеруСтрокиФичи(СтрокаПодсценария.ИДСтроки, СтрокаПодсценария.НомерСтрокиВФиче);
+ Возврат;
+ КонецЕсли;
+ КонецЕсли;
+
+ АктивизироватьСтрокуРедактораПоИдСтрокиИНомеруСтрокиФичиСлужебный(ИДСтроки, НомерСтрокиВФиче);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура АктивизироватьСтрокуРедактораПоИдСтрокиИНомеруСтрокиФичиСлужебный(ИДСтроки, НомерСтрокиВФиче)
+
ИдВиджета = ИдВиджетаПоИдСтроки(ИДСтроки);
Если ИдВиджета <> Неопределено Тогда
НомерСтроки = НомерСтрокиВнутриВиджета(ИдВиджета, ИДСтроки);
@@ -20558,8 +20767,9 @@
Иначе
ПолучитьVanessaEditor().revealLineInCenter(НомерСтрокиВФиче);
ПолучитьVanessaEditor().setPosition(НомерСтрокиВФиче, 1, "");
- КонецЕсли;
-КонецПроцедуры
+ КонецЕсли;
+
+КонецПроцедуры
&НаКлиенте
Функция ПолучитьТекущаяПозицияVanessaEditor()
@@ -29778,11 +29988,11 @@
Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
ЗаписатьСтрокуВТекстовыйЛогИлиКонсоль(ПодставитьПараметрыВСтроку(
- Локализовать("Шаг <%1> упал в секции Попытка/Исключение. Строка дерева №%2. Строка фича файла №%3."),
- ТекШаг.Имя,
- Формат(ТекШаг.ИдСтроки, "ЧГ=; ЧН=0"),
- Формат(ТекШаг.НомерСтрокиВФиче, "ЧГ=; ЧН=0")
+ Локализовать("Шаг упал в секции Попытка/Исключение: <%1>"),
+ ТекШаг.Имя
));
+
+ ЗаписатьСтрокуВТекстовыйЛогИлиКонсоль(СтрОшибка + Символы.ПС);
КонецЕсли;
РезультатПрохожденияТестовСценария.Вставить("ШагУпавшийВПопыткеИсключении", ТекШаг);
@@ -30196,7 +30406,8 @@
СтрокаШага.Статус = "Failed";
СтрокаСценария.Статус = "Failed";
СтатусЗапускаСценариев = Ложь;
- КонецЕсли;
+ КонецЕсли;
+ ПроверитьФлагОстановкаПриВозникновенииОшибки();
Иначе
СтатусЗапускаСценариев = Ложь;
Если Объект.РазличатьBrokenИFailedПоКлючевомуСловуТогда Тогда
@@ -30571,9 +30782,10 @@
));
КонецЕсли;
- ПроверитьФлагОстановкаПриВозникновенииОшибки();
КонецЕсли;
+ ПроверитьФлагОстановкаПриВозникновенииОшибки();
+
ПрекратитьВыполнениеШаговТакКакЗакончилсяСценарий = Истина;
Если Объект.ДелатьСкриншотПриВозникновенииОшибки Тогда
@@ -31110,6 +31322,11 @@
ИдВиджета = ИдВиджетаПоИдСтроки(Элементы.ДеревоТестов.ТекущиеДанные.ИдСтроки);
Если ИдВиджета = Неопределено И ТекущаяПозицияVanessaEditor <> Неопределено Тогда //значит это строка основной фичи
СделатьБлижайшуюСтрокуДереваТекущейПоНомеруСтрокиФичи(ТекущаяПозицияVanessaEditor.LineNumber + 1);
+
+ Если Элементы.ДеревоТестов.ТекущиеДанные.ДопТип = "Попытка" Тогда
+ СделатьБлижайшуюСтрокуДереваТекущейПоНомеруСтрокиФичи(Элементы.ДеревоТестов.ТекущиеДанные.НомерСтрокиВФиче + 1);
+ КонецЕсли;
+
Возврат;
КонецЕсли;
КонецЕсли;
@@ -33181,7 +33398,7 @@
// закроем все TestClient которые были запущены
Для каждого СтрокаДанныеКлиентовТестирования Из ДанныеКлиентовТестирования Цикл
Попытка
- Шаг("И я закрываю TestClient """ + СтрокаДанныеКлиентовТестирования.Имя + """");
+ Шаг("И я закрываю TestClient '" + ЭкранироватьСпецСимволыДляЗначенияШага(СтрокаДанныеКлиентовТестирования.Имя) + "'");
Исключение
// Если не получилось закрыть TestClient, это ещё не означает, что есть ошибка
// возможно он был закрыт штатно в сценарии
@@ -50027,6 +50244,101 @@
КонецФункции
+&НаКлиенте
+Функция ЗаполнитьКешСоответствияШаговПоискПоИмени()
+
+ Результат = Новый Структура;
+ Результат.Вставить("СоответствиеИмя", Новый Соответствие);
+ Результат.Вставить("СоответствиеЗаголовок", Новый Соответствие);
+
+ Для Каждого СтрокаТаблицаИзвестныхStepDefinition Из ТаблицаИзвестныхStepDefinition Цикл
+
+ Если НЕ ЗначениеЗаполнено(СтрокаТаблицаИзвестныхStepDefinition.СтрокаРеальнойПроцедуры) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Если Найти(НРег(СтрокаТаблицаИзвестныхStepDefinition.СтрокаРеальнойПроцедуры), "переключ") Тогда
+ ва = 1;
+ КонецЕсли;
+
+ СтрокаДляПоискаСнипета = СтрокаТаблицаИзвестныхStepDefinition.СтрокаДляПоиска;
+ СтрПоиска = "сименем";
+
+ Поз = Найти(СтрокаДляПоискаСнипета, СтрПоиска);
+
+ Если Поз = 0 Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ЛеваяЧасть = Лев(СтрокаДляПоискаСнипета, Поз - 1);
+ ПраваяЧасть = Сред(СтрокаДляПоискаСнипета, Поз + СтрДлина(СтрПоиска));
+
+ СнипетПоискПоЗаголовку = ЛеваяЧасть + ПраваяЧасть;
+ ДанныеОтбора = Новый Структура;
+ ДанныеОтбора.Вставить("СтрокаДляПоиска", СнипетПоискПоЗаголовку);
+ СтрокиСнипетПоискПоЗаголовку = ТаблицаИзвестныхStepDefinition.НайтиСтроки(ДанныеОтбора);
+ Если СтрокиСнипетПоискПоЗаголовку.Количество() > 0 Тогда
+ СтрокаСнипетПоискПоЗаголовку = СтрокиСнипетПоискПоЗаголовку[0];
+ Результат.СоответствиеИмя.Вставить(СтрокаТаблицаИзвестныхStepDefinition.СтрокаДляПоиска, СтрокаСнипетПоискПоЗаголовку.СтрокаДляПоиска);
+ Результат.СоответствиеЗаголовок.Вставить(СтрокаСнипетПоискПоЗаголовку.СтрокаДляПоиска, СтрокаТаблицаИзвестныхStepDefinition.СтрокаДляПоиска);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+&НаКлиенте
+Функция ЭлементФормыПоСтроке(ГдеИскать, Значение, ИскатьПоИмени, ВыводитьСообщение)
+ Если ИскатьПоИмени Тогда
+ НайденныеЭлементаФормы = ГдеИскать.НайтиОбъекты(,,Значение);
+ Иначе
+ НайденныеЭлементаФормы = ГдеИскать.НайтиОбъекты(,Значение);
+ КонецЕсли;
+
+ Если НайденныеЭлементаФормы.Количество() = 0 Тогда
+ Если ВыводитьСообщение Тогда
+ СообщитьПользователю(ПодставитьПараметрыВСтроку(Локализовать("Не найден элемент формы <%1>."), Значение));
+ КонецЕсли;
+ Возврат Неопределено;
+ ИначеЕсли НайденныеЭлементаФормы.Количество() > 1 Тогда
+ Если ВыводитьСообщение Тогда
+ СообщитьПользователю(ПодставитьПараметрыВСтроку(
+ Локализовать("Нельзя сделать замену, т.к. найдено несколько <%1> элементов формы по строке <%2>."),
+ НайденныеЭлементаФормы.Количество(), Значение));
+ КонецЕсли;
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Возврат НайденныеЭлементаФормы[0];
+КонецФункции
+
+&НаКлиенте
+Функция УбратьИзПеременныхСредыСекретныеЗначения(Данные)
+
+ Результат = Новый Соответствие;
+
+ Для Каждого КлючЗначение Из Данные Цикл
+
+ НРегКлюч = НРег(КлючЗначение.Ключ);
+
+ Если Найти(НРегКлюч, "psw") > 0
+ ИЛИ Найти(НРегКлюч, "password") > 0
+ ИЛИ Найти(НРегКлюч, "token") > 0
+ Тогда
+ Результат.Вставить(КлючЗначение.Ключ, "*****");
+ Продолжить;
+ КонецЕсли;
+
+ Результат.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение);
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
#Область Настройки
@@ -50085,7 +50397,9 @@
СтруктураПараметров = ПолучитьСтруктуруПараметров(СтрокаПараметров);
НастройкиОперСистемы = ПрочитатьПеременныеСреды();
- ЗаписатьЛогВЖРИнформация("ПеременныеСреды", ЗаписатьОбъектJSON(МодульОбщегоНазначенияVA().ПеременныеСреды()));
+ ПеременныеСреды = МодульОбщегоНазначенияVA().ПеременныеСреды();
+ ТекПеременныеСреды = УбратьИзПеременныхСредыСекретныеЗначения(ПеременныеСреды);
+ ЗаписатьЛогВЖРИнформация("ПеременныеСреды", ЗаписатьОбъектJSON(ТекПеременныеСреды));
КаталогПроекта = ЗначениеПараметраЗапуска("workspaceRoot", Неопределено);
diff --git a/docs/Changelog.md b/docs/Changelog.md
index 9e54346b91..1dfb70181c 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -1,6 +1,6 @@
# История версий
-## 1.2.041.26
+## 1.2.041.30
### Новые возможности
* Настройка для стабилизации выполнения тестов - МаксимальноеВремяВыполненияДействия #2135
@@ -44,8 +44,11 @@
* И форма текущего окна недоступна для редактирования #2119
* И я сохраняю выпадающий список формы как "ИмяПеременной" #2119
* И выпадающий список формы стал равен #2119
+* И выпадающий список формы стал равен по шаблону #2119
* И выпадающий список формы содержит значения #2119
+* И выпадающий список формы содержит значения по шаблону #2119
* И выпадающий список формы не содержит значения #2119
+* И выпадающий список формы не содержит значения по шаблону #2119
* И выпадающий список формы не содержит дублирующихся значений #2119
* И у поля 'Заголовок элемента' отображается заголовок #2119
* И у поля 'Заголовок элемента' не отображается заголовок #2119
@@ -72,6 +75,9 @@
* Затем Я подключаю уже запущенный клиент тестирования "ИмяПрофиля" в течение 10 секунд #2190
* И у элемента формы с именем 'ИмяПоля' текст редактирования стал равен "Нужный текст" в течение 10 секунд #2191
* И у элемента формы с именем 'ИмяПоля' текст редактирования стал равен "Нужный текст" по шаблону в течение 10 секунд #2191
+* И я выбираю из списка "НужныйПункт" по шаблону (работает для меню, которое было сформировано методом ПоказатьВыборИзСписка()) #2217
+* Тогда переменная "ИмяПеременной" имеет значение "ЗначениеПеременной" по шаблону #2213
+* И я отменяю выбор файла #2218
### Разные доработки
@@ -99,6 +105,11 @@
* Возможность через параметры отключить автоматическое добавление стандартной библиотеки в список библиотек #2165
* Вывод сообщения, если клиент тестирования был запущен на другой версии платформы и менеджер тестирования не может подключиться. #2192
* При генерации сценарий после накликивания нужно шаг "И я выбираю файл" добавлять на одну строку выше #2205
+* Возможность установить фильтр на Дату в шаге "И Я устанавливаю фильтр на список" Спасибо @EgorPalamar #2219
+* При падении шага в секции Попытка/Исключение нужно выводить полные данные об ошибке, как это делается при обычном падении сценария. #2220
+* Замена в редакторе шага, выполняющего поиск по имени на шаг, выполняющий поиск по заголовку и обратно (ctrl+J) #2221
+* Доработать флаг "Остановка при возникновении ошибки" для необнаруженных сценариев #2211
+* Изменение поведение шага "Дано я открываю картинку в основном редакторе" #2222
* Поддержка 8.3.25 #2119
- ОчиститьРезультатДиалогаВыбораФайла - позволяет очистить массив строк, который используется для выбора файла
- ВвестиHTMLДокумента - позволяет ввести в поле HTML документа текст
@@ -138,6 +149,7 @@
* Ошибка сравнения таблицы с переменной, если в заголовке колонки есть пробелы #2151 Спасибо @wolfery666
* Запуск сценария из фичи по тэгу отрабатывает без контекста #2161 Спасибо @akademik1986
* Правильная генерация шага нажатия на кнопку когда в логе действий пользователя нет имени кнопки #2206
+* В попытке-искл происходят рандомные перепрыгивания активного курсора при нажатии на F11 #2214 Спасибо @Reheab
### Переименования шагов
шаги
diff --git a/docs/FAQ/index.md b/docs/FAQ/index.md
index 1ceb1a8974..94ef162a07 100644
--- a/docs/FAQ/index.md
+++ b/docs/FAQ/index.md
@@ -272,4 +272,17 @@
35. Если для запуска Vanessa Automation используется утилита vrunner, то нужно в файле настроек vrunner задавать параметр --pathvanessa, где указан путь к обработке vanessa-automation.epf или vanessa-automation-single.epf.
36. Установка внешней компоненты VanessaExt, альтернативные варианты:
1. Когда компонента ставится в каталог %APPDATA%\1C\1Cv8\ExtCompT в нём появляются определенные файлы, связаные с компонентой. Подробнее тут https://its.1c.ru/db/v8324doc#bookmark:dev:TI000001195 Если эти файлы положить в этот катлог заранее, до запуска сеанса 1С, то компонента будет считаться установленной.
- 2. Можно перед запуском тестов сделать дополнительный запуск VA, в котором будет выполнен данный сценарий https://github.com/Pr-Mex/vanessa-automation/blob/develop/features/Core/ScreenShot/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8BVanessaExt.feature Этот сценарий запускает клиент тестирования, открывает в нём другой экземпляр VA и включает компоненту. После этого следующие запуски тестов будут считать, что компонента уже установлена.
\ No newline at end of file
+ 2. Можно перед запуском тестов сделать дополнительный запуск VA, в котором будет выполнен данный сценарий https://github.com/Pr-Mex/vanessa-automation/blob/develop/features/Core/ScreenShot/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8BVanessaExt.feature Этот сценарий запускает клиент тестирования, открывает в нём другой экземпляр VA и включает компоненту. После этого следующие запуски тестов будут считать, что компонента уже установлена.
+37. В платфоме есть два метода, чтобы показать пользователю выбор из списка (меню)
+ ПоказатьВыборИзСписка()
+ ПоказатьВыборИзМеню()
+ Визуально результат может не отличаться, но с точки зрения API автотестов это разные сущности.
+ Для работы с меню есть свои шаги:
+ ```
+ И в меню формы я выбираю 'Пункт1'
+ ```
+ Для работы со списком есть свои шаги:
+ ```
+ И я выбираю из списка 'Пункт1'
+ ```
+
\ No newline at end of file
diff --git a/features/Core/ExpectedSomething/ExpectedForms.feature b/features/Core/ExpectedSomething/ExpectedForms.feature
index d092495cfe..ea1a178c35 100644
--- a/features/Core/ExpectedSomething/ExpectedForms.feature
+++ b/features/Core/ExpectedSomething/ExpectedForms.feature
@@ -113,6 +113,7 @@
Тогда переменная "Колонка1" имеет значение "Значение11"
Тогда переменная "Колонка2" имеет значение "Значение22"
+ Тогда переменная "Колонка2" имеет значение "Значени*2" по шаблону
Затем Я запоминаю значение выражения "0" в переменную "КомандаПанельРазделов"
diff --git "a/features/Core/TestClient/\320\224\320\270\320\260\320\273\320\276\320\263\320\222\321\213\320\261\320\276\321\200\320\260\320\244\320\260\320\271\320\273\320\260.feature" "b/features/Core/TestClient/\320\224\320\270\320\260\320\273\320\276\320\263\320\222\321\213\320\261\320\276\321\200\320\260\320\244\320\260\320\271\320\273\320\260.feature"
index 1183c6db60..a7b605b32c 100644
--- "a/features/Core/TestClient/\320\224\320\270\320\260\320\273\320\276\320\263\320\222\321\213\320\261\320\276\321\200\320\260\320\244\320\260\320\271\320\273\320\260.feature"
+++ "b/features/Core/TestClient/\320\224\320\270\320\260\320\273\320\276\320\263\320\222\321\213\320\261\320\276\321\200\320\260\320\244\320\260\320\271\320\273\320\260.feature"
@@ -1,4 +1,4 @@
-# language: ru
+# language: ru
#parent uf:
@UF4_Библиотека_шагов
#parent ua:
@@ -26,4 +26,19 @@
И в открытой форме я нажимаю на кнопку с заголовком "Создать"
Тогда открылось окно "Справочник3 (создание)"
И я буду выбирать внешний файл "c:\temp\333.epf"
- И в открытой форме я нажимаю на кнопку с заголовком "Открыть файл"
\ No newline at end of file
+ И в открытой форме я нажимаю на кнопку с заголовком "Открыть файл"
+ Тогда в логе сообщений TestClient есть строки:
+ |'Был выбран файл c:\temp\333.epf'|
+
+
+
+Сценарий: Отмена выбора файла
+ Когда В панели разделов я выбираю "Основная"
+ И в панели функций я выбираю "Справочник3"
+ Тогда открылось окно "Справочник3"
+ И в открытой форме я нажимаю на кнопку с заголовком "Создать"
+ Тогда открылось окно "Справочник3 (создание)"
+ И я отменяю выбор файла
+ И я очищаю окно сообщений пользователю
+ И в открытой форме я нажимаю на кнопку с заголовком "Открыть файл"
+ Тогда в окне сообщений пользователю нет сообщений
\ No newline at end of file
diff --git "a/features/Core/VAEditor/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\222\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\265.feature" "b/features/Core/VAEditor/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\222\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\265.feature"
index c40623cfca..81e00f948a 100644
--- "a/features/Core/VAEditor/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\222\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\265.feature"
+++ "b/features/Core/VAEditor/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\222\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\265.feature"
@@ -37,6 +37,180 @@
И я закрыл все окна клиентского приложения
И я закрываю сеанс TESTCLIENT
+
+//https://github.com/Pr-Mex/vanessa-automation/issues/2214
+Сценарий: Выполнить один шаг, когда текущий шаг внутри HTML вставки и внутри ещё один подсценарий
+ * Загрузка служебной фичи
+ И я перехожу в редактор Vanessa Automation из дерева
+
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ Когда В поле с именем "КаталогФичСлужебный" я указываю путь к служебной фиче "VAEditor/VanessaEditor55"
+ И Я нажимаю на кнопку перезагрузить сценарии в Vanessa-Automation TestClient
+
+ * Установка нужной строки текущей.
+ И я нажимаю на кнопку с именем 'VanessaEditorПоказыватьСтрокиПодсценариев'
+
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'VanessaTabs.current.editor.selectSubcodeLine("b1", 0);'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ И я перехожу к закладке с именем "ГруппаЗапускТестов"
+
+ * Выполнение сценария с текущей позиции
+ И я очищаю окно сообщений пользователю
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ Тогда в логе сообщений TestClient есть строки:
+ |'11'|
+
+ * Выполнение сценария с текущей позиции
+ И я очищаю окно сообщений пользователю
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ Тогда в логе сообщений TestClient есть строки:
+ |'22'|
+
+ * Выполнение сценария с текущей позиции
+ И я очищаю окно сообщений пользователю
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ Тогда в логе сообщений TestClient есть строки:
+ |'111'|
+
+
+ * Выполнение сценария с текущей позиции
+ И я очищаю окно сообщений пользователю
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ Тогда в логе сообщений TestClient есть строки:
+ |'222'|
+
+ * Выполнение сценария с текущей позиции
+ И я очищаю окно сообщений пользователю
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ Тогда в логе сообщений TestClient есть строки:
+ |'33'|
+
+ * Выполнение сценария с текущей позиции
+ И я очищаю окно сообщений пользователю
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ Тогда в логе сообщений TestClient есть строки:
+ |'2'|
+
+
+//https://github.com/Pr-Mex/vanessa-automation/issues/2214
+Сценарий: Выполнить один шаг, когда текущий шаг это обычный шаг внутри попытки, а следующий шаг это подсценарий в попытке
+ * Загрузка служебной фичи
+ И я перехожу в редактор Vanessa Automation из дерева
+
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ Когда В поле с именем "КаталогФичСлужебный" я указываю путь к служебной фиче "VAEditor/VanessaEditor54"
+ И Я нажимаю на кнопку перезагрузить сценарии в Vanessa-Automation TestClient
+
+ * Установка нужной строки текущей.
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'VanessaTabs.current.editor.setPosition(18, 1, \"\");'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ И я перехожу к закладке с именем "ГруппаЗапускТестов"
+
+ * Выполнение сценария с текущей позиции
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ И я очищаю окно сообщений пользователю
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'Сообщить(VanessaTabs.current.editor.getPosition().linenumber)'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ Тогда в логе сообщений TestClient есть строки:
+ |'19'|
+ И я перехожу к закладке с именем 'ГруппаЗапускТестов'
+
+ * Выполнение сценария с текущей позиции
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ И я очищаю окно сообщений пользователю
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'Сообщить(VanessaTabs.current.editor.getPosition().linenumber)'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ Тогда в логе сообщений TestClient есть строки:
+ |'20'|
+ И я перехожу к закладке с именем 'ГруппаЗапускТестов'
+
+ * Выполнение сценария с текущей позиции
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ И я очищаю окно сообщений пользователю
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'Сообщить(VanessaTabs.current.editor.getPosition().linenumber)'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ Тогда в логе сообщений TestClient есть строки:
+ |'24'|
+ И я перехожу к закладке с именем 'ГруппаЗапускТестов'
+
+
+//https://github.com/Pr-Mex/vanessa-automation/issues/2214
+Сценарий: Выполнить один шаг, когда текущий шаг это обычный шаг, а следующий шаг находится в попытке
+ * Загрузка служебной фичи
+ И я перехожу в редактор Vanessa Automation из дерева
+
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ Когда В поле с именем "КаталогФичСлужебный" я указываю путь к служебной фиче "VAEditor/VanessaEditor53"
+ И Я нажимаю на кнопку перезагрузить сценарии в Vanessa-Automation TestClient
+
+ * Установка нужной строки текущей.
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'VanessaTabs.current.editor.setPosition(15, 1, \"\");'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ И я перехожу к закладке с именем "ГруппаЗапускТестов"
+
+ * Выполнение сценария с текущей позиции
+ И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 30 секунд
+
+ * Проверка результата
+ И я очищаю окно сообщений пользователю
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'Сообщить(VanessaTabs.current.editor.getPosition().linenumber)'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ Тогда в логе сообщений TestClient есть строки:
+ |'18'|
+ И я перехожу к закладке с именем 'ГруппаЗапускТестов'
+
+
+Сценарий: Закрытие клиента тестирования
+ * Закрытие клиента тестирования
+ И я закрыл все окна клиентского приложения
+ И я закрываю сеанс TESTCLIENT
+
+
//https://github.com/Pr-Mex/vanessa-automation/issues/2150
Сценарий: Выполнить один шаг, когда это шаг подсценария и была ошибка актвизации строки другого подсценария
* Загрузка служебной фичи
diff --git "a/features/Core/VAEditor/\320\232\320\275\320\276\320\277\320\272\320\270\320\242\320\276\321\207\320\272\320\270\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\260.feature" "b/features/Core/VAEditor/\320\232\320\275\320\276\320\277\320\272\320\270\320\242\320\276\321\207\320\272\320\270\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\260.feature"
index e43f4cfaad..d156199426 100644
--- "a/features/Core/VAEditor/\320\232\320\275\320\276\320\277\320\272\320\270\320\242\320\276\321\207\320\272\320\270\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\260.feature"
+++ "b/features/Core/VAEditor/\320\232\320\275\320\276\320\277\320\272\320\270\320\242\320\276\321\207\320\272\320\270\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\260.feature"
@@ -50,10 +50,7 @@
* Установка точки останова и активизация строки подсценария
И я перехожу к закладке с именем "ГруппаСлужебная"
И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
- И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст
- """
- АктивизироватьСтрокуРедактораПоИдСтрокиИНомеруСтрокиФичи(15, 1);
- """
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'VanessaTabs.current.editor.selectSubcodeLine("b2", 2);'
И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
И пауза 2
@@ -122,7 +119,7 @@
И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст
"""
- АктивизироватьСтрокуРедактораПоИдСтрокиИНомеруСтрокиФичи(5, 1);
+ VanessaTabs.current.editor.selectSubcodeLine("b1", 0);
"""
И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
И пауза 2
@@ -275,7 +272,7 @@
И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст
"""
- АктивизироватьСтрокуРедактораПоИдСтрокиИНомеруСтрокиФичи(5, 1);
+ АктивизироватьСтрокуРедактораПоИдСтрокиИНомеруСтрокиФичи(3, 15);
"""
И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
И пауза 2
@@ -284,7 +281,7 @@
И пауза 2
* Выполнение одного шага несколько раз
- И я делаю 7 раз
+ И я делаю 5 раз
И я снимаю флаг с именем 'ФлагСценарииВыполнены'
И я нажимаю на кнопку с именем 'VanessaEditorКонтекстноеМенюВыполнитьОдинШаг'
И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 150 секунд
@@ -296,9 +293,11 @@
| 'Имя' | 'Значение' | 'Тип' |
| 'Контекст' | '' | '' |
| 'ИмяПеременной1' | '1' | 'Число' |
+ | 'ИмяПеременной11' | '11' | 'Число' |
| 'ИмяПеременной2' | '2' | 'Число' |
| 'ИмяПеременной22' | '22' | 'Число' |
| 'ИмяПеременной3' | '3' | 'Число' |
+ | 'ИмяПеременной33' | '33' | 'Число' |
| 'ИмяПеременной4' | '4' | 'Число' |
| 'ИмяПеременной5' | '5' | 'Число' |
| 'ИмяПеременной6' | '6' | 'Число' |
diff --git "a/features/Core/VAEditor/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\260\320\274\320\265\320\275\320\260\320\250\320\260\320\263\320\260\320\237\320\276\320\270\321\201\320\272\320\260\320\237\320\276\320\230\320\274\320\265\320\275\320\270.feature" "b/features/Core/VAEditor/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\260\320\274\320\265\320\275\320\260\320\250\320\260\320\263\320\260\320\237\320\276\320\270\321\201\320\272\320\260\320\237\320\276\320\230\320\274\320\265\320\275\320\270.feature"
new file mode 100644
index 0000000000..98e9891d3f
--- /dev/null
+++ "b/features/Core/VAEditor/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\260\320\274\320\265\320\275\320\260\320\250\320\260\320\263\320\260\320\237\320\276\320\270\321\201\320\272\320\260\320\237\320\276\320\230\320\274\320\265\320\275\320\270.feature"
@@ -0,0 +1,181 @@
+# language: ru
+
+
+@IgnoreOn82Builds
+@IgnoreOnOFBuilds
+@IgnoreOnUFSovm82Builds
+@IgnoreOnWeb
+
+@IgnoreOn836
+@IgnoreOn837
+@IgnoreOn838
+@IgnoreOn839
+@IgnoreOn8310
+@IgnoreOn8311
+@IgnoreOn8312
+@IgnoreOn8313
+@IgnoreOn8314
+@IgnoreOn8315
+@IgnoreOn8316
+
+@ServerCodeCoverage
+
+
+Функциональность: Замена шага поиска по имени на шаг поиска по заголовку и обратно
+
+
+Сценарий: Замена шага поиска по имени на шаг поиска по заголовку и обратно
+ * Подготовка
+ И я закрыл все окна клиентского приложения
+ И я закрываю сеанс TESTCLIENT
+ Когда я запускаю служебный сеанс TestClient с ключом TestManager в той же базе
+ Когда Я открываю VanessaAutomation в режиме TestClient со стандартной библиотекой 'VAEditor'
+
+ * Загрузка служебной фичи
+ И я перехожу в редактор Vanessa Automation из дерева
+
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ Когда В поле с именем "КаталогФичСлужебный" я указываю путь к служебной фиче "VAEditor/VanessaEditor56"
+ И Я нажимаю на кнопку перезагрузить сценарии в Vanessa-Automation TestClient
+
+ * Открытие клиента тестирования через запуск сценария
+ И я нажимаю на кнопку с именем 'ПанельVanessaEditorВыполнитьСценарии'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 300 секунд
+ И я нажимаю на кнопку с именем 'VanessaEditorОчиститьРаскраскуСтрок'
+
+ * Проверка работы замены шага, который выполняет поиск по имени на шаг, который выполняет поиск по заголовку и обратно
+ * Установка нужной строки текущей для проверки РеквизитЧисло1
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'VanessaTabs.current.editor.setPosition(30, 1, \"\");'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ И я перехожу к закладке с именем "ГруппаЗапускТестов"
+
+ * Нажатие на кнопку замены шага
+ И я выбираю пункт контекстного меню с именем 'VanessaEditorКонтекстноеМенюЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку' на элементе формы с именем 'VanessaEditor'
+ И Пауза 5
+
+ И я очищаю окно сообщений пользователю
+
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст
+ |'Сообщить(СокрЛП(VanessaTabs.current.editor.getLineContent (30)));'|
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И Пауза 2
+ Тогда в логе сообщений TestClient есть строки:
+ |'И я устанавливаю флаг "Флаг три значения"'|
+
+ И я перехожу к закладке с именем 'ГруппаЗапускТестов'
+ И Пауза 1
+ И я выбираю пункт контекстного меню с именем 'VanessaEditorКонтекстноеМенюЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку' на элементе формы с именем 'VanessaEditor'
+ И Пауза 3
+ И я очищаю окно сообщений пользователю
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+
+
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст
+ |'Сообщить(СокрЛП(VanessaTabs.current.editor.getLineContent (30)));'|
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И Пауза 2
+ Тогда в логе сообщений TestClient есть строки:
+ |'И я устанавливаю флаг с именем \'РеквизитЧисло1\''|
+
+
+ * Установка нужной строки текущей для проверки РеквизитПереключатель
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'VanessaTabs.current.editor.setPosition(31, 1, \"\");'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ И я перехожу к закладке с именем "ГруппаЗапускТестов"
+
+ * Нажатие на кнопку замены шага
+ И я выбираю пункт контекстного меню с именем 'VanessaEditorКонтекстноеМенюЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку' на элементе формы с именем 'VanessaEditor'
+ И Пауза 5
+
+ И я очищаю окно сообщений пользователю
+
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст
+ |'Сообщить(СокрЛП(VanessaTabs.current.editor.getLineContent (31)));'|
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И Пауза 2
+ Тогда в логе сообщений TestClient есть строки:
+ |'И я меняю значение переключателя "Реквизит переключатель" на "Первое значение"'|
+
+
+ И я перехожу к закладке с именем 'ГруппаЗапускТестов'
+ И Пауза 1
+ И я выбираю пункт контекстного меню с именем 'VanessaEditorКонтекстноеМенюЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку' на элементе формы с именем 'VanessaEditor'
+ И Пауза 3
+ И я очищаю окно сообщений пользователю
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+
+
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст
+ |'Сообщить(СокрЛП(VanessaTabs.current.editor.getLineContent (31)));'|
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И Пауза 2
+ Тогда в логе сообщений TestClient есть строки:
+ |'И я меняю значение переключателя с именем \'РеквизитПереключатель\' на "Первое значение"'|
+
+
+
+ * Установка нужной строки текущей для проверки ТабличнаяЧасть1.ТабличнаяЧасть1РеквизитСтрока
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст 'VanessaTabs.current.editor.setPosition(32, 1, \"\");'
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И пауза 1
+ И я перехожу к закладке с именем "ГруппаЗапускТестов"
+
+ * Нажатие на кнопку замены шага
+ И я выбираю пункт контекстного меню с именем 'VanessaEditorКонтекстноеМенюЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку' на элементе формы с именем 'VanessaEditor'
+ И Пауза 5
+
+ И я очищаю окно сообщений пользователю
+
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст
+ |'Сообщить(СокрЛП(VanessaTabs.current.editor.getLineContent (32)));'|
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И Пауза 2
+ Тогда в логе сообщений TestClient есть строки:
+ |'И в таблице "ТабличнаяЧасть1" в поле "Реквизит строка" я ввожу текст "111"'|
+
+
+
+ И я перехожу к закладке с именем 'ГруппаЗапускТестов'
+ И Пауза 1
+ И я выбираю пункт контекстного меню с именем 'VanessaEditorКонтекстноеМенюЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку' на элементе формы с именем 'VanessaEditor'
+ И Пауза 3
+ И я очищаю окно сообщений пользователю
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ И я перехожу к закладке с именем "ГруппаСлужебноеВыполнитьКод"
+
+
+ И в поле с именем 'РеквизитПроизвольныйКод' я ввожу текст
+ |'Сообщить(СокрЛП(VanessaTabs.current.editor.getLineContent (32)));'|
+ И я нажимаю на кнопку с именем 'ВыполнитьПроизвольныйКод'
+ И Пауза 2
+ Тогда в логе сообщений TestClient есть строки:
+ |'И в таблице "ТабличнаяЧасть1" в поле с именем \'ТабличнаяЧасть1РеквизитСтрока\' я ввожу текст "111"'|
+
+ * Закрытие клиента тестирования
+ И я перехожу к закладке с именем "ГруппаСлужебная"
+ Когда В поле с именем "КаталогФичСлужебный" я указываю путь к служебной фиче "VAEditor/ЗакрытьКлиентТестирования"
+ И Я нажимаю на кнопку перезагрузить сценарии в Vanessa-Automation TestClient
+
+ И я нажимаю на кнопку с именем 'ПанельVanessaEditorВыполнитьСценарии'
+ И у элемента с именем "ФлагСценарииВыполнены" я жду значения "Да" в течение 300 секунд
+
+
+Сценарий: Активизация основного клиента
+ И я закрываю TestClient "TM"
+ И в таблице клиентов тестирования я активизирую строку 'Этот клиент'
diff --git a/features/Core/VAExtension/VAExtension.feature b/features/Core/VAExtension/VAExtension.feature
index 5e02e9fae4..43cef8fddc 100644
--- a/features/Core/VAExtension/VAExtension.feature
+++ b/features/Core/VAExtension/VAExtension.feature
@@ -67,6 +67,8 @@
И я нажимаю на кнопку с именем 'ФормаПровестиИЗакрыть'
И я жду закрытия окна 'Документ1 (создание)' в течение 20 секунд
Когда открылось окно 'Документ1'
+ И я нажимаю на кнопку с именем 'ФормаСтандартныеНастройкиДинамическогоСписка'
+ И Пауза 0.1
И в таблице "Список" я выбираю текущую строку
И я сохраняю навигационную ссылку текущего окна в переменную "НавСсылкаДокумент"
И я запоминаю навигационную ссылку "$НавСсылкаДокумент$" для удаления (расширение)
diff --git "a/features/Libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/Libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
index 93479e573b..239598c363 100644
--- "a/features/Libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
+++ "b/features/Libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
@@ -712,6 +712,12 @@
"ЯВыбираюФайлСИндексомФильтра","И я выбираю файл с индексом фильтра ""Индекс"" ""ИмяФайла""",
"Устанавливает результат диалога выбора файла с учетом индекса фильтра в диалоге после выбора файлов. Шаг необходимо вызывать до того действия, которое приводит к появлению диалога выбора файлов. Работает только в тонком клиенте.",
"Файлы.Выбор файла");
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,
+ "ЯОтменяюВыборФайла()",
+ "ЯОтменяюВыборФайла",
+ "И я отменяю выбор файла",
+ "Отменяет выбор файла",
+ "Файлы.Отмена выбора файла");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯОчищаюОкноСообщенийПользователю()","ЯОчищаюОкноСообщенийПользователю","И я очищаю окно сообщений пользователю","Очищает окно сообщений пользователю.","UI.Сообщения пользователю.Очистка окна сообщений");
@@ -729,7 +735,8 @@
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯВыбираюПунктКонтекстногоМенюСИменемНаЭлементеФормы(Парам01,Парам02)","ЯВыбираюПунктКонтекстногоМенюСИменемНаЭлементеФормы","И я выбираю пункт контекстного меню с именем 'ИмяПунктаМеню' на элементе формы ""Заголовок поля""","Выбирает нужный пункт контекстного меню у элемента формы","UI.Формы.Контекстное меню");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯВыбираюПунктКонтекстногоМенюСИменемНаЭлементеФормыСИменем(Парам01,Парам02)","ЯВыбираюПунктКонтекстногоМенюСИменемНаЭлементеФормыСИменем","И я выбираю пункт контекстного меню с именем 'ИмяПунктаМеню' на элементе формы с именем 'ЭлементФормы'","Выбирает нужный пункт контекстного меню у элемента формы","UI.Формы.Контекстное меню");
- Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯВыбираюИзСписка(Значение)","ЯВыбираюИзСписка","И я выбираю из списка ""Значение""","Выбирает значение из списка, который привязан к форме. Такой список может появиться, если происходит перехват стандартных событий формы, и пользователю показывается другой список для выбора значения.","UI.Формы.Поля.Выпадающий список.Точное значение");
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯВыбираюИзСписка(Значение)","ЯВыбираюИзСписка","И я выбираю из списка ""Значение""","Выбирает значение из списка, который привязан к форме. При этом список должен быть вызван методом ПоказатьВыборИзСписка(). Такой список может появиться, если происходит перехват стандартных событий формы, и пользователю показывается другой список для выбора значения. Следует различать выбор из меню формы и выбор из списка привязнного к форме.","UI.Формы.Выпадающий список формы.Выбор точного значения");
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯВыбираюИзСпискаПоШаблону(Парам01)","ЯВыбираюИзСпискаПоШаблону","И я выбираю из списка 'Значение' по шаблону","Выбирает значение из списка, который привязан к форме. Допустимо использовать символ *. При этом список должен быть вызван методом ПоказатьВыборИзСписка(). Такой список может появиться, если происходит перехват стандартных событий формы, и пользователю показывается другой список для выбора значения. Следует различать выбор из меню формы и выбор из списка привязнного к форме.","UI.Формы.Выпадающий список формы.Выбор по шаблону");
// В таблице я Устанавливаю Флаг
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрытойФормеВТЧЯУстанавливаюФлагСЗаголовком(Парам01,Парам02)","ВОткрытойФормеВТЧЯУстанавливаюФлагСЗаголовком","И В открытой форме в ТЧ ""ИмяТаблицы"" я устанавливаю флаг с заголовком ""ИмяФлага""");
@@ -812,7 +819,17 @@
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПолеТаблицыРавноПеременной(Парам01,Парам02,Парам03)","ПолеТаблицыРавноПеременной","И поле таблицы ""ИмяТаблицы"" ""ИмяПоля"" равно переменной ""ИмяПеременной""","Сравнение значения поля с переменной Контекста. Имя поля задаётся как оно задано в конфигураторе.","Переменные.Прочитать значение.Таблица.Поле таблицы");
- Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяИмеетЗначение(Парам01,Парам02)","ПеременнаяИмеетЗначение","Тогда переменная ""ИмяПеременной"" имеет значение ""ЗначениеПеременной""","Проверяет значение переменной контекста","Переменные.Прочитать значение");
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,
+ "ПеременнаяИмеетЗначение(Парам01,Парам02)",
+ "ПеременнаяИмеетЗначение","Тогда переменная ""ИмяПеременной"" имеет значение ""ЗначениеПеременной""",
+ "Проверяет значение переменной контекста",
+ "Переменные.Проверить значение");
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,
+ "ПеременнаяИмеетЗначениеПоШаблону(Парам01,Парам02)",
+ "ПеременнаяИмеетЗначениеПоШаблону",
+ "Тогда переменная ""ИмяПеременной"" имеет значение ""ЗначениеПеременной"" по шаблону",
+ "Проверяет значение переменной контекста. В проверяемом значении допустимо использовать символ *.",
+ "Переменные.Проверить значение");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯЖдуЧтоВТаблицеКоличествоСтрокБудетВТеченииСекунд(Парам01,Парам02,Парам03,Парам04)","ЯЖдуЧтоВТаблицеКоличествоСтрокБудетВТеченииСекунд","И я жду, что в таблице ""ИмяТаблицы"" количество строк будет ""больше"" 0 в течении 20 секунд");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯЖдуЧтоВТаблицеКоличествоСтрокБудетВТечениеСекунд(Парам01,Парам02,Парам03,Парам04)","ЯЖдуЧтоВТаблицеКоличествоСтрокБудетВТечениеСекунд","И я жду, что в таблице ""ИмяТаблицы"" количество строк будет ""больше"" 0 в течение 20 секунд","В течение нужного числа секунд проверяется количество строк в таблице в текущем окне","UI.Таблицы.Ожидание значения таблицы");
@@ -967,8 +984,7 @@
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВТаблицеЯПерехожуКСледующейЯчейке(Парам01)","ВТаблицеЯПерехожуКСледующейЯчейке","И в таблице ""ИмяТаблицы"" я перехожу к следующей ячейке","Переходит к следующей ячейки таблицы","UI.Таблицы.Переход к ячейке");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВТаблицеЯПерехожуКПредыдущейЯчейке(Парам01)","ВТаблицеЯПерехожуКПредыдущейЯчейке","И в таблице ""ИмяТаблицы"" я перехожу к предыдущей ячейке","Переходит к предыдущей ячейки таблицы","UI.Таблицы.Переход к ячейке");
- Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВМенюФормыЯВыбираю(Парам01)","ВМенюФормыЯВыбираю","И в меню формы я выбираю ""ИмяПунктаМеню""","Выбирает значение из пункта меню. Например, когда происходит расшифровка отчета.","UI.Формы.Контекстное меню");
-
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВМенюФормыЯВыбираю(Парам01)","ВМенюФормыЯВыбираю","И в меню формы я выбираю 'ИмяПунктаМеню'","Выбирает значение из пункта меню, если меню было вызвно с помощью метода ПоказатьВыборИзМеню(). Например, когда происходит расшифровка отчета.","UI.Формы.Контекстное меню");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПредставлениеЭлементаСталоРавно(Парам01,Парам02)","ПредставлениеЭлементаСталоРавно","И представление элемента ""Заголовок элемента"" стало равно ""ПредставлениеЭлемента""","Проверяет представление элемента формы. Работает, начиная с 8.3.12.","UI.Формы.Поля.Представление элемента");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПредставлениеЭлементаСИменемСталоРавно(Парам01,Парам02)","ПредставлениеЭлементаСИменемСталоРавно","И представление элемента с именем 'ИмяЭлемента' стало равно ""ПредставлениеЭлемента""","Проверяет представление элемента формы. Работает, начиная с 8.3.12.","UI.Формы.Поля.Представление элемента");
@@ -1020,6 +1036,13 @@
"И выпадающий список формы стал равен:" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |","Проверяет, что открытый выпадающий список привязанный к форме в точности равен переданному набору значений.
|Работает в платформе 8.3.25 и выше.",
"UI.Формы.Выпадающий список формы.Значение выпадающего списка");
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,
+ "ВыпадающийСписокФормыСталРавенПоШаблону(ТабПарам)",
+ "ВыпадающийСписокФормыСталРавенПоШаблону",
+ "И выпадающий список формы стал равен по шаблону:" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |","Проверяет, что открытый выпадающий список привязанный к форме в точности равен переданному набору значений.
+ |Допустимо использовать символы *.
+ |Работает в платформе 8.3.25 и выше.",
+ "UI.Формы.Выпадающий список формы.Значение выпадающего списка");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВыпадающийСписокСодержитЗначения(Парам01,ТабПарам)" ,"ВыпадающийСписокСодержитЗначения" ,"И выпадающий список ""Заголовок элемента"" содержит значения" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |","Проверяет, что открытый выпадающий список в содержит каждое значение из переданного набора значений. Поиск элемента формы выполняется по заголовку.","UI.Формы.Поля.Значение выпадающего списка");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВыпадающийСписокСИменемСодержитЗначения(Парам01,ТабПарам)","ВыпадающийСписокСИменемСодержитЗначения","И выпадающий список с именем 'ИмяЭлемента' содержит значения" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |","Проверяет, что открытый выпадающий список в содержит каждое значение из переданного набора значений. Поиск элемента формы выполняется по имени.","UI.Формы.Поля.Значение выпадающего списка");
@@ -1029,6 +1052,13 @@
"И выпадающий список формы содержит значения" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |","Проверяет, что открытый выпадающий список привязанный к форме в содержит каждое значение из переданного набора значений.
|Работает в платформе 8.3.25 и выше.",
"UI.Формы.Выпадающий список формы.Значение выпадающего списка");
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,
+ "ВыпадающийСписокФормыСодержитЗначенияПоШаблону(ТабПарам)",
+ "ВыпадающийСписокФормыСодержитЗначенияПоШаблону",
+ "И выпадающий список формы содержит значения по шаблону" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |","Проверяет, что открытый выпадающий список привязанный к форме в содержит каждое значение из переданного набора значений.
+ |Допустимо использовать символы *.
+ |Работает в платформе 8.3.25 и выше.",
+ "UI.Формы.Выпадающий список формы.Значение выпадающего списка");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВыпадающийСписокНеСодержитДублирующихсяЗначений(Парам01)","ВыпадающийСписокНеСодержитДублирующихсяЗначений","И выпадающий список ""Заголовок элемента"" не содержит дублирующихся значений","Проверяет, что в открытом выпадающем списке каждое значение встречается только один раз. Поиск элемента формы выполняется по заголовку.","UI.Формы.Поля.Значение выпадающего списка");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВыпадающийСписокСИменемНеСодержитДублирующихсяЗначений(Парам01)","ВыпадающийСписокСИменемНеСодержитДублирующихсяЗначений","И выпадающий список с именем ""ИмяЭлемента"" не содержит дублирующихся значений","Проверяет, что в открытом выпадающем списке каждое значение встречается только один раз. Поиск элемента формы выполняется по имени.","UI.Формы.Поля.Значение выпадающего списка");
@@ -1050,7 +1080,14 @@
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,
"ВыпадающийСписокФормыНеСодержитЗначения(ТабПарам)",
"ВыпадающийСписокФормыНеСодержитЗначения",
- "И выпадающий список формы не содержит значения" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |","Проверяет, что открытый выпадающий список не содержит ни одного значения из переданного набора значений. Поиск элемента формы выполняется по заголовку.",
+ "И выпадающий список формы не содержит значения" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |",
+ "Проверяет, что открытый выпадающий список не содержит ни одного значения из переданного набора значений. Работает в платформе 8.3.25 и выше.",
+ "UI.Формы.Выпадающий список формы.Значение выпадающего списка");
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,
+ "ВыпадающийСписокФормыНеСодержитЗначенияПоШаблону(ТабПарам)",
+ "ВыпадающийСписокФормыНеСодержитЗначенияПоШаблону",
+ "И выпадающий список формы не содержит значения по шаблону" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |",
+ "Проверяет, что открытый выпадающий список не содержит ни одного значения из переданного набора значений. Допустимо использовать символы *. Работает в платформе 8.3.25 и выше.",
"UI.Формы.Выпадающий список формы.Значение выпадающего списка");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВТаблицеВыпадающийСписокСталРавен(Парам01,ТабПарам)" ,"ВТаблицеВыпадающийСписокСталРавен" ,"И в таблице ""ИмяТаблицы"" выпадающий список ""Заголовок элемента"" стал равен:" + Символы.ПС + " | 'Значение1' |" + Символы.ПС + " | 'Значение2' |","Проверяет, что открытый выпадающий список в точности равен переданному набору значений. Поиск элемента формы выполняется по заголовку.","UI.Таблицы.Поля.Значение выпадающего списка");
@@ -9362,6 +9399,15 @@
КонецФункции
+&НаКлиенте
+//И я отменяю выбор файла
+//@ЯОтменяюВыборФайла()
+Функция ЯОтменяюВыборФайла() Экспорт
+
+ КонтекстСохраняемый.ТестовоеПриложение.УстановитьРезультатДиалогаВыбораФайла(Ложь);
+
+КонецФункции
+
&НаКлиенте
//@ЯБудуВыбиратьВнешнийФайлСИндексомФильтра(ИндексФильтра,Парам01,Парам02,Парам03,Парам04,Парам05,Парам06,Парам07)
Функция ЯБудуВыбиратьВнешнийФайлСИндексомФильтра(
@@ -10975,6 +11021,75 @@
КонецФункции
+&НаКлиенте
+//И я выбираю из списка 'Пун*т2' по шаблону
+//@ЯВыбираюИзСпискаПоШаблону(Парам01)
+Функция ЯВыбираюИзСпискаПоШаблону(Знач Значение) Экспорт
+
+ ТекущаяФорма = НайтиТекущуюФорму();
+ НадоПрервать = Ложь;
+ БылаОшибка = Ложь;
+
+ ТекстОшибки = "";
+ КоличествоПопыток = Ванесса.ЗначениеКоличествоПопытокВыполненияДействия();
+ Для СчетчикПопыток = 1 По КоличествоПопыток Цикл
+ БылаОшибка = Ложь;
+
+ Попытка
+
+ ПредставлениеСпискаВыбора = Неопределено;
+
+ Попытка
+ Если ТекущаяФорма = Неопределено Тогда
+ ФормыКлиентаТестирования = КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъекты(Тип("ТестируемаяФорма"));
+ Для Каждого ТекФорма Из ФормыКлиентаТестирования Цикл
+ Попытка
+ ПредставлениеСпискаВыбора = ТекФорма.ПолучитьПредставлениеСпискаВыбора();
+ ТекущаяФорма = ТекФорма;
+ Исключение
+ КонецПопытки;
+ КонецЦикла;
+ Иначе
+ ПредставлениеСпискаВыбора = ТекущаяФорма.ПолучитьПредставлениеСпискаВыбора();
+ КонецЕсли;
+ Исключение
+ ТекстСообщения = Ванесса.ПолучитьТекстСообщенияПользователю("В списке нет значения <%1>");
+ ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",Значение);
+ ВызватьИсключение ТекстСообщения;
+ КонецПопытки;
+
+ Если ПредставлениеСпискаВыбора = Неопределено Тогда
+ ТекстСообщения = Ванесса.ПолучитьТекстСообщенияПользователю("Не вышло получить представление списка выбора.");
+ ВызватьИсключение ТекстСообщения;
+ КонецЕсли;
+
+ Для Каждого ТекЗначение Из ПредставлениеСпискаВыбора Цикл
+ Если Ванесса.СтрокаСоответствуетШаблону(ТекЗначение.ОтображаемыйТекст, Значение) Тогда
+ ТекущаяФорма.ВыполнитьВыборИзСписка(ТекЗначение.ОтображаемыйТекст);
+ НадоПрервать = Истина;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Исключение
+ ТекстОшибки = ОписаниеОшибки();
+ БылаОшибка = Истина;
+ Если СчетчикПопыток < КоличествоПопыток Тогда
+ Ванесса.sleep(1);
+ КонецЕсли;
+ КонецПопытки;
+
+ Если НадоПрервать Тогда
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если БылаОшибка Тогда
+ ВызватьИсключение ТекстСообщения;
+ КонецЕсли;
+
+КонецФункции
+
&НаКлиенте
Функция ПривестиЗначениеФлагаКСтандарту(Значение)
Возврат Ванесса.ПривестиЗначениеФлагаКСтандарту(Значение);
@@ -13031,6 +13146,19 @@
КонецЕсли;
КонецФункции
+&НаКлиенте
+//Тогда переменная "ИмяПеременной" имеет значение "ЗначениеПеременной" по шаблону
+//@ПеременнаяИмеетЗначениеПоШаблону(Парам01,Парам02)
+Функция ПеременнаяИмеетЗначениеПоШаблону(ИмяПеременной,Значение) Экспорт
+ ЗначениеПеременной = Ванесса.ЗначениеПеременнойИзКонтекстаИлиПоНомеруПараметра(ИмяПеременной, 0);
+ Если НЕ Ванесса.СтрокаСоответствуетШаблону(ЗначениеПеременной, Значение) Тогда
+ ТекстСообщения = Ванесса.ПолучитьТекстСообщенияПользователю("Ожидали, что переменная <%1> будет равна <%2>. Текущее значение <%3>");
+ ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",ИмяПеременной);
+ ТекстСообщения = СтрЗаменить(ТекстСообщения,"%2",Значение);
+ ТекстСообщения = СтрЗаменить(ТекстСообщения,"%3",ЗначениеПеременной);
+ ВызватьИсключение ТекстСообщения;
+ КонецЕсли;
+КонецФункции
@@ -13885,6 +14013,7 @@
+
&НаКлиенте
//И представление элемента "НаименованиеНадписью" стало равно ""
//@ПредставлениеЭлементаСталоРавно(Парам01,Парам02)
@@ -14699,7 +14828,7 @@
&НаКлиенте
//И выпадающий список Формы стал равен
//@ВыпадающийСписокФормыСталРавен(Парам01,ТабПарам)
-Функция ВыпадающийСписокФормыСталРавен(ТабПарам,ИскатьПоИмени = Ложь, ЭтоУсловие=Ложь) Экспорт
+Функция ВыпадающийСписокФормыСталРавен(ТабПарам,ИскатьПоИмени = Ложь, ЭтоУсловие=Ложь, ПоШаблону = Ложь) Экспорт
БылаОшибка = Ложь;
ТекстСообщения = "";
@@ -14738,12 +14867,21 @@
НомСтр = НомСтр + 1;
СтрокаПредставлениеСпискаВыбора = ПредставлениеСпискаВыбора[НомСтр];
- Если НРег(СокрЛП(СтрокаТабПарам.Кол1)) <> НРег(СокрЛП(СтрокаПредставлениеСпискаВыбора.ОтображаемыйТекст)) Тогда
- ТекстСообщения = Ванесса.ПолучитьТекстСообщенияПользователю("Ожидалось получить %1, а было получено %2.");
- ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",СтрокаТабПарам.Кол1);
- ТекстСообщения = СтрЗаменить(ТекстСообщения,"%2",СтрокаПредставлениеСпискаВыбора.ОтображаемыйТекст);
- МассивРазличий.Добавить(ТекстСообщения);
- КонецЕсли;
+ Если ПоШаблону Тогда
+ Если НЕ Ванесса.СтрокаСоответствуетШаблону(НРег(СокрЛП(СтрокаПредставлениеСпискаВыбора.ОтображаемыйТекст)), НРег(СокрЛП(СтрокаТабПарам.Кол1))) Тогда
+ ТекстСообщения = Ванесса.ПолучитьТекстСообщенияПользователю("Ожидалось получить %1, а было получено %2.");
+ ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",СтрокаТабПарам.Кол1);
+ ТекстСообщения = СтрЗаменить(ТекстСообщения,"%2",СтрокаПредставлениеСпискаВыбора.ОтображаемыйТекст);
+ МассивРазличий.Добавить(ТекстСообщения);
+ КонецЕсли;
+ Иначе
+ Если НРег(СокрЛП(СтрокаТабПарам.Кол1)) <> НРег(СокрЛП(СтрокаПредставлениеСпискаВыбора.ОтображаемыйТекст)) Тогда
+ ТекстСообщения = Ванесса.ПолучитьТекстСообщенияПользователю("Ожидалось получить %1, а было получено %2.");
+ ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",СтрокаТабПарам.Кол1);
+ ТекстСообщения = СтрЗаменить(ТекстСообщения,"%2",СтрокаПредставлениеСпискаВыбора.ОтображаемыйТекст);
+ МассивРазличий.Добавить(ТекстСообщения);
+ КонецЕсли;
+ КонецЕсли;
КонецЦикла;
@@ -14780,6 +14918,12 @@
КонецФункции
+&НаКлиенте
+//И выпадающий список Формы стал равен
+//@ВыпадающийСписокФормыСталРавенПоШаблону(Парам01,ТабПарам)
+Функция ВыпадающийСписокФормыСталРавенПоШаблону(ТабПарам,ИскатьПоИмени = Ложь, ЭтоУсловие=Ложь) Экспорт
+ ВыпадающийСписокФормыСталРавен(ТабПарам,ИскатьПоИмени, ЭтоУсловие, Истина);
+КонецФункции
&НаКлиенте
//И выпадающий список "ИмяЭлемента" стал равен
@@ -14895,7 +15039,7 @@
&НаКлиенте
//И выпадающий список формы содержит значения
//@ВыпадающийСписокФормыСодержитЗначения(ТабПарам)
-Функция ВыпадающийСписокФормыСодержитЗначения(ТабПарам,ИскатьПоИмени = Ложь, ЭтоУсловие=Ложь) Экспорт
+Функция ВыпадающийСписокФормыСодержитЗначения(ТабПарам,ИскатьПоИмени = Ложь, ЭтоУсловие=Ложь, ПоШаблону = Ложь) Экспорт
БылаОшибка = Ложь;
ТекстСообщения = "";
@@ -14925,19 +15069,43 @@
МассивРазличий = Новый Массив;
- НомСтр = -1;
- Для Каждого СтрокаТабПарам Из ТабПарам Цикл
- НомСтр = НомСтр + 1;
-
- ЗначениеИзЭталона = СокрЛП(НРег(СтрокаТабПарам.Кол1));
-
- Если МассивТекущихЗначений.Найти(ЗначениеИзЭталона) = Неопределено Тогда
- Если МассивРазличий.Найти(СтрокаТабПарам.Кол1) = Неопределено Тогда
- МассивРазличий.Добавить(СтрокаТабПарам.Кол1);
+ Если ПоШаблону Тогда
+ НомСтр = -1;
+ Для Каждого СтрокаТабПарам Из ТабПарам Цикл
+ НомСтр = НомСтр + 1;
+
+ ЗначениеИзЭталона = СокрЛП(НРег(СтрокаТабПарам.Кол1));
+
+ Нашли = Ложь;
+ Для Каждого ТекЗнач Из МассивТекущихЗначений Цикл
+ Если Ванесса.СтрокаСоответствуетШаблону(ТекЗнач,ЗначениеИзЭталона) Тогда
+ Нашли = Истина;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если НЕ Нашли Тогда
+ Если МассивРазличий.Найти(СтрокаТабПарам.Кол1) = Неопределено Тогда
+ МассивРазличий.Добавить(СтрокаТабПарам.Кол1);
+ КонецЕсли;
+ КонецЕсли;
+
+ КонецЦикла;
+ Иначе
+ НомСтр = -1;
+ Для Каждого СтрокаТабПарам Из ТабПарам Цикл
+ НомСтр = НомСтр + 1;
+
+ ЗначениеИзЭталона = СокрЛП(НРег(СтрокаТабПарам.Кол1));
+
+ Если МассивТекущихЗначений.Найти(ЗначениеИзЭталона) = Неопределено Тогда
+ Если МассивРазличий.Найти(СтрокаТабПарам.Кол1) = Неопределено Тогда
+ МассивРазличий.Добавить(СтрокаТабПарам.Кол1);
+ КонецЕсли;
КонецЕсли;
- КонецЕсли;
-
- КонецЦикла;
+
+ КонецЦикла;
+ КонецЕсли;
Если МассивРазличий.Количество() > 0 Тогда
ТекстСообщения = Ванесса.ПолучитьТекстСообщенияПользователю("Открытый список выбора привязанный к форме не содержит ожидаемые значения: %1");
@@ -14971,6 +15139,13 @@
КонецФункции
+&НаКлиенте
+//И выпадающий список формы содержит значения
+//@ВыпадающийСписокФормыСодержитЗначенияПоШаблону(ТабПарам)
+Функция ВыпадающийСписокФормыСодержитЗначенияПоШаблону(ТабПарам,ИскатьПоИмени = Ложь, ЭтоУсловие=Ложь) Экспорт
+ ВыпадающийСписокФормыСодержитЗначения(ТабПарам,ИскатьПоИмени, ЭтоУсловие, Истина);
+КонецФункции
+
&НаКлиенте
//И выпадающий список "Реквизит1" содержит значения
//@ВыпадающийСписокСодержитЗначения(Парам01,ТабПарам)
@@ -15081,7 +15256,7 @@
&НаКлиенте
//И выпадающий список формы не содержит значения
//@ВыпадающийСписокФормыНеСодержитЗначения(ТабПарам)
-Функция ВыпадающийСписокФормыНеСодержитЗначения(ТабПарам) Экспорт
+Функция ВыпадающийСписокФормыНеСодержитЗначения(ТабПарам, ПоШаблону = Ложь) Экспорт
БылаОшибка = Ложь;
ТекстСообщения = "";
@@ -15113,19 +15288,43 @@
МассивРазличий = Новый Массив;
- НомСтр = -1;
- Для Каждого СтрокаТабПарам Из ТабПарам Цикл
- НомСтр = НомСтр + 1;
-
- ЗначениеИзЭталона = СокрЛП(НРег(СтрокаТабПарам.Кол1));
-
- Если МассивТекущихЗначений.Найти(ЗначениеИзЭталона) <> Неопределено Тогда
- Если МассивРазличий.Найти(СтрокаТабПарам.Кол1) = Неопределено Тогда
- МассивРазличий.Добавить(СтрокаТабПарам.Кол1);
+ Если ПоШаблону Тогда
+ НомСтр = -1;
+ Для Каждого СтрокаТабПарам Из ТабПарам Цикл
+ НомСтр = НомСтр + 1;
+
+ ЗначениеИзЭталона = СокрЛП(НРег(СтрокаТабПарам.Кол1));
+
+ Нашли = Ложь;
+ Для Каждого ТекЗнач Из МассивТекущихЗначений Цикл
+ Если Ванесса.СтрокаСоответствуетШаблону(ТекЗнач,ЗначениеИзЭталона) Тогда
+ Нашли = Истина;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если Нашли Тогда
+ Если МассивРазличий.Найти(СтрокаТабПарам.Кол1) = Неопределено Тогда
+ МассивРазличий.Добавить(СтрокаТабПарам.Кол1);
+ КонецЕсли;
+ КонецЕсли;
+
+ КонецЦикла;
+ Иначе
+ НомСтр = -1;
+ Для Каждого СтрокаТабПарам Из ТабПарам Цикл
+ НомСтр = НомСтр + 1;
+
+ ЗначениеИзЭталона = СокрЛП(НРег(СтрокаТабПарам.Кол1));
+
+ Если МассивТекущихЗначений.Найти(ЗначениеИзЭталона) <> Неопределено Тогда
+ Если МассивРазличий.Найти(СтрокаТабПарам.Кол1) = Неопределено Тогда
+ МассивРазличий.Добавить(СтрокаТабПарам.Кол1);
+ КонецЕсли;
КонецЕсли;
- КонецЕсли;
-
- КонецЦикла;
+
+ КонецЦикла;
+ КонецЕсли;
Если МассивРазличий.Количество() > 0 Тогда
ТекстСообщения = Ванесса.ПолучитьТекстСообщенияПользователю("Открытый список выбора привязанный к форме содержит значения, которых не должно быть: %1");
@@ -15158,6 +15357,15 @@
КонецФункции
+&НаКлиенте
+//И выпадающий список формы не содержит значения
+//@ВыпадающийСписокФормыНеСодержитЗначенияПоШаблону(ТабПарам)
+Функция ВыпадающийСписокФормыНеСодержитЗначенияПоШаблону(ТабПарам) Экспорт
+
+ ВыпадающийСписокФормыНеСодержитЗначения(ТабПарам, Истина);
+
+КонецФункции
+
&НаКлиенте
//И выпадающий список "Реквизит1" не содержит значения
//@ВыпадающийСписокНеСодержитЗначения(Парам01,ТабПарам)
@@ -18058,6 +18266,12 @@
Для Каждого СтрокаФильтра Из ТабПарам Цикл
НадоПродолжить = Ложь;
+ Если СтрокаФильтра.Количество() = 4 И ЗначениеЗаполнено(СтрокаФильтра.Кол4) Тогда
+ ЭтоДата = Истина;
+ Иначе
+ ЭтоДата = Ложь;
+ КонецЕсли;
+
МассивСтрок = Ванесса.РазложитьСтрокуВМассивПодстрокКлиент(СтрокаФильтра.Кол1,".");
АктивноеОкно = Ванесса.ПолучитьАктивноеОкноИзТестовоеПриложение();
@@ -18167,17 +18381,43 @@
ПолеЗначение = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"),,"SettingsComposerUserSettingsItem*FilterRightValue");
КонецЕсли;
- ПолеЗначение.Активизировать();
- ТЧ.ИзменитьСтроку();
- ПолеЗначение.ВвестиТекст(СтрокаФильтра.Кол3);
+ Если ЭтоДата Тогда
+ ПравоеЗначениеТекст = ТЧ.ПолучитьТекстЯчейки();
+ Иначе
+ ПолеЗначение.Активизировать();
+ ТЧ.ИзменитьСтроку();
+ ПолеЗначение.ВвестиТекст(СтрокаФильтра.Кол3);
+ КонецЕсли;
+
+ Если ЭтоДата Тогда
+ ПолеДата = ТЧ.НайтиОбъект(Тип("ТестируемоеПолеФормы"),,"КомпоновщикНастроекПользовательскиеНастройкиЭлемент*ОтборДата");
+ Если Не ПолеДата = Неопределено Тогда
+ ПолеДата.Активизировать();
+ ТЧ.ИзменитьСТроку();
+ Если ЗначениеЗаполнено(СТрокаФильтра.Кол4) Тогда
+ мДата = СтрокаФильтра.Кол4;
+ Иначе
+ мДата = ДАТА(1, 1, 1);
+ КонецЕсли;
+ ПолеДата.ВвестиТекст(Строка(мДата));
+ КонецЕсли;
+ КонецЕсли;
Если НРег(СокрЛП(ВидСравненияТекст)) <> НРег(СокрЛП(СтрокаФильтра.Кол2)) Тогда
ПолеВидСравнения.Активизировать();
ПолеВидСравнения.ВвестиТекст(СтрокаФильтра.Кол2);
- КонецЕсли;
+ КонецЕсли;
+
+ Если ЭтоДата Тогда
+ Если НРег(СокрЛП(ПравоеЗначениеТекст)) <> НРег(СокрЛП(СтрокаФильтра.Кол3)) Тогда
+ ПолеЗначение.Активизировать();
+ ПолеЗначение.ВвестиТекст(СтрокаФильтра.Кол3);
+ КонецЕсли;
+ КонецЕсли;
ТЧ.ЗакончитьРедактированиеСтроки();
- КонецЦикла;
+ КонецЦикла;
+
КонецФункции
diff --git "a/features/Libraries/UITestRunner/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274.feature" "b/features/Libraries/UITestRunner/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274.feature"
index de7b9324b2..903b177e16 100644
--- "a/features/Libraries/UITestRunner/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274.feature"
+++ "b/features/Libraries/UITestRunner/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274.feature"
@@ -161,10 +161,26 @@
И выпадающий список формы не содержит значения
| 'Значение списка1' |
| 'Тест1' |
+ Если версия платформы ">=" "8.3.25" Тогда
+ И выпадающий список формы не содержит значения по шаблону
+ | 'Знач*ние списка1' |
+ | 'Т*ст1' |
+ И выпадающий список формы содержит значения по шаблону
+ | 'Знач*ние списка' |
+ | 'Т*ст' |
+ И выпадающий список формы стал равен по шаблону
+ | 'Знач*ние списка' |
+ | 'Т*ст' |
+
И выпадающий список формы не содержит дублирующихся значений
+ //Проверка выборка из списка по шаблону
+ И я очищаю окно сообщений пользователю
+ И я выбираю из списка "Т*ст" по шаблону
+ И я нажимаю кнопку выбора у поля "Реквизит список"
И я выбираю из списка "Тест"
+
И в открытой форме я нажимаю на кнопку с заголовком "Записать и закрыть"
И пауза 1
И Элемент Справочника1 с именем "Тестовый Элемент 2" записался корректно
diff --git "a/features/Libraries/UITestRunner/\320\244\320\270\320\273\321\214\321\202\321\200\320\244\320\276\321\200\320\274\321\213\320\241\320\277\320\270\321\201\320\272\320\260.feature" "b/features/Libraries/UITestRunner/\320\244\320\270\320\273\321\214\321\202\321\200\320\244\320\276\321\200\320\274\321\213\320\241\320\277\320\270\321\201\320\272\320\260.feature"
index 11edf12be4..f6be1489c4 100644
--- "a/features/Libraries/UITestRunner/\320\244\320\270\320\273\321\214\321\202\321\200\320\244\320\276\321\200\320\274\321\213\320\241\320\277\320\270\321\201\320\272\320\260.feature"
+++ "b/features/Libraries/UITestRunner/\320\244\320\270\320\273\321\214\321\202\321\200\320\244\320\276\321\200\320\274\321\213\320\241\320\277\320\270\321\201\320\272\320\260.feature"
@@ -1,4 +1,4 @@
-# language: ru
+# language: ru
# encoding: utf-8
#parent uf:
@UF4_Библиотека_шагов
@@ -57,6 +57,36 @@
Тогда в таблице "Список" количество строк "равно" 0
+ И я закрываю все окна клиентского приложения
+ * Проверка установки фильтра на дату
+ И В командном интерфейсе я выбираю "Основная" "Документ1"
+ И Я запоминаю значение выражения 'НачалоДня(ТекущаяДата())' в переменную "НачалоДня"
+ И Я запоминаю значение выражения 'КонецДня(ТекущаяДата())' в переменную "КонецДня"
+ И Я устанавливаю фильтр на список
+ | 'Дата' | 'Больше или равно' | 'Произвольная дата' | '$НачалоДня$' |
+ | 'Дата' | 'Меньше или равно' | 'Произвольная дата' | '$КонецДня$' |
+ | 'Пометка удаления' | 'Равно' | 'Да' | |
+ | 'Дата' | 'Равно' | 'Начало этого дня' | '' |
+ | 'Дата' | 'Равно' | 'Произвольная дата' | '08.04.1981' |
+ | 'Проведен' | 'Равно' | 'Нет' | |
+
+ И я нажимаю на кнопку с именем 'ФормаНастройкаСписка'
+ Тогда открылось окно "Настройка списка"
+ И я перехожу к закладке 'Отбор'
+ Тогда таблица 'КомпоновщикНастроекПользовательскиеНастройкиЭлемент0Отбор' стала равной:
+ | 'Использование' | 'Поле' | 'Вид сравнения' | 'Значение' | 'Дата' |
+ | '' | '' | '' | '' | '' |
+ | 'Да' | 'Дата' | 'Больше или равно' | 'Произвольная дата' | '$НачалоДня$' |
+ | 'Да' | 'Дата' | 'Меньше или равно' | 'Произвольная дата' | '$КонецДня$' |
+ | 'Да' | 'Пометка удаления' | 'Равно' | 'Да' | '' |
+ | 'Да' | 'Дата' | 'Равно' | 'Начало этого дня' | '$НачалоДня$' |
+ | 'Да' | 'Дата' | 'Равно' | 'Произвольная дата' | '08.04.1981 0:00:00' |
+ | 'Да' | 'Проведен' | 'Равно' | 'Нет' | '' |
+
+ И Я закрываю окно "Настройка списка"
+
+
+
Сценарий: Сброс фильтра на форме списка
Когда В панели разделов я выбираю "Основная"
diff --git "a/features/Libraries/\320\243\321\201\320\273\320\276\320\262\320\270\320\265/step_definitions/\320\243\321\201\320\273\320\276\320\262\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/Libraries/\320\243\321\201\320\273\320\276\320\262\320\270\320\265/step_definitions/\320\243\321\201\320\273\320\276\320\262\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
index dd0cec8898..71e83268bc 100644
--- "a/features/Libraries/\320\243\321\201\320\273\320\276\320\262\320\270\320\265/step_definitions/\320\243\321\201\320\273\320\276\320\262\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
+++ "b/features/Libraries/\320\243\321\201\320\273\320\276\320\262\320\270\320\265/step_definitions/\320\243\321\201\320\273\320\276\320\262\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
@@ -67,7 +67,7 @@
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЭтоНеНачальнаяСтраницаТогда()","ЭтоНеНачальнаяСтраницаТогда","Если это не начальная страница Тогда","Условие. Проверяет, то текущее окно это не начальная страница","UI.Окна","Условие");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"СуществуетПеременнаяТогда(Парам01)","СуществуетПеременнаяТогда","Если существует переменная ""ИмяПеременной"" Тогда","Условие. Проверяет существование переменной контекста","Переменные.Прочитать значение","Условие");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"НеСуществуетПеременнаяТогда(Парам01)","НеСуществуетПеременнаяТогда","Если не существует переменная ""ИмяПеременной"" Тогда","Условие. Проверяет несуществование переменной контекста","Переменные.Прочитать значение","Условие");
- Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяИмеетЗначениеТогда(Парам01,Парам02)","ПеременнаяИмеетЗначениеТогда","Если переменная ""ИмяПеременной"" имеет значение ""ЗначениеПеременной"" Тогда","Условие. Проверяет значение переменной контекста","Переменные.Прочитать значение","Условие");
+ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяИмеетЗначениеТогда(Парам01,Парам02)","ПеременнаяИмеетЗначениеТогда","Если переменная ""ИмяПеременной"" имеет значение ""ЗначениеПеременной"" Тогда","Условие. Проверяет значение переменной контекста","Переменные.Проверить значение","Условие");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВСообщенияхПользователюЕстьСтрокаТогда(Парам01)","ВСообщенияхПользователюЕстьСтрокаТогда","Если в сообщениях пользователю есть строка ""МояСтрока"" Тогда","Условие. Проверяет, что в сообщениях пользователю содержится нужная строка или подстрока.","UI.Сообщения пользователю.Условие","Условие");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВТаблицеЕстьКолонкиТогда(Парам01,ТабПарам)","ВТаблицеЕстьКолонкиТогда","Если в таблице ""ИмяТаблицы"" есть колонки Тогда" + Символы.ПС + " | 'Колонка1' |" + Символы.ПС + " | 'Колонка2' |","Условие. Проверяет, есть ли в таблице указанные колоноки. Заголовки колонок надо передать в шаг в виде таблицы Gherkin.","UI.Таблицы.Проверка состава колонок","Условие");
diff --git "a/features/StepsRunner/TestClient/Issue-416-\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260 \320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\237\320\276\320\236\321\210\320\270\320\261\320\272\320\265.feature" "b/features/StepsRunner/TestClient/Issue-416-\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260 \320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\237\320\276\320\236\321\210\320\270\320\261\320\272\320\265.feature"
index 2c22d110b4..541b00d593 100644
--- "a/features/StepsRunner/TestClient/Issue-416-\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260 \320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\237\320\276\320\236\321\210\320\270\320\261\320\272\320\265.feature"
+++ "b/features/StepsRunner/TestClient/Issue-416-\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260 \320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\237\320\276\320\236\321\210\320\270\320\261\320\272\320\265.feature"
@@ -16,9 +16,37 @@
Как Разработчик
Я Хочу чтобы чтобы у меня была возможность остановить выполнение шагов если возникла ошибка в сценарии и установлен флаг ОстановкаПриВозникновенииОшибки
Чтобы я мог использовать быстрее искать ошибки в сценариях
-
+//https://github.com/Pr-Mex/vanessa-automation/issues/2211
+Сценарий: Проверка работы флага ОстановкаПриВозникновенииОшибки когда есть сценарий, в котором есть шаг со статусом pending
+ * Подготовка теста
+ Когда Я открываю VanessaAutomation в режиме TestClient
+
+ И В поле с именем "КаталогФичСлужебный" я указываю путь к служебной фиче "ОстановкаПриВозникновенииОшибки\ПроверкаРаботыФлагаОстановкаПриВозникновенииОшибки03"
+ И я перехожу к закладке с именем "ГруппаНастройки"
+ И я перехожу к закладке "Выполнение сценариев"
+ И я изменяю флаг "Остановка при возникновении ошибки"
+ И Я нажимаю на кнопку перезагрузить сценарии в Vanessa-Automation TestClient
+ И Я нажимаю на кнопку выполнить сценарии в Vanessa-Automation TestClient
+
+ * Проверка результата
+ И я нажимаю на кнопку с именем 'ФормаРазвернутьВсеСтрокиДереваСлужебный'
+ Тогда таблица "ДеревоТестов" стала равной:
+ | 'Наименование' | 'Статус' |
+ | 'ПроверкаРаботыФлагаОстановкаПриВозникновенииОшибки03.feature' | '' |
+ | 'Тестовая фича, проверяющая работу флага ОстановкаПриВозникновенииОшибки03' | '' |
+ | 'Тестовая фича, проверяющая работу флага ОстановкаПриВозникновенииОшибки03_1' | 'Pending' |
+ | 'И Я запоминаю значение выражения \'1\' в переменную "ИмяПеременной"' | 'Success' |
+ | 'И Я запоминаю значение выражения \'2\' в переменную "ИмяПеременной"' | 'Success' |
+ | 'И такого шага нет в библиотеке шагов' | 'Pending' |
+ | 'Тестовая фича, проверяющая работу флага ОстановкаПриВозникновенииОшибки03_2' | '' |
+ | 'И Я запоминаю значение выражения \'3\' в переменную "ИмяПеременной"' | '' |
+ | 'И Я запоминаю значение выражения \'4\' в переменную "ИмяПеременной"' | '' |
+
+
+
+
Сценарий: Проверка работы флага ОстановкаПриВозникновенииОшибки когда есть только один сценарий и используется шаг И я регистрирую ошибку
* Подготовка теста
Когда Я открываю VanessaAutomation в режиме TestClient
diff --git a/features/Support/Templates/VAEditor/VanessaEditor53.feature b/features/Support/Templates/VAEditor/VanessaEditor53.feature
new file mode 100644
index 0000000000..d9659cbfab
--- /dev/null
+++ b/features/Support/Templates/VAEditor/VanessaEditor53.feature
@@ -0,0 +1,20 @@
+# language: ru
+# encoding: utf-8
+#parent uf:
+@UF9_Вспомогательные_фичи
+#parent ua:
+@UA25_Макеты_для_отчетов_о_выполнении
+
+@IgnoreOnCIMainBuild
+
+
+Функциональность: VAEditor53
+
+Сценарий: VAEditor53
+
+ И Я запоминаю значение выражения '1' в переменную "ИмяПеременной2"
+
+ Попытка
+ И Я запоминаю значение выражения '2' в переменную "ИмяПеременной2"
+ Исключение
+ И я регистрирую ошибку "Ошибка прав доступа к справочнику" по данным исключения
\ No newline at end of file
diff --git a/features/Support/Templates/VAEditor/VanessaEditor54.feature b/features/Support/Templates/VAEditor/VanessaEditor54.feature
new file mode 100644
index 0000000000..db81131e75
--- /dev/null
+++ b/features/Support/Templates/VAEditor/VanessaEditor54.feature
@@ -0,0 +1,24 @@
+# language: ru
+# encoding: utf-8
+#parent uf:
+@UF9_Вспомогательные_фичи
+#parent ua:
+@UA25_Макеты_для_отчетов_о_выполнении
+
+@IgnoreOnCIMainBuild
+
+
+Функциональность: VAEditor54
+
+Сценарий: VAEditor54
+
+ И Я запоминаю значение выражения '1' в переменную "ИмяПеременной2"
+
+ Попытка
+ И Я запоминаю значение выражения '2' в переменную "ИмяПеременной2"
+ И ПодсценарийКоторыйБудетВызыватьсяВнутриПопыткиИсключения
+ И Я запоминаю значение выражения '3' в переменную "ИмяПеременной2"
+ Исключение
+ И я регистрирую ошибку "Ошибка прав доступа к справочнику" по данным исключения
+
+ И Я запоминаю значение выражения '4' в переменную "ИмяПеременной2"
\ No newline at end of file
diff --git a/features/Support/Templates/VAEditor/VanessaEditor55.feature b/features/Support/Templates/VAEditor/VanessaEditor55.feature
new file mode 100644
index 0000000000..231fa8638c
--- /dev/null
+++ b/features/Support/Templates/VAEditor/VanessaEditor55.feature
@@ -0,0 +1,19 @@
+# language: ru
+# encoding: utf-8
+#parent uf:
+@UF9_Вспомогательные_фичи
+#parent ua:
+@UA25_Макеты_для_отчетов_о_выполнении
+
+@IgnoreOnCIMainBuild
+
+
+Функциональность: VAEditor55
+
+Сценарий: VAEditor55
+
+ И я вывожу сообщение в менеджер тестирования "1"
+
+ И ПодсценарийПервогоУровня55
+
+ И я вывожу сообщение в менеджер тестирования "2"
diff --git a/features/Support/Templates/VAEditor/VanessaEditor56.feature b/features/Support/Templates/VAEditor/VanessaEditor56.feature
new file mode 100644
index 0000000000..90d3426e64
--- /dev/null
+++ b/features/Support/Templates/VAEditor/VanessaEditor56.feature
@@ -0,0 +1,35 @@
+# language: ru
+# encoding: utf-8
+#parent uf:
+@UF9_Вспомогательные_фичи
+#parent ua:
+@UA25_Макеты_для_отчетов_о_выполнении
+
+@IgnoreOnCIMainBuild
+
+
+Функциональность: VAEditor56
+
+Сценарий: VAEditor56
+ Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий
+ И я закрываю все окна клиентского приложения
+
+ И В командном интерфейсе я выбираю "Основная" "Справочник1"
+ Тогда открылось окно "Справочник1"
+ И я нажимаю на кнопку с именем 'ФормаСоздать'
+ Тогда открылось окно "Справочник1 (создание)"
+
+ И я перехожу к закладке "ТЧ"
+ И в таблице 'ТабличнаяЧасть1' я нажимаю на кнопку с именем 'ТабличнаяЧасть1Добавить'
+ И в таблице 'ТабличнаяЧасть1' я активизирую поле с именем 'ТабличнаяЧасть1РеквизитСтрока'
+ И в таблице 'ТабличнаяЧасть1' в поле с именем 'ТабличнаяЧасть1РеквизитСтрока' я ввожу текст "111"
+ И в таблице 'ТабличнаяЧасть1' я завершаю редактирование строки
+
+
+
+ И я устанавливаю флаг с именем 'РеквизитЧисло1'
+ И я меняю значение переключателя с именем 'РеквизитПереключатель' на "Первое значение"
+ И в таблице "ТабличнаяЧасть1" в поле с именем 'ТабличнаяЧасть1РеквизитСтрока' я ввожу текст "111"
+ И в таблице 'ТабличнаяЧасть1' я завершаю редактирование строки
+
+
\ No newline at end of file
diff --git a/features/Support/Templates/VAEditor/VanessaEditorExport.feature b/features/Support/Templates/VAEditor/VanessaEditorExport.feature
index 0ae490a153..5f67546a56 100644
--- a/features/Support/Templates/VAEditor/VanessaEditorExport.feature
+++ b/features/Support/Templates/VAEditor/VanessaEditorExport.feature
@@ -93,4 +93,14 @@
Попытка
И Я запоминаю значение выражения '1' в переменную "ИмяПеременной"
Исключение
- И Я запоминаю значение выражения '2' в переменную "ИмяПеременной"
\ No newline at end of file
+ И Я запоминаю значение выражения '2' в переменную "ИмяПеременной"
+
+Сценарий: ПодсценарийКоторыйБудетВызыватьсяВнутриПопыткиИсключения
+ И Я запоминаю значение выражения '111' в переменную "ИмяПеременной"
+
+
+Сценарий: ПодсценарийПервогоУровня55
+ И я вывожу сообщение в менеджер тестирования "11"
+ И я вывожу сообщение в менеджер тестирования "22"
+ И ПодсценарийВторогоУровня55
+ И я вывожу сообщение в менеджер тестирования "33"
diff --git a/features/Support/Templates/VAEditor/VanessaEditorExport2.feature b/features/Support/Templates/VAEditor/VanessaEditorExport2.feature
index 52e0120dfc..98ad9c4ded 100644
--- a/features/Support/Templates/VAEditor/VanessaEditorExport2.feature
+++ b/features/Support/Templates/VAEditor/VanessaEditorExport2.feature
@@ -17,3 +17,7 @@
Сценарий: Я вызываю экспортный сценарий для проверки вставок подсценариев вложенный
И Я запоминаю значение выражения '2+2' в переменную "ИмяПеременной2"
+
+Сценарий: ПодсценарийВторогоУровня55
+ И я вывожу сообщение в менеджер тестирования "111"
+ И я вывожу сообщение в менеджер тестирования "222"
diff --git "a/features/Support/Templates/VAEditor/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.feature" "b/features/Support/Templates/VAEditor/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.feature"
new file mode 100644
index 0000000000..dc79f08cdc
--- /dev/null
+++ "b/features/Support/Templates/VAEditor/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.feature"
@@ -0,0 +1,19 @@
+# language: ru
+# encoding: utf-8
+#parent uf:
+@UF9_Вспомогательные_фичи
+#parent ua:
+@UA25_Макеты_для_отчетов_о_выполнении
+
+@IgnoreOnCIMainBuild
+
+
+Функциональность: Закрыть клиент тестирования
+
+
+
+Сценарий: Закрыть клиент тестирования
+
+ И я закрываю сеанс текущего клиента тестирования
+
+
diff --git "a/features/Support/Templates/\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\270\320\222\320\276\320\267\320\275\320\270\320\272\320\275\320\276\320\262\320\265\320\275\320\270\320\270\320\236\321\210\320\270\320\261\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\260\320\261\320\276\321\202\321\213\320\244\320\273\320\260\320\263\320\260\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\270\320\222\320\276\320\267\320\275\320\270\320\272\320\275\320\276\320\262\320\265\320\275\320\270\320\270\320\236\321\210\320\270\320\261\320\272\320\27003.feature" "b/features/Support/Templates/\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\270\320\222\320\276\320\267\320\275\320\270\320\272\320\275\320\276\320\262\320\265\320\275\320\270\320\270\320\236\321\210\320\270\320\261\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\260\320\261\320\276\321\202\321\213\320\244\320\273\320\260\320\263\320\260\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\270\320\222\320\276\320\267\320\275\320\270\320\272\320\275\320\276\320\262\320\265\320\275\320\270\320\270\320\236\321\210\320\270\320\261\320\272\320\27003.feature"
new file mode 100644
index 0000000000..7e93f49fe1
--- /dev/null
+++ "b/features/Support/Templates/\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\270\320\222\320\276\320\267\320\275\320\270\320\272\320\275\320\276\320\262\320\265\320\275\320\270\320\270\320\236\321\210\320\270\320\261\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\260\320\261\320\276\321\202\321\213\320\244\320\273\320\260\320\263\320\260\320\236\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\270\320\222\320\276\320\267\320\275\320\270\320\272\320\275\320\276\320\262\320\265\320\275\320\270\320\270\320\236\321\210\320\270\320\261\320\272\320\27003.feature"
@@ -0,0 +1,26 @@
+# language: ru
+# encoding: utf-8
+#parent uf:
+@UF9_Вспомогательные_фичи
+#parent ua:
+@UA42_Тестовые_фичи
+
+
+@tree
+@IgnoreOnCIMainBuild
+
+
+Функционал: Тестовая фича, проверяющая работу флага ОстановкаПриВозникновенииОшибки03
+
+
+Сценарий: Тестовая фича, проверяющая работу флага ОстановкаПриВозникновенииОшибки03_1
+
+ И Я запоминаю значение выражения '1' в переменную "ИмяПеременной"
+ И Я запоминаю значение выражения '2' в переменную "ИмяПеременной"
+ И такого шага нет в библиотеке шагов
+
+
+Сценарий: Тестовая фича, проверяющая работу флага ОстановкаПриВозникновенииОшибки03_2
+
+ И Я запоминаю значение выражения '3' в переменную "ИмяПеременной"
+ И Я запоминаю значение выражения '4' в переменную "ИмяПеременной"
\ No newline at end of file
diff --git "a/lib/CF/83/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt" "b/lib/CF/83/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt"
index 4fc90125a3..6a610e8be1 100644
--- "a/lib/CF/83/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt"
+++ "b/lib/CF/83/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt"
@@ -198,3 +198,28 @@
Сообщить(Результат.Значение);
КонецЕсли;
КонецПроцедуры
+
+&НаКлиенте
+Процедура ПоказатьСписокПривязанныйКФорме(Команда)
+ Список = Новый СписокЗначений;
+ Список.Добавить("Значение списка",,Истина);
+ Список.Добавить("Тест",,Ложь);
+ Список.Добавить("Пункт1");
+ Список.Добавить("Пункт2", "Пункт2");
+ Список.Добавить("Пункт3", "ПунктТри");
+ Список.Добавить("Пункт4" + Символы.ПС + "Пункт5");
+ Список.Добавить("Пункт67", "Пункт6" + Символы.ПС + "Пункт7");
+
+ Оповещение = Новый ОписаниеОповещения("ПослеВыбораИзСписка", ЭтаФорма, Параметры);
+ ПоказатьВыборИзСписка(Оповещение, Список, Элементы.Код);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеВыбораИзСписка(ВыбранныйЭлемент, Параметры) Экспорт
+
+ Если ВыбранныйЭлемент <> Неопределено Тогда
+ Сообщить(ВыбранныйЭлемент.Значение);
+ КонецЕсли;
+
+КонецПроцедуры
diff --git "a/lib/CF/83/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml" "b/lib/CF/83/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml"
index 823adad766..5664a8272c 100644
--- "a/lib/CF/83/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml"
+++ "b/lib/CF/83/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml"
@@ -85,6 +85,12 @@
+
@@ -461,5 +467,20 @@
ПоказатьМенюПривязанноеКФорме
+
+
+
+ ru
+ Показать список привязанный к форме
+
+
+
+
+ ru
+ Показать список привязанный к форме
+
+
+ ПоказатьСписокПривязанныйКФорме
+
\ No newline at end of file
diff --git "a/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt" "b/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt"
index 4fc90125a3..6a610e8be1 100644
--- "a/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt"
+++ "b/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt"
@@ -198,3 +198,28 @@
Сообщить(Результат.Значение);
КонецЕсли;
КонецПроцедуры
+
+&НаКлиенте
+Процедура ПоказатьСписокПривязанныйКФорме(Команда)
+ Список = Новый СписокЗначений;
+ Список.Добавить("Значение списка",,Истина);
+ Список.Добавить("Тест",,Ложь);
+ Список.Добавить("Пункт1");
+ Список.Добавить("Пункт2", "Пункт2");
+ Список.Добавить("Пункт3", "ПунктТри");
+ Список.Добавить("Пункт4" + Символы.ПС + "Пункт5");
+ Список.Добавить("Пункт67", "Пункт6" + Символы.ПС + "Пункт7");
+
+ Оповещение = Новый ОписаниеОповещения("ПослеВыбораИзСписка", ЭтаФорма, Параметры);
+ ПоказатьВыборИзСписка(Оповещение, Список, Элементы.Код);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеВыбораИзСписка(ВыбранныйЭлемент, Параметры) Экспорт
+
+ Если ВыбранныйЭлемент <> Неопределено Тогда
+ Сообщить(ВыбранныйЭлемент.Значение);
+ КонецЕсли;
+
+КонецПроцедуры
diff --git "a/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml" "b/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml"
index 823adad766..5664a8272c 100644
--- "a/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml"
+++ "b/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2723.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml"
@@ -85,6 +85,12 @@
+
@@ -461,5 +467,20 @@
ПоказатьМенюПривязанноеКФорме
+
+
+
+ ru
+ Показать список привязанный к форме
+
+
+
+
+ ru
+ Показать список привязанный к форме
+
+
+ ПоказатьСписокПривязанныйКФорме
+
\ No newline at end of file
diff --git "a/lib/CF/83NoSync/Document.\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\221\321\203\321\205.Form.\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.Form.xml" "b/lib/CF/83NoSync/Document.\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\221\321\203\321\205.Form.\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.Form.xml"
index 027a6bf8da..8d1fa31be5 100644
--- "a/lib/CF/83NoSync/Document.\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\221\321\203\321\205.Form.\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.Form.xml"
+++ "b/lib/CF/83NoSync/Document.\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\221\321\203\321\205.Form.\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.Form.xml"
@@ -143,8 +143,6 @@
Normalb75fecce-942b-4aed-abc9-e6a02e460fb3
- Normal
- 911b6018-f537-43e8-a417-da56b22f9aec
diff --git "a/lib/CF/83NoSync/Document.\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\221\321\203\321\205.Form.\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.Form.xml" "b/lib/CF/83NoSync/Document.\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\221\321\203\321\205.Form.\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.Form.xml"
index 292eb4fa16..3a70576bc4 100644
--- "a/lib/CF/83NoSync/Document.\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\221\321\203\321\205.Form.\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.Form.xml"
+++ "b/lib/CF/83NoSync/Document.\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\221\321\203\321\205.Form.\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.Form.xml"
@@ -174,8 +174,6 @@
Normalb75fecce-942b-4aed-abc9-e6a02e460fb3
- Normal
- 911b6018-f537-43e8-a417-da56b22f9aec
diff --git a/training/List_of_lessons_ru.md b/training/List_of_lessons_ru.md
index 545fdbeb26..c0b50d6c47 100644
--- a/training/List_of_lessons_ru.md
+++ b/training/List_of_lessons_ru.md
@@ -228,6 +228,7 @@
- Редактор таблиц Gherkin. ![](mortarboard.png)[Запустить урок](КонтекстноеМенюРедактораРедакторТаблицGherkin) [(Видео)](https://youtu.be/mcBo09S5rAA) [(PDF)](https://vanessa-files.do.bit-erp.ru/Doc/1.2.041.1/PDF/Глава13/КонтекстноеМенюРедактораРедакторТаблицGherkin.pdf) [(MD)](https://github.com/Pr-Mex/vanessa-automation/tree/develop/docs/MainHelp/1.2.041.1/Глава13/КонтекстноеМенюРедактораРедакторТаблицGherkin.MD)
- Получить макет по таблице Gherkin. ![](mortarboard.png)[Запустить урок](КонтекстноеМенюРедактораПолучитьМакетПоТаблицеGherkin) [(Видео)](https://youtu.be/jPtAznjP5Xg) [(PDF)](https://vanessa-files.do.bit-erp.ru/Doc/1.2.041.1/PDF/Глава13/КонтекстноеМенюРедактораПолучитьМакетПоТаблицеGherkin.pdf) [(MD)](https://github.com/Pr-Mex/vanessa-automation/tree/develop/docs/MainHelp/1.2.041.1/Глава13/КонтекстноеМенюРедактораПолучитьМакетПоТаблицеGherkin.MD)
- Получить шаги по данным клиента тестирования. ![](mortarboard.png)[Запустить урок](КонтекстноеМенюРедактораПолучитьШагиПоДаннымКлиентаТестирования) [(Видео)](https://youtu.be/cJXmooN-cx0) [(PDF)](https://vanessa-files.do.bit-erp.ru/Doc/1.2.041.1/PDF/Глава13/КонтекстноеМенюРедактораПолучитьШагиПоДаннымКлиентаТестирования.pdf) [(MD)](https://github.com/Pr-Mex/vanessa-automation/tree/develop/docs/MainHelp/1.2.041.1/Глава13/КонтекстноеМенюРедактораПолучитьШагиПоДаннымКлиентаТестирования.MD)
+ - Заменить шаг проверки элемента формы по имени на шаг проверки по заголовку и наоборот. ![](mortarboard.png)[Запустить урок](КонтекстноеМенюРедактораЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку)
- Перейти к следующей строке с ошибкой. ![](mortarboard.png)[Запустить урок](КонтекстноеМенюРедактораПерейтиКСледующейСтрокеСОшибкой) [(Видео)](https://youtu.be/hAObaILv8Z8) [(PDF)](https://vanessa-files.do.bit-erp.ru/Doc/1.2.041.1/PDF/Глава13/КонтекстноеМенюРедактораПерейтиКСледующейСтрокеСОшибкой.pdf) [(MD)](https://github.com/Pr-Mex/vanessa-automation/tree/develop/docs/MainHelp/1.2.041.1/Глава13/КонтекстноеМенюРедактораПерейтиКСледующейСтрокеСОшибкой.MD)
- Контекстное меню Monaco. ![](mortarboard.png)[Запустить урок](КонтекстноеМенюРедактораКонтекстноеМенюMonaco) [(Видео)](https://youtu.be/vXMcSTqqaEY) [(PDF)](https://vanessa-files.do.bit-erp.ru/Doc/1.2.041.1/PDF/Глава13/КонтекстноеМенюРедактораКонтекстноеМенюMonaco.pdf) [(MD)](https://github.com/Pr-Mex/vanessa-automation/tree/develop/docs/MainHelp/1.2.041.1/Глава13/КонтекстноеМенюРедактораКонтекстноеМенюMonaco.MD)
1. Прочее.
diff --git "a/training/features/\320\223\320\273\320\260\320\262\320\26013/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\275\320\276\320\265\320\234\320\265\320\275\321\216\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\260\320\227\320\260\320\274\320\265\320\275\320\270\321\202\321\214\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\230\320\274\320\265\320\275\320\270\320\235\320\260\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\227\320\260\320\263\320\276\320\273\320\276\320\262\320\272\321\203.feature" "b/training/features/\320\223\320\273\320\260\320\262\320\26013/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\275\320\276\320\265\320\234\320\265\320\275\321\216\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\260\320\227\320\260\320\274\320\265\320\275\320\270\321\202\321\214\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\230\320\274\320\265\320\275\320\270\320\235\320\260\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\227\320\260\320\263\320\276\320\273\320\276\320\262\320\272\321\203.feature"
new file mode 100644
index 0000000000..1ff3d00875
--- /dev/null
+++ "b/training/features/\320\223\320\273\320\260\320\262\320\26013/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\275\320\276\320\265\320\234\320\265\320\275\321\216\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\260\320\227\320\260\320\274\320\265\320\275\320\270\321\202\321\214\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\230\320\274\320\265\320\275\320\270\320\235\320\260\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\227\320\260\320\263\320\276\320\273\320\276\320\262\320\272\321\203.feature"
@@ -0,0 +1,45 @@
+# language: ru
+
+@lessons
+
+Функционал: Интерактивная справка. Контекстное меню редактора. Заменить шаг проверки элемента формы по имени на шаг проверки по заголовку и наоборот.
+
+Сценарий: Контекстное меню редактора. Заменить шаг проверки элемента формы по имени на шаг проверки по заголовку и наоборот.
+
+ * Привет! В этом уроке я расскажу тебе про контекстное меню редактора и как заменить шаг проверки элемента формы по имени на шаг проверки по заголовку и наоборот. Давай откроем второй экземпляр Ванессы в режиме обучения.
+ И я открываю Vanessa Automation в режиме обучения
+
+ * Загр^узим тестовый пример.
+ И я устанавливаю опцию VA в режиме обучения "ПроверкаСинтаксисаВРедакторе" "Истина"
+ И я загружаю фичи в VA в режиме обучения "$КаталогИнструментов$\training\features\Примеры\ПримерКонтекстноеМенюРедактораЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку1.feature"
+
+ * Допустим после записи действий пользователя получился такой шаг
+ И Я делаю подсветку текста в редакторе VA в режиме обучения с 7 по 7 строку 'Результат записи действий пользователя' подсценарий
+
+ * Этот шаг будет выполнять поиск элемента формы по его внутреннему имени
+ И Я делаю подсветку текста в редакторе VA в режиме обучения с 7 по 7 строку 'Шаг ищет элемент формы по имени' подсценарий
+
+ * Может возникнуть задача, чтобы заменить шаг, на другой, который будет искать элемент формы не по имени, а по заголовку.
+
+ * Для этого в контекстном меню редактора надо выбрать данный пункт меню
+ И я делаю клик по элементу формы 'ЭтотСеанс' '' 'Document' правой кнопкой UI Automation
+ И Пауза 1
+ И Я делаю подсветку элемента VA "VanessaEditorКонтекстноеМенюЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку" "Команда для замены шага" и перемещаю курсор
+
+ * Также эту команду можно вызвать с помощью комбинации клавиш контрол плюс джей
+
+ * После выполнения команды шаг будет заменён на шаг, который ищет тот же элемент формы по заголовку
+ И я нажимаю сочетание клавиш "Esc"
+ И Пауза 0.1
+ И я нажимаю сочетание клавиш "ctrl+w"
+ И Пауза 0.1
+ И я загружаю фичи в VA в режиме обучения "$КаталогИнструментов$\training\features\Примеры\ПримерКонтекстноеМенюРедактораЗаменитьШагПроверкиПоИмениНаШагПроверкиПоЗаголовку2.feature"
+ И Пауза 0.1
+ И Я делаю подсветку текста в редакторе VA в режиме обучения с 7 по 7 строку 'Результат выполнения команды' подсценарий
+
+ * Повторный вызов команды заменит шаг обратно.
+
+ * Важный момент. Для работы команды нужно, чтобы в клиенте тестирования было активно окно, которое содержит элемент формы, который используется в шаге.
+
+ * На этом всё, переходи к следующему уроку интерактивной справки.
+
diff --git "a/training/features/\320\237\321\200\320\270\320\274\320\265\321\200\321\213/\320\237\321\200\320\270\320\274\320\265\321\200\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\275\320\276\320\265\320\234\320\265\320\275\321\216\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\260\320\227\320\260\320\274\320\265\320\275\320\270\321\202\321\214\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\230\320\274\320\265\320\275\320\270\320\235\320\260\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\227\320\260\320\263\320\276\320\273\320\276\320\262\320\272\321\2031.feature" "b/training/features/\320\237\321\200\320\270\320\274\320\265\321\200\321\213/\320\237\321\200\320\270\320\274\320\265\321\200\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\275\320\276\320\265\320\234\320\265\320\275\321\216\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\260\320\227\320\260\320\274\320\265\320\275\320\270\321\202\321\214\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\230\320\274\320\265\320\275\320\270\320\235\320\260\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\227\320\260\320\263\320\276\320\273\320\276\320\262\320\272\321\2031.feature"
new file mode 100644
index 0000000000..da02df9278
--- /dev/null
+++ "b/training/features/\320\237\321\200\320\270\320\274\320\265\321\200\321\213/\320\237\321\200\320\270\320\274\320\265\321\200\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\275\320\276\320\265\320\234\320\265\320\275\321\216\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\260\320\227\320\260\320\274\320\265\320\275\320\270\321\202\321\214\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\230\320\274\320\265\320\275\320\270\320\235\320\260\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\227\320\260\320\263\320\276\320\273\320\276\320\262\320\272\321\2031.feature"
@@ -0,0 +1,7 @@
+# language: ru
+
+Функциональность: Пример для замены шага проверки элемента формы по имени на шаг проверки по заголовку и наоборот
+
+Сценарий: Пример для замены шага проверки элемента формы по имени на шаг проверки по заголовку и наоборот
+
+ И я меняю значение переключателя с именем 'РеквизитПереключатель' на "Первое значение"
\ No newline at end of file
diff --git "a/training/features/\320\237\321\200\320\270\320\274\320\265\321\200\321\213/\320\237\321\200\320\270\320\274\320\265\321\200\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\275\320\276\320\265\320\234\320\265\320\275\321\216\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\260\320\227\320\260\320\274\320\265\320\275\320\270\321\202\321\214\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\230\320\274\320\265\320\275\320\270\320\235\320\260\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\227\320\260\320\263\320\276\320\273\320\276\320\262\320\272\321\2032.feature" "b/training/features/\320\237\321\200\320\270\320\274\320\265\321\200\321\213/\320\237\321\200\320\270\320\274\320\265\321\200\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\275\320\276\320\265\320\234\320\265\320\275\321\216\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\260\320\227\320\260\320\274\320\265\320\275\320\270\321\202\321\214\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\230\320\274\320\265\320\275\320\270\320\235\320\260\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\227\320\260\320\263\320\276\320\273\320\276\320\262\320\272\321\2032.feature"
new file mode 100644
index 0000000000..1781ba428a
--- /dev/null
+++ "b/training/features/\320\237\321\200\320\270\320\274\320\265\321\200\321\213/\320\237\321\200\320\270\320\274\320\265\321\200\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\275\320\276\320\265\320\234\320\265\320\275\321\216\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\260\320\227\320\260\320\274\320\265\320\275\320\270\321\202\321\214\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\230\320\274\320\265\320\275\320\270\320\235\320\260\320\250\320\260\320\263\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\237\320\276\320\227\320\260\320\263\320\276\320\273\320\276\320\262\320\272\321\2032.feature"
@@ -0,0 +1,7 @@
+# language: ru
+
+Функциональность: Пример для замены шага проверки элемента формы по имени на шаг проверки по заголовку и наоборот
+
+Сценарий: Пример для замены шага проверки элемента формы по имени на шаг проверки по заголовку и наоборот
+
+ И я меняю значение переключателя "Реквизит переключатель" на "Первое значение"
\ No newline at end of file