diff --git a/README.md b/README.md
index ca5705b..6996b11 100644
--- a/README.md
+++ b/README.md
@@ -1,27 +1,15 @@
# Дымовые тесты для 1С и вывод результата в отчет Allure
-Сборка создана для инструмента Vanessa-ADD.
-
-Доработан инструмент по управлению дымовыми тестами, изменен ряд тестов.
-
Видео примеры:
- VanessaADD. Дымовые тесты для 1С и вывод результата в отчет Allure. Проверяем доработки в расширение
- VanessaRunner. Проверяем доработки после обновления с помощью внешней обработки
[![telegram](https://img.shields.io/badge/telegram-chat-green.svg)](http://t.me/ovmst)
-- [Цель](#цель)
-- [Проблема](#проблема)
- [Задача](#задача)
- [Установка](#установка)
- [Создание проекта](#создание-проекта)
-- [Управление дымовыми тестами](#управление-дымовыми-тестами)
- [Дымовые тесты](#дымовые-тесты)
- - [Открытие/закрытие форм объектов метаданных](#открытие-форм)
- - [Командный интерфейс](#командный-интерфейс)
- - [Проведение документов](#проведение-документов)
- - [Проверка макетов СКД](#проверка-макетов-скд)
- - [Формирование печатных форм](#формирование-печатных-форм)
- [Информация о поддержке метаданных](#информация-о-поддержке-метаданных)
- [Групповая проверка доработок](#групповая-проверка-доработок)
- [Синтаксическая проверка](#синтаксическая-проверка)
@@ -29,24 +17,6 @@
- [Проверка кода](#проверка-кода)
- [Дополнительные материалы](#доп-материалы)
-
-
-## Цель
-
-Точечная настройка дымовых тестов. Возможность отобрать объекты для проверки, которые доработаны в расширениях. Сократить время тестирования доработок за счет точечной настройки дымовых тестов.
-
-
-
-## Проблема
-
-В Vanessa-ADD нет возможности автоматический отобрать объекты, доработанные в расширении для тестирования. Нужно руками помечать ненужные объекты в исключения.
-
-Представим. Есть среднестатистический 1С франчайзи с проектным отделом. В котором есть 4 консультанта и 4 программиста. Есть небольшие проекты и ряд небольших клиентов на постоянной поддержке.
-
-На таких проектах как правило делают небольшие доработки в расширение плюс внешние обработки и печатные формы.
-
-Как правило это происходит в самом начале, когда заходит клиент, и далее с ними работает консультант. В такой схеме консультант обновляет базы клиента. После обновления ему нужно протестировать доработки вручную и в случае проблемы с расширением привлекать программиста.
-
## Задача
@@ -77,21 +47,6 @@
При создании проекта сразу будут собраны обработки.
-## Управление дымовыми тестами
-
-
-
-Добавлена команда `Исключить объекты, не используемые в расширение`.
-
-Доступны 4 вкладки:
-
-- `Открытие форм` - без изменений
-- `Проведение и печатные формы` - добавленная. Задается количество документов для проведения, количество документов для проверки печатных форм. Добавляются в исключения нужные документы, отдельно для проведения и печатных форм
-- `Макеты СКД` - добавленная. Можно добавить в исключения общий макет или объект, макеты которого не будут проверяться
-- `Доп. настройки` - добавленная
- - `Закрывать модальные окна` - официальное описание. В файл добавляется настройка из примера в описание
- - `Тестирование командного интерфейса` - включить использование тестов командного интерфейса. В исключения по объектам попадают объекты, указанные на вкладке `Открытие форм` в группах `Существующие`
-
## Дымовые тесты
@@ -121,50 +76,6 @@
}
}
```
-
-### Открытие/закрытие форм объектов метаданных
-
-
-
-- официальное описание
-
-### Командный интерфейс
-
-
-
-- официальное описание
-
-### Проведение документов
-
-
-
-- официальное описание
-
-Доработано:
-
-- Объекты, которые находятся в исключениях, не выводятся в дерево тестов
-- Адаптирован под новый формат тестов
-
-### Проверка макетов СКД
-
-
-
-- официальное описание
-
-Доработано:
-
-- Объекты, которые находятся в исключениях, не выводятся в дерево тестов
-- Идентификация ошибок
-
-### Формирование печатных форм
-
-
-
-- официальное описание
-
-Доработано:
-
-- Объекты, которые находятся в исключениях, не выводятся в дерево тестов
## Информация о поддержке метаданных
С помощью vanessa-support можно получить готовый json-файл для всех метаданных, которые могут быть изменены и не находятся в режиме чтения. Полученный файл можно использовать для групповой проверки доработок.
@@ -285,7 +196,6 @@
## Описание команд
- `installVA.cmd` - обновление пакетов onescript, установка vanessa-runner, vanessa-add, vanessa-support
-- `replaceVA.cmd` - собирает обработки из исходников и делает замену обработок xddTestRunner.epf (из ветки develop), УправлениеДымовымиТестами и плагинов (из ветки develop) в корне библиотеки vanessa-add
- `runSyntax.cmd` - запуск синтаксической проверки
- `runSmoke.cmd` - запуск дымовых тестов
- `runAllure.cmd` - формирование отчета Allure. Предусмотрено сохранение истории
diff --git a/compileEpf.cmd b/compileEpf.cmd
index d455908..cf4f209 100644
--- a/compileEpf.cmd
+++ b/compileEpf.cmd
@@ -1,3 +1 @@
-call vrunner compileepf src/tools tools/epf/utils
-call vrunner compileepf src/tests tests/smoke
call vrunner compileepf src/epf tools/epf
\ No newline at end of file
diff --git a/decompileEpf.cmd b/decompileEpf.cmd
index f7abc7c..b2124f1 100644
--- a/decompileEpf.cmd
+++ b/decompileEpf.cmd
@@ -1,4 +1,3 @@
@chcp 65001
-call vrunner decompileepf tools/epf/utils src/tools
-call vrunner decompileepf tests/smoke src/tests
+
call vrunner decompileepf tools/epf src/epf
diff --git "a/doc/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217 \320\277\320\276 \321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\265 \320\264\320\273\321\217 \320\260\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\276\320\262.txt" "b/doc/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217 \320\277\320\276 \321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\265 \320\264\320\273\321\217 \320\260\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\276\320\262.txt"
index 0a6267f..b6484ae 100644
--- "a/doc/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217 \320\277\320\276 \321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\265 \320\264\320\273\321\217 \320\260\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\276\320\262.txt"
+++ "b/doc/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217 \320\277\320\276 \321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\265 \320\264\320\273\321\217 \320\260\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\276\320\262.txt"
@@ -33,7 +33,5 @@
Для проверки в командой строке: vrunner
- opm install add
-6) Выполнить команду replaceVA.cmd (проверьте пути в команде). Если через команду не хватит прав, выполните замену руками.
-
-7) Для пользователя под которым идет запуск тестов отключить защиту от опасных действий
+6) Для пользователя под которым идет запуск тестов отключить защиту от опасных действий
- Расположение обработки: C:\Program Files\OneScript\lib\add\xddTestRunner.epf (ваш путь может отличаться)
diff --git a/src/tests/.gitkeep b/plugins/.gitkeep
similarity index 100%
rename from src/tests/.gitkeep
rename to plugins/.gitkeep
diff --git "a/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" "b/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf"
deleted file mode 100644
index 80f5fc7..0000000
Binary files "a/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.epf" and /dev/null differ
diff --git "a/plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270.epf" "b/plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270.epf"
deleted file mode 100644
index 67de894..0000000
Binary files "a/plugins/\320\237\320\260\321\200\321\201\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\275\320\276\320\271\320\241\321\202\321\200\320\276\320\272\320\270.epf" and /dev/null differ
diff --git "a/plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213.epf" "b/plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213.epf"
deleted file mode 100644
index c753c09..0000000
Binary files "a/plugins/\320\242\320\265\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202\321\213.epf" and /dev/null differ
diff --git a/replaceVA.cmd b/replaceVA.cmd
deleted file mode 100644
index bfdc655..0000000
--- a/replaceVA.cmd
+++ /dev/null
@@ -1,6 +0,0 @@
-@chcp 65001
-rem "Запускать под Администратором и изменить пути на свои"
-
-del tests\smoke\*.epf && del tools\epf\utils\*.epf
-call compileEpf
-xcopy /y /o /e "tools\epf\utils\*.*" "C:\Program Files\OneScript\lib\add\tools\epf\utils\*.*" && xcopy /y /o /e "xddTestRunner.epf" "C:\Program Files\OneScript\lib\add\" && xcopy /y /o /e "plugins\*.*" "C:\Program Files\OneScript\lib\add\plugins\*.*"
\ No newline at end of file
diff --git "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" "b/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml"
deleted file mode 100644
index 931e986..0000000
--- "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml"
+++ /dev/null
@@ -1,420 +0,0 @@
-
-
-
-
-
- c3831ec8-d8d5-4f93-8a22-f9bfae07327f
- fb67d2f3-3c30-404c-ba27-8b210eae7978
-
-
- 370db9ea-cddc-4907-a50c-fc61e32c1cc7
- 8bb01ced-a2ee-426b-aef2-9a594e430f12
-
-
-
- Тесты_ОткрытиеФормКонфигурации
-
-
- ru
- Тесты "Открытие форм конфигурации"
-
-
-
- ExternalDataProcessor.Тесты_ОткрытиеФормКонфигурации.Form.УправляемаяФорма
-
-
-
-
-
- мИменаОсновныхФорм
-
-
- ru
- Имена основных форм
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- мИменаОсновныхФорм_Списки
-
-
- ru
- М имена основных форм списки
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- мИменаОсновныхФорм_Объекты
-
-
- ru
- М имена основных форм объекты
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- мПолучениеФорм
-
-
- ru
- М получение форм
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- ВыводитьСообщенияВЖурналРегистрации
-
-
- ru
- Выводить сообщения в журнал регистрации
-
-
-
-
- xs:boolean
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- Настройки
-
-
- ru
- Настройки
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- ВидыМетаданных
-
-
- ru
- Виды метаданных
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- ВидыПроверок
-
-
- ru
- Виды проверок
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- ФормыОтключенныеЧерезФункциональныеОпции
-
-
- ru
- Формы, отключенные через функциональные опции
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- СпособыГруппировки
-
-
- ru
- Способы группировки
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- СписокПропускаемыхФорм
-
-
- ru
- Список пропускаемых форм
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- ОткрываемФормыНаКлиентеТестирования
-
-
- ru
- Открываем формы на клиенте тестирования
-
-
-
-
- xs:boolean
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- СозданиеОдногоПользователяИБ
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" "b/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl"
deleted file mode 100644
index 2a84d4d..0000000
--- "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl"
+++ /dev/null
@@ -1,1629 +0,0 @@
-Перем КонтекстЯдра;
-Перем Ожидаем;
-Перем Утверждения;
-
-Перем ТестируемаяФорма;
-Перем НужноИсключениеЕслиНеНайденоДокументов;
-
-#Область ИнтерфейсТестирования
-
-// директива препроцессора нужна для исключения ошибки загрузки в толстом клиенте управляемого приложения
-#Если ТолстыйКлиентОбычноеПриложение Тогда
-
- Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
-
- КонтекстЯдра = КонтекстЯдраПараметр;
- Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
- Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
-
- ЗагрузитьНастройки();
-
- КонецПроцедуры
-
- Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт
-
- КонтекстЯдра = КонтекстЯдраПараметр;
-
- ВидыМетаданных = ВидыМетаданных();
- ВидыПроверок = ВидыПроверок();
- СпособыГруппировки = СпособыГруппировки();
-
- ЗагрузитьНастройки();
-
- НастройкаГруппировки = ПолучитьНастройкуГруппировки(Настройки);
-
- НужноИсключениеЕслиНеНайденоДокументов = Ложь;
-
- Если НЕ СоздатьФорму_ПолучениеФорм() Тогда
- Возврат;
- КонецЕсли;
-
- СоздатьИменаОсновныхФорм();
-
- Если ВключенСтрогийПорядокВыполнения() Тогда
- НаборТестов.СтрогийПорядокВыполнения();
- НаборТестов.ПродолжитьВыполнениеПослеПаденияТеста();
- КонецЕсли;
-
- Если НЕ ВидМетаданныхИсключенИзТестирования("Справочники") Тогда
- ДобавитьТестыФормСправочников(НаборТестов, НастройкаГруппировки);
- КонецЕсли;
-
- Если НЕ ВидМетаданныхИсключенИзТестирования("Документы") Тогда
- ДобавитьТестыФормДокументов(НаборТестов, НастройкаГруппировки);
- КонецЕсли;
-
- Если НЕ ВидМетаданныхИсключенИзТестирования("Обработки") Тогда
- ДобавитьТестыФормОбработок(НаборТестов, НастройкаГруппировки);
- КонецЕсли;
-
- Если НЕ ВидМетаданныхИсключенИзТестирования("Отчеты") Тогда
- ДобавитьТестыФормОтчетов(НаборТестов, НастройкаГруппировки);
- КонецЕсли;
-
- КонецПроцедуры
-
-#КонецЕсли
-
-#КонецОбласти
-
-#Область Тесты
-
-Процедура ПередЗапускомТеста() Экспорт
-
- НужноИсключениеЕслиНеНайденоДокументов = Ложь;
-
- СоздатьФорму_ПолучениеФорм();
-
- НачатьТранзакцию();
-
-КонецПроцедуры
-
-Процедура ПослеЗапускаТеста() Экспорт
-
- ЗакрытьФорму();
-
- Если ТранзакцияАктивна() Тогда
- ОтменитьТранзакцию();
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ТестДолжен_ПропуститьТестФормы(Знач ПричинаПропускаТеста) Экспорт
- КонтекстЯдра.ПропуститьТест(ПричинаПропускаТеста);
-КонецПроцедуры
-
-Процедура Тест_ОткрытьФормуСуществующегоДокумента(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
- ИД = МетаИмя;
- Док = ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, "Тест_ОткрытьФормуСуществующегоДокумента");
-
- Если Док <> Неопределено Тогда
- ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док.Ссылка);
- КонецЕсли;
-КонецПроцедуры
-
-Процедура Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
- ИД = МетаИмя;
- Док = ПолучитьСуществующийДокументОбъект(ИД, Ложь, "Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму");
- Если Док = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Док.Дата = ТекущаяДата();
- Док.ОбменДанными.Загрузка = Истина;
- Док.Записать();
-
- ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док.Ссылка);
-КонецПроцедуры
-
-Процедура Тест_ОткрытьФормуНовогоДокумента(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
-
- ИД = МетаИмя;
- Док = Документы[ИД].СоздатьДокумент();
- Мета = Док.Метаданные();
-
- Если НЕ ПравоДоступа("ИнтерактивноеДобавление", Мета) Тогда
- Возврат;
- КонецЕсли;
-
- Если Мета.ДлинаНомера <> 0 Тогда
- Попытка
- Док.УстановитьНовыйНомер();
- Исключение
- КонецПопытки;
- КонецЕсли;
-
- Если ЕстьНастройка("Документы.ЗначенияРеквизитовНовых." + Мета.Имя) Тогда
- Для каждого Реквизит из Настройки.Документы.ЗначенияРеквизитовНовых[Мета.Имя] Цикл
- Попытка
- Док[Реквизит.Ключ] = ЗначениеРеквизита(Мета, Реквизит.Ключ, Реквизит.Значение);
- Исключение
- ВывестиСообщение(ОписаниеОшибки());
- КонецПопытки;
- КонецЦикла;
- КонецЕсли;
-
- ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Док, Ложь);
-
-КонецПроцедуры
-
-Процедура Тест_ОткрытьФормуСуществующегоЭлементаСправочника(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
- ИД = МетаИмя;
-
- Элем = СоздатьЭлемент(ИД, "существующий");
- ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем.Ссылка);
-КонецПроцедуры
-
-Процедура Тест_ОткрытьФормуНовогоЭлементаСправочника(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
-
- ИД = МетаИмя;
- Элем = Справочники[ИД].СоздатьЭлемент();
- Мета = Элем.Метаданные();
-
- Если НЕ ПравоДоступа("ИнтерактивноеДобавление", Мета) Тогда
- Возврат;
- КонецЕсли;
-
- Если Мета.ДлинаНаименования <> 0 Тогда
- Попытка
- Элем.Наименование = "новый";
- Исключение
- КонецПопытки;
- КонецЕсли;
-
- Если Мета.Владельцы.Количество() Тогда
- Элем.Владелец = ПолучитьСсылкуНаВладельца(Мета, "Владелец для нового");
- КонецЕсли;
-
- ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем, Ложь);
-
-КонецПроцедуры
-
-Процедура Тест_ОткрытьФормуНовогоЭлементаСправочникаСоздаваемогоКопированием(МетаИмя,МетаФорма_ПолноеИмя,МетаФорма, ЕстьТранзакция) Экспорт
- ИД = МетаИмя;
- Элем = СоздатьЭлемент(ИД, "копирование", "ИнтерактивноеДобавление");
- Если Элем = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма.Имя, Элем.Ссылка, Истина);
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ПереопределениеИсключений
-
-// Переопределение исключений, чтобы не открывать формы.
-
-// Возвращаемое значение:
-// СписокЗначений, Ложь - Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_Справочники_Списки() Экспорт
-
- Результат = ПолучитьИсключения(ВидыМетаданных.Справочники, ВидыПроверок.Списки);
- Если ЗначениеЗаполнено(Результат) Или Результат = Ложь Тогда
- Возврат Результат;
- КонецЕсли;
-
- Результат = Новый СписокЗначений;
-
- // Пример Результат.Добавить("ирАлгоритмы");
-
- Возврат Результат;
-КонецФункции
-
-// Возвращаемое значение:
-// СписокЗначений, Ложь - Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_Справочники_Существующие() Экспорт
-
- Результат = ПолучитьИсключения(ВидыМетаданных.Справочники, ВидыПроверок.Существующие);
- Если ЗначениеЗаполнено(Результат) Или Результат = Ложь Тогда
- Возврат Результат;
- КонецЕсли;
-
- Результат = Новый СписокЗначений;
-
- // Пример Результат.Добавить("ирАлгоритмы");
-
- Возврат Результат;
-КонецФункции
-
-// Возвращаемое значение:
-// СписокЗначений, Ложь - Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_Справочники_Новые() Экспорт
-
- Результат = ПолучитьИсключения(ВидыМетаданных.Справочники, ВидыПроверок.Новые);
- Если ЗначениеЗаполнено(Результат) Или Результат = Ложь Тогда
- Возврат Результат;
- КонецЕсли;
-
- Результат = Новый СписокЗначений;
-
- // Пример Результат.Добавить("ирАлгоритмы");
-
- Возврат Результат;
-КонецФункции
-
-// Возвращаемое значение:
-// СписокЗначений, Ложь - Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_Документы_Списки() Экспорт
-
- Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.Списки);
- Если ЗначениеЗаполнено(Результат) Или Результат = Ложь Тогда
- Возврат Результат;
- КонецЕсли;
-
- Результат = Новый СписокЗначений;
-
- // Пример Результат.Добавить("Штрафы");
-
- Возврат Результат;
-КонецФункции
-
-// Возвращаемое значение:
-// СписокЗначений, Ложь - Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_Документы_Существующие() Экспорт
-
- Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.Существующие);
- Если ЗначениеЗаполнено(Результат) Или Результат = Ложь Тогда
- Возврат Результат;
- КонецЕсли;
-
- Результат = Новый СписокЗначений;
-
- // Пример Результат.Добавить("Штрафы");
-
- Возврат Результат;
-КонецФункции
-
-// Возвращаемое значение:
-// СписокЗначений, Ложь - Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_Документы_ПеренестиДату() Экспорт
-
- Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.ПеренестиДату);
- Если ЗначениеЗаполнено(Результат) Или Результат = Ложь Тогда
- Возврат Результат;
- КонецЕсли;
-
- Результат = Новый СписокЗначений;
-
- // Пример Результат.Добавить("Штрафы");
-
- Возврат Результат;
-КонецФункции
-
-// Возвращаемое значение:
-// СписокЗначений, Ложь - Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_Документы_Новые() Экспорт
-
- Результат = ПолучитьИсключения(ВидыМетаданных.Документы, ВидыПроверок.Новые);
- Если ЗначениеЗаполнено(Результат) Или Результат = Ложь Тогда
- Возврат Результат;
- КонецЕсли;
-
- Результат = Новый СписокЗначений;
-
- // Пример Результат.Добавить("Штрафы");
-
- Возврат Результат;
-КонецФункции
-
-// Возвращаемое значение:
-// СписокЗначений, Ложь - Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_Отчеты() Экспорт
-
- Результат = ПолучитьИсключения(ВидыМетаданных.Отчеты, "");
- Если ЗначениеЗаполнено(Результат) Или Результат = Ложь Тогда
- Возврат Результат;
- КонецЕсли;
-
- Результат = Новый СписокЗначений;
-
- // Пример Результат.Добавить("Цены");
-
- Возврат Результат;
-КонецФункции
-
-// Возвращаемое значение:
-// СписокЗначений, Ложь - Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_Обработки() Экспорт
-
- Результат = ПолучитьИсключения(ВидыМетаданных.Обработки, "");
- Если ЗначениеЗаполнено(Результат) Или Результат = Ложь Тогда
- Возврат Результат;
- КонецЕсли;
-
- Результат = Новый СписокЗначений;
-
- //Результат.Добавить("ТестОбработка_Форма_ИсключениеПриОткрытии");
-
- Возврат Результат;
-КонецФункции
-
-// Получить список значений для исключения форм списков бизнес-процессов
-//
-// Возвращаемое значение:
-// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_БизнесПроцессы_Списки() Экспорт
-
- Возврат ПолучитьИсключения(ВидыМетаданных.БизнесПроцессы, ВидыПроверок.Списки);
-
-КонецФункции
-
-// Получить список значений для исключения существующих бизнес-процессов
-//
-// Возвращаемое значение:
-// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_БизнесПроцессы_Существующие() Экспорт
-
- Возврат ПолучитьИсключения(ВидыМетаданных.БизнесПроцессы, ВидыПроверок.Существующие);
-
-КонецФункции
-
-// Получить список значений для исключения новых бизнес-процессов
-//
-// Возвращаемое значение:
-// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьСписокИсключений_БизнесПроцессы_Новые() Экспорт
-
- Возврат ПолучитьИсключения(ВидыМетаданных.БизнесПроцессы, ВидыПроверок.Новые);
-
-КонецФункции
-#КонецОбласти
-
-#Область ФормированиеСпискаТестовыхСлучаев
-
-Процедура ДобавитьТестыФормСправочников(НаборТестов, НастройкаГруппировки)
-
- СтрогийПорядокВыполнения = ВключенСтрогийПорядокВыполнения();
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда
- НаборТестов.НачатьГруппу("Справочники", СтрогийПорядокВыполнения);
- КонецЕсли;
-
- СписокИсключений_Существующие = ПолучитьСписокИсключений_Справочники_Существующие();
- СписокИсключений_Новые = ПолучитьСписокИсключений_Справочники_Новые();
- СписокИсключений_Списки = ПолучитьСписокИсключений_Справочники_Списки();
-
- Счетчик = 0;
-
- Для Каждого МетаОбъект Из Метаданные.Справочники Цикл
-
- Если НастройкаГруппировки.ГруппироватьПоКоличеству Тогда
- Если Счетчик % НастройкаГруппировки.КоличествоВГруппе = 0 Тогда
- ИмяГруппы = "Справочники (" + Строка(Счетчик + 1) + "..." + Строка(Счетчик + НастройкаГруппировки.КоличествоВГруппе) + ")";
- НаборТестов.НачатьГруппу(ИмяГруппы, СтрогийПорядокВыполнения);
- КонецЕсли;
- КонецЕсли;
-
- Если НастройкаГруппировки.ГруппироватьПоВидуОбъекта Тогда
- НаборТестов.НачатьГруппу("Справочник." + МетаОбъект.Имя, СтрогийПорядокВыполнения);
- КонецЕсли;
-
- Счетчик = Счетчик + 1;
-
- Если ПравоДоступа("Редактирование", МетаОбъект) Тогда
- ДобавитьТестДляОдногоМетаданного_Объекты(
- НаборТестов,
- МетаОбъект,
- "Тест_ОткрытьФормуСуществующегоЭлементаСправочника",
- СписокИсключений_Существующие,
- мИменаОсновныхФорм_Объекты, "Существующие элементы"
- );
- КонецЕсли;
-
- Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда
- ДобавитьТестДляОдногоМетаданного_Объекты(
- НаборТестов,
- МетаОбъект,
- "Тест_ОткрытьФормуНовогоЭлементаСправочника",
- СписокИсключений_Новые,
- мИменаОсновныхФорм_Объекты,
- "Новые элементы"
- );
- КонецЕсли;
-
- Если ПравоДоступа("Добавление", МетаОбъект) Тогда
- ДобавитьТестДляОдногоМетаданного_Объекты(
- НаборТестов,
- МетаОбъект,
- "Тест_ОткрытьФормуНовогоЭлементаСправочникаСоздаваемогоКопированием",
- СписокИсключений_Новые,
- мИменаОсновныхФорм_Объекты,
- "Новые через копирование элементы"
- );
- КонецЕсли;
-
- ДобавитьТестДляМетаданного_ОдинОбъект(
- НаборТестов,
- МетаОбъект,
- "ТестДолжен_ОткрытьФорму_ПоМетаФорме",
- СписокИсключений_Списки,
- мИменаОсновныхФорм_Списки
- );
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ДобавитьТестыФормДокументов(НаборТестов, НастройкаГруппировки)
-
- СтрогийПорядокВыполнения = ВключенСтрогийПорядокВыполнения();
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда
- НаборТестов.НачатьГруппу("Документы", СтрогийПорядокВыполнения);
- КонецЕсли;
-
- СписокИсключений_Существующие = ПолучитьСписокИсключений_Документы_Существующие();
- СписокИсключений_Новые = ПолучитьСписокИсключений_Документы_Новые();
- СписокИсключений_Списки = ПолучитьСписокИсключений_Документы_Списки();
- СписокИсключений_ПеренестиДату = ПолучитьСписокИсключений_Документы_ПеренестиДату();
-
- Счетчик = 0;
-
- Для Каждого МетаОбъект Из Метаданные.Документы Цикл
-
- Если НастройкаГруппировки.ГруппироватьПоКоличеству Тогда
- Если Счетчик % НастройкаГруппировки.КоличествоВГруппе = 0 Тогда
- ИмяГруппы = "Документы (" + Строка(Счетчик + 1) + "..." + Строка(Счетчик + НастройкаГруппировки.КоличествоВГруппе) + ")";
- НаборТестов.НачатьГруппу(ИмяГруппы, СтрогийПорядокВыполнения);
- КонецЕсли;
- КонецЕсли;
-
- Если НастройкаГруппировки.ГруппироватьПоВидуОбъекта Тогда
- НаборТестов.НачатьГруппу("Документ." + МетаОбъект.Имя, СтрогийПорядокВыполнения);
- КонецЕсли;
-
- Счетчик = Счетчик + 1;
-
- Если ПравоДоступа("Редактирование", МетаОбъект) Тогда
- ДобавитьТестДляОдногоМетаданного_Объекты(
- НаборТестов,
- МетаОбъект,
- "Тест_ОткрытьФормуСуществующегоДокумента",
- СписокИсключений_Существующие,
- мИменаОсновныхФорм_Объекты,
- "Существующие документы"
- );
- ДобавитьТестДляОдногоМетаданного_Объекты(
- НаборТестов,
- МетаОбъект,
- "Тест_ПеренестиДокументНаТекущийДень_и_ОткрытьЕгоФорму",
- СписокИсключений_ПеренестиДату,
- мИменаОсновныхФорм_Объекты,
- "Перенос документа на текущий день"
- );
- КонецЕсли;
-
- Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда
- ДобавитьТестДляОдногоМетаданного_Объекты(
- НаборТестов,
- МетаОбъект,
- "Тест_ОткрытьФормуНовогоДокумента",
- СписокИсключений_Новые,
- мИменаОсновныхФорм_Объекты,
- "Новые документы"
- );
- КонецЕсли;
-
- ДобавитьТестДляМетаданного_ОдинОбъект(
- НаборТестов,
- МетаОбъект,
- "ТестДолжен_ОткрытьФорму_ПоМетаФорме",
- СписокИсключений_Списки,
- мИменаОсновныхФорм_Списки
- );
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ДобавитьТестыФормОбработок(НаборТестов, НастройкаГруппировки)
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда
- НаборТестов.НачатьГруппу("Обработки", ВключенСтрогийПорядокВыполнения());
- КонецЕсли;
-
- ДобавитьТестПоМенеджеруМетаданных(
- НаборТестов,
- Метаданные.Обработки,
- "ТестДолжен_ОткрытьФорму_ПоМетаФорме",
- ПолучитьСписокИсключений_Обработки(),
- мИменаОсновныхФорм
- );
-
-КонецПроцедуры
-
-Процедура ДобавитьТестыФормОтчетов(НаборТестов, НастройкаГруппировки)
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда
- НаборТестов.НачатьГруппу("Отчеты", ВключенСтрогийПорядокВыполнения());
- КонецЕсли;
-
- ДобавитьТестПоМенеджеруМетаданных(
- НаборТестов,
- Метаданные.Отчеты,
- "ТестДолжен_ОткрытьФорму_ПоМетаФорме",
- ПолучитьСписокИсключений_Отчеты(),
- мИменаОсновныхФорм
- );
-
-КонецПроцедуры
-
-Процедура ДобавитьТестПоМенеджеруМетаданных(НаборТестов, менеджерМетаданного, имяТеста, СписокИсключений, ИменаОсновныхФорм)
-
- НастройкаГруппировки = ПолучитьНастройкуГруппировки(Настройки);
- СтрогийПорядокВыполнения = ВключенСтрогийПорядокВыполнения();
-
- ЭтоОтчеты = (менеджерМетаданного = Метаданные.Отчеты);
-
- Счетчик = 0;
-
- Для Каждого МетаОбъект Из менеджерМетаданного Цикл
-
- Если НастройкаГруппировки.ГруппироватьПоКоличеству Тогда
- Если Счетчик % НастройкаГруппировки.КоличествоВГруппе = 0 Тогда
- ИмяГруппы = ?(ЭтоОтчеты, "Отчеты", "Обработки") + " (" + Строка(Счетчик + 1) + "..." +
- Строка(Счетчик + НастройкаГруппировки.КоличествоВГруппе) + ")";
- НаборТестов.НачатьГруппу(ИмяГруппы, СтрогийПорядокВыполнения);
- КонецЕсли;
- КонецЕсли;
-
- Если НастройкаГруппировки.ГруппироватьПоВидуОбъекта Тогда
- НаборТестов.НачатьГруппу(?(ЭтоОтчеты, "Отчет", "Обработка") + "." + МетаОбъект.Имя, СтрогийПорядокВыполнения);
- КонецЕсли;
-
- Счетчик = Счетчик + 1;
-
- ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, МетаОбъект, имяТеста, СписокИсключений, ИменаОсновныхФорм);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ДобавитьТестДляМетаданного_ОдинОбъект(НаборТестов, Знач МетаОбъект, Знач имяТеста,
- Знач СписокИсключений, Знач ИменаОсновныхФорм)
- ПрефиксПропускаемых = "";
- ПропускатьТест = Ложь;
-
- Если СписокИсключений = Ложь Или СписокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда
- ПропускатьТест = Истина;
- ПрефиксПропускаемых = "объект находится в исключениях";
-
- ИначеЕсли ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
- ПропускатьТест = Истина;
- ПрефиксПропускаемых = "объект устарел";
-
- ИначеЕсли Не ПравоДоступа("Просмотр", МетаОбъект) Тогда
- ПропускатьТест = Истина;
- ПрефиксПропускаемых = "нет прав интерактивного доступа у пользователя";
- КонецЕсли;
-
- Если ПропускатьТест Тогда
- ПараметрыПропускаемогоТеста = НаборТестов.ПараметрыТеста(ПрефиксПропускаемых);
- КонецЕсли;
-
- МетаФормы = ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм);
-
- Для каждого МетаФорма Из МетаФормы Цикл
-
- МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя();
-
- Если Метаданные.ОсновнаяФормаОтчета = МетаФорма Тогда
- МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".Форма";
- ИначеЕсли Метаданные.ОсновнаяФормаНастроекОтчета = МетаФорма Тогда
- МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".ФормаНастроек";
- КонецЕсли;
- //МетаОбъект.Имя <Отчет1>, МетаФорма_ПолноеИмя <Отчет.Отчет1.Форма.ФормаОтчета>
- //МетаОбъект.Имя <Отчет2>, МетаФорма_ПолноеИмя <Отчет.Отчет2.Форма> // в УФ ОбщаяФорма.ФормаОтчета
-
- ПредставлениеТеста = МетаФорма_ПолноеИмя;
- ЕстьТранзакция = Истина;
-
- ПропускатьТестФормы = Ложь;
- Если Не ПропускатьТест Тогда
- // Проверим, нет ли конкретно самой формы в исключениях.
- ОтносительныйПутьФормы = МетаОбъект.Имя + ".Форма." + МетаФорма.Имя;
- Если СписокИсключений.НайтиПоЗначению(ОтносительныйПутьФормы) <> Неопределено Тогда
- ПропускатьТестФормы = Истина;
- ПрефиксПропускаемых = "форма находится в исключениях";
- ПараметрыПропускаемогоТеста = НаборТестов.ПараметрыТеста(ПрефиксПропускаемых);
- КонецЕсли;
- КонецЕсли;
-
- Если ПропускатьТест Или ПропускатьТестФормы Тогда
- ПредставлениеТеста = ПрефиксПропускаемых + " : " + ПредставлениеТеста;
- ПараметрыТеста = ПараметрыПропускаемогоТеста;
- ВремИмяТеста = ИмяМетодаПропускаТестов();
- Иначе
- ВремИмяТеста = имяТеста;
- ПараметрыТеста = НаборТестов.ПараметрыТеста(МетаФорма_ПолноеИмя, ЕстьТранзакция, МетаОбъект);
- КонецЕсли;
-
- НаборТестов.Добавить(ВремИмяТеста, ПараметрыТеста, ПредставлениеТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ДобавитьТестДляОдногоМетаданного_Объекты( НаборТестов, Знач МетаОбъект, Знач имяТеста,
- Знач СписокИсключений, Знач ИменаОсновныхФорм,
- Знач ПрефиксПредставленияТеста)
- ПрефиксПропускаемых = "";
- ПропускатьТест = Ложь;
-
- Если СписокИсключений = Ложь Или СписокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда
- ПропускатьТест = Истина;
- ПрефиксПропускаемых = "объект находится в исключениях";
-
- ИначеЕсли ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
- ПропускатьТест = Истина;
- ПрефиксПропускаемых = "объект устарел";
-
- ИначеЕсли Не (ПравоДоступа("Просмотр", МетаОбъект) и ПравоДоступа("Добавление", МетаОбъект)) Тогда
- ПропускатьТест = Истина;
- ПрефиксПропускаемых = "нет прав интерактивного доступа у пользователя";
- КонецЕсли;
-
- Если ПропускатьТест Тогда
- ПрефиксПредставленияТеста = ПрефиксПредставленияТеста + " : " + ПрефиксПропускаемых;
- ПараметрыПропускаемогоТеста = НаборТестов.ПараметрыТеста(ПрефиксПропускаемых);
- КонецЕсли;
-
- МетаФормы = ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм);
- Для каждого МетаФорма Из МетаФормы Цикл
-
- МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя();
- ПредставлениеТеста = ПрефиксПредставленияТеста + " : " + МетаФорма_ПолноеИмя;
- ЕстьТранзакция = Истина;
-
- ПропускатьТестФормы = Ложь;
- Если Не ПропускатьТест Тогда
- // Проверим, нет ли конкретно самой формы в исключениях.
- ОтносительныйПутьФормы = МетаОбъект.Имя + ".Форма." + МетаФорма.Имя;
- Если СписокИсключений.НайтиПоЗначению(ОтносительныйПутьФормы) <> Неопределено Тогда
- ПропускатьТестФормы = Истина;
- ПараметрыПропускаемогоТеста = НаборТестов.ПараметрыТеста("форма находится в исключениях");
- КонецЕсли;
- КонецЕсли;
-
- Если ПропускатьТест Или ПропускатьТестФормы Тогда
- ПараметрыТеста = ПараметрыПропускаемогоТеста;
- ВремИмяТеста = ИмяМетодаПропускаТестов();
- Иначе
- ПараметрыТеста = НаборТестов.ПараметрыТеста(МетаОбъект.Имя, МетаФорма_ПолноеИмя, МетаФорма, ЕстьТранзакция);
- ВремИмяТеста = имяТеста;
- КонецЕсли;
-
- НаборТестов.Добавить(ВремИмяТеста, ПараметрыТеста, ПредставлениеТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область РаботаСФормами
-
-Процедура ЗакрытьФорму()
- Если ТипЗнч(ТестируемаяФорма) <> Тип("Форма") и ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда
- Возврат;
- КонецЕсли;
- ТестируемаяФорма.Модифицированность = Ложь;
- Если ТестируемаяФорма.Открыта() Тогда
- ТестируемаяФорма.Модифицированность = Ложь;
- Попытка
- ТестируемаяФорма.Закрыть();
- Исключение
- Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- Если ТранзакцияАктивна() Тогда
- ОтменитьТранзакцию();
- КонецЕсли;
-
- НачатьТранзакцию();
- ТестируемаяФорма.УстановитьДействие("ПередЗакрытием", Неопределено);
- ТестируемаяФорма.УстановитьДействие("ПриЗакрытии", Неопределено);
- ТестируемаяФорма.Закрыть();
- ВызватьИсключение Ошибка;
- КонецПопытки;
- Иначе
- Попытка
- ТестируемаяФорма.Закрыть();
- Исключение
- КонецПопытки;
- КонецЕсли;
- ТестируемаяФорма = "";
-
-КонецПроцедуры
-
-Функция ЭтоОбычнаяФорма(Форма)
- Возврат ТипЗнч(Форма) = Тип("Форма");
-КонецФункции
-
-// Портировано из подсистемы "Инструменты разработчика"
-
-Процедура ТестДолжен_ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, ЕстьТранзакция=Ложь, МетаданныеВладельцаФормы=Неопределено) Экспорт
-
- ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, "", Неопределено, Ложь, МетаданныеВладельцаФормы);
-
-КонецПроцедуры
-
-Процедура ОткрытьФорму_ПоМетаФорме(МетаФорма_ПолноеИмя, МетаФорма_Имя = "", СсылкаОбъектаИлиСамОбъект = Неопределено, СоздаватьОбъект = Ложь, МетаданныеВладельцаФормы=Неопределено) Экспорт
-
- ВыводитьСообщения = Ложь;
- ВнешнийОбъект = Неопределено;
- КлючВременнойФормы = "908насмь9ыв";
-
- ИмяОперации = МетаФорма_ПолноеИмя;
-
- ВывестиСообщение("Операция: " + ИмяОперации, УровеньЖурналаРегистрации.Информация, ВыводитьСообщения);
-
- Форма = ПолучитьНовуюФорму(МетаФорма_ПолноеИмя, ВнешнийОбъект, КлючВременнойФормы);
- Если Форма = Неопределено Тогда
- Возврат;
- КонецЕсли;
- ЭтоФормаСсылочногоОбъекта = Ложь;
- Если СсылкаОбъектаИлиСамОбъект <> Неопределено Тогда
- ЭтоФормаСсылочногоОбъекта = Истина;
- Иначе
- Если ЭтоОбычнаяФорма(Форма) Тогда
- Попытка
- Пустышка = Форма.ЭтотОбъект.ЭтоНовый();
- ЭтоФормаСсылочногоОбъекта = Истина;
- Исключение
- КонецПопытки;
- Иначе
- Если Форма.Параметры.Свойство("Ключ") Тогда
- Попытка
- Пустышка = Форма.Параметры.Ключ.Ссылка;
- ЭтоФормаСсылочногоОбъекта = Истина;
- Исключение
- КонецПопытки;
- КонецЕсли;
- КонецЕсли;
- Если ЭтоФормаСсылочногоОбъекта Тогда
- Если ЭтоОбычнаяФорма(Форма) Тогда
- СсылкаОбъектаИлиСамОбъект = Форма.Ссылка;
- Иначе
- СсылкаОбъектаИлиСамОбъект = Форма.Параметры.Ключ;
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
-
- Если ЭтоФормаСсылочногоОбъекта Тогда
- Если ЭтоОбычнаяФорма(Форма) Тогда
- Если СоздаватьОбъект Тогда
- Если СсылкаОбъектаИлиСамОбъект <> Неопределено Тогда
- СсылочныйОбъект = СсылкаОбъектаИлиСамОбъект.Скопировать();
- //Иначе
- // СсылочныйОбъект = СсылкаОбъектаИлиСамОбъект.Метаданные;
- КонецЕсли;
- Иначе
- СсылочныйОбъект = СсылкаОбъектаИлиСамОбъект;
- КонецЕсли;
- Форма = СсылочныйОбъект.ПолучитьФорму(МетаФорма_Имя, , КлючВременнойФормы);
- Иначе
- ПараметрыФормы = Новый Структура;
- ЭтоОбъект = Ложь;
- Попытка
- Пустышка = СсылкаОбъектаИлиСамОбъект.ЭтотОбъект;
- ЭтоОбъект = Истина;
- Исключение
- КонецПопытки;
- Если СоздаватьОбъект Тогда
- Если Не ЭтоОбъект Тогда
- ПараметрыФормы.Вставить("ЗначениеКопирования", СсылкаОбъектаИлиСамОбъект);
- КонецЕсли;
- ИначеЕсли Не ЭтоОбъект Тогда
- ПараметрыФормы.Вставить("Ключ", СсылкаОбъектаИлиСамОбъект);
- КонецЕсли;
- Форма = ПолучитьФормуЛкс(МетаФорма_ПолноеИмя, ПараметрыФормы, , КлючВременнойФормы);
- КонецЕсли;
- КонецЕсли;
-
- Если МетаданныеВладельцаФормы <> Неопределено И Метаданные.Справочники.Содержит(МетаданныеВладельцаФормы) Тогда
- Если МетаданныеВладельцаФормы.Владельцы.Количество() Тогда
- ВладелецСсылка = ПолучитьСсылкуНаВладельца(МетаданныеВладельцаФормы);
- Попытка
- Форма.ПараметрОтборПоВладельцу = ВладелецСсылка;
- Исключение
- КонецПопытки;
- Попытка
- Форма.ПараметрВыборПоВладельцу = ВладелецСсылка;
- Исключение
- КонецПопытки;
- КонецЕсли;
- КонецЕсли;
-
- ТестироватьФорму(Форма, ИмяОперации);
-
-КонецПроцедуры
-
-Процедура СоздатьИменаОсновныхФорм() Экспорт
- Если Не ЗначениеЗаполнено(мИменаОсновныхФорм) Тогда
- мИменаОсновныхФорм = Новый Массив();
- КонецЕсли;
- СоздатьИменаОсновныхФорм_Объекты();
- СоздатьИменаОсновныхФормСписка();
- Если мИменаОсновныхФорм.Количество() = 0 Тогда
- Для каждого эл Из мИменаОсновныхФорм_Объекты Цикл
- мИменаОсновныхФорм.Добавить(эл);
- КонецЦикла;
- Для каждого эл Из мИменаОсновныхФорм_Списки Цикл
- мИменаОсновныхФорм.Добавить(эл);
- КонецЦикла;
- КонецЕсли;
-КонецПроцедуры
-
-Процедура СоздатьИменаОсновныхФорм_Объекты()
- Если Не ЗначениеЗаполнено(мИменаОсновныхФорм_Объекты) Тогда
- мИменаОсновныхФорм_Объекты = Новый Массив();
- КонецЕсли;
- Если мИменаОсновныхФорм_Объекты.Количество() = 0 Тогда
- мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФорма");
- мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаОбъекта");
- мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаГруппы");
- мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаЗаписи");
- мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаНастроек");
- мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаСохранения");
- мИменаОсновныхФорм_Объекты.Добавить("ОсновнаяФормаЗагрузки");
-
- мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФорма");
- мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаОбъекта");
- мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаГруппы");
- мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаЗаписи");
- мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаНастроек");
- мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаСохранения");
- мИменаОсновныхФорм_Объекты.Добавить("ДополнительнаяФормаЗагрузки");
- КонецЕсли;
-КонецПроцедуры
-
-Процедура СоздатьИменаОсновныхФормСписка()
- Если Не ЗначениеЗаполнено(мИменаОсновныхФорм_Списки) Тогда
- мИменаОсновныхФорм_Списки = Новый Массив();
- КонецЕсли;
-
- Если мИменаОсновныхФорм_Списки.Количество() = 0 Тогда
- мИменаОсновныхФорм_Списки.Добавить("ОсновнаяФормаСписка");
- мИменаОсновныхФорм_Списки.Добавить("ОсновнаяФормаДляВыбора");
- мИменаОсновныхФорм_Списки.Добавить("ОсновнаяФормаДляВыбораГруппы");
- мИменаОсновныхФорм_Списки.Добавить("ОсновнаяФормаКонстант");
-
- мИменаОсновныхФорм_Списки.Добавить("ДополнительнаяФормаСписка");
- мИменаОсновныхФорм_Списки.Добавить("ДополнительнаяФормаДляВыбора");
- мИменаОсновныхФорм_Списки.Добавить("ДополнительнаяФормаДляВыбораГруппы");
- мИменаОсновныхФорм_Списки.Добавить("ДополнительнаяФормаКонстант");
- КонецЕсли;
-КонецПроцедуры
-
-Функция СоздатьФорму_ПолучениеФорм()
- Попытка
- мПолучениеФорм = ПолучитьФорму("ПолучениеФорм"); // в управляемом режиме здесь будет ошибка выполнения
- Возврат Истина;
- Исключение
- КонецПопытки;
- Возврат Ложь;
-КонецФункции
-
-// Функция - Получить мета формы объекта для проверки
-//
-// Параметры:
-// МетаОбъект - -
-// ИменаОсновныхФорм - -
-//
-// Возвращаемое значение:
-// Массив структур - с полями "Имя,МетаФорма", где "Имя" - это ИмяОсновнойФормы, "МетаФорма" - сама мета-форма
-//
-Функция ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм) Экспорт
-
- ИспользоватьУФ = Метаданные.ИспользоватьУправляемыеФормыВОбычномПриложении ИЛИ (ТекущийРежимЗапуска() <> РежимЗапускаКлиентскогоПриложения.ОбычноеПриложение);
- МетаФормы = Новый Массив();
-
- Для Каждого ИмяОсновнойФормы Из ИменаОсновныхФорм Цикл
- Попытка
- МетаФорма = МетаОбъект[ИмяОсновнойФормы];
- Исключение
- Продолжить;
- КонецПопытки;
- Если МетаФорма = Неопределено Тогда
- Продолжить;
- КонецЕсли;
- Если МетаФормы.Найти(МетаФорма) <> Неопределено Тогда
- Продолжить;
- КонецЕсли;
- Если НЕ ИспользоватьУФ И МетаФорма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая Тогда
- Продолжить;
- КонецЕсли;
- МетаФормы.Добавить(МетаФорма);
- КонецЦикла;
-
- Возврат МетаФормы;
-
-КонецФункции
-
-Функция ПолучитьФормуЛкс(ИмяФормы, Параметры = Неопределено, Владелец = Неопределено, Уникальность = Неопределено, Окно = Неопределено) Экспорт
-
- Возврат мПолучениеФорм.ПолучитьФормуЛкс(ИмяФормы, Параметры, Владелец, Уникальность, Окно);
-
-КонецФункции
-
-Функция ПолучитьНовуюФорму(МетаФорма, ВнешнийОбъект = Неопределено, КлючВременнойФормы = Неопределено)
-
- Форма = ПолучитьФормуЛкс(МетаФорма, , , КлючВременнойФормы); //ирНеглобальный.
- Возврат Форма;
-
-КонецФункции
-
-Процедура ТестироватьФорму(Форма, ИмяОперации = "") Экспорт
- ТестируемаяФорма = Форма;
- Форма.Открыть(); // К сожалению здесь исключения не ловятся http://partners.v8.1c.ru/forum/thread.jsp?id=1080350#1080350
- Утверждения.Проверить(ТестируемаяФорма.Открыта(), "ТестируемаяФорма """+ИмяОперации+""" не открылась, а должна была открыться");
-
- // Артур - мой код для доп.проверки формы
- Если ЭтоОбычнаяФорма(ТестируемаяФорма) Тогда
- ТестируемаяФорма.Обновить();
- Иначе
- ТестируемаяФорма.ОбновитьОтображениеДанных();
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область РаботаСНастройками
-
-Процедура ЗагрузитьНастройки()
-
- ПутьНастройки = "smoke";
- ПлагинНастроек = КонтекстЯдра.Плагин("Настройки");
- Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки);
- Если Не ЗначениеЗаполнено(Настройки) Тогда
- Настройки = Новый Структура;
- КонецЕсли;
-
- Если ЕстьНастройка("ВыводитьСообщенияВЖурналРегистрации") Тогда
- ВыводитьСообщенияВЖурналРегистрации = Настройки.ВыводитьСообщенияВЖурналРегистрации;
- Иначе
- ВыводитьСообщенияВЖурналРегистрации = Истина;
- КонецЕсли;
-
- НаборНастроекПоУмолчанию = СоздатьНаборНастроекПоУмолчанию();
-
- ЗаменитьНесуществующиеНастройкиЗначениямиПоУмолчанию(Настройки, НаборНастроекПоУмолчанию);
-
-КонецПроцедуры
-
-Функция СоздатьНаборНастроекПоУмолчанию() Экспорт
-
- Рез = Новый Структура;
-
- //Рез.Вставить("ДобавлятьИмяПользователяВПредставлениеТеста", Ложь);
-
- Возврат Новый ФиксированнаяСтруктура(Рез);
-
-КонецФункции // ()
-
-Процедура ЗаменитьНесуществующиеНастройкиЗначениямиПоУмолчанию(Знач Настройки, Знач НаборНастроекПоУмолчанию)
-
- Для каждого КлючЗначение Из НаборНастроекПоУмолчанию Цикл
- Если Не ЕстьНастройка(КлючЗначение.Ключ) Тогда
- Настройки.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-// Функция - Получить исключения
-//
-// Параметры:
-// ВидМетаданного - -
-// ВидПроверки - -
-//
-// Возвращаемое значение:
-// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
-//
-Функция ПолучитьИсключения(Знач ВидМетаданного, Знач ВидПроверки)
- Если Не ЗначениеЗаполнено(Настройки) Тогда
- Возврат Новый СписокЗначений;
- КонецЕсли;
- Результат = Неопределено;
-
- Настройка = Неопределено;
- ЕстьНастройка = Настройки.Свойство(ВидМетаданного, Настройка);
- Если ЕстьНастройка Тогда
- Если ТипЗнч(Настройка) = Тип("Массив") ИЛИ ВидПроверки = "" Или ТипЗнч(Настройка) = Тип("Булево") Тогда
- МассивИсключений = Настройка;
- Иначе
- МассивИсключений = Неопределено;
- Настройка.Свойство(ВидПроверки, МассивИсключений);
- КонецЕсли;
- Если ТипЗнч(МассивИсключений) = Тип("Массив") И ЗначениеЗаполнено(МассивИсключений) Тогда
- Результат = Новый СписокЗначений;
- Результат.ЗагрузитьЗначения(МассивИсключений);
- ИначеЕсли МассивИсключений = Ложь Тогда
- Результат = Ложь;
- КонецЕсли;
- КонецЕсли;
-
- ДобавитьИсключенияПоОтключеннымФункциональнымОпциям(ВидМетаданного, Результат);
-
- Если Не ЗначениеЗаполнено(Результат) И Результат <> Ложь Тогда
- Результат = Новый СписокЗначений;
- КонецЕсли;
- Возврат Результат;
-КонецФункции
-
-Процедура ДобавитьИсключенияПоОтключеннымФункциональнымОпциям(ВидМетаданного, СписокЗначений)
- ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций = Ложь;
- ЕстьНастройка = Настройки.Свойство("ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций", ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций);
- Если (ЕстьНастройка И Не ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций)
- ИЛИ (ТипЗнч(СписокЗначений) = Тип("Булево") И Не СписокЗначений) Тогда
-
- Возврат;
-
- КонецЕсли;
-
- Если Не ЗначениеЗаполнено(СписокЗначений)
- Или ТипЗнч(СписокЗначений) = Тип("Булево") Тогда
- СписокЗначений = Новый СписокЗначений;
- КонецЕсли;
-
- Если ФормыОтключенныеЧерезФункциональныеОпции = Неопределено Тогда
- ФормыОтключенныеЧерезФункциональныеОпции = Новый Структура;
- КонецЕсли;
-
- Если Не ФормыОтключенныеЧерезФункциональныеОпции.Свойство(ВидМетаданного) Тогда
- СписокМетаданныхФО = Новый СписокЗначений;
- ФормыОтключенныеЧерезФункциональныеОпции.Вставить(ВидМетаданного, СписокМетаданныхФО);
-
- Для каждого ФО Из Метаданные.ФункциональныеОпции Цикл
- Попытка
- Значение = ПолучитьФункциональнуюОпцию(ФО.Имя);
- Исключение
- Продолжить;
- КонецПопытки;
- Если ТипЗнч(Значение) = Тип("Булево") И Не Значение Тогда
- Для каждого СтрОбъект Из ФО.Состав Цикл
-
- Если СтрОбъект.Объект = Неопределено Тогда
- Продолжить;
- КонецЕсли;
-
- Если Метаданные[ВидМетаданного].Содержит(СтрОбъект.Объект) Тогда
- СписокМетаданныхФО.Добавить(СтрОбъект.Объект.Имя);
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
-
- СписокМетаданного = Неопределено;
- Если ФормыОтключенныеЧерезФункциональныеОпции.Свойство(ВидМетаданного, СписокМетаданного) Тогда
-
- Для Каждого Элемент Из СписокМетаданного Цикл
- МДИмяОбъекта = Элемент.Значение;
- Если СписокЗначений.НайтиПоЗначению(МДИмяОбъекта) = Неопределено Тогда
- СписокЗначений.Добавить(МДИмяОбъекта);
- КонецЕсли;
- КонецЦикла;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция ВидыМетаданных() Экспорт
- Если ВидыМетаданных = Неопределено Тогда
- ВидыМетаданных = Новый Структура;
- ВидыМетаданных.Вставить("Справочники", "Справочники");
- ВидыМетаданных.Вставить("Документы", "Документы");
- ВидыМетаданных.Вставить("Обработки", "Обработки");
- ВидыМетаданных.Вставить("Отчеты", "Отчеты");
- ВидыМетаданных.Вставить("БизнесПроцессы", "БизнесПроцессы");
- ВидыМетаданных = Новый ФиксированнаяСтруктура(ВидыМетаданных);
- КонецЕсли;
- Возврат ВидыМетаданных;
-КонецФункции
-
-Функция ВидыПроверок() Экспорт
- Если ВидыПроверок = Неопределено Тогда
- ВидыПроверок = Новый Структура;
- ВидыПроверок.Вставить("Списки", "Списки");
- ВидыПроверок.Вставить("Существующие", "Существующие");
- ВидыПроверок.Вставить("Новые", "Новые");
- ВидыПроверок.Вставить("ПеренестиДату", "ПеренестиДату");
- ВидыПроверок = Новый ФиксированнаяСтруктура(ВидыПроверок);
- КонецЕсли;
- Возврат ВидыПроверок;
-КонецФункции
-
-Функция КлючДляПропускаПоТекстуИсключения()
-
- Возврат "ПропускаемыеИсключения";
-
-КонецФункции
-
-Функция ПолучитьНастройкуГруппировки(СтруктураНастроек) Экспорт
-
- Перем СпособГруппировки;
-
- НастройкаГруппировки = Новый Структура;
- НастройкаГруппировки.Вставить("КоличествоВГруппе", 20);
-
- Если ЗначениеЗаполнено(СтруктураНастроек) Тогда
-
- Если ТипЗнч(СтруктураНастроек) = Тип("Структура") Тогда
- СтруктураНастроек.Свойство("СпособГруппировки", СпособГруппировки);
- СтруктураНастроек.Свойство("КоличествоВГруппе", НастройкаГруппировки.КоличествоВГруппе);
- КонецЕсли;
-
- Если ТипЗнч(СпособГруппировки) <> Тип("Массив") Тогда
- МассивСпособов = Новый Массив;
- МассивСпособов.Добавить(СпособГруппировки);
- СпособГруппировки = МассивСпособов;
- КонецЕсли;
-
- НастройкаГруппировки.Вставить("ГруппироватьПоВидуМетаданных", СпособГруппировки.Найти(СпособыГруппировки.ПоВидуМетаданных) <> Неопределено);
- НастройкаГруппировки.Вставить("ГруппироватьПоВидуОбъекта" , СпособГруппировки.Найти(СпособыГруппировки.ПоВидуОбъекта) <> Неопределено);
- НастройкаГруппировки.Вставить("ГруппироватьПоКоличеству" , СпособГруппировки.Найти(СпособыГруппировки.ПоКоличеству) <> Неопределено);
-
- Иначе
- НастройкаГруппировки.Вставить("ГруппироватьПоВидуМетаданных", Истина);
- НастройкаГруппировки.Вставить("ГруппироватьПоВидуОбъекта" , Ложь);
- НастройкаГруппировки.Вставить("ГруппироватьПоКоличеству" , Ложь);
- КонецЕсли;
-
- Возврат НастройкаГруппировки;
-
-КонецФункции
-
-Функция СпособыГруппировки() Экспорт
- Если СпособыГруппировки = Неопределено Тогда
- СпособыГруппировки = Новый Структура;
- СпособыГруппировки.Вставить("НеГруппировать", "НеГруппировать");
- СпособыГруппировки.Вставить("ПоВидуМетаданных", "ПоВидуМетаданных");
- СпособыГруппировки.Вставить("ПоВидуОбъекта", "ПоВидуОбъекта");
- СпособыГруппировки.Вставить("ПоКоличеству", "ПоКоличеству");
- СпособыГруппировки = Новый ФиксированнаяСтруктура(СпособыГруппировки);
- КонецЕсли;
- Возврат СпособыГруппировки;
-КонецФункции
-
-// Позволяет одним вызовом получить значение из вложенных друг в друга структур
-// по строке ключей, объединенных точкой.
-// Пример:
-// Структура = Новый Структура("Ключ1", Новый Структура("Ключ2", Новый Структура("Ключ3", 42)));
-// РезультатПроверки = ЕстьНастройка("Ключ1.Ключ2.Ключ3", ВремЗнач);
-// В результате получим ВремЗнач == 42
-//
-Функция ЕстьНастройка(ПутьНастроек, СтруктураНастроек = Неопределено)
-
- // TODO: Метод нужно перенести в плагин "Настройки".
-
- Если СтруктураНастроек = Неопределено Тогда
- СтруктураНастроек = Настройки;
- КонецЕсли;
-
- Если ТипЗнч(СтруктураНастроек) = Тип("Структура") Тогда
-
- ПозТочки = Найти(ПутьНастроек, ".");
-
- Если ПозТочки = 0 Тогда
- Возврат СтруктураНастроек.Свойство(ПутьНастроек);
- Иначе
- ИмяТекущегоСвойства = Лев(ПутьНастроек, ПозТочки - 1);
- ОстатокПути = Сред(ПутьНастроек, ПозТочки + 1);
- Если СтруктураНастроек.Свойство(ИмяТекущегоСвойства) Тогда
- Возврат ЕстьНастройка(ОстатокПути, СтруктураНастроек[ИмяТекущегоСвойства]);
- КонецЕсли;
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат Ложь;
-
-КонецФункции
-
-Функция ВключенСтрогийПорядокВыполнения()
- Если ЕстьНастройка("СтрогийПорядокВыполнения", Настройки) И Настройки.СтрогийПорядокВыполнения = Ложь Тогда
- Возврат Ложь;
- КонецЕсли;
- Возврат Истина;
-КонецФункции
-
-// Функция - Пропускаем ошибку по тексту исключения
-//
-// Параметры:
-// ТекстИсключения - -
-//
-// Возвращаемое значение:
-// -
-//
-Функция ПропускаемОшибкуПоТекстуИсключения(Знач ТекстИсключения) Экспорт
-
- МассивТекстовИсключенийПоУмолчанию = Новый Массив;
- МассивТекстовИсключенийПоУмолчанию.Добавить("Обработка не предназначена для непосредственного использования");
-
- Если Не ЗначениеЗаполнено(Настройки) Тогда
- МассивТекстовИсключений = МассивТекстовИсключенийПоУмолчанию;
- Иначе
-
- Настройка = Неопределено;
- ЕстьНастройка = Настройки.Свойство(КлючДляПропускаПоТекстуИсключения(), Настройка);
- Если ЕстьНастройка Тогда
- МассивТекстовИсключений = Неопределено;
- Если ТипЗнч(Настройка) = Тип("Массив") Тогда
- МассивТекстовИсключений = Настройка;
- КонецЕсли;
- Если Не ЗначениеЗаполнено(МассивТекстовИсключений) Тогда
- МассивТекстовИсключений = МассивТекстовИсключенийПоУмолчанию;
- Иначе
- Для Каждого ОжидаемыйТекстИсключения Из МассивТекстовИсключенийПоУмолчанию Цикл
- МассивТекстовИсключений.Добавить(ОжидаемыйТекстИсключения);
- КонецЦикла;
- КонецЕсли;
-
- КонецЕсли;
-
- КонецЕсли;
-
- Если ЗначениеЗаполнено(МассивТекстовИсключений) Тогда
-
- Для Каждого ОжидаемыйТекстИсключения Из МассивТекстовИсключений Цикл
- Если Найти(ТекстИсключения, ОжидаемыйТекстИсключения) > 0 Тогда
- Возврат Истина;
- КонецЕсли;
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Ложь;
-КонецФункции
-
-#КонецОбласти
-
-#Область ПоискИСозданиеОбъектов
-
-Функция ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения)
- выборка = Документы[ИД].Выбрать(,,, "Дата Убыв");
- Успешно = выборка.Следующий();
- Если Не Успешно Тогда
- Если НужноИсключениеЕслиНеНайденоДокументов Тогда
- ВызватьИсключение
- СтрШаблон_("%1: выборка.Следующий() - не найдено существующих документов %2! ",
- ДопОписаниеДляИсключения, Ид);
- Иначе
- Возврат Неопределено;
- КонецЕсли;
- КонецЕсли;
- Док = выборка.ПолучитьОбъект();
- Возврат Док;
-КонецФункции
-
-Функция ПолучитьСуществующийДокументОбъектИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения) Экспорт
- Док = ПолучитьСуществующийДокументОбъект(ИД, НужноИсключениеЕслиНеНайденоДокументов, ДопОписаниеДляИсключения);
- Возврат ?(Док = Неопределено, Неопределено, Док.Ссылка);
-КонецФункции
-
-Функция ПолучитьОбъектСуществующегоЭлементаСправочника(ИД, НужноИсключениеЕслиНеНайденоСправочников,
- ДопОписаниеДляИсключения, Знач Отбор = Неопределено)
-
- Если Отбор = Неопределено Тогда
- Отбор = Новый Структура;
- КонецЕсли;
-
- выборка = ПолучитьРезультатЗапросаСуществующийЭлементСправочника(ИД, Отбор);
- Успешно = выборка.Следующий();
- Если Не Успешно Тогда
- Если НужноИсключениеЕслиНеНайденоСправочников Тогда
- ВызватьИсключение
- СтрШаблон_("%1: выборка.Следующий() - не найдено существующих элементов справочника %2! ",
- ДопОписаниеДляИсключения, Ид);
- Иначе
- Возврат Неопределено;
- КонецЕсли;
- КонецЕсли;
- Элем = выборка.Ссылка.ПолучитьОбъект();
- Возврат Элем;
-КонецФункции
-
-Функция ПолучитьРезультатЗапросаСуществующийЭлементСправочника(ИД, Отбор)
-
- Запрос = Новый Запрос;
-
- ТекстЗапроса =
- "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
- | ОбъектЗапроса.Ссылка
- |ИЗ
- | Справочник.%1 КАК ОбъектЗапроса";
-
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%1", ИД);
-
- Если Отбор.Количество() <> 0 Тогда
- ТекстЗапроса = ТекстЗапроса + Символы.ПС + " ГДЕ";
- Для каждого ЭлементОтбора Из Отбор Цикл
- ТекстЗапроса = ТекстЗапроса + Символы.ПС + "ОбъектЗапроса." + ЭлементОтбора.Ключ + " = " + ЭлементОтбора.Значение;
- КонецЦикла;
- КонецЕсли;
-
-
-
- Запрос.Текст = ТекстЗапроса;
-
- РезультатЗапроса = Запрос.Выполнить().Выбрать();
-
- Возврат РезультатЗапроса;
-
-КонецФункции
-
-Функция ПолучитьОбъектСуществующегоЭлементаСправочникаИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоСправочников,
- ДопОписаниеДляИсключения, Знач Отбор = Неопределено) Экспорт
-
- Элем = ПолучитьОбъектСуществующегоЭлементаСправочника(ИД, НужноИсключениеЕслиНеНайденоСправочников,
- ДопОписаниеДляИсключения, Отбор);
- Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка);
-КонецФункции
-
-Функция СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено)
-
- УстановитьПривилегированныйРежим(Истина);
-
- Если Метаданные.Справочники.Найти(ИД) <> Неопределено Тогда
- Элем = Справочники[ИД].СоздатьЭлемент();
- ИначеЕсли Метаданные.ПланыВидовХарактеристик.Найти(ИД) <> Неопределено Тогда
- Элем = ПланыВидовХарактеристик[ИД].СоздатьЭлемент();
- ИначеЕсли Метаданные.ПланыОбмена.Найти(ИД) <> Неопределено Тогда
- Элем = ПланыОбмена[ИД].СоздатьУзел();
- Иначе
- ВызватьИсключение СтрШаблон_(НСтр("ru = 'Не удалось найти объект метаданных по имени ""%1"".'"), ИД);
- КонецЕсли;
- Мета = Элем.Метаданные();
-
- Если ПроверяемоеПравоДоступа <> Неопределено И НЕ ПравоДоступа(ПроверяемоеПравоДоступа, Мета) Тогда
- Возврат Неопределено;
- КонецЕсли;
-
- Если Мета.ДлинаНаименования <> 0 Тогда
- Попытка
- Элем.Наименование = Наименование;
- Исключение
- КонецПопытки;
- КонецЕсли;
-
- Если Мета.ДлинаКода <> 0 Тогда
- Элем.УстановитьНовыйКод();
- КонецЕсли;
-
- Если Метаданные.Справочники.Найти(Мета.Имя) <> Неопределено И Мета.Владельцы.Количество() Тогда
- Элем.Владелец = ПолучитьСсылкуНаВладельца(Мета, "Владелец для: " + Наименование);
- КонецЕсли;
-
- Если ЕстьНастройка("Справочники.ЗначенияРеквизитовНовых." + Мета.Имя) Тогда
- Для каждого Реквизит из Настройки.Справочники.ЗначенияРеквизитовНовых[Мета.Имя] Цикл
- Попытка
- Элем[Реквизит.Ключ] = ЗначениеРеквизита(Мета, Реквизит.Ключ, Реквизит.Значение);
- Исключение
- ВывестиСообщение(ОписаниеОшибки(), УровеньЖурналаРегистрации.Предупреждение);
- КонецПопытки;
- КонецЦикла;
- КонецЕсли;
-
- Элем.ОбменДанными.Загрузка = Истина;
- Элем.Записать();
-
- Возврат Элем;
-
-КонецФункции
-
-Функция СоздатьЭлементИВернутьСсылку(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено) Экспорт
- Элем = СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа);
- Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка);
-КонецФункции
-
-Функция ПолучитьМетаданныеВладельца(КоллекцияМетаданныхВладельцев, Индекс=0)
- Счетчик = 0;
- Для каждого Элемент из КоллекцияМетаданныхВладельцев Цикл
- Если Счетчик = Индекс Тогда
- Возврат Элемент;
- КонецЕсли;
- Счетчик = Счетчик + 1;
- КонецЦикла;
- ВызватьИсключение "Индекс за границей диапазона";
-КонецФункции
-
-Функция ПолучитьСсылкуНаВладельца(МетаданныеПодчиненного, НаименованиеПодчиненного="Элемент-владелец")
-
- МетаИмяВладельца = Неопределено;
-
- Если ЕстьНастройка("Справочники.Подчиненные") Тогда
- Настройки.Справочники.Подчиненные.Свойство(МетаданныеПодчиненного.Имя, МетаИмяВладельца);
- КонецЕсли;
-
- Если МетаИмяВладельца = Неопределено Тогда
- МетаИмяВладельца = ПолучитьМетаданныеВладельца(МетаданныеПодчиненного.Владельцы).Имя;
- КонецЕсли;
-
- Возврат СоздатьЭлементИВернутьСсылку(МетаИмяВладельца, НаименованиеПодчиненного);
-
-КонецФункции
-
-// Получить объект существующего бизнес-процесса и вернуть ссылку на объект
-//
-// Параметры:
-// ИД - Строка - Имя бизнес-процесса
-// НужноИсключениеЕслиНеНайденоБизнесПроцессов - Булево - Флаг выброса исключений
-// ДопОписаниеДляИсключения - Строка - доп.текст исключения
-// Отбор - Структура - Структура, в которой ключ - это имя реквизита бП, а значение - это значение реквизита отбора
-//
-// Возвращаемое значение:
-// БизнесПроцессы.Ссылка, Неопределено - Найденный БП или Неопределено
-//
-Функция ПолучитьОбъектСуществующегоБизнесПроцессаИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоБизнесПроцессов,
- ДопОписаниеДляИсключения, Знач Отбор = Неопределено) Экспорт
-
- Элем = ПолучитьОбъектСуществующегоБизнесПроцесса(ИД, НужноИсключениеЕслиНеНайденоБизнесПроцессов,
- ДопОписаниеДляИсключения, Отбор);
- Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка);
-КонецФункции
-
-Функция ПолучитьОбъектСуществующегоБизнесПроцесса(ИД, НужноИсключениеЕслиНеНайденоБизнесПроцессов,
- ДопОписаниеДляИсключения, Знач Отбор = Неопределено)
-
- Если Отбор = Неопределено Тогда
- Отбор = Новый Структура;
- КонецЕсли;
-
- Выборка = БизнесПроцессы[ИД].Выбрать(,, Отбор);
- Успешно = Выборка.Следующий();
- Если Не Успешно Тогда
- Если НужноИсключениеЕслиНеНайденоБизнесПроцессов Тогда
- ВызватьИсключение
- СтрШаблон_("%1: выборка.Следующий() - не найдено существующих бизнес процессов %2! ",
- ДопОписаниеДляИсключения, Ид);
- Иначе
- Возврат Неопределено;
- КонецЕсли;
- КонецЕсли;
- Элем = Выборка.ПолучитьОбъект();
- Возврат Элем;
-КонецФункции
-
-Функция СоздатьБизнесПроцесс(ИД, ПроверяемоеПравоДоступа = Неопределено)
-
- Элем = БизнесПроцессы[ИД].СоздатьБизнесПроцесс();
- Мета = Элем.Метаданные();
-
- Если ПроверяемоеПравоДоступа <> Неопределено И НЕ ПравоДоступа(ПроверяемоеПравоДоступа, Мета) Тогда
- Возврат Неопределено;
- КонецЕсли;
-
- Если Мета.ДлинаНомера <> 0 Тогда
- Элем.УстановитьНовыйНомер();
- КонецЕсли;
-
- Элем.Дата = ТекущаяДата();
-
- Если ЕстьНастройка("БизнесПроцессы.ЗначенияРеквизитовНовых." + Мета.Имя) Тогда
- Для каждого Реквизит Из Настройки.БизнесПроцессы.ЗначенияРеквизитовНовых[Мета.Имя] Цикл
- Попытка
- Элем[Реквизит.Ключ] = ЗначениеРеквизита(Мета, Реквизит.Ключ, Реквизит.Значение);
- Исключение
- ВывестиСообщение(ОписаниеОшибки(), УровеньЖурналаРегистрации.Предупреждение);
- КонецПопытки;
- КонецЦикла;
- КонецЕсли;
-
- Элем.ОбменДанными.Загрузка = Истина;
- Элем.Записать();
-
- Возврат Элем;
-
-КонецФункции
-
-// Создать новый БП и вернуть ссылку на него
-//
-// Параметры:
-// ИД - Строка - Вид БП
-// ПроверяемоеПравоДоступа - Строка - имя права доступа
-//
-// Возвращаемое значение:
-// БизнесПроцесс.Ссылка, Неопределено - полученная ссылка или Неопределено
-//
-Функция СоздатьБизнесПроцессИВернутьСсылку(ИД, ПроверяемоеПравоДоступа = Неопределено) Экспорт
- Элем = СоздатьБизнесПроцесс(ИД, ПроверяемоеПравоДоступа);
- Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка);
-КонецФункции
-#КонецОбласти
-
-#Область ВспомогательныеМетоды
-
-Функция ИмяМетодаПропускаТестов()
- Возврат "ТестДолжен_ПропуститьТестФормы";
-КонецФункции
-
-Функция ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Экспорт
- Возврат Найти(НРег(МетаОбъект.Имя), НРег("Удалить")) = 1;
-КонецФункции
-
-Функция ВидМетаданныхИсключенИзТестирования(ВидМетаданных)
- Если ЕстьНастройка(ВидМетаданных) Тогда
- Возврат (ТипЗнч(Настройки[ВидМетаданных]) = Тип("Булево") И НЕ Настройки[ВидМетаданных]);
- КонецЕсли;
- Возврат Ложь;
-КонецФункции
-
-Функция ЗначениеРеквизита(МетаданныеОбъекта, ИмяРеквизита, ЗначениеРеквизитаИзФайла)
-
- ТипРеквизита = МетаданныеОбъекта.Реквизиты[ИмяРеквизита].Тип.Типы()[0];
-
- Если ЭтоПримитивныйТипДанных(ТипРеквизита) Тогда
- Возврат МетаданныеОбъекта.Реквизиты[ИмяРеквизита].Тип.ПривестиЗначение(ЗначениеРеквизитаИзФайла);
- КонецЕсли;
-
- // Значит, это ссылочный тип данных.
- Попытка
- МетаданныеЗначения = Метаданные.НайтиПоТипу(ТипРеквизита);
- Если Метаданные.Справочники.Содержит(МетаданныеЗначения) Тогда
- Возврат СоздатьЭлементИВернутьСсылку(МетаданныеЗначения.Имя, ЗначениеРеквизитаИзФайла);
- ИначеЕсли Метаданные.Перечисления.Содержит(МетаданныеЗначения) Тогда
- Возврат Перечисления[МетаданныеЗначения.Имя][ЗначениеРеквизитаИзФайла];
- КонецЕсли;
- // TODO: поддержку документов и других ссылочных типов данных (добавим по необходимости)
- Исключение
- КонецПопытки;
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция ЭтоПримитивныйТипДанных(Тип)
- Возврат Тип = Тип("Строка") Или Тип = Тип("Число")
- Или Тип = Тип("Дата") Или Тип = Тип("Булево");
-КонецФункции
-
-Процедура ВывестиСообщение(ТекстСообщения, Знач УровеньЖР=Неопределено, Сообщать=Ложь)
-
- Если Сообщать Тогда
- Сообщить(ТекстСообщения, ?(УровеньЖР = УровеньЖурналаРегистрации.Ошибка, СтатусСообщения.ОченьВажное, СтатусСообщения.Обычное));
- КонецЕсли;
-
- Если ВыводитьСообщенияВЖурналРегистрации Тогда
- Если УровеньЖР = Неопределено Тогда
- УровеньЖР = УровеньЖурналаРегистрации.Информация;
- КонецЕсли;
- ЗаписьЖурналаРегистрации(Метаданные().Синоним, УровеньЖР, , , ТекстСообщения);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-Функция СтрШаблон_(Знач СтрокаШаблон, Знач Парам1 = Неопределено, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено) Экспорт
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить(Парам1);
- МассивПараметров.Добавить(Парам2);
- МассивПараметров.Добавить(Парам3);
- МассивПараметров.Добавить(Парам4);
- МассивПараметров.Добавить(Парам5);
-
- Для Сч = 1 По МассивПараметров.Количество() Цикл
- ТекЗначение = МассивПараметров[Сч-1];
- СтрокаШаблон = СтрЗаменить(СтрокаШаблон, "%"+Сч, Строка(ТекЗначение));
- КонецЦикла;
-
- Возврат СтрокаШаблон;
-
-КонецФункции
-
-СписокПропускаемыхФорм = Новый СписокЗначений;
diff --git "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274.xml" "b/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274.xml"
deleted file mode 100644
index 4dd6a79..0000000
--- "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274.xml"
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274/Ext/Form.bin" "b/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274/Ext/Form.bin"
deleted file mode 100644
index b248d24..0000000
Binary files "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\237\320\276\320\273\321\203\321\207\320\265\320\275\320\270\320\265\320\244\320\276\321\200\320\274/Ext/Form.bin" and /dev/null differ
diff --git "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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.xml" "b/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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.xml"
deleted file mode 100644
index 74a7ea8..0000000
--- "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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.xml"
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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"
deleted file mode 100644
index d38433a..0000000
--- "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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"
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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"
deleted file mode 100644
index 638e45d..0000000
--- "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/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"
+++ /dev/null
@@ -1,1332 +0,0 @@
-&НаКлиенте
-Перем КонтекстЯдра;
-&НаКлиенте
-Перем Ожидаем;
-&НаКлиенте
-Перем Утверждения;
-
-&НаКлиенте
-Перем ПлагинТестКлиенты;
-
-&НаКлиенте
-Перем ТестируемаяФорма;
-
-// { интерфейс тестирования
-
-&НаКлиенте
-Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
- КонтекстЯдра = КонтекстЯдраПараметр;
- Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
- Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
- ПлагинТестКлиенты = КонтекстЯдра.Плагин("ТестКлиенты");
-
- Объект.ОткрываемФормыНаКлиентеТестирования = Истина;
-
- ЗагрузитьНастройки();
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт
-
- Инициализация(КонтекстЯдраПараметр);
-
- Если Не НужноВыполнятьТест() Тогда
- Возврат;
- КонецЕсли;
-
- Если Объект.ОткрываемФормыНаКлиентеТестирования Тогда
- ПлагинТестКлиенты = КонтекстЯдра.Плагин("ТестКлиенты");
- ТестКлиент = ПлагинТестКлиенты.ТестКлиентПоУмолчанию();
- ПлагинТестКлиенты.ЗакрытьВсеОткрытыеОкна(ТестКлиент);
-
- ОсновноеОкно = ОсновноеОкно(ТестКлиент);
- КонецЕсли;
-
- ОписанияТестов = Новый Массив;
-
- НужноИсключениеЕслиНеНайденоДокументов = Ложь;
-
- ВключенСтрогийПорядокВыполнения= ВключенСтрогийПорядокВыполнения();
-
- Если ВключенСтрогийПорядокВыполнения Тогда
- НаборТестов.СтрогийПорядокВыполнения();
- НаборТестов.ПродолжитьВыполнениеПослеПаденияТеста();
- КонецЕсли;
-
- СоздатьИменаОсновныхФорм();
-
- НастройкаГруппировки = ПолучитьНастройкуГруппировки();
-
- ТолькоУправляемыеФормы = Истина;
- #Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда
- ТолькоУправляемыеФормы = Ложь;
- #КонецЕсли
-
- Если Не ИспользоватьОбычныеФормыВТолстомКлиентеВУправляемомРежимеСервер() Тогда
- ТолькоУправляемыеФормы = Истина;
- КонецЕсли;
-
- ИменаОсновныхФорм_Объекты_Сервер = ИменаОсновныхФорм_Объекты_Сервер();
- мИменаОсновныхФорм_Списки_Сервер = мИменаОсновныхФорм_Списки_Сервер();
-
- Если НЕ ВидМетаданныхИсключенИзТестирования("Справочники") Тогда
-
- ОписанияТестов = Новый Массив;
-
- ДобавитьТестыДляСправочниковСервер(
- ОписанияТестов, ТолькоУправляемыеФормы,
- ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер, НастройкаГруппировки);
-
- Если ЗначениеЗаполнено(ОписанияТестов) Тогда
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда
- НаборТестов.НачатьГруппу("Справочники", ВключенСтрогийПорядокВыполнения);
- КонецЕсли;
-
- ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов, ВключенСтрогийПорядокВыполнения);
-
- КонецЕсли;
- КонецЕсли;
-
- Если НЕ ВидМетаданныхИсключенИзТестирования("Документы") Тогда
-
- ОписанияТестов = Новый Массив;
-
- ДобавитьТестыДляДокументовСервер(
- ОписанияТестов, ТолькоУправляемыеФормы,
- ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер, НастройкаГруппировки);
-
- Если ЗначениеЗаполнено(ОписанияТестов) Тогда
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда
- НаборТестов.НачатьГруппу("Документы", ВключенСтрогийПорядокВыполнения);
- КонецЕсли;
-
- ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов, ВключенСтрогийПорядокВыполнения);
-
- КонецЕсли;
- КонецЕсли;
-
- Если НЕ ВидМетаданныхИсключенИзТестирования("Обработки") Тогда
-
- ОписанияТестов = Новый Массив;
-
- ДобавлятьОбработки = Истина;
- ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы, ДобавлятьОбработки,
- НастройкаГруппировки);
-
- Если ЗначениеЗаполнено(ОписанияТестов) Тогда
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда
- НаборТестов.НачатьГруппу("Обработки", ВключенСтрогийПорядокВыполнения);
- КонецЕсли;
-
- ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов, ВключенСтрогийПорядокВыполнения);
-
- КонецЕсли;
- КонецЕсли;
-
- Если НЕ ВидМетаданныхИсключенИзТестирования("Отчеты") Тогда
-
- ОписанияТестов = Новый Массив;
-
- ДобавлятьОбработки = Ложь;
- ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы, ДобавлятьОбработки,
- НастройкаГруппировки);
-
- Если ЗначениеЗаполнено(ОписанияТестов) Тогда
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда
- НаборТестов.НачатьГруппу("Отчеты", ВключенСтрогийПорядокВыполнения);
- КонецЕсли;
-
- ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов, ВключенСтрогийПорядокВыполнения);
-
- КонецЕсли;
-
- КонецЕсли;
-
- Если НЕ ВидМетаданныхИсключенИзТестирования("БизнесПроцессы") Тогда
-
- ОписанияТестов = Новый Массив;
-
- ДобавлятьОбработки = Ложь;
- ДобавитьТестыДляБизнесПроцессовСервер(
- ОписанияТестов, ТолькоУправляемыеФормы,
- ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер, НастройкаГруппировки);
-
- Если ЗначениеЗаполнено(ОписанияТестов) Тогда
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Тогда
- НаборТестов.НачатьГруппу("БизнесПроцессы", ВключенСтрогийПорядокВыполнения);
- КонецЕсли;
-
- ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов, ВключенСтрогийПорядокВыполнения);
-
- КонецЕсли;
-
- КонецЕсли;
-
- Если НастройкаГруппировки.ГруппироватьПоВидуМетаданных Или НастройкаГруппировки.ГруппироватьПоКоличеству
- Или НастройкаГруппировки.ГруппироватьПоВидуОбъекта Тогда
-
- НаборТестов.НачатьГруппу("Прочее", ВключенСтрогийПорядокВыполнения);
-
- КонецЕсли;
-
- ИмяТеста = "ТестДолжен_ПроверитьБагПлатформыПриОткрытииУправляемойФормыПриОткрытииКоторойЕстьИсключение";
- НаборТестов.Добавить(ИмяТеста, , ИмяТеста);
-
-КонецПроцедуры
-
-// } интерфейс тестирования
-
-//{ ФормированиеСпискаТестовыхСлучаев
-
-&НаКлиенте
-Процедура ДобавитьОписанияТестовВНаборТестов(НаборТестов, ОписанияТестов, СтрогийПорядокВыполнения)
- Для Каждого Описание Из ОписанияТестов Цикл
- Если ТипЗнч(Описание) = Тип("Строка") Тогда
-
- ПредставлениеТеста = Описание;
- НаборТестов.Добавить(Описание, , ПредставлениеТеста);
-
- ИначеЕсли ТипЗнч(Описание) = Тип("Структура") И Описание.Свойство("Набор") Тогда
- НаборТестов.НачатьГруппу(Описание.Имя, СтрогийПорядокВыполнения);
- ДобавитьОписанияТестовВНаборТестов(НаборТестов, Описание.Набор, СтрогийПорядокВыполнения);
-
- Иначе
-
- НаборТестов.Добавить(Описание.ИмяТеста, НаборТестов.ПараметрыТеста(Описание.Параметр),
- Описание.ПредставлениеТеста);
- КонецЕсли;
- КонецЦикла;
-КонецПроцедуры
-
-&НаСервере
-Функция ПодробноеПредставлениеПрефикса(ПрефиксТеста)
-
- Результат = "";
-
- Если ПрефиксТеста = "Новые" Тогда
-
- Результат = "открытие формы объекта при создании";
-
- ИначеЕсли ПрефиксТеста = "Существующие" Тогда
-
- Результат = "открытие формы записанного объекта";
-
- ИначеЕсли ПрефиксТеста = "Списки" Тогда
-
- Результат = "открытие формы списка";
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-&НаСервере
-Процедура ДобавитьТестыДляСправочниковСервер(ОписанияТестов, ТолькоУправляемыеФормы,
- ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер, НастройкаГруппировки)
-
- ОсновнойОбъект = Объект();
- СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Существующие();
- СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Новые();
- СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Справочники_Списки();
-
- Счетчик = 0;
-
- МенеджерМетаданного = Метаданные.Справочники;
- Для Каждого МетаОбъект Из МенеджерМетаданного Цикл
-
- КоличествоЭлементовДо = ОписанияТестов.Количество();
-
- НаборОписанийТестов = ДобавитьГруппировкуЕслиНужно("Справочники", "Справочник." + МетаОбъект.Имя,
- ОписанияТестов, НастройкаГруппировки, Счетчик);
-
- Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда
-
- ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(
- НаборОписанийТестов,
- ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы,
- СписокИсключений_Новые, ИменаОсновныхФорм_Объекты_Сервер,
- "ТестДолжен_ОткрытьФормуНовогоЭлементаСправочника", "Новые");
-
- КонецЕсли;
-
- ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(
- НаборОписанийТестов,
- ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы,
- СписокИсключений_Существующие, ИменаОсновныхФорм_Объекты_Сервер,
- "ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочника", "Существующие");
-
- ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(
- НаборОписанийТестов,
- ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы,
- СписокИсключений_Списки, мИменаОсновныхФорм_Списки_Сервер,
- "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы", "Списки");
-
- Если Не ЗначениеЗаполнено(НаборОписанийТестов) И ЗначениеЗаполнено(ОписанияТестов) Тогда
- Для Счетчик = КоличествоЭлементовДо По ОписанияТестов.Количество() - 1 Цикл
- ОписанияТестов.Удалить(ОписанияТестов.ВГраница());
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
-КонецПроцедуры
-
-Функция ДобавитьГруппировкуЕслиНужно(Знач ИмяВидаМетаданного, Знач ИмяМетаданного,
- Знач ОписанияТестов, Знач НастройкаГруппировки, Счетчик)
-
- НаборОписанийТестов = ОписанияТестов;
- Если НастройкаГруппировки.ГруппироватьПоКоличеству Тогда
- Если Счетчик % НастройкаГруппировки.КоличествоВГруппе = 0 Тогда
- ИмяГруппы = ИмяВидаМетаданного + " (" + Строка(Счетчик + 1) + "..."
- + Строка(Счетчик + НастройкаГруппировки.КоличествоВГруппе) + ")";
- ОписаниеГруппы = Новый Структура("Имя, Набор", ИмяГруппы, Новый Массив);
- НаборОписанийТестов.Добавить(ОписаниеГруппы);
- НаборОписанийТестов = ОписаниеГруппы.Набор;
- КонецЕсли;
- ИначеЕсли НастройкаГруппировки.ГруппироватьПоВидуОбъекта Тогда
- ИмяГруппы = ИмяМетаданного;
- ОписаниеГруппы = Новый Структура("Имя, Набор", ИмяГруппы, Новый Массив);
- НаборОписанийТестов.Добавить(ОписаниеГруппы);
- НаборОписанийТестов = ОписаниеГруппы.Набор;
- КонецЕсли;
-
- Счетчик = Счетчик + 1;
-
- Возврат НаборОписанийТестов;
-КонецФункции
-
-&НаСервере
-Процедура ДобавитьТестыДляДокументовСервер(ОписанияТестов, ТолькоУправляемыеФормы,
- ИменаОсновныхФорм_Объекты_Сервер, мИменаОсновныхФорм_Списки_Сервер, НастройкаГруппировки)
-
- ОсновнойОбъект = Объект();
- СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Существующие();
- СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Новые();
- СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_Документы_Списки();
-
- Счетчик = 0;
-
- МенеджерМетаданного = Метаданные.Документы;
- Для Каждого МетаОбъект Из МенеджерМетаданного Цикл
-
- КоличествоЭлементовДо = ОписанияТестов.Количество();
-
- НаборОписанийТестов = ДобавитьГруппировкуЕслиНужно("Документы", "Документ." + МетаОбъект.Имя,
- ОписанияТестов, НастройкаГруппировки, Счетчик);
-
- Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда
- имяТеста = "ТестДолжен_ОткрытьФормуНовогоДокумента";
- ПрефиксПредставленияТеста = "Новые";
- СписокИсключений = СписокИсключений_Новые;
- ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
- ПроверяемоеПравоДоступа = "ИнтерактивноеДобавление";
- ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(НаборОписанийТестов, ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
- КонецЕсли;
-
- имяТеста = "ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокумента";
- ПрефиксПредставленияТеста = "Существующие";
- СписокИсключений = СписокИсключений_Существующие;
- ИменаОсновныхФорм = ИменаОсновныхФорм_Объекты_Сервер;
-
- ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(НаборОписанийТестов, ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
-
- имяТеста = "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы";
- ПрефиксПредставленияТеста = "Списки";
- СписокИсключений = СписокИсключений_Списки;
- ИменаОсновныхФорм = мИменаОсновныхФорм_Списки_Сервер;
-
- ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(НаборОписанийТестов, ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста);
-
- Если Не ЗначениеЗаполнено(НаборОписанийТестов) И ЗначениеЗаполнено(ОписанияТестов) Тогда
- Для Счетчик = КоличествоЭлементовДо По ОписанияТестов.Количество() - 1 Цикл
- ОписанияТестов.Удалить(ОписанияТестов.ВГраница());
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
-КонецПроцедуры
-
-&НаСервере
-Процедура ДобавитьТестыДляОтчетовОбработокСервер(ОписанияТестов, ТолькоУправляемыеФормы, Знач ДобавлятьОбработки,
- Знач НастройкаГруппировки)
- ОсновнойОбъект = Объект();
-
- ОписаниеВидаМетаданного = Новый Структура;
-
- ИменаОсновныхФорм = мИменаОсновныхФорм_Сервер();
- Если ДобавлятьОбработки Тогда
-
- ОписаниеВидаМетаданного.Вставить("Менеджер", Метаданные.Обработки);
- ОписаниеВидаМетаданного.Вставить("ИмяВидаМнЧисло", "Обработки");
- ОписаниеВидаМетаданного.Вставить("ИмяВидаЕдЧисло", "Обработка");
-
- ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(
- ОписанияТестов, ОсновнойОбъект, ОписаниеВидаМетаданного,
- ТолькоУправляемыеФормы,
- ОсновнойОбъект.ПолучитьСписокИсключений_Обработки(),
- ИменаОсновныхФорм,
- "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы", "",
- НастройкаГруппировки);
-
- Иначе
-
- ОписаниеВидаМетаданного.Вставить("Менеджер", Метаданные.Отчеты);
- ОписаниеВидаМетаданного.Вставить("ИмяВидаМнЧисло", "Отчеты");
- ОписаниеВидаМетаданного.Вставить("ИмяВидаЕдЧисло", "Отчет");
-
- ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(
- ОписанияТестов, ОсновнойОбъект, ОписаниеВидаМетаданного,
- ТолькоУправляемыеФормы,
- ОсновнойОбъект.ПолучитьСписокИсключений_Отчеты(),
- ИменаОсновныхФорм,
- "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы", "",
- НастройкаГруппировки);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ДобавитьТестыДляБизнесПроцессовСервер(ОписанияТестов, ТолькоУправляемыеФормы,
- ИменаОсновныхФорм_Объекты_Сервер, ИменаОсновныхФорм_Списки_Сервер, НастройкаГруппировки)
-
- ОсновнойОбъект = Объект();
- СписокИсключений_Существующие = ОсновнойОбъект.ПолучитьСписокИсключений_БизнесПроцессы_Существующие();
- СписокИсключений_Новые = ОсновнойОбъект.ПолучитьСписокИсключений_БизнесПроцессы_Новые();
- СписокИсключений_Списки = ОсновнойОбъект.ПолучитьСписокИсключений_БизнесПроцессы_Списки();
-
- Счетчик = 0;
-
- МенеджерМетаданного = Метаданные.БизнесПроцессы;
- Для Каждого МетаОбъект Из МенеджерМетаданного Цикл
-
- КоличествоЭлементовДо = ОписанияТестов.Количество();
-
- НаборОписанийТестов = ДобавитьГруппировкуЕслиНужно("БизнесПроцессы", "БизнесПроцесс." + МетаОбъект.Имя,
- ОписанияТестов, НастройкаГруппировки, Счетчик);
-
- Если ПравоДоступа("ИнтерактивноеДобавление", МетаОбъект) Тогда
-
- ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(
- НаборОписанийТестов,
- ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы,
- СписокИсключений_Новые, ИменаОсновныхФорм_Объекты_Сервер,
- "ТестДолжен_ОткрытьФормуНовогоБизнесПроцесса", "Новые");
-
- КонецЕсли;
-
- ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(
- НаборОписанийТестов,
- ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы,
- СписокИсключений_Существующие, ИменаОсновныхФорм_Объекты_Сервер,
- "ТестДолжен_ОткрытьФормуСуществующегоБизнесПроцесса", "Существующие");
-
- ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(
- НаборОписанийТестов,
- ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы,
- СписокИсключений_Списки, ИменаОсновныхФорм_Списки_Сервер,
- "ТестДолжен_ОткрытьФормуПоПолномуИмениФормы", "Списки");
-
- Если Не ЗначениеЗаполнено(НаборОписанийТестов) И ЗначениеЗаполнено(ОписанияТестов) Тогда
- Для Счетчик = КоличествоЭлементовДо По ОписанияТестов.Количество() - 1 Цикл
- ОписанияТестов.Удалить(ОписанияТестов.ВГраница());
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
-КонецПроцедуры
-
-&НаСервере
-Процедура ДобавитьТестыПереданныхВидовФормДляКаждогоОбъектаМенеджераМетаданных(
- ОписанияТестов, ОсновнойОбъект, ОписаниеВидаМетаданного,
- ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста,
- НастройкаГруппировки)
-
- Счетчик = 0;
-
- Для Каждого МетаОбъект Из ОписаниеВидаМетаданного.Менеджер Цикл
- Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
- Продолжить;
- КонецЕсли;
- Если Лев(МетаОбъект.Имя, СтрДлина("xddTestRunner")) = "xddTestRunner" Тогда
- Продолжить;
- КонецЕсли;
-
- КоличествоЭлементовДо = ОписанияТестов.Количество();
-
- НаборОписанийТестов = ДобавитьГруппировкуЕслиНужно(
- ОписаниеВидаМетаданного.ИмяВидаМнЧисло,
- ОписаниеВидаМетаданного.ИмяВидаЕдЧисло + "." + МетаОбъект.Имя,
- ОписанияТестов, НастройкаГруппировки, Счетчик);
-
- Добавили = ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект,
- МетаОбъект, ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста,
- ПрефиксПредставленияТеста);
-
- Если Не Добавили Тогда
-
- Для Счетчик = КоличествоЭлементовДо По ОписанияТестов.Количество() - 1 Цикл
- ОписанияТестов.Удалить(ОписанияТестов.ВГраница());
- КонецЦикла;
-
- КонецЕсли;
- КонецЦикла;
-КонецПроцедуры
-
-&НаСервере
-Функция ДобавитьТестыПереданныхВидовФормПоОдномОбъектуМетаданных(ОписанияТестов, ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм, имяТеста, ПрефиксПредставленияТеста)
-
- Если ОсновнойОбъект.ЭтоУстаревшийМетаОбъектДляУдаления(МетаОбъект) Тогда
- Возврат Ложь;
- КонецЕсли;
-
- СписокИменМетаФорм = Новый СписокЗначений;
- Успешно = ДобавитьИменаМетаФормДляОдногоОбъектаМетаданного(СписокИменМетаФорм, ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм);
- ДобавитьТестПоПереданнымМетаФормамСсылочногоОбъектаСервер(ОписанияТестов, СписокИменМетаФорм, имяТеста,
- ПрефиксПредставленияТеста);
-
- Возврат Успешно;
-КонецФункции
-
-&НаСервере
-Процедура ДобавитьТестПоПереданнымМетаФормамСсылочногоОбъектаСервер(ОписанияТестов, СписокИменМетаФорм, имяТеста,
- ПрефиксПредставленияТеста)
- Для каждого Элемент Из СписокИменМетаФорм Цикл
- МетаФорма_ПолноеИмя = Элемент.Значение;
- ПредставлениеТеста = МетаФорма_ПолноеИмя;
- Если НЕ ПустаяСтрока(ПрефиксПредставленияТеста) Тогда
- ПредставлениеТеста = МетаФорма_ПолноеИмя + " : " + ПодробноеПредставлениеПрефикса(ПрефиксПредставленияТеста);
- КонецЕсли;
-
- лПараметры = Новый Структура("ПредставлениеТеста,ИмяТеста,Транзакция,Параметр", ПредставлениеТеста, имяТеста,
- Истина, МетаФорма_ПолноеИмя);
- ОписанияТестов.Добавить(лПараметры);
- КонецЦикла;
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Функция ДобавитьИменаМетаФормДляОдногоОбъектаМетаданного(СписокИменМетаФорм, ОсновнойОбъект, МетаОбъект,
- ТолькоУправляемыеФормы, СписокИсключений, ИменаОсновныхФорм)
-
- Если СписокИсключений = Ложь Или СписокИсключений.НайтиПоЗначению(МетаОбъект.Имя) <> Неопределено Тогда
- Возврат Ложь;
- КонецЕсли;
-
- Если Не ПравоДоступа("Просмотр", МетаОбъект) Тогда
- Возврат Ложь;
- КонецЕсли;
-
- Мета_ПолноеИмя = МетаОбъект.ПолноеИмя();
-
- Результат = Ложь;
-
- МетаФормы = ОсновнойОбъект.ПолучитьМетаФормыОбъектаДляПроверки(МетаОбъект, ИменаОсновныхФорм);
-
- ФормыДобавлены = Ложь;
-
- Для каждого МетаФорма Из МетаФормы Цикл
-
- МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя();
-
- // В режиме клиента тестирования не нужно добавлять .Форма,
- // а необходимо указывать имя отчета, для формирования навигационной ссылки.
- Если Не ОсновнойОбъект.ОткрываемФормыНаКлиентеТестирования Тогда
- Если Метаданные.ОсновнаяФормаОтчета = МетаФорма Тогда
- МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".Форма";
-
- // Форма настроек отчета из комплекта БСП не открывается без передачи параметра.
- //ИначеЕсли Метаданные.ОсновнаяФормаНастроекОтчета = МетаФорма Тогда
- // МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".ФормаНастроек";
-
- КонецЕсли;
- КонецЕсли;
-
- //МетаОбъект.Имя <Отчет1>, МетаФорма_ПолноеИмя <Отчет.Отчет1.Форма.УправляемаяФормаОтчета>
- //МетаОбъект.Имя <Отчет2>, МетаФорма_ПолноеИмя <ОбщаяФорма.ФормаОтчета> // в ОФ Отчет.Отчет2.Форма
-
- Если ТолькоУправляемыеФормы Тогда
- Если Не ЭтоУправляемаяФорма(МетаФорма) Тогда
- Продолжить;
- КонецЕсли;
- КонецЕсли;
-
- // исторически в списке исключений имя формы без имени коллекции объектов метаданных
- // "Справочник1.Форма.ФормаЭлемента", а не "Справочник.Справочник1.Форма.ФормаЭлемента"
- Если СписокИсключений.НайтиПоЗначению(Сред(МетаФорма_ПолноеИмя, Найти(МетаФорма_ПолноеИмя, ".") + 1))
- <> Неопределено Тогда
- Продолжить;
- КонецЕсли;
-
- // TODO Бессмысленно открывать для отчетов основную форму отчета, настроек, варианта из конфигурации
- Если Лев(НРег(МетаФорма_ПолноеИмя), СтрДлина(Мета_ПолноеИмя)) <> НРег(Мета_ПолноеИмя) Тогда
- Продолжить;
- КонецЕсли;
-
- ФормыДобавлены = Истина;
-
- СписокИменМетаФорм.Добавить(МетаФорма_ПолноеИмя);
- Результат = Истина;
-
- КонецЦикла;
-
- //добавить общие формы к отчётам, если они не указаны
- ДлинаСловаОтчет = 6;
- Если Метаданные.Отчеты.Найти(МетаОбъект.Имя) <> Неопределено И Лев(Мета_ПолноеИмя, ДлинаСловаОтчет) = "Отчет." Тогда
- ФормыДобавлены = ДобавитьОбщиеФормыДляОтчетов(СписокИменМетаФорм, МетаОбъект, ОсновнойОбъект.ОткрываемФормыНаКлиентеТестирования);
- Если НЕ Результат Тогда
- Результат = ФормыДобавлены;
- КонецЕсли;
- КонецЕсли;
-
- // Добавляем наименование отчета для режима клиента тестирования, без указания формы.
- // TODO Бессмысленно открывать для отчетов основную форму отчета, настроек, варианта из конфигурации.
- // Также нужно добавить стандартные формы для всяких объектов - справочники, документы
- Если Не ФормыДобавлены
- И ОсновнойОбъект.ОткрываемФормыНаКлиентеТестирования Тогда
- СписокИменМетаФорм.Добавить(Мета_ПолноеИмя);
- Результат = Истина;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-//}
-
-//{ РаботаСФормами
-
-&НаСервереБезКонтекста
-Функция ДобавитьОбщиеФормыДляОтчетов(СписокИменМетаФорм, МетаОбъект, ОткрываемФормыНаКлиентеТестирования)
-
- Результат = Ложь;
-
- // В режиме клиента тестирования не нужно добавлять .Форма,
- // а необходимо указывать имя отчета, для формирования навигационной ссылки.
- Если ОткрываемФормыНаКлиентеТестирования Тогда
- СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя());
- Результат = Истина;
- Возврат Результат;
- КонецЕсли;
-
- Если ПолучитьФормуОбъекта(МетаОбъект, "ОсновнаяФорма") = Неопределено
- И ПолучитьФормуОбъекта(Метаданные, "ОсновнаяФормаОтчета") <> Неопределено Тогда
-
- СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".Форма");
- Результат = Истина;
-
- КонецЕсли;
-
- // Форма настроек отчета из комплекта БСП не открывается без передачи параметра.
- //Если ПолучитьФормуОбъекта(МетаОбъект, "ОсновнаяФормаНастроек") = Неопределено
- // И ПолучитьФормуОбъекта(Метаданные, "ОсновнаяФормаНастроекОтчета") <> Неопределено Тогда
- //
- // СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".ФормаНастроек");
- // Результат = Истина;
- //
- //КонецЕсли;
-
- ФормаВарианта = ПолучитьФормуОбъекта(МетаОбъект, "ОсновнаяФормаВарианта");
- Если ФормаВарианта = Неопределено Тогда
- Если ПолучитьФормуОбъекта(Метаданные, "ОсновнаяФормаВариантаОтчета") <> Неопределено Тогда
-
- СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".ФормаВарианта");
- Результат = Истина;
-
- КонецЕсли;
- Иначе
- // Общая форма "ВариантыОтчета" не открываются самостоятельно.
- //СписокИменМетаФорм.Добавить(ФормаВарианта.ПолноеИмя());
- СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".ФормаВарианта");
- Результат = Истина;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ПолучитьФормуОбъекта(ОбъектФормы, ИмяФормы)
-
- Попытка
- Результат = ОбъектФормы[ИмяФормы];
- Исключение
- Результат = Неопределено;
- КонецПопытки;
-
- Возврат Результат;
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ИспользоватьОбычныеФормыВТолстомКлиентеВУправляемомРежимеСервер()
- Возврат Метаданные.ИспользоватьОбычныеФормыВУправляемомПриложении;
-КонецФункции
-
-&НаКлиенте
-Процедура ТестироватьФорму(ПолноеИмяФормы, ПараметрыФормы) Экспорт
- Если Объект.ВыводитьСообщенияВЖурналРегистрации Тогда
- ВыполнитьЗаписьВЖурналРегистрации(ПолноеИмяФормы);
- КонецЕсли;
-
- Если Объект.ОткрываемФормыНаКлиентеТестирования Тогда
- ТестироватьФормуНаКлиентеТестирования(ПолноеИмяФормы, ПараметрыФормы);
- Иначе
- ТестироватьФормуВТекущемКлиенте(ПолноеИмяФормы, ПараметрыФормы);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестироватьФормуВТекущемКлиенте(ПолноеИмяФормы, ПараметрыФормы) Экспорт
-
- ПредыдущиеОкна = ПолучитьОкна();
-
- Попытка
-
- // К сожалению, здесь часто исключения не ловятся
- //https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154
-
- ТестируемаяФорма = ОткрытьФорму(ПолноеИмяФормы, ПараметрыФормы,, Новый УникальныйИдентификатор);
-
- Исключение
- ИнфоОшибки = ИнформацияОбОшибке();
-
- Если Не ПропускаемОшибкуПоТекстуИсключенияСервер(ИнфоОшибки.Описание) Тогда
- ВызватьИсключение;
- КонецЕсли;
-
- Возврат;
- КонецПопытки;
-
- Если ТестируемаяФорма = Неопределено Или Не ТестируемаяФорма.Открыта() Тогда
-
- НеПроверятьФорму = ТестируемаяФорма = Неопределено;
-
- НовыеОкна = ПолучитьОкна();
-
- МассивНовыхОкон = Новый Массив;
- Для Каждого НовоеОкно Из НовыеОкна Цикл
- НашлиОкно = Ложь;
- Для Каждого ОкноДо Из ПредыдущиеОкна Цикл
- Если ОкноДо.Заголовок = НовоеОкно.Заголовок Тогда
- НашлиОкно = Истина;
- Продолжить;
- КонецЕсли;
- КонецЦикла;
-
- Если НашлиОкно Тогда
- Продолжить;
- КонецЕсли;
-
- МассивНовыхОкон.Добавить(НовоеОкно);
- КонецЦикла;
-
- Если МассивНовыхОкон.Количество() = 0 И НеПроверятьФорму Тогда
- Возврат;
- КонецЕсли;
-
- Если МассивНовыхОкон.Количество() > 0 Тогда
- МассивФорм = МассивНовыхОкон[0].Содержимое;
- Если МассивНовыхОкон.Количество() = 0 И НеПроверятьФорму Тогда
- Возврат;
- КонецЕсли;
- Если МассивНовыхОкон.Количество() > 0 Тогда
- ТестируемаяФорма = МассивФорм[0];
- КонецЕсли;
- КонецЕсли;
-
- КонецЕсли;
-
- Утверждения.Проверить(ТестируемаяФорма.Открыта(), "ТестируемаяФорма """+ПолноеИмяФормы
- +""" не открылась, а должна была открыться");
-
- Если ТипЗнч(ТестируемаяФорма) = Тип("УправляемаяФорма") Тогда
- ТестируемаяФорма.ОбновитьОтображениеДанных();
- Иначе
- ТестируемаяФорма.Обновить();
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, СсылочныйОбъект)
- ПараметрыФормы = Новый Структура("Ключ", СсылочныйОбъект);
- ТестироватьФорму(Мета_ПолноеИмя, ПараметрыФормы);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗакрытьФорму()
- Если ТипЗнч(ТестируемаяФорма) <> Тип("УправляемаяФорма") Тогда
- Возврат;
- КонецЕсли;
- ТестируемаяФорма.Модифицированность = Ложь;
- Если ТестируемаяФорма.Открыта() Тогда
- ТестируемаяФорма.Модифицированность = Ложь;
- //Попытка
- ТестируемаяФорма.Закрыть();
- //Исключение
- // Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- // ЗакрытьФормуБезусловноСОтменойТранзакции(ТестируемаяФорма);
- // //Если ТранзакцияАктивна() Тогда
- // // ОтменитьТранзакцию();
- // //КонецЕсли;
- // // //ДобавитьСтрокуРезультата(ИмяОперации, ИнформацияОбОшибке());
- // //НачатьТранзакцию();
- // //ТестируемаяФорма.УстановитьДействие("ПередЗакрытием", Неопределено);
- // //ТестируемаяФорма.УстановитьДействие("ПриЗакрытии", Неопределено);
- // //ТестируемаяФорма.Закрыть();
- // ВызватьИсключение Ошибка;
- //КонецПопытки;
- Иначе
- Попытка
- ТестируемаяФорма.Закрыть();
- Исключение
- КонецПопытки;
- КонецЕсли;
- ТестируемаяФорма = "";
-
-КонецПроцедуры
-
-&НаСервере
-Процедура СоздатьИменаОсновныхФорм()
- ОсновнойОбъект = Объект();
- ОсновнойОбъект.СоздатьИменаОсновныхФорм();
- ОсновнойОбъект.ВидыМетаданных = ОсновнойОбъект.ВидыМетаданных();
- ОсновнойОбъект.ВидыПроверок = ОсновнойОбъект.ВидыПроверок();
- ОсновнойОбъект.СпособыГруппировки = ОсновнойОбъект.СпособыГруппировки();
- ЗначениеВРеквизитФормы(ОсновнойОбъект, "Объект");
-КонецПроцедуры
-
-&НаСервере
-Функция ИменаОсновныхФорм_Объекты_Сервер()
- Возврат Объект().мИменаОсновныхФорм_Объекты;
-КонецФункции
-
-&НаСервере
-Функция мИменаОсновныхФорм_Списки_Сервер()
- Возврат Объект().мИменаОсновныхФорм_Списки;
-КонецФункции
-
-&НаСервере
-Функция мИменаОсновныхФорм_Сервер()
- Возврат Объект().мИменаОсновныхФорм;
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ЭтоУправляемаяФорма(МетаФорма)
- Возврат МетаФорма <> Неопределено И МетаФорма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая;
-КонецФункции
-
-//}
-
-//{ РаботаСНастройками
-
-&НаКлиенте
-Функция КлючНастройки() Экспорт
- Возврат "smoke";
-КонецФункции
-
-&НаКлиенте
-Процедура ЗагрузитьНастройки()
-
- ПутьНастройки = КлючНастройки();
-
- //Отладка(СтрШаблон("Дымовые ФлагОтладки %1", КонтекстЯдра.Объект.ФлагОтладки));
-
- ПлагинНастроек = КонтекстЯдра.Плагин("Настройки");
-
- ПлагинТестКлиенты = КонтекстЯдра.Плагин("ТестКлиенты");
- НастройкиМодальныхОкон = ПлагинНастроек.ПолучитьНастройку(ПлагинТестКлиенты.КлючНастройкиМодальныхОкон());
-
- Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки);
- Если Не ЗначениеЗаполнено(Объект.Настройки) Тогда
- Объект.Настройки = Новый Структура;
- КонецЕсли;
-
- Если ЕстьНастройка("ВыводитьСообщенияВЖурналРегистрации", Объект.Настройки) Тогда
- Объект.ВыводитьСообщенияВЖурналРегистрации = Объект.Настройки.ВыводитьСообщенияВЖурналРегистрации;
- //Отладка(СтрШаблон("ВыводитьСообщенияВЖурналРегистрации %1", Объект.ВыводитьСообщенияВЖурналРегистрации));
- КонецЕсли;
-
- Если ЕстьНастройка("ОткрываемФормыНаКлиентеТестирования", Объект.Настройки) Тогда
- Объект.ОткрываемФормыНаКлиентеТестирования = Объект.Настройки.ОткрываемФормыНаКлиентеТестирования;
- КонецЕсли;
-
- НаборНастроекПоУмолчанию = СоздатьНаборНастроекПоУмолчанию();
-
- ЗаменитьНесуществующиеНастройкиЗначениямиПоУмолчанию(Объект.Настройки, НаборНастроекПоУмолчанию);
-
- Если ЗначениеЗаполнено(НастройкиМодальныхОкон) Тогда
- Объект.Настройки.Вставить(ПлагинТестКлиенты.КлючНастройкиМодальныхОкон(), НастройкиМодальныхОкон);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервере
-Функция СоздатьНаборНастроекПоУмолчанию() Экспорт
-
- Возврат Объект().СоздатьНаборНастроекПоУмолчанию();
-
-КонецФункции // ()
-
-&НаКлиенте
-Процедура ЗаменитьНесуществующиеНастройкиЗначениямиПоУмолчанию(Знач Настройки, Знач НаборНастроекПоУмолчанию)
-
- Для каждого КлючЗначение Из НаборНастроекПоУмолчанию Цикл
- Если Не ЕстьНастройка(КлючЗначение.Ключ) Тогда
- Настройки.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-// Позволяет одним вызовом получить значение из вложенных друг в друга структур
-// по строке ключей, объединенных точкой.
-//
-// Параметры:
-// ПутьНастроек - Строка - Путь или ключ настроек
-// СтруктураНастроек - Произвольный, Неопределено - полученное значение
-// ( необязательно )
-//
-// Возвращаемое значение:
-// Булево - Истина, если ключ/путь найден, иначе Ложь
-//
-// Пример:
-// Структура = Новый Структура("Ключ1", Новый Структура("Ключ2", Новый Структура("Ключ3", 42)));
-// РезультатПроверки = ЕстьНастройка("Ключ1.Ключ2.Ключ3", ВремЗнач);
-// В результате получим ВремЗнач == 42
-//
-&НаКлиенте
-Функция ЕстьНастройка(Знач ПутьНастроек, СтруктураНастроек = Неопределено) Экспорт
-
- Если СтруктураНастроек = Неопределено Тогда
- СтруктураНастроек = Объект.Настройки;
- КонецЕсли;
-
- Возврат КонтекстЯдра.Плагин("Настройки").ЕстьНастройка(ПутьНастроек, СтруктураНастроек);
-
-КонецФункции
-
-&НаКлиенте
-Функция НужноВыполнятьТест()
-
- ЗначениеПоУмолчанию = Истина;
-
- ЗагрузитьНастройки();
-
- Настройки = ОБъект.Настройки;
-
- Если Не ЗначениеЗаполнено(Настройки) Тогда
- Возврат ЗначениеПоУмолчанию;
- КонецЕсли;
-
- КлючНастройки = КлючНастройки();
-
- ВыполнятьТест = Неопределено;
- Если ТипЗнч(Настройки) = Тип("Структура")
- И Настройки.Свойство("Используется", ВыполнятьТест) Тогда
-
- Возврат ВыполнятьТест = Истина;
- КонецЕсли;
-
- Возврат ЗначениеПоУмолчанию;
-
-КонецФункции
-
-&НаКлиенте
-Функция ВключенСтрогийПорядокВыполнения()
- Если ЕстьНастройка("СтрогийПорядокВыполнения", Объект.Настройки)
- И Объект.Настройки.СтрогийПорядокВыполнения = Ложь Тогда
- Возврат Ложь;
- КонецЕсли;
- Возврат Истина;
-КонецФункции
-
-&НаСервере
-Функция ПолучитьНастройкуГруппировки()
- Возврат Объект().ПолучитьНастройкуГруппировки(Объект.Настройки);
-КонецФункции
-
-&НаКлиенте
-Функция ВидМетаданныхИсключенИзТестирования(ВидМетаданных)
- Если ЕстьНастройка(ВидМетаданных) Тогда
- Возврат (ТипЗнч(Объект.Настройки[ВидМетаданных]) = Тип("Булево") И НЕ Объект.Настройки[ВидМетаданных]);
- КонецЕсли;
- Возврат Ложь;
-КонецФункции
-
-&НаСервере
-Функция ПропускаемОшибкуПоТекстуИсключенияСервер(Знач ТекстИсключения)
- Возврат Объект().ПропускаемОшибкуПоТекстуИсключения(ТекстИсключения);
-КонецФункции
-
-//}
-
-//{ блок юнит-тестов - САМИ ТЕСТЫ
-
-&НаКлиенте
-Процедура ПередЗапускомТеста() Экспорт
-
- СоздаваемыйЭлемент = Неопределено;
-
- ОбновитьПовторноИспользуемыеЗначения();
-
- НужноИсключениеЕслиНеНайденоДокументов = Ложь;
-
- СоздатьИменаОсновныхФорм();
-
- ПлагинТестКлиенты = КонтекстЯдра.Плагин("ТестКлиенты");
- Если ЕстьНастройка(ПлагинТестКлиенты.КлючНастройкиМодальныхОкон(), Объект.Настройки) Тогда
- ПлагинТестКлиенты.УстановитьНастройкиМодальныхОкон(Объект.Настройки[ПлагинТестКлиенты.КлючНастройкиМодальныхОкон()]);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеЗапускаТеста() Экспорт
-
- ЗакрытьФорму();
- Попытка
- УдалитьСозданныеОбъекты(СоздаваемыйЭлемент);
- Исключение
- КонецПопытки;
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПропуститьТестФормы(Знач ПричинаПропускаТеста) Экспорт
- КонтекстЯдра.ПропуститьТест(ПричинаПропускаТеста);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ОткрытьФормуПоПолномуИмениФормы(ПолноеИмяФормы) Экспорт
- ТестироватьФорму(ПолноеИмяФормы, Неопределено);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаСправочника(Мета_ПолноеИмя) Экспорт
- СуществующийЭлемент = ПолучитьОбъектСуществующегоЭлементаСправочникаИВернутьСсылкуСервер(Мета_ПолноеИмя);
- Если ЗначениеЗаполнено(СуществующийЭлемент) Тогда
- ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, СуществующийЭлемент);
- Иначе
- СоздаваемыйЭлемент = СоздатьЭлементИВернутьСсылкуСервер(Мета_ПолноеИмя);
- Если ЗначениеЗаполнено(СоздаваемыйЭлемент) Тогда
- ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, СоздаваемыйЭлемент);
- КонецЕсли;
- КонецЕсли;
-КонецПроцедуры
-
-&НаСервере
-Функция СоздатьЭлементИВернутьСсылкуСервер(Мета_ПолноеИмя)
- ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя);
-
- ОсновнойОбъект = Объект();
- Возврат ОсновнойОбъект.СоздатьЭлементИВернутьСсылку(ИД, "существующий");
-
-КонецФункции
-
-&НаКлиенте
-Процедура ТестДолжен_ОткрытьФормуНовогоЭлементаСправочника(Мета_ПолноеИмя) Экспорт
- ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Неопределено);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ОткрытьФормуНовогоДокумента(Мета_ПолноеИмя) Экспорт
- ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Неопределено);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ОткрытьФормуСуществующегоЭлементаДокумента(Мета_ПолноеИмя) Экспорт
- Док = ПолучитьСуществующийДокументОбъектИВернутьСсылкуСервер(Мета_ПолноеИмя);
- Если Док <> Неопределено Тогда
- ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Док);
- КонецЕсли;
-КонецПроцедуры
-
-&НаСервере
-Функция ПолучитьСуществующийДокументОбъектИВернутьСсылкуСервер(Мета_ПолноеИмя)
- ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя);
-
- ОсновнойОбъект = Объект();
- Док = ОсновнойОбъект.ПолучитьСуществующийДокументОбъектИВернутьСсылку(ИД, НужноИсключениеЕслиНеНайденоДокументов,
- "ТестДолжен_ОткрытьФормуСуществующегоДокумента");
- Возврат Док;
-КонецФункции
-
-&НаСервере
-Функция ПолучитьОбъектСуществующегоЭлементаСправочникаИВернутьСсылкуСервер(Мета_ПолноеИмя)
- ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя);
-
- ОсновнойОбъект = Объект();
-
- Отбор = Новый Структура;
- МетаданныеОбъекта = Метаданные.Справочники[ИД];
- Если МетаданныеОбъекта.Иерархический
- И МетаданныеОбъекта.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Тогда
- Отбор.Вставить("ЭтоГруппа", "Ложь");
- Если МетаданныеОбъекта.ОсновнаяФормаГруппы <> Неопределено
- И Найти(Мета_ПолноеИмя, МетаданныеОбъекта.ОсновнаяФормаГруппы.Имя) <> 0 Тогда
- Отбор.Вставить("ЭтоГруппа", "Истина");
- КонецЕсли;
- КонецЕсли;
-
- Элем = ОсновнойОбъект.ПолучитьОбъектСуществующегоЭлементаСправочникаИВернутьСсылку(ИД, Ложь,
- "ТестДолжен_ОткрытьФормуСуществующегоЭлементСправочника", Отбор);
- Возврат Элем;
-КонецФункции
-
-&НаКлиенте
-Процедура ТестДолжен_ОткрытьФормуНовогоБизнесПроцесса(Мета_ПолноеИмя) Экспорт
- ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, Неопределено);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ОткрытьФормуСуществующегоБизнесПроцесса(Мета_ПолноеИмя) Экспорт
- СуществующийЭлемент = ПолучитьОбъектСуществующегоБизнесПроцессаИВернутьСсылкуСервер(Мета_ПолноеИмя);
- Если ЗначениеЗаполнено(СуществующийЭлемент) Тогда
- ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, СуществующийЭлемент);
- Иначе
- СоздаваемыйЭлемент = СоздатьБизнесПроцессИВернутьСсылкуСервер(Мета_ПолноеИмя);
- Если ЗначениеЗаполнено(СоздаваемыйЭлемент) Тогда
- ТестироватьФормуСсылочногоОбъекта(Мета_ПолноеИмя, СоздаваемыйЭлемент);
- КонецЕсли;
- КонецЕсли;
-КонецПроцедуры
-
-&НаСервере
-Функция ПолучитьОбъектСуществующегоБизнесПроцессаИВернутьСсылкуСервер(Мета_ПолноеИмя)
- ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя);
-
- ОсновнойОбъект = Объект();
- Элем = ОсновнойОбъект.ПолучитьОбъектСуществующегоБизнесПроцессаИВернутьСсылку(ИД, Ложь,
- "ТестДолжен_ОткрытьФормуСуществующегоБизнесПроцесса");
- Возврат Элем;
-КонецФункции
-
-&НаСервере
-Функция СоздатьБизнесПроцессИВернутьСсылкуСервер(Мета_ПолноеИмя)
- ИД = ПолучитьВидМетаданного(Мета_ПолноеИмя);
-
- ОсновнойОбъект = Объект();
- Возврат ОсновнойОбъект.СоздатьБизнесПроцессИВернутьСсылку(ИД);
-КонецФункции
-
-// проверка бага https://github.com/xDrivenDevelopment/xUnitFor1C/issues/154
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьБагПлатформыПриОткрытииУправляемойФормыПриОткрытииКоторойЕстьИсключение() Экспорт
- Мета_ПолноеИмя = "Обработка.ТестОбработка_Форма_ИсключениеПриОткрытии.Форма.УправляемаяФорма";
- ошибка ="";
- Попытка
- ОткрытьФорму(Мета_ПолноеИмя);
- Исключение
- ошибка = ОписаниеОшибки();
- КонецПопытки;
- Утверждения.ПроверитьЗаполненность(ошибка, "Ошибка");
-КонецПроцедуры
-
-//}
-
-//{ Переопределение исключений, чтобы не открывать формы.
-//}
-
-//{ ВспомогательныеМетоды
-
-&НаСервереБезКонтекста
-Процедура УдалитьСозданныеОбъекты(СоздаваемыйЭлемент)
-
- Если СоздаваемыйЭлемент = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Попытка
-
- СозданныйОбъект = СоздаваемыйЭлемент.ПолучитьОбъект();
-
- Если ЗначениеЗаполнено(СоздаваемыйЭлемент.Владелец) Тогда
-
- Если СоздаваемыйЭлемент.Метаданные().Владельцы.Количество() > 0
- И Не СоздаваемыйЭлемент.Владелец.Пустая() Тогда
- УдалитьСозданныеОбъекты(СозданныйОбъект.Владелец);
- Возврат;
- КонецЕсли;
-
- КонецЕсли;
-
- СозданныйОбъект.Удалить();
-
- Исключение
-
- ИнформацияОбОшибке = ИнформацияОбОшибке();
- ЗаписьЖурналаРегистрации(
- НСтр("ru='Тесты_ОткрытиеФормКонфигурации'", "ru"),
- УровеньЖурналаРегистрации.Ошибка,
- СозданныйОбъект,
- СоздаваемыйЭлемент,
- ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
- ВызватьИсключение КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
-
- КонецПопытки;
-
- СоздаваемыйЭлемент = Неопределено;
-
-КонецПроцедуры
-
-&НаСервере
-Функция Объект()
- Возврат РеквизитФормыВЗначение("Объект");
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция ПолучитьВидМетаданного(Мета_ПолноеИмя)
- //Если ВключенаАнглийскаяЛокализация() Тогда
- // СтрокаФорма = ".Form.";
- //Иначе
- // СтрокаФорма = ".Форма.";
- //КонецЕсли;
-
- Поз = Найти(Мета_ПолноеИмя, ".Форма.");
- Если Поз = 0 Тогда
- Поз = Найти(Мета_ПолноеИмя, ".Form.");
- КонецЕсли;
- Если Поз <> 0 Тогда
- ИД = Лев(Мета_ПолноеИмя, Поз - 1);
- //TODO локализация Английская - Мета_ПолноеИмя "Catalog.ПростойСправочник.Form.УпрФормаЭлемента" String;
- ИД = Сред(ИД, Найти(ИД, ".") + 1);
- Иначе
- // Если нет формы и мы открываем по имени справочника,
- // то в качестве его ИД просто берем 2ю часть наименования //
- ИД = Прав(Мета_ПолноеИмя, СтрДлина(Мета_ПолноеИмя) - Найти(Мета_ПолноеИмя,"."));
- КонецЕсли;
-
- Возврат ИД;
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ИмяМетодаПропускаТестов()
- Возврат "ТестДолжен_ПропуститьТестФормы";
-КонецФункции
-
-&НаСервере
-Процедура ВыполнитьЗаписьВЖурналРегистрации(ПолноеИмяФормы)
- ЗаписьЖурналаРегистрации(Объект().Метаданные().Синоним, УровеньЖурналаРегистрации.Информация, , ,
- "Операция: " + ПолноеИмяФормы);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура Отладка(Знач Сообщение)
- КонтекстЯдра.Отладка(Сообщение);
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Функция ВключенаАнглийскаяЛокализация()
- ВариантВстроенногоЯзыкаАнглийский = Ложь;
- Если Metadata.ScriptVariant = Metadata.ObjectProperties.ScriptVariant.English Или
- ТекущийЯзыкСистемы() = "en" Тогда
-
- ВариантВстроенногоЯзыкаАнглийский = Истина;
- КонецЕсли;
-
- Возврат ВариантВстроенногоЯзыкаАнглийский;
-КонецФункции
-
-//}
-
-//{ Тесты с помощью клиента тестирования
-
-&НаКлиенте
-Процедура ТестироватьФормуНаКлиентеТестирования(ПолноеИмяФормы, ПараметрыФормы) Экспорт
-
- ПлагинТестКлиенты = КонтекстЯдра.Плагин("ТестКлиенты");
- ТестКлиент = ПлагинТестКлиенты.ТестКлиентПоУмолчанию();
- ОсновноеОкно = ОсновноеОкно(ТестКлиент);
-
- ОткрытыеОкнаДо = ПлагинТестКлиенты.ОткрытыеОкна(ТестКлиент);
-
- Попытка
- // Если ссылка задана - открываем просто форму Элемента/Документа
- СсылкаНаОбъект = Неопределено;
- Если ТипЗнч(ПараметрыФормы) = Тип("Структура") И ПараметрыФормы.Свойство("Ключ",СсылкаНаОбъект)
- И ЗначениеЗаполнено(СсылкаНаОбъект) Тогда
- ПарамНавигационнаяСсылка = ПолучитьНавигационнуюСсылку(СсылкаНаОбъект);
- Иначе
- // Иначе открываем просто по контексту - для справочника или документа это будет новый объект //
- ПарамНавигационнаяСсылка = "e1cib/app/" + ПолноеИмяФормы;
- КонецЕсли;
- ОсновноеОкно.ВыполнитьКоманду(ПарамНавигационнаяСсылка);
- Исключение
- ВызватьИсключение КонтекстЯдра.СтрШаблон_("Не удалось выполнить команду %1 на тест-клиенте.
- |Возможно, сеанс тест-клиента заблокирован модальным окном", ПарамНавигационнаяСсылка);
- КонецПопытки;
-
- ПлагинТестКлиенты.ИдентифицироватьОкноПредупреждение(ТестКлиент, ПереходПоКнопкеКомандногоИнтерфейса(), Ложь);
-
- ПлагинТестКлиенты.ЗакрытьВсеОткрытыеОкна(ТестКлиент);
-
- ПлагинТестКлиенты.ПроверитьНаНовыеМодальныеОкна(ТестКлиент, ОткрытыеОкнаДо);
-
-КонецПроцедуры
-
-// TODO исправить дублирование кода с тестами командного интерфейса и плагином ТестКлиент
-
-&НаКлиенте
-Функция ОсновноеОкно(ТестКлиент)
-
- Для Каждого ТестируемоеОкно Из ТестКлиент.ПолучитьПодчиненныеОбъекты() Цикл
- Если ТипЗнч(ТестируемоеОкно) = Тип("ТестируемоеОкноКлиентскогоПриложения")
- И ТестируемоеОкно.Основное Тогда
- Возврат ТестируемоеОкно;
- КонецЕсли;
- КонецЦикла;
-
- ВызватьИсключение "Не удалось найти основное окно";
-
-КонецФункции
-
-&НаКлиенте
-Функция ПереходПоКнопкеКомандногоИнтерфейса()
-
- Возврат "Переход по кнопке командного интерфейса";
-
-КонецФункции
-
-&НаКлиенте
-Функция ТекстИсключения(ОкноПредупреждение)
-
- ТекстыЗаголовков = Новый Массив;
- Для Каждого ТекОбъект Из ОкноПредупреждение.НайтиОбъекты(Тип("ТестируемоеПолеФормы")) Цикл
- ТекстыЗаголовков.Добавить(ТекОбъект.ТекстЗаголовка);
- КонецЦикла;
-
- Возврат СтрСоединить_(ТекстыЗаголовков, " ");
-
-КонецФункции
-
-//}
-
-//&НаКлиентеНаСервереБезКонтекста
-Функция СтрСоединить_(МассивЭлементов, Символ = "") Экспорт
- СтрокаРезультат = "";
- Если МассивЭлементов.Количество() > 0 Тогда
- СтрокаРезультат = МассивЭлементов.Получить(0) + Символ;
- Для сч = 0 по МассивЭлементов.ВГраница() Цикл
- Элемент = МассивЭлементов.Получить(сч);
- Если ЗначениеЗаполнено(Элемент) Тогда
- СтрокаРезультат = МассивЭлементов.Получить(сч) + Символ;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
-
- Возврат СтрокаРезультат;
-
-КонецФункции
diff --git "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.xml" "b/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.xml"
deleted file mode 100644
index 9e2cd62..0000000
--- "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221.xml"
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- СозданиеОдногоПользователяИБ
-
-
- ru
- Создание одного пользователя ИБ
-
-
-
- SpreadsheetDocument
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221/Ext/Template.xml" "b/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221/Ext/Template.xml"
deleted file mode 100644
index ca7803b..0000000
--- "a/src/tests/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Templates/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\236\320\264\320\275\320\276\320\263\320\276\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\230\320\221/Ext/Template.xml"
+++ /dev/null
@@ -1,351 +0,0 @@
-
-
-
- ru
- ru
-
- ru
- Русский
- Русский
-
-
- en
- English
- English
-
-
-
- 7
-
- 0
-
- 1
-
-
-
- 1
-
- 2
-
-
-
- 2
-
- 3
-
-
-
- 3
-
- 4
-
-
-
- 4
-
- 5
-
-
-
- 5
-
- 6
-
-
-
- 6
-
- 7
-
-
-
-
- 0
-
-
-
- 0
-
-
- ru
- Тип
-
-
-
-
-
-
- 0
-
-
- ru
- Вид
-
-
-
-
-
-
- 0
-
-
- ru
- ИмяПеременной
-
-
-
-
-
-
- 0
-
-
- ru
- ТЧ
-
-
-
-
-
-
- 0
-
-
- ru
- Реквизит
-
-
-
-
-
-
- 0
-
-
- ru
- Значение
-
-
-
-
-
-
- 0
-
-
- ru
- Режим
-
-
-
-
-
-
-
- 1
-
-
-
- 0
-
-
- ru
- ПользовательИБ
-
-
-
-
-
-
- 0
-
-
-
-
-
- 0
-
-
- ru
- Пользователь1
-
-
-
-
-
-
-
- 2
-
-
- 4
-
- 0
-
-
- ru
- Имя
-
-
-
-
-
-
- 0
-
-
- ru
- ТестИмя
-
-
-
-
-
-
-
- 3
-
-
- 4
-
- 0
-
-
- ru
- ОсновнойИнтерфейс
-
-
-
-
-
-
- 0
-
-
- ru
- СтаршийРегион
-
-
-
-
-
-
-
- 4
-
-
- 4
-
- 0
-
-
- ru
- Пароль
-
-
-
-
-
-
-
- 5
-
-
- 3
-
- 0
-
-
- ru
- Роли
-
-
-
-
-
-
-
- 6
-
-
- 4
-
- 0
-
-
- ru
- Роль
-
-
-
-
-
-
- 0
-
-
- ru
- тестДоступКВнешнимОбработкам
-
-
-
-
-
-
-
- 7
-
-
- 4
-
- 0
-
-
- ru
- Роль
-
-
-
-
-
-
- 0
-
-
- ru
- СтаршийРегион
-
-
-
-
-
-
- true
- 8
- 8
- 8
-
- 80
-
-
- 104
-
-
- 129
-
-
- 24
-
-
- 97
-
-
- 155
-
-
- 90
-
-
- 72
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201.xml"
deleted file mode 100644
index ec7eb3c..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201.xml"
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
- c3831ec8-d8d5-4f93-8a22-f9bfae07327f
- c2c16537-e4b3-4069-a62e-c997e4e3541a
-
-
- be5c37cb-b325-4947-a4e6-a467493e6913
- ca433c07-6469-4b9c-b801-04a95f2ab91b
-
-
-
- тесты_КомандныйИнтерфейс
-
-
- ru
- Тесты командный интерфейс
-
-
-
- ExternalDataProcessor.тесты_КомандныйИнтерфейс.Form.Форма
-
-
-
-
-
- СтрогийПорядокВыполнения
-
-
- ru
- Строгий порядок выполнения
-
-
-
-
- xs:boolean
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
- Настройки
-
-
- ru
- Настройки
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
deleted file mode 100644
index 3280e5a..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
deleted file mode 100644
index 6ed4709..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,133 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 7004b90..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,679 +0,0 @@
-
-&НаКлиенте
-Перем КонтекстЯдра;
-
-&НаКлиенте
-Перем Утверждения;
-
-&НаКлиенте
-Перем ПлагинТестКлиенты;
-
-&НаКлиенте
-Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
- КонтекстЯдра = КонтекстЯдраПараметр;
- Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
- ПлагинТестКлиенты = КонтекстЯдра.Плагин("ТестКлиенты");
-
- ЗагрузитьНастройки();
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗагрузитьНастройки()
-
- ПутьНастройки = КлючНастройки();
-
- Если ЗначениеЗаполнено(Объект.Настройки) Тогда
- Возврат;
- КонецЕсли;
-
- ПлагинНастроек = КонтекстЯдра.Плагин("Настройки");
-
- НастройкиМодальныхОкон = ПлагинНастроек.ПолучитьНастройку(ПлагинТестКлиенты.КлючНастройкиМодальныхОкон());
-
- Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки);
- Если Не ЗначениеЗаполнено(Объект.Настройки) Тогда
- Объект.Настройки = Новый Структура;
- КонецЕсли;
-
- НаборНастроекПоУмолчанию = СоздатьНаборНастроекПоУмолчанию();
-
- ЗаменитьНесуществующиеНастройкиЗначениямиПоУмолчанию(Объект.Настройки, НаборНастроекПоУмолчанию);
-
- Если ЕстьНастройка("СтрогийПорядокВыполнения", Объект.Настройки) Тогда
- Объект.СтрогийПорядокВыполнения = Объект.Настройки.СтрогийПорядокВыполнения;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(НастройкиМодальныхОкон) Тогда
- Объект.Настройки.Вставить(ПлагинТестКлиенты.КлючНастройкиМодальныхОкон(), НастройкиМодальныхОкон);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ЕстьНастройка(Знач ПутьНастроек, СтруктураНастроек = Неопределено) Экспорт
-
- Если СтруктураНастроек = Неопределено Тогда
- СтруктураНастроек = Объект.Настройки;
- КонецЕсли;
-
- Возврат КонтекстЯдра.Плагин("Настройки").ЕстьНастройка(ПутьНастроек, СтруктураНастроек);
-
-КонецФункции
-
-&НаСервере
-Функция СоздатьНаборНастроекПоУмолчанию() Экспорт
-
- Рез = Новый Структура;
-
- Рез.Вставить("СтрогийПорядокВыполнения", Истина);
-
- Возврат Новый ФиксированнаяСтруктура(Рез);
-
-КонецФункции
-
-&НаКлиенте
-Процедура ЗаменитьНесуществующиеНастройкиЗначениямиПоУмолчанию(Знач Настройки, Знач НаборНастроекПоУмолчанию)
-
- Для каждого КлючЗначение Из НаборНастроекПоУмолчанию Цикл
- Если Не ЕстьНастройка(КлючЗначение.Ключ) Тогда
- Настройки.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция НужноВыполнятьТест()
-
- ЗначениеПоУмолчанию = Истина;
-
- ЗагрузитьНастройки();
-
- Настройки = ОБъект.Настройки;
-
- Если Не ЗначениеЗаполнено(Настройки) Тогда
- Возврат ЗначениеПоУмолчанию;
- КонецЕсли;
-
- КлючНастройки = КлючНастройки();
-
- ВыполнятьТест = Неопределено;
- Если ТипЗнч(Настройки) = Тип("Структура")
- И Настройки.Свойство("Используется", ВыполнятьТест) Тогда
-
- Возврат ВыполнятьТест = Истина;
- КонецЕсли;
-
- Возврат ЗначениеПоУмолчанию;
-
-КонецФункции
-
-&НаКлиенте
-Функция КлючНастройки() Экспорт
- Возврат "CommandInterface";
-КонецФункции
-
-&НаКлиенте
-Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт
-
- Инициализация(КонтекстЯдраПараметр);
-
- Если Не НужноВыполнятьТест() Тогда
- Возврат;
- КонецЕсли;
-
- Если Объект.СтрогийПорядокВыполнения Тогда
- НаборТестов.СтрогийПорядокВыполнения();
- НаборТестов.ПродолжитьВыполнениеПослеПаденияТеста();
- КонецЕсли;
-
- КонтекстЯдра = КонтекстЯдраПараметр;
-
- ПлагинТестКлиенты = КонтекстЯдра.Плагин("ТестКлиенты");
-
- ТестКлиент = Неопределено;
-
- Попытка
- ТестКлиент = ПлагинТестКлиенты.ТестКлиентПоУмолчанию();
- Исключение
- ИнфоОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- Сообщить(ИнфоОшибки);
- Возврат;
- КонецПопытки;
-
- Если ТестКлиент = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ОсновноеОкно = ПлагинТестКлиенты.ОсновноеОкно(ТестКлиент);
-
- ИсключаемыеОперации = Новый Массив;
- ДобавитьИсключения(ИсключаемыеОперации, "ОбщиеКоманды", "ОбщаяКоманда.");
- ДобавитьИсключения(ИсключаемыеОперации, "ОбщиеФормы", "ОбщаяФорма.");
- ДобавитьИсключения(ИсключаемыеОперации, "Справочники", "Справочник.");
- ДобавитьИсключения(ИсключаемыеОперации, "Документы", "Документ.");
- ДобавитьИсключения(ИсключаемыеОперации, "Отчеты", "Отчет.");
- ДобавитьИсключения(ИсключаемыеОперации, "Обработки", "Обработка.");
- ДобавитьИсключения(ИсключаемыеОперации, "БизнесПроцессы", "БизнесПроцесс.");
- ДобавитьИсключения(ИсключаемыеОперации, "ВнешниеИсточникиДанных", "ВнешнийИсточникДанных.");
-
- ОписаниеДобавляемыхТестов = ОписаниеДобавляемыхТестов(ТестКлиент, ОсновноеОкно);
- Для Каждого ГруппаТестов Из ОписаниеДобавляемыхТестов Цикл
-
- СписокДляСортировки = Новый СписокЗначений;
- Для Каждого КлючЗначение Из ГруппаТестов.Тесты Цикл
- Если Не ИсключитьИзПроверки(КлючЗначение.Ключ, ИсключаемыеОперации) Тогда
- СписокДляСортировки.Добавить(КлючЗначение, КлючЗначение.Значение.ПредставлениеТеста);
- КонецЕсли;
- КонецЦикла;
- СписокДляСортировки.СортироватьПоПредставлению();
-
- Если СписокДляСортировки.Количество() Тогда
- НаборТестов.НачатьГруппу(КонтекстЯдра.СтрШаблон_(НСтр("ru = 'Раздел: %1'"),ГруппаТестов.ИмяГруппы));
- КонецЕсли;
-
- Для Каждого ЭлементСпискаЗначений Из СписокДляСортировки Цикл
-
- КлючЗначение = ЭлементСпискаЗначений.Значение;
- Описание = КлючЗначение.Значение;
- ОписаниеНавигационнаяСсылка = Описание.НавигационнаяСсылка;
-
- НаборТестов.Добавить(
- Описание.ИмяТеста,
- НаборТестов.ПараметрыТеста(ОписаниеНавигационнаяСсылка),
- КонтекстЯдра.СтрШаблон_(НСтр("ru = '%1: проверка элемента командного интерфейса'"), Описание.ПредставлениеТеста));
-
- КонецЦикла;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ДобавитьИсключения(Знач ИсключаемыеОперации, ИмяНастройки, ПрефиксШаблона)
-
- Если ВидМетаданныхИсключенИзТестирования(ИмяНастройки) Тогда
-
- ИсключаемыеОперации.Добавить(ПрефиксШаблона);
-
- ИначеЕсли ЕстьНастройка(ИмяНастройки) Тогда
-
- Для Каждого ПараметрНастройки Из Объект.Настройки[ИмяНастройки] Цикл
- ИсключаемыеОперации.Добавить(ПрефиксШаблона + ПараметрНастройки);
- КонецЦикла;
-
- КонецЕсли;
-КонецПроцедуры
-
-&НаКлиенте
-Функция ИсключитьИзПроверки(ОписаниеНавигационнаяСсылка, ИсключаемыеОперации)
-
- Для Каждого ШаблонИсключения Из ИсключаемыеОперации Цикл
- Если Найти(ОписаниеНавигационнаяСсылка, ШаблонИсключения) <> 0 Тогда
- Возврат Истина;
- КонецЕсли;
- КонецЦикла;
-
- Возврат Ложь;
-КонецФункции
-
-&НаКлиенте
-Процедура ПередЗапускомТеста() Экспорт
-
- ПлагинТестКлиенты = КонтекстЯдра.Плагин("ТестКлиенты");
- Если ЕстьНастройка(ПлагинТестКлиенты.КлючНастройкиМодальныхОкон(), Объект.Настройки) Тогда
- ПлагинТестКлиенты.УстановитьНастройкиМодальныхОкон(Объект.Настройки[ПлагинТестКлиенты.КлючНастройкиМодальныхОкон()]);
- КонецЕсли;
-
- ТестКлиент = ПлагинТестКлиенты.ТестКлиентПоУмолчанию();
- ПлагинТестКлиенты.ЗакрытьВсеОткрытыеОкна(ТестКлиент);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеЗапускаТеста() Экспорт
-
- //ТестКлиент = КонтекстЯдра.Плагин("ТестКлиенты").ТестКлиентПоУмолчанию();
- //КонтекстЯдра.Плагин("ТестКлиенты").ЗакрытьВсеОткрытыеОкна(ТестКлиент);
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ОписаниеДобавляемыхТестов(ТестКлиент, ОсновноеОкно)
-
- РезКоллекцияОписаний = Новый Массив;
- ИсключаемыеРазделы = Новый Массив;
- ДобавитьИсключения(ИсключаемыеРазделы, "Разделы", "");
-
- Попытка
- КомандныйИнтерфейс = ОсновноеОкно.ПолучитьКомандныйИнтерфейс();
- Исключение
- ВызватьИсключение "Не удалось получить командный интерфейс.
- |Возможно, сеанс тест-клиента заблокирован модальным окном";
- КонецПопытки;
- ПанельРазделов = КомандныйИнтерфейс.НайтиОбъект(Тип("ТестируемаяГруппаКомандногоИнтерфейса"), НСтр("ru = 'Панель разделов'; en = 'Section panel'"));
- Если ПанельРазделов = Неопределено Тогда
- ПанельРазделов = КомандныйИнтерфейс.НайтиОбъект(Тип("ТестируемаяГруппаКомандногоИнтерфейса"), "Section panel");
- КонецЕсли;
-
- Если ТипЗнч(ПанельРазделов) = Тип("ТестируемаяГруппаКомандногоИнтерфейса") Тогда
- КнопкиРазделов = ПанельРазделов.НайтиОбъекты(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"));
- Для Каждого ТекКнопкаРаздел Из КнопкиРазделов Цикл
- Если ИсключитьИзПроверки(ТекКнопкаРаздел.ТекстЗаголовка, ИсключаемыеРазделы) Тогда
- Продолжить;
- КонецЕсли;
- СтруктураГруппы = Новый Структура;
- СтруктураГруппы.Вставить("ИмяГруппы", ТекКнопкаРаздел.ТекстЗаголовка);
- СтруктураГруппы.Вставить("Тесты", Новый Соответствие);
- РезКоллекцияОписаний.Добавить(СтруктураГруппы);
- ТекКнопкаРаздел.Нажать();
- ДобавитьОписаниеТеста(СтруктураГруппы.Тесты, КомандныйИнтерфейс);
- ТекКнопкаРаздел.Нажать();
- КонецЦикла;
-
- Если КнопкиРазделов.Количество() > 1 Тогда
- КнопкиРазделов[0].Нажать();
- КнопкиРазделов[0].Нажать();
- КонецЕсли;
- КонецЕсли;
-
- Возврат РезКоллекцияОписаний;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ДобавитьОписаниеТеста(КоллекцияОписанийТестов, КомандныйИнтерфейс)
-
- Разделы = Новый Массив;
- Разделы.Добавить(КомандныйИнтерфейс);
- Для Каждого Раздел Из КомандныйИнтерфейс.НайтиОбъекты(Тип("ТестируемаяГруппаКомандногоИнтерфейса")) Цикл
- Если ЭтоСлужебныйРаздел(Раздел) Тогда
- Продолжить;
- КонецЕсли;
- Разделы.Добавить(Раздел);
- КонецЦикла;
-
- Для Каждого ТекРаздел Из Разделы Цикл
-
- Для Каждого ТекКнопка Из ТекРаздел.НайтиОбъекты(Тип("ТестируемаяКнопкаКомандногоИнтерфейса")) Цикл
-
- Если Найти(ТекКнопка.НавигационнаяСсылка, "e1cib/command/Подсистема.") > 0
- Или Не ЗначениеЗаполнено(ТекКнопка.НавигационнаяСсылка)
- Или ЭтоСлужебныйРазделВерсия82(ТекКнопка) Тогда
- Продолжить;
- КонецЕсли;
-
- ПредставлениеТеста = КонтекстЯдра.СтрШаблон_("%1->%2", ТекРаздел.ТекстЗаголовка, ТекКнопка.ТекстЗаголовка);
-
- ДобавляемоеОписание = Новый Структура;
- ДобавляемоеОписание.Вставить("ПредставлениеТеста", ПредставлениеТеста);
- ДобавляемоеОписание.Вставить("НавигационнаяСсылка", ТекКнопка.НавигационнаяСсылка);
- ДобавляемоеОписание.Вставить("ИмяТеста", ИмяТеста(ТекКнопка.НавигационнаяСсылка));
- КоллекцияОписанийТестов.Вставить(ТекКнопка.НавигационнаяСсылка, ДобавляемоеОписание);
-
- КонецЦикла;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ВидМетаданныхИсключенИзТестирования(ВидМетаданных)
- Если ЕстьНастройка(ВидМетаданных) Тогда
- Возврат (ТипЗнч(Объект.Настройки[ВидМетаданных]) = Тип("Булево") И НЕ Объект.Настройки[ВидМетаданных]);
- КонецЕсли;
- Возврат Ложь;
-КонецФункции
-
-&НаКлиенте
-Функция ИмяТеста(ПараметрНавигационнаяСсылка)
-
- ПропускаемыеНавигационныеСсылки = Новый Массив;
- ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/ОбщаяКоманда.СтраницаМобильноеПриложениеНаAppStore");
- ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/ОбщаяКоманда.СтраницаМобильноеПриложениеНаGooglePlay");
- ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/ОбщаяКоманда.СтраницаПродуктаНаСайте1С");
- ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/ОбщаяКоманда.СтраницаЧтоНовогоВВерсииВидео");
- ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/Обработка.Ценообразование.Команда.Ценообразование");
- ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/ОбщаяКоманда.Налоги_РегламентированнаяОтчетность");
-
- Если ПропускаемыеНавигационныеСсылки.Найти(ПараметрНавигационнаяСсылка) = Неопределено Тогда
- Возврат "ТестДолжен_ПерейтиПоКнопкеКомандногоИнтерфейса";
- Иначе
- Возврат "ТестДолжен_ПропуститьВыполнение";
- КонецЕсли;
-
-КонецФункции
-
-&НаКлиенте
-Функция ЭтоСлужебныйРаздел(ГруппаКомандногоИнтерфейса)
-
- ЗаголовкиСлужебныхРазделов = Новый Соответствие;
-
- // Такси
- ЗаголовкиСлужебныхРазделов.Вставить(НРег(НСтр("ru = 'Панель разделов'")) , Истина);
- ЗаголовкиСлужебныхРазделов.Вставить(НРег(НСтр("ru = 'Панель инструментов'")) , Истина);
- ЗаголовкиСлужебныхРазделов.Вставить(НРег(НСтр("ru = 'Панель открытых'")) , Истина);
- ЗаголовкиСлужебныхРазделов.Вставить(НРег(НСтр("ru = 'Меню функций'")) , Истина);
-
- Возврат ЗаголовкиСлужебныхРазделов.Получить(НРег(ГруппаКомандногоИнтерфейса.ТекстЗаголовка)) = Истина;
-
-КонецФункции
-
-&НаКлиенте
-Функция ЭтоСлужебныйРазделВерсия82(ГруппаКомандногоИнтерфейса)
-
- ЗаголовкиСлужебныхРазделов = Новый Соответствие;
-
- // Версия 8.2
- ЗаголовкиСлужебныхРазделов.Вставить(НРег(НСтр("ru = 'Отчеты'")) , Истина);
- ЗаголовкиСлужебныхРазделов.Вставить(НРег(НСтр("ru = 'Сервис'")) , Истина);
- ЗаголовкиСлужебныхРазделов.Вставить(НРег(НСтр("ru = 'Панель действий'")), Истина);
-
- Возврат ЗаголовкиСлужебныхРазделов.Получить(НРег(ГруппаКомандногоИнтерфейса.ТекстЗаголовка)) = Истина;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ТестДолжен_ПропуститьВыполнение(ПараметрНавигационнаяСсылка) Экспорт
-
- КонтекстЯдра.ПропуститьТест();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПерейтиПоКнопкеКомандногоИнтерфейса(ПараметрНавигационнаяСсылка) Экспорт
-
- ТестКлиент = ПлагинТестКлиенты.ТестКлиентПоУмолчанию();
- ОсновноеОкно = ПлагинТестКлиенты.ОсновноеОкно(ТестКлиент);
-
- ОткрытыеОкнаДо = ПлагинТестКлиенты.ОткрытыеОкна(ТестКлиент);
-
- Попытка
- ОсновноеОкно.ВыполнитьКоманду(ПараметрНавигационнаяСсылка);
- Исключение
- ВызватьИсключение КонтекстЯдра.СтрШаблон_("Не удалось выполнить команду %1 на тест-клиенте.
- |Возможно, сеанс тест-клиента заблокирован модальным окном", ПараметрНавигационнаяСсылка);
- КонецПопытки;
-
- ПлагинТестКлиенты.ИдентифицироватьОкноПредупреждение(ТестКлиент, ПереходПоКнопкеКомандногоИнтерфейса(), Ложь);
-
- ОписанияШаговСценария = Новый Массив;
- ОписанияШаговСценария.Добавить(КликПоПервойСтрокеТаблицыФормы());
- ОписанияШаговСценария.Добавить(КликПоПоследнейСтрокеТаблицыФормы());
-
- Для Каждого ШагСценария Из ОписанияШаговСценария Цикл
- ОкноСТаблицейФормы = ТестКлиент.ПолучитьАктивноеОкно();
- Если ОкноСТаблицейФормы.НачальнаяСтраница Или ОкноСТаблицейФормы.Основное Тогда
- Продолжить;
- КонецЕсли;
- Обработали = ВыполнитьШагПроверкиТаблицыФормы(ОкноСТаблицейФормы, ШагСценария, ТестКлиент);
- Если Обработали Тогда
- ПлагинТестКлиенты.ИдентифицироватьОкноПредупреждение(ТестКлиент, ШагСценария, Ложь);
- КонецЕсли;
- КонецЦикла;
-
- ПлагинТестКлиенты.ЗакрытьВсеОткрытыеОкна(ТестКлиент);
-
- ПлагинТестКлиенты.ПроверитьНаНовыеМодальныеОкна(ТестКлиент, ОткрытыеОкнаДо);
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ВыполнитьШагПроверкиТаблицыФормы(ОкноСТаблицейФормы, ШагСценария, ТестКлиент)
-
- Результат = Ложь;
- ТекстИсключенияДляГруппировки = НСтр("ru = 'Действие недоступно для строки группировки списка!'");
-
- ТаблицыФормы = ОкноСТаблицейФормы.НайтиОбъекты(Тип("ТестируемаяТаблицаФормы"));
-
- Если ТаблицыФормы = Неопределено Тогда
- Возврат Результат;
- КонецЕсли;
-
- Для Каждого ТаблицаФормы Из ТаблицыФормы Цикл
-
- ТаблицаФормы.Активизировать();
-
- Если Не ТаблицаФормыДоступна(ТаблицаФормы) Тогда
- Продолжить;
- КонецЕсли;
-
- ПерейтиКЗаданнойСтрокеТаблицыФормы(ШагСценария, ТаблицаФормы, ТестКлиент);
-
- Если Не ЗначениеЗаполнено(ТаблицаФормы.ПолучитьВыделенныеСтроки()) Тогда
- Результат = Истина;
- Иначе
-
- РазвернутьВетвьДерева(ТаблицаФормы);
-
- ТаблицаФормы.Выбрать();
-
- КонецЕсли;
-
- Пока ПлагинТестКлиенты.ПоявилосьОкноПредупрежденияСТекстом(ТестКлиент, ТекстИсключенияДляГруппировки) Цикл
-
- ТекущееОкно = ТестКлиент.ПолучитьАктивноеОкно();
- ТекущееОкно.Закрыть();
-
- Если ТаблицаФормы.ВозможноРазвернуть() Тогда
- Если Не ТаблицаФормы.Развернут() Тогда
- ТаблицаФормы.Развернуть();
- КонецЕсли;
- ТаблицаФормы.ПерейтиНаУровеньВниз();
- КонецЕсли;
-
- ТаблицаФормы.Выбрать();
-
- КонецЦикла;
-
- ПлагинТестКлиенты.ИдентифицироватьОкноПредупреждение(ТестКлиент, ШагСценария, Ложь);
-
- ТекущееОкно = ТестКлиент.ПолучитьАктивноеОкно();
- Если ПриКликеВТаблицеФормыНовоеОкноНеОткрылось(ТекущееОкно, ОкноСТаблицейФормы) Тогда
- Если ТаблицаФормы.ТекущийРежимРедактирование() Тогда
- ТаблицаФормы.ЗакончитьРедактированиеСтроки();
- КонецЕсли;
- Результат = Истина;
- Иначе
- НажатьКнопкуЗаписать(ШагСценария, ТекущееОкно, ТестКлиент);
- КонецЕсли;
-
- Если ШагСценария = КликПоПервойСтрокеТаблицыФормы() Тогда
- ПроверитьКомандныйИнтерфейсОкна(ТекущееОкно, ТестКлиент);
- КонецЕсли;
-
- Если ОкноСТаблицейФормы <> ТекущееОкно Тогда
- ТекущееОкно.Закрыть();
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ПерейтиКЗаданнойСтрокеТаблицыФормы(ШагСценария, ТаблицаФормы, ТестКлиент)
-
- Если ШагСценария = КликПоПервойСтрокеТаблицыФормы() Тогда
-
- ТаблицаФормы.ПерейтиКПервойСтроке();
-
- ИначеЕсли ШагСценария = КликПоПоследнейСтрокеТаблицыФормы() Тогда
-
- ТаблицаФормы.ПерейтиКПоследнейСтроке();
-
- Иначе
-
- ВызватьИсключение КонтекстЯдра.СтрШаблон_("Поведение для шага ""%1"" не определено", ШагСценария);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ПриКликеВТаблицеФормыНовоеОкноНеОткрылось(ТекущееОкно, ОкноСТаблицейФормы)
-
- Возврат ТекущееОкно = ОкноСТаблицейФормы;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ПроверитьМодифицированность(ШагСценария, ТекущееОкно, ТестКлиент, МоментПроверки)
-
- ТестируемаяФорма = ТекущееОкно.НайтиОбъект(Тип("ТестируемаяФорма"));
- ТекущаяМодифицированность = ТестируемаяФорма.ТекущаяМодифицированность();
- Если ТекущаяМодифицированность Тогда
- ТекстИсключения = КонтекстЯдра.СтрШаблон_("%1 - %2 - %3 - %4:
- |Ожидали, что форма не модифицирована сразу же после ее открытия или сразу же после записи, а это не так.",
- ШагСценария, МоментПроверки, ТестируемаяФорма.ИмяФормы, ТестируемаяФорма.ТекстЗаголовка);
- КонтекстЯдра.ВызватьОшибкуПроверки(ТекстИсключения);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура НажатьКнопкуЗаписать(ШагСценария, ТекущееОкно, ТестКлиент)
-
- КнопкаЗаписать = ТекущееОкно.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"), "Записать");
- Если КнопкаЗаписать = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Если Не КнопкаЗаписать.ТекущаяВидимость() Или Не КнопкаЗаписать.ТекущаяДоступность() Тогда
- Возврат;
- КонецЕсли;
-
- // Платформа не позволяет заранее определить доступность кнопки.
- // Поэтому нажимаем в попытке, а затем ловим исключение, если нажать кнопку не удалось.
- Попытка
- КнопкаЗаписать.Нажать();
- Исключение
- ТекстИсключения = ОписаниеОшибки();
- Если Найти(ТекстИсключения, "Неподходящий тип элемента управления для вызванного действия") = 0
- // У формы установлен признак ТолькоПросмотр
- И Найти(ТекстИсключения, "Невидимый пользователю элемент управления не может выполнять интерактивные действия") = 0 Тогда
- КонтекстЯдра.ВызватьОшибкуПроверки(ТекстИсключения);
- КонецЕсли;
- КонецПопытки;
-
- ПлагинТестКлиенты.ИдентифицироватьОкноПредупреждение(
- ТестКлиент,
- КонтекстЯдра.СтрШаблон_("%1: Кнопка ""Записать""", ШагСценария),
- Ложь);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПроверитьКомандныйИнтерфейсОкна(ТекущееОкно, ТестКлиент)
-
- КомандныйИнтерфейс = ТекущееОкно.ПолучитьКомандныйИнтерфейс();
- Для Каждого ТекКнопка Из КомандныйИнтерфейс.НайтиОбъекты(Тип("ТестируемаяКнопкаКомандногоИнтерфейса")) Цикл
-
- ТекКнопка.Нажать();
-
- ПлагинТестКлиенты.ИдентифицироватьОкноПредупреждение(
- ТестКлиент,
- КонтекстЯдра.СтрШаблон_("Командный интерфейс формы: ""%1""", ТекКнопка.ТекстЗаголовка),
- Ложь);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ПереходПоКнопкеКомандногоИнтерфейса()
-
- Возврат "Переход по кнопке командного интерфейса";
-
-КонецФункции
-
-&НаКлиенте
-Функция КликПоПервойСтрокеТаблицыФормы()
-
- Возврат "Клик по первой строке таблицы формы";
-
-КонецФункции
-
-&НаКлиенте
-Функция КликПоПоследнейСтрокеТаблицыФормы()
-
- Возврат "Клик по последней строке таблицы формы";
-
-КонецФункции
-
-&НаКлиенте
-Функция ТаблицаФормыДоступна(ТаблицаФормы)
- Возврат ТаблицаФормы.ТекущаяДоступность() И ТаблицаФормы.ТекущаяВидимость() И Не ТаблицаФормы.ТекущееТолькоПросмотр();
-КонецФункции
-
-&НаКлиенте
-Функция РазвернутьВетвьДерева(ТаблицаФормы)
-
- ТекущаяСтрока = ТекущаяСтрокаТаблицы(ТаблицаФормы);
-
- Пока ТаблицаФормы.ВозможноРазвернуть() Цикл
-
- Если Не ТаблицаФормы.Развернут(ТекущаяСтрока) Тогда
- ТаблицаФормы.Развернуть(ТекущаяСтрока);
- Если Не ТаблицаФормы.Развернут(ТекущаяСтрока) Тогда
- Прервать;
- КонецЕсли;
- КонецЕсли;
-
- ТаблицаФормы.ПерейтиКПоследнейСтроке(Истина);
- Если ТаблицаФормы.ПолучитьВыделенныеСтроки().Количество() <= 1 Тогда
- ТаблицаФормы.ПерейтиКСтроке(ТекущаяСтрока, НаправлениеПереходаКСтроке.Вверх);
- Прервать;
- КонецЕсли;
-
- Если ТаблицаФормы.ПерейтиКСтроке(ТекущаяСтрока, НаправлениеПереходаКСтроке.Вверх) Тогда
- ТаблицаФормы.ПерейтиНаУровеньВниз();
- КонецЕсли;
-
- мТекущаяСтрока = ТекущаяСтрокаТаблицы(ТаблицаФормы);
- Если СтрокиТаблицыРавны(ТекущаяСтрока, мТекущаяСтрока) Тогда
- Прервать;
- Иначе
- ТекущаяСтрока = мТекущаяСтрока;
- КонецЕсли;
-
- КонецЦикла;
-
-КонецФункции
-
-&НаКлиенте
-Функция ТекущаяСтрокаТаблицы(ТаблицаФормы)
-
- ВыделенныеСтроки = ТаблицаФормы.ПолучитьВыделенныеСтроки();
-
- Если ВыделенныеСтроки.Количество() Тогда
- ТекущаяСтрокаТаблицы = ВыделенныеСтроки[0];
- Иначе
- ТекущаяСтрокаТаблицы = Новый Соответствие;
- КонецЕсли;
-
- Возврат ТекущаяСтрокаТаблицы;
-
-КонецФункции
-
-&НаКлиенте
-Функция СтрокиТаблицыРавны(Строка1, Строка2)
-
- Если ТипЗнч(Строка1) <> Тип("Соответствие") Или ТипЗнч(Строка2) <> Тип("Соответствие") Тогда
- Возврат Ложь;
- КонецЕсли;
-
- Если Строка1.Количество() <> Строка2.Количество() Тогда
- Возврат Ложь;
- КонецЕсли;
-
- Для Каждого КлючЗначение Из Строка1 Цикл
- Если КлючЗначение.Значение <> Строка2[КлючЗначение.Ключ] Тогда
- Возврат Ложь;
- КонецЕсли;
- КонецЦикла;
-
- Возврат Истина;
-
-КонецФункции
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262.xml"
deleted file mode 100644
index fb5fb12..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262.xml"
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
- c3831ec8-d8d5-4f93-8a22-f9bfae07327f
- 0a9e9dfd-26e5-428e-80bc-ebabf64dd88d
-
-
- fa2f3866-7f26-4eb8-a28d-cd212547b8a7
- 11cc79be-4df6-4200-bcfc-e91ece82a82c
-
-
-
- тесты_ПроведениеДокументов
-
-
- ru
- Проведение и проверка движений до и после
-
-
-
- ExternalDataProcessor.тесты_ПроведениеДокументов.Form.Форма
-
-
-
-
-
- Настройки
-
-
- ru
- Настройки
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ObjectModule.bsl" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ObjectModule.bsl"
deleted file mode 100644
index 954ec86..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Ext/ObjectModule.bsl"
+++ /dev/null
@@ -1,309 +0,0 @@
-#Область ОписаниеПеременных
-
-Перем КонтекстЯдра;
-Перем Утверждения;
-Перем УтвержденияПроверкаТаблиц;
-
-#КонецОбласти
-
-#Область ПрограммныйИнтерфейс
-
-#Область ИнтерфейсТестирования
-
-Функция КлючНастройки() Экспорт
- Возврат "ПроведениеДокументов";
-КонецФункции
-
-Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
- КонтекстЯдра = КонтекстЯдраПараметр;
- Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
- УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц");
-
- ЗагрузитьНастройки();
-КонецПроцедуры
-
-Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт
-
- Если ТекущийРежимЗапуска() = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение Then
- Возврат;
- КонецЕсли;
-
- КонтекстЯдра = КонтекстЯдраПараметр;
-
- ЗагрузитьНастройки();
-
- Если Не НужноВыполнятьТест() Тогда
- Возврат;
- КонецЕсли;
-
- Для Каждого МетаОбъект Из Метаданные.Документы Цикл
- Если МетаОбъект.Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить
- И ПравоДоступа("Проведение", МетаОбъект) Тогда
-
- ДобавитьТестыДляДокумента(НаборТестов, МетаОбъект);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Тесты
-
-Процедура ПередЗапускомТеста() Экспорт
- НачатьТранзакцию();
-КонецПроцедуры
-
-Процедура ПослеЗапускаТеста() Экспорт
- Если ТранзакцияАктивна() Тогда
- ОтменитьТранзакцию();
- КонецЕсли;
-КонецПроцедуры
-
-Процедура Тест_ПровестиДокумент(ДокументСсылка) Экспорт
-
- ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
-
- ДвиженияДо = ПолучитьДвиженияДокумента(ДокументОбъект);
-
- ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
-
- ДвиженияПосле = ПолучитьДвиженияДокумента(ДокументОбъект);
-
- Для Каждого КлючИЗначение Из ДвиженияДо Цикл
- ТипДвижения = КлючИЗначение.Ключ;
- ТаблицаДвиженияДо = КлючИЗначение.Значение;
- ТаблицаДвиженияПосле = ДвиженияПосле.Получить(ТипДвижения);
- УтвержденияПроверкаТаблиц.ПроверитьРавенствоТаблиц(ТаблицаДвиженияДо, ТаблицаДвиженияПосле,
- "Отличаются движения по регистру " + ТипДвижения);
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура Тест_ПропуститьПроведениеДокумента(Знач Сообщение) Экспорт
- КонтекстЯдра.ПропуститьТест(Сообщение);
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область Настройки
-
-Процедура ЗагрузитьНастройки()
- Если ЗначениеЗаполнено(Настройки) Тогда
- Возврат;
- КонецЕсли;
-
- ПлагинНастройки = КонтекстЯдра.Плагин("Настройки");
- ПлагинНастройки.Инициализация(КонтекстЯдра);
-
- Настройки = ПлагинНастройки.ПолучитьНастройку(КлючНастройки());
-
- НастройкиПоУмолчанию = НастройкиПоУмолчанию();
- Если ТипЗнч(Настройки) <> Тип("Структура") Then
- Настройки = НастройкиПоУмолчанию;
- Иначе
- ЗаполнитьЗначенияСвойств(НастройкиПоУмолчанию, Настройки);
- Настройки = НастройкиПоУмолчанию;
- КонецЕсли;
-КонецПроцедуры
-
-Функция НастройкиПоУмолчанию()
-
- Результат = Новый Структура;
-
- Результат.Вставить("Используется", Истина);
- Результат.Вставить("КоличествоДокументов", 10);
- Результат.Вставить("Исключения", Новый Массив);
-
- Возврат Результат;
-КонецФункции
-
-Функция НужноВыполнятьТест()
-
- ЗагрузитьНастройки();
-
- Если Не ЗначениеЗаполнено(Настройки) Тогда
- Возврат Истина;
- КонецЕсли;
-
- КлючНастройки = КлючНастройки();
-
- ВыполнятьТест = Истина;
- Если ТипЗнч(Настройки) = Тип("Структура")
- И Настройки.Свойство("Используется", ВыполнятьТест) Тогда
-
- Возврат ВыполнятьТест = Истина;
- КонецЕсли;
-
- Возврат Истина;
-
-КонецФункции
-
-#КонецОбласти
-
-Процедура ДобавитьТестыДляДокумента(НаборТестов, МетаОбъект) Экспорт
-
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ ПЕРВЫЕ 1
- | Ссылка,
- | Представление
- |ИЗ
- | Документ." + МетаОбъект.Имя + "
- |ГДЕ
- | Проведен
- |
- |УПОРЯДОЧИТЬ ПО
- | МоментВремени Убыв";
-
- Запрос.Текст = СтрЗаменить(Запрос.Текст,
- "ВЫБРАТЬ ПЕРВЫЕ 1",
- "ВЫБРАТЬ ПЕРВЫЕ " + Формат(Настройки.КоличествоДокументов, "ЧГ=")
- );
- РезультатЗапроса = Запрос.Выполнить();
- Если РезультатЗапроса.Пустой() Тогда
- Возврат;
- КонецЕсли;
-
- //++ РС 11.08.2021
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(МетаОбъект.Имя, Настройки.Исключения) Тогда
- Возврат;
- КонецЕсли;
- //-- РС
-
- НаборТестов.НачатьГруппу(МетаОбъект.Синоним + " - Документ." + МетаОбъект.Имя);
-
- ПредставлениеТеста = "Проведение и проверка движений до и после - " + МетаОбъект.Имя;
- //++ РС 11.08.2021
- //Сообщение = "Пропускаем из-за исключения по имени документа - " + ПредставлениеТеста;
- //Если ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(МетаОбъект.Имя, Настройки.Исключения,
- // Сообщение, НаборТестов) Тогда
- // Возврат;
- //КонецЕсли;
- //-- РС
-
- Выборка = РезультатЗапроса.Выбрать();
- Пока Выборка.Следующий() Цикл
- ПараметрыТеста = НаборТестов.ПараметрыТеста(Выборка.Ссылка);
- ПредставлениеТеста = "Проведение и проверка движений до и после - " + Выборка.Представление;
-
- НаборТестов.Добавить("Тест_ПровестиДокумент", ПараметрыТеста, ПредставлениеТеста);
- КонецЦикла;
-
-КонецПроцедуры
-
-Функция ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(Знач ЧтоИщем, Знач КоллекцияДляПоиска, Знач Сообщение,
- Знач НаборТестов)
-
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(ЧтоИщем, КоллекцияДляПоиска) Тогда
- КонтекстЯдра.Отладка(Сообщение);
- ПараметрыТеста = НаборТестов.ПараметрыТеста(Сообщение);
-
- НаборТестов.Добавить("Тест_ПропуститьПроведениеДокумента", ПараметрыТеста, Сообщение);
-
- Возврат Истина;
- КонецЕсли;
-
- Возврат Ложь;
-КонецФункции
-
-//++ РС 11.08.2021
-Функция ЕстьВИсключаемойКоллекции(Знач ЧтоИщем, Знач КоллекцияДляПоиска)
- Возврат КоллекцияДляПоиска.Найти(ЧтоИщем) <> Неопределено;
-КонецФункции //-- РС
-
-Функция ПолучитьДвиженияДокумента(ДокументОбъект)
-
- Результат = Новый Соответствие;
-
- Для Каждого Движение Из ДокументОбъект.Движения Цикл
- ТипДвижения = ТипЗнч(Движение);
- Движение.Прочитать();
- ТаблицаДвижения = Движение.Выгрузить();
- Результат.Вставить(ТипДвижения, ТаблицаДвижения);
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ИмяТеста()
- Возврат Метаданные().Имя;
-КонецФункции
-
-Функция ДокументыМета() Экспорт
-
- МассивДок = Новый Массив;
-
- Для Каждого МетаОбъект Из Метаданные.Документы Цикл
- Если МетаОбъект.Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить
- И ПравоДоступа("Проведение", МетаОбъект) Тогда
-
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ ПЕРВЫЕ 1
- | Ссылка,
- | Представление
- |ИЗ
- | Документ." + МетаОбъект.Имя + "
- |ГДЕ
- | Проведен
- |
- |УПОРЯДОЧИТЬ ПО
- | МоментВремени Убыв";
-
- Запрос.Текст = СтрЗаменить(Запрос.Текст,
- "ВЫБРАТЬ ПЕРВЫЕ 1",
- "ВЫБРАТЬ ПЕРВЫЕ " + Формат(Настройки.КоличествоДокументов, "ЧГ=")
- );
- РезультатЗапроса = Запрос.Выполнить();
- Если РезультатЗапроса.Пустой() Тогда
- Продолжить;
- КонецЕсли;
-
- //++ РС 11.08.2021
- Если ЕстьВИсключаемойКоллекции(МетаОбъект.Имя, Настройки.Исключения) Тогда
- Продолжить;
- КонецЕсли;
- //-- РС
-
- Выборка = РезультатЗапроса.Выбрать();
-
- Данные = Новый Массив;
- Пока Выборка.Следующий() Цикл
-
- Данные.Добавить(Новый Структура("Ссылка, Представление", Выборка.Ссылка, Выборка.Представление));
-
- КонецЦикла;
-
- МассивДок.Добавить(Новый Структура("Имя, Синоним, Данные", МетаОбъект.Имя, МетаОбъект.Синоним, Данные));
-
- КонецЕсли;
- КонецЦикла;
-
- Возврат МассивДок;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ДоработанныйФункционал
-
-Функция ЕстьВИсключаемойКоллекцииНастроек(Знач ЧтоИщем, КлючНастроек)
-
- Если Настройки.Свойство(КлючНастроек)
- И ТипЗнч(Настройки[КлючНастроек]) = Тип("Массив")
- И Настройки[КлючНастроек].Найти(ЧтоИщем) <> Неопределено
- Тогда
- Возврат Истина;
- КонецЕсли;
-
- Возврат Ложь;
-
-КонецФункции
-
-#КонецОбласти
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
deleted file mode 100644
index c03ddc5..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
deleted file mode 100644
index ad825e2..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 3715a1b..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,176 +0,0 @@
-#Область ОписаниеПеременных
-
-&НаКлиенте
-Перем КонтекстЯдра;
-&НаКлиенте
-Перем Утверждения;
-
-#КонецОбласти
-
-#Область ОсновныеПроцедурыТеста
-
-&НаСервере
-Функция КлючНастройки() Экспорт
- Возврат МодульОбъекта().КлючНастройки();
-КонецФункции
-
-&НаКлиенте
-Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
- КонтекстЯдра = КонтекстЯдраПараметр;
- Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
-
- ЗагрузитьНастройки();
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт
-
- Если ТекущийРежимЗапуска() = РежимЗапускаКлиентскогоПриложения.ОбычноеПриложение Then
- Возврат;
- КонецЕсли;
-
- КонтекстЯдра = КонтекстЯдраПараметр;
-
- ЗагрузитьНастройки();
-
- Если Не НужноВыполнятьТест() Тогда
- Возврат;
- КонецЕсли;
-
- ДобавитьДокументы(НаборТестов);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ДобавитьДокументы(НаборТестов)
-
- ДокументыМета = СписокДокументов();
-
- Для Каждого СтрокаДок Из ДокументыМета Цикл
-
- НаборТестов.НачатьГруппу(СтрокаДок.Синоним + " - Документ." + СтрокаДок.Имя);
-
- ПредставлениеТеста = "Проведение и проверка движений до и после - " + СтрокаДок.Имя;
-
- Для Каждого СтрокаДанные Из СтрокаДок.Данные Цикл
-
- ПараметрыТеста = НаборТестов.ПараметрыТеста(СтрокаДанные.Ссылка);
- ПредставлениеТеста = "Проведение и проверка движений до и после - " + СтрокаДанные.Представление;
-
- НаборТестов.Добавить("Тест_ПровестиДокумент", ПараметрыТеста, ПредставлениеТеста);
-
- КонецЦикла;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура Тест_ПровестиДокумент(ДокументСсылка) Экспорт
- ПровестиДокумент(ДокументСсылка);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура Тест_ПропуститьПроведениеДокумента(Знач Сообщение) Экспорт
- Утверждения.ПропуститьТест(Сообщение);
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область Настройки
-
-&НаКлиенте
-Процедура ЗагрузитьНастройки()
- Если ЗначениеЗаполнено(Объект.Настройки) Тогда
- Возврат;
- КонецЕсли;
-
- ПлагинНастройки = КонтекстЯдра.Плагин("Настройки");
- ПлагинНастройки.Инициализация(КонтекстЯдра);
-
- Объект.Настройки = ПлагинНастройки.ПолучитьНастройку(КлючНастройки());
-
- НастройкиПоУмолчанию = НастройкиПоУмолчанию();
- Если ТипЗнч(Объект.Настройки) <> Тип("Структура") Then
- Объект.Настройки = НастройкиПоУмолчанию;
- Иначе
- ЗаполнитьЗначенияСвойств(НастройкиПоУмолчанию, Объект.Настройки);
- Объект.Настройки = НастройкиПоУмолчанию;
- КонецЕсли;
-КонецПроцедуры
-
-&НаКлиенте
-Функция НастройкиПоУмолчанию()
-
- Результат = Новый Структура;
-
- Результат.Вставить("Используется", Истина);
- Результат.Вставить("КоличествоДокументов", 10);
- Результат.Вставить("Исключения", Новый Массив);
-
- Возврат Результат;
-КонецФункции
-
-&НаКлиенте
-Функция НужноВыполнятьТест()
-
- ЗагрузитьНастройки();
-
- Если Не ЗначениеЗаполнено(Объект.Настройки) Тогда
- Возврат Истина;
- КонецЕсли;
-
- КлючНастройки = КлючНастройки();
-
- ВыполнятьТест = Истина;
- Если ТипЗнч(Объект.Настройки) = Тип("Структура")
- И Объект.Настройки.Свойство("Используется", ВыполнятьТест) Тогда
-
- Возврат ВыполнятьТест = Истина;
- КонецЕсли;
-
- Возврат Истина;
-
-КонецФункции
-
-#КонецОбласти
-
-&НаСервере
-Функция СписокДокументов()
- Возврат МодульОбъекта().ДокументыМета();
-КонецФункции
-
-&НаСервере
-Процедура ПровестиДокумент(ДокументСсылка)
- МодульОбъекта().Тест_ПровестиДокумент(ДокументСсылка);
-КонецПроцедуры
-
-&НаСервере
-Функция МодульОбъекта()
- Возврат РеквизитФормыВЗначение("Объект");
-КонецФункции
-
-&НаКлиенте
-Функция ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(Знач ЧтоИщем,
- Знач КоллекцияДляПоиска,
- Знач Сообщение,
- Знач НаборТестов)
-
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(ЧтоИщем, КоллекцияДляПоиска) Тогда
-
- КонтекстЯдра.Отладка(Сообщение);
- ПараметрыТеста = НаборТестов.ПараметрыТеста(Сообщение);
-
- //НаборТестов.Добавить("Тест_ПропуститьМакетСКД", ПараметрыТеста, Сообщение);
-
- Возврат Истина;
-
- КонецЕсли;
-
- Возврат Ложь;
-
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224.xml"
deleted file mode 100644
index 55d79e4..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224.xml"
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
- c3831ec8-d8d5-4f93-8a22-f9bfae07327f
- 09e7aba4-241c-4b5b-974b-dc1eb43d0507
-
-
- d525eb41-ce59-4622-9e11-7ede3a7d1132
- f3638dfb-f4e4-4319-b692-ae8bec295c30
-
-
-
- тесты_ПроверкаМакетовСКД
-
-
- ru
- Тесты проверка макетов СКД
-
-
-
- ExternalDataProcessor.тесты_ПроверкаМакетовСКД.Form.Форма
-
-
-
-
-
- Настройки
-
-
- ru
- Настройки
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Ext/ObjectModule.bsl" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Ext/ObjectModule.bsl"
deleted file mode 100644
index 8b684af..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Ext/ObjectModule.bsl"
+++ /dev/null
@@ -1,441 +0,0 @@
-#Область ОписаниеПеременных
-
-Перем КонтекстЯдра;
-Перем Утверждения;
-
-#КонецОбласти
-
-#Область ПрограммныйИнтерфейс
-
-#Область ИнтерфейсТестирования
-
-Функция КлючНастройки() Экспорт
- Возврат "МакетыСКД";
-КонецФункции
-
-Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
- КонтекстЯдра = КонтекстЯдраПараметр;
- Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
-
- ЗагрузитьНастройки();
-КонецПроцедуры
-
-Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт
-
- Если ТекущийРежимЗапуска() = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение Then
- Возврат;
- КонецЕсли;
-
- КонтекстЯдра = КонтекстЯдраПараметр;
- ЗагрузитьНастройки();
-
- Если Не НужноВыполнятьТест() Тогда
- Возврат;
- КонецЕсли;
-
- ДобавитьОбщиеМакеты(НаборТестов);
- ДобавитьМакетМетаданных(НаборТестов);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Тесты
-
-Процедура ТестДолжен_ПроверитьМакетСКД(ИмяМенеджера, ИмяОбьекта, ИмяМакета) Экспорт
-
- Менеджер = МенеджерОбьектаПоИмени(ИмяМенеджера);
-
- СхемаКомпоновкиДанных = Менеджер[ИмяОбьекта].ПолучитьМакет(СокрЛП(ИмяМакета));
-
- ПроверитьСхемуСКД(СхемаКомпоновкиДанных);
-
-КонецПроцедуры
-
-Процедура ТестДолжен_ПроверитьОбщийМакетСКД(ИмяМакета) Экспорт
-
- СхемаКомпоновкиДанных = ПолучитьОбщийМакет(ИмяМакета);
-
- ПроверитьСхемуСКД(СхемаКомпоновкиДанных);
-
-КонецПроцедуры
-
-Процедура ТестДолжен_ПроверитьВложенныйМакетСКД(ИмяМенеджера, ИмяОбьекта, ИменаМакетов) Экспорт
-
- ИменаМакетов = РазложитьСтрокуВМассивПодстрок(ИменаМакетов, "->");
-
- Если ИмяОбьекта = ТекстОбщиеМакеты() Тогда
- СхемаКомпоновкиДанных = ПолучитьОбщийМакет(ИменаМакетов[0]);
- Иначе
- Менеджер = МенеджерОбьектаПоИмени(ИмяМенеджера);
- СхемаКомпоновкиДанных = Менеджер[ИмяОбьекта].ПолучитьМакет(ИменаМакетов[0]);
- КонецЕсли;
-
- Для ВложенностьМакета = 1 По ИменаМакетов.Количество() - 1 Цикл
- ВложенныеСхемыКомпоновкиДанных = СхемаКомпоновкиДанных.ВложенныеСхемыКомпоновкиДанных;
- СхемаКомпоновкиДанных = ВложенныеСхемыКомпоновкиДанных.Найти(ИменаМакетов[ВложенностьМакета]).Схема;
- КонецЦикла;
-
- ПроверитьСхемуСКД(СхемаКомпоновкиДанных);
-
-КонецПроцедуры
-
-Процедура ТестДолжен_ПропуститьМакетСКД(ТекстСообщения) Экспорт
- Утверждения.ПропуститьТест(ТекстСообщения);
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область Настройки
-
-Процедура ЗагрузитьНастройки()
- Если ЗначениеЗаполнено(Настройки) Тогда
- Возврат;
- КонецЕсли;
-
- ПлагинНастройки = КонтекстЯдра.Плагин("Настройки");
- ПлагинНастройки.Инициализация(КонтекстЯдра);
-
- Настройки = ПлагинНастройки.ПолучитьНастройку(КлючНастройки());
-
- НастройкиПоУмолчанию = НастройкиПоУмолчанию();
- Если ТипЗнч(Настройки) <> Тип("Структура") Then
- Настройки = НастройкиПоУмолчанию;
- Иначе
- ЗаполнитьЗначенияСвойств(НастройкиПоУмолчанию, Настройки);
- Настройки = НастройкиПоУмолчанию;
- КонецЕсли;
-КонецПроцедуры
-
-Функция НастройкиПоУмолчанию()
-
- Результат = Новый Структура;
-
- Результат.Вставить("Используется", Истина);
- Результат.Вставить("ИсключенияОбщихМакетов", Новый Массив);
- Результат.Вставить("ИсключенияПоИмениМетаданных", Новый Массив);
- Результат.Вставить("ИсключенияПоИмениМакетов", Новый Массив);
-
- Возврат Результат;
-КонецФункции
-
-Функция НужноВыполнятьТест()
-
- ЗагрузитьНастройки();
-
- Если Не ЗначениеЗаполнено(Настройки) Тогда
- Возврат Истина;
- КонецЕсли;
-
- КлючНастройки = КлючНастройки();
-
- ВыполнятьТест = Истина;
- Если ТипЗнч(Настройки) = Тип("Структура")
- И Настройки.Свойство("Используется", ВыполнятьТест) Тогда
-
- Возврат ВыполнятьТест = Истина;
- КонецЕсли;
-
- Возврат Истина;
-
-КонецФункции
-
-#КонецОбласти
-
-Процедура ДобавитьОбщиеМакеты(НаборТестов)
-
- мОбщиеМакеты = ОбщиеМакеты();
-
- Если мОбщиеМакеты.Количество() > 0 Тогда
-
- НаборТестов.НачатьГруппу(ТекстОбщиеМакеты(), Ложь);
-
- Для Каждого ОбщийМакет Из мОбщиеМакеты Цикл
-
- Сообщение = "Пропускаем из-за исключения по имени общего макета - " +
- КонтекстЯдра.СтрШаблон_(ШаблонПредставления(), ТекстОбщиеМакеты(), ОбщийМакет.Представление);
- Если ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(ОбщийМакет.Представление,
- Настройки.ИсключенияОбщихМакетов, Сообщение, НаборТестов) Тогда
- Продолжить;
- КонецЕсли;
-
- НаборТестов.Добавить(ОбщийМакет.ИмяПроцедуры, ОбщийМакет.Параметры, ОбщийМакет.Представление);
-
- КонецЦикла;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ДобавитьМакетМетаданных(НаборТестов)
-
- ГруппыМакетовМетаданных = ГруппыМакетовМетаданных();
-
- Для Каждого ГруппаМакетовМетаданных Из ГруппыМакетовМетаданных Цикл
-
- Если ГруппаМакетовМетаданных.Значение.Количество() > 0 Тогда
-
- НаборТестов.НачатьГруппу(ГруппаМакетовМетаданных.Ключ, Ложь);
-
- Для Каждого МакетМетаданных Из ГруппаМакетовМетаданных.Значение Цикл
-
- НаборТестов.Добавить(
- МакетМетаданных.ИмяПроцедуры,
- МакетМетаданных.Параметры,
- МакетМетаданных.Представление);
-
- КонецЦикла;
-
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ДобавитьВложенныеМакеты(МассивТестов, Родитель, ИмяРодителя, ИмяОбъекта = "", ИмяМенеджера = "")
-
- Если ТипЗнч(Родитель) = Тип("ВложеннаяСхемаКомпоновкиДанных") Тогда
- Макет = Родитель.Схема;
- ИначеЕсли ЗначениеЗаполнено(ИмяМенеджера) Тогда
- Менеджер = МенеджерОбьектаПоИмени(ВРег(ИмяМенеджера));
- Макет = Менеджер[ИмяОбъекта].ПолучитьМакет(СокрЛП(Родитель.Имя));
- Иначе
- Макет = ПолучитьОбщийМакет(Родитель.Имя);
- КонецЕсли;
-
- Для Каждого ВложенныйМакет Из Макет.ВложенныеСхемыКомпоновкиДанных Цикл
-
- ИмяМакета = СтрШаблон_("%1->%2", ИмяРодителя, ВложенныйМакет.Имя);
- Представление = СтрШаблон_(ШаблонПредставления(), ИмяОбъекта, ИмяМакета);
-
- ПараметрыТеста = Новый Массив;
- ПараметрыТеста.Добавить(ИмяМенеджера);
- ПараметрыТеста.Добавить(ИмяОбъекта);
- ПараметрыТеста.Добавить(ИмяМакета);
-
- СтруктураТеста = Новый Структура;
- СтруктураТеста.Вставить("ИмяПроцедуры", "ТестДолжен_ПроверитьВложенныйМакетСКД");
- СтруктураТеста.Вставить("Параметры", ПараметрыТеста);
- СтруктураТеста.Вставить("Представление", Представление);
- МассивТестов.Добавить(СтруктураТеста);
-
- ДобавитьВложенныеМакеты(МассивТестов, ВложенныйМакет, ИмяМакета, ИмяОбъекта, ИмяМенеджера);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ПроверитьСхемуСКД(СхемаКомпоновкиДанных)
-
- ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
-
- КомпоновщикНастроекКомпоновкиДанных = Новый КомпоновщикНастроекКомпоновкиДанных;
- ИсточникДоступныхНастроекКомпоновкиДанных = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных);
-
- // Тут проходит синтаксический анализ запроса.
- КомпоновщикНастроекКомпоновкиДанных.Инициализировать(ИсточникДоступныхНастроекКомпоновкиДанных);
-
-КонецПроцедуры
-
-Функция ПроверяемыеМетаданные()
-
- ПроверяемыеОбъекты = Новый Массив();
- ПроверяемыеОбъекты.Добавить("Справочники");
- ПроверяемыеОбъекты.Добавить("Документы");
- ПроверяемыеОбъекты.Добавить("Обработки");
- ПроверяемыеОбъекты.Добавить("Отчеты");
- ПроверяемыеОбъекты.Добавить("Перечисления");
- ПроверяемыеОбъекты.Добавить("ПланыВидовХарактеристик");
- ПроверяемыеОбъекты.Добавить("ПланыСчетов");
- ПроверяемыеОбъекты.Добавить("ПланыВидовРасчета");
- ПроверяемыеОбъекты.Добавить("РегистрыСведений");
- ПроверяемыеОбъекты.Добавить("РегистрыНакопления");
- ПроверяемыеОбъекты.Добавить("РегистрыБухгалтерии");
- ПроверяемыеОбъекты.Добавить("РегистрыРасчета");
- ПроверяемыеОбъекты.Добавить("БизнесПроцессы");
- ПроверяемыеОбъекты.Добавить("Задачи");
-
- Возврат ПроверяемыеОбъекты;
-
-КонецФункции
-
-Функция МенеджерОбьектаПоИмени(Знач ИмяМенеджера)
-
- Попытка
- Менеджер = Вычислить(ИмяМенеджера);
- Исключение
- Менеджер = Неопределено;
- КонецПопытки;
-
- Возврат Менеджер;
-
-КонецФункции
-
-Функция ШаблонПредставления()
- Возврат НСтр("ru = 'Валидация корректности запроса СКД в %1: %2'");
-КонецФункции
-
-Функция ТекстОбщиеМакеты() Экспорт
- Возврат "ОбщиеМакеты";
-КонецФункции
-
-Функция ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(Знач ЧтоИщем,
- Знач КоллекцияДляПоиска,
- Знач Сообщение,
- Знач НаборТестов)
-
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(ЧтоИщем, КоллекцияДляПоиска) Тогда
-
- КонтекстЯдра.Отладка(Сообщение);
- ПараметрыТеста = НаборТестов.ПараметрыТеста(Сообщение);
-
- НаборТестов.Добавить("Тест_ПропуститьМакетСКД", ПараметрыТеста, Сообщение);
-
- Возврат Истина;
-
- КонецЕсли;
-
- Возврат Ложь;
-
-КонецФункции
-
-Функция ОбщиеМакеты() Экспорт
-
- мОбщиеМакеты = Новый Массив;
-
- Для Каждого ОбщийМакет Из Метаданные.ОбщиеМакеты Цикл
-
- Если ОбщийМакет.ТипМакета <> Метаданные.СвойстваОбъектов.ТипМакета.СхемаКомпоновкиДанных Тогда
- Продолжить;
- КонецЕсли;
-
- //++ РС 14.08.2021
- Если ЕстьВИсключаемойКоллекцииНастроек(ОбщийМакет.Имя, "ИсключенияОбщихМакетов") Тогда
- Продолжить;
- КонецЕсли;
- //-- РС
-
- ПараметрыТеста = Новый Массив;
- ПараметрыТеста.Добавить(ОбщийМакет.Имя);
-
- мОбщиеМакеты.Добавить(
- Новый Структура("ИмяПроцедуры, Параметры, Представление",
- "ТестДолжен_ПроверитьОбщийМакетСКД",
- ПараметрыТеста,
- СтрШаблон_(ШаблонПредставления(), ТекстОбщиеМакеты(), ОбщийМакет.Имя)));
-
- ДобавитьВложенныеМакеты(мОбщиеМакеты, ОбщийМакет, ОбщийМакет.Имя, ТекстОбщиеМакеты());
-
- КонецЦикла;
-
- Возврат мОбщиеМакеты;
-
-КонецФункции
-
-Функция ГруппыМакетовМетаданных() Экспорт
-
- ГруппыМакетовМетаданных = Новый Соответствие;
-
- ПроверяемыеОбъекты = ПроверяемыеМетаданные();
-
- Для Каждого ПроверяемыйОбъект Из ПроверяемыеОбъекты Цикл
-
- МакетыМетаданных = Новый Массив;
-
- Для Каждого ТекОбъект Из Метаданные[ПроверяемыйОбъект] Цикл
-
- ИмяМенеджера = ВРЕГ(ПроверяемыйОбъект);
-
- Для Каждого ТекДанныеМакета Из ТекОбъект.Макеты Цикл
-
- Если ТекДанныеМакета.ТипМакета <> Метаданные.СвойстваОбъектов.ТипМакета.СхемаКомпоновкиДанных Тогда
- Продолжить;
- КонецЕсли;
-
- //++ РС 14.08.2021
- Если ЕстьВИсключаемойКоллекцииНастроек(ТекОбъект.Имя, "ИсключенияПоИмениМетаданных") Тогда
- Продолжить;
- КонецЕсли;
- //-- РС
-
- ПараметрыТеста = Новый Массив;
- ПараметрыТеста.Добавить(ИмяМенеджера);
- ПараметрыТеста.Добавить(ТекОбъект.Имя);
- ПараметрыТеста.Добавить(ТекДанныеМакета.Имя);
-
- МакетыМетаданных.Добавить(
- Новый Структура("ИмяПроцедуры, Параметры, Представление",
- "ТестДолжен_ПроверитьМакетСКД",
- ПараметрыТеста,
- СтрШаблон_(ШаблонПредставления(), ТекОбъект.Имя, ТекДанныеМакета.Имя)));
-
- ДобавитьВложенныеМакеты(
- МакетыМетаданных,
- ТекДанныеМакета,
- ТекДанныеМакета.Имя,
- ТекОбъект.Имя,
- ИмяМенеджера);
-
- КонецЦикла;
-
- КонецЦикла;
-
- Если МакетыМетаданных.Количество() Тогда
- ГруппыМакетовМетаданных.Вставить(ПроверяемыйОбъект, МакетыМетаданных);
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат ГруппыМакетовМетаданных;
-
-КонецФункции
-
-Функция СтрШаблон_(СтрокаШаблон,
- Парам1 = Неопределено,
- Парам2 = Неопределено,
- Парам3 = Неопределено,
- Парам4 = Неопределено,
- Парам5 = Неопределено)
-
- Если КонтекстЯдра = Неопределено Тогда
- СтроковыеУтилиты = ВнешниеОбработки.Создать("СтроковыеУтилиты");
- Возврат СтроковыеУтилиты.ПодставитьПараметрыВСтроку(СтрокаШаблон, Парам1, Парам2, Парам3, Парам4, Парам5);
- Иначе
- Возврат КонтекстЯдра.СтрШаблон_(СтрокаШаблон, Парам1, Парам2, Парам3, Парам4, Парам5);
- КонецЕсли;
-
-КонецФункции
-
-Функция РазложитьСтрокуВМассивПодстрок(Строка, Разделитель = ",", ПропускатьПустыеСтроки = Неопределено)
-
- Если КонтекстЯдра = Неопределено Тогда
- СтроковыеУтилиты = ВнешниеОбработки.Создать("СтроковыеУтилиты");
- Возврат СтроковыеУтилиты.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель, ПропускатьПустыеСтроки);
- Иначе
- Возврат КонтекстЯдра.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель, ПропускатьПустыеСтроки);
- КонецЕсли;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ДоработанныйФункционал
-
-Функция ЕстьВИсключаемойКоллекцииНастроек(Знач ЧтоИщем, КлючНастроек)
-
- Если Настройки.Свойство(КлючНастроек)
- И ТипЗнч(Настройки[КлючНастроек]) = Тип("Массив")
- И Настройки[КлючНастроек].Найти(ЧтоИщем) <> Неопределено
- Тогда
- Возврат Истина;
- КонецЕсли;
-
- Возврат Ложь;
-
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
deleted file mode 100644
index 04d687d..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
deleted file mode 100644
index 1da5f7d..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 66156e2..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,231 +0,0 @@
-#Область ОписаниеПеременных
-
-&НаКлиенте
-Перем КонтекстЯдра;
-&НаКлиенте
-Перем Утверждения;
-
-#КонецОбласти
-
-#Область ОсновныеПроцедурыТеста
-
-&НаСервере
-Функция КлючНастройки() Экспорт
- Возврат МодульОбъекта().КлючНастройки();
-КонецФункции
-
-&НаКлиенте
-Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
- КонтекстЯдра = КонтекстЯдраПараметр;
- Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
-
- ЗагрузитьНастройки();
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт
-
- Если ТекущийРежимЗапуска() = РежимЗапускаКлиентскогоПриложения.ОбычноеПриложение Then
- Возврат;
- КонецЕсли;
-
- КонтекстЯдра = КонтекстЯдраПараметр;
- ЗагрузитьНастройки();
-
- Если Не НужноВыполнятьТест() Тогда
- Возврат;
- КонецЕсли;
-
- КонтекстЯдра = КонтекстЯдраПараметр;
-
- ДобавитьОбщиеМакеты(НаборТестов);
-
- ДобавитьМакетМетаданных(НаборТестов);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьМакетСКД(ИмяМенеджера, ИмяОбьекта, ИмяМакета) Экспорт
- ПроверитьМакетСКД(ИмяМенеджера, ИмяОбьекта, ИмяМакета);
-КонецПроцедуры
-
-&НаСервере
-Процедура ПроверитьМакетСКД(ИмяМенеджера, ИмяОбьекта, ИмяМакета)
- МодульОбъекта().ТестДолжен_ПроверитьМакетСКД(ИмяМенеджера, ИмяОбьекта, ИмяМакета);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьОбщийМакетСКД(ИмяМакета) Экспорт
- ПроверитьОбщийМакетСКД(ИмяМакета);
-КонецПроцедуры
-
-&НаСервере
-Процедура ПроверитьОбщийМакетСКД(ИмяМакета)
- МодульОбъекта().ТестДолжен_ПроверитьОбщийМакетСКД(ИмяМакета);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПроверитьВложенныйМакетСКД(ИмяМенеджера, ИмяОбьекта, ИменаМакетов) Экспорт
- ПроверитьВложенныйМакетСКД(ИмяМенеджера, ИмяОбьекта, ИменаМакетов);
-КонецПроцедуры
-
-&НаСервере
-Процедура ПроверитьВложенныйМакетСКД(ИмяМенеджера, ИмяОбьекта, ИменаМакетов)
- МодульОбъекта().ТестДолжен_ПроверитьВложенныйМакетСКД(ИмяМенеджера, ИмяОбьекта, ИменаМакетов);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТестДолжен_ПропуститьМакетСКД(ТекстСообщения) Экспорт
- Утверждения.ПропуститьТест(ТекстСообщения);
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область Настройки
-
-&НаКлиенте
-Процедура ЗагрузитьНастройки()
- Если ЗначениеЗаполнено(Объект.Настройки) Тогда
- Возврат;
- КонецЕсли;
-
- ПлагинНастройки = КонтекстЯдра.Плагин("Настройки");
- ПлагинНастройки.Инициализация(КонтекстЯдра);
-
- Объект.Настройки = ПлагинНастройки.ПолучитьНастройку(КлючНастройки());
-
- НастройкиПоУмолчанию = НастройкиПоУмолчанию();
- Если ТипЗнч(Объект.Настройки) <> Тип("Структура") Then
- Объект.Настройки = НастройкиПоУмолчанию;
- Иначе
- ЗаполнитьЗначенияСвойств(НастройкиПоУмолчанию, Объект.Настройки);
- Объект.Настройки = НастройкиПоУмолчанию;
- КонецЕсли;
-КонецПроцедуры
-
-&НаКлиенте
-Функция НастройкиПоУмолчанию()
-
- Результат = Новый Структура;
-
- Результат.Вставить("Используется", Истина);
- Результат.Вставить("ИсключенияОбщихМакетов", Новый Массив);
- Результат.Вставить("ИсключенияПоИмениМетаданных", Новый Массив);
- Результат.Вставить("ИсключенияПоИмениМакетов", Новый Массив);
-
- Возврат Результат;
-КонецФункции
-
-&НаКлиенте
-Функция НужноВыполнятьТест()
-
- ЗагрузитьНастройки();
-
- Если Не ЗначениеЗаполнено(Объект.Настройки) Тогда
- Возврат Истина;
- КонецЕсли;
-
- КлючНастройки = КлючНастройки();
-
- ВыполнятьТест = Истина;
- Если ТипЗнч(Объект.Настройки) = Тип("Структура")
- И Объект.Настройки.Свойство("Используется", ВыполнятьТест) Тогда
-
- Возврат ВыполнятьТест = Истина;
- КонецЕсли;
-
- Возврат Истина;
-
-КонецФункции
-
-#КонецОбласти
-
-&НаКлиенте
-Процедура ДобавитьОбщиеМакеты(НаборТестов)
-
- мОбщиеМакеты = ОбщиеМакеты();
-
- Если мОбщиеМакеты.Количество() > 0 Тогда
-
- НаборТестов.НачатьГруппу(ТекстОбщиеМакеты(), Ложь);
-
- Для Каждого ОбщийМакет Из мОбщиеМакеты Цикл
-
- НаборТестов.Добавить(ОбщийМакет.ИмяПроцедуры, ОбщийМакет.Параметры, ОбщийМакет.Представление);
-
- КонецЦикла;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервере
-Функция ОбщиеМакеты()
- Возврат МодульОбъекта().ОбщиеМакеты();
-КонецФункции
-
-&НаКлиенте
-Процедура ДобавитьМакетМетаданных(НаборТестов)
-
- ГруппыМакетовМетаданных = ГруппыМакетовМетаданных();
-
- Для Каждого ГруппаМакетовМетаданных Из ГруппыМакетовМетаданных Цикл
-
- Если ГруппаМакетовМетаданных.Значение.Количество() > 0 Тогда
-
- НаборТестов.НачатьГруппу(ГруппаМакетовМетаданных.Ключ, Ложь);
-
- Для Каждого МакетМетаданных Из ГруппаМакетовМетаданных.Значение Цикл
-
- НаборТестов.Добавить(
- МакетМетаданных.ИмяПроцедуры,
- МакетМетаданных.Параметры,
- МакетМетаданных.Представление);
-
- КонецЦикла;
-
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервере
-Функция ГруппыМакетовМетаданных()
- Возврат МодульОбъекта().ГруппыМакетовМетаданных();
-КонецФункции
-
-&НаСервере
-Функция МодульОбъекта()
- Возврат РеквизитФормыВЗначение("Объект");
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция ТекстОбщиеМакеты() Экспорт
- Возврат "ОбщиеМакеты";
-КонецФункции
-
-&НаКлиенте
-Функция ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(Знач ЧтоИщем,
- Знач КоллекцияДляПоиска,
- Знач Сообщение,
- Знач НаборТестов)
-
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(ЧтоИщем, КоллекцияДляПоиска) Тогда
-
- КонтекстЯдра.Отладка(Сообщение);
- ПараметрыТеста = НаборТестов.ПараметрыТеста(Сообщение);
-
- НаборТестов.Добавить("Тест_ПропуститьМакетСКД", ПараметрыТеста, Сообщение);
-
- Возврат Истина;
-
- КонецЕсли;
-
- Возврат Ложь;
-
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274.xml" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274.xml"
deleted file mode 100644
index 8e989b8..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274.xml"
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
- c3831ec8-d8d5-4f93-8a22-f9bfae07327f
- d9ce875b-8e44-47c3-bbb7-2d51a8b7193f
-
-
- 76d40422-beaf-4957-9d39-69502dede67f
- 768a107e-39db-412f-9056-6b7d54241618
-
-
-
- тесты_ФормированиеПечатныхФорм
-
-
- ru
- Формирование печатных форм
-
-
-
-
-
-
-
-
-
- Настройки
-
-
- ru
- Настройки
-
-
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
-
-
-
-
\ No newline at end of file
diff --git "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274/Ext/ObjectModule.bsl" "b/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274/Ext/ObjectModule.bsl"
deleted file mode 100644
index ffdee52..0000000
--- "a/src/tests/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274/\321\202\320\265\321\201\321\202\321\213_\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\265\321\207\320\260\321\202\320\275\321\213\321\205\320\244\320\276\321\200\320\274/Ext/ObjectModule.bsl"
+++ /dev/null
@@ -1,448 +0,0 @@
-#Область ОписаниеПеременных
-
-Перем КонтекстЯдра;
-Перем Утверждения;
-
-#КонецОбласти
-
-#Область ПрограммныйИнтерфейс
-
-#Область ИнтерфейсТестирования
-
-Функция КлючНастройки() Экспорт
- Возврат "ФормированиеПечатныхФорм";
-КонецФункции
-
-Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
- КонтекстЯдра = КонтекстЯдраПараметр;
- Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
-
- ЗагрузитьНастройки();
-КонецПроцедуры
-
-Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт
- КонтекстЯдра = КонтекстЯдраПараметр;
-
- ЗагрузитьНастройки();
-
- Если Не НужноВыполнятьТест(КонтекстЯдра) Тогда
- Возврат;
- КонецЕсли;
-
- Для Каждого МетаОбъект Из Метаданные.Документы Цикл
- Если ПравоДоступа("Просмотр", МетаОбъект) Тогда
- ДобавитьТестыДляДокумента(НаборТестов, МетаОбъект);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Тесты
-
-Процедура ПередЗапускомТеста() Экспорт
- //НачатьТранзакцию();
-КонецПроцедуры
-
-Процедура ПослеЗапускаТеста() Экспорт
- //Если ТранзакцияАктивна() Тогда
- // ОтменитьТранзакцию();
- //КонецЕсли;
-КонецПроцедуры
-
-Процедура Тест_ПолучитьПечатнуюФорму(МетаИмя, КомандаПечати) Экспорт
-
- ДокументыДляПечати = ПолучитьДокументыДляПечати(Метаданные.Документы[МетаИмя], КомандаПечати.УсловияВидимости);
- Если ДокументыДляПечати.Количество() = 0 Тогда
- Возврат;
- КонецЕсли;
-
- Для Каждого ДокСсылка Из ДокументыДляПечати Цикл
- НачалоСообщенияОбОшибке = "Печать документа " + ДокСсылка + ": ";
- КоллекцияПечатныхФорм = ПолучитьКоллекциюПечатныхФорм(КомандаПечати, ДокСсылка);
-
- Утверждения.Проверить(ТипЗнч(КоллекцияПечатныхФорм) = Тип("ТаблицаЗначений"), НачалоСообщенияОбОшибке + "Ожидалось, что КоллекцияПечатныхФорм будет иметь тип Таблица значений!");
- Утверждения.Проверить(КоллекцияПечатныхФорм.Количество() > 0, НачалоСообщенияОбОшибке + "Ожидалось, что количество элементов в КоллекцияПечатныхФорм будет больше 0!");
-
- Для Каждого СтрокаТаблицы Из КоллекцияПечатныхФорм Цикл
- ТабДок = СтрокаТаблицы.ТабличныйДокумент;
- Утверждения.Проверить(ТабДок <> Неопределено, НачалоСообщенияОбОшибке + "Ожидалось, что будет получен табличный документ, а получено значение <Неопределено>!");
- //++ РС 19.08.2021
- //Утверждения.Проверить(ТабДок.ВысотаТаблицы > 0, НачалоСообщенияОбОшибке + "Ожидалось, что высота полученного табличного документа будет больше 0!");
- //-- РС
- КонецЦикла;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура Тест_ПропуститьПечатнуюФорму(Знач Сообщение) Экспорт
- КонтекстЯдра.ПропуститьТест(Сообщение);
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область Настройки
-
-Процедура ЗагрузитьНастройки()
- Если ЗначениеЗаполнено(Настройки) Тогда
- Возврат;
- КонецЕсли;
-
- ПлагинНастройки = КонтекстЯдра.Плагин("Настройки");
- ПлагинНастройки.Инициализация(КонтекстЯдра);
-
- НастройкиПоУмолчанию = НастройкиПоУмолчанию();
- Настройки = ПлагинНастройки.ПолучитьНастройку(КлючНастройки());
- Если ТипЗнч(Настройки) <> Тип("Структура") Then
- Настройки = НастройкиПоУмолчанию;
- Иначе
- ЗаполнитьЗначенияСвойств(НастройкиПоУмолчанию, Настройки);
- Настройки = НастройкиПоУмолчанию;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция НастройкиПоУмолчанию()
-
- Результат = Новый Структура;
- Результат.Вставить("Используется", Истина);
- Результат.Вставить("КоличествоДокументов", 1);
- Результат.Вставить("ИсключенияПоИдентификатору", Новый Массив);
- Результат.Вставить("ИсключенияПоИмени", Новый Массив);
- Результат.Вставить("ИсключенияПоОбъекту", Новый Массив);
-
- Возврат Результат;
-КонецФункции
-
-Функция НужноВыполнятьТест(КонтекстЯдра)
-
- ЗагрузитьНастройки();
- //Настройки(КонтекстЯдра, ПутьНастройки);
-
- Если Не ЗначениеЗаполнено(Настройки) Тогда
- Возврат Истина;
- КонецЕсли;
-
- //ИмяТеста = ИмяТеста();
- КлючНастройки = КлючНастройки();
-
- ВыполнятьТест = Истина;
- Если ТипЗнч(Настройки) = Тип("Структура")
- И Настройки.Свойство("Используется", ВыполнятьТест) Тогда
- //И Настройки.Свойство("Параметры")
- //И Настройки.Параметры.Свойство(ИмяТеста) Тогда
-
- //ВыполнятьТест = Настройки.Параметры[ИмяТеста];
- Возврат ВыполнятьТест = Истина;
- КонецЕсли;
-
- Возврат Истина;
-
-КонецФункции
-
-#КонецОбласти
-
-Процедура ДобавитьТестыДляДокумента(НаборТестов, МетаОбъект)
-
- // TODO реализовать возможность указания исключаемых объектов, а то у некоторых документов в менеджере нет процедуры ДобавитьКомандыПечати()
- КомандыПечати = Неопределено;
- Попытка
- МодульУправлениеПечатью = Вычислить("УправлениеПечатью");
- КомандыПечати = МодульУправлениеПечатью.КомандыПечатиОбъекта(МетаОбъект);
- Исключение
- КонтекстЯдра.Отладка("Не удалось получить команды печати для документа " + МетаОбъект + ": " + ОписаниеОшибки());
- Возврат;
- КонецПопытки;
-
- Если КомандыПечати.Количество() = 0 Тогда
- Возврат;
- КонецЕсли;
-
- //++ РС 11.08.2021
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(МетаОбъект.Имя, Настройки.ИсключенияПоОбъекту) Тогда
- Возврат;
- КонецЕсли;
- //-- РС
-
- НаборТестов.НачатьГруппу("Печатные формы " + МетаОбъект.Синоним + " - Документ." + МетаОбъект.Имя);
-
- Для Каждого ТекущаяКомандаПечати Из КомандыПечати Цикл
-
- Идентификатор = ТекущаяКомандаПечати.Идентификатор;
- ИдентификаторДляСравнения = НРег(Идентификатор);
-
- ДопИнфо = "Идентификатор = " + Идентификатор;
- Если ТекущаяКомандаПечати.МенеджерПечати = "СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки" Тогда
- ДопИнфо = "Ссылка = " + ТекущаяКомандаПечати.ДополнительныеПараметры.Ссылка + "; " + ДопИнфо;
- КонецЕсли;
- ПредставлениеТеста = "Печатная форма " + МетаОбъект.Имя + ": " + ТекущаяКомандаПечати.Представление + " : " + "{" + ДопИнфо + "}";
-
- //++ РС 11.08.2021
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(Идентификатор, Настройки.ИсключенияПоИдентификатору)
- ИЛИ ТекущаяКомандаПечати.МенеджерПечати = ""
- Тогда
- Продолжить;
- КонецЕсли;
-
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(ТекущаяКомандаПечати.Представление, Настройки.ИсключенияПоИмени) Тогда
- Продолжить;
- КонецЕсли;
-
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(МетаОбъект.Имя, Настройки.ИсключенияПоОбъекту) Тогда
- Продолжить;
- КонецЕсли;
-
- //Сообщение = "Пропускаем из-за исключения по идентификатору - " + ПредставлениеТеста;
- //Если ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(Идентификатор, Настройки.ИсключенияПоИдентификатору,
- // Сообщение, НаборТестов) Тогда
- // Продолжить;
- //КонецЕсли;
- //
- //Сообщение = "Пропускаем из-за исключения по имени - " + ПредставлениеТеста;
- //Если ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(ТекущаяКомандаПечати.Представление, Настройки.ИсключенияПоИмени,
- // Сообщение, НаборТестов) Тогда
- // Продолжить;
- //КонецЕсли;
- //
- //Сообщение = "Пропускаем из-за исключения по имени объекта - " + ПредставлениеТеста;
- //Если ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(МетаОбъект.Имя, Настройки.ИсключенияПоОбъекту,
- // Сообщение, НаборТестов) Тогда
- // Продолжить;
- //КонецЕсли;
- //-- РС
-
- СтруктураКоманды = Новый Структура;
- Для Каждого Колонка Из КомандыПечати.Колонки Цикл
- ИмяКолонки = Колонка.Имя;
- СтруктураКоманды.Вставить(ИмяКолонки, ТекущаяКомандаПечати[ИмяКолонки]);
- КонецЦикла;
- ПараметрыТеста = НаборТестов.ПараметрыТеста(МетаОбъект.Имя, СтруктураКоманды);
-
- НаборТестов.Добавить("Тест_ПолучитьПечатнуюФорму", ПараметрыТеста, ПредставлениеТеста);
- КонецЦикла;
-
-КонецПроцедуры
-
-Функция ДобавитьТестИсключениеЕслиЕстьВИсключаемойКоллекции(Знач ЧтоИщем, Знач КоллекцияДляПоиска, Знач Сообщение,
- Знач НаборТестов)
-
- Если КонтекстЯдра.ЕстьВИсключаемойКоллекции(ЧтоИщем, КоллекцияДляПоиска) Тогда
- КонтекстЯдра.Отладка(Сообщение);
- ПараметрыТеста = НаборТестов.ПараметрыТеста(Сообщение);
-
- НаборТестов.Добавить("Тест_ПропуститьПечатнуюФорму", ПараметрыТеста, Сообщение);
-
- Возврат Истина;
- КонецЕсли;
-
- Возврат Ложь;
-КонецФункции
-
-//++ РС 11.08.2021
-Функция ЕстьВИсключаемойКоллекции(Знач ЧтоИщем, Знач КоллекцияДляПоиска)
- Возврат КоллекцияДляПоиска.Найти(ЧтоИщем) <> Неопределено ;
-КонецФункции //-- РС
-
-Функция ПолучитьДокументыДляПечати(МетаОбъект, УсловияВидимости = Неопределено)
-
- // здесь можно указать количество документов, для которых нужно проверить каждую форму
- КолвоТестируемыхДокументов = Настройки.КоличествоДокументов;
-
- Результат = Новый Массив;
-
- ШаблонТекстаЗапроса =
- "ВЫБРАТЬ ПЕРВЫЕ 1
- | Док.Ссылка КАК Ссылка
- |ИЗ
- | Документ.СчетНаОплатуПокупателю КАК Док
- |ГДЕ
- | &ДопУсловия
- |
- |УПОРЯДОЧИТЬ ПО
- | ВЫБОР
- | КОГДА Док.Проведен
- | ТОГДА 0
- | КОГДА Док.ПометкаУдаления
- | ТОГДА 2
- | ИНАЧЕ 1
- | КОНЕЦ,
- | Док.Дата УБЫВ";
- ШаблонТекстаЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "Документ.СчетНаОплатуПокупателю", "Документ." + МетаОбъект.Имя);
- ШаблонТекстаЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "ВЫБРАТЬ ПЕРВЫЕ 1", "ВЫБРАТЬ ПЕРВЫЕ " + Формат(КолвоТестируемыхДокументов, "ЧГ="));
-
- Запрос = Новый Запрос;
- Запрос.Текст = ШаблонТекстаЗапроса;
-
- ОперацииУсловий = Новый Соответствие;
- ОперацииУсловий.Вставить(ВидСравнения.Равно, "=");
- ОперацииУсловий.Вставить(ВидСравненияКомпоновкиДанных.Равно, "=");
- ОперацииУсловий.Вставить(ВидСравнения.Больше, ">");
- ОперацииУсловий.Вставить(ВидСравненияКомпоновкиДанных.Больше, ">");
- ОперацииУсловий.Вставить(ВидСравнения.БольшеИлиРавно, ">=");
- ОперацииУсловий.Вставить(ВидСравненияКомпоновкиДанных.БольшеИлиРавно, ">=");
- ОперацииУсловий.Вставить(ВидСравнения.Меньше, "<");
- ОперацииУсловий.Вставить(ВидСравненияКомпоновкиДанных.Меньше, "<");
- ОперацииУсловий.Вставить(ВидСравнения.МеньшеИлиРавно, "<=");
- ОперацииУсловий.Вставить(ВидСравненияКомпоновкиДанных.МеньшеИлиРавно, "<=");
- ОперацииУсловий.Вставить(ВидСравнения.НеРавно, "<>");
- ОперацииУсловий.Вставить(ВидСравненияКомпоновкиДанных.НеРавно, "<>");
-
- ДопУсловия = "";
- Если ТипЗнч(УсловияВидимости) = Тип("Массив") Тогда
- Для Каждого Условие Из УсловияВидимости Цикл
- ТекТекстУсловия = "";
- ТекОперация = ОперацииУсловий.Получить(Условие.ВидСравнения);
- Если ТекОперация <> Неопределено Тогда
- ТекТекстУсловия = Условие.Реквизит + " " + ТекОперация + " &" + Условие.Реквизит;
- ИначеЕсли Условие.ВидСравнения = ВидСравнения.ВСписке
- Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке Тогда
- ТекТекстУсловия = Условие.Реквизит + " В(&" + Условие.Реквизит + ")";
- ИначеЕсли Условие.ВидСравнения = ВидСравнения.НеВСписке
- Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке Тогда
- ТекТекстУсловия = "НЕ " + Условие.Реквизит + " В(&" + Условие.Реквизит + ")";
- ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено Тогда
- // TODO: обработать условие видимости "Заполнено"
- ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено Тогда
- // TODO: обработать условие видимости "Не заполнено"
- КонецЕсли;
- Если НЕ ПустаяСтрока(ТекТекстУсловия) Тогда
- ДопУсловия = ДопУсловия + ?(ПустаяСтрока(ДопУсловия), "", " И ") + ТекТекстУсловия;
- Запрос.УстановитьПараметр(Условие.Реквизит, Условие.Значение);
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
-
- Если НЕ ПустаяСтрока(ДопУсловия) Тогда
- Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДопУсловия", ДопУсловия);
- Иначе
- Запрос.УстановитьПараметр("ДопУсловия", Истина);
- КонецЕсли;
-
- РезультатЗапроса = Запрос.Выполнить();
-
- Если РезультатЗапроса.Пустой() Тогда
- // нет документов для тестирования :(
- Если НЕ ПустаяСтрока(ДопУсловия) Тогда
- // возможно причина пустого результата в доп.условиях:
- // попробуем без них
- Запрос = Новый Запрос;
- Запрос.Текст = ШаблонТекстаЗапроса;
- Запрос.УстановитьПараметр("ДопУсловия", Истина);
- РезультатЗапроса = Запрос.Выполнить();
- КонецЕсли;
- КонецЕсли;
-
- Если НЕ РезультатЗапроса.Пустой() Тогда
- Результат = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка");
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ПолучитьКоллекциюПечатныхФорм(КомандаПечати, ДокументДляПечати)
-
- Результат = Неопределено;
-
- ДокументыДляПечати = Новый Массив;
- ДокументыДляПечати.Добавить(ДокументДляПечати);
-
- Если КомандаПечати.МенеджерПечати = "СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки"
- И Вычислить("ОбщегоНазначения.ПодсистемаСуществует(""СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки"")") Тогда
- // печать внешней печатной формы
- ДополнительнаяОбработкаСсылка = КомандаПечати.ДополнительныеПараметры.Ссылка;
- ПараметрыИсточника = Новый Структура;
- ПараметрыИсточника.Вставить("ИдентификаторКоманды", КомандаПечати.Идентификатор);
- ПараметрыИсточника.Вставить("ОбъектыНазначения", ДокументыДляПечати);
- КоллекцияПечатныхФорм = Неопределено;
- ОбъектыПечати = Новый СписокЗначений;
- ПараметрыВывода = Неопределено;
-
- МодульУправлениеПечатью = Вычислить("УправлениеПечатью");
- //Попытка
- МодульУправлениеПечатью.ПечатьПоВнешнемуИсточнику(
- ДополнительнаяОбработкаСсылка,
- ПараметрыИсточника,
- КоллекцияПечатныхФорм,
- ОбъектыПечати,
- ПараметрыВывода
- );
-
- Результат = КоллекцияПечатныхФорм;
- //Исключение
- // Инфо = ИнформацияОбОшибке();
- // //TODO нужно не костылем исключить печатные формы, которые открываются не в 1С - word и т.п.
- // Если (Найти(Инфо.Описание, "Метод объекта не обнаружен (Печать)") > 0 Или
- // Найти(Инфо.Описание, "Object method not found (Печать)") > 0)
- // //И
- // //Найти(Инфо.ИсходнаяСтрока, "ОбъектПлагина.Инициализация(ЭтотОбъект);") > 0
- // //И
- // //( Найти(Инфо.ИмяМодуля, "Форма.УправляемаяФорма.Форма") > 0 Или
- // ////ExternalDataProcessor.xddTestRunner.Form.УправляемаяФорма.Form
- // //Найти(Инфо.ИмяМодуля, "Form.УправляемаяФорма.Form") > 0 )
- // Тогда
- // КонтекстЯдра.ПропуститьТест(НСтр("ru = 'Тест пропущен: '") + Инфо.Описание);
- // Иначе
- // ВызватьИсключение;
- // КонецЕсли;
- //КонецПопытки;
- Иначе
- // печать встроенной печатной формы
- ИмяМенеджераПечати = КомандаПечати.МенеджерПечати;
- ИменаМакетов = КомандаПечати.Идентификатор;
- МассивОбъектов = ДокументыДляПечати;
- //++ РС 18.08.2021
- //ПараметрыПечати = Новый Структура("ДополнительныеПараметры", КомандаПечати.ДополнительныеПараметры);
- ПараметрыПечати = ?(КомандаПечати.Свойство("ДополнительныеПараметры"), КомандаПечати.ДополнительныеПараметры,
- Новый Структура);
- //-- РС
-
- ДопустимыеТипыОбъектовПечати = Неопределено;
-
- МодульУправлениеПечатью = Вычислить("УправлениеПечатью");
- //Попытка
- ПечатныеФормы = МодульУправлениеПечатью.СформироватьПечатныеФормы(
- ИмяМенеджераПечати,
- ИменаМакетов,
- МассивОбъектов,
- ПараметрыПечати,
- ДопустимыеТипыОбъектовПечати
- );
-
- Результат = ПечатныеФормы.КоллекцияПечатныхФорм;
- //Исключение
- // Инфо = ИнформацияОбОшибке();
- // //TODO нужно не костылем исключить печатные формы, которые открываются не в 1С - word и т.п.
- // Если (Найти(Инфо.Описание, "Метод объекта не обнаружен (Печать)") > 0 Или
- // Найти(Инфо.Описание, "Object method not found (Печать)") > 0)
- // //И
- // //Найти(Инфо.ИсходнаяСтрока, "ОбъектПлагина.Инициализация(ЭтотОбъект);") > 0
- // //И
- // //( Найти(Инфо.ИмяМодуля, "Форма.УправляемаяФорма.Форма") > 0 Или
- // ////ExternalDataProcessor.xddTestRunner.Form.УправляемаяФорма.Form
- // //Найти(Инфо.ИмяМодуля, "Form.УправляемаяФорма.Form") > 0 )
- // Тогда
- // КонтекстЯдра.ПропуститьТест(НСтр("ru = 'Тест пропущен: '") + Инфо.Описание);
- // Иначе
- // ВызватьИсключение;
- // КонецЕсли;
- //КонецПопытки;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ИмяТеста()
- Возврат Метаданные().Имя;
-КонецФункции
-
-#КонецОбласти
diff --git a/src/tools/.gitkeep b/src/tools/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git "a/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.xml" "b/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.xml"
deleted file mode 100644
index c57b7be..0000000
--- "a/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.xml"
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-
- c3831ec8-d8d5-4f93-8a22-f9bfae07327f
- e30126c8-eb71-4599-b829-003b902f0fcb
-
-
- ad2d63ee-86f7-4b9d-8554-51242235153f
- a93ee18f-8524-430a-8c06-e4a15bedb47d
-
-
-
- УправлениеДымовымиТестами
-
-
- ru
- Управление дымовыми тестами
-
-
-
- ExternalDataProcessor.УправлениеДымовымиТестами.Form.Форма
-
-
-
-
-
-
- efdf3a18-3377-4604-8aef-b03abb387690
- 9481f5c2-2514-448a-bfb7-ae81c40f9498
-
-
- b6ae8105-d103-4b08-b8e1-0d2a6e3fb212
- 2ddadae4-d3e9-4dc5-a40f-c29da57f0ec4
-
-
-
- ЗначенияРеквизитовНовых
-
-
- ru
- Значения реквизитов новых
-
-
-
-
- DontCheck
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- false
-
-
-
- Use
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
deleted file mode 100644
index a566fc7..0000000
--- "a/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260.xml"
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
deleted file mode 100644
index beed250..0000000
--- "a/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,1200 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index ce77a9b..0000000
--- "a/src/tools/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\224\321\213\320\274\320\276\320\262\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,1581 +0,0 @@
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- ЗаполнитьДеревоМетаданныхНаСервере();
- НастройкиПоУмолчанию();
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовШапкиФормы
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоМетаданных
-
-&НаКлиенте
-Процедура ДеревоМетаданныхПриАктивизацииСтроки(Элемент)
-
- СтрокаДЗ = Элементы.ДеревоМетаданных.ТекущиеДанные;
-
- Если СтрокаДЗ<>Неопределено Тогда
- Отбор = Новый ФиксированнаяСтруктура(Новый Структура("ВидМетаданных,ИмяМетаданного",СтрокаДЗ.ВидМетаданныхДляПоиска,СтрокаДЗ.ИмяМетаданного));
- Элементы.ЗначенияРеквизитовНовых.ОтборСтрок = Отбор;
- Иначе
- Отбор = Новый ФиксированнаяСтруктура(Новый Структура("ВидМетаданных,ИмяМетаданного","",""));
- Элементы.ЗначенияРеквизитовНовых.ОтборСтрок = Отбор;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ДеревоМетаданныхВыборПриИзменении(Элемент)
-
- ТекущаяСтрока = Элементы.ДеревоМетаданных.ТекущиеДанные;
- ЗначениеФлажка = ТекущаяСтрока.Исключено;
- ПодчиненныеСтроки = ТекущаяСтрока.ПолучитьЭлементы();
- УстановитьЗначениеВыбораВПодчиненных(ПодчиненныеСтроки,ЗначениеФлажка);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ТаблицаДокументы
-
-&НаКлиенте
-Процедура ТаблицаДокументыПриАктивизацииСтроки(Элемент)
-
- ТекущиеДанные = Элементы.ТаблицаДокументы.ТекущиеДанные;
-
- Если ТекущиеДанные <> Неопределено Тогда
- Отбор = Новый ФиксированнаяСтруктура(Новый Структура("ИмяМетаданного", ТекущиеДанные.ИмяМетаданного));
- Иначе
- Отбор = Новый ФиксированнаяСтруктура(Новый Структура("ИмяМетаданного", ""));
- КонецЕсли;
-
- Элементы.ТаблицаПечатныеФормы.ОтборСтрок = Отбор;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормыЗначенияРеквизитовНовых
-
-&НаКлиенте
-Процедура ЗначенияРеквизитовНовыхПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
- СтрокаДЗ = Элементы.ДеревоМетаданных.ТекущиеДанные;
- Если Не ЗначениеЗаполнено(СтрокаДЗ.ИмяМетаданного) ТОгда
- СообщитьПользователю("Выберите объект метаданных, для добавления значений реквизитов", Отказ);
- ИначеЕсли СтрокаДЗ.ВидМетаданныхДляПоиска<>"Справочники" И СтрокаДЗ.ВидМетаданныхДляПоиска<>"Документы" Тогда
- СообщитьПользователю("Данная настройка доступна только для справочников или документов", Отказ);
- КонецЕсли;
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗначенияРеквизитовНовыхРеквизитПриИзменении(Элемент)
-
- ТекущаяСтрока = Элементы.ЗначенияРеквизитовНовых.ТекущиеДанные;
-
- УстановитьТипПоляВСтроке(ТекущаяСтрока);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗначенияРеквизитовНовыхПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
-
- СтрокаДЗ = Элементы.ДеревоМетаданных.ТекущиеДанные;
- ТекущаяСтрока = Элементы.ЗначенияРеквизитовНовых.ТекущиеДанные;
- ТекущаяСтрока.ВидМетаданных = СтрокаДЗ.ВидМетаданныхДляПоиска;
- ТекущаяСтрока.ИмяМетаданного = СтрокаДЗ.ИмяМетаданного;
-
- ЗаполнитьСписокРеквизитов(ТекущаяСтрока);
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗначенияРеквизитовНовыхЗначениеРеквизитаПриИзменении(Элемент)
- ЗначенияРеквизитовНовыхЗначениеРеквизитаПриИзмененииНаСервере();
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиКомандФормы
-
-&НаКлиенте
-Процедура ЗаполнитьДеревоМетаданных(Команда)
- ЗаполнитьДеревоМетаданныхНаСервере();
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗагрузитьФайлНастроек(Команда)
-
- ОбработчикОповещения = Новый ОписаниеОповещения("ЗагрузитьНастройкуПослеВыбораФайла",ЭтаФорма);
-
- ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
-
- ВыборФайла.Показать(ОбработчикОповещения);
- ВыборФайла.Фильтр = "Файлы JSON (*.json)|*.json";
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура СоздатьФайлНастроек(Команда)
-
- ОбработчикОповещения = Новый ОписаниеОповещения("ЗаписатьНастройкуПослеВыбораФайла",ЭтаФорма);
-
- ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
-
- ВыборФайла.Показать(ОбработчикОповещения);
- ВыборФайла.Фильтр = "Файлы JSON (*.json)|*.json";
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ИсключитьОбъектыНеРасширение(Команда)
- ИсключитьОбъектыНеРасширениеНаСервере();
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаСервере
-Процедура НастройкиПоУмолчанию()
-
- ТестироватьОткрытиеФорм = Истина;
- ОткрываемФормыНаКлиентеТестирования = Истина;
-
- ТестироватьПроведение = Истина;
- КоличествоДокументовПроведение = 2;
-
- ТестироватьПечатныеФормы = Истина;
- КоличествоДокументовПечатныеФормы = 2;
-
- ТестироватьМакетыСКД = Истина;
-
- ЗакрыватьМодальныеОкна = Истина;
- ТестироватьКомандныйИнтерфейс = Ложь;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ЗаполнитьДеревоМетаданныхНаСервере()
-
- ДЗ = РеквизитФормыВЗначение("ДеревоМетаданных");
-
- ДЗ.Строки.Очистить();
-
- ВидыПроверок = Новый Массив;
- ВидыПроверок.Добавить("Списки");
- ВидыПроверок.Добавить("Новые");
- ВидыПроверок.Добавить("Существующие");
-
- //добавляем справочники
- ДобавитьМетаданныеВДерево(ВидыПроверок,ДЗ,"Справочники");
-
- //добавляем документв
- ДобавитьМетаданныеВДерево(ВидыПроверок,ДЗ,"Документы");
-
- //добавляем отчеты
- ДобавитьМетаданныеВДерево(Новый Массив,ДЗ,"Отчеты");
-
- //добавляем обработки
- ДобавитьМетаданныеВДерево(Новый Массив,ДЗ,"Обработки");
-
- //добавляем бизнес процессы
- ДобавитьМетаданныеВДерево(Новый Массив,ДЗ,"БизнесПроцессы");
-
- ЗначениеВРеквизитФормы(ДЗ,"ДеревоМетаданных");
-
- ДобавитьМетаданныеВТаблицуДокументов();
- ДобавитьМетаданныеВТаблицуМакетовСКД();
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ДобавитьМетаданныеВДерево(ВидыПроверок,Дерево,ВидМетаданных)
-
- СтрокаМетаданных = Дерево.Строки.Добавить();
- СтрокаМетаданных.ВидМетаданных = ВидМетаданных;
- СтрокаМетаданных.ВидМетаданныхДляПоиска = ВидМетаданных;
-
- Если ВидыПроверок.Количество() Тогда
- Для каждого ВидПроверки из ВидыПроверок Цикл
-
- СтрокаПроверки = СтрокаМетаданных.Строки.Добавить();
- СтрокаПроверки.ВидМетаданныхДляПоиска = ВидМетаданных;
- СтрокаПроверки.ВидПроверкиДляПоиска = ВидПроверки;
- СтрокаПроверки.ВидПроверки = ВидПроверки;
-
- Для каждого Метаданное из Метаданные[ВидМетаданных] Цикл
-
- СтрокаОбъекта = СтрокаПроверки.Строки.Добавить();
- СтрокаОбъекта.ИмяМетаданного = Метаданное.Имя;
- СтрокаОбъекта.ВидМетаданныхДляПоиска = ВидМетаданных;
- СтрокаОбъекта.ВидПроверкиДляПоиска = ВидПроверки;
-
- УстановитьПризнакИзмененияРасширениями(СтрокаОбъекта, Метаданное);
-
- КонецЦикла;
- КонецЦикла;
- Иначе
- Для каждого Метаданное из Метаданные[ВидМетаданных] Цикл
-
- СтрокаОбъекта = СтрокаМетаданных.Строки.Добавить();
- СтрокаОбъекта.ВидМетаданныхДляПоиска = ВидМетаданных;
- СтрокаОбъекта.ИмяМетаданного = Метаданное.Имя;
-
- УстановитьПризнакИзмененияРасширениями(СтрокаОбъекта, Метаданное);
-
- КонецЦикла;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗаписатьНастройкуПослеВыбораФайла(Результат,ДопПараметры) Экспорт
-
- Если Результат <> Неопределено Тогда
-
- ИмяФайла = Результат[0];
-
- Файл = Новый Файл(ИмяФайла);
-
- ПараметрыЗаписи = Новый ПараметрыЗаписиJSON( , Символы.Таб);
- ЗаписьJSON = Новый ЗаписьJSON;
-
- Если ЗначениеЗаполнено(СтрокаJSON) Тогда
- ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписи);
- Иначе
- ЗаписьJSON.ОткрытьФайл(ИмяФайла);
- КонецЕсли;
-
- ЗаписатьJSON(ЗаписьJSON, СоответствиеНастроек());
-
- Если ЗначениеЗаполнено(СтрокаJSON) Тогда
- ВремСтрокаJSON = ЗаписьJSON.Закрыть();
-
- НастроенноеСоответствие = ПрочитатьСоответствиеИзСтрокиJSON(ВремСтрокаJSON);
-
- ЗаписьJSON = Новый ЗаписьJSON;
- ЗаписьJSON.ОткрытьФайл(ИмяФайла, , , ПараметрыЗаписи);
- ЗаписатьJSON(ЗаписьJSON, НастроенноеСоответствие);
- ЗаписьJSON.Закрыть();
- КонецЕсли;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервере
-Функция СоответствиеНастроек()
-
- НастройкиОткрытияФорм = Новый Соответствие;
-
- Для каждого СтрокаМетаданного из ДеревоМетаданных.ПолучитьЭлементы() Цикл
-
- ВидыПроверки = Новый Структура;
- ДобавлятьМетаданное = Истина;
-
- Если СтрокаМетаданного.ВидМетаданных = "Справочники" Или СтрокаМетаданного.ВидМетаданных = "Документы" Тогда
- //сначала добавляем данные о значениях реквизитов
- Если СтрокаМетаданного.Исключено Тогда
- ДобавлятьМетаданное = Ложь;
- Иначе
- НастройкаЗаполненияРеквизитов = ПолучитьНастройкуЗаполненияРеквизитов(СтрокаМетаданного.ВидМетаданных);
-
- Если НастройкаЗаполненияРеквизитов.Количество() Тогда
- ВидыПроверки.Вставить("ЗначенияРеквизитовНовых",НастройкаЗаполненияРеквизитов);
- КонецЕсли;
-
- //для справочников и документов есть еще подраздел виды проверки
- Для каждого СтрокаВидаПроверки Из СтрокаМетаданного.ПолучитьЭлементы() Цикл
-
- ДобавлятьВидПроверки = Истина;
- Если СтрокаВидаПроверки.Исключено Тогда
- ДобавлятьВидПроверки = Ложь;
- ВидыПроверки.Вставить(СтрокаВидаПроверки.ВидПроверки, Ложь);
- Иначе
- МетаданныеПроверки = Новый Массив;
-
- Для каждого СтрокаИмяМетаданного из СтрокаВидаПроверки.ПолучитьЭлементы() Цикл
-
- Если СтрокаИмяМетаданного.Исключено Тогда
- МетаданныеПроверки.Добавить(СтрокаИмяМетаданного.ИмяМетаданного);
- КонецЕсли;
-
- КонецЦикла;
-
- Если МетаданныеПроверки.Количество() Тогда
- ВидыПроверки.Вставить(СтрокаВидаПроверки.ВидПроверки,МетаданныеПроверки);
- КонецЕсли;
- КонецЕсли;
-
- КонецЦикла;
- КонецЕсли;
-
- Иначе
-
- МетаданныеПроверки = Новый Массив;
-
- Если СтрокаМетаданного.Исключено Тогда
- ДобавлятьМетаданное = Ложь;
- Иначе
- Для каждого СтрокаИмяМетаданного из СтрокаМетаданного.ПолучитьЭлементы() Цикл
-
- Если СтрокаИмяМетаданного.Исключено Тогда
- МетаданныеПроверки.Добавить(СтрокаИмяМетаданного.ИмяМетаданного);
- КонецЕсли;
-
- КонецЦикла;
- КонецЕсли;
-
- Если МетаданныеПроверки.Количество() Тогда
- ВидыПроверки = МетаданныеПроверки;
- КонецЕсли;
-
- КонецЕсли;
-
- Если ДобавлятьМетаданное Тогда
- Если ВидыПроверки.Количество() Тогда
- НастройкиОткрытияФорм.Вставить(СтрокаМетаданного.ВидМетаданных, ВидыПроверки);
- КонецЕсли;
- Иначе
- НастройкиОткрытияФорм.Вставить(СтрокаМетаданного.ВидМетаданных, Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- НастройкиОткрытияФорм.Вставить("Используется" , ТестироватьОткрытиеФорм);
- НастройкиОткрытияФорм.Вставить("ОткрываемФормыНаКлиентеТестирования" , ОткрываемФормыНаКлиентеТестирования);
-
- Результат = Новый Соответствие;
- Результат.Вставить(КлючНастройкиОткрытиеФорм(), НастройкиОткрытияФорм);
-
- ЗаписатьНастройкуПоКлючу(КлючНастройкиМодальныеОкна(), Результат);
- ЗаписатьНастройкуПоКлючу(КлючНастройкиКомандныйИнтерфейс(), Результат);
- ЗаписатьНастройкуПоКлючу(КлючНастройкиМакетыСКД(), Результат);
- ЗаписатьНастройкуПоКлючу(КлючНастройкиПроведениеДокументов(), Результат);
- ЗаписатьНастройкуПоКлючу(КлючНастройкиФормированиеПечатныхФорм(), Результат);
-
- Возврат Результат;
-
-КонецФункции
-
-&НаСервере
-Функция ПолучитьНастройкуЗаполненияРеквизитов(ВидМетаданных)
-
- НастройкаЗаполненияРеквизитов = Новый Структура;
-
- Отбор = Новый Структура("ВидМетаданных", ВидМетаданных);
-
- ТЗ = ЗначенияРеквизитовНовых.Выгрузить(Отбор);
-
- ТЗИменМетаданных = ТЗ.Скопировать();
- ТЗИменМетаданных.Свернуть("ИмяМетаданного");
-
- Для каждого СтрокаМетаданного из ТЗИменМетаданных Цикл
-
- ЗначенияРеквизитов = Новый Структура;
- Отбор = Новый Структура("ИмяМетаданного",СтрокаМетаданного.ИмяМетаданного);
- СтрокиРеквизитов = ТЗ.НайтиСтроки(Отбор);
-
- Для каждого СтрокаРеквзита из СтрокиРеквизитов Цикл
- ЗначенияРеквизитов.Вставить(СтрокаРеквзита.Реквизит,СтрокаРеквзита.ЗначениеРеквизитаСтрокой);
- КонецЦИкла;
-
- НастройкаЗаполненияРеквизитов.Вставить(СтрокаМетаданного.ИмяМетаданного,ЗначенияРеквизитов);
-
- КонецЦикла;
-
- Возврат НастройкаЗаполненияРеквизитов;
-
-КонецФункции
-
-&НаКлиенте
-Процедура УстановитьЗначениеВыбораВПодчиненных(ПодчиненныеСтроки,ЗначениеФлажка)
-
- Для каждого Строка из ПодчиненныеСтроки Цикл
- Строка.Исключено = ЗначениеФлажка;
- УстановитьЗначениеВыбораВПодчиненных(Строка.ПолучитьЭлементы(),ЗначениеФлажка);
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗаполнитьСписокРеквизитов(ТекущаяСтрока)
-
- МассивРеквизитов = ПолучитьМассивРеквизитовНаСервере(ТекущаяСтрока.ВидМетаданных,ТекущаяСтрока.ИмяМетаданного);
-
- Элементы.ЗначенияРеквизитовНовыхРеквизит.СписокВыбора.ЗагрузитьЗначения(МассивРеквизитов);
-
-КонецПроцедуры
-
-&НаСервере
-Функция ПолучитьМассивРеквизитовНаСервере(ЗНАЧ ВидМетаданных,ЗНАЧ ИмяМетаданного)
- ОбМетаданных = ПолучитьОбъектМетаданных(ВидМетаданных,ИмяМетаданного);
-
- МассивРеквизитов = Новый Массив;
-
- Для каждого Реквизит Из ОбМетаданных.Реквизиты Цикл
- МассивРеквизитов.Добавить(Реквизит.Имя);
- КонецЦикла;
-
- Для каждого Реквизит Из ОбМетаданных.СтандартныеРеквизиты Цикл
- МассивРеквизитов.Добавить(Реквизит.Имя);
- КонецЦикла;
-
- Возврат МассивРеквизитов;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ЗагрузитьНастройкуПослеВыбораФайла(Результат,ДопПараметры) Экспорт
-
- Если Результат<>Неопределено Тогда
-
- ИмяФайла = Результат[0];
-
- КоллекцияИсключаемыхКлючей = Новый Соответствие;
- КоллекцияИсключаемыхКлючей.Вставить("$schema", "$schema");
-
- ЧтениеJSON = Новый ЧтениеJSON;
- ЧтениеJSON.ОткрытьФайл(ИмяФайла);
-
- Соответствие = ПрочитатьJSON(ЧтениеJSON, Истина);
-
- СтрокаJSON = "";
-
- ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(,Символы.Таб);
- ЗаписьJSON = Новый ЗаписьJSON;
- ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписи);
- ЗаписатьJSON(ЗаписьJSON, Соответствие);
- СтрокаJSON = ЗаписьJSON.Закрыть();
-
- Результат = ПреобразоватьСоответствиеВСтруктуру(Соответствие, КоллекцияИсключаемыхКлючей);
-
- ЗагрузитьФайлНастроекНаСервере(Результат);
-
- ДеревоМетаданныхПриАктивизацииСтроки(Неопределено);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ПреобразоватьСоответствиеВСтруктуру(Знач Соответствие, Знач КоллекцияИсключаемыхКлючей)
- Результат = Новый Структура;
- Для каждого КлючЗначение Из Соответствие Цикл
- Если КоллекцияИсключаемыхКлючей.Получить(КлючЗначение.Ключ) = Неопределено Тогда
- Значение = КлючЗначение.Значение;
- Если ТипЗнч(Значение) = Тип("Соответствие") Тогда
- Значение = ПреобразоватьСоответствиеВСтруктуру(Значение, КоллекцияИсключаемыхКлючей);
- КонецЕсли;
- Результат.Вставить(КлючЗначение.Ключ, Значение);
- КонецЕсли;
- КонецЦикла;
- Возврат Результат;
-КонецФункции
-
-&НаСервере
-Процедура ЗагрузитьФайлНастроекНаСервере(Результат)
-
- ЗначенияРеквизитовНовых.Очистить();
- ЗаполнитьДеревоМетаданныхНаСервере();
-
- ДЗ = РеквизитФормыВЗначение("ДеревоМетаданных");
-
- Попытка
- Настройки = Результат[КлючНастройкиОткрытиеФорм()];
- Для каждого Элемент из Настройки Цикл
- ЗагрузитьНастройкиВДерево(ДЗ,Элемент);
- КонецЦикла;
- Исключение
- СообщитьПользователю("Ошибка при загрузке настроек открытия форм из файла: "+ОписаниеОшибки());
- КонецПопытки;
-
- ЗначениеВРеквизитФормы(ДЗ,"ДеревоМетаданных");
-
- ТестироватьОткрытиеФорм = НастройкаИспользуется(Результат, КлючНастройкиОткрытиеФорм());
- ОткрываемФормыНаКлиентеТестирования = НастройкаИспользуется(Результат, КлючНастройкиОткрытиеФорм(),
- "ОткрываемФормыНаКлиентеТестирования");
-
- ТестироватьПечатныеФормы = НастройкаИспользуется(Результат, КлючНастройкиФормированиеПечатныхФорм());
- ТестироватьПроведение = НастройкаИспользуется(Результат, КлючНастройкиПроведениеДокументов());
-
- ТестироватьМакетыСКД = НастройкаИспользуется(Результат, КлючНастройкиМакетыСКД());
-
- ЗакрыватьМодальныеОкна = Результат.Свойство(КлючНастройкиМодальныеОкна());
- ТестироватьКомандныйИнтерфейс = НастройкаИспользуется(Результат, КлючНастройкиКомандныйИнтерфейс());
-
- ЗагрузитьНастройкиВТаблицу(Результат, КлючНастройкиПроведениеДокументов());
- ЗагрузитьНастройкиВТаблицу(Результат, КлючНастройкиФормированиеПечатныхФорм());
- ЗагрузитьНастройкиВТаблицу(Результат, КлючНастройкиМакетыСКД());
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ЗагрузитьНастройкиВДерево(ДЗ,Элемент)
-
- //1. Исключаем из проверки формы указанные в файле настроек
- Если Элемент.Ключ = "Документы" Или Элемент.Ключ = "Справочники" Тогда
-
- Если ТипЗнч(Элемент.Значение) = Тип("Булево") И Элемент.Значение = Ложь Тогда
- Отбор = Новый Структура("ВидМетаданныхДляПоиска", Элемент.Ключ);
- МассивСтрокМетаданного = ДЗ.Строки.НайтиСтроки(Отбор, Ложь);
- Для каждого СтрокаМетаданного из МассивСтрокМетаданного Цикл
- СтрокаМетаданного.Исключено = Истина;
- КонецЦикла;
- Иначе
- Для каждого ПодчЭлемент из Элемент.Значение Цикл
- Если ПодчЭлемент.Ключ <> "ЗначенияРеквизитовНовых" Тогда
- Если ТипЗнч(ПодчЭлемент.Значение) = Тип("Булево") И ПодчЭлемент.Значение = Ложь Тогда
- Отбор = Новый Структура("ВидМетаданныхДляПоиска,ВидПроверкиДляПоиска", Элемент.Ключ, ПодчЭлемент.Ключ);
- МассивСтрокМетаданного = ДЗ.Строки.НайтиСтроки(Отбор,Истина);
- Для каждого СтрокаМетаданного из МассивСтрокМетаданного Цикл
- СтрокаМетаданного.Исключено = Истина;
- КонецЦикла;
- Иначе
- Для каждого Метаданное из ПодчЭлемент.Значение Цикл
- //ключ - вид проверки, значение массив метаданных
- Отбор = Новый Структура("ВидМетаданныхДляПоиска,ВидПроверкиДляПоиска,ИмяМетаданного", Элемент.Ключ, ПодчЭлемент.Ключ, Метаданное);
- МассивСтрокМетаданного = ДЗ.Строки.НайтиСтроки(Отбор,Истина);
- Для каждого СтрокаМетаданного из МассивСтрокМетаданного Цикл
- СтрокаМетаданного.Исключено = Истина;
- КонецЦикла;
- КонецЦикла;
- КонецЕсли;
-
- Иначе
-
- ВидМетаданных = Элемент.Ключ;
- //заполним таблицу со значениями реквизитов для запролнения
- Для каждого Метаданное из ПодчЭлемент.Значение Цикл
-
- ОбМетаданных = ПолучитьОбъектМетаданных(ВидМетаданных,Метаданное.Ключ);
-
- Для каждого Реквизит из Метаданное.Значение Цикл
- ЗначениеРеквизита = ЗначениеРеквизита(ОбМетаданных,Реквизит.Ключ,Реквизит.Значение);
- СтрокаРеквизита = ЗначенияРеквизитовНовых.Добавить();
- СтрокаРеквизита.ИмяМетаданного = Метаданное.Ключ;
- СтрокаРеквизита.Реквизит = Реквизит.Ключ;
- СтрокаРеквизита.ЗначениеРеквизита = ЗначениеРеквизита;
- СтрокаРеквизита.ЗначениеРеквизитаСтрокой = Реквизит.Значение;
- СтрокаРеквизита.ВидМетаданных = ВидМетаданных;
-
- КонецЦикла;
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
-
- ИначеЕсли Элемент.Ключ = "Обработки" Или Элемент.Ключ = "Отчеты" Тогда
-
- Если ТипЗнч(Элемент.Значение) = Тип("Булево") И Элемент.Значение = Ложь Тогда
- Отбор = Новый Структура("ВидМетаданныхДляПоиска", Элемент.Ключ);
- МассивСтрокМетаданного = ДЗ.Строки.НайтиСтроки(Отбор, Ложь);
- Для каждого СтрокаМетаданного из МассивСтрокМетаданного Цикл
- СтрокаМетаданного.Исключено = Истина;
- КонецЦикла;
- Иначе
- //находим строки по виду метаданного
- Отбор = Новый Структура("ВидМетаданных",Элемент.Ключ);
- МассивСтрокВидовМетаданных = ДЗ.Строки.НайтиСтроки(Отбор);
-
- Для каждого Метаданное из Элемент.Значение Цикл
-
- Отбор = Новый Структура("ВидМетаданныхДляПоиска,ИмяМетаданного",Элемент.Ключ,Метаданное);
- МассивСтрокМетаданного = ДЗ.Строки.НайтиСтроки(Отбор,Истина);
-
- Для каждого СтрокаМетаданного из МассивСтрокМетаданного Цикл
- СтрокаМетаданного.Исключено = Истина;
- КонецЦикла;
-
- КонецЦикла;
- КонецЕсли;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервере
-Функция ПолучитьОбъектМетаданных(ВидМетаданных,ИмяМетаданного)
-
- ПолноеИмяМетаданного = Лев(ВидМетаданных,СтрДлина(ВидМетаданных)-1)+"."+ИмяМетаданного;
- ОбМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМетаданного);
-
- Возврат ОбМетаданных;
-
-КонецФункции
-
-&НаСервере
-Функция ЗначениеРеквизита(МетаданныеОбъекта, ИмяРеквизита, ЗначениеРеквизитаИзФайла)
-
- //Плевако Е. добавил попытку для возможности указания значений стандартных реквизитов
- ЭтоСтандартныйРеквизит = Ложь;
- Попытка
- ТипРеквизита = МетаданныеОбъекта.Реквизиты[ИмяРеквизита].Тип.Типы()[0];
- Исключение
- ТипРеквизита = МетаданныеОбъекта.СтандартныеРеквизиты[ИмяРеквизита].Тип.Типы()[0];
- ЭтоСтандартныйРеквизит = Истина;
- КонецПопытки;
-
- Если ЭтоПримитивныйТипДанных(ТипРеквизита) Тогда
- Если ЭтоСтандартныйРеквизит Тогда
- Возврат МетаданныеОбъекта.СтандартныеРеквизиты[ИмяРеквизита].Тип.ПривестиЗначение(ЗначениеРеквизитаИзФайла);
- Иначе
- Возврат МетаданныеОбъекта.Реквизиты[ИмяРеквизита].Тип.ПривестиЗначение(ЗначениеРеквизитаИзФайла);
- КонецЕсли;
- КонецЕсли;
-
- // Значит, это ссылочный тип данных.
- Попытка
- МетаданныеЗначения = Метаданные.НайтиПоТипу(ТипРеквизита);
- Если Метаданные.Справочники.Содержит(МетаданныеЗначения) Тогда
- Возврат Справочники[МетаданныеЗначения.Имя].НайтиПоНаименованию(ЗначениеРеквизитаИзФайла,Истина);
- ИначеЕсли Метаданные.Перечисления.Содержит(МетаданныеЗначения) Тогда
- Возврат Перечисления[МетаданныеЗначения.Имя][ЗначениеРеквизитаИзФайла];
- КонецЕсли;
- // TODO: поддержку документов и других ссылочных типов данных (добавим по необходимости)
- Исключение
- КонецПопытки;
-
- Возврат Неопределено;
-
-КонецФункции
-
-&НаСервере
-Функция ЭтоПримитивныйТипДанных(Тип)
- Возврат Тип = Тип("Строка") Или Тип = Тип("Число")
- Или Тип = Тип("Дата") Или Тип = Тип("Булево");
-КонецФункции
-
-&НаКлиенте
-Процедура УстановитьТипПоляВСтроке(ТекущаяСтрока)
-
- Элементы.ЗначенияРеквизитовНовыхЗначениеРеквизита.ОграничениеТипа = ПолучитьОписаниеТиповРеквизита(ТекущаяСтрока.ВидМетаданных,ТекущаяСтрока.ИмяМетаданного,ТекущаяСтрока.Реквизит);
-
-КонецПроцедуры
-
-&НаСервере
-Функция ПолучитьОписаниеТиповРеквизита(ВидМетаданных,ИмяМетаданного,ИмяРеквизита)
-
- ОбМетаданных = ПолучитьОбъектМетаданных(ВидМетаданных,ИмяМетаданного);
-
- Попытка
- ТипРеквизита = ОбМетаданных.Реквизиты[ИмяРеквизита].Тип;
- Исключение
- ТипРеквизита = ОбМетаданных.СтандартныеРеквизиты[ИмяРеквизита].Тип;
- КонецПопытки;
-
- Возврат ТипРеквизита;
-
-КонецФункции
-
-&НаСервере
-Процедура ЗначенияРеквизитовНовыхЗначениеРеквизитаПриИзмененииНаСервере()
-
- СтрокаТЗ = ЗначенияРеквизитовНовых.НайтиПоИдентификатору(Элементы.ЗначенияРеквизитовНовых.ТекущаяСтрока);
- ЗначениеРеквизита = СтрокаТЗ.ЗначениеРеквизита;
-
- ТипРеквизита = ТипЗнч(ЗначениеРеквизита);
-
- Если ЭтоПримитивныйТипДанных(ТипРеквизита) Тогда
- СтрокаТЗ.ЗначениеРеквизитаСтрокой = ЗначениеРеквизита;
- Возврат;
- КонецЕсли;
-
- МетаданныеЗначения = Метаданные.НайтиПоТипу(ТипРеквизита);
- Если Метаданные.Справочники.Содержит(МетаданныеЗначения) Тогда
- СтрокаТЗ.ЗначениеРеквизитаСтрокой = ЗначениеРеквизитаОбъекта(ЗначениеРеквизита,"Наименование");
- ИначеЕсли Метаданные.Перечисления.Содержит(МетаданныеЗначения) Тогда
- Для каждого ЭлементПеречисления из МетаданныеЗначения.ЗначенияПеречисления Цикл
- Если ЭлементПеречисления.Синоним = Строка(ЗначениеРеквизита) Тогда
- СтрокаТЗ.ЗначениеРеквизитаСтрокой = ЭлементПеречисления.Имя;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиентеНаСервереБезКонтекста
-Процедура СообщитьПользователю(Знач Сообщение, Отказ = Ложь)
- Сообщить(Сообщение);
- Отказ = Истина;
-КонецПроцедуры
-
-#область ФункцииДляСовместимости
-
-// Возвращает структуру, содержащую значения реквизитов прочитанные из информационной базы
-// по ссылке на объект.
-//
-// Если доступа к одному из реквизитов нет, то в случае "ВыбратьРазрешенные = Ложь" возникнет исключение прав доступа,
-// а в случае "ВыбратьРазрешенные = Истина" вернется значение Неопределено для всех реквизитов.
-//
-// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
-// то следует использовать предварительный переход в привилегированный режим.
-//
-// Функция не предназначена для получения значений реквизитов пустых ссылок.
-//
-// Параметры:
-// Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.
-//
-// Реквизиты - Строка - имена реквизитов, перечисленные через запятую, в формате
-// требований к свойствам структуры.
-// Например, "Код, Наименование, Родитель".
-// - Структура, ФиксированнаяСтруктура - в качестве ключа передается
-// псевдоним поля для возвращаемой структуры с результатом, а в качестве
-// значения (опционально) фактическое имя поля в таблице.
-// Если значение не определено, то имя поля берется из ключа.
-// - Массив, ФиксированныйМассив - имена реквизитов в формате требований
-// к свойствам структуры.
-//
-// ВыбратьРазрешенные - Булево - если Истина, то запрос к объекту выполняется с учетом прав пользователя, и в случае,
-// если выборка будет пустая, то все реквизиты вернутся со значением Неопределено;
-// если Ложь, то возникнет исключение при отсутствии прав на любой из реквизитов.
-//
-// Возвращаемое значение:
-// Структура - содержит имена (ключи) и значения затребованных реквизитов.
-// Если строка затребованных реквизитов пуста, то возвращается пустая структура.
-// Если в качестве объекта передана пустая ссылка, то все реквизиты вернутся со значением Неопределено.
-//
-&НаСервере
-Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь) Экспорт
-
- Если ТипЗнч(Реквизиты) = Тип("Строка") Тогда
- Если ПустаяСтрока(Реквизиты) Тогда
- Возврат Новый Структура;
- КонецЕсли;
- Реквизиты = РазложитьСтрокуВМассивПодстрок(Реквизиты, ",", Ложь);
- КонецЕсли;
-
- СтруктураРеквизитов = Новый Структура;
- Если ТипЗнч(Реквизиты) = Тип("Структура") Или ТипЗнч(Реквизиты) = Тип("ФиксированнаяСтруктура") Тогда
- СтруктураРеквизитов = Реквизиты;
- ИначеЕсли ТипЗнч(Реквизиты) = Тип("Массив") Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда
- Для Каждого Реквизит Из Реквизиты Цикл
- СтруктураРеквизитов.Вставить(СтрЗаменить(Реквизит, ".", ""), Реквизит);
- КонецЦикла;
- Иначе
- ВызватьИсключение ПодставитьПараметрыВСтроку(НСтр("ru = 'Неверный тип второго параметра Реквизиты: %1'"), Строка(ТипЗнч(Реквизиты)));
- КонецЕсли;
-
- ТекстПолей = "";
- Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл
- ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
- СокрЛП(КлючИЗначение.Значение),
- СокрЛП(КлючИЗначение.Ключ));
-
- Псевдоним = СокрЛП(КлючИЗначение.Ключ);
-
- ТекстПолей = ТекстПолей + ?(ПустаяСтрока(ТекстПолей), "", ",") + "
- | " + ИмяПоля + " КАК " + Псевдоним;
- КонецЦикла;
-
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("Ссылка", Ссылка);
- Запрос.Текст =
- "ВЫБРАТЬ " + ?(ВыбратьРазрешенные, "РАЗРЕШЕННЫЕ", "") + "
- |" + ТекстПолей + "
- |ИЗ
- | " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы
- |ГДЕ
- | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка
- |";
- Выборка = Запрос.Выполнить().Выбрать();
-
- Результат = Новый Структура;
- Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл
- Результат.Вставить(КлючИЗначение.Ключ);
- КонецЦикла;
-
- Если Выборка.Следующий() Тогда
- ЗаполнитьЗначенияСвойств(Результат, Выборка);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Возвращает значение реквизита, прочитанного из информационной базы по ссылке на объект.
-//
-// Если доступа к реквизиту нет, то в случае "ВыбратьРазрешенные = Ложь" возникнет исключение прав доступа,
-// а в случае "ВыбратьРазрешенные = Истина" вернется значение Неопределено.
-//
-// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
-// то следует использовать предварительный переход в привилегированный режим.
-//
-// Функция не предназначена для получения значений реквизитов пустых ссылок.
-//
-// Параметры:
-// Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.
-// ИмяРеквизита - Строка - имя получаемого реквизита.
-// ВыбратьРазрешенные - Булево - если Истина, то запрос к объекту выполняется с учетом прав пользователя, и в случае,
-// если выборка будет пустая, то вернется значение Неопределено.
-//
-// Возвращаемое значение:
-// Произвольный - зависит от типа значения прочитанного реквизита.
-//
-&НаСервере
-Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные = Ложь) Экспорт
-
- Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные);
- Возврат Результат[СтрЗаменить(ИмяРеквизита, ".", "")];
-
-КонецФункции
-
-// Возвращает значения реквизитов, прочитанные из информационной базы
-// для нескольких объектов.
-//
-// Если доступа к одному из реквизитов какого-либо объекта нет, то в случае "ВыбратьРазрешенные = Ложь" возникнет
-// исключение прав доступа, а в случае "ВыбратьРазрешенные = Истина" вернется значение Неопределено для всех
-// реквизитов этого объекта.
-//
-// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
-// то следует использовать предварительный переход в привилегированный режим.
-//
-// Функция не предназначена для получения значений реквизитов пустых ссылок.
-//
-// Параметры:
-// МассивСсылок - Массив - массив ссылок на объекты одного типа.
-// ВАЖНО! Значения массива должны быть ссылками на объекты ОДНОГО типа!
-// ИменаРеквизитов - Строка - имена реквизитов перечисленные через запятую, в формате требований к свойствам структуры.
-// Например, "Код, Наименование, Родитель".
-//
-// ВыбратьРазрешенные - Булево - если Истина, то запрос к объектам выполняется с учетом прав пользователя, и в случае,
-// если какой-либо объект будет исключен из выборки по правам, то все реквизиты этого объекта
-// вернутся со значением Неопределено;
-// если Ложь, то возникнет исключение при отсутствии прав на любой из реквизитов любого
-// из объектов.
-// Возвращаемое значение:
-// Соответствие - список объектов и значений их реквизитов:
-// * Ключ - ЛюбаяСсылка - ссылка на объект;
-// * Значение - Структура - значения реквизитов:
-// ** Ключ - Строка - имя реквизита;
-// ** Значение - Произвольный - значение реквизита.
-//
-&НаСервере
-Функция ЗначенияРеквизитовОбъектов(МассивСсылок, ИменаРеквизитов, ВыбратьРазрешенные = Ложь) Экспорт
-
- ЗначенияРеквизитов = Новый Соответствие;
- Если МассивСсылок.Количество() = 0 Тогда
- Возврат ЗначенияРеквизитов;
- КонецЕсли;
-
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ " + ?(ВыбратьРазрешенные, "РАЗРЕШЕННЫЕ", "") + "
- | Ссылка КАК Ссылка, " + ИменаРеквизитов + "
- |ИЗ
- | " + МассивСсылок[0].Метаданные().ПолноеИмя() + " КАК Таблица
- |ГДЕ
- | Таблица.Ссылка В (&МассивСсылок)";
- Запрос.УстановитьПараметр("МассивСсылок", МассивСсылок);
- Выборка = Запрос.Выполнить().Выбрать();
-
- Для Каждого Ссылка Из МассивСсылок Цикл
- ЗначенияРеквизитов.Вставить(Ссылка, Новый Структура(ИменаРеквизитов));
- КонецЦикла;
-
- Пока Выборка.Следующий() Цикл
- ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов[Выборка.Ссылка], Выборка);
- КонецЦикла;
-
- Возврат ЗначенияРеквизитов;
-
-КонецФункции
-
-
-// Преобразует строку таблицы значений в структуру.
-// Свойства структуры и их значения совпадают с колонками переданной строки.
-//
-// Параметры:
-// СтрокаТаблицыЗначений - СтрокаТаблицыЗначений - строка таблицы значений.
-//
-// Возвращаемое значение:
-// Структура - преобразованная строка таблицы значений.
-//
-&НаСервере
-Функция СтрокаТаблицыЗначенийВСтруктуру(СтрокаТаблицыЗначений) Экспорт
-
- Структура = Новый Структура;
- Для каждого Колонка Из СтрокаТаблицыЗначений.Владелец().Колонки Цикл
- Структура.Вставить(Колонка.Имя, СтрокаТаблицыЗначений[Колонка.Имя]);
- КонецЦикла;
-
- Возврат Структура;
-
-КонецФункции
-
-// Подставляет параметры в строку. Максимально возможное число параметров - 9.
-// Параметры в строке задаются как %<номер параметра>. Нумерация параметров начинается с единицы.
-//
-// Параметры:
-// ШаблонСтроки - Строка - шаблон строки с параметрами (вхождениями вида "%<номер параметра>",
-// например, "%1 пошел в %2");
-// Параметр - Строка - значение подставляемого параметра.
-//
-// Возвращаемое значение:
-// Строка - текстовая строка с подставленными параметрами.
-//
-// Пример:
-// СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 пошел в %2'"), "Вася", "Зоопарк") = "Вася пошел
-// в Зоопарк".
-//
-&НаСервере
-Функция ПодставитьПараметрыВСтроку(Знач ШаблонСтроки,
- Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
- Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
- Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт
-
- ЕстьПараметрыСПроцентом = Найти(Параметр1, "%") > 0
- Или Найти(Параметр2, "%") > 0
- Или Найти(Параметр3, "%") > 0
- Или Найти(Параметр4, "%") > 0
- Или Найти(Параметр5, "%") > 0
- Или Найти(Параметр6, "%") > 0
- Или Найти(Параметр7, "%") > 0
- Или Найти(Параметр8, "%") > 0
- Или Найти(Параметр9, "%") > 0;
-
- Если ЕстьПараметрыСПроцентом Тогда
- Возврат ПодставитьПараметрыСПроцентом(ШаблонСтроки, Параметр1,
- Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
- КонецЕсли;
-
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%1", Параметр1);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%2", Параметр2);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%3", Параметр3);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%4", Параметр4);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%5", Параметр5);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%6", Параметр6);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%7", Параметр7);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%8", Параметр8);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%9", Параметр9);
- Возврат ШаблонСтроки;
-
-КонецФункции
-
-// Вставляет параметры в строку, учитывая, что в параметрах могут использоваться подстановочные слова %1, %2 и т.д.
-&НаСервере
-Функция ПодставитьПараметрыСПроцентом(Знач СтрокаПодстановки,
- Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
- Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
- Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено)
-
- Результат = "";
- Позиция = Найти(СтрокаПодстановки, "%");
- Пока Позиция > 0 Цикл
- Результат = Результат + Лев(СтрокаПодстановки, Позиция - 1);
- СимволПослеПроцента = Сред(СтрокаПодстановки, Позиция + 1, 1);
- ПодставляемыйПараметр = "";
- Если СимволПослеПроцента = "1" Тогда
- ПодставляемыйПараметр = Параметр1;
- ИначеЕсли СимволПослеПроцента = "2" Тогда
- ПодставляемыйПараметр = Параметр2;
- ИначеЕсли СимволПослеПроцента = "3" Тогда
- ПодставляемыйПараметр = Параметр3;
- ИначеЕсли СимволПослеПроцента = "4" Тогда
- ПодставляемыйПараметр = Параметр4;
- ИначеЕсли СимволПослеПроцента = "5" Тогда
- ПодставляемыйПараметр = Параметр5;
- ИначеЕсли СимволПослеПроцента = "6" Тогда
- ПодставляемыйПараметр = Параметр6;
- ИначеЕсли СимволПослеПроцента = "7" Тогда
- ПодставляемыйПараметр = Параметр7
- ИначеЕсли СимволПослеПроцента = "8" Тогда
- ПодставляемыйПараметр = Параметр8;
- ИначеЕсли СимволПослеПроцента = "9" Тогда
- ПодставляемыйПараметр = Параметр9;
- КонецЕсли;
- Если ПодставляемыйПараметр = "" Тогда
- Результат = Результат + "%";
- СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 1);
- Иначе
- Результат = Результат + ПодставляемыйПараметр;
- СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 2);
- КонецЕсли;
- Позиция = Найти(СтрокаПодстановки, "%");
- КонецЦикла;
- Результат = Результат + СтрокаПодстановки;
-
- Возврат Результат;
-КонецФункции
-
-&НаСервере
-Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Экспорт
-
- Результат = Новый Массив;
-
- // для обеспечения обратной совместимости
- Если ПропускатьПустыеСтроки = Неопределено Тогда
- ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
- Если ПустаяСтрока(Строка) Тогда
- Если Разделитель = " " Тогда
- Результат.Добавить("");
- КонецЕсли;
- Возврат Результат;
- КонецЕсли;
- КонецЕсли;
-
- Позиция = Найти(Строка, Разделитель);
- Пока Позиция > 0 Цикл
- Подстрока = Лев(Строка, Позиция - 1);
- Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
- Результат.Добавить(Подстрока);
- КонецЕсли;
- Строка = Сред(Строка, Позиция + СтрДлина(Разделитель));
- Позиция = Найти(Строка, Разделитель);
- КонецЦикла;
-
- Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда
- Результат.Добавить(Строка);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-//
-&НаКлиенте
-Функция ПрочитатьСоответствиеИзСтрокиJSON(Знач ИсхСтрока)
- ЧтениеJSON = Новый ЧтениеJSON;
- ЧтениеJSON.УстановитьСтроку(ИсхСтрока);
-
- НастроенноеСоответствие = ПрочитатьJSON(ЧтениеJSON, Истина);
-
- Возврат НастроенноеСоответствие;
-
-КонецФункции
-
-#Область КлючиНастроек
-
-//
-&НаКлиентеНаСервереБезКонтекста
-Функция КлючНастройкиОткрытиеФорм()
-
- Возврат "smoke";
-
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция КлючНастройкиМодальныеОкна()
-
- Возврат "МодальныеОкна";
-
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция КлючНастройкиКомандныйИнтерфейс()
-
- Возврат "CommandInterface";
-
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция КлючНастройкиМакетыСКД()
-
- Возврат "МакетыСКД";
-
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция КлючНастройкиПроведениеДокументов()
-
- Возврат "ПроведениеДокументов";
-
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция КлючНастройкиФормированиеПечатныхФорм()
-
- Возврат "ФормированиеПечатныхФорм";
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ИсключениеОбъектов
-
-&НаСервере
-Процедура ИсключитьОбъектыНеРасширениеНаСервере()
-
- ДеревоПроверкаФорм = РеквизитФормыВЗначение("ДеревоМетаданных");
- ОбойтиУровеньДерева(ДеревоПроверкаФорм.Строки);
- ЗначениеВРеквизитФормы(ДеревоПроверкаФорм, "ДеревоМетаданных");
-
- Для Каждого Строка Из ТаблицаДокументы Цикл
- Строка.ИсключеноПроведение = НЕ Строка.ЕстьИзмененияРасширениями;
- Строка.ИсключеноПечатныеФормы = НЕ Строка.ЕстьИзмененияРасширениями;
- КонецЦикла;
-
- Для Каждого Строка Из ТаблицаМакетыСКД Цикл
- Строка.Исключено = НЕ Строка.ЕстьИзмененияРасширениями;
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ОбойтиУровеньДерева(Строки)
-
- Для Каждого СтрокаДерева Из Строки Цикл
-
- Если НЕ СтрокаДерева.ИмяМетаданного = "" Тогда
- СтрокаДерева.Исключено = НЕ СтрокаДерева.ЕстьИзмененияРасширениями;
- КонецЕсли;
-
- ОбойтиУровеньДерева(СтрокаДерева.Строки);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура УстановитьПризнакИзмененияРасширениями(СтрокаОбъекта, Метаданное)
-
- СтрокаОбъекта.ЕстьИзмененияРасширениями = Метаданное.ЕстьИзмененияРасширениямиКонфигурации()
- ИЛИ Метаданное.РасширениеКонфигурации() <> Неопределено;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ДобавлениеМетаданных
-
-&НаСервере
-Процедура ДобавитьМетаданныеВТаблицуДокументов()
-
- ТаблицаДокументы.Очистить();
- ТаблицаПечатныеФормы.Очистить();
-
- Попытка
- МодульУправлениеПечатью = Вычислить("УправлениеПечатью"); //todo
- Исключение
- Сообщить("Не найден модуль ""УправлениеПечатью"". Анализ печатных форм не выполнен!");
- Возврат;
- КонецПопытки;
-
- Для каждого Метаданное Из Метаданные.Документы Цикл
-
- СтрокаОбъекта = ТаблицаДокументы.Добавить();
- СтрокаОбъекта.ИмяМетаданного = Метаданное.Имя;
-
- УстановитьПризнакИзмененияРасширениями(СтрокаОбъекта, Метаданное);
-
- КомандыПечати = Неопределено;
- Попытка
- КомандыПечати = МодульУправлениеПечатью.КомандыПечатиОбъекта(Метаданное);
- Исключение
- Продолжить;
- КонецПопытки;
-
- Если Не ЗначениеЗаполнено(КомандыПечати) Тогда
- Продолжить;
- КонецЕсли;
-
- Для Каждого ТекущаяКомандаПечати Из КомандыПечати Цикл
-
- Если ТекущаяКомандаПечати.МенеджерПечати = "" Тогда
- Продолжить;
- КонецЕсли;
-
- НоваяПФ = ТаблицаПечатныеФормы.Добавить();
- НоваяПФ.ИмяМетаданного = Метаданное.Имя;
- НоваяПФ.Идентификатор = ТекущаяКомандаПечати.Идентификатор;
- НоваяПФ.Исключено = СтрокаОбъекта.ИсключеноПечатныеФормы;
- КонецЦикла;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ДобавитьМетаданныеВТаблицуМакетовСКД()
-
- ТаблицаМакетыСКД.Очистить();
-
- Для Каждого ОбщийМакет Из Метаданные.ОбщиеМакеты Цикл
-
- Если ОбщийМакет.ТипМакета <> Метаданные.СвойстваОбъектов.ТипМакета.СхемаКомпоновкиДанных Тогда
- Продолжить;
- КонецЕсли;
-
- СтрокаОбъекта = ТаблицаМакетыСКД.Добавить();
- СтрокаОбъекта.Объект = ОбщиеМакеты();
- СтрокаОбъекта.ИмяМетаданного = ОбщийМакет.Имя;
-
- УстановитьПризнакИзмененияРасширениями(СтрокаОбъекта, ОбщийМакет);
-
- КонецЦикла;
-
- ПроверяемыеОбъекты = ПроверяемыеМетаданныеМакетыСКД();
-
- Для Каждого ПроверяемыйОбъект Из ПроверяемыеОбъекты Цикл
-
- Для Каждого ТекОбъект Из Метаданные[ПроверяемыйОбъект] Цикл
-
- Для Каждого ТекДанныеМакета Из ТекОбъект.Макеты Цикл
-
- Если ТекДанныеМакета.ТипМакета <> Метаданные.СвойстваОбъектов.ТипМакета.СхемаКомпоновкиДанных Тогда
- Продолжить;
- КонецЕсли;
-
- СтрокаОбъекта = ТаблицаМакетыСКД.Добавить();
- СтрокаОбъекта.Объект = ТекОбъект.Имя;
- СтрокаОбъекта.ИмяМетаданного = МакетыОбъекта();
-
- УстановитьПризнакИзмененияРасширениями(СтрокаОбъекта, ТекДанныеМакета);
-
- КонецЦикла;
-
- КонецЦикла;
-
- КонецЦикла;
-
- ТЗ = РеквизитФормыВЗначение("ТаблицаМакетыСКД");
- ТЗ.Свернуть("ИмяМетаданного, ЕстьИзмененияРасширениями, Исключено, Объект");
- ЗначениеВРеквизитФормы(ТЗ, "ТаблицаМакетыСКД");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ЗаписьНастроекПоКлючам
-
-&НаСервере
-Процедура ЗаписатьНастройкуПоКлючу(Ключ, СоответствиеНастроек)
-
- СоответствиеНастроек.Удалить(Ключ);
- Если Ключ = КлючНастройкиМодальныеОкна() Тогда
- ЗаписатьНастройкуМодальныеОкна(СоответствиеНастроек);
- ИначеЕсли Ключ = КлючНастройкиКомандныйИнтерфейс() Тогда
- ЗаписатьНастройкуКомандныйИнтерфейс(СоответствиеНастроек);
- ИначеЕсли Ключ = КлючНастройкиМакетыСКД() Тогда
- ЗаписатьНастройкуМакетыСКД(СоответствиеНастроек);
- ИначеЕсли Ключ = КлючНастройкиПроведениеДокументов() Тогда
- ЗаписатьНастройкуПроведениеДокументов(СоответствиеНастроек);
- ИначеЕсли Ключ = КлючНастройкиФормированиеПечатныхФорм() Тогда
- ЗаписатьНастройкуФормированиеПечатныхФорм(СоответствиеНастроек);
- Иначе
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ЗаписатьНастройкуМодальныеОкна(СоответствиеНастроек)
-
- Если НЕ ЗакрыватьМодальныеОкна Тогда
- Возврат;
- КонецЕсли;
-
- Поля = Новый Массив;
- Поля.Добавить("*Закрыть *?");
-
- Заголовки = Новый Массив;
- Заголовки.Добавить("* Шаблон *");
-
- ШаблонПомощника = Новый Соответствие;
- ШаблонПомощника.Вставить("Поля", Поля);
- ШаблонПомощника.Вставить("Заголовки", Заголовки);
- ШаблонПомощника.Вставить("Кнопка", 0);
-
- НастройкиМодальныеОкна = Новый Соответствие;
- НастройкиМодальныеОкна.Вставить("ШаблонПомощника", ШаблонПомощника);
-
- СоответствиеНастроек.Вставить(КлючНастройкиМодальныеОкна(), НастройкиМодальныеОкна);
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ЗаписатьНастройкуКомандныйИнтерфейс(СоответствиеНастроек)
-
- НастройкиОткрытиеФорм = СоответствиеНастроек.Получить(КлючНастройкиОткрытиеФорм());
-
- НастройкаКомандныйИнтерфейс = Новый Соответствие;
- НастройкаКомандныйИнтерфейс.Вставить("Используется" , ТестироватьКомандныйИнтерфейс);
- НастройкаКомандныйИнтерфейс.Вставить("СтрогийПорядокВыполнения" , Истина);
-
- Для Каждого ЭлементНастройки Из НастройкиОткрытиеФорм Цикл
-
- ТипМетаданных = ЭлементНастройки.Ключ;
- ЗначениеИсключений = ЭлементНастройки.Значение;
-
- Если ТипЗнч(ЗначениеИсключений) = Тип("Массив") Тогда
- НастройкаКомандныйИнтерфейс.Вставить(ТипМетаданных, ЗначениеИсключений);
- ИначеЕсли ТипЗнч(ЗначениеИсключений) = Тип("Структура")
- И ЗначениеИсключений.Свойство("Существующие")
- Тогда
- НастройкаКомандныйИнтерфейс.Вставить(ТипМетаданных, ЗначениеИсключений.Существующие);
- Иначе
- Продолжить;
- КонецЕсли;
-
- КонецЦикла;
-
- ИсключенияОбщиеКоманды = Новый Массив;
- ИсключенияОбщиеКоманды.Добавить("Удалить*");
- ИсключенияОбщиеКоманды.Добавить("ЗагрузитьДанныеИзФайла");
- ИсключенияОбщиеКоманды.Добавить("СверткаИнформационнойБазы");
- ИсключенияОбщиеКоманды.Добавить("УдалениеПомеченныхОбъектов");
-
- ИсключенияРазделы = Новый Массив;
- ИсключенияРазделы.Добавить("Настройки и администрирование");
-
- НастройкаКомандныйИнтерфейс.Вставить("ОбщиеКоманды", ИсключенияОбщиеКоманды);
- НастройкаКомандныйИнтерфейс.Вставить("Разделы", ИсключенияРазделы);
-
- СоответствиеНастроек.Вставить(КлючНастройкиКомандныйИнтерфейс(), НастройкаКомандныйИнтерфейс);
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ЗаписатьНастройкуМакетыСКД(СоответствиеНастроек)
-
- СтрокиИсключения = ТаблицаМакетыСКД.НайтиСтроки(Новый Структура("Исключено", Истина));
-
- МассивИсключенийОбщиеМакеты = Новый Массив;
- МассивИсключенийМетаданных = Новый Массив;
-
- Для Каждого СтрокаИсключение Из СтрокиИсключения Цикл
-
- Если СтрокаИсключение.Объект = ОбщиеМакеты() Тогда
- МассивИсключенийОбщиеМакеты.Добавить(СтрокаИсключение.ИмяМетаданного);
- Иначе
- МассивИсключенийМетаданных.Добавить(СтрокаИсключение.Объект);
- КонецЕсли;
-
- КонецЦикла;
-
- НастройкаМакетыСКД = Новый Соответствие;
- НастройкаМакетыСКД.Вставить("Используется", ТестироватьМакетыСКД);
- НастройкаМакетыСКД.Вставить("ИсключенияОбщихМакетов", МассивИсключенийОбщиеМакеты);
- НастройкаМакетыСКД.Вставить("ИсключенияПоИмениМетаданных", МассивИсключенийМетаданных);
-
- СоответствиеНастроек.Вставить(КлючНастройкиМакетыСКД(), НастройкаМакетыСКД);
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ЗаписатьНастройкуПроведениеДокументов(СоответствиеНастроек)
-
- СтрокиИсключения = ТаблицаДокументы.НайтиСтроки(Новый Структура("ИсключеноПроведение", Истина));
-
- МассивИсключений = Новый Массив;
- Для Каждого СтрокаИсключение Из СтрокиИсключения Цикл
- МассивИсключений.Добавить(СтрокаИсключение.ИмяМетаданного);
- КонецЦикла;
-
- НастройкаПроведениеДокументов = Новый Соответствие;
- НастройкаПроведениеДокументов.Вставить("Используется", ТестироватьПроведение);
- НастройкаПроведениеДокументов.Вставить("КоличествоДокументов", КоличествоДокументовПроведение);
- НастройкаПроведениеДокументов.Вставить("Исключения", МассивИсключений);
-
- СоответствиеНастроек.Вставить(КлючНастройкиПроведениеДокументов(), НастройкаПроведениеДокументов);
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ЗаписатьНастройкуФормированиеПечатныхФорм(СоответствиеНастроек)
-
- СтрокиИсключения = ТаблицаДокументы.НайтиСтроки(Новый Структура("ИсключеноПечатныеФормы", Истина));
-
- ИсключенияПоОбъекту = Новый Массив;
- Для Каждого СтрокаИсключение Из СтрокиИсключения Цикл
- ИсключенияПоОбъекту.Добавить(СтрокаИсключение.ИмяМетаданного);
- КонецЦикла;
-
- ИсключенияПоИдентификатору = Новый Массив;
- ИсключенияПоИдентификатору.Добавить("Комплект*");
-
- СтрокиИсключенныеМакеты = ТаблицаПечатныеФормы.НайтиСтроки(Новый Структура("Исключено", Истина));
- Для Каждого СтрокаИсключение Из СтрокиИсключенныеМакеты Цикл
- ИсключенияПоИдентификатору.Добавить(СтрокаИсключение.Идентификатор);
- КонецЦикла;
-
- НастройкаФормированиеПечатныхФорм = Новый Соответствие;
- НастройкаФормированиеПечатныхФорм.Вставить("Используется", ТестироватьПечатныеФормы);
- НастройкаФормированиеПечатныхФорм.Вставить("КоличествоДокументов", КоличествоДокументовПечатныеФормы);
- НастройкаФормированиеПечатныхФорм.Вставить("ИсключенияПоОбъекту", ИсключенияПоОбъекту);
- НастройкаФормированиеПечатныхФорм.Вставить("ИсключенияПоИдентификатору", ИсключенияПоИдентификатору);
-
- СоответствиеНастроек.Вставить(КлючНастройкиФормированиеПечатныхФорм(), НастройкаФормированиеПечатныхФорм);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ЗагрузкаНастроекПоКлючам
-
-&НаСервере
-Процедура ЗагрузитьНастройкиВТаблицу(Результат, Ключ)
-
- Если НЕ Результат.Свойство(Ключ) Тогда
- Возврат;
- КонецЕсли;
-
- Попытка
- Настройки = Результат[Ключ];
- Если Ключ = КлючНастройкиМакетыСКД() Тогда
-
- ИсключенияОбщихМакетов = Новый Массив;
- ИсключенияПоИмениМетаданных = Новый Массив;
-
- Настройки.Свойство("ИсключенияОбщихМакетов", ИсключенияОбщихМакетов);
- Настройки.Свойство("ИсключенияПоИмениМетаданных", ИсключенияПоИмениМетаданных);
-
- УстановитьПризнакИсключенияМакетаСКД(ИсключенияОбщихМакетов, ИсключенияПоИмениМетаданных);
-
- ИначеЕсли Ключ = КлючНастройкиПроведениеДокументов() Тогда
-
- Исключения = Новый Массив;
-
- Настройки.Свойство("Исключения", Исключения);
- Настройки.Свойство("КоличествоДокументов", КоличествоДокументовПроведение);
-
- УстановитьПризнакИсключенияДокумента(Исключения, "ИсключеноПроведение");
-
- ИначеЕсли Ключ = КлючНастройкиФормированиеПечатныхФорм() Тогда
-
- ИсключенияПоОбъекту = Новый Массив;
- ИсключенияПоИдентификатору = Новый Массив;
-
- Настройки.Свойство("КоличествоДокументов", КоличествоДокументовПечатныеФормы);
- Настройки.Свойство("ИсключенияПоОбъекту", ИсключенияПоОбъекту);
- Настройки.Свойство("ИсключенияПоИдентификатору", ИсключенияПоИдентификатору);
-
- УстановитьПризнакИсключенияПечатныеФормы(ИсключенияПоИдентификатору);
- УстановитьПризнакИсключенияДокумента(ИсключенияПоОбъекту, "ИсключеноПечатныеФормы");
-
- Иначе
- Возврат;
- КонецЕсли;
- Исключение
- ТекстОшибки = ПодставитьПараметрыВСтроку("Ошибка при загрузке настроек по ключу %1 из файла: %2", Ключ, ОписаниеОшибки());
- СообщитьПользователю(ТекстОшибки);
- КонецПопытки;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура УстановитьПризнакИсключенияМакетаСКД(ИсключенияОбщихМакетов, ИсключенияПоИмениМетаданных)
-
- Для Каждого СтрокаИсключение Из ИсключенияОбщихМакетов Цикл
-
- СтрокиОбъекта = ТаблицаМакетыСКД.НайтиСтроки(Новый Структура("Объект, ИмяМетаданного",
- ОбщиеМакеты(), СтрокаИсключение));
-
- Если СтрокиОбъекта.Количество() > 0 Тогда
- СтрокиОбъекта[0].Исключено = Истина;
- Иначе
- НоваяСтрока = ТаблицаМакетыСКД.Добавить();
- НоваяСтрока.ИмяМетаданного = СтрокаИсключение;
- НоваяСтрока.Объект = ОбщиеМакеты();
- НоваяСтрока.Исключено = Истина;
- КонецЕсли;
-
- КонецЦикла;
-
- Для Каждого СтрокаИсключение Из ИсключенияПоИмениМетаданных Цикл
-
- СтрокиОбъекта = ТаблицаМакетыСКД.НайтиСтроки(Новый Структура("Объект, ИмяМетаданного",
- СтрокаИсключение, МакетыОбъекта()));
-
- Если СтрокиОбъекта.Количество() > 0 Тогда
- СтрокиОбъекта[0].Исключено = Истина;
- Иначе
- НоваяСтрока = ТаблицаМакетыСКД.Добавить();
- НоваяСтрока.ИмяМетаданного = МакетыОбъекта();
- НоваяСтрока.Объект = СтрокаИсключение;
- НоваяСтрока.Исключено = Истина;
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура УстановитьПризнакИсключенияДокумента(Исключения, ИмяПризнака)
-
- Для Каждого СтрокаИсключение Из Исключения Цикл
-
- СтрокиДокумента = ТаблицаДокументы.НайтиСтроки(Новый Структура("ИмяМетаданного", СтрокаИсключение));
- Если СтрокиДокумента.Количество() > 0 Тогда
- СтрокиДокумента[0][ИмяПризнака] = Истина;
- Иначе
- НоваяСтрока = ТаблицаДокументы.Добавить();
- НоваяСтрока.ИмяМетаданного = СтрокаИсключение;
- НоваяСтрока[ИмяПризнака] = Истина;
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура УстановитьПризнакИсключенияПечатныеФормы(Исключения)
-
- Для Каждого СтрокаИсключение Из Исключения Цикл
-
- СтрокиДокумента = ТаблицаПечатныеФормы.НайтиСтроки(Новый Структура("Идентификатор", СтрокаИсключение));
- Для Каждого СтрокаДокумент Из СтрокиДокумента Цикл
- СтрокаДокумент.Исключено = Истина;
- КонецЦикла;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Служебные
-
-&НаСервере
-Функция НастройкаИспользуется(СтруктураНастроек, КлючТеста, КлючНастройки = "Используется")
-
- Возврат СтруктураНастроек.Свойство(КлючТеста)
- И СтруктураНастроек[КлючТеста].Свойство(КлючНастройки)
- И СтруктураНастроек[КлючТеста][КлючНастройки];
-
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция ОбщиеМакеты()
- Возврат "ОбщиеМакеты";
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция МакетыОбъекта()
- Возврат "МакетыОбъекта";
-КонецФункции
-
-&НаСервере
-Функция ПроверяемыеМетаданныеМакетыСКД()
-
- ПроверяемыеОбъекты = Новый Массив();
- ПроверяемыеОбъекты.Добавить("Справочники");
- ПроверяемыеОбъекты.Добавить("Документы");
- ПроверяемыеОбъекты.Добавить("Обработки");
- ПроверяемыеОбъекты.Добавить("Отчеты");
- ПроверяемыеОбъекты.Добавить("Перечисления");
- ПроверяемыеОбъекты.Добавить("ПланыВидовХарактеристик");
- ПроверяемыеОбъекты.Добавить("ПланыСчетов");
- ПроверяемыеОбъекты.Добавить("ПланыВидовРасчета");
- ПроверяемыеОбъекты.Добавить("РегистрыСведений");
- ПроверяемыеОбъекты.Добавить("РегистрыНакопления");
- ПроверяемыеОбъекты.Добавить("РегистрыБухгалтерии");
- ПроверяемыеОбъекты.Добавить("РегистрыРасчета");
- ПроверяемыеОбъекты.Добавить("БизнесПроцессы");
- ПроверяемыеОбъекты.Добавить("Задачи");
-
- Возврат ПроверяемыеОбъекты;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/xddTestRunner.epf b/xddTestRunner.epf
deleted file mode 100644
index e933423..0000000
Binary files a/xddTestRunner.epf and /dev/null differ