Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Улучшен тесты_ЗаписьГруппСправочников - нарушена совместимость, нужно обновить ключ настройки на "Тесты_ЗаписьГруппСправочников" #1123

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion tests/smoke/smoke.bsp.json
Original file line number Diff line number Diff line change
Expand Up @@ -345,10 +345,12 @@
]
},

"ЗаписьГруппСправочников":{
"Тесты_ЗаписьГруппСправочников":{
"Используется" : true,
"КоличествоПервыхГрупп" : 3,
"КоличествоПоследнихГрупп" : 3,
"Префикс": "Префикс",
"ОтборПоПрефиксу": false,
"Исключения" : [
"*ПрисоединенныеФайлы"
, "ИдентификаторыОбъектовМетаданных"
Expand Down
4 changes: 3 additions & 1 deletion tests/smoke/smoke.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -209,10 +209,12 @@
]
},

"ЗаписьГруппСправочников":{
"Тесты_ЗаписьГруппСправочников":{
"Используется" : true,
"КоличествоПервыхГрупп" : 3,
"КоличествоПоследнихГрупп" : 3,
"Префикс": "Префикс",
"ОтборПоПрефиксу": false,
"Исключения" : [
"*ПрисоединенныеФайлы"
, "ИдентификаторыОбъектовМетаданных"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.15">
<ExternalDataProcessor uuid="337e12f2-aa9f-4014-a498-8a933b546286">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>779efd25-8f08-4570-9985-54d34c524784</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.тесты_ЗаписьГруппСправочников" category="Object">
<xr:GeneratedType name="ExternalDataProcessorObject.Тесты_ЗаписьГруппСправочников" category="Object">
<xr:TypeId>55a6d1d9-c608-4d54-b4ab-fd30cfd055dc</xr:TypeId>
<xr:ValueId>973684fd-8334-4f26-a08e-747ff9e5a09f</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>тесты_ЗаписьГруппСправочников</Name>
<Name>Тесты_ЗаписьГруппСправочников</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Проверка программной записи групп справочников</v8:content>
<v8:content>smoke # Проверка программной записи групп справочников</v8:content>
</v8:item>
</Synonym>
<Comment/>
<DefaultForm/>
<DefaultForm>ExternalDataProcessor.Тесты_ЗаписьГруппСправочников.Form.Форма</DefaultForm>
<AuxiliaryForm/>
</Properties>
<ChildObjects>
Expand Down Expand Up @@ -94,6 +94,7 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Form>Форма</Form>
</ChildObjects>
</ExternalDataProcessor>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -1,258 +1 @@
#Область ОписаниеПеременных

Перем КонтекстЯдра;
Перем Утверждения;
Перем УтвержденияПроверкаТаблиц;

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

#Область ПрограммныйИнтерфейс

#Область ИнтерфейсТестирования

Функция КлючНастройкиУстаревший()
Возврат "ЗаписьГруппСправочников";
КонецФункции

Функция КлючНастройки()
Если Не ЗначениеЗаполнено(ИмяТеста) Тогда
ИмяТеста = Метаданные().Имя;
КонецЕсли;

Возврат ИмяТеста;
КонецФункции

Процедура Инициализация(КонтекстЯдраПараметр) Экспорт

КонтекстЯдра = КонтекстЯдраПараметр;
Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");

ЗагрузитьНастройки();

КонецПроцедуры

Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт

КонтекстЯдра = КонтекстЯдраПараметр;
ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД");
ЗапросыИзБД.Инициализация(КонтекстЯдра);


ЗагрузитьНастройки();

Если Не НужноВыполнятьТест() Тогда
Возврат;
КонецЕсли;

Для Каждого МетаОбъект Из Метаданные.Справочники Цикл
МожноМенять = ЗапросыИзБД.РазрешеноИзменятьОбъектВМоделиСервиса(МетаОбъект);
Иерархический = МетаОбъект.Иерархический И МетаОбъект.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов;

Если МожноМенять И Иерархический И ПравоДоступа("Изменение", МетаОбъект)
И (Не Настройки.ОтборПоПрефиксу ИЛИ СтрНачинаетсяС(ВРег(МетаОбъект.Имя), ВРег(Настройки.Префикс))) Тогда

ДобавитьТестыДляСправочника(НаборТестов, МетаОбъект);
КонецЕсли;
КонецЦикла;

КонецПроцедуры

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

#Область Тесты

Процедура ПередЗапускомТеста() Экспорт

НачатьТранзакцию();

КонецПроцедуры

Процедура ПослеЗапускаТеста() Экспорт

Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;

КонецПроцедуры

Процедура Тест_ЗаписатьГруппуСправочника(СправочникСсылка) Экспорт

ГруппаОбъект = СправочникСсылка.ПолучитьОбъект();
ГруппаОбъект.Записать();

КонецПроцедуры

Процедура Тест_ПропуститьЗаписьГруппыСправочника(Знач Сообщение) Экспорт

КонтекстЯдра.ПропуститьТест(Сообщение);

КонецПроцедуры

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

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

#Область СлужебныеПроцедурыИФункции

#Область Настройки

Процедура ЗагрузитьНастройки()

Если ЗначениеЗаполнено(Настройки) Тогда
Возврат;
КонецЕсли;

ПлагинНастройки = КонтекстЯдра.Плагин("Настройки");
ПлагинНастройки.Инициализация(КонтекстЯдра);

НастройкиПоУмолчанию = НастройкиПоУмолчанию();
Настройки = ПлагинНастройки.ПолучитьНастройку(КлючНастройки());
Если Не ЗначениеЗаполнено(Настройки) Тогда
Настройки = ПлагинНастройки.ПолучитьНастройку(КлючНастройкиУстаревший()); // обратная совместимость
КонецЕсли;
Если Не ЗначениеЗаполнено(Настройки) ИЛИ ТипЗнч(Настройки) <> Тип("Структура") Тогда
Настройки = НастройкиПоУмолчанию;
КонецЕсли;

ЗаполнитьЗначенияСвойств(НастройкиПоУмолчанию, Настройки);
Настройки = НастройкиПоУмолчанию;
КонецПроцедуры

Функция НастройкиПоУмолчанию()

Результат = Новый Структура;

Результат.Вставить("Используется", Истина);
Результат.Вставить("КоличествоПервыхГрупп", 2);
Результат.Вставить("КоличествоПоследнихГрупп", 2);
Результат.Вставить("ВыводитьИсключения", Ложь);
Результат.Вставить("Исключения", Новый Массив);
Результат.Вставить("Префикс", "");
Результат.Вставить("ОтборПоПрефиксу", Ложь);

Возврат Результат;
КонецФункции

Функция НужноВыполнятьТест()

ЗагрузитьНастройки();

Если Не ЗначениеЗаполнено(Настройки) Тогда
Возврат Истина;
КонецЕсли;

КлючНастройки = КлючНастройки();

ВыполнятьТест = Истина;
Если ТипЗнч(Настройки) = Тип("Структура")
И Настройки.Свойство("Используется", ВыполнятьТест) Тогда

Возврат ВыполнятьТест = Истина;
КонецЕсли;

Возврат Истина;

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

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

Процедура ДобавитьТестыДляСправочника(НаборТестов, МетаОбъект)

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ &КоличествоПервыхГрупп
| Ссылка
|ПОМЕСТИТЬ вт_Первые
|ИЗ
| Справочник." + МетаОбъект.Имя + "
|ГДЕ
| ЭтоГруппа
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ ПЕРВЫЕ &КоличествоПоследнихГрупп
| Ссылка
|ПОМЕСТИТЬ вт_Последние
|ИЗ
| Справочник." + МетаОбъект.Имя + "
|ГДЕ
| ЭтоГруппа
|
|УПОРЯДОЧИТЬ ПО
| Ссылка УБЫВ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| вт_Первые.Ссылка КАК Ссылка
|ПОМЕСТИТЬ вт_Все
|ИЗ
| вт_Первые КАК вт_Первые
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| вт_Последние.Ссылка
|ИЗ
| вт_Последние КАК вт_Последние;
|
|ВЫБРАТЬ
| вт_Все.Ссылка,
| ПРЕДСТАВЛЕНИЕ(вт_Все.Ссылка) КАК Представление
|ИЗ
| вт_Все КАК вт_Все";

Запрос.Текст = СтрЗаменить(Запрос.Текст,
"ВЫБРАТЬ ПЕРВЫЕ &КоличествоПервыхГрупп",
"ВЫБРАТЬ ПЕРВЫЕ " + Формат(Настройки.КоличествоПервыхГрупп, "ЧГ=")
);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"ВЫБРАТЬ ПЕРВЫЕ &КоличествоПоследнихГрупп",
"ВЫБРАТЬ ПЕРВЫЕ " + Формат(Настройки.КоличествоПоследнихГрупп, "ЧГ=")
);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;

ПредставлениеТеста = "Проверка записи группы справочника - " + МетаОбъект.Имя;
Сообщение = "Пропускаем из-за исключения по имени справочника - " + ПредставлениеТеста;
ЭтоИсключение = Ложь;

Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(МетаОбъект.Имя, Настройки.Исключения) Тогда
КонтекстЯдра.Отладка(Сообщение);

Если Не Настройки.ВыводитьИсключения Тогда
Возврат;
КонецЕсли;

ЭтоИсключение = Истина;
КонецЕсли;

НаборТестов.НачатьГруппу(МетаОбъект.Синоним + " - Справочник." + МетаОбъект.Имя);

Если ЭтоИсключение Тогда
ПараметрыТеста = НаборТестов.ПараметрыТеста(Сообщение);
НаборТестов.Добавить("Тест_ПропуститьЗаписьГруппыСправочника", ПараметрыТеста, Сообщение);
Иначе
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ПараметрыТеста = НаборТестов.ПараметрыТеста(Выборка.Ссылка);
ПредставлениеТеста = "Проверка записи группы справочника - " + Выборка.Представление;

НаборТестов.Добавить("Тест_ЗаписатьГруппуСправочника", ПараметрыТеста, ПредставлениеТеста);
КонецЦикла;
КонецЕсли;

КонецПроцедуры

Функция ИмяТеста()

Возврат Метаданные().Имя;

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

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

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.15">
<Form uuid="72ddb28b-7498-4b1c-9d05-93c9b33bfa5c">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.15">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:ExternalDataProcessorObject.Тесты_ЗаписьГруппСправочников</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
</Attributes>
</Form>
Loading