diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 000000000..8cb363c3e
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,13 @@
+
+
+
+## Описание изменний
+
+
+
+----
+
+- [ ] Добавлены тесты
+- [ ] Изменения отражены в документации (при необходимости)
+
+Close #<Укажите номер issue для автоматического закрытия после принятия реквеста>
diff --git a/documentation/blog/2024/05/07-engine-release.md b/documentation/blog/2024/05/07-engine-release.md
new file mode 100644
index 000000000..cd3d1f632
--- /dev/null
+++ b/documentation/blog/2024/05/07-engine-release.md
@@ -0,0 +1,34 @@
+---
+title: YaxUnit. Версия 24.04
+authors: alkoleft
+tags: [releases, yaxunit]
+---
+
+[Release 24.04](https://github.com/bia-technologies/yaxunit/releases/tag/24.04)
+
+## Новое в версии
+
+### Тестовые данные
+
+* [NEW] Метод `УстановитьСсылкуНового` в конструкторе объектов [#310](https://github.com/bia-technologies/yaxunit/issues/310), спасибо [@alexandr-yang](https://github.com/alexandr-yang)
+* Удаление тестовых данных без учета прав [#309](https://github.com/bia-technologies/yaxunit/issues/309), спасибо [@goodwinvu](https://github.com/goodwinvu)
+
+### Зависимости
+
+* [NEW] Зависимости тестов [#314](https://github.com/bia-technologies/yaxunit/issues/314)
+* [NEW] Добавить возможность указывать рабочий каталог в параметрах запуска [#313](https://github.com/bia-technologies/yaxunit/issues/313)
+* [NEW] Зависимости тестов. Фабрика XDTO [#322](https://github.com/bia-technologies/yaxunit/issues/322)
+
+Подробнее о зависимостях вы можете узнать из [документации](/docs/features/dependencies)
+
+### Прочее
+
+* Рефакторинг механизма событий [#315](https://github.com/bia-technologies/yaxunit/issues/315)
+ Добавлена возможность создавать обработчики событий за пределами расширения движка, подробнее в [документации](docs/features/events)
+* Добавлен шаблон PR
+
+## Исправленные ошибки
+
+* [Bug]: Не работает формат выбода ошибки HTML на Mac [#319](https://github.com/bia-technologies/yaxunit/issues/319), спасибо [@alexandr-yang](https://github.com/alexandr-yang)
+* Мелкие исправления в документации [#320](https://github.com/bia-technologies/yaxunit/issues/320), спасибо [@alexandr-yang](https://github.com/alexandr-yang)
+* [Bug]: Некорректное время результатов тестов в отчете формата allure, спасибо [@AlexPCRus](https://github.com/AlexPCRus)
diff --git a/documentation/docs/features/dependencies.md b/documentation/docs/features/dependencies.md
new file mode 100644
index 000000000..d6a82239e
--- /dev/null
+++ b/documentation/docs/features/dependencies.md
@@ -0,0 +1,128 @@
+# Зависимости
+
+Предположим у вас есть набор серверных тестов, которые требуют наличия файлов хранящихся в репозитории на клиенте.
+Для выполнения этих тестов вам необходимо передать файлы на сервер перед выполнением. В дополнение, передачу необходимо выполнить только один раз и только если выполняются тесты, для которых файлы нужны.
+
+В решении этой проблемы может помочь механизм зависимостей, который:
+
+* Позволяет указывать зависимости тестов
+* Для разрешения зависимостей используется код 1с, вызываемый с клиента
+* Разрешение зависимостей выполняется единожды и результат может быть переиспользован в различных тестах
+* Если по какой-то причине не удалось разрешить зависимость, то зависимые тесты не будут выполнятся.
+* YAxUnit на данный момент реализует зависимость от файлов проекта, которая проверяет наличие нужных файлов и переносит их на сервер.
+
+Например, вам необходимо проверить, что файл `.gitignore` содержит исключение для `ConfigDumpInfo.xml`.
+
+```bsl
+Процедура ИсполняемыеСценарии() Экспорт
+ ЮТТесты.
+ .ДобавитьТест("ПроверитьДанныеGitIgnore")
+ .ЗависитОт().ФайлыПроекта(".gitignore"); // Указываем зависимость
+КонецПроцедуры
+
+Процедура ПроверитьДанныеGitIgnore() Экспорт
+
+ ПолноеИмяФайла = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(".gitignore")).ПолноеИмя; // Получаем результат работы зависимости
+
+ ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмяФайла), "Файл каталога проекта не существует")
+ .ЭтоИстина();
+
+ Данные = ЮТОбщий.ДанныеТекстовогоФайла(ПолноеИмяФайла);
+ ЮТест.ОжидаетЧто(Данные, "Содержимое файла")
+ .Содержит("ConfigDumpInfo.xml");
+
+КонецПроцедуры
+```
+
+В примере движок проверит наличие файла `.gitignore` в каталоге проекта и перенесет его на сервер и сохранит в контексте путь к у файлу (причем, для сервера и клиент будут сохранены разные пути).
+
+Другой пример, в своих тестах мы добавили зависимость для создания `ФабрикаXDTO` из файлов:
+
+```bsl
+Процедура ИсполняемыеСценарии() Экспорт
+ ЮТТесты.
+ .ДобавитьТест("ВыполнитьОбмен")
+ .ЗависитОт().ФабрикаСбора();
+КонецПроцедуры
+
+Процедура ВыполнитьОбмен() Экспорт
+
+ Фабрика = ЮТест.Зависимость(ЮТЗависимости.ФабрикаСбора()).Фабрика; // Получаем результат работы зависимости
+ ...
+
+КонецПроцедуры
+```
+
+Здесь для тестирования различных обменов мы создаем, на основании файлов хранящихся в репозитории, фабрику XDTO. При этом фабрика создается только один раз и доступна во всех серверных тестах.
+
+## Зачем нужны зависимости
+
+Основной целью создания зависимостей было предоставление единого механизма для работы с "тяжелыми" и часто используемыми зависимостями тестов. В большинстве случаев достаточно создать общий метод и вызывать его в тестах или событиях и таким образом готовить контекст теста. Но в некоторых случаях, таких как использование "клиентских" файлов в серверных тестах, этот вариант не подходит. Чтобы избежать костылей в подобных ситуациях и были добавлены зависимости.
+
+## Принцип работы
+
+1. В своих тестах вы указываете зависимости для тестов (наборов или модулей).
+2. При запуске, YAxUnit анализирует какие тесты вы хотите запустить и собирает по ним реестр зависимостей.
+3. Движок обрабатывает реестр зависимостей:
+ * вызывает методы реализующие зависимости
+ * сохраняет признак успешности обработки зависимости
+ * сохраняет данные, которые сформировала зависимость.
+4. Тесты связанные с неразрешенными зависимостями переводятся в статус "Пропущен" и не вызываются при прогоне.
+5. После этого происходит запуск тестов.
+6. Любой тест может обратиться к результатам обработки зависимостей используя `ЮТест.Зависимость`
+
+## Доступные виды зависимостей
+
+### Зависимость `ФайлыПроекта`
+
+Зависимость тестов от файлов проекта. Если в каталоге проекта нет этих файлов, то тест не будет выполнен.
+
+:::tip
+Каталог проекта задается в [параметрах запуска](../getting-started/run/configuration.md) - `projectPath`.
+:::
+
+Эта зависимость переносит файлы на сервер, чтобы они были доступны в серверных тестах и сохраняет в контексте путь к перенесенному файлу/каталогу (для клиентского теста будет хранится путь к файлам на клиенте).
+
+```bsl
+Процедура ИсполняемыеСценарии() Экспорт
+ ЮТТесты.
+ .ДобавитьТест("РаботаСФайлами")
+ .ЗависитОт().ФайлыПроекта("ОтносительныеПуть"); // Указываем зависимость
+КонецПроцедуры
+
+Процедура РаботаСФайлами() Экспорт
+
+ КаталогСФайлами = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта("ОтносительныеПуть")).ПолноеИмя;
+ ...
+
+КонецПроцедуры
+```
+
+### Зависимость `ФабрикаXDTO`
+
+Зависимость тестов от фабрики XDTO, созданной на основании файлов проекта.
+Создает на сервере из файлов фабрику и сохраняет ее в контекст.
+
+```bsl
+Процедура ИсполняемыеСценарии() Экспорт
+ ЮТТесты.
+ ..ДобавитьСерверныйТест("ФабрикаJUnit").ЗависитОт().ФабрикаXDTO("fixtures/junit")
+КонецПроцедуры
+
+Процедура ФабрикаJUnit() Экспорт
+
+ Фабрика = ЮТест.Зависимость(ЮТЗависимости.ФабрикаXDTO("fixtures/junit")).Фабрика;
+
+ ТестовыйНабор = ЮТест.Данные().КонструкторОбъектаXDTO("testsuite", "http://junit.org/schema", Фабрика)
+ .ФикцияНезаполненных()
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(ТестовыйНабор)
+ .ИмеетТип(Тип("ОбъектXDTO"))
+ .Существует()
+ .ИмеетСвойство("properties")
+ .ИмеетСвойство("testcase")
+ .ИмеетСвойство("failures");
+
+КонецПроцедуры
+```
diff --git a/documentation/docs/features/events.md b/documentation/docs/features/events.md
index 67c86fe01..5845eda2c 100644
--- a/documentation/docs/features/events.md
+++ b/documentation/docs/features/events.md
@@ -67,3 +67,181 @@ YAxUnit также использует события для работы вн
* Выполнять начальную подготовку базы или настройку движка перед прогонами
* Реализовывать свои механизмы (например удаление данных с использованием подписок)
* Формировать отчеты о тестировании online.
+
+### Подписка на события движка
+
+Для подключения своих обработчиков событий вам необходимо:
+
+1. Создание структуры подсистем
+ 1. Создать свою подсистему (не рекомендуется использовать подсистемы движка) с именем оканчивающимся на `ЮТПодключаемыеМодули`, например, `Тесты_ЮТПодключаемыеМодули`.
+ 2. У созданной подсистемы снять флаг `ВключатьВКомандныйИнтерфейс`.
+ 3. Внутри нее создать подсистему с именем `ОбработчикиСобытий`.
+ 4. Внутри подсистемы `ОбработчикиСобытий` создать подсистемы для нужной группы событий:
+ * Инициализация
+ * ЗагрузкаТестов
+ * ИсполнениеТестов
+2. Добавить общий модуль (или использовать подходящий существующий) в котором будут размещены обработчики событий.
+3. Сигнатура и описание обработчиков описаны ниже, примеры многих из них можно увидеть в движке.
+
+#### Пример
+
+Задача: необходимо по умолчанию включить настройку `ВТранзакции` для всех тестов.
+
+Для этого необходимо подписаться на событие [`УстановитьПараметрыЗапускаПоУмолчанию`](#установитьпараметрызапускапоумолчаниюпараметрызапуска), которое относится к блоку [`Инициализация`](#инициализация)
+
+Структура подсистем:
+![Структура подсистем](images/test-settings-events-tree.png)
+
+```bsl title="НастройкаYAxUnit"
+#Область СлужебныйПрограммныйИнтерфейс
+
+// Установить настройки по умолчанию.
+//
+// Параметры:
+// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
+Процедура УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска) Экспорт
+
+ ПараметрыЗапуска.settings.ВТранзакции = Истина;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+```
+
+## Описание событий движка
+
+### Инициализация
+
+#### УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска)
+
+`&НаКлиенте`.
+
+Подписка на это событие позволяет:
+
+* выполнить базовую настройку параметров запуска
+* эту настройку можно переопределить параметрами запуска (json файл с тройками)
+* может быть полезно при расширении возможностей движка новыми л механизмами
+* обработчик может (а точнее, должен) изменять `ПараметрыЗапуска`
+
+Параметры:
+
+* ПараметрыЗапуска - см. [ЮТФабрика.ПараметрыЗапуска](/api/ЮТФабрика#параметрызапуска)
+
+#### ИнициализацияКонтекста(ДанныеКонтекста)
+
+`&НаСервере` и `&НаКлиенте`.
+
+Вызывается при первичной инициализации глобального контекста.
+Используется для первоначального заполнения контекста, параметра `ДанныеКонтекста`.
+
+Параметры:
+
+* ДанныеКонтекста - Структура
+
+#### Инициализация(ПараметрыЗапуска)
+
+`&НаКлиенте`
+
+Вызывается после инициализации контекстов и загрузки настроек.
+Позволяет выполнить настройку различных механизмов движка.
+
+:::note В этом обработчике нельзя менять параметр `ПараметрыЗапуска`.
+:::
+
+Параметры:
+
+* ПараметрыЗапуска - см. [ЮТФабрика.ПараметрыЗапуска](/api/ЮТФабрика#параметрызапуска)
+
+### ЗагрузкаТестов
+
+#### ПередЧтениеСценариев()
+
+`&НаКлиенте`
+
+Вызывается перед загрузкой тестов.
+
+#### ПередЧтениемСценариевМодуля(МетаданныеМодуля)
+
+`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
+
+Вызывается перед чтением сценариев конкретного модуля (вызовом метода `ИсполняемыеСценарии`).
+Позволяет настроить базовые параметры перед чтением настроек тестов модуля.
+Параметры:
+
+* МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+
+#### ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии)
+
+`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
+
+Позволяет настроить/обработать параметры загруженных настроек тестов модуля
+
+Параметры:
+
+* МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+* ИсполняемыеСценарии - см. ЮТТестыСлужебный.СценарииМодуля
+
+#### ПослеЧтенияСценариев(Сценарии)
+
+`&НаКлиенте`
+
+Вызывается после загрузки всех тестов.
+
+#### ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули)
+
+`&НаКлиенте`
+
+Вызывается после формирования исполняемых тестов, сформированных на основе зарегистрированных тестов.
+
+Например, из одного клиент-серверного теста формируется 2 исполняемых теста (для сервера и для клиента)
+
+### ИсполнениеТестов
+
+#### ПередВыполнениемТестов(ИсполняемыеМодули)
+
+`&НаКлиенте`
+
+Перед запуском всех тестов.
+
+#### ПередВсемиТестамиМодуля(ОписаниеСобытия)
+
+`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
+
+Смотрите описание [выше](#события-тестов)
+
+#### ПередТестовымНабором(ОписаниеСобытия)
+
+`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
+
+Смотрите описание [выше](#события-тестов)
+
+#### ПередКаждымТестом(ОписаниеСобытия)
+
+`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
+
+Смотрите описание [выше](#события-тестов)
+
+#### ПослеКаждогоТеста(ОписаниеСобытия)
+
+`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
+
+Смотрите описание [выше](#события-тестов)
+
+#### ПослеТестовогоНабора(ОписаниеСобытия)
+
+`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
+
+Смотрите описание [выше](#события-тестов)
+
+#### ПослеВсехТестовМодуля(ОписаниеСобытия)
+
+`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
+
+Смотрите описание [выше](#события-тестов)
+
+#### ПослеВыполненияТестов(РезультатТестирования)
+
+`&НаКлиенте`
+
+После выполнения всех тестов.
diff --git a/documentation/docs/features/images/test-settings-events-tree.png b/documentation/docs/features/images/test-settings-events-tree.png
new file mode 100644
index 000000000..968ecf352
Binary files /dev/null and b/documentation/docs/features/images/test-settings-events-tree.png differ
diff --git a/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png b/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png
index ae669afa2..1c3698fa2 100644
Binary files a/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png and b/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png differ
diff --git a/documentation/docs/getting-started/edt-plugin/images/report.png b/documentation/docs/getting-started/edt-plugin/images/report.png
index 8314a493e..201bf5167 100644
Binary files a/documentation/docs/getting-started/edt-plugin/images/report.png and b/documentation/docs/getting-started/edt-plugin/images/report.png differ
diff --git a/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png b/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png
index 6170ba18b..46dfef4ad 100644
Binary files a/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png and b/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png differ
diff --git a/documentation/docs/getting-started/run/configuration.md b/documentation/docs/getting-started/run/configuration.md
index 591621c51..5be0241eb 100644
--- a/documentation/docs/getting-started/run/configuration.md
+++ b/documentation/docs/getting-started/run/configuration.md
@@ -7,12 +7,13 @@
| Имя параметра | Тип | Значение по умолчанию | Описание |
|-------------------|-----------|-------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| `filter` | `Object` | [Object, смотрите ниже](#параметры-фильтрации) | Параметры фильтрации, поиска тестов |
-| `reportFormat` | `String` | `"jUnit"` | Формат отчета о тестировании, возможные значения: `"jUnit"`, `"JSON"` , `"allure"` |
+| `reportFormat` | `String` | `"jUnit"` | Формат отчета о тестировании, возможные значения: `"jUnit"`, `"JSON"` , `"allure"` |
| `reportPath` | `String` | `""` | Путь к формируемому отчету, можно указать или каталог (в которому будет создан файл отчета) или путь к файлу |
| `closeAfterTests` | `Boolean` | `True` | Признак закрытия 1С:Предприятие по завершению тестирования |
| `showReport` | `Boolean` | `True` | Открыть форму отчета завершению тестирования |
| `logging` | `Object` | [Object, смотрите ниже](#параметры-логирования) | Параметры логирования, подробнее ниже |
| `exitCode` | `String` | `""` | Путь к файлу, в который будет записан признак успешного выполнения (0 - успешно, 1 - есть ошибки) |
+| `projectPath` | `String` | `""` | Путь к каталогу проекта, содержащему файлы для тестов |
## Параметры фильтрации
diff --git a/documentation/docs/yaxunit-ui.md b/documentation/docs/yaxunit-ui.md
index 2d9ec4304..b1b158251 100644
--- a/documentation/docs/yaxunit-ui.md
+++ b/documentation/docs/yaxunit-ui.md
@@ -5,13 +5,13 @@ tags: [Начало]
# Графический интерфейс
-Расширение добавляет в командный интерфейс конфигурации новый раздел "Юнит тест".
+Расширение добавляет в командный интерфейс конфигурации новый раздел `YAxUnit`.
Из него вы можете интерактивно запускать тесты или сформировать файл конфигурации запуска.
## Запуск тестов
-Для запуска и отладки тестов вы можете воспользоваться командой "Запуск тестов"
+Для запуска и отладки тестов вы можете воспользоваться командой `Запуск тестирования`.
Будут автоматически загружены все тесты и выведены в виде дерева сгруппированного по тестовым наборам (модулям).
@@ -30,11 +30,11 @@ tags: [Начало]
## Интерфейс настройки конфигурации
Для облегчения создания конфигурации реализована форма конфигурирования.
-Чтобы найти форму, перейдите в подсистему `Юнит тесты` или воспользуйтесь меню `Все функции` / `Функции для технического специалиста`.
-Там найдете обработку `Юнит тесты`, из которой, воспользовавшись командой `Сформировать настройки` попадете в интерфейс конфигурирования
+Чтобы найти форму, перейдите в раздел `YAxUnit` и воспользуйтесь командой `Сформировать настройки тестирования`.
+Также можно воспользоваться меню `Все функции` / `Функции для технического специалиста`, там найдете обработку `Юнит-тесты`, из которой, воспользовавшись командой `Сформировать настройки` попадете в интерфейс конфигурирования.
![Конфигурирование](images/config-ui.png)
-Позволяет указать запускаемые тесты и получить строку запуска из терминала и параметры для конфигуратора
+Позволяет указать запускаемые тесты и получить строку запуска из терминала и параметры для конфигуратора.
![Настройка конфигуратора](images/configurator-settings.png)
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/Module.bsl"
new file mode 100644
index 000000000..afd2e1135
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/Module.bsl"
@@ -0,0 +1,64 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область ПрограммныйИнтерфейс
+
+// Указывает зависимость теста (набора или модуля) от файлов проекта.
+// Гарантирует доступность файлов как на клиенте, так и на сервере.
+//
+// Параметры:
+// ПутьКФайлам - Строка - Относительный путь к файлу проекта (относительно настройки projectPath)
+//
+// Возвращаемое значение:
+// CommonModule.ЮТТесты - Файлы проекта
+Функция ФайлыПроекта(ПутьКФайлам) Экспорт
+
+ ОписаниеЗависимости = ЮТФабрика.НовоеОписаниеЗависимости();
+ ОписаниеЗависимости.Идентификатор = "ФайлыПроекта";
+ ОписаниеЗависимости.МетодРеализации = "ЮТРазрешениеЗависимостейСлужебныйКлиент.ФайлыПроекта";
+ ОписаниеЗависимости.Параметры.Добавить(ПутьКФайлам);
+ ОписаниеЗависимости.Асинхронный = Истина;
+
+ Возврат ЮТЗависимостиСлужебный.ДобавитьЗависимостьПриРегистрации(ОписаниеЗависимости);
+
+КонецФункции
+
+// Указывает зависимость теста (набора или модуля) от фабрики XDTO, создаваемой на основании файлов.
+// Создает и кэширует фабрику, предоставляя к доступ из любого серверного теста
+//
+// Параметры:
+// ПутьКФайлам - Строка - Относительный путь к файлу проекта (относительно настройки projectPath)
+//
+// Возвращаемое значение:
+// CommonModule.ЮТТесты - Файлы проекта
+Функция ФабрикаXDTO(ПутьКФайлам) Экспорт
+
+ ФайлыПроекта(ПутьКФайлам);
+
+ ОписаниеЗависимости = ЮТФабрика.НовоеОписаниеЗависимости();
+ ОписаниеЗависимости.Идентификатор = "ФабрикаXDTO";
+ ОписаниеЗависимости.МетодРеализации = "ЮТРазрешениеЗависимостейСлужебныйВызовСервера.ФабрикаXDTO";
+ ОписаниеЗависимости.Параметры.Добавить(ПутьКФайлам);
+ ОписаниеЗависимости.ОбработкаНаСервере = Истина;
+ ОписаниеЗависимости.ДоступностьНаКлиенте = Ложь;
+
+ Возврат ЮТЗависимостиСлужебный.ДобавитьЗависимостьПриРегистрации(ОписаниеЗависимости);
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270.mdo"
new file mode 100644
index 000000000..2b73677be
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТЗависимости
+
+ ru
+ Зависимости
+
+ true
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
new file mode 100644
index 000000000..073c7e129
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -0,0 +1,155 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция ДанныеЗависимости(ОписаниеЗависимости) Экспорт
+
+ КлючЗависимости = КлючЗависимости(ОписаниеЗависимости);
+
+ Результаты = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаДанныеЗависимостей());
+ ДанныеЗависимости = Результаты[КлючЗависимости];
+
+ Если ДанныеЗависимости <> Неопределено Тогда
+ Возврат ДанныеЗависимости;
+ КонецЕсли;
+
+ РезультатРазрешения = РезультатРазрешенияЗависимости(КлючЗависимости);
+ ПредставлениеЗависимости = ПредставлениеЗависимости(ОписаниеЗависимости);
+
+ Если РезультатРазрешения = Неопределено Или НЕ РезультатРазрешения.Успешно Тогда
+ ВызватьИсключение СтрШаблон("Не указана или не разрешена зависимость `%1`", ПредставлениеЗависимости);
+ КонецЕсли;
+
+#Если Сервер Тогда
+ Если НЕ РезультатРазрешения.ДоступностьНаСервере Тогда
+ ВызватьИсключение СтрШаблон("Зависимость `%1` недоступна на сервере", ПредставлениеЗависимости);
+ КонецЕсли;
+#Иначе
+ Если НЕ РезультатРазрешения.ДоступностьНаКлиенте Тогда
+ ВызватьИсключение СтрШаблон("Зависимость `%1` недоступна на клиенте", ПредставлениеЗависимости);
+ КонецЕсли;
+#КонецЕсли
+
+ Возврат ДанныеЗависимости;
+
+КонецФункции
+
+// Служебный метод, используется только в модуле см. ЮТЗависимости.
+//
+// Параметры:
+// ОписаниеЗависимости - см. ЮТФабрика.НовоеОписаниеЗависимости
+//
+// Возвращаемое значение:
+// CommonModule.ЮТТесты
+Функция ДобавитьЗависимостьПриРегистрации(ОписаниеЗависимости) Экспорт
+
+ Если ЮТКонтекстСлужебный.ТекущийЭтапПрогона() <> ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов Тогда
+ Возврат ОписаниеЗависимости;
+ Иначе
+ ЮТТестыСлужебный.ДобавитьЗависимость(ОписаниеЗависимости);
+ Возврат ЮТТесты;
+ КонецЕсли;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция КлючЗависимости(ОписаниеЗависимости) Экспорт
+
+ Идентификатор = ВРег(ОписаниеЗависимости.Идентификатор);
+
+ Если ЗначениеЗаполнено(ОписаниеЗависимости.Параметры) Тогда
+ Возврат ЮТОбщий.СтрокаJSON(Новый Структура("Идентификатор, Параметры", Идентификатор, ОписаниеЗависимости.Параметры));
+ Иначе
+ Возврат Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+
+Функция ПредставлениеЗависимости(ОписаниеЗависимости) Экспорт
+
+ Если ЗначениеЗаполнено(ОписаниеЗависимости.Параметры) Тогда
+ Возврат ОписаниеЗависимости.Идентификатор + ЮТКоллекции.ПредставлениеМассива(ОписаниеЗависимости.Параметры);
+ Иначе
+ Возврат ОписаниеЗависимости.Идентификатор;
+ КонецЕсли;
+
+КонецФункции
+
+Функция УникальнаяЗависимость(Зависимости, ОписаниеЗависимости) Экспорт
+
+ КлючЗависимости = КлючЗависимости(ОписаниеЗависимости);
+
+ УникальнаяЗависимость = Зависимости[КлючЗависимости];
+
+ Если УникальнаяЗависимость <> Неопределено Тогда
+ Возврат УникальнаяЗависимость;
+ КонецЕсли;
+
+ Копия = ЮТКоллекции.СкопироватьСтруктуру(ОписаниеЗависимости);
+ Копия.Параметры = Новый ФиксированныйМассив(ОписаниеЗависимости.Параметры);
+ Копия.Ключ = КлючЗависимости;
+
+ УникальнаяЗависимость = Новый ФиксированнаяСтруктура(Копия);
+
+ Зависимости.Вставить(КлючЗависимости, УникальнаяЗависимость);
+
+ Возврат УникальнаяЗависимость;
+
+КонецФункции
+
+Функция РезультатРазрешенияЗависимости(КлючЗависимости)
+
+ ДанныеКонтекста = КонтекстРазрешенныеЗависимости();
+ Возврат ДанныеКонтекста[КлючЗависимости];
+
+КонецФункции
+
+#Область Контексты
+
+Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт
+
+ ДанныеКонтекста.Вставить(ИмяКонтекстаДанныеЗависимостей(), Новый Соответствие());
+ ДанныеКонтекста.Вставить(ИмяКонтекстаРазрешенныеЗависимости(), Новый Соответствие());
+
+КонецПроцедуры
+
+Функция КонтекстРазрешенныеЗависимости() Экспорт
+
+ Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаРазрешенныеЗависимости());
+
+КонецФункции
+
+Функция ИмяКонтекстаРазрешенныеЗависимости() Экспорт
+
+ Возврат "КонтекстРазрешенныеЗависимости";
+
+КонецФункции
+
+Функция ИмяКонтекстаДанныеЗависимостей() Экспорт
+
+ Возврат "КонтекстДанныеЗависимостей";
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
new file mode 100644
index 000000000..7b9e8ea57
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТЗависимостиСлужебный
+
+ ru
+ Зависимости служебный
+
+ true
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
new file mode 100644
index 000000000..4c853644f
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
@@ -0,0 +1,50 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция РазрешитьЗависимость(Знач ОписаниеЗависимости) Экспорт
+
+ Попытка
+ Результат = ЮТМетодыСлужебный.ВызватьФункцию(ОписаниеЗависимости.МетодРеализации, ОписаниеЗависимости.Параметры, Ложь);
+ Исключение
+ Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
+ Результат.Ошибка = ИнформацияОбОшибке();
+ КонецПопытки;
+
+ СохраняемыйКонтекст = Результат.СохраняемыйКонтекстСервер;
+ Если СохраняемыйКонтекст = Неопределено Тогда
+ СохраняемыйКонтекст = Результат.СохраняемыйКонтекст;
+ КонецЕсли;
+
+ Если СохраняемыйКонтекст <> Неопределено Тогда
+
+ ПередаваемыеЗначения = Новый Соответствие();
+ ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, СохраняемыйКонтекст);
+ ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ЮТЗависимостиСлужебный.ИмяКонтекстаДанныеЗависимостей(), ПередаваемыеЗначения);
+
+ КонецЕсли;
+
+ Результат.СохраняемыйКонтекст = Неопределено;
+ Результат.СохраняемыйКонтекстСервер = Неопределено;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
new file mode 100644
index 000000000..ac6e933e5
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
@@ -0,0 +1,10 @@
+
+
+ ЮТЗависимостиСлужебныйВызовСервера
+
+ ru
+ Зависимости служебный вызов сервера
+
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
new file mode 100644
index 000000000..29da51f9b
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
@@ -0,0 +1,346 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+// Разрешить зависимости.
+//
+// Параметры:
+// ТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
+// Обработчик - ОписаниеОповещения
+Процедура РазрешитьЗависимости(ТестовыеМодули, Обработчик) Экспорт
+
+ Зависимости = СобратьЗависимости(ТестовыеМодули);
+
+ Если НЕ ЗначениеЗаполнено(Зависимости) Тогда
+ ЮТЛогирование.Отладка("Обработка зависимостей: нет зависимостей");
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик);
+ Возврат;
+ КонецЕсли;
+
+ ПараметрыИсполнения = ЮТАсинхроннаяОбработкаСлужебныйКлиент.ЦепочкаАсинхроннойОбработки();
+ ПараметрыИсполнения.Вставить("ТестовыеМодули", ТестовыеМодули);
+
+ Для Каждого ОписаниеЗависимости Из Зависимости Цикл
+ Параметры = Новый Структура("ОписаниеЗависимости, ПараметрыИсполнения", ОписаниеЗависимости, ПараметрыИсполнения);
+
+ Если ОписаниеЗависимости.Асинхронный Тогда
+ Загрузчик = Новый ОписаниеОповещения("РазрешитьЗависимостьАсинхронно", ЭтотОбъект, Параметры);
+ Иначе
+ Загрузчик = Новый ОписаниеОповещения("РазрешитьЗависимость", ЭтотОбъект, Параметры);
+ КонецЕсли;
+
+ ПараметрыИсполнения.Цепочка.Добавить(Загрузчик);
+ КонецЦикла;
+
+ ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ПослеОбработкиЗависимостей", ЭтотОбъект, ПараметрыИсполнения));
+ ПараметрыИсполнения.Цепочка.Добавить(Обработчик);
+
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения);
+
+КонецПроцедуры
+
+// Дедупликация зависимостей.
+//
+// Параметры:
+// РезультатЧтенияТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей,
+// которые содержат информацию о запускаемых тестах
+Процедура ДедупликацияЗависимостей(РезультатЧтенияТестов) Экспорт
+
+ Зависимости = Новый Соответствие();
+
+ Для Каждого ТестовыйМодуль Из РезультатЧтенияТестов Цикл
+
+ ДедупликацияЗависимостейОбъекта(Зависимости, ТестовыйМодуль);
+
+ Для Каждого ТестовыйНабор Из ТестовыйМодуль.НаборыТестов Цикл
+
+ ДедупликацияЗависимостейОбъекта(Зависимости, ТестовыйНабор);
+
+ Для Каждого Тест Из ТестовыйНабор.Тесты Цикл
+ ДедупликацияЗависимостейОбъекта(Зависимости, Тест);
+ КонецЦикла;
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область РазрешениеЗависимостей
+
+Функция СобратьЗависимости(ТестовыеМодули)
+
+ Зависимости = Новый Массив();
+ ДобавленныеЗависимости = Новый Соответствие();
+
+ Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл
+
+ СобратьЗависимостиОбъекта(ТестовыйМодуль, Зависимости, ДобавленныеЗависимости);
+
+ Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
+
+ СобратьЗависимостиОбъекта(Набор, Зависимости, ДобавленныеЗависимости);
+
+ Для Каждого Тест Из Набор.Тесты Цикл
+ СобратьЗависимостиОбъекта(Тест, Зависимости, ДобавленныеЗависимости);
+ КонецЦикла;
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+ Возврат Зависимости;
+
+КонецФункции
+
+Процедура СобратьЗависимостиОбъекта(Объект, Зависимости, ДобавленныеЗависимости)
+
+ Для Каждого Зависимость Из Объект.Зависимости Цикл
+
+ Если ДобавленныеЗависимости[Зависимость.Ключ] = Неопределено Тогда
+ Зависимости.Добавить(Зависимость);
+ ДобавленныеЗависимости.Вставить(Зависимость.Ключ, Истина);
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура РазрешитьЗависимостьАсинхронно(_, Параметры) Экспорт
+
+ ОписаниеЗависимости = Параметры.ОписаниеЗависимости;
+ ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости);
+
+ ЮТЛогирование.Отладка("Обработка зависимостей: асинхронная обработка зависимости " + ПредставлениеЗависимости);
+
+ Если ОписаниеЗависимости.ОбработкаНаСервере Тогда
+ Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
+ Результат.Ошибка = "Скорректируйте параметры зависимости, асинхронная зависимость не может обрабатываться на сервере";
+ ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры);
+ Возврат;
+ КонецЕсли;
+
+ Обработчик = Новый ОписаниеОповещения("ОбработатьРезультатРазрешенияЗависимости", ЭтотОбъект, Параметры);
+
+ ИмяМетода = ОписаниеЗависимости.МетодРеализации;
+ ПараметрыМетода = ЮТКоллекции.СкопироватьМассив(ОписаниеЗависимости.Параметры);
+ ПараметрыМетода.Добавить(Обработчик);
+
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ИмяМетода, ПараметрыМетода);
+
+ Если Ошибка <> Неопределено Тогда
+ Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
+ Результат.Ошибка = Ошибка;
+ ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура РазрешитьЗависимость(_, Параметры) Экспорт
+
+ ОписаниеЗависимости = Параметры.ОписаниеЗависимости;
+
+ Попытка
+ Если ОписаниеЗависимости.ОбработкаНаСервере Тогда
+ Результат = ЮТЗависимостиСлужебныйВызовСервера.РазрешитьЗависимость(ОписаниеЗависимости);
+ Иначе
+ Результат = ЮТМетодыСлужебный.ВызватьФункцию(ОписаниеЗависимости.МетодРеализации, ОписаниеЗависимости.Параметры, Ложь);
+ КонецЕсли;
+ Исключение
+
+ Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
+ Результат.Ошибка = ИнформацияОбОшибке();
+
+ КонецПопытки;
+
+ ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры);
+
+КонецПроцедуры
+
+Процедура ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры) Экспорт
+
+ ОписаниеЗависимости = Параметры.ОписаниеЗависимости;
+
+ ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости);
+ ЮТЛогирование.Отладка("Обработка зависимостей: сохранение результата обработки зависимости " + ПредставлениеЗависимости);
+
+ Если НЕ Результат.Успешно Тогда
+ Сообщение = СтрШаблон("Не удалось разрешить зависимость `%1`", ПредставлениеЗависимости);
+ Результат.Ошибка = ОписаниеОшибкиПропуска(Сообщение, Результат.Ошибка);
+ ЮТЛогирование.Ошибка(Результат.Ошибка.Сообщение);
+ КонецЕсли;
+
+ СохранитьРезультатРазрешенияЗависимости(ОписаниеЗависимости, Результат);
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(Параметры.ПараметрыИсполнения);
+
+ ЮТЛогирование.Отладка("Обработка зависимостей: завершена обработка зависимости " + ПредставлениеЗависимости);
+
+КонецПроцедуры
+
+Процедура СохранитьРезультатРазрешенияЗависимости(ОписаниеЗависимости, Результат) Экспорт
+
+ ИмяДанныеЗависимостей = ЮТЗависимостиСлужебный.ИмяКонтекстаДанныеЗависимостей();
+ ИмяРазрешенныеЗависимости = ЮТЗависимостиСлужебный.ИмяКонтекстаРазрешенныеЗависимости();
+
+ Результат.ДоступностьНаКлиенте = ОписаниеЗависимости.ДоступностьНаКлиенте;
+ Результат.ДоступностьНаСервере = ОписаниеЗависимости.ДоступностьНаСервере;
+
+ КонтекстРазрешенныеЗависимости = ЮТЗависимостиСлужебный.КонтекстРазрешенныеЗависимости();
+ КонтекстРазрешенныеЗависимости.Вставить(ОписаниеЗависимости.Ключ, Результат);
+
+ ПередаваемыеЗначения = Новый Соответствие();
+ ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат);
+
+ ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяРазрешенныеЗависимости, ПередаваемыеЗначения);
+ ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяРазрешенныеЗависимости, ПередаваемыеЗначения, Истина);
+
+ Если Результат.СохраняемыйКонтекст <> Неопределено Тогда
+
+ ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат.СохраняемыйКонтекст);
+ ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения);
+ ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения, Истина);
+
+ КонецЕсли;
+
+ Если Результат.СохраняемыйКонтекстСервер <> Неопределено Тогда
+
+ ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат.СохраняемыйКонтекстСервер);
+ ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения, Истина);
+
+ КонецЕсли;
+
+ Если Результат.СохраняемыйКонтекстКлиент <> Неопределено Тогда
+
+ ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат.СохраняемыйКонтекстКлиент);
+ ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения);
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ПослеОбработкиЗависимостей(_, ПараметрыИсполнения) Экспорт
+
+ РазрешенныеЗависимости = ЮТЗависимостиСлужебный.КонтекстРазрешенныеЗависимости();
+ Статусы = ЮТФабрика.СтатусыИсполненияТеста();
+
+ Для Каждого ТестовыйМодуль Из ПараметрыИсполнения.ТестовыеМодули Цикл
+ РезультатРазрешенияЗависимостей = ПроверкаРазрешенныхЗависимостей(ТестовыйМодуль, РазрешенныеЗависимости);
+
+ Если НЕ РезультатРазрешенияЗависимостей.Успешно Тогда
+ УстановитьОшибкиВ(ТестовыйМодуль.НаборыТестов, РезультатРазрешенияЗависимостей.Ошибка);
+ Прервать;
+ КонецЕсли;
+
+ Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
+
+ РезультатРазрешенияЗависимостей = ПроверкаРазрешенныхЗависимостей(Набор, РазрешенныеЗависимости);
+
+ Если НЕ РезультатРазрешенияЗависимостей.Успешно Тогда
+ УстановитьОшибкиВ(Набор.Тесты, РезультатРазрешенияЗависимостей.Ошибка);
+ Набор.Ошибки.Добавить(РезультатРазрешенияЗависимостей.Ошибка);
+ Набор.Выполнять = Ложь;
+ Продолжить;
+ КонецЕсли;
+
+ Для Каждого Тест Из Набор.Тесты Цикл
+ РезультатРазрешенияЗависимостей = ПроверкаРазрешенныхЗависимостей(Тест, РазрешенныеЗависимости);
+
+ Если НЕ РезультатРазрешенияЗависимостей.Успешно Тогда
+ Тест.Ошибки.Добавить(РезультатРазрешенияЗависимостей.Ошибка);
+ Тест.Статус = Статусы.Пропущен;
+ КонецЕсли;
+ КонецЦикла;
+
+ КонецЦикла;
+ КонецЦикла;
+
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения);
+
+КонецПроцедуры
+
+Функция ОписаниеОшибкиПропуска(Описание, ИнформацияОбОшибке = Неопределено)
+
+ Ошибка = ЮТФабрикаСлужебный.ОписаниеОшибкиПропуска(Описание);
+
+ Если ИнформацияОбОшибке = Неопределено Тогда
+ Возврат Ошибка;
+ КонецЕсли;
+
+ ТипОшибки = ТипЗнч(ИнформацияОбОшибке);
+
+ Если ТипОшибки = Тип("Структура") Тогда
+ ЗаполнитьЗначенияСвойств(Ошибка, ИнформацияОбОшибке, , "ТипОшибки, Сообщение");
+ Ошибка.Сообщение = ЮТСтроки.ДобавитьСтроку(Описание, ИнформацияОбОшибке.Сообщение, Символы.ПС);
+ ИначеЕсли ТипОшибки = Тип("ИнформацияОбОшибке") Тогда
+ Ошибка.Стек = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
+ ИначеЕсли ТипОшибки = Тип("Строка") Тогда
+ Ошибка.Сообщение = ЮТСтроки.ДобавитьСтроку(Описание, ИнформацияОбОшибке, Символы.ПС);
+ КонецЕсли;
+
+ Возврат Ошибка;
+
+КонецФункции
+
+Функция УстановитьОшибкиВ(Объекты, Ошибка)
+
+ Для Каждого Объект Из Объекты Цикл
+ Объект.Ошибки.Добавить(Ошибка);
+ Объект.Выполнять = Ложь;
+ КонецЦикла;
+
+ Возврат Ошибка;
+
+КонецФункции
+
+Функция ПроверкаРазрешенныхЗависимостей(Объект, РазрешенныеЗависимости)
+
+ Для Каждого ОписаниеЗависимости Из Объект.Зависимости Цикл
+ Результат = РазрешенныеЗависимости[ОписаниеЗависимости.Ключ];
+
+ Если Результат = Неопределено Тогда
+ Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
+ ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости);
+ Сообщение = СтрШаблон("Нет информации о зависимости `%1`, что-то пошло не так", ПредставлениеЗависимости);
+ Результат.Ошибка = ОписаниеОшибкиПропуска(Сообщение);
+ КонецЕсли;
+
+ Если НЕ Результат.Успешно Тогда
+ Возврат Результат;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Новый Структура("Успешно", Истина);
+
+КонецФункции
+
+#КонецОбласти
+
+Процедура ДедупликацияЗависимостейОбъекта(Зависимости, Объект)
+
+ Для Инд = 0 По Объект.Зависимости.ВГраница() Цикл
+ Объект.Зависимости[Инд] = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, Объект.Зависимости[Инд]);
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo"
new file mode 100644
index 000000000..b0cf4a168
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo"
@@ -0,0 +1,10 @@
+
+
+ ЮТЗависимостиСлужебныйКлиент
+
+ ru
+ Зависимости служебный клиент
+
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl"
index e2a540455..2a24499ef 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl"
@@ -206,7 +206,9 @@
КонецФункции
-// Возвращает коллекцию движений документа
+// Функция получает список движений по указанному документу и регистру.
+// Если документ не делает движений по указанному регистру, функция вызывает исключение.
+// Результатом работы функции является список записей регистра, отсортированных по номеру строки.
//
// Параметры:
// Документ - ДокументСсылка
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
index 55ce81d8b..fe2c9c409 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
@@ -28,6 +28,7 @@
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПодключитьКомпоненты");
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикИнициализация");
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьТесты");
+ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРазрешитьЗависимости");
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование");
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьОтчет");
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьКодВозврата");
@@ -44,6 +45,7 @@
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикИнициализация");
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьТесты");
+ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРазрешитьЗависимости");
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование");
ПараметрыИсполнения.Цепочка.Добавить(ОбработчикЗавершения);
@@ -120,12 +122,16 @@
Процедура ВыполнитьИнициализацию(ПараметрыЗапуска) Экспорт
ЮТКонтекстСлужебный.ИнициализироватьКонтекст();
+ ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().Инициализация);
+
+ ЮТКонтекстСлужебный.СохранитьПараметрыЗапуска(ПараметрыЗапуска);
ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ПараметрыЗапуска.settings);
- // Повторно сохраним для передачи на сервер
- ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения());
ЮТСобытияСлужебный.Инициализация(ПараметрыЗапуска);
+ // Повторно сохраним для передачи на сервер
+ ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения());
+
КонецПроцедуры
#КонецОбласти
@@ -140,7 +146,7 @@
КонецПроцедуры
-Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт
+Процедура ОбработчикЗагрузитьПараметры(_, ДополнительныеПараметры) Экспорт
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
ЮТПараметрыЗапускаСлужебный.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик);
@@ -159,15 +165,16 @@
КонецПроцедуры
-Процедура ОбработчикИнициализация(Результат, ДополнительныеПараметры) Экспорт
+Процедура ОбработчикИнициализация(_, ДополнительныеПараметры) Экспорт
ВыполнитьИнициализацию(ДополнительныеПараметры.ПараметрыЗапуска);
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецПроцедуры
-Процедура ОбработчикЗагрузитьТесты(Результат, ДополнительныеПараметры) Экспорт
+Процедура ОбработчикЗагрузитьТесты(_, ДополнительныеПараметры) Экспорт
+ ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов);
ЮТСобытияСлужебный.ПередЧтениеСценариев();
ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска);
@@ -187,8 +194,18 @@
КонецПроцедуры
-Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт
+Процедура ОбработчикРазрешитьЗависимости(_, ДополнительныеПараметры) Экспорт
+
+ ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().РазрешениеЗависимостей);
+ Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
+
+ ЮТЗависимостиСлужебныйКлиент.РазрешитьЗависимости(ДополнительныеПараметры.ИсполняемыеТестовыеМодули, Обработчик);
+
+КонецПроцедуры
+
+Процедура ОбработчикВыполнитьТестирование(_, ДополнительныеПараметры) Экспорт
+ ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ПрогонТестов);
ЮТСобытияСлужебный.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули);
РезультатыТестирования = Новый Массив();
@@ -207,8 +224,9 @@
КонецПроцедуры
-Процедура ОбработчикСохранитьОтчет(Результат, ДополнительныеПараметры) Экспорт
+Процедура ОбработчикСохранитьОтчет(_, ДополнительныеПараметры) Экспорт
+ ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ФормированиеОтчета);
Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
ЮТОтчетСлужебный.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик);
@@ -218,14 +236,14 @@
КонецПроцедуры
-Процедура ОбработчикСохранитьКодВозврата(Результат, ДополнительныеПараметры) Экспорт
+Процедура ОбработчикСохранитьКодВозврата(_, ДополнительныеПараметры) Экспорт
ЗаписатьКодВозврата(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска);
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецПроцедуры
-Процедура ОбработчикЗавершить(Результат, ДополнительныеПараметры) Экспорт
+Процедура ОбработчикЗавершить(_, ДополнительныеПараметры) Экспорт
Параметры = ДополнительныеПараметры.ПараметрыЗапуска;
ЮТКонтекстСлужебный.УдалитьКонтекст();
@@ -238,7 +256,7 @@
КонецПроцедуры
-Процедура ОбработчикПодключитьКомпоненты(Результат, ДополнительныеПараметры) Экспорт
+Процедура ОбработчикПодключитьКомпоненты(_, ДополнительныеПараметры) Экспорт
Если ДополнительныеПараметры.ПараметрыЗапуска.ПодключатьВнешниеКомпоненты Тогда
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 1639bbe78..aa0b354a4 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -100,10 +100,25 @@
КонецПроцедуры
+Процедура УстановитьСсылкуНового(Контекст, Значение) Экспорт
+
+ Если ТипЗнч(Значение) = Тип("УникальныйИдентификатор") Тогда
+ УникальныйИдентификаторСсылки = Значение;
+ ИначеЕсли ЮТСтроки.ЭтоУникальныйИдентификаторСтрокой(Значение) Тогда
+ УникальныйИдентификаторСсылки = Новый УникальныйИдентификатор(Значение);
+ Иначе
+ ВызватьИсключение "Неправильный тип значения для ссылки нового";
+ КонецЕсли;
+
+ Контекст.УникальныйИдентификаторСсылки = УникальныйИдентификаторСсылки;
+
+КонецПроцедуры
+
Функция Записать(Контекст, ВернутьОбъект = Ложь, ОбменДаннымиЗагрузка = Ложь) Экспорт
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
+ ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки;
ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка;
Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
@@ -116,7 +131,12 @@
Функция НовыйОбъект(Контекст) Экспорт
- Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства);
+ Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.НовыйОбъект(
+ Контекст.Менеджер,
+ Контекст.Данные,
+ Контекст.ДополнительныеСвойства,
+ Контекст.УникальныйИдентификаторСсылки
+ );
КонецФункции
@@ -124,6 +144,7 @@
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
+ ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки;
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;
Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
@@ -195,14 +216,17 @@
// * Метаданные - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных
// * ТекущаяТабличнаяЧасть - Строка
// * ДополнительныеСвойства - Структура
+// * УникальныйИдентификаторСсылки - УникальныйИдентификатор
+// - Неопределено
Функция НовыйКонтекстКонструктора(Менеджер) Экспорт
- Контекст = Новый Структура("Менеджер, Данные, Метаданные", Менеджер, Новый Структура());
+ Контекст = Новый Структура();
Контекст.Вставить("Менеджер", Менеджер);
Контекст.Вставить("Данные", Новый Структура());
Контекст.Вставить("Метаданные", ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер));
Контекст.Вставить("ТекущаяТабличнаяЧасть", "");
Контекст.Вставить("ДополнительныеСвойства", Новый Структура());
+ Контекст.Вставить("УникальныйИдентификаторСсылки", Неопределено);
//@skip-check constructor-function-return-section
Возврат Контекст;
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index ce8875bb8..df13a7565 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -78,7 +78,7 @@
//@skip-check constructor-function-return-section
Возврат ЮТКоллекции.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]);
-
+
КонецФункции
// УстановитьЗначениеКонтекста
@@ -108,6 +108,30 @@
КонецПроцедуры
+// УстановитьЗначениеКонтекста
+// Устанавливает значение вложенного контекста, вложенного реквизита контекста
+//
+// Параметры:
+// ИмяРеквизита - Строка - Имя реквизита/вложенного контекста
+// Значения - Структура, Соответствие из Произвольный - Набор устанавливаемых значений контекста
+// УстановитьНаСервер - Булево - Установить также на сервер
+Процедура ВставитьЗначениеКонтекста(Знач ИмяРеквизита, Знач Значения, Знач УстановитьНаСервер = Ложь) Экспорт
+
+#Если НЕ Сервер Тогда
+ Если УстановитьНаСервер Тогда
+ ЮТКонтекстСлужебныйВызовСервера.ВставитьЗначениеКонтекста(ИмяРеквизита, Значения);
+ Возврат;
+ КонецЕсли;
+#КонецЕсли
+
+ ДанныеКонтекста = ЗначениеКонтекста(ИмяРеквизита);
+
+ Для Каждого Элемент Из Значения Цикл
+ ДанныеКонтекста.Вставить(Элемент.Ключ, Элемент.Значение);
+ КонецЦикла;
+
+КонецПроцедуры
+
// КонтекстТеста
// Возвращает структуру, в которой можно хранить данные используемые в тесте
// Данные живут в рамках одного теста, но доступны в обработчиках событий `ПередКаждымТестом` и `ПослеКаждогоТеста`
@@ -231,10 +255,25 @@
КонецФункции
+Функция ТекущийЭтапПрогона() Экспорт
+
+ Возврат ЗначениеКонтекста(ИмяКонтекстаЭтапПрогона());
+
+КонецФункции
+
+// см. ЮТФабрика.ПараметрыЗапуска
+Функция ПараметрыЗапуска() Экспорт
+
+ Возврат ЗначениеКонтекста(ИмяКонтекстаПараметрыЗапуска());
+
+КонецФункции
+
Функция ОписаниеКонтекста() Экспорт
Описание = Новый Структура;
+ ЮТСобытияСлужебный.ИнициализацияКонтекста(Описание);
+
Возврат Описание;
КонецФункции
@@ -281,6 +320,22 @@
КонецПроцедуры
+Процедура СохранитьПараметрыЗапуска(Знач ПараметрыЗапуска) Экспорт
+
+ УстановитьЗначениеКонтекста(ИмяКонтекстаПараметрыЗапуска(), ПараметрыЗапуска, Истина);
+
+КонецПроцедуры
+
+Процедура УстановитьТекущийЭтапПрогона(Этап) Экспорт
+
+ Если НЕ ЮТФабрика.ЭтапыПрогона().Свойство(Этап) Тогда
+ ВызватьИсключение СтрШаблон("Передан неизвестный этап тестового прогона: `%1`", Этап);
+ КонецЕсли;
+
+ УстановитьЗначениеКонтекста(ИмяКонтекстаЭтапПрогона(), Этап, Истина);
+
+КонецПроцедуры
+
Процедура УдалитьКонтекст() Экспорт
#Если Клиент Тогда
@@ -336,4 +391,16 @@
КонецФункции
+Функция ИмяКонтекстаПараметрыЗапуска()
+
+ Возврат "КонтекстПараметрыЗапуска";
+
+КонецФункции
+
+Функция ИмяКонтекстаЭтапПрогона()
+
+ Возврат "КонтекстЭтапПрогона";
+
+КонецФункции
+
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
index 7911602e9..a69650916 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
@@ -52,6 +52,18 @@
КонецПроцедуры
+// УстановитьЗначениеКонтекста
+// Устанавливает значение вложенного контекста, вложенного реквизита контекста
+//
+// Параметры:
+// ИмяРеквизита - Строка - Имя реквизита/вложенного контекста
+// Значения - Структура, Соответствие - Новое значение реквизита/вложенного контекста
+Процедура ВставитьЗначениеКонтекста(Знач ИмяРеквизита, Знач Значения) Экспорт
+
+ ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяРеквизита, Значения, Ложь);
+
+КонецПроцедуры
+
Функция ЗначениеКонтекста(Знач ИмяРеквизита) Экспорт
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяРеквизита);
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl"
index 714a1022a..398aa2e9a 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl"
@@ -18,21 +18,6 @@
#Область ПрограммныйИнтерфейс
-// Модули подсистемы.
-// Возвращает список модулей подсистемы
-// Подсистема должна находится в подсистеме "ЮТДинамическиПодключаемые"
-// Параметры:
-// ИмяПодсистемы - Строка - Имя подсистемы
-// Серверные - Булево - Возвращять модули доступные на сервере
-// Клиентские - Булево - Возвращять модули доступные на клиенте
-// Возвращаемое значение:
-// Массив из Строка - Имена модулей входящих в подсистему
-Функция МодулиПодсистемы(ИмяПодсистемы, Серверные = Истина, Клиентские = Истина) Экспорт
-
- Возврат ЮТМетаданныеСлужебныйПовтИсп.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
-
-КонецФункции
-
// Описание объекта метаданных.
//
// Параметры:
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
index b9b2b4e7e..69f9a5f43 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
@@ -44,49 +44,6 @@
КонецФункции
-// Модули подсистемы.
-// Возвращает список модулей подсистемы
-// Подсистема должна находится в подсистеме "ЮТДинамическиПодключаемые"
-// Параметры:
-// ИмяПодсистемы - Строка - Имя подсистемы
-// Серверные - Булево - Возвращять модули доступные на сервере
-// Клиентские - Булево - Возвращять модули доступные на клиенте
-//
-// Возвращаемое значение:
-// Массив из Строка - Имена модулей входящих в подсистему
-Функция МодулиПодсистемы(Знач ИмяПодсистемы, Знач Серверные, Знач Клиентские) Экспорт
-
- Подсистема = Метаданные.Подсистемы.ЮТДинамическиПодключаемые.Подсистемы.Найти(ИмяПодсистемы);
-
- Если Подсистема = Неопределено Тогда
-
- ВызватьИсключение СтрШаблон("Подсистема ""%1"" не найдена", ИмяПодсистемы);
-
- КонецЕсли;
-
- Модули = Новый Массив();
-
- Для Каждого Объект Из Подсистема.Состав Цикл
-
- Если Метаданные.ОбщиеМодули.Содержит(Объект) Тогда
-
- Добавить = (Серверные И Клиентские)
- ИЛИ (Серверные И (Объект.Сервер))
- ИЛИ (Клиентские И (Объект.КлиентУправляемоеПриложение Или Объект.ВызовСервера));
- // КлиентОбычноеПриложение сознательно не анализируется, он должен идти в паре с другой настройкой
-
- Если Добавить Тогда
- Модули.Добавить(Объект.Имя);
- КонецЕсли;
-
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат Модули;
-
-КонецФункции
-
Функция МетаданныеМодуля(Знач Модуль) Экспорт
Если ТипЗнч(Модуль) = Тип("Строка") Тогда
@@ -376,4 +333,26 @@
КонецФункции
+Функция ПодсистемыПодключаемыхМодулей() Экспорт
+
+ ИмяПодсистемы = "ЮТПодключаемыеМодули";
+ Результат = Новый Массив();
+ Результат.Добавить(ИмяПодсистемы);
+
+ Для Каждого Подсистема Из Метаданные.Подсистемы Цикл
+
+ Если Подсистема.ВключатьВКомандныйИнтерфейс Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Если СтрЗаканчиваетсяНа(Подсистема.Имя, "_" + ИмяПодсистемы) Тогда
+ Результат.Добавить(Подсистема.Имя);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl"
index baf334e70..23f46fc6a 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl"
@@ -18,12 +18,6 @@
#Область СлужебныйПрограммныйИнтерфейс
-Функция МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские) Экспорт
-
- Возврат ЮТМетаданныеСлужебныйВызовСервера.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
-
-КонецФункции
-
Функция ОписаниеОбъектаМетаданных(Знач Менеджер) Экспорт
Возврат ЮТМетаданныеСлужебныйВызовСервера.ОписаниеОбъектаМетаданных(Менеджер);
@@ -67,4 +61,10 @@
КонецФункции
+Функция ПодсистемыПодключаемыхМодулей() Экспорт
+
+ Возврат ЮТМетаданныеСлужебныйВызовСервера.ПодсистемыПодключаемыхМодулей();
+
+КонецФункции
+
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 4283e2b32..2baddf600 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -102,23 +102,7 @@
#Если ВебКлиент Тогда
ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.ВыполнитьМетод");
#Иначе
- Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда
-
- Алгоритм = ПолноеИмяМетода;
-
- ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда
-
- Алгоритм = ПолноеИмяМетода + "()";
-
- ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда
-
- Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, "Параметры"));
-
- Иначе
-
- ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры));
-
- КонецЕсли;
+ Алгоритм = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры, "Параметры");
Попытка
//@skip-check server-execution-safe-mode
@@ -132,6 +116,22 @@
КонецФункции
+Функция СтрокаВызоваМетода(ПолноеИмяМетода, Параметры, ИмяМассиваПараметров = "Параметры") Экспорт
+
+ Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда
+ Алгоритм = ПолноеИмяМетода;
+ ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда
+ Алгоритм = ПолноеИмяМетода + "()";
+ ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда
+ Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, ИмяМассиваПараметров));
+ Иначе
+ ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры));
+ КонецЕсли;
+
+ Возврат Алгоритм;
+
+КонецФункции
+
Функция ВычислитьБезопасно(Выражение) Экспорт
#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда
@@ -152,6 +152,32 @@
КонецФункции
+Функция ВызватьФункцию(ПолноеИмяМетода, Параметры, Безопасно = Истина) Экспорт
+
+ Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры);
+
+#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда
+ Если Безопасно Тогда
+ УстановитьБезопасныйРежим(Истина);
+ Попытка
+ Значение = Вычислить(Выражение);
+ Исключение
+ УстановитьБезопасныйРежим(Ложь);
+ ВызватьИсключение;
+ КонецПопытки;
+ УстановитьБезопасныйРежим(Ложь);
+ Иначе
+ //@skip-check server-execution-safe-mode
+ Значение = Вычислить(Выражение);
+ КонецЕсли;
+#Иначе
+ Значение = Вычислить(Выражение);
+#КонецЕсли
+
+ Возврат Значение;
+
+КонецФункции
+
#КонецОбласти
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl"
index fe14db317..d738e24f1 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl"
@@ -18,6 +18,8 @@
#Область ПрограммныйИнтерфейс
+#Область НастройкиТеста
+
// Возвращает значение настройки "ВТранзакции" для текущего исполняемого объекта (тест, набор, модуль)
//
// Возвращаемое значение:
@@ -119,3 +121,30 @@
КонецФункции
#КонецОбласти
+
+#Область НастройкиСеанса
+
+// Возвращает глобальные настройки выполнения, указанные в файле настроек запуска, объект`settings`
+//
+// Возвращаемое значение:
+// Структура, Неопределено - Глобальные настройки
+Функция ГлобальныеНастройкиВыполнения() Экспорт
+
+ //@skip-check constructor-function-return-section
+ Возврат ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения();
+
+КонецФункции
+
+// Возвращает путь к каталогу проекта, указанному в файле настроек - `projectPath`
+//
+// Возвращаемое значение:
+// Строка - Каталог проекта
+Функция КаталогПроекта() Экспорт
+
+ Возврат ЮТКонтекстСлужебный.ПараметрыЗапуска().projectPath;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl"
index 35b6160b9..4f021dbe1 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl"
@@ -265,11 +265,14 @@
// * ДополнительныеСвойства - Структура
// * РежимЗаписи - РежимЗаписиДокумента
// - Неопределено
+// * УникальныйИдентификаторСсылки - УникальныйИдентификатор
+// - Неопределено
Функция ПараметрыЗаписи() Экспорт
ПараметрыЗаписи = Новый Структура();
ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь);
ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура);
+ ПараметрыЗаписи.Вставить("УникальныйИдентификаторСсылки", Неопределено);
ПараметрыЗаписи.Вставить("РежимЗаписи", Неопределено);
Возврат ПараметрыЗаписи;
@@ -356,7 +359,9 @@
//
// Параметры:
// Сообщение - Строка - Выводимое сообщение
-Процедура ВывестиВКонсоль(Сообщение) Экспорт
+Процедура ВывестиВКонсоль(Знач Сообщение) Экспорт
+
+ Сообщение = Строка(Сообщение);
Компонента = ЮТКомпоненты.Консоль();
#Если Сервер Тогда
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index faad6baad..2f39ac29d 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -86,8 +86,8 @@
Описание.name = РезультатТеста.Метод + ПредставлениеРежима;
Описание.status = СтатусОтчета(РезультатТеста.Статус, Статусы);
Описание.testCaseId = ЮТОбщий.ХешMD5(ПолныйИдентификаторТеста);
- Описание.start = РезультатТеста.ДатаСтарта;
- Описание.stop = РезультатТеста.ДатаСтарта + РезультатТеста.Длительность;
+ Описание.start = ЮниксВремя(РезультатТеста.ДатаСтарта);
+ Описание.stop = ЮниксВремя(РезультатТеста.ДатаСтарта) + РезультатТеста.Длительность;
ОписаниеМодуля = ИмяМодуляПоСхеме(Модуль.МетаданныеМодуля.Имя);
ИмяНабора = Модуль.МетаданныеМодуля.Имя;
@@ -215,7 +215,7 @@
Описание.feature = Части[1];
Если Части.Количество() = 3 Тогда
- Описание.story = ТипМодуляПоСуфииксу(Части[2]);
+ Описание.story = ТипМодуляПоСуффиксу(Части[2]);
КонецЕсли;
Возврат Описание;
@@ -248,7 +248,7 @@
Возврат ТипОбъекта;
КонецФункции
-Функция ТипМодуляПоСуфииксу(Суффикс)
+Функция ТипМодуляПоСуффиксу(Суффикс)
ТипМодуля = Неопределено;
@@ -260,6 +260,12 @@
Возврат ТипМодуля;
+КонецФункции
+
+Функция ЮниксВремя(ДатаВМиллисекундах)
+
+ Возврат ДатаВМиллисекундах - 62135596800000;
+
КонецФункции
#КонецЕсли
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 9c9c40a99..eb89d6788 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -78,7 +78,7 @@
КонецЦикла;
- ЗаписатьСвойства(ЗаписьXML, Новый Структура("executor, reportDate", "BIA YAxUnit", ТекущаяДатаСеанса()));
+ ЗаписатьСвойства(ЗаписьXML, Новый Структура("executor, reportDate", "BIA YAxUnit", ТекущаяДата()));
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
@@ -179,7 +179,9 @@
Процедура ЗаписатьОшибку(ЗаписьXML, ОписаниеОшибки)
Сообщение = СообщениеОбОшибке(ОписаниеОшибки);
ЗаписьXML.ЗаписатьНачалоЭлемента("error");
- ЗаписьXML.ЗаписатьАтрибут("message", Сообщение);
+ Если Сообщение <> Неопределено Тогда
+ ЗаписьXML.ЗаписатьАтрибут("message", Сообщение);
+ КонецЕсли;
Если ЗначениеЗаполнено(ОписаниеОшибки.ТипОшибки) Тогда
ЗаписьXML.ЗаписатьАтрибут("type", XMLСтрока(ОписаниеОшибки.ТипОшибки));
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
index 967ce71fc..41bac2621 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
@@ -5,7 +5,6 @@
ru
Отчет jUnit
- true
+ true
true
- true
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index c35479552..5091b1bab 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -59,7 +59,7 @@
// + Значение - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета
Функция ПоддерживаемыеФорматыОтчетов() Экспорт
- Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов();
+ Модули = ЮТПодключаемыеМодулиСлужебный.ГенераторыОтчетов();
Форматы = Новый Структура;
Для Каждого Модуль Из Модули Цикл
@@ -106,7 +106,7 @@
Функция МодульФормирования(Формат)
- Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов();
+ Модули = ЮТПодключаемыеМодулиСлужебный.ГенераторыОтчетов();
Для Каждого Модуль Из Модули Цикл
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index b0b7c7e82..5c9c46221 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -67,6 +67,7 @@
Функция ПрочитатьПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой, Обработчик)
Параметры = ЮТФабрика.ПараметрыЗапуска();
+ ЮТСобытияСлужебный.УстановитьПараметрыЗапускаПоУмолчанию(Параметры);
Если Не ЗначениеЗаполнено(ПараметрыЗапускаСтрокой) Тогда
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик, Параметры);
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
similarity index 65%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 823f2eb9c..4fc92c72f 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -20,11 +20,11 @@
Функция ГенераторыОтчетов() Экспорт
- Возврат МодулиПодсистемы("ЮТФормированиеОтчета");
+ Возврат МодулиПодсистемы("ФормированиеОтчета", Ложь, Истина);
КонецФункции
-Функция ОбработчикиСобытий() Экспорт
+Функция ОбработчикиСобытий(Подсистема) Экспорт
Серверные = Ложь;
Клиентские = Ложь;
@@ -36,7 +36,13 @@
Клиентские = Истина;
#КонецЕсли
- Возврат ЮТМетаданные.МодулиПодсистемы("ЮТОбработчикиСобытий", Серверные, Клиентские);
+ Возврат ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий(Подсистема, Серверные, Клиентские);
+
+КонецФункции
+
+Функция ПодсистемыПодключаемыхМодулей() Экспорт
+
+ Возврат ЮТМетаданныеСлужебныйПовтИсп.ПодсистемыПодключаемыхМодулей();
КонецФункции
@@ -44,9 +50,9 @@
#Область СлужебныеПроцедурыИФункции
-Функция МодулиПодсистемы(ИмяПодсистемы)
+Функция МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские)
- ИменаМодулей = ЮТМетаданные.МодулиПодсистемы(ИмяПодсистемы);
+ ИменаМодулей = ЮТПодключаемыеМодулиСлужебныйВызовСервера.ПодключаемыеМодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
Модули = Новый Массив();
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
similarity index 74%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
index 6d590a83d..88a291fb7 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
@@ -1,9 +1,9 @@
- ЮТРасширенияСлужебный
+ ЮТПодключаемыеМодулиСлужебный
ru
- Расширения функциональности
+ Подключаемые модули
true
true
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
new file mode 100644
index 000000000..56697ddff
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
@@ -0,0 +1,106 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция ОбработчикиСобытий(Знач ГруппаОбработчиков, Знач Серверные = Истина, Знач Клиентские = Истина) Экспорт
+
+ Модули = Новый Массив();
+
+ Для Каждого ПодсистемаОбработчикиСобытий Из ПодсистемыПодключаемыхМодулей("ОбработчикиСобытий") Цикл
+
+ ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы(ПодсистемаОбработчикиСобытий, Серверные, Клиентские));
+
+ ПодсистемаГруппыОбработчиков = ПодсистемаОбработчикиСобытий.Подсистемы.Найти(ГруппаОбработчиков);
+
+ Если ПодсистемаГруппыОбработчиков <> Неопределено Тогда
+ ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы(ПодсистемаГруппыОбработчиков, Серверные, Клиентские));
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Модули;
+
+КонецФункции
+
+Функция ПодключаемыеМодулиПодсистемы(Знач ИмяПодсистемы, Знач Серверные = Истина, Знач Клиентские = Истина) Экспорт
+
+ Модули = Новый Массив();
+
+ Для Каждого Подсистема Из ПодсистемыПодключаемыхМодулей(ИмяПодсистемы) Цикл
+
+ ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы(Подсистема, Серверные, Клиентские));
+
+ КонецЦикла;
+
+ Возврат Модули;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция ПодсистемыПодключаемыхМодулей(ИмяПодсистемы)
+
+ ИменаПодсистем = ЮТМетаданныеСлужебныйПовтИсп.ПодсистемыПодключаемыхМодулей();
+
+ Подсистемы = Новый Массив();
+
+ Для Каждого ИмяПодсистемыПодключаемыхМодулей Из ИменаПодсистем Цикл
+
+ ПодсистемаПодключаемыхМодулей = Метаданные.Подсистемы[ИмяПодсистемыПодключаемыхМодулей];
+
+ ВложеннаяПодсистема = ПодсистемаПодключаемыхМодулей.Подсистемы.Найти(ИмяПодсистемы);
+
+ Если ВложеннаяПодсистема <> Неопределено Тогда
+ Подсистемы.Добавить(ВложеннаяПодсистема);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Подсистемы;
+
+КонецФункции
+
+Функция МодулиПодсистемы(Знач Подсистема, Знач Серверные, Знач Клиентские)
+
+ Модули = Новый Массив();
+
+ Для Каждого Объект Из Подсистема.Состав Цикл
+
+ Если Метаданные.ОбщиеМодули.Содержит(Объект) Тогда
+
+ Добавить = (Серверные И Клиентские)
+ ИЛИ (Серверные И (Объект.Сервер))
+ ИЛИ (Клиентские И (Объект.КлиентУправляемоеПриложение Или Объект.ВызовСервера));
+ // КлиентОбычноеПриложение сознательно не анализируется, он должен идти в паре с другой настройкой
+
+ Если Добавить Тогда
+ Модули.Добавить(Объект.Имя);
+ КонецЕсли;
+
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Модули;
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
new file mode 100644
index 000000000..d93907c63
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТПодключаемыеМодулиСлужебныйВызовСервера
+
+ ru
+ Подключаемые модули (Вызов сервера)
+
+ true
+ true
+ DuringSession
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
new file mode 100644
index 000000000..a53eeffb8
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
@@ -0,0 +1,94 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция ПоместитьФайлыВРабочийКаталог(Знач ПереданныеФайлы) Экспорт
+
+ Контекст = Новый Структура();
+ Контекст.Вставить("РабочийКаталог", ФайлыПроектаРабочийКаталог());
+
+ ЮТФайлы.СоздатьКаталогРекурсивно(Контекст.РабочийКаталог);
+
+ КаталогПроекта = ЮТНастройкиВыполнения.КаталогПроекта();
+
+ ЕстьПолноеИмя = ЮТОбщий.ПеременнаяСодержитСвойство(ПереданныеФайлы[0], "ПолноеИмя");
+
+ Для Каждого Файл Из ПереданныеФайлы Цикл
+
+ ИмяФайла = ?(ЕстьПолноеИмя, Файл.ПолноеИмя, Файл.Имя);
+ ИмяВКаталоге = СтрЗаменить(ИмяФайла, КаталогПроекта, "");
+ ПолноеИмя = ЮТФайлы.ОбъединитьПути(Контекст.РабочийКаталог, ИмяВКаталоге);
+
+ ЮТФайлы.СоздатьРодительскийКаталог(ПолноеИмя);
+ ПолучитьИзВременногоХранилища(Файл.Хранение).Записать(ПолноеИмя);
+
+ КонецЦикла;
+
+ Возврат Контекст;
+
+КонецФункции
+
+Функция ФабрикаXDTO(Знач КаталогСхем) Экспорт
+
+ Каталог = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(КаталогСхем)).ПолноеИмя;
+
+ ПостроительСхем = Новый ПостроительСхемXML();
+ ПостроительDOM = Новый ПостроительDOM();
+ НаборСхем = Новый НаборСхемXML();
+
+ ФайлыСхем = НайтиФайлы(Каталог, "*.xsd", Истина);
+
+ Для Каждого Файл Из ФайлыСхем Цикл
+
+ ЧтениеXML = Новый ЧтениеXML();
+ ЧтениеXML.ОткрытьФайл(Файл.ПолноеИмя);
+ Схема = ПостроительСхем.СоздатьСхемуXML(ПостроительDOM.Прочитать(ЧтениеXML).ЭлементДокумента);
+ ЧтениеXML.Закрыть();
+ Если Схема <> Неопределено Тогда
+ НаборСхем.Добавить(Схема);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Фабрика = Новый ФабрикаXDTO(НаборСхем);
+
+ Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
+ Результат.Успешно = Фабрика <> Неопределено;
+
+ Если Результат.Успешно Тогда
+ Результат.СохраняемыйКонтекст = Новый Структура("Фабрика", Фабрика);
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция ФайлыПроектаРабочийКаталог()
+
+ КлючБазы = ЮТОбщий.ХешMD5(СтрокаСоединенияИнформационнойБазы());
+
+ Возврат ЮТФайлы.ОбъединитьПути(КаталогВременныхФайлов(), КлючБазы, "КаталогПроекта");
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
new file mode 100644
index 000000000..82d407525
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
@@ -0,0 +1,10 @@
+
+
+ ЮТРазрешениеЗависимостейСлужебныйВызовСервера
+
+ ru
+ Разрешение зависимостей служебный вызов сервера
+
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
new file mode 100644
index 000000000..ac6cdbacd
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
@@ -0,0 +1,139 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Процедура ФайлыПроекта(ПутьКФайлуПроекта, Обработчик) Экспорт
+
+ ПараметрыИсполнения = ЮТАсинхроннаяОбработкаСлужебныйКлиент.ЦепочкаАсинхроннойОбработки();
+ ПараметрыИсполнения.Вставить("ФинальныйОбработчик", Обработчик);
+
+ КаталогПроекта = ЮТНастройкиВыполнения.КаталогПроекта();
+
+ Если ПустаяСтрока(КаталогПроекта) Тогда
+ Сообщение = "Не указан каталог проекта, необходимо указать каталог проекта в параметрах запуска";
+ ПрерватьОбработку(Сообщение, ПараметрыИсполнения);
+ Возврат;
+ КонецЕсли;
+
+ ПолныйПуть = ЮТФайлы.ОбъединитьПути(КаталогПроекта, ПутьКФайлуПроекта);
+
+ ПараметрыИсполнения.Вставить("ПолныйПуть", ПолныйПуть);
+ ПараметрыИсполнения.Вставить("ПутьКФайлуПроекта", ПутьКФайлуПроекта);
+
+ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПроверкиСуществования");
+ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПроверкиКаталога");
+ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРезультатовПоиска");
+ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПеремещения");
+ ПараметрыИсполнения.Цепочка.Добавить(Обработчик);
+
+ ЮТФайлы.Существует(ПолныйПуть, ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ПараметрыИсполнения));
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область ФайлыПроекта
+
+Процедура ОбработчикПроверкиСуществования(Существует, Параметры) Экспорт
+
+ Если НЕ Существует Тогда
+ Сообщение = СтрШаблон("Файл/каталог проекта `%1` не существует", Параметры.ПутьКФайлуПроекта);
+ ПрерватьОбработку(Сообщение, Параметры);
+ Возврат;
+ КонецЕсли;
+
+ ЮТФайлы.ЭтоКаталог(Параметры.ПолныйПуть, ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(Параметры));
+
+КонецПроцедуры
+
+Процедура ОбработчикПроверкиКаталога(ЭтоКаталог, Параметры) Экспорт
+
+ Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(Параметры);
+ Если ЭтоКаталог Тогда
+ НачатьПоискФайлов(Обработчик, Параметры.ПолныйПуть, "*.*", Истина);
+ Иначе
+ НачатьПоискФайлов(Обработчик, Параметры.ПолныйПуть);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ОбработчикРезультатовПоиска(НайденныеФайлы, Параметры) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(НайденныеФайлы) Тогда
+ Сообщение = СтрШаблон("Не удалось найти файлы каталога проекта по пути `%1`", Параметры.ПутьКФайлуПроекта);
+ ПрерватьОбработку(Сообщение, Параметры);
+ Возврат;
+ КонецЕсли;
+
+ ФайлыДляПеремещения = Новый Массив();
+
+ Для Каждого Файл Из НайденныеФайлы Цикл
+ ФайлыДляПеремещения.Добавить(Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя));
+ КонецЦикла;
+
+ Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(Параметры);
+ НачатьПомещениеФайлов(Обработчик, ФайлыДляПеремещения, , Ложь);
+
+КонецПроцедуры
+
+Процедура ОбработчикПеремещения(ПомещенныеФайлы, Параметры) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(ПомещенныеФайлы) Тогда
+ Сообщение = СтрШаблон("Не удалось передать на сервер файлы проекта из каталога `%1`", Параметры.ПутьКФайлуПроекта);
+ ПрерватьОбработку(Сообщение, Параметры);
+ Возврат;
+ КонецЕсли;
+
+ РезультатПередачиФайлов = ЮТРазрешениеЗависимостейСлужебныйВызовСервера.ПоместитьФайлыВРабочийКаталог(ПомещенныеФайлы);
+
+ Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
+ Результат.Успешно = РезультатПередачиФайлов <> Неопределено;
+
+ Если Результат.Успешно Тогда
+ Результат.СохраняемыйКонтекстКлиент = Новый Структура("РабочийКаталог, ПолноеИмя", ЮТНастройкиВыполнения.КаталогПроекта(), Параметры.ПолныйПуть);
+ Результат.СохраняемыйКонтекстСервер = РезультатПередачиФайлов;
+ Результат.СохраняемыйКонтекстСервер.Вставить("ПолноеИмя", ЮТФайлы.ОбъединитьПути(Результат.СохраняемыйКонтекстСервер.РабочийКаталог, Параметры.ПутьКФайлуПроекта));
+ КонецЕсли;
+
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(Параметры, Результат);
+
+КонецПроцедуры
+
+Процедура ПрерватьОбработку(Ошибка, Параметры)
+
+ Обработчик = Параметры.ФинальныйОбработчик;
+ Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
+ Результат.Ошибка = Ошибка;
+
+ ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик, Результат);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+Процедура ДобавитьОбработчикЦепочки(ПараметрыИсполнения, ИмяМетода)
+
+ Обработчик = Новый ОписаниеОповещения(ИмяМетода, ЭтотОбъект, ПараметрыИсполнения);
+ ПараметрыИсполнения.Цепочка.Добавить(Обработчик);
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo"
new file mode 100644
index 000000000..e062f3ec9
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo"
@@ -0,0 +1,10 @@
+
+
+ ЮТРазрешениеЗависимостейСлужебныйКлиент
+
+ ru
+ Разрешение зависимостей служебный клиент
+
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 33f3de2cc..a68985960 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -487,7 +487,7 @@
Сообщение = СтрСоединить(Детали, Символы.ПС);
КонецЕсли;
- ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки(ТипОшибки + ": " + Сообщение);
+ ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиПропуска(ТипОшибки + ": " + Сообщение);
Если Ошибка <> Неопределено Тогда
ДанныеОшибки.Стек = СтекОшибки(Ошибка);
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index f29fc2e19..cc1d3aeea 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -18,13 +18,53 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Область Инициализация
+
+// Подписка на это событие позволяет:
+//
+// * выполнить базовую настройку параметров запуска
+// * эту настройку можно переопределить параметрами запуска (json файл с настройками)
+// * может быть полезно при расширении возможностей движка новыми настраиваемыми механизмами
+// * обработчик может (а точнее, должен) изменять `ПараметрыЗапуска`
+//
+// Параметры:
+// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
+Процедура УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска) Экспорт
+
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска);
+ ВызватьПодключаемыйОбработчикСобытия("УстановитьПараметрыЗапускаПоУмолчанию", "Инициализация", Параметры);
+
+КонецПроцедуры
+
+// Вызывается при первичной инициализации глобального контекста.
+// Используется для первоначального заполнения контекста, параметра `ДанныеКонтекста`
+// Вызывается и для сервера, и для клиента
+//
+// Параметры:
+// ДанныеКонтекста - Структура
+Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт
+
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(ДанныеКонтекста);
+ ВызватьПодключаемыйОбработчикСобытия("ИнициализацияКонтекста", "Инициализация", Параметры);
+
+КонецПроцедуры
+
+// Вызывается после инициализации контекстов и загрузки настроек.
+// Позволяет выполнить настройку различных механизмов движка.
+//
+// Важно: В этом обработчике нельзя менять параметр `ПараметрыЗапуска`.
+//
+// Параметры:
+// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
Процедура Инициализация(ПараметрыЗапуска) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска);
- ВызватьОбработчикРасширения("Инициализация", Параметры);
+ ВызватьПодключаемыйОбработчикСобытия("Инициализация", "Инициализация", Параметры);
КонецПроцедуры
+#КонецОбласти
+
#Область СобытияИсполненияТестов
// Обработчик события "ПередВсемиТестамиМодуля"
@@ -37,7 +77,7 @@
ЮТКонтекстСлужебный.УстановитьКонтекстМодуля();
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
- ВызватьОбработкуСобытия("ПередВсемиТестами", ОписаниеСобытия);
+ ВызватьОбработкуСобытияИсполненияТестов("ПередВсемиТестами", ОписаниеСобытия);
КонецПроцедуры
@@ -52,7 +92,7 @@
ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов();
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
- ВызватьОбработкуСобытия("ПередТестовымНабором", ОписаниеСобытия);
+ ВызватьОбработкуСобытияИсполненияТестов("ПередТестовымНабором", ОписаниеСобытия);
КонецПроцедуры
@@ -73,7 +113,7 @@
ПолучитьСообщенияПользователю(Истина);
#КонецЕсли
- ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия);
+ ВызватьОбработкуСобытийИсполненияТестов(ЮТКоллекции.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия);
КонецПроцедуры
@@ -87,7 +127,7 @@
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
- ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия);
+ ВызватьОбработкуСобытийИсполненияТестов(ЮТКоллекции.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия);
УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор);
@@ -101,7 +141,7 @@
Процедура ПослеТестовогоНабора(ТестовыйМодуль, Набор) Экспорт
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
- ВызватьОбработкуСобытия("ПослеТестовогоНабора", ОписаниеСобытия);
+ ВызватьОбработкуСобытияИсполненияТестов("ПослеТестовогоНабора", ОписаниеСобытия);
УстановитьКонтекстИсполнения(ТестовыйМодуль);
@@ -114,7 +154,7 @@
Процедура ПослеВсехТестовМодуля(ТестовыйМодуль) Экспорт
ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
- ВызватьОбработкуСобытия("ПослеВсехТестов", ОписаниеСобытия);
+ ВызватьОбработкуСобытияИсполненияТестов("ПослеВсехТестов", ОписаниеСобытия);
УстановитьКонтекстИсполнения();
@@ -127,7 +167,7 @@
Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеМодули);
- ВызватьОбработчикРасширения("ПередВыполнениемТестов", Параметры);
+ ВызватьПодключаемыйОбработчикСобытия("ПередВыполнениемТестов", "ИсполнениеТестов", Параметры);
КонецПроцедуры
@@ -138,7 +178,7 @@
Процедура ПослеВыполненияТестов(РезультатТестирования) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(РезультатТестирования);
- ВызватьОбработчикРасширения("ПослеВыполненияТестов", Параметры);
+ ВызватьПодключаемыйОбработчикСобытия("ПослеВыполненияТестов", "ИсполнениеТестов", Параметры);
КонецПроцедуры
@@ -147,21 +187,24 @@
#Область СобытияЗагрузкиТестов
// Обработка события "ПередЧтениеСценариев"
+// Вызывается перед загрузкой тестов.
Процедура ПередЧтениеСценариев() Экспорт
Параметры = Новый Массив();
- ВызватьОбработчикРасширения("ПередЧтениеСценариев", Параметры);
+ ВызватьПодключаемыйОбработчикСобытия("ПередЧтениеСценариев", "ЗагрузкаТестов", Параметры);
КонецПроцедуры
// Обработчик события "ПередЧтениемСценариевМодуля"
-// Позволяет настроить базовые параметры перед чтением настроек тестов модуля
+// Вызывается перед чтением сценариев конкретного модуля (вызовом метода `ИсполняемыеСценарии`).
+// Позволяет настроить базовые параметры перед чтением настроек тестов модуля.
+//
// Параметры:
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля);
- ВызватьОбработчикРасширения("ПередЧтениемСценариевМодуля", Параметры);
+ ВызватьПодключаемыйОбработчикСобытия("ПередЧтениемСценариевМодуля", "ЗагрузкаТестов", Параметры);
КонецПроцедуры
@@ -169,11 +212,11 @@
// Позволяет настроить/обработать параметры загруженных настроек тестов модуля
// Параметры:
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
-// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
+// ИсполняемыеСценарии - см. ЮТТестыСлужебный.СценарииМодуля
Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии);
- ВызватьОбработчикРасширения("ПослеЧтенияСценариевМодуля", Параметры);
+ ВызватьПодключаемыйОбработчикСобытия("ПослеЧтенияСценариевМодуля", "ЗагрузкаТестов", Параметры);
КонецПроцедуры
@@ -183,7 +226,7 @@
Процедура ПослеЧтенияСценариев(Сценарии) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(Сценарии);
- ВызватьОбработчикРасширения("ПослеЧтенияСценариев", Параметры);
+ ВызватьПодключаемыйОбработчикСобытия("ПослеЧтенияСценариев", "ЗагрузкаТестов", Параметры);
КонецПроцедуры
@@ -193,7 +236,7 @@
Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеТестовыеМодули);
- ВызватьОбработчикРасширения("ПослеФормированияИсполняемыхНаборовТестов", Параметры);
+ ВызватьПодключаемыйОбработчикСобытия("ПослеФормированияИсполняемыхНаборовТестов", "ЗагрузкаТестов", Параметры);
КонецПроцедуры
@@ -224,50 +267,51 @@
КонецПроцедуры
-Процедура ВызватьОбработкуСобытий(События, ОписаниеСобытия)
+Процедура ВызватьОбработкуСобытийИсполненияТестов(События, ОписаниеСобытия)
Для ы = 0 По События.ВГраница() Цикл
+
ИмяСобытия = События[ы];
ПропуститьОбработчикТестовогоМодуля = (ы > 0 И ОбработчикСобытияПереопределен(ИмяСобытия));
+
Если ПропуститьОбработчикТестовогоМодуля Тогда
-
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
- Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
+ Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
-
Иначе
-
- ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия);
-
+ ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия);
КонецЕсли;
+
КонецЦикла;
КонецПроцедуры
-Процедура ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия)
+Процедура ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия)
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
Если ЭтоСобытиеПеред(ИмяСобытия) Тогда
- Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
+ Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия);
Иначе
ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия);
- Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
+ Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
КонецЕсли;
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
КонецПроцедуры
-Функция ВызватьОбработчикРасширения(ИмяСобытия, ПараметрыСобытия)
+Функция ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, Подсистема, ПараметрыСобытия)
Ошибки = Новый Массив();
- Для Каждого ИмяМодуля Из ЮТРасширенияСлужебный.ОбработчикиСобытий() Цикл
+ Для Каждого ИмяМодуля Из ЮТПодключаемыеМодулиСлужебный.ОбработчикиСобытий(Подсистема) Цикл
Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяСобытия);
+
+ ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2`", ИмяСобытия, ПолноеИмяМетода));
Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия);
Если Ошибка <> Неопределено Тогда
@@ -306,6 +350,7 @@
Команда = СтрШаблон("%1.%2()", ИмяМодуля, ИмяСобытия);
Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
+ ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2`", ИмяСобытия, Команда));
Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Команда);
Если Ошибка <> Неопределено Тогда
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl"
index d0a526862..cff826070 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl"
@@ -18,16 +18,24 @@
#Область ПрограммныйИнтерфейс
-// Конкатенирует строки, разделяя их разделителем
+// Объединяет две строки с помощью указанного разделителя.
+//
+// Ограничения:
+// - Метод не изменяет исходную и дополнительную строки, а создает новую строку на их основе.
//
// Параметры:
-// ИсходнаяСтрока - Строка - Исходная строка
-// ДополнительнаяСтрока - Строка - Добавляемая строка
-// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками
-//
+// ИсходнаяСтрока - Строка - Строка, к которой будет добавлена дополнительная строка.
+// ДополнительнаяСтрока - Строка - Строка, которую нужно добавить к исходной строке.
+// Разделитель - Строка - Символ или набор символов, используемых для разделения исходной и дополнительной строк. По умолчанию используется точка с запятой (";").
+//
// Возвращаемое значение:
-// Строка - Результат конкатенации строк
+// Строка - Новая строка, образованная объединением исходной и дополнительной строк с помощью указанного разделителя. Если дополнительная строка пустая, то возвращается исходная строка. Если исходная строка пустая, а дополнительная нет, то возвращается дополнительная строка.
//
+// Пример:
+// ИсходнаяСтрока = "Привет";
+// ДополнительнаяСтрока = "Мир";
+// Разделитель = " ";
+// Результат = ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель); // Результат будет равен "Привет Мир".
Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт
Если Не ПустаяСтрока(ДополнительнаяСтрока) Тогда
@@ -44,18 +52,24 @@
КонецФункции
-// Возвращает массив на основании строки.
-// При этом:
-// * отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке.
-// * в отличии от `СтрРазделить` в качестве разделителля используется вся переданная строка, а не любой из символов входящий в нее.
+// Разделяет строку на подстроки с помощью указанного разделителя.
+//
+// Ограничения:
+// - Метод не изменяет исходную строку, а создает новый массив строк на ее основе.
+// - В отличие от СтрРазделить, в качестве разделителя используется вся переданная строка, а не любой из символов, входящих в нее.
+// - Отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке.
//
// Параметры:
-// Значение - Строка - преобразуемая строка
-// Разделитель - Строка - строка-разделитель
-//
+// Значение - Строка - Строка, которую нужно разделить на подстроки.
+// Разделитель - Строка - Символ или набор символов, используемых для разделения строки на подстроки. По умолчанию используется точка с запятой (";").
+//
// Возвращаемое значение:
-// Массив Из Строка - массив строк
+// Массив из Строка - Массив строк, содержащий подстроки, полученные в результате разделения исходной строки. Если исходная строка пустая, то возвращается пустой массив.
//
+// Пример:
+// Значение = "Привет; Мир; Как дела?";
+// Разделитель = "; ";
+// Результат = РазделитьСтроку(Значение, Разделитель); // Результат будет равен ["Привет", "Мир", "Как дела?"].
Функция РазделитьСтроку(Знач Значение, Разделитель = ";") Экспорт
КодУниверсальногоРазделителя = 5855;
@@ -72,68 +86,97 @@
КонецФункции
-// Формирует строку из заданного количества повторяемых символов
+// Создает строку, состоящую из указанного количества одинаковых символов.
+//
// Параметры:
-// Символ - Строка - Повторяемый символ
-// Количество - Число - Количество повторений
-//
+// Символ - Строка - Символ, из которого будет создана строка.
+// Количество - Число - Количество символов в создаваемой строке.
+//
// Возвращаемое значение:
-// Строка - Строка повторяемых символов
+// Строка - Новая строка, состоящая из указанного количества одинаковых символов.
+//
+// Пример:
+// Символ = "a";
+// Количество = 5;
+// Результат = СтрокаСимволов(Символ, Количество); // Результат будет равен "aaaaa".
Функция СтрокаСимволов(Символ, Количество) Экспорт
Возврат СтрСоединить(Новый Массив(Количество + 1), Символ);
КонецФункции
-// Строка с символами русского алфавита
-//
+// Возвращает строку, содержащую все русские буквы в указанном регистре.
+//
// Параметры:
-// НижнийРегистр - Булево - добавить символы в нижнем регистре
-// ВерхнийРегистр - Булево - добавить символы в верхнем регистре
-//
+// НижнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в нижнем регистре. По умолчанию равно Истина.
+// ВерхнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в верхнем регистре. По умолчанию равно Ложь.
+//
// Возвращаемое значение:
-// Строка
+// Строка - Новая строка, содержащая все русские буквы в указанном регистре. Если оба параметра НижнийРегистр и ВерхнийРегистр равны Истина, то в создаваемой строке будут использованы буквы в обоих регистрах.
+//
+// Пример:
+// Результат = РусскиеБуквы(Истина, Ложь); // Результат будет равен "абвгдеёжзийклмнопрстуфхцчшщъыьэюя".
+// Результат = РусскиеБуквы(Ложь, Истина); // Результат будет равен "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".
+// Результат = РусскиеБуквы(Истина, Истина); // Результат будет равен "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".
Функция РусскиеБуквы(НижнийРегистр = Истина, ВерхнийРегистр = Ложь) Экспорт
Возврат Буквы("абвгдеёжзийклмнопрстуфхцчшщъыьэюя", НижнийРегистр, ВерхнийРегистр);
КонецФункции
-// Строка с символами английского алфавита
-//
+// Возвращает строку, содержащую все английские буквы в указанном регистре.
+//
// Параметры:
-// НижнийРегистр - Булево - добавить символы в нижнем регистре
-// ВерхнийРегистр - Булево - добавить символы в верхнем регистре
-//
+// НижнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в нижнем регистре. По умолчанию равно Истина.
+// ВерхнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в верхнем регистре. По умолчанию равно Ложь.
+//
// Возвращаемое значение:
-// Строка
+// Строка - Новая строка, содержащая все английские буквы в указанном регистре. Если оба параметра НижнийРегистр и ВерхнийРегистр равны Истина, то в создаваемой строке будут использованы буквы в обоих регистрах.
+//
+// Пример:
+// Результат = АнглийскиеБуквы(Истина, Ложь); // Результат будет равен "abcdefghijklmnopqrstuvwxyz".
+// Результат = АнглийскиеБуквы(Ложь, Истина); // Результат будет равен "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
+// Результат = АнглийскиеБуквы(Истина, Истина); // Результат будет равен "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".
Функция АнглийскиеБуквы(НижнийРегистр = Истина, ВерхнийРегистр = Ложь) Экспорт
Возврат Буквы("abcdefghijklmnopqrstuvwxyz", НижнийРегистр, ВерхнийРегистр);
КонецФункции
-// Строка с числами
-//
+// Возвращает строку, содержащую все цифры.
+//
// Возвращаемое значение:
-// Строка
+// Строка - Новая строка, содержащая все цифры "1234567890".
+//
+// Пример:
+// Результат = Цифры(); // Результат будет равен "1234567890".
Функция Цифры() Экспорт
Возврат "1234567890";
КонецФункции
-// Выполняет сравнение версий
-//
+// Сравнивает две версии программного обеспечения.
+//
+// Ограничения:
+// - Версии должны быть представлены в формате "X.X.X.X", где X - целое число.
+//
// Параметры:
-// Версия1 - Строка
-// Версия2 - Строка
-//
+// Версия1 - Строка - Первая версия для сравнения.
+// Версия2 - Строка - Вторая версия для сравнения.
+//
// Возвращаемое значение:
-// Число - Результат сравнения
-// `-1` - Версия1 меньше Версия2
-// `0` - Версии равны
-// `1` - Версия1 больше Версия2
+// Число - Результат сравнения версий.
+// 1 - если Версия1 больше Версия2.
+// 0 - если Версия1 равна Версия2;
+// -1 - если Версия1 меньше Версия2;
+//
+// Пример:
+// Результат = СравнитьВерсии("1.0.0", "1.1.0"); // Результат будет равен -1.
+// Результат = СравнитьВерсии("1.1.0", "1.0.0"); // Результат будет равен 1.
+// Результат = СравнитьВерсии("1.0.0", "1.0.0"); // Результат будет равен 0.
+// Результат = СравнитьВерсии("1.2.3.4", "1.2.3"); // Результат будет равен 1.
+// Результат = СравнитьВерсии("1.2.3", "1.2.3.4"); // Результат будет равен -1.
Функция СравнитьВерсии(Версия1, Версия2) Экспорт
ЧастиВерсия1 = СтрРазделить(Версия1, ".");
@@ -167,6 +210,42 @@
КонецФункции
+// Проверяет, что переданное значение является строковым представлением уникального идентификатора
+//
+// Параметры:
+// Значение - Строка
+//
+// Возвращаемое значение:
+// Булево
+Функция ЭтоУникальныйИдентификаторСтрокой(Значение) Экспорт
+
+ Если ТипЗнч(Значение) <> Тип("Строка") Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Шаблон = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
+
+ Если СтрДлина(Шаблон) <> СтрДлина(Значение) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Для Позиция = 1 По СтрДлина(Значение) Цикл
+ КодСимволаШаблона = КодСимвола(Шаблон, Позиция);
+ КодСимволаЗначения = КодСимвола(Значение, Позиция);
+
+ Если КодСимволаШаблона = 88 // X
+ И ((КодСимволаЗначения < 48 ИЛИ КодСимволаЗначения > 57) // 0..9
+ И (КодСимволаЗначения < 97 ИЛИ КодСимволаЗначения > 102) // a..f
+ И (КодСимволаЗначения < 65 ИЛИ КодСимволаЗначения > 70)) // A..F
+ ИЛИ КодСимволаШаблона = 45 И КодСимволаЗначения <> 45 Тогда // -
+ Возврат Ложь;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Истина;
+
+КонецФункции
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl"
index 443ad1ae4..65b7b5d3a 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl"
@@ -107,15 +107,23 @@
#Область ГенерацияСлучайныхЗначений
-// Генерирует и возвращает случайное число.
-//
+// Возвращает случайное число в указанном диапазоне.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Минимум - Неопределено, Число - Минимальное значение
-// Максимум - Неопределено, Число - Максимальное значение
-// ЗнаковПослеЗапятой - Число - Количество знаков после запятой
-//
+// Минимум - Число - Минимальное значение диапазона. По умолчанию равно 0.
+// Максимум - Число - Максимальное значение диапазона. Если значение не указано, то будет использовано максимальное значение для целых чисел.
+// ЗнаковПослеЗапятой - Число - Количество знаков после запятой для случайного числа. По умолчанию равно 0.
+//
// Возвращаемое значение:
-// Число - Случайное число
+// Число - Случайное число в указанном диапазоне.
+//
+// Пример:
+// Результат = СлучайноеЧисло(); // Результат будет содержать случайное целое число от 0 до максимального значения для целых чисел.
+// Результат = СлучайноеЧисло(1, 10); // Результат будет содержать случайное целое число от 1 до 10.
+// Результат = СлучайноеЧисло(1, 10, 2); // Результат будет содержать случайное число от 1 до 10 с двумя знаками после запятой.
Функция СлучайноеЧисло(Минимум = 0, Максимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт
#Если ВебКлиент Тогда
@@ -144,47 +152,73 @@
КонецФункции
-// Генерирует и возвращает случайное положительное число.
-//
+// Возвращает случайное положительное число в указанном диапазоне.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Максимум - Неопределено, Число - Максимальное значение
-// ЗнаковПослеЗапятой - Число - Знаков после запятой
-//
+// Максимум - Число - Максимальное значение диапазона. Если значение не указано, то будет использовано максимальное значение для целых чисел.
+// ЗнаковПослеЗапятой - Число - Количество знаков после запятой для случайного числа. По умолчанию равно 0.
+//
// Возвращаемое значение:
-// Число - Случайное положительное число
+// Число - Случайное положительное число в указанном диапазоне.
+//
+// Пример:
+// Результат = СлучайноеПоложительноеЧисло(); // Результат будет содержать случайное целое положительное число от 1 до максимального значения для целых чисел.
+// Результат = СлучайноеПоложительноеЧисло(10); // Результат будет содержать случайное целое положительное число от 1 до 10.
+// Результат = СлучайноеПоложительноеЧисло(10, 2); // Результат будет содержать случайное положительное число от 1 до 10 с двумя знаками после запятой.
Функция СлучайноеПоложительноеЧисло(Максимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт
Возврат СлучайноеЧисло(1, Максимум, ЗнаковПослеЗапятой);
КонецФункции
-// Генерирует и возвращает случайное отрицательное число.
-//
+// Возвращает случайное отрицательное число в указанном диапазоне.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Минимум - Неопределено, Число - Минимальное значение
-// ЗнаковПослеЗапятой - Число - Знаков после запятой
-//
+// Минимум - Число - Минимальное значение диапазона. Если значение не указано, то будет использовано минимальное значение для целых чисел.
+// ЗнаковПослеЗапятой - Число - Количество знаков после запятой для случайного числа. По умолчанию равно 0.
+//
// Возвращаемое значение:
-// Число - Случайное отрицательное число
+// Число - Случайное отрицательное число в указанном диапазоне.
+//
+// Пример:
+// Результат = СлучайноеОтрицательноеЧисло(); // Результат будет содержать случайное целое отрицательное число от минимального значения для целых чисел до -1.
+// Результат = СлучайноеОтрицательноеЧисло(-10); // Результат будет содержать случайное целое отрицательное число от -10 до -1.
+// Результат = СлучайноеОтрицательноеЧисло(-10, 2); // Результат будет содержать случайное отрицательное число от -10 до -1 с двумя знаками после запятой.
Функция СлучайноеОтрицательноеЧисло(Знач Минимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт
Если Минимум <> Неопределено Тогда
Минимум = -Минимум;
КонецЕсли;
- Возврат -СлучайноеЧисло(0, Минимум, ЗнаковПослеЗапятой);
+ Возврат -СлучайноеЧисло(1, Минимум, ЗнаковПослеЗапятой);
КонецФункции
-// Генерирует и возвращает случайную строку указанной длины, строка может содержать цифры, английские и русские буквы в разных регистрах.
-//
+// Возвращает случайную строку указанной длины, состоящую из допустимых символов.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Длина - Число - Длина генерируемой строки с учетом префикса
-// Префикс - Строка - Префикс строки
-// ДопустимыеСимволы - Строка - Допустимые символы из которая будет формироваться случайная строка
-//
+// Длина - Число - Длина возвращаемой строки. По умолчанию равно 10.
+// Префикс - Строка - Префикс, который будет добавлен к началу возвращаемой строки. По умолчанию равно пустой строке.
+// ДопустимыеСимволы - Строка - Строка, содержащая допустимые символы для генерации строки.
+// Если значение не указано, то будут использованы все русские и английские буквы в верхнем и нижнем регистре,
+// а также цифры.
+//
// Возвращаемое значение:
-// Строка - Случайная строка
+// Строка - Случайная строка указанной длины, состоящая из допустимых символов.
+//
+// Пример:
+// Результат = СлучайнаяСтрока(); // Результат будет содержать случайную строку длиной 10 символов
+// Результат = СлучайнаяСтрока(5, "Привет "); // Результат будет содержать строку "Привет " и случайную строку длиной 5 символов
+// Результат = СлучайнаяСтрока(10, "", "abcdefghijklmnopqrstuvwxyz"); // Результат будет содержать случайную строку длиной 10 символов
Функция СлучайнаяСтрока(Знач Длина = 10, Префикс = "", Знач ДопустимыеСимволы = Неопределено) Экспорт
Если ДопустимыеСимволы = Неопределено Тогда
@@ -206,14 +240,22 @@
КонецФункции
-// Возвращяет случайный валидный идентификатор
-//
+// Возвращает случайный идентификатор указанной длины, состоящий из букв и цифр.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Длина - Число - Длина генерируемой строки с учетом префикса
-// Префикс - Строка - Префикс строки
-//
+// Длина - Число - Длина возвращаемого идентификатора. По умолчанию равно 10.
+// Префикс - Строка - Префикс, который будет добавлен к началу возвращаемого идентификатора. По умолчанию равно пустой строке.
+//
// Возвращаемое значение:
-// Строка - Случайный идентификатор
+// Строка - Случайный идентификатор указанной длины, состоящий из букв и цифр.
+//
+// Пример:
+// Результат = СлучайныйИдентификатор(); // Результат будет содержать случайный идентификатор длиной 10 символов
+// Результат = СлучайныйИдентификатор(5, "Привет "); // Результат будет содержать строку "Привет " и случайный идентификатор длиной 5 символов
+// Результат = СлучайныйИдентификатор(10, "ID_"); // Результат будет содержать строку "ID_" и случайный идентификатор длиной 10 символов
Функция СлучайныйИдентификатор(Знач Длина = 10, Знач Префикс = "") Экспорт
НаборСимволов = "_" + ЮТСтроки.РусскиеБуквы(Истина, Истина) + ЮТСтроки.АнглийскиеБуквы(Истина, Истина);
@@ -228,16 +270,23 @@
КонецФункции
-// Генерирует и возвращает случайную дату в указанном интервале (если не указан используется `0001-01-01 - 3999-12-31`).
-//
+// Возвращает случайную дату в указанном диапазоне.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Минимум - Дата - Минимальное значение случайной даты
-// - Неопределено - Если не указано используется `0001-01-01`
-// Максимум - Дата - Максимальное значение случайной даты
-// - Неопределено - Если не указано используется `3999-12-31`
-//
+// Минимум - Дата - Минимальное значение диапазона. По умолчанию равно 01.01.0001.
+// Максимум - Дата - Максимальное значение диапазона. По умолчанию равно 31.12.3999.
+//
// Возвращаемое значение:
-// Дата - Случайная дата
+// Дата - Случайная дата в указанном диапазоне.
+//
+// Пример:
+// Результат = СлучайнаяДата(); // Результат будет содержать случайную дату в диапазоне от 01.01.0001 до 31.12.3999.
+// Результат = СлучайнаяДата('01.01.2022', '31.12.2022'); // Результат будет содержать случайную дату в диапазоне от 01.01.2022 до 31.12.2022.
+// Результат = СлучайнаяДата('01.01.2022', '01.01.2022'); // Результат будет содержать дату 01.01.2022.
+// Результат = СлучайнаяДата('01.01.2022', '01.01.2021'); // Вызовет исключение "Некорректные параметры метода 'СлучайнаяДата': максимальное значение должно быть больше минимального".
Функция СлучайнаяДата(Знач Минимум = '00010101', Знач Максимум = '39991231') Экспорт
Если Минимум = Максимум Тогда
@@ -259,8 +308,11 @@
КонецФункции
-// Генерирует случайное время
-//
+// Возвращает случайное время в формате "Время".
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Возвращаемое значение:
// Дата - Случайное время
Функция СлучайноеВремя() Экспорт
@@ -271,21 +323,28 @@
КонецФункции
-// Генерирует случайную дату в будущем.
-// Максимальное значение генерируемой даты можно ограничить параметрами.
-// Например: СлучайнаяДатаВБудущем(2, "часа") - будет сформирована дата в интервале (ТекущаяДата, ТекущаяДата + 2 часа]
-//
+// Возвращает случайную дату в будущем, начиная с текущей даты и с учетом указанного интервала.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Интервал - Число - Интервал
-// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения
+// Интервал - Число - Значение интервала, который будет использован для генерации случайной даты. По умолчанию равно неопределенному значению.
+// ТипИнтервала - Строка - Тип интервала, который будет использован для генерации случайной даты. Возможные значения
// * секунда, секунды, секунд
// * минута, минуты, минут
// * час, часа, часов
// * день, дня, дней
// * месяц, месяца, месяцев
-//
+//
// Возвращаемое значение:
-// Дата - Случайная дата в будущем
+// Дата - Случайная дата в будущем, начиная с текущей даты и с учетом указанного интервала.
+//
+// Пример:
+// Результат = СлучайнаяДатаВБудущем(30, "дней"); // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 30 дней.
+// Результат = СлучайнаяДатаВБудущем(1, "месяца"); // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 1 месяц.
+// Результат = СлучайнаяДатаВБудущем(1, "года"); // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 1 год.
+// Результат = СлучайнаяДатаВБудущем(); // Результат будет содержать случайную дату в будущем, начиная с текущей даты.
Функция СлучайнаяДатаВБудущем(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт
//@skip-check use-non-recommended-method
@@ -293,21 +352,28 @@
КонецФункции
-// Генерирует случайную дату в прошлом.
-// Минимальное значение генерируемой даты можно ограничить параметрами.
-// Например: СлучайнаяДатаВПрошлом(2, "часа") - будет сформирована дата в интервале [ТекущаяДата - 2 часа, ТекущаяДата)
-//
+// Возвращает случайную дату в прошлом, начиная с текущей даты и с учетом указанного интервала.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Интервал - Число - Интервал
-// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения
+// Интервал - Число - Значение интервала, который будет использован для генерации случайной даты. По умолчанию равно неопределенному значению.
+// ТипИнтервала - Строка - Тип интервала, который будет использован для генерации случайной даты. Возможные значения
// * секунда, секунды, секунд
// * минута, минуты, минут
// * час, часа, часов
// * день, дня, дней
// * месяц, месяца, месяцев
-//
+//
// Возвращаемое значение:
-// Дата - Случайная дата в прошлом
+// Дата - Случайная дата в прошлом, начиная с текущей даты и с учетом указанного интервала.
+//
+// Пример:
+// Результат = СлучайнаяДатаВПрошлом(30, "дней"); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 30 дней.
+// Результат = СлучайнаяДатаВПрошлом(1, "месяца"); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 1 месяц.
+// Результат = СлучайнаяДатаВПрошлом(1, "года"); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 1 год.
+// Результат = СлучайнаяДатаВПрошлом(); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты.
Функция СлучайнаяДатаВПрошлом(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт
//@skip-check use-non-recommended-method
@@ -315,22 +381,28 @@
КонецФункции
-// Генерирует случайную дату, значение которой больше указанной.
-// Максимальное значение генерируемой даты можно ограничить параметрами.
-// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервале [Дата - 2 часа, Дата)
-//
+// Возвращает случайную дату после указанной даты и с учетом указанного интервала.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Дата - Дата
-// Интервал - Число - Интервал
-// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения
+// Дата - Дата - Начальная дата для генерации случайной даты.
+// Интервал - Число - Значение интервала, который будет использован для генерации случайной даты. По умолчанию равно неопределенному значению.
+// ТипИнтервала - Строка - Тип интервала, который будет использован для генерации случайной даты. Возможные значения
// * секунда, секунды, секунд
// * минута, минуты, минут
// * час, часа, часов
// * день, дня, дней
// * месяц, месяца, месяцев
-//
// Возвращаемое значение:
-// Дата
+// Дата - Случайная дата после указанной даты и с учетом указанного интервала.
+//
+// Пример:
+// Результат = СлучайнаяДатаПосле('01.01.2022', 30, "дней"); // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 30 дней.
+// Результат = СлучайнаяДатаПосле('01.01.2022', 1, "месяца"); // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 1 месяц.
+// Результат = СлучайнаяДатаПосле('01.01.2022', 1, "года"); // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 1 год.
+// Результат = СлучайнаяДатаПосле('01.01.2022'); // Результат будет содержать случайную дату после 01.01.2022.
Функция СлучайнаяДатаПосле(Дата, Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт
ИнтервалНеУказан = Интервал = Неопределено И ТипИнтервала = Неопределено;
@@ -345,22 +417,29 @@
КонецФункции
-// Генерирует случайную дату, значение которой меньше указанной.
-// Минимальное значение генерируемой даты можно ограничить параметрами.
-// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервале [Дата - 2 часа, Дата)
-//
+// Возвращает случайную дату до указанной даты и с учетом указанного интервала.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Дата - Дата
-// Интервал - Число - Интервал
-// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения
+// Дата - Дата - Конечная дата для генерации случайной даты.
+// Интервал - Число - Значение интервала, который будет использован для генерации случайной даты. По умолчанию равно неопределенному значению.
+// ТипИнтервала - Строка - Тип интервала, который будет использован для генерации случайной даты. Возможные значения
// * секунда, секунды, секунд
// * минута, минуты, минут
// * час, часа, часов
// * день, дня, дней
// * месяц, месяца, месяцев
-//
+//
// Возвращаемое значение:
-// Дата
+// Дата - Случайная дата до указанной даты и с учетом указанного интервала.
+//
+// Пример:
+// Результат = СлучайнаяДатаДо('01.01.2022', 30, "дней"); // Результат будет содержать случайную дату до 01.01.2022 и с учетом интервала в 30 дней.
+// Результат = СлучайнаяДатаДо('01.01.2022', 1, "месяца"); // Результат будет содержать случайную дату до 01.01.2022 и с учетом интервала в 1 месяц.
+// Результат = СлучайнаяДатаДо('01.01.2022', 1, "года"); // Результат будет содержать случайную дату до 01.01.2022 и с учетом интервала в 1 год.
+// Результат = СлучайнаяДатаДо('01.01.2022'); // Результат будет содержать случайную дату до 01.01.2022.
Функция СлучайнаяДатаДо(Дата, Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт
ИнтервалНеУказан = Интервал = Неопределено И ТипИнтервала = Неопределено;
@@ -375,10 +454,16 @@
КонецФункции
-// Генерирует и возвращает случайный IP адрес.
-//
+// Возвращает случайный IP-адрес.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Возвращаемое значение:
-// Строка - Случайный IP адрес
+// Строка - Случайный IP-адрес в формате "XXX.XXX.XXX.XXX".
+//
+// Пример:
+// Результат = СлучайныйIPАдрес(); // Результат будет содержать случайный IP-адрес в формате "XXX.XXX.XXX.XXX".
Функция СлучайныйIPАдрес() Экспорт
Части = Новый Массив();
@@ -391,13 +476,20 @@
КонецФункции
-// Возвращает случайный элемент списка.
-//
+// Возвращает случайное значение из указанного списка.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Список - Массив из Произвольный - Коллекция возможных значений
-//
+// Список - Массив из Произвольный - Список значений, из которых будет выбрано случайное значение.
+//
// Возвращаемое значение:
-// Произвольный - случайное значение из списка
+// Произвольный - Случайное значение из указанного списка.
+//
+// Пример:
+// Список = Новый Массив("Аптека", "Магазин", "Кафе", "Ресторан");
+// Результат = СлучайноеЗначениеИзСписка(Список); // Результат будет содержать одно из значений из списка ("Аптека", "Магазин", "Кафе", "Ресторан").
Функция СлучайноеЗначениеИзСписка(Список) Экспорт
Индекс = СлучайноеЧисло(0, Список.ВГраница());
@@ -406,24 +498,37 @@
КонецФункции
-// Возвращает случайное логическое значение.
-//
+// Возвращает случайное булево значение (Истина или Ложь).
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Возвращаемое значение:
-// Булево - Случайное булево
+// Булево - Случайное булево значение (Истина или Ложь).
+//
+// Пример:
+// Результат = СлучайноеБулево(); // Результат будет содержать одно из значений: Истина или Ложь.
Функция СлучайноеБулево() Экспорт
Возврат СлучайноеЧисло() % 2 = 0;
КонецФункции
-// Возвращает случайное значение перечисления
-//
+// Возвращает случайное значение перечисления.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Перечисление - ПеречислениеМенеджер - Менеджер
-// - Строка - Имя объекта метаданных
+// Перечисление - ПеречислениеМенеджер - Менеджер перечисления.
+// - Строка - мя объекта метаданных перечисления.
//
// Возвращаемое значение:
-// ПеречислениеСсылка
+// ПеречислениеСсылка - Случайное значение перечисления.
+//
+// Пример:
+// Перечисление = Перечисления.Пол;
+// Результат = СлучайноеЗначениеПеречисления(Перечисление); // Результат будет содержать одно из значений перечисления "Пол" (Мужской, Женский).
Функция СлучайноеЗначениеПеречисления(Перечисление) Экспорт
Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеЗначениеПеречисления(Перечисление);
@@ -438,20 +543,34 @@
// Отбор - Структура, Соответствие из Произвольный - Отбора поиска предопределенных значений (сравнение на равенство)
//
// Возвращаемое значение:
-// ПеречислениеСсылка
+// СправочникСсылка - Случайное предопределенное значение объекта конфигурации.
+//
+// Пример:
+// Менеджер = "Справочники.ВидыЦен";
+// Отбор = Новый Соответствие;
+// Отбор.Вставить("ПометкаУдаления", "Ложь");
+// Результат = СлучайноеПредопределенноеЗначение(Менеджер, Отбор); // Результат будет содержать одно из предопределенных значений
+// // объекта конфигурации "ВидыЦен" непомеченное на удаление".
Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор = Неопределено) Экспорт
Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор);
КонецФункции
-// Возвращает случайный номер телефона.
-//
+// Возвращает случайный номер телефона в формате "+КодСтраны(XXX)XXX-XX-XX".
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// КодСтраны - Строка - Код страны, с которого будет начинаться номер.
-//
+// КодСтраны - Строка - Код страны по умолчанию "7".
+//
// Возвращаемое значение:
-// Строка - Сгенерированный номер телефона.
+// Строка - Случайный номер телефона в формате "+КодСтраны(XXX)XXX-XX-XX".
+//
+// Пример:
+// Результат = СлучайныйНомерТелефона(); // Результат будет содержать случайный номер телефона в формате "+7(XXX)XXX-XX-XX".
+// Результат = СлучайныйНомерТелефона("666"); // Результат будет содержать случайный номер телефона в формате "+666(XXX)XXX-XX-XX".
Функция СлучайныйНомерТелефона(КодСтраны = "7") Экспорт
Результат = СтрШаблон(
"+%1(%2)%3-%4-%5",
@@ -463,17 +582,25 @@
);
Возврат Результат;
+
КонецФункции
#КонецОбласти
-// Генерирует и возвращает уникальную строку, формируется из уникального идентификатора.
-//
+// Возвращает уникальную строку на основе префикса и уникального идентификатора.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Префикс - Строка - Префикс строки
-//
+// Префикс - Строка - Префикс уникальной строки. По умолчанию равно пустой строке.
+//
// Возвращаемое значение:
-// Строка - Уникальная строка
+// Строка - Уникальная строка на основе префикса и уникального идентификатора.
+//
+// Пример:
+// Результат = УникальнаяСтрока(); // Результат будет содержать уникальную строку на основе уникального идентификатора.
+// Результат = УникальнаяСтрока("Префикс_"); // Результат будет содержать уникальную строку на основе префикса "Префикс_" и уникального идентификатора.
Функция УникальнаяСтрока(Префикс = "") Экспорт
Возврат Префикс + Новый УникальныйИдентификатор();
@@ -482,15 +609,18 @@
#Если Не ВебКлиент Тогда
-// Создает новый файл, который будет удален после теста
-//
+// Возвращает путь к созданному временному файлу с указанным содержимым и расширением.
+//
// Параметры:
-// Содержимое - Строка, Неопределено - Содержимое файла
-// ТолькоЧтение - Булево - Установить атрибут `только чтение`
-// Расширение - Строка, Неопределено - Расширение нового файла
-//
+// Содержимое - Неопределено, Строка - Содержимое файла.
+// ТолькоЧтение - Булево - Если значение равно Истина, то файл будет создан в режиме только для чтения. По умолчанию равно Ложь.
+// Расширение - Неопределено, Строка - Расширение файла.
+//
// Возвращаемое значение:
-// Строка - Новый файл
+// Строка - Путь к новому временному файлу с указанным содержимым и расширением.
+//
+// Пример:
+// Результат = НовыйФайл("Содержимое файла"); // Результат будет содержать путь к новому временному файлу с содержимым "Содержимое файла".
Функция НовыйФайл(Содержимое = Неопределено, ТолькоЧтение = Ложь, Расширение = Неопределено) Экспорт
Результат = НовоеИмяВременногоФайла(Расширение);
@@ -512,27 +642,37 @@
КонецФункции
-// Возвращает имя нового файла.
-// По окончании выполнения теста этот файл будет удален.
-//
+// Возвращает уникальное имя временного файла с указанным расширением.
+//
// Параметры:
-// Расширение - Строка - Расширение нового файла
-//
+// Расширение - Неопределено, Строка - Расширение файла.
+//
// Возвращаемое значение:
-// Строка
+// Строка - Уникальное имя временного файла с указанным расширением.
+//
+// Пример:
+// Результат = НовоеИмяВременногоФайла("txt"); // Результат будет содержать уникальное имя временного файла с расширением "txt".
+// Результат = НовоеИмяВременногоФайла(); // Результат будет содержать уникальное имя временного файла без расширения.
Функция НовоеИмяВременногоФайла(Расширение = Неопределено) Экспорт
Возврат ЮТТестовыеДанныеСлужебный.НовоеИмяВременногоФайла(Расширение);
КонецФункции
-// Читает таблицу MarkDown в массив структур
-//
+// Возвращает массив структур, содержащих данные из таблицы Markdown.
+//
// Параметры:
-// Строки - Строка - Таблица markdown
-//
+// Строки - Строка - Строка в формате Markdown, содержащая таблицу.
+//
// Возвращаемое значение:
-// Массив из Структура - Данные таблицы markdown
+// Массив из Структура - Массив структур, содержащих данные из таблицы Markdown.
+//
+// Пример:
+// Строки = "| Заголовок1 | Заголовок2 |
+// || --- | --- |
+// || Значение 1 | Значение 2 |
+// || Значение 3 | Значение 4 |";
+// Результат = ТаблицаMarkDown(Строки); // Результат будет содержать массив структур(Заголовок1, Заголовок2), содержащих данные из таблицы Markdown.
Функция ТаблицаMarkDown(Строки) Экспорт
ЗагрузилиЗаголовок = Ложь;
@@ -596,14 +736,24 @@
КонецФункции
-// Формирует структуру на основании таблицы Markdown
-//
+// Возвращает структуру, содержащую данные из таблицы Markdown, где ключом является значение указанного столбца.
+//
+// Ограничения:
+// - Метод недоступен в веб-клиенте.
+//
// Параметры:
-// Ключ - Строка - Имя ключевой колонки
-// Строки - Строка - Таблица markdown
-//
+// Ключ - Строка - Название столбца, значение которого будет использовано в качестве ключа в возвращаемой структуре.
+// Строки - Строка - Строка в формате Markdown, содержащая таблицу.
+//
// Возвращаемое значение:
-// Структура
+// Структура - Структура, содержащая данные из таблицы Markdown, где ключом является значение указанного столбца.
+//
+// Пример:
+// Строки = "| Заголовок1 | Заголовок2 |
+// || --- | --- |
+// || Значение 1 | Значение 2 |
+// || Значение 3 | Значение 4 |";
+// Результат = СтруктураMarkDown("Заголовок1", Строки); // Результат будет содержать структуру, содержащую данные из таблицы Markdown, где ключом является значение столбца "Заголовок1".
Функция СтруктураMarkDown(Ключ, Строки) Экспорт
Таблица = ТаблицаMarkDown(Строки);
@@ -620,7 +770,7 @@
#КонецЕсли
-// Формирует массив различных комбиначий параметров
+// Формирует массив различных комбинаций параметров
//
// Предназначено для формирования таблицы возможных значений параметров для краш теста метода.
//
@@ -643,29 +793,32 @@
КонецФункции
-// Возвращает конструктор создания тестовых данных
-//
+// Возвращает конструктор создания тестовых данных для указанного объекта метаданных.
+//
// Конструктор имеет ряд особенностей:
//
-// * Нельзя использовать параллельно несколько конструкторов.
-// Например
-//
-// ```bsl
-// Пользователь = КонструкторОбъекта(Справочники.Пользователи);
-// Документ = КонструкторОбъекта(Документы.Приход);
-// ...
-// Пользователь.Записать();
-// Документ.Провести();
-// ```
-//
// * Создание объекта происходит при вызове методов `Записать` и `Провести`, а создание реквизитов происходит во время вызова методов установки.
// * При использовании на клиенте все значения должны быть сериализуемыми.
//
// Параметры:
-// Менеджер - Строка - Имя менеджера. Примеры: "Справочники.Товары", "Документы.ПриходТоваров"
+// Менеджер - Строка - Имя менеджера объекта метаданных. Примеры: "Справочники.Товары", "Документы.ПриходТоваров".
// - Произвольный - Менеджер объекта метаданных. Примеры: Справочники.Товары, Документы.ПриходТоваров
+//
// Возвращаемое значение:
-// ОбработкаОбъект.ЮТКонструкторТестовыхДанных
+// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор создания тестовых данных для указанного объекта метаданных.
+//
+// Пример:
+// Конструктор = КонструкторОбъекта("Справочники.Товары");
+// Конструктор.Установить("Наименование", "Товар 1");
+// Конструктор.Установить("Цена", 100);
+// Конструктор.Записать(); // Создает товар с наименованием "Товар 1" и ценой 100.
+//
+// Конструктор = КонструкторОбъекта(Документы.ПриходТоваров);
+// Конструктор.Установить("Организация", Справочники.Организации.ПустаяСсылка());
+// Конструктор.Установить("Склад", Справочники.Склады.ПустаяСсылка());
+// Конструктор.Установить("Товар", Справочники.Товары.ПустаяСсылка());
+// Конструктор.Установить("Количество", 10);
+// Конструктор.Провести(); // Создает документ прихода товаров с указанными реквизитами и проводит его.
Функция КонструкторОбъекта(Менеджер) Экспорт
Возврат ЮТКонструкторТестовыхДанныхСлужебный.Инициализировать(Менеджер);
@@ -673,15 +826,28 @@
КонецФункции
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда
-// Возвращает конструктор создания объекта XDTO
-//
+// Возвращает конструктор создания объекта XDTO.
+//
// Параметры:
-// ИмяТипа - Строка - Имя типа объекта
-// ПространствоИмен - Строка - Пространство имен типа
-// Фабрика - ФабрикаXDTO - Используемая фабрика XDTO
-//
+// ИмяТипа - Строка - Имя типа объекта XDTO.
+// ПространствоИмен - Строка - Пространство имен типа объекта XDTO.
+// Фабрика - ФабрикаXDTO - Фабрика, используемая для создания объектов XDTO. По умолчанию используется стандартная фабрика XDTO.
+//
// Возвращаемое значение:
-// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор объекта XDTO
+// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор объекта XDTO.
+//
+// Пример:
+// Конструктор = КонструкторОбъектаXDTO("Товар", "http://example.com/namespace", Новый ФабрикаXDTO());
+// Конструктор.Установить("Наименование", "Товар 1");
+// Конструктор.Установить("Цена", 100);
+// Объект = Конструктор.ПолучитьОбъект(); // Создает объект XDTO с указанными реквизитами.
+//
+// Конструктор = КонструкторОбъектаXDTO("ДокументПриходТоваров", "http://example.com/namespace");
+// Конструктор.Установить("Организация", Справочники.Организации.ПустаяСсылка());
+// Конструктор.Установить("Склад", Справочники.Склады.ПустаяСсылка());
+// Конструктор.Установить("Товар", Справочники.Товары.ПустаяСсылка());
+// Конструктор.Установить("Количество", 10);
+// Объект = Конструктор.ПолучитьОбъект(); // Создает объект XDTO с указанными реквизитами.
Функция КонструкторОбъектаXDTO(ИмяТипа, ПространствоИмен, Фабрика = Неопределено) Экспорт
Обработка = Обработки.ЮТКонструкторОбъектаXDTO.Создать();
@@ -695,13 +861,14 @@
// Удаляет переданные объекта
//
// Параметры:
-// Ссылки - Массив из ЛюбаяСсылка
-Процедура Удалить(Ссылки) Экспорт
-
+// Ссылки - Массив из ЛюбаяСсылка - Массив ссылок на объекты, которые необходимо удалить.
+// Привилегированно - Булево - Выполнить удаление в привилегированном режиме (без учета прав на объекты)
+Процедура Удалить(Ссылки, Привилегированно = Ложь) Экспорт
+
Если ЗначениеЗаполнено(Ссылки) Тогда
- ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки);
+ ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки, Привилегированно);
КонецЕсли;
-
+
КонецПроцедуры
// Возвращает объект подражателя для формирования осмысленных тестовых данных
@@ -857,21 +1024,6 @@
КонецПроцедуры
-Функция МножительПериода(ТипИнтервала)
-
- Множители = ЮТСлужебныйПовторногоИспользования.МножителиИнтервалов();
- Возврат Множители[ТипИнтервала];
-
-КонецФункции
-
-Функция ЭтоМесяц(ТипИнтервала)
-
- Возврат СтрСравнить(ТипИнтервала, "месяц") = 0
- Или СтрСравнить(ТипИнтервала, "месяца") = 0
- Или СтрСравнить(ТипИнтервала, "месяцев") = 0;
-
-КонецФункции
-
Функция МаксимумГенератора()
Возврат 4294967295;
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 4c5690195..8b4727d26 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -111,7 +111,7 @@
ЮТФайлы.УдалитьВременныеФайлы(БуферВременныеФайлы());
Если ЮТНастройкиВыполнения.УдалениеТестовыхДанных() Тогда
- ЮТТестовыеДанные.Удалить(БуферТестовыеДанные());
+ ЮТТестовыеДанные.Удалить(БуферТестовыеДанные(), Истина);
КонецЕсли;
КонецПроцедуры
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
index 37f235a76..2b7f8529e 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
@@ -22,7 +22,8 @@
ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи);
- Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства);
+ Объект = НовыйОбъект(Менеджер, Данные,
+ ПараметрыЗаписи.ДополнительныеСвойства, ПараметрыЗаписи.УникальныйИдентификаторСсылки);
КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи);
@@ -40,10 +41,14 @@
// Менеджер - Произвольный
// Данные - Структура - Данные заполнения объекта
// ДополнительныеСвойства - Структура - Дополнительные свойства объекта
+// УникальныйИдентификаторСсылки - УникальныйИдентификатор - Уникальный идентификатор, который будет установлен в качестве ссылки для объекта
//
// Возвращаемое значение:
// Произвольный - Созданный объект
-Функция НовыйОбъект(Знач Менеджер, Знач Данные, Знач ДополнительныеСвойства = Неопределено) Экспорт
+Функция НовыйОбъект(Знач Менеджер,
+ Знач Данные,
+ Знач ДополнительныеСвойства = Неопределено,
+ Знач УникальныйИдентификаторСсылки = Неопределено) Экспорт
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер);
Менеджер = ЮТОбщий.Менеджер(ОписаниеОбъектаМетаданных);
@@ -55,6 +60,11 @@
Если ДополнительныеСвойства <> Неопределено Тогда
ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства);
КонецЕсли;
+
+ Если УникальныйИдентификаторСсылки <> Неопределено И ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда
+ Ссылка = Менеджер.ПолучитьСсылку(УникальныйИдентификаторСсылки);
+ Объект.УстановитьСсылкуНового(Ссылка);
+ КонецЕсли;
Если ЭтоРегистр Тогда
@@ -88,7 +98,7 @@
КонецФункции
-Процедура Удалить(Знач Ссылки) Экспорт
+Процедура Удалить(Знач Ссылки, Привилегированно = Ложь) Экспорт
Если ТипЗнч(Ссылки) <> Тип("Массив") Тогда
Ссылки = ЮТКоллекции.ЗначениеВМассиве(Ссылки);
@@ -102,7 +112,9 @@
Если Ссылка = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда
Продолжить;
КонецЕсли;
-
+ Если Привилегированно и НЕ ПривилегированныйРежим() Тогда
+ УстановитьПривилегированныйРежим(Истина);
+ КонецЕсли;
Попытка
Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда
Объект = Ссылка.ПолучитьОбъект();
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl"
index 78d40fc42..df772a099 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl"
@@ -350,4 +350,15 @@
КонецФункции
+// Возволяет выполнить настройку зависимостей теста, тестового набора или модуля.
+// Возвращает модуль установки зависимостей теста.
+//
+// Возвращаемое значение:
+// CommonModule
+Функция ЗависитОт() Экспорт
+
+ Возврат ЮТЗависимости;
+
+КонецФункции
+
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 7a2b857a8..dc0a45cca 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -86,6 +86,18 @@
КонецПроцедуры
+Процедура ДобавитьЗависимость(ОписаниеЗависимости) Экспорт
+
+ Контекст = Контекст();
+
+ Если Контекст.ТекущийЭлемент = Неопределено Тогда
+ ВызватьИсключение "Не инициализированы настройки регистрации тестов";
+ КонецЕсли;
+
+ Контекст.ТекущийЭлемент.Зависимости.Добавить(ОписаниеЗависимости);
+
+КонецПроцедуры
+
Процедура СПараметрами(Параметры, Знач НовыеКонтексты) Экспорт
Контекст = Контекст();
@@ -148,10 +160,23 @@
// Описание сценариев модуля
//
// Возвращаемое значение:
-// Структура - см. ИсполняемыеСценарии
+// см. ИсполняемыеСценарии
Функция СценарииМодуля() Экспорт
- Возврат Контекст().ИсполняемыеСценарии;
+ СценарииМодуля = Контекст().ИсполняемыеСценарии;
+
+ Результат = Новый Структура("ТестовыеНаборы, НастройкиВыполнения, Зависимости");
+ Результат.ТестовыеНаборы = СценарииМодуля.ТестовыеНаборы;
+
+ // TODO Нужен рефакторинг
+ Результат.НастройкиВыполнения = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения);
+ Результат.Зависимости = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.Зависимости);
+
+ СценарииМодуля.НастройкиВыполнения.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль
+ СценарииМодуля.Зависимости.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль
+
+ //@skip-check constructor-function-return-section
+ Возврат Результат;
КонецФункции
@@ -191,15 +216,19 @@
// Возвращаемое значение:
// Структура - Исполняемые сценарии:
// * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля
-// * НастройкиВыполнения- Структура - Настройки исполнения теста
+// * НастройкиВыполнения - Структура - Настройки исполнения тестов модуля
+// * Зависимости - Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля
Функция ИсполняемыеСценарии(МетаданныеМодуля)
Структура = Новый Структура;
- Структура.Вставить("ТестовыеНаборы", Новый Массив());
- Структура.Вставить("НастройкиВыполнения", Новый Структура());
+ Структура.Вставить("ТестовыеНаборы", Новый Массив);
+ Структура.Вставить("НастройкиВыполнения", Новый Структура);
+ Структура.Вставить("Зависимости", Новый Массив);
Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию
+ Набор.Зависимости = Структура.Зависимости; // Общие зависимости с набором по умолчанию
+
Структура.ТестовыеНаборы.Добавить(Набор);
Возврат Структура;
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl"
index 858409ad9..43c64c268 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl"
@@ -87,7 +87,7 @@
КонецФункции
-// Возвращает перечисление возможные уровнией исполнения тестрв.
+// Возвращает перечисление возможные уровней исполнения тестов.
//
// Возвращаемое значение:
// ФиксированнаяСтруктура - Уровни исполнения:
@@ -105,6 +105,28 @@
КонецФункции
+// Возвращает перечисление для описания жизненного цикла прогона тестов
+//
+// Возвращаемое значение:
+// ФиксированнаяСтруктура - Этапа прогона:
+// * Инициализация - Строка
+// * ЗагрузкаТестов - Строка
+// * РазрешениеЗависимостей - Строка
+// * ПрогонТестов - Строка
+// * ФормированиеОтчета - Строка
+Функция ЭтапыПрогона() Экспорт
+
+ Этапы = Новый Структура;
+ Этапы.Вставить("Инициализация", "Инициализация");
+ Этапы.Вставить("ЗагрузкаТестов", "ЗагрузкаТестов");
+ Этапы.Вставить("РазрешениеЗависимостей", "РазрешениеЗависимостей");
+ Этапы.Вставить("ПрогонТестов", "ПрогонТестов");
+ Этапы.Вставить("ФормированиеОтчета", "ФормированиеОтчета");
+
+ Возврат Новый ФиксированнаяСтруктура(Этапы);
+
+КонецФункции
+
#КонецОбласти
// ПараметрыЗапуска
@@ -119,10 +141,11 @@
// * settings - см. НастройкиВыполнения
// * closeAfterTests - Булево - Признак необходимости закрытия приложения по окончании прогона
// * reportFormat - Строка - Формат отчета о тестировании.
-// Модули реализующие различные форматы отчетов собраны в подсистеме ЮТФормированиеОтчета
+// Модули реализующие различные форматы отчетов собраны в подсистеме ФормированиеОтчета
// * logging - см. ПараметрыЛогирования
-// * showReport - Булево - Признак необходмости отобразить отчет в 1с по окончании тестирования
+// * showReport - Булево - Признак необходимости отобразить отчет в 1с по окончании тестирования
// * exitCode - Строка - Путь к файлу, в который будет записан коды выхода
+// * projectPath - Строка - Путь к каталогу с файлами проекта тестирования, репозиторию
// * ПодключатьВнешниеКомпоненты - Булево - Выполнять установку и подключение внешних компонент при старте.
// Если выключено и включен запрет синхронных вызовов, то компоненты не будут доступы в тонком клиенте.
// Если выключено и разрешены синхронные вызовы, то компоненты можно установить вручную и тогда они будут доступны на клиенте.
@@ -140,6 +163,7 @@
Параметры.Вставить("showReport", Ложь);
Параметры.Вставить("logging", ПараметрыЛогирования());
Параметры.Вставить("exitCode", "");
+ Параметры.Вставить("projectPath", "");
Параметры.Вставить("ПодключатьВнешниеКомпоненты", Истина);
@@ -216,6 +240,34 @@
КонецФункции
+// Создает новое описание зависимости теста.
+//
+// Возвращаемое значение:
+// Структура - Новое описание зависимости:
+// * Идентификатор - Строка - Идентификатор зависимости
+// * МетодРеализации - Строка - Метод, вызываемый для разрешения зависимости
+// * Параметры - Массив из Произвольный - Параметры зависимости, будут проброшены в метод
+// * Ключ - Неопределено - Уникальный ключ зависимости, рассчитывается движком
+// * Асинхронный - Булево - Признак, что зависимость асинхронная. Асинхронность реализуется за счет передачи ОписанияОповещения в метод реализации
+// * ОбработкаНаСервере - Булево - Признак обработки зависимости на сервере
+// * ДоступностьНаКлиенте - Булево - Признак доступности зависимости на клиенте
+// * ДоступностьНаСервере - Булево - Признак доступности зависимости на сервере
+Функция НовоеОписаниеЗависимости() Экспорт
+
+ Описание = Новый Структура;
+ Описание.Вставить("Идентификатор", "");
+ Описание.Вставить("МетодРеализации", "");
+ Описание.Вставить("Параметры", Новый Массив);
+ Описание.Вставить("Ключ", Неопределено);
+ Описание.Вставить("Асинхронный", Ложь);
+ Описание.Вставить("ОбработкаНаСервере", Ложь);
+ Описание.Вставить("ДоступностьНаКлиенте", Истина);
+ Описание.Вставить("ДоступностьНаСервере", Истина);
+
+ Возврат Описание;
+
+КонецФункции
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index c7d3fb6a5..841bccec0 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -88,13 +88,13 @@
// * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора
// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки
// * НастройкиВыполнения- Структура - Настройки исполнения теста
+// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля
Функция ОписаниеТестовогоМодуля(МетаданныеМодуля, НаборыТестов) Экспорт
- Описание = Новый Структура;
+ Описание = БазовоеОписаниеРегистрируемогоОбъекта();
+
Описание.Вставить("МетаданныеМодуля", МетаданныеМодуля);
Описание.Вставить("НаборыТестов", НаборыТестов);
- Описание.Вставить("Ошибки", Новый Массив);
- Описание.Вставить("НастройкиВыполнения", Новый Структура());
Возврат Описание;
@@ -115,15 +115,15 @@
// * Тесты - Массив из см. ОписаниеТеста - Коллекция тестов набора, см. ОписаниеТеста
// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок регистрации тестов
// * НастройкиВыполнения- Структура - Настройки исполнения теста
+// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового набора
Функция ОписаниеТестовогоНабора(Имя, ТегиСтрокой = "") Экспорт
- Описание = Новый Структура;
+ Описание = БазовоеОписаниеРегистрируемогоОбъекта();
+
Описание.Вставить("Имя", Строка(Имя));
Описание.Вставить("Представление", Строка(Имя));
Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь));
Описание.Вставить("Тесты", Новый Массив);
- Описание.Вставить("Ошибки", Новый Массив);
- Описание.Вставить("НастройкиВыполнения", Новый Структура());
Возврат Описание;
@@ -147,18 +147,19 @@
// * НастройкиВыполнения- Структура - Настройки исполнения теста
// * Параметры - Неопределено, Массив из Произвольный - Параметры теста
// * НомерВНаборе - Число - Порядковый номер теста в наборе
+// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости теста
+// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок регистрации тестов
Функция ОписаниеТеста(Имя, Представление, КонтекстыВызова, Знач ТегиСтрокой = "") Экспорт
Если ТегиСтрокой = Неопределено Тогда
ТегиСтрокой = "";
КонецЕсли;
- Описание = Новый Структура();
+ Описание = БазовоеОписаниеРегистрируемогоОбъекта();
Описание.Вставить("Имя", Строка(Имя));
Описание.Вставить("Представление", Строка(Представление));
Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь));
Описание.Вставить("КонтекстВызова", КонтекстыВызова);
- Описание.Вставить("НастройкиВыполнения", Новый Структура());
Описание.Вставить("Параметры", Неопределено);
Описание.Вставить("НомерВНаборе", 0);
@@ -177,14 +178,13 @@
// * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки
// * НастройкиВыполнения- Структура - Настройки исполнения теста
+// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля
Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт
- Описание = Новый Структура;
+ Описание = БазовоеОписаниеИсполняемогоОбъекта(ТестовыйМодуль);
Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
Описание.Вставить("НаборыТестов", Новый Массив);
- Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(ТестовыйМодуль.Ошибки));
- Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения));
Возврат Описание;
@@ -211,14 +211,14 @@
// * Длительность - Число - Продолжительность выполнения набора
// * НастройкиВыполнения - Структура - Настройки исполнения теста
// * ТестовыйМодуль - См. ОписаниеТестовогоМодуля
+// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового набора
Функция ОписаниеИсполняемогоНабораТестов(НаборТестов, ТестовыйМодуль) Экспорт
- Описание = Новый Структура();
+ Описание = БазовоеОписаниеИсполняемогоОбъекта(НаборТестов);
Описание.Вставить("Имя", НаборТестов.Имя);
Описание.Вставить("Представление", НаборТестов.Представление);
Описание.Вставить("Теги", НаборТестов.Теги);
- Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(НаборТестов.Ошибки));
Описание.Вставить("Режим", "");
Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль);
Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
@@ -226,7 +226,6 @@
Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0);
Описание.Вставить("ДатаСтарта", 0);
Описание.Вставить("Длительность", 0);
- Описание.Вставить("НастройкиВыполнения", НаборТестов.НастройкиВыполнения);
Возврат Описание;
@@ -255,27 +254,26 @@
// * НастройкиВыполнения- Структура - Настройки исполнения теста
// * Параметры - Неопределено, Массив из Произвольный - Набор параметров теста
// * НомерВНаборе - Число - Порядковый номер теста в наборе
+// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости теста
Функция ОписаниеИсполняемогоТеста(Тест, Режим, ТестовыйМодуль) Экспорт
ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.МетаданныеМодуля.Имя, Тест.Имя);
Представление = ПредставлениеТеста(Тест);
- ОписаниеТеста = Новый Структура;
- ОписаниеТеста.Вставить("Имя", Представление);
- ОписаниеТеста.Вставить("Метод", Тест.Имя);
- ОписаниеТеста.Вставить("ПолноеИмяМетода", ПолноеИмяМетода);
- ОписаниеТеста.Вставить("Теги", Тест.Теги);
- ОписаниеТеста.Вставить("Режим", Режим);
- ОписаниеТеста.Вставить("ДатаСтарта", 0);
- ОписаниеТеста.Вставить("Длительность", 0);
- ОписаниеТеста.Вставить("Статус", ЮТФабрика.СтатусыИсполненияТеста().Ожидание);
- ОписаниеТеста.Вставить("Ошибки", Новый Массив);
- ОписаниеТеста.Вставить("НастройкиВыполнения", Тест.НастройкиВыполнения);
- ОписаниеТеста.Вставить("Параметры", Тест.Параметры);
- ОписаниеТеста.Вставить("НомерВНаборе", Тест.НомерВНаборе);
+ Описание = БазовоеОписаниеИсполняемогоОбъекта(Тест);
+ Описание.Вставить("Имя", Представление);
+ Описание.Вставить("Метод", Тест.Имя);
+ Описание.Вставить("ПолноеИмяМетода", ПолноеИмяМетода);
+ Описание.Вставить("Теги", Тест.Теги);
+ Описание.Вставить("Режим", Режим);
+ Описание.Вставить("ДатаСтарта", 0);
+ Описание.Вставить("Длительность", 0);
+ Описание.Вставить("Статус", ЮТФабрика.СтатусыИсполненияТеста().Ожидание);
+ Описание.Вставить("Параметры", Тест.Параметры);
+ Описание.Вставить("НомерВНаборе", Тест.НомерВНаборе);
//@skip-check constructor-function-return-section
- Возврат ОписаниеТеста;
+ Возврат Описание;
КонецФункции
@@ -431,7 +429,7 @@
// Структура - Описание проверяемого значения:
// * Значение - Произвольный
// * Представление - Строка - Представление объекта
-// - Неопределено - Если не указано тогда используется платформенное предсталение (`Строка(Значение)`)
+// - Неопределено - Если не указано тогда используется платформенное представление (`Строка(Значение)`)
// * ИмяСвойства - Строка, Число, Неопределено - Имя проверяемого реквизита, индекса
Функция ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение) Экспорт
@@ -465,6 +463,25 @@
КонецФункции
+#Область Зависимости
+
+Функция РезультатРазрешенияЗависимости() Экспорт
+
+ Результат = Новый Структура();
+ Результат.Вставить("Успешно", Ложь);
+ Результат.Вставить("Ошибка", Неопределено);
+ Результат.Вставить("СохраняемыйКонтекст", Неопределено);
+ Результат.Вставить("СохраняемыйКонтекстКлиент", Неопределено);
+ Результат.Вставить("СохраняемыйКонтекстСервер", Неопределено);
+ Результат.Вставить("ДоступностьНаКлиенте", Истина);
+ Результат.Вставить("ДоступностьНаСервере", Истина);
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
#КонецОбласти
#Область КонструкторыКонтекстов
@@ -505,7 +522,7 @@
Описание = Новый Структура();
Описание.Вставить("Сообщения", Новый Массив);
- Описание.Вставить("Успешно", Истина);
+ Описание.Вставить("Успешно", Успешно);
Возврат Описание;
@@ -658,7 +675,7 @@
// Структура - Описание формата отчета:
// * Идентификатор - Строка - Уникальный идентификатор формата отчета
// * Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования
-// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен призак `СамостоятельнаяЗаписьОтчета`
+// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен признак `СамостоятельнаяЗаписьОтчета`
// * ФильтрВыбораФайла - Строка - Фильтр выбора, используется в форме настроек тестирования
// * ИмяФайлаПоУмолчанию - Строка - Для отчетов, записываемых в файл, имя файла если в параметрах указан каталог
// * СамостоятельнаяЗаписьОтчета - Булево - Способ записи отчета в файлы.
@@ -677,8 +694,31 @@
Возврат Описание;
КонецФункции
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
+Функция БазовоеОписаниеРегистрируемогоОбъекта()
+
+ Описание = Новый Структура();
+ Описание.Вставить("НастройкиВыполнения", Новый Структура());
+ Описание.Вставить("Зависимости", Новый Массив());
+ Описание.Вставить("Ошибки", Новый Массив);
+
+ Возврат Описание;
+
+КонецФункции
+
+Функция БазовоеОписаниеИсполняемогоОбъекта(РегистрируемыйОбъекта)
+
+ Описание = Новый Структура();
+ Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Ошибки));
+ Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(РегистрируемыйОбъекта.НастройкиВыполнения));
+ Описание.Вставить("Зависимости", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Зависимости));
+
+ Возврат Описание;
+
+КонецФункции
+
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl"
index caab4a5e4..fc7f3c007 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl"
@@ -148,6 +148,32 @@
КонецПроцедуры
+Процедура СоздатьКаталогРекурсивно(Путь) Экспорт
+
+ Файл = Новый Файл(Путь);
+
+ Если Файл.Существует() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СоздатьКаталогРекурсивно(Файл.Путь);
+
+ СоздатьКаталог(Файл.ПолноеИмя);
+
+КонецПроцедуры
+
+Процедура СоздатьРодительскийКаталог(Путь) Экспорт
+
+ Файл = Новый Файл(Путь);
+
+ Если Файл.Существует() Тогда
+ Возврат;
+ КонецЕсли;
+
+ СоздатьКаталогРекурсивно(Файл.Путь);
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index e8c93a339..3aeea5960 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -18,6 +18,7 @@
#Область СлужебныйПрограммныйИнтерфейс
+#Если Клиент Тогда
// ЗагрузитьТесты
// Читает наборы тестов (тестовые модули) из расширений
// Параметры:
@@ -43,9 +44,12 @@
КонецЦикла;
+ ЮТЗависимостиСлужебныйКлиент.ДедупликацияЗависимостей(Результат);
+
Возврат Результат;
КонецФункции
+#КонецЕсли
// ПрочитатьНаборТестов
// Читает набор тестов из модуля
@@ -91,10 +95,9 @@
ЮТТестыСлужебный.ПослеЧтенияСценариевМодуля();
Сценарии = ЮТТестыСлужебный.СценарииМодуля();
- УдалитьНастройкиМодуляИзПервогоНабора(Сценарии); // TODO Нужен рефакторинг
-
ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля);
ОписаниеТестовогоМодуля.НастройкиВыполнения = Сценарии.НастройкиВыполнения;
+ ОписаниеТестовогоМодуля.Зависимости = Сценарии.Зависимости;
Иначе
@@ -222,14 +225,4 @@
КонецФункции
-Процедура УдалитьНастройкиМодуляИзПервогоНабора(СценарииМодуля)
-
- НастройкиВыполнения = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения);
-
- СценарииМодуля.НастройкиВыполнения.Очистить();
-
- СценарииМодуля.НастройкиВыполнения = НастройкиВыполнения;
-
-КонецПроцедуры
-
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl"
index 2f63ffd29..a07264230 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl"
@@ -203,4 +203,21 @@
КонецПроцедуры
+// Возвращает данные зависимость.
+// Результат зависит от реализации зависимости.
+// Для указания зависимости используйте методы модуля `ЮТЗависимости`, необходимо указывать туже зависимость, что указана при регистрации.
+//
+// Параметры:
+// ОписаниеЗависимости - см. ЮТФабрика.НовоеОписаниеЗависимости
+//
+// Возвращаемое значение:
+// Произвольный
+// Пример:
+// ПолноеИмяФайла = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(".gitignore")).ПолноеИмя;
+Функция Зависимость(ОписаниеЗависимости) Экспорт
+
+ Возврат ЮТЗависимостиСлужебный.ДанныеЗависимости(ОписаниеЗависимости);
+
+КонецФункции
+
#КонецОбласти
diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo
index 3d04b03a7..829499ea0 100644
--- a/exts/yaxunit/src/Configuration/Configuration.mdo
+++ b/exts/yaxunit/src/Configuration/Configuration.mdo
@@ -20,7 +20,7 @@
8.3.10
AddOn
Russian
- 24.03
+ 24.04
Русский
Adopted
@@ -30,7 +30,7 @@
ru
Subsystem.ЮТДвижок
- Subsystem.ЮТДинамическиПодключаемые
+ Subsystem.ЮТПодключаемыеМодули
Subsystem.ЮТПубличный
CommonPicture.ЮТЗапустить
CommonPicture.ЮТНеизвестный
@@ -61,6 +61,10 @@
CommonModule.МокитоСлужебный
CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент
CommonModule.ЮТест
+ CommonModule.ЮТЗависимости
+ CommonModule.ЮТЗависимостиСлужебный
+ CommonModule.ЮТЗависимостиСлужебныйВызовСервера
+ CommonModule.ЮТЗависимостиСлужебныйКлиент
CommonModule.ЮТЗапросы
CommonModule.ЮТЗапросыСлужебныйВызовСервера
CommonModule.ЮТЗапросыСлужебныйКлиентСервер
@@ -97,6 +101,8 @@
CommonModule.ЮТОтчетJUnitСлужебный
CommonModule.ЮТОтчетСлужебный
CommonModule.ЮТПараметрыЗапускаСлужебный
+ CommonModule.ЮТПодключаемыеМодулиСлужебный
+ CommonModule.ЮТПодключаемыеМодулиСлужебныйВызовСервера
CommonModule.ЮТПодражатель
CommonModule.ЮТПодражатель_Банки
CommonModule.ЮТПодражатель_Компании
@@ -108,7 +114,8 @@
CommonModule.ЮТПредикатыСлужебныйКлиентСервер
CommonModule.ЮТПреобразованияСлужебный
CommonModule.ЮТПроверкиСлужебный
- CommonModule.ЮТРасширенияСлужебный
+ CommonModule.ЮТРазрешениеЗависимостейСлужебныйВызовСервера
+ CommonModule.ЮТРазрешениеЗависимостейСлужебныйКлиент
CommonModule.ЮТРегистрацияОшибок
CommonModule.ЮТРегистрацияОшибокСлужебный
CommonModule.ЮТСлужебныйПовторногоИспользования
diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl"
index 7ebf637ca..c7e577eec 100644
--- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl"
+++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl"
@@ -194,7 +194,12 @@
КонецЕсли;
СтекОбъектов = Новый Массив();
+
ТипОбъекта = Фабрика.Тип(ПространствоИмен, ИмяТипаОбъекта);
+ Если ТипОбъекта = Неопределено Тогда
+ ВызватьИсключение СтрШаблон("Неизвестный тип `%1`; пространство имен: `%2`", ИмяТипаОбъекта, ПространствоИмен);
+ КонецЕсли;
+
ДобавитьНовыйОбъектВСтек(ТипОбъекта);
КонецПроцедуры
@@ -239,15 +244,18 @@
Функция СлучайноеЗначениеСвойства(Свойство, Уровень = 0)
ТипСвойства = Свойство.Тип;
+
Если ТипЗнч(ТипСвойства) = Тип("ТипЗначенияXDTO") Тогда
- Возврат СлучайноеЗначениеПримитипа(Свойство);
+ Возврат СлучайноеЗначениеПримитива(Свойство);
ИначеЕсли Уровень < 3 Тогда
Возврат СлучайноеЗначениеОбъекта(Свойство, Уровень + 1);
+ Иначе
+ Возврат Неопределено;
КонецЕсли;
КонецФункции
-Функция СлучайноеЗначениеПримитипа(Свойство)
+Функция СлучайноеЗначениеПримитива(Свойство)
Тип = Свойство.Тип;
@@ -331,12 +339,14 @@
Процедура СписокСлучайныхЗначений(Список, Свойство, Уровень)
- Если Свойство.ВерхняяГраница = -1 Тогда
- Количество = ЮТест.Данные().СлучайноеЧисло(Свойство.НижняяГраница, 10);
- Иначе
- Количество = ЮТест.Данные().СлучайноеЧисло(Свойство.НижняяГраница, Свойство.ВерхняяГраница);
+ ВерхняяГраница = Свойство.НижняяГраница + 10;
+
+ Если Свойство.ВерхняяГраница > 0 Тогда
+ ВерхняяГраница = Мин(ВерхняяГраница, Свойство.ВерхняяГраница); // Для больших значений верхней границы
КонецЕсли;
+ Количество = ЮТест.Данные().СлучайноеЧисло(Свойство.НижняяГраница, ВерхняяГраница);
+
Для Инд = 0 По Количество Цикл
Значение = СлучайноеЗначениеСвойства(Свойство, Уровень);
Список.Добавить(Значение);
diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl"
index bc1f2d7b3..a1196a988 100644
--- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl"
+++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl"
@@ -170,6 +170,22 @@
КонецФункции
+// Устанавливает дополнительное свойство объекта.
+//
+// Параметры:
+// Значение - УникальныйИдентификатор - Уникальный идентификатор ссылки нового объекта
+// - Строка - Строковое представление уникального идентификатора ссылки нового объекта
+//
+// Возвращаемое значение:
+// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор
+&НаКлиенте
+Функция УстановитьСсылкуНового(Значение) Экспорт
+
+ ЮТКонструкторТестовыхДанныхСлужебный.УстановитьСсылкуНового(Контекст, Значение);
+ Возврат ЭтотОбъект;
+
+КонецФункции
+
// Создает новый объект и возвращает его или ссылку.
//
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов.
diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl"
index 978555fff..33669f14d 100644
--- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl"
+++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl"
@@ -161,6 +161,21 @@
КонецФункции
+// Устанавливает дополнительное свойство объекта.
+//
+// Параметры:
+// Значение - УникальныйИдентификатор - Уникальный идентификатор ссылки нового объекта
+// - Строка - Строковое представление уникального идентификатора ссылки нового объекта
+//
+// Возвращаемое значение:
+// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор
+Функция УстановитьСсылкуНового(Значение) Экспорт
+
+ ЮТКонструкторТестовыхДанныхСлужебный.УстановитьСсылкуНового(Контекст, Значение);
+ Возврат ЭтотОбъект;
+
+КонецФункции
+
// Создает новый объект и возвращает его или ссылку.
//
// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов.
diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form"
index 706a639eb..bcd4f6619 100644
--- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form"
+++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form"
@@ -355,6 +355,7 @@
8.0
true
+ Style.NormalTextFont
@@ -1443,6 +1444,7 @@
false
12.0
+ Style.NormalTextFont
Left
diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl"
index e8942f913..f0b5e5234 100644
--- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl"
+++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl"
@@ -860,8 +860,8 @@
ШаблонПредставленияОшибки = ЮТОбщий.Макет("ОбщийМакет.ЮТИнформацияОбОшибке").ПолучитьТекст();
ПредставленияОшибки = СтрЗаменить(ШаблонПредставленияОшибки, "TREE_CONTENT", СтрСоединить(Блоки, Символы.ПС));
- Возврат ПолучитьНавигационнуюСсылкуИнформационнойБазы() + "/"+ ПоместитьВоВременноеХранилище(ПредставленияОшибки, Новый УникальныйИдентификатор);
-
+ Возврат ПредставленияОшибки;
+
КонецФункции
&НаСервереБезКонтекста
diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form"
index 70e3150f5..32d8eb4c1 100644
--- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form"
+++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form"
@@ -467,13 +467,65 @@
true
true
true
- true
true
true
true
true
+
+ КаталогПроекта
+ 106
+ true
+ true
+
+ true
+
+
+ КаталогПроекта
+
+
+ КаталогПроектаРасширеннаяПодсказка
+ 108
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ КаталогПроектаКонтекстноеМеню
+ 107
+ true
+ true
+
+ true
+
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+
+ StartChoice
+ КаталогПроектаНачалоВыбора
+
+ true
+ true
+ true
+ true
+ true
+
+
ГруппаОтчеты
75
@@ -490,7 +542,7 @@
ОтобразитьОтчетРасширеннаяПодсказка
- 71
+ 30
true
true
@@ -1344,6 +1396,9 @@
true
+
+ ПараметрыЗапуска
+
ЗапускИзКонфигуратор
@@ -1464,6 +1519,9 @@
true
+
+ ЛогированиеВКонсоль
+
ФорматОтчета
@@ -1482,6 +1540,9 @@
true
+
+ ФорматОтчета
+
УровеньЛога
@@ -1500,6 +1561,9 @@
true
+
+ УровеньЛога
+
ЗакрытьПослеТестирования
@@ -1517,6 +1581,30 @@
true
+
+ ЗакрытьПослеТестирования
+
+
+
+ КаталогПроекта
+
+ ru
+ Каталог проекта
+
+ 71
+
+ String
+
+
+
+ true
+
+
+ true
+
+
+ КаталогПроекта
+
УстановитьФлажки
diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl"
index 013789fbd..14c0c1420 100644
--- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl"
+++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl"
@@ -35,7 +35,8 @@
УровеньЛога = Конфигурация.logging.level;
ОтобразитьОтчет = Конфигурация.showReport;
ЗакрытьПослеТестирования = Конфигурация.closeAfterTests;
- ЛогированиеВКонсоль = Конфигурация.logging.console ;
+ КаталогПроекта = Конфигурация.projectPath;
+ ЛогированиеВКонсоль = Конфигурация.logging.console;
КонецПроцедуры
@@ -62,6 +63,14 @@
КонецПроцедуры
+&НаКлиенте
+Процедура КаталогПроектаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
+
+ Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "КаталогПроекта");
+ ВыбратьКаталог(КаталогПроекта, Оповещение);
+
+КонецПроцедуры
+
&НаКлиенте
Процедура ЗапускИзПредприятияПриИзменении(Элемент)
@@ -79,14 +88,16 @@
&НаКлиенте
Процедура ВыводЛогаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
- ВыбратьФайл("*.log|*.log|*.txt|*.txt|All files(*.*)|*.*", ИмяФайлаЛога, Новый ОписаниеОповещения("УстановитьИмяФайлаЛога", ЭтотОбъект));
+ Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаЛога");
+ ВыбратьФайл("*.log|*.log|*.txt|*.txt|All files(*.*)|*.*", ИмяФайлаЛога, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ИмяФайлаКодаВозвратаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
- ВыбратьФайл("All files(*.*)|*.*", ИмяФайлаЛога, Новый ОписаниеОповещения("УстановитьИмяФайлаКодаВозврата", ЭтотОбъект));
+ Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаКодаВозврата");
+ ВыбратьФайл("All files(*.*)|*.*", ИмяФайлаКодаВозврата, Оповещение);
КонецПроцедуры
@@ -99,10 +110,11 @@
Возврат;
КонецЕсли;
+ Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаОтчета");
Если ОписаниеФормата.ЗаписьВКаталог Тогда
- ВыбратьКаталог(ИмяФайлаОтчета, Новый ОписаниеОповещения("УстановитьИмяФайлаОтчета", ЭтотОбъект));
+ ВыбратьКаталог(ИмяФайлаОтчета, Оповещение);
Иначе
- ВыбратьФайл(ОписаниеФормата.ФильтрВыбораФайла, ИмяФайлаОтчета, Новый ОписаниеОповещения("УстановитьИмяФайлаОтчета", ЭтотОбъект));
+ ВыбратьФайл(ОписаниеФормата.ФильтрВыбораФайла, ИмяФайлаОтчета, Оповещение);
КонецЕсли;
КонецПроцедуры
@@ -393,28 +405,10 @@
КонецПроцедуры
&НаКлиенте
-Процедура УстановитьИмяФайлаЛога(ВыбранныйФайл, ДополнительныеПараметры) Экспорт
-
- Если ВыбранныйФайл <> Неопределено Тогда
- ИмяФайлаЛога = ВыбранныйФайл;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура УстановитьИмяФайлаКодаВозврата(ВыбранныйФайл, ДополнительныеПараметры) Экспорт
-
- Если ВыбранныйФайл <> Неопределено Тогда
- ИмяФайлаКодаВозврата = ВыбранныйФайл;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура УстановитьИмяФайлаОтчета(ВыбранныйФайл, ДополнительныеПараметры) Экспорт
+Процедура СохранитьИмяФайлаВРеквизит(ВыбранныйФайл, ИмяРеквизита) Экспорт
Если ВыбранныйФайл <> Неопределено Тогда
- ИмяФайлаОтчета = ВыбранныйФайл;
+ ЭтотОбъект[ИмяРеквизита] = ВыбранныйФайл;
КонецЕсли;
КонецПроцедуры
@@ -468,6 +462,7 @@
Конфигурация.closeAfterTests = ЗакрытьПослеТестирования;
Конфигурация.reportFormat = ФорматОтчета;
Конфигурация.reportPath = ИмяФайлаОтчета;
+ Конфигурация.projectPath = КаталогПроекта;
Конфигурация.logging.level = УровеньЛога;
Конфигурация.logging.file = ИмяФайлаЛога;
@@ -477,6 +472,8 @@
Конфигурация.exitCode = ИмяФайлаКодаВозврата;
КонецЕсли;
+ Конфигурация.filter.Очистить();
+
Если НЕ (УстановленФильтрПоРасширению(Конфигурация) ИЛИ УстановленФильтрПоМодулям(Конфигурация)) Тогда
УстановитьФильтрПоТестам(Конфигурация);
КонецЕсли;
@@ -519,7 +516,7 @@
КонецЦикла;
Если Расширения.Количество() Тогда
- Конфигурация.filter.extensions = Расширения;
+ Конфигурация.filter.Вставить("extensions",Расширения);
КонецЕсли;
Возврат Расширения.Количество() > 0;
@@ -550,7 +547,7 @@
КонецЦикла;
Если Модули.Количество() Тогда
- Конфигурация.filter.modules = Модули;
+ Конфигурация.filter.Вставить("modules", Модули);
КонецЕсли;
Возврат Модули.Количество() > 0;
@@ -563,7 +560,7 @@
Тесты = Новый Массив();
ДобавитьОтмеченныеТесты(ДеревоТестов.ПолучитьЭлементы(), Тесты);
- Конфигурация.filter.tests = Тесты;
+ Конфигурация.filter.Вставить("tests", Тесты);
КонецПроцедуры
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo"
index 75ec9c01e..3d16e0022 100644
--- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo"
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo"
@@ -11,6 +11,7 @@
Содержит функциональности мокирования данных
CommonModule.МокитоОбучение
+ CommonModule.МокитоПерехват
CommonModule.МокитоПроверки
CommonModule.МокитоСлужебный
DataProcessor.ЮТHTTPServiceRequest
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo"
index 820d5e445..68a3a618e 100644
--- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo"
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo"
@@ -11,19 +11,27 @@
Сервисная функциональность работы движка
CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент
+ CommonModule.ЮТЗависимости
+ CommonModule.ЮТЗависимостиСлужебный
CommonModule.ЮТИсключения
CommonModule.ЮТКомпоненты
CommonModule.ЮТКомпонентыСлужебныйВызовСервера
CommonModule.ЮТКомпонентыСлужебныйКлиент
CommonModule.ЮТЛогированиеСлужебныйВызовСервера
+ CommonModule.ЮТЛогИсполненияТестаСлужебный
CommonModule.ЮТЛокальСлужебный
+ CommonModule.ЮТМетаданныеСлужебный
CommonModule.ЮТМетаданныеСлужебныйВызовСервера
CommonModule.ЮТМетаданныеСлужебныйПовтИсп
+ CommonModule.ЮТМетодыСлужебный
CommonModule.ЮТНастройкиВыполнения
CommonModule.ЮТОбщийСлужебныйВызовСервера
CommonModule.ЮТОтчетСлужебный
+ CommonModule.ЮТПодключаемыеМодулиСлужебный
CommonModule.ЮТПроверкиСлужебный
- CommonModule.ЮТРасширенияСлужебный
+ CommonModule.ЮТРазрешениеЗависимостейСлужебныйВызовСервера
+ CommonModule.ЮТРазрешениеЗависимостейСлужебныйКлиент
+ CommonModule.ЮТРегистрацияОшибок
CommonModule.ЮТРегистрацияОшибокСлужебный
CommonModule.ЮТСлужебныйПовторногоИспользования
CommonModule.ЮТСобытияСлужебный
@@ -31,15 +39,19 @@
CommonModule.ЮТТипыДанныхСлужебный
CommonModule.ЮТФабрикаСлужебный
CommonModule.ЮТФайлы
+ CommonPicture.ЮТЗапустить
CommonPicture.ЮТНеизвестный
CommonPicture.ЮТОшибка
+ CommonPicture.ЮТПерезапуститьУпавшие
CommonPicture.ЮТПодсистема
CommonPicture.ЮТПропущен
+ CommonPicture.ЮТСравнить
CommonPicture.ЮТУпал
CommonPicture.ЮТУспешно
CommonPicture.ЮТЭлементыТестов
CommonTemplate.ЮТRegEx1CAddin
CommonTemplate.ЮТYaxUnitAddIn
+ CommonTemplate.ЮТИнформацияОбОшибке
CommonTemplate.ЮТОписаниеМетаданных
Subsystem.ЮТДвижок
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo"
index 64b093691..4544f5ea1 100644
--- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo"
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo"
@@ -18,6 +18,7 @@
CommonModule.ЮТТестовыеДанныеСлужебный
CommonModule.ЮТТестовыеДанныеСлужебныйВызовСервера
CommonModule.ЮТТестовыеДанныеСлужебныйТаблицыЗначений
+ DataProcessor.ЮТКонструкторОбъектаXDTO
DataProcessor.ЮТКонструкторТестовыхДанных
ЮТПодражатель
Subsystem.ЮТДвижок
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi"
similarity index 100%
rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/CommandInterface.cmi"
rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi"
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi"
similarity index 100%
rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi"
rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi"
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\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\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi"
similarity index 100%
rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\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\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi"
rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi"
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo"
new file mode 100644
index 000000000..b1bc26337
--- /dev/null
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo"
@@ -0,0 +1,10 @@
+
+
+ ЗагрузкаТестов
+
+ ru
+ Загрузка тестов
+
+ true
+ Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий
+
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi"
new file mode 100644
index 000000000..0cf6de8a4
--- /dev/null
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi"
@@ -0,0 +1,2 @@
+
+
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo"
new file mode 100644
index 000000000..90f3f4ecf
--- /dev/null
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo"
@@ -0,0 +1,11 @@
+
+
+ Инициализация
+
+ ru
+ Инициализация
+
+ true
+ CommonModule.ЮТЗависимостиСлужебный
+ Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий
+
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi"
new file mode 100644
index 000000000..0cf6de8a4
--- /dev/null
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi"
@@ -0,0 +1,2 @@
+
+
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo"
new file mode 100644
index 000000000..cabd5580a
--- /dev/null
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo"
@@ -0,0 +1,14 @@
+
+
+ ИсполнениеТестов
+
+ ru
+ Исполнение тестов
+
+ true
+ CommonModule.МокитоСлужебный
+ CommonModule.ЮТИсполнительСлужебныйКлиент
+ CommonModule.ЮТТестовыеДанныеСлужебный
+ CommonModule.ЮТУтверждения
+ Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий
+
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo"
similarity index 55%
rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo"
rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo"
index fb20ea619..ee846d2ab 100644
--- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo"
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo"
@@ -1,6 +1,6 @@
- ЮТОбработчикиСобытий
+ ОбработчикиСобытий
ru
Обработчики событий
@@ -10,10 +10,9 @@
ru
Подключаемые обработчики событий тестов
- CommonModule.МокитоСлужебный
- CommonModule.ЮТИсполнительСлужебныйКлиент
CommonModule.ЮТЛогированиеСлужебный
- CommonModule.ЮТТестовыеДанныеСлужебный
- CommonModule.ЮТУтверждения
- Subsystem.ЮТДинамическиПодключаемые
+ ЗагрузкаТестов
+ Инициализация
+ ИсполнениеТестов
+ Subsystem.ЮТПодключаемыеМодули
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\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\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\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\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi"
new file mode 100644
index 000000000..0cf6de8a4
--- /dev/null
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\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\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi"
@@ -0,0 +1,2 @@
+
+
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\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\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\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\236\321\202\321\207\320\265\321\202\320\260.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\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\236\321\202\321\207\320\265\321\202\320\260/\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\236\321\202\321\207\320\265\321\202\320\260.mdo"
similarity index 81%
rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\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\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\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\236\321\202\321\207\320\265\321\202\320\260.mdo"
rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\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\236\321\202\321\207\320\265\321\202\320\260/\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\236\321\202\321\207\320\265\321\202\320\260.mdo"
index da86b8b76..c510003c9 100644
--- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\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\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\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\236\321\202\321\207\320\265\321\202\320\260.mdo"
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\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\236\321\202\321\207\320\265\321\202\320\260/\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\236\321\202\321\207\320\265\321\202\320\260.mdo"
@@ -1,6 +1,6 @@
- ЮТФормированиеОтчета
+ ФормированиеОтчета
ru
Формирование отчета
@@ -13,5 +13,5 @@
CommonModule.ЮТОтчетAllureСлужебный
CommonModule.ЮТОтчетJSONСлужебный
CommonModule.ЮТОтчетJUnitСлужебный
- Subsystem.ЮТДинамическиПодключаемые
+ Subsystem.ЮТПодключаемыеМодули
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo"
similarity index 73%
rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265.mdo"
rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo"
index 6ec3f85f0..0633d2b05 100644
--- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265.mdo"
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo"
@@ -1,6 +1,6 @@
- ЮТДинамическиПодключаемые
+ ЮТПодключаемыеМодули
ru
Динамически подключаемые
@@ -10,6 +10,6 @@
ru
Содержит подсистемы с динамически подключаемой (загружаемой) функциональностью
- ЮТОбработчикиСобытий
- ЮТФормированиеОтчета
+ ОбработчикиСобытий
+ ФормированиеОтчета
diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo"
index 56ec76599..fc26f7c5c 100644
--- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo"
+++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo"
@@ -16,8 +16,10 @@
CommonModule.Мокито
CommonModule.МокитоОбучение
+ CommonModule.МокитоПерехват
CommonModule.МокитоПроверки
CommonModule.ЮТест
+ CommonModule.ЮТЗависимости
CommonModule.ЮТЗапросы
CommonModule.ЮТИсключения
CommonModule.ЮТКоллекции
@@ -33,6 +35,7 @@
CommonModule.ЮТПодражатель_Компании
CommonModule.ЮТПодражатель_Люди
CommonModule.ЮТПредикаты
+ CommonModule.ЮТРегистрацияОшибок
CommonModule.ЮТСтроки
CommonModule.ЮТТестовыеДанные
CommonModule.ЮТТесты
@@ -43,6 +46,7 @@
DataProcessor.ЮТHTTPServiceRequest
DataProcessor.ЮТHTTPСервисЗапрос
DataProcessor.ЮТRecordSet
+ DataProcessor.ЮТКонструкторОбъектаXDTO
DataProcessor.ЮТКонструкторТестовыхДанных
DataProcessor.ЮТЮнитТесты
diff --git a/fixtures/junit/JUnit.xsd b/fixtures/junit/JUnit.xsd
new file mode 100644
index 000000000..76d7e40b9
--- /dev/null
+++ b/fixtures/junit/JUnit.xsd
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl" "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl"
new file mode 100644
index 000000000..42d54d6a4
--- /dev/null
+++ "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl"
@@ -0,0 +1,31 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+// Установить настройки по умолчанию.
+//
+// Параметры:
+// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
+Процедура УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска) Экспорт
+
+ ПараметрыЗапуска.settings.ВТранзакции = Истина;
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit.mdo" "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit.mdo"
new file mode 100644
index 000000000..521d95740
--- /dev/null
+++ "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit.mdo"
@@ -0,0 +1,10 @@
+
+
+ НастройкаYAxUnit
+
+ ru
+ Настройка YAxUnit
+
+ true
+ true
+
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl"
index 172a6d0be..b44f7343a 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl"
@@ -20,7 +20,7 @@
Процедура ИсполняемыеСценарии() Экспорт
- ЮТТесты.ВТранзакции()
+ ЮТТесты
.ДобавитьТест("Обучение")
.ДобавитьТест("Обучение_ЦепочкаВызовов")
.ДобавитьТест("Проверить")
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl"
index 311c0a5f3..98f2def77 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl"
@@ -25,7 +25,7 @@
.ДобавитьТест("ВывестиВКонсоль")
.ДобавитьСерверныйТест("Менеджер")
.ДобавитьТест("ЗначениеСвойства")
- ;
+ ;
КонецПроцедуры
@@ -38,7 +38,7 @@
Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало;
ЮТест.ОжидаетЧто(Дельта)
- .МеждуИсключаяГраницы(3000, 3999);
+ .МеждуВключаяГраницы(3000, 3999);
КонецПроцедуры
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
new file mode 100644
index 000000000..055a34617
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -0,0 +1,131 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Процедура ИсполняемыеСценарии() Экспорт
+
+ ЮТТесты.ЗависитОт().ФайлыПроекта(".gitignore")
+ .ДобавитьТест("УникальнаяЗависимость")
+ .ДобавитьТест("ДанныеЗависимости").ЗависитОт().ФайлыПроекта(".gitignore")
+ .ДобавитьТест("ДанныеЗависимости_Каталог").ЗависитОт().ФайлыПроекта(".github")
+ .ДобавитьТест("ДанныеЗависимости_НеизвестныйФайл").ЗависитОт().ФайлыПроекта("НеизвестныйФайл")
+ .ДобавитьСерверныйТест("ФабрикаJUnit").ЗависитОт().ФабрикаXDTO("fixtures/junit")
+ ;
+
+КонецПроцедуры
+
+Процедура УникальнаяЗависимость() Экспорт
+
+ Зависимости = Новый Соответствие();
+
+ Зависимость1 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("Зависимость 1"));
+ Зависимость2 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("ЗавИсимость 1"));
+ Зависимость3 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("ЗависИМОСТЬ 1", "Модуль.Метод"));
+ Зависимость4 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("Зависимость 1", , "Строка 1"));
+ Зависимость5 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("Зависимость 1", , "Строка 1"));
+
+ ЮТест.ОжидаетЧто(Зависимости)
+ .ИмеетДлину(2);
+
+ ЮТест.ОжидаетЧто(Зависимость1)
+ .ИмеетТип("ФиксированнаяСтруктура")
+ .Равно(Зависимость2)
+ .Равно(Зависимость3)
+ .НеРавно(Зависимость4);
+ ЮТест.ОжидаетЧто(Зависимость4, "Зависимость с параметром")
+ .ИмеетТип("ФиксированнаяСтруктура")
+ .Равно(Зависимость5)
+ ;
+
+КонецПроцедуры
+
+Процедура ДанныеЗависимости() Экспорт
+
+ ПолноеИмяФайла = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(".gitignore")).ПолноеИмя;
+
+ ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмяФайла), "Файл каталога проекта не существует")
+ .ЭтоИстина();
+
+ Данные = ЮТОбщий.ДанныеТекстовогоФайла(ПолноеИмяФайла);
+ ЮТест.ОжидаетЧто(Данные, "Содержимое файла")
+ .Содержит("ConfigDumpInfo.xml");
+
+КонецПроцедуры
+
+Процедура ДанныеЗависимости_НеизвестныйФайл() Экспорт
+
+ ВызватьИсключение "Тест не должен быть вызван";
+
+КонецПроцедуры
+
+Процедура ДанныеЗависимости_Каталог() Экспорт
+
+ ПолноеИмя = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(".github")).ПолноеИмя;
+
+ ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмя), "Каталог проекта не доступен")
+ .ЭтоИстина();
+
+ ЮТест.ОжидаетЧто(ЮТФайлы.ЭтоКаталог(ПолноеИмя), "Это не каталог")
+ .ЭтоИстина();
+
+ ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ЮТФайлы.ОбъединитьПути(ПолноеИмя, "workflows", "main-build.yml")), "Файл проекта не доступен")
+ .ЭтоИстина();
+
+КонецПроцедуры
+
+Процедура ФабрикаJUnit() Экспорт
+
+ Фабрика = ЮТест.Зависимость(ЮТЗависимости.ФабрикаXDTO("fixtures/junit")).Фабрика;
+
+ ТестовыйНабор = ЮТест.Данные().КонструкторОбъектаXDTO("testsuite", "http://junit.org/schema", Фабрика)
+ .ФикцияНезаполненных()
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(ТестовыйНабор)
+ .ИмеетТип(Тип("ОбъектXDTO"))
+ .Существует()
+ .ИмеетСвойство("properties")
+ .ИмеетСвойство("testcase")
+ .ИмеетСвойство("failures");
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция НоваяЗависимость(Идентификатор, Метод = Неопределено, Параметр1 = Неопределено, Параметр2 = Неопределено)
+
+ Описание = ЮТФабрика.НовоеОписаниеЗависимости();
+ Описание.Идентификатор = Идентификатор;
+ Описание.МетодРеализации = ?(Метод = Неопределено, Идентификатор, Метод);
+
+ Если Параметр1 <> Неопределено Тогда
+ Описание.Параметры.Добавить(Параметр1);
+ КонецЕсли;
+
+ Если Параметр2 <> Неопределено Тогда
+ Описание.Параметры.Добавить(Параметр2);
+ КонецЕсли;
+
+ Возврат Описание;
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
new file mode 100644
index 000000000..5b178f6bb
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
@@ -0,0 +1,7 @@
+
+
+ ОМ_ЮТЗависимостиСлужебный
+ true
+ true
+ true
+
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl"
index e5bc450b1..ae504ca5b 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl"
@@ -20,7 +20,7 @@
Процедура ИсполняемыеСценарии() Экспорт
- ЮТТесты.ВТранзакции().УдалениеТестовыхДанных()
+ ЮТТесты.УдалениеТестовыхДанных()
.ДобавитьТест("ЗначенияРеквизитов")
.ДобавитьТест("ЗначениеРеквизита")
.ДобавитьТест("ТаблицаСодержитЗаписи")
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
index 073c741ee..74399533e 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
@@ -21,10 +21,10 @@
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты
- .ДобавитьТест("ЛомающийКонтекстТест").ВТранзакции()
+ .ДобавитьТест("ЛомающийКонтекстТест")
.ДобавитьТест("ПроверкаТранзакции")
- .СПараметрами(Ложь)
- .СПараметрами(Истина).ВТранзакции()
+ .СПараметрами(Ложь).ВТранзакции(Ложь)
+ .СПараметрами(Истина).ВТранзакции(Истина)
;
КонецПроцедуры
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl"
index 500243aee..8bf200661 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl"
@@ -20,7 +20,7 @@
Процедура ИсполняемыеСценарии() Экспорт
- ЮТТесты.ВТранзакции().УдалениеТестовыхДанных()
+ ЮТТесты.УдалениеТестовыхДанных()
.ДобавитьТест("ЗаполнитьСправочник")
.ДобавитьТест("ЗаполнитьДокумент")
.ДобавитьТест("СоздатьЗаписьРегистраСведений")
@@ -31,6 +31,7 @@
.ДобавитьТест("ФикцияОбязательныхПолей")
.ДобавитьТест("СоздатьГруппу")
.ДобавитьТест("УстановитьРеквизиты")
+ .ДобавитьТест("УстановитьСсылкуНового")
;
КонецПроцедуры
@@ -321,4 +322,31 @@
КонецПроцедуры
+Процедура УстановитьСсылкуНового() Экспорт
+
+ Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары");
+
+ УникальныйИдентификатор = Новый УникальныйИдентификатор();
+ Ссылка = Конструктор.УстановитьСсылкуНового(УникальныйИдентификатор).Записать();
+ ЮТест.ОжидаетЧто(Ссылка.УникальныйИдентификатор(), "Уникальный идентификатор")
+ .Равно(УникальныйИдентификатор);
+
+ УникальныйИдентификатор = Новый УникальныйИдентификатор();
+ УникальныйИдентификаторСтрокой = Строка(УникальныйИдентификатор);
+ Ссылка = Конструктор.УстановитьСсылкуНового(УникальныйИдентификаторСтрокой).Записать();
+ ЮТест.ОжидаетЧто(Ссылка.УникальныйИдентификатор(), "Уникальный идентификатор строкой")
+ .Равно(УникальныйИдентификатор);
+
+ СлучайноеЧисло = ЮТест.Данные().СлучайноеЧисло();
+ СлучайноеСтрока = ЮТест.Данные().СлучайнаяСтрока();
+ ЮТест
+ .ОжидаетЧто(Конструктор, "Число")
+ .Метод("УстановитьСсылкуНового").Параметр(СлучайноеЧисло)
+ .ВыбрасываетИсключение("Неправильный тип значения для ссылки нового")
+ .Что(Конструктор, "Строка")
+ .Метод("УстановитьСсылкуНового").Параметр(СлучайноеСтрока)
+ .ВыбрасываетИсключение("Неправильный тип значения для ссылки нового");
+
+КонецПроцедуры
+
#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
new file mode 100644
index 000000000..44e67f59d
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl"
@@ -0,0 +1,66 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Процедура ИсполняемыеСценарии() Экспорт
+
+ ЮТТесты
+ .ДобавитьТест("ПодсистемыПодключаемыхМодулей")
+ .ДобавитьТест("ОбработчикиСобытий")
+ .ДобавитьТест("ПодключаемыеМодулиПодсистемы")
+ ;
+
+КонецПроцедуры
+
+Процедура ПодсистемыПодключаемыхМодулей() Экспорт
+
+ ЮТест.ОжидаетЧто(ЮТМетаданныеСлужебныйПовтИсп.ПодсистемыПодключаемыхМодулей())
+ .Заполнено()
+ .Содержит("ЮТПодключаемыеМодули")
+ .Содержит("Тесты_ЮТПодключаемыеМодули")
+ ;
+
+КонецПроцедуры
+
+Процедура ОбработчикиСобытий() Экспорт
+
+ ЮТест.ОжидаетЧто(ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий("Инициализация"))
+ .Заполнено()
+ .Содержит("НастройкаYAxUnit")
+ .Содержит("ЮТЗависимостиСлужебный")
+ .Содержит("ЮТЛогированиеСлужебный")
+ .ИмеетДлинуБольше(2)
+ ;
+
+КонецПроцедуры
+
+Процедура ПодключаемыеМодулиПодсистемы() Экспорт
+
+ ЮТест.ОжидаетЧто(ЮТПодключаемыеМодулиСлужебныйВызовСервера.ПодключаемыеМодулиПодсистемы("ОбработчикиСобытий"))
+ .Заполнено()
+ .Содержит("ЮТЛогированиеСлужебный")
+ ;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
new file mode 100644
index 000000000..6b472ef2a
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
@@ -0,0 +1,6 @@
+
+
+ ОМ_ЮТПодключаемыеМодулиСлужебныйВызовСервера
+ true
+ true
+
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl"
index 455bd130b..5e66f5b7c 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl"
@@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
-// Copyright 2021-2023 BIA-Technologies Limited Liability Company
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -28,26 +28,6 @@
КонецПроцедуры
-#Область События
-
-Процедура ПередВсемиТестами() Экспорт
-
-КонецПроцедуры
-
-Процедура ПередКаждымТестом() Экспорт
-
-КонецПроцедуры
-
-Процедура ПослеКаждогоТеста() Экспорт
-
-КонецПроцедуры
-
-Процедура ПослеВсехТестов() Экспорт
-
-КонецПроцедуры
-
-#КонецОбласти
-
Процедура БИК() Экспорт
БИК = ЮТест.Данные().Подражатель().Банки().БИК();
ЮТест.ОжидаетЧто(БИК)
@@ -58,25 +38,22 @@
КонецПроцедуры
Процедура НомерСчета() Экспорт
+
БИК = ЮТест.Данные().Подражатель().Банки().БИК();
КодВалюты = "978";
НомерСчета = ЮТест.Данные().Подражатель().Банки().НомерСчета(БИК, КодВалюты);
-
+
ЮТест.ОжидаетЧто(НомерСчета)
.ИмеетТип("Строка")
.Заполнено()
.ИмеетДлину(20)
;
-
+
КодВалютыИзСчета = Сред(НомерСчета, 6, 3);
ЮТест.ОжидаетЧто(КодВалютыИзСчета)
.Равно(КодВалюты)
;
-
+
КонецПроцедуры
#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/Module.bsl"
index fe3ccd688..f8a8c65b1 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/Module.bsl"
@@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
-// Copyright 2021-2023 BIA-Technologies Limited Liability Company
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -26,42 +26,24 @@
.ДобавитьТест("ИНН")
.ДобавитьТест("КПП")
;
-
-КонецПроцедуры
-
-#Область События
-
-Процедура ПередВсемиТестами() Экспорт
-
-КонецПроцедуры
-
-Процедура ПередКаждымТестом() Экспорт
-
-КонецПроцедуры
-
-Процедура ПослеКаждогоТеста() Экспорт
-
+
КонецПроцедуры
-Процедура ПослеВсехТестов() Экспорт
-
-КонецПроцедуры
-
-#КонецОбласти
-
Процедура Наименование() Экспорт
+
Имя = ЮТест.Данные().Подражатель().Компании().Наименование();
ЮТест.ОжидаетЧто(Имя)
.ИмеетТип("Строка")
.Заполнено()
;
-
+
ЮТест.ОжидаетЧто(СтрДлина(Имя))
.Больше(1)
;
КонецПроцедуры
Процедура ИНН() Экспорт
+
ИНН = ЮТест.Данные().Подражатель().Компании().ИНН("77");
ЮТест.ОжидаетЧто(ИНН)
.ИмеетТип("Строка")
@@ -70,9 +52,11 @@
.НачинаетсяС("77")
;
ЮТЛогирование.Отладка("ИНН: " + ИНН);
+
КонецПроцедуры
Процедура КПП() Экспорт
+
ИНН = ЮТест.Данные().Подражатель().Компании().КПП("7701");
ЮТест.ОжидаетЧто(ИНН)
.ИмеетТип("Строка")
@@ -80,10 +64,7 @@
.ИмеетДлину(9)
.НачинаетсяС("7701")
;
+
КонецПроцедуры
#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl"
index 897b0ee02..763942050 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl"
@@ -20,9 +20,7 @@
Процедура ИсполняемыеСценарии() Экспорт
- ЮТТесты
- .ВТранзакции()
- .УдалениеТестовыхДанных()
+ ЮТТесты.УдалениеТестовыхДанных()
.ДобавитьТест("Удалить")
.ДобавитьТест("ВариантыПараметров")
.ДобавитьТест("СоздатьГруппу")
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index b137b683d..7e366d4b8 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
-// Copyright 2021-2023 BIA-Technologies Limited Liability Company
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -23,9 +23,7 @@
КодТовара = ЮТОбщий.ЧислоВСтроку(ЮТест.Данные().СлучайноеПоложительноеЧисло(999999999));
Период = ТекущаяДата();
- ЮТТесты
- .ВТранзакции()
- .УдалениеТестовыхДанных()
+ ЮТТесты.УдалениеТестовыхДанных()
.ДобавитьТест("Фикция")
.СПараметрами(Новый ОписаниеТипов("Число"))
.СПараметрами(Новый ОписаниеТипов("Строка"))
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl"
index a6403d1e4..170406dbb 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl"
@@ -56,7 +56,7 @@
.ДобавитьТест("ВыбрасываетИсключение")
.ДобавитьТест("НеВыбрасываетИсключение")
.ДобавитьТест("ИмеетМетод")
- .ДобавитьСерверныйТест("ПроверкаМетодаВТранзакции")
+ .ДобавитьСерверныйТест("ПроверкаМетодаВТранзакции").ВТранзакции(Ложь)
.ДобавитьТест("ПроверкаМетодаВТранзакцииНаКлиенте", , , "КлиентУправляемоеПриложение")
.ДобавитьСерверныйТест("СравнениеСложныхОбъектов")
.ДобавитьТест("ФормированиеСообщения")
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl"
index 08cd35dab..b6383bccc 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl"
@@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
-// Copyright 2021-2023 BIA-Technologies Limited Liability Company
+// Copyright 2021-2024 BIA-Technologies Limited Liability Company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -20,7 +20,7 @@
Процедура ИсполняемыеСценарии() Экспорт
- ЮТТесты.ВТранзакции().УдалениеТестовыхДанных()
+ ЮТТесты.УдалениеТестовыхДанных()
.ДобавитьТест("СодержитЗаписи")
.ДобавитьТест("НеСодержитЗаписи")
.ДобавитьТест("СообщенияОбОшибках")
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 62c3449ec..d970c6e1f 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -100,7 +100,7 @@
Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска);
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests")
- .ИмеетДлину(33);
+ .ИмеетДлину(35);
КонецПроцедуры
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl"
index 6e625f3f6..55c8effa5 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl"
@@ -24,6 +24,7 @@
.ДобавитьТестовыйНабор("ОсновнойНабор")
.ДобавитьТест("Пропустить")
.ДобавитьТест("ПроверкаКонтекста")
+ .ДобавитьСерверныйТест("ТранзакцияПоУмолчаниюАктивна")
.ДобавитьТестовыйНабор("ПереопределенныйНабор").Перед("Перед_ПереопределенныйНабор")
.ДобавитьТест("ПроверкаПереопределенногоКонтекста").Перед("Перед_ПроверкаПереопределенногоКонтекста")
.ДобавитьТестовыйНабор("ПовторнаяПроверкаКонтекста")
@@ -71,8 +72,14 @@
Процедура ПослеВсехТестов() Экспорт
ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов");
- ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")).ИмеетДлину(16);
-
+#Если Сервер Тогда
+ ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция"))
+ .ИмеетДлину(18); // Количество вызванных обработчиков событий
+#Иначе
+ ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция"))
+ .ИмеетДлину(16); // Количество вызванных обработчиков событий
+#КонецЕсли
+
КонецПроцедуры
Процедура Пропустить() Экспорт
@@ -135,4 +142,13 @@
КонецПроцедуры
+#Если Сервер Тогда
+Процедура ТранзакцияПоУмолчаниюАктивна() Экспорт
+
+ ЮТест.ОжидаетЧто(ТранзакцияАктивна(), "Транзакция из настроек по умолчанию не активна")
+ .ЭтоИстина();
+
+КонецПроцедуры
+#КонецЕсли
+
#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl"
index d47a7acf9..d4c2412b6 100644
--- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl"
@@ -23,7 +23,7 @@
ЮТТесты
.ДобавитьТест("Конструктор")
.ДобавитьТест("УстановитьТело")
- ;
+ ;
КонецПроцедуры
diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo
index c233f203e..19ac4171e 100644
--- a/tests/src/Configuration/Configuration.mdo
+++ b/tests/src/Configuration/Configuration.mdo
@@ -22,9 +22,11 @@
ru
+ Subsystem.Тесты_ЮТПодключаемыеМодули
CommonTemplate.ЮТ_МакетТестовыхДанных
CommonTemplate.ЮТ_ТестовыеДанныеMarkdown
CommonModule.Интеграция
+ CommonModule.НастройкаYAxUnit
CommonModule.Обр_ЮТHTTPСервисЗапрос
CommonModule.Обр_ЮТRecordSet_МО
CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО
@@ -35,6 +37,7 @@
CommonModule.ОМ_ОшибкаЗагрузкиСценариев
CommonModule.ОМ_ЮТест
CommonModule.ОМ_ЮТестПереопределяемый
+ CommonModule.ОМ_ЮТЗависимостиСлужебный
CommonModule.ОМ_ЮТЗапросы
CommonModule.ОМ_ЮТИсполнительСлужебныйКлиент
CommonModule.ОМ_ЮТИсполнительСлужебныйКлиентСервер
@@ -43,6 +46,7 @@
CommonModule.ОМ_ЮТМетаданные
CommonModule.ОМ_ЮТОтчетAllureСлужебный
CommonModule.ОМ_ЮТОтчетСлужебный
+ CommonModule.ОМ_ЮТПодключаемыеМодулиСлужебныйВызовСервера
CommonModule.ОМ_ЮТПодражатель_Банки
CommonModule.ОМ_ЮТПодражатель_Компании
CommonModule.ОМ_ЮТПодражатель_Люди
diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi"
new file mode 100644
index 000000000..0cf6de8a4
--- /dev/null
+++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi"
@@ -0,0 +1,2 @@
+
+
diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi"
new file mode 100644
index 000000000..0cf6de8a4
--- /dev/null
+++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi"
@@ -0,0 +1,2 @@
+
+
diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi"
new file mode 100644
index 000000000..0cf6de8a4
--- /dev/null
+++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi"
@@ -0,0 +1,2 @@
+
+
diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo"
new file mode 100644
index 000000000..cbee7ab40
--- /dev/null
+++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo"
@@ -0,0 +1,11 @@
+
+
+ Инициализация
+
+ ru
+ Инициализация
+
+ true
+ CommonModule.НастройкаYAxUnit
+ Subsystem.Тесты_ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий
+
diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo"
new file mode 100644
index 000000000..487d28eae
--- /dev/null
+++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo"
@@ -0,0 +1,11 @@
+
+
+ ОбработчикиСобытий
+
+ ru
+ Обработчики событий
+
+ true
+ Инициализация
+ Subsystem.Тесты_ЮТПодключаемыеМодули
+
diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo"
new file mode 100644
index 000000000..eeba81f2e
--- /dev/null
+++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo"
@@ -0,0 +1,10 @@
+
+
+ Тесты_ЮТПодключаемыеМодули
+
+ ru
+ Подключаемые модули
+
+ true
+ ОбработчикиСобытий
+