Skip to content

Commit

Permalink
Поддержка регистров сведений и накопления для тестов открытия форм и …
Browse files Browse the repository at this point in the history
…тестов командного интерфейса (#1020)

* Добавлены регистры сведений.

* Добавлены регистры сведений.

* Добавлены тесты открытия форм регистров накопления.

* В описание добавлены регистры.

* Добавил исключение регистров сведений в тесте коммандного интерфейса.

* Исправлена ошибка с периодическими регистрами. Выборка для открытия регистров переделана на выборку из запроса.
  • Loading branch information
Bazil1c authored Nov 24, 2024
1 parent 12d5a99 commit 05b7090
Show file tree
Hide file tree
Showing 6 changed files with 394 additions and 5 deletions.
3 changes: 3 additions & 0 deletions tests/smoke/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,8 @@
* `Отчеты` - для настройки исключений для отчетов
* `Обработки` - для настройки исключений для обработок
* `БизнесПроцессы` - для настройки исключений для бизнес-процессов
* `РегистрыСведений` - для настройки исключений для регистров сведений
* `РегистрыНакопления` - для настройки исключений для регистров накопления
* `ПропускаемыеИсключения` - массив с указанием текстов исключений, при появлении которых дымовой тест не будет считаться упавшим. Допускается поиск по подстроке.
* `ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций` - для управления исключением форм, зависящих от отключенных функциональных опций
* `СпособГруппировки` - для настройки способа группировки тестовых случаев для использования в интерактивном режиме
Expand Down Expand Up @@ -687,6 +689,7 @@
- `Отчеты`
- `Обработки`
- `БизнесПроцессы`
- `РегистрыСведений`
- `ВнешниеИсточникиДанных`

Для того, чтобы отключить проверки для форм конкретных видов объектов, нужно указать команду интерфейса в массиве исключений.
Expand Down
73 changes: 71 additions & 2 deletions tests/smoke/smoke.bsp.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,74 @@
"Существующие": [
"Удалить*"
]
}
},
"РегистрыСведений": {
"Списки": [
"Удалить*",
"АдресныеОбъекты",
"БезопасноеХранилищеДанных*",
"Версии*",
"ДанныеОбъектовДляРегистрацииВОбменах",
"ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов*",
"ИдентификаторыОбъектовВерсийРасширений",
"ИспользуемыеВидыДоступа*",
"КлючиДоступа*",
"МиграцияПриложений*",
"НастройкиТранспортаОбмена*",
"ОбновлениеКлючейДоступа*",
"РазрешенияНаИспользованиеВнешнихРесурсов*",
"РежимыПодключенияВнешнихМодулей*",
"РезультатыОбменаДанными",
"СообщенияОбменаДанными*",
"СоответствияОбъектовИнформационныхБаз",
"СостоянияОбменовДанными*"
],
"Новые": [
"Удалить*",
"АдресныеОбъекты",
"БезопасноеХранилищеДанных*",
"Версии*",
"ДанныеОбъектовДляРегистрацииВОбменах",
"ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов*",
"ИдентификаторыОбъектовВерсийРасширений",
"ИспользуемыеВидыДоступа*",
"КлючиДоступа*",
"МиграцияПриложений*",
"НастройкиТранспортаОбмена*",
"ОбновлениеКлючейДоступа*",
"РазрешенияНаИспользованиеВнешнихРесурсов*",
"РежимыПодключенияВнешнихМодулей*",
"РезультатыОбменаДанными",
"СообщенияОбменаДанными*",
"СоответствияОбъектовИнформационныхБаз",
"СостоянияОбменовДанными*"
],
"Существующие": [
"Удалить*",
"АдресныеОбъекты",
"БезопасноеХранилищеДанных*",
"Версии*",
"ДанныеОбъектовДляРегистрацииВОбменах",
"ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов*",
"ИдентификаторыОбъектовВерсийРасширений",
"ИспользуемыеВидыДоступа*",
"КлючиДоступа*",
"МиграцияПриложений*",
"НастройкиТранспортаОбмена*",
"ОбновлениеКлючейДоступа*",
"РазрешенияНаИспользованиеВнешнихРесурсов*",
"РежимыПодключенияВнешнихМодулей*",
"РезультатыОбменаДанными",
"СообщенияОбменаДанными*",
"СоответствияОбъектовИнформационныхБаз",
"СостоянияОбменовДанными*"
]
},
"РегистрыНакопления": {
"Списки": [
"Удалить*"
]
}
},

