Skip to content

Commit f938162

Browse files
authored
новые настройки проведения документов - ПроверятьТолькоИзбранные и ТолькоПроводим (vanessa-opensource#1113)
* новые настройки проведения документов - ПроверятьТолькоИзбранные - ТолькоПроводим
1 parent 7b84a46 commit f938162

File tree

4 files changed

+92
-7
lines changed

4 files changed

+92
-7
lines changed

spec/fixtures/smoke-include.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,5 +90,22 @@
9090
"Отчеты1": false,
9191
"Обработки1": false,
9292
"ВнешниеИсточникиДанных1": false
93+
},
94+
95+
"ПроведениеДокументов":{
96+
"Используется" : true,
97+
"ТолькоПроводим" : false,
98+
"КоличествоДокументов" : 3,
99+
"ПроверятьТолькоИзбранные" : {
100+
"Документы": [
101+
"*умент2*"
102+
]
103+
},
104+
"Исключения" : [
105+
"Удалить*",
106+
"_ДемоСписаниеТоваров*",
107+
"*еНаОбработку*"
108+
]
93109
}
110+
94111
}

tests/smoke/readme.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
- [Тесты печатных форм для БСП-конфигураций](#тесты-печатных-форм-для-бсп-конфигураций)
4242
- [Проверка чтения метаданных обычными пользователями, без полных прав](#проверка-чтения-метаданных-обычными-пользователями-без-полных-прав)
4343
- [Проверка режима управления блокировкой данных в транзакции по умолчанию](#проверка-режима-управления-блокировкой-данных-в-транзакции-по-умолчанию)
44-
- [Тесты для проверки объектов метаданных на соответствие внутренним стандартам и стандартам 1С (https://its.1c.ru/db/v8std)](./smoke_tests_for_v8std.md)
4544
<!-- /TOC -->
4645

4746
Существующая универсальная реализация дымовых тестов позволяет использовать базовые/«дымовые» проверки, для которых не требуется написание сложных тестов или перестройка схемы разработки конфигурации 1С.
@@ -912,12 +911,14 @@
912911

913912
Выполняются следующие проверки:
914913
- документ перепроводится
915-
- движения до и после проведения одинаковы, т.е. перепроведение документа не меняет движений
914+
- и либо проверяются движения - движения до и после проведения одинаковы, т.е. перепроведение документа не меняет движений
915+
- либо проверяется только факт проведения документа без ошибок, без доп.проверок
916916

917917
Есть возможность настройки проверяемых документов с помощью json-файла настройки.
918918

919919
- ключ настройки `ПроведениеДокументов`
920920
- вложенный ключ `Используется` типа Булево. Отвечает за включение\выключение теста
921+
- вложенный ключ `ТолькоПроводим` типа Булево. Проверяется только успешность проведения документа, никаких других проверок не выполняется, в т.ч. нет проверки движений.
921922
- вложенный ключ `КоличествоДокументов`, отвечающий за количество отбираемых документов
922923
- вложенный массив с ключом `Исключения`, отвечающий за исключение конкретных документов по `имени документа`.
923924
- во этой коллекции возможен поиск 2х видов
@@ -942,7 +943,7 @@
942943
]
943944
```
944945
в данном примере будут отобраны документы с датами > 17.12.2020 < 15.12.2021. На документ "ЗаявкаНаКассовыйРасход" дополнительно фильтр `Номер ПОДОБНО "000_-000005"`.
945-
Допустимые операторы сравнения:
946+
Допустимые операторы сравнения:
946947
* `lt: меньше чем`
947948
* `le: меньше или равно`
948949
* `eq: равно равно равно`
@@ -964,6 +965,10 @@
964965

965966
- Пример настройки есть в файле [tests/smoke/smoke.example.json - строка настройки](https://github.com/vanessa-opensource/add/blob/develop/tests/smoke/smoke.example.json#L122)
966967

968+
- Можно использовать фильтрацию только по избранным метаданным по ключу `ПроверятьТолькоИзбранные`. См. [Включение тестов по избранным метаданным](#включение-тестов-по-избранным-метаданным)
969+
970+
Пример файла с опцией `ПроверятьТолькоИзбранные` - [spec\fixtures\smoke-include.json](/spec/fixtures/smoke-include.json)
971+
967972
<a id="markdown-тесты-печатных-форм-для-БСП-конфигураций" name="тесты-печатных-форм-для-БСП-конфигураций"></a>
968973
## Тесты печатных форм для БСП-конфигураций
969974

@@ -1003,7 +1008,7 @@
10031008
- в обоих настройках возможен поиск 2х видов
10041009
- возможен поиск по полному наименованию - `СчетФактура`
10051010
- возможен поиск по шаблону со звездочкой - `Счет*` или `*Счет` или `*Счет*` или `Счет*Реестр`
1006-
- вложенный массив с ключом `ПроверятьТолькоЭтиОбъекты` позволяет ограничить роли для проверки, например, если задать такой массив
1011+
- вложенный массив с ключом `ПроверятьТолькоЭтиОбъекты` позволяет ограничить роли для проверки, например, если задать такой массив
10071012
```json
10081013
"ПроверятьТолькоЭтиОбъекты": {
10091014
"Справочник": [
@@ -1016,7 +1021,7 @@
10161021
то будут проверяться все справочники и документы начинающиеся с имени PTG, другие объекты метаданных не будут проверяться. Данная настройка не исключает настройку `ИсключенияПоИмениМетаданных`, т.е. если в списке справочников есть справочник, попадающий под исключение, он будет исключен из проверки. Данная настройка полезна в тех случаях, если у нас есть типовые объекты, которые нет смысла проверять, а все "свои" объекты (т.е. те, которые добавлены в типовую конфигурацию) имеют префикс.
10171022
- `ДополнятьЗависимымиОбъектами` - Булевый флаг, означающий дополнительную проверку зависимых объектов метаданных.
10181023

1019-
Есть
1024+
Есть
10201025
возможность настройки прав, которые являются администраторскими, с помощью файла конфигурации.
10211026
- Пример настройки есть в файле [tests/smoke/smoke.example.json](https://github.com/vanessa-opensource/add/blob/develop/tests/smoke/smoke.example.json)
10221027

tests/smoke/smoke.example.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,13 @@
170170

171171
"ПроведениеДокументов":{
172172
"Используется" : true,
173-
"КоличествоДокументов" : 5,
173+
"КоличествоДокументов" : 3,
174+
"ТолькоПроводим" : false,
175+
"ПроверятьТолькоИзбранные" : {
176+
"Документы": [
177+
"*умент2*"
178+
]
179+
},
174180
"Исключения" : [
175181
"Удалить*",
176182
"_ДемоСписаниеТоваров*",

tests/smoke/тесты_ПроведениеДокументов/тесты_ПроведениеДокументов/Ext/ObjectModule.bsl

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,19 @@
3333

3434
Для Каждого МетаОбъект Из Метаданные.Документы Цикл
3535
Если МетаОбъект.Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить
36-
И ПравоДоступа("Проведение", МетаОбъект) Тогда
36+
И ПравоДоступа("Проведение", МетаОбъект) Тогда
37+
38+
ИмяМетаданного = МетаОбъект.Имя;
39+
40+
ФильтрМетаданных = НайтиКоллекциюФильтрМетаданныхИзНастроек("Документы", Настройки, "ПроверятьТолькоИзбранные");
41+
ЕстьОтборТолькоДляВключенияМетаданных = ЗначениеЗаполнено(ФильтрМетаданных );
42+
43+
Если ЕстьОтборТолькоДляВключенияМетаданных Тогда
44+
ВключатьТест = НайтиИмяВКоллекции(ИмяМетаданного, ФильтрМетаданных, КонтекстЯдра);
45+
Если Не ВключатьТест Тогда
46+
Продолжить;
47+
КонецЕсли;
48+
КонецЕсли;
3749

3850
ДобавитьТестыДляДокумента(НаборТестов, МетаОбъект);
3951
КонецЕсли;
@@ -59,6 +71,11 @@
5971

6072
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
6173

74+
Если Настройки.ТолькоПроводим Тогда
75+
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
76+
Возврат;
77+
КонецЕсли;
78+
6279
ДвиженияДо = ПолучитьДвиженияДокумента(ДокументОбъект, Истина);
6380
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
6481

@@ -131,12 +148,14 @@
131148
Результат = Новый Структура;
132149

133150
Результат.Вставить("Используется", Истина);
151+
Результат.Вставить("ТолькоПроводим", Ложь);
134152
Результат.Вставить("КоличествоДокументов", 2);
135153
Результат.Вставить("ВыводитьИсключения", Ложь);
136154
Результат.Вставить("Исключения", Новый Массив);
137155
Результат.Вставить("Отбор", Новый Массив);
138156
Результат.Вставить("СравнениеДвиженийБезНомераСтроки", Истина);
139157
Результат.Вставить("ИсключенияИзПроверкиДвижений", Новый Структура());
158+
Результат.Вставить("ПроверятьТолькоИзбранные", Новый Массив);
140159

141160
Возврат Результат;
142161
КонецФункции
@@ -162,6 +181,44 @@
162181

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

184+
Функция НайтиИмяВКоллекции(Знач ЧтоИщем, Знач КоллекцияДляПоиска, Знач КонтекстЯдра)
185+
186+
Если Не ЗначениеЗаполнено(КоллекцияДляПоиска) Тогда
187+
Возврат Ложь;
188+
КонецЕсли;
189+
190+
Возврат КонтекстЯдра.ЕстьВИсключаемойКоллекции(ЧтоИщем, КоллекцияДляПоиска);
191+
192+
КонецФункции
193+
194+
Функция НайтиКоллекциюФильтрМетаданныхИзНастроек(Знач КлючМетаданных, Знач Настройки, Знач ИмяОбщейКоллекции)
195+
196+
// TODO использовать метод плагина Настройки.ЕстьНастройка
197+
198+
ОбщаяКоллекция = ЗначениеИзСтруктуры(Настройки, ИмяОбщейКоллекции, Новый Структура);
199+
200+
ЗначениеПоУмолчанию = Новый Массив;
201+
202+
Если Не ЗначениеЗаполнено(ОбщаяКоллекция) Тогда
203+
Возврат ЗначениеПоУмолчанию;
204+
КонецЕсли;
205+
206+
Возврат ЗначениеИзСтруктуры(ОбщаяКоллекция, КлючМетаданных, ЗначениеПоУмолчанию);
207+
208+
КонецФункции
209+
210+
Функция ЗначениеИзСтруктуры(Знач Структура, Знач ИмяНастройки, Знач ЗначениеПоУмолчанию)
211+
212+
Результат = Неопределено;
213+
214+
Если Не Структура.Свойство(ИмяНастройки, Результат) Или Не ЗначениеЗаполнено(Результат) Тогда
215+
Результат = ЗначениеПоУмолчанию;
216+
КонецЕсли;
217+
218+
Возврат Результат;
219+
220+
КонецФункции
221+
165222
#КонецОбласти
166223

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

0 commit comments

Comments
 (0)