"CommandInterface": {
Expand Down Expand Up @@ -224,8 +291,10 @@
"Сканирование"
],
"БизнесПроцессы": [
],
"РегистрыСведений": [
"Удалить*"
]

},

"smokeInputBasedOn": {
Expand Down
20 changes: 19 additions & 1 deletion tests/smoke/smoke.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,22 @@
"Удалить*"
]
},
"РегистрыСведений": {
"Списки": [
"Удалить*"
],
"Новые": [
"Удалить*"
],
"Существующие": [
"Удалить*"
]
},
"РегистрыНакопления": {
"Списки": [
"Удалить*"
]
},
"Отчеты": [
"Отчет1"
],
Expand Down Expand Up @@ -164,8 +180,10 @@
"БизнесПроцессы": [
"Удалить*",
"БизнесПроцесс2"
],
"РегистрыСведений": [
"Удалить*"
]

},

"ПроведениеДокументов":{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,7 @@
ДобавитьИсключения(ИсключаемыеОперации, "Отчеты", "Отчет.");
ДобавитьИсключения(ИсключаемыеОперации, "Обработки", "Обработка.");
ДобавитьИсключения(ИсключаемыеОперации, "БизнесПроцессы", "БизнесПроцесс.");
ДобавитьИсключения(ИсключаемыеОперации, "РегистрыСведений", "РегистрСведений.");
ДобавитьИсключения(ИсключаемыеОперации, "ВнешниеИсточникиДанных", "ВнешнийИсточникДанных.");

ИсключаемыеРазделы = Новый Массив;
Expand Down Expand Up @@ -740,6 +741,7 @@
Результат.Вставить("Отчет", "Отчеты");
Результат.Вставить("Обработка", "Обработки");
Результат.Вставить("БизнесПроцесс", "БизнесПроцессы");
Результат.Вставить("РегистрСведений", "РегистрыСведений");
Результат.Вставить("ВнешнийИсточникДанных", "ВнешниеИсточникиДанных");

Возврат Новый ФиксированнаяСтруктура(Результат);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,51 @@
Возврат ПолучитьИсключения(ВидыМетаданных.БизнесПроцессы, ВидыПроверок.Новые);

КонецФункции

// Получить список значений для исключения форм списков регистров сведений.
//
// Возвращаемое значение:
// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
//
Функция ПолучитьСписокИсключений_РегистрыСведений_Списки() Экспорт

Возврат ПолучитьИсключения(ВидыМетаданных.РегистрыСведений, ВидыПроверок.Списки);

КонецФункции

// Получить список значений для исключения существующих записей регистров сведений.
//
// Возвращаемое значение:
// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
//
Функция ПолучитьСписокИсключений_РегистрыСведений_Существующие() Экспорт

Возврат ПолучитьИсключения(ВидыМетаданных.РегистрыСведений, ВидыПроверок.Существующие);

КонецФункции

// Получить список значений для исключения новых записей регистров сведений.
//
// Возвращаемое значение:
// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
//
Функция ПолучитьСписокИсключений_РегистрыСведений_Новые() Экспорт

Возврат ПолучитьИсключения(ВидыМетаданных.РегистрыСведений, ВидыПроверок.Новые);

КонецФункции

// Получить список значений для исключения форм списков регистров накопления.
//
// Возвращаемое значение:
// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
//
Функция ПолучитьСписокИсключений_РегистрыНакопления_Списки() Экспорт

Возврат ПолучитьИсключения(ВидыМетаданных.РегистрыНакопления, ВидыПроверок.Списки);

КонецФункции

#КонецОбласти

#Область ФормированиеСпискаТестовыхСлучаев
Expand Down Expand Up @@ -1145,6 +1190,8 @@
ВидыМетаданных.Вставить("Обработки", "Обработки");
ВидыМетаданных.Вставить("Отчеты", "Отчеты");
ВидыМетаданных.Вставить("БизнесПроцессы", "БизнесПроцессы");
ВидыМетаданных.Вставить("РегистрыСведений", "РегистрыСведений");
ВидыМетаданных.Вставить("РегистрыНакопления", "РегистрыНакопления");
ВидыМетаданных = Новый ФиксированнаяСтруктура(ВидыМетаданных);
КонецЕсли;
Возврат ВидыМетаданных;
Expand Down Expand Up @@ -1561,8 +1608,6 @@
КонецЕсли;
КонецФункции



Функция СоздатьЭлементИВернутьСсылку(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено) Экспорт
Элем = СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа);
Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка);
Expand Down Expand Up @@ -1681,10 +1726,80 @@
Элем = СоздатьБизнесПроцесс(ИД, ПроверяемоеПравоДоступа);
Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка);
КонецФункции

// Получить ключ существующей записи регистра сведений.
//
// Параметры:
// ИД - Строка - Имя регистра.
// НужноИсключениеЕслиНеНайденоЗаписей - Булево - Флаг выброса исключений.
// ДопОписаниеДляИсключения - Строка - Дополнительный текст исключения.
//
// Возвращаемое значение:
// РегистрСведенийКлючЗаписи, Неопределено - Ключ записи регистра или Неопределено
//
Функция ПолучитьСуществующуюЗаписьРегистраИВернутьКлючЗаписи(ИД, НужноИсключениеЕслиНеНайденоЗаписей, ДопОписаниеДляИсключения) Экспорт
Выборка = ВыборкаИзРегистраСведений(ИД);
Успешно = Выборка.Следующий();
Если Не Успешно Тогда
Если НужноИсключениеЕслиНеНайденоЗаписей Тогда
ВызватьИсключение
СтрШаблон_("%1: выборка.Следующий() - не найдено существующих записей %2! ",
ДопОписаниеДляИсключения, Ид);
Иначе
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
НаборИзмерений = СоздатьПустойНаборИзмеренийРегистраСведений(ИД);
ЗаполнитьЗначенияСвойств(НаборИзмерений, Выборка);

КлючЗаписи = РегистрыСведений[ИД].СоздатьКлючЗаписи(НаборИзмерений);

Возврат КлючЗаписи;
КонецФункции

Функция ВыборкаИзРегистраСведений(ИД)

Запрос = Новый Запрос;

ШаблонТекста =
"ВЫБРАТЬ ПЕРВЫЕ 1
| *
|ИЗ
| РегистрСведений.%1 КАК ТаблицаРегистра";

ТекстЗапроса = СтрШаблон(ШаблонТекста, ИД);

Запрос.Текст = ТекстЗапроса;

Возврат Запрос.Выполнить().Выбрать();

КонецФункции

#КонецОбласти

#Область ВспомогательныеМетоды

Функция СоздатьПустойНаборИзмеренийРегистраСведений(ИД)

КлючЗаписи = Новый Структура;

МетаданныеРегистра = Метаданные.РегистрыСведений[ИД];

Измерения = МетаданныеРегистра.Измерения;

Для каждого Измерение Из Измерения Цикл
КлючЗаписи.Вставить(Измерение.Имя);
КонецЦикла;

Если НЕ МетаданныеРегистра.ПериодичностьРегистраСведений =
Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
КлючЗаписи.Вставить("Период");
КонецЕсли;

Возврат КлючЗаписи;

КонецФункции

Функция ИмяМетодаПропускаТестов()
Возврат "ТестДолжен_ПропуститьТестФормы";
КонецФункции
Expand Down
Loading

0 comments on commit 05b7090

Please sign in to comment.