diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml
new file mode 100644
index 000000000..1b94bf747
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug.yaml
@@ -0,0 +1,43 @@
+name: '🐞 Ошибка'
+description: 'Регистрация обнаруженной ошибки'
+title: '[Bug]: '
+labels: ['bug']
+body:
+ - type: textarea
+ id: description
+ attributes:
+ label: '🐞 Описание ошибки'
+ description: 'Опишите проблему и шаги воспроизведения'
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Пример кода
+ description: 'Код, который приводит к возникновению ошибки'
+ render: bsl
+
+ - type: textarea
+ attributes:
+ label: Текст ошибки (лог)
+ render: txt
+
+ - type: input
+ id: yaxunit-version
+ attributes:
+ label: Версия YaxUnit
+
+ - type: input
+ attributes:
+ label: Версия 1С:Предприятие
+
+ - type: dropdown
+ id: operating-systems
+ attributes:
+ label: Операционная система
+ multiple: true
+ options:
+ - Linux
+ - Windows
+ - Mac
+ - Other
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md
new file mode 100644
index 000000000..9558f21f1
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature.md
@@ -0,0 +1,16 @@
+---
+name: Новая функциональность
+about: Добавление новой функциональности в движок
+title: '[NEW]'
+assignees: ''
+
+---
+
+## Описание сценария (кейса) использования, применения
+
+
+## Вариант реализации новой функциональности
+
+
+## Дополнительная информация
+
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 000000000..2ec88eb2c
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,38 @@
+{
+ "cSpell.words": [
+ "валидировать",
+ "замокированного",
+ "логирвания",
+ "Ментейнер",
+ "моками",
+ "моки",
+ "Мокирование",
+ "мокировании",
+ "мокированию",
+ "мокирования",
+ "мокировать",
+ "мокируем",
+ "Мокируемый",
+ "мокирующий",
+ "Мокито",
+ "моков",
+ "Неопределено",
+ "Переиспользование",
+ "помогаторы",
+ "пресетов",
+ "Регистронезависимое",
+ "релизный",
+ "сериализацию",
+ "сериализуемых",
+ "фейкового",
+ "фейковых",
+ "фича",
+ "юнит",
+ "autonumber",
+ "bellerage",
+ "mindmap",
+ "Wiremock",
+ "XDTO",
+ "yaxunit"
+ ]
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index 2c7b724ad..db042666b 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,8 @@
----
+![report](documentation/docs/images/report-ui.png)
+
## Документация
[https://bia-technologies.github.io/yaxunit/](https://bia-technologies.github.io/yaxunit/)
@@ -29,7 +31,12 @@
- [vanessa-automation](https://github.com/Pr-Mex/vanessa-automation/graphs/contributors)
- [add](https://github.com/vanessa-opensource/add/graphs/contributors)
----
+----
+
+## Использованные ресурсы
+
+- В продукте используется иконки из набора [IntelliJ Platform UI](https://jetbrains.design/intellij).
+ Copyright 2000-2023 JetBrains s.r.o. and contributors. [Apache 2.0 license](http://www.apache.org/licenses/LICENSE-2.0.html)
## Лицензия
diff --git a/documentation/blog/2023/04/29-02-engine-release.md b/documentation/blog/2023/04/29-02-engine-release.md
index 97c6c0811..e2b88942d 100644
--- a/documentation/blog/2023/04/29-02-engine-release.md
+++ b/documentation/blog/2023/04/29-02-engine-release.md
@@ -34,7 +34,5 @@ tags: [releases, yaxunit]
* Доработан движок для работы в режиме без использования синхронных методов
:::caution Внимание
-
В ближайших версиях будет удален вариант точки входа в тестовый модуль ИсполняемыеСценарии с параметрами.
-
:::
diff --git a/documentation/blog/2023/04/29-03-plugin-release.md b/documentation/blog/2023/04/29-03-plugin-release.md
index d3fbfaea5..169bbf11f 100644
--- a/documentation/blog/2023/04/29-03-plugin-release.md
+++ b/documentation/blog/2023/04/29-03-plugin-release.md
@@ -2,7 +2,6 @@
title: EDT Test runner. Версия 23.04
authors: alkoleft
tags: [releases, plugin]
-image: https://github.com/bia-technologies/edt-test-runner/releases/tag/23.04
---
[Release 23.04](https://github.com/bia-technologies/edt-test-runner/releases/tag/23.04)
diff --git a/documentation/blog/2023/09/05-engine-release.md b/documentation/blog/2023/09/05-engine-release.md
index e03bbd1c9..f06a5f4f9 100644
--- a/documentation/blog/2023/09/05-engine-release.md
+++ b/documentation/blog/2023/09/05-engine-release.md
@@ -10,7 +10,7 @@ tags: [releases, yaxunit]
### Тестовые данные
-* Загрузка данных из табличного документа или таблицы markdown [#133](https://github.com/bia-technologies/yaxunit/issues/133), [документация](https://bia-technologies.github.io/yaxunit/docs/user-api/test-data/#%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%B8%D0%B7-%D0%BC%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2). Спасибо [@dlyubanevich](https://github.com/dlyubanevich)
+* Загрузка данных из табличного документа или таблицы markdown [#133](https://github.com/bia-technologies/yaxunit/issues/133), [документация](https://bia-technologies.github.io/yaxunit/docs/features/test-data/#%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%B8%D0%B7-%D0%BC%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2). Спасибо [@dlyubanevich](https://github.com/dlyubanevich)
* Добавить возможность указывать тип фикции [#121](https://github.com/bia-technologies/yaxunit/issues/121)
* Добавить возможность получать случайное значение перечисления [#132](https://github.com/bia-technologies/yaxunit/issues/132)
* Тестовые данные, добавить метод СлучайныйИдентификатор [#102](https://github.com/bia-technologies/yaxunit/issues/102)
diff --git a/documentation/blog/2024/02/29-engine-release.md b/documentation/blog/2024/02/29-engine-release.md
index e7926f2c3..ecd7b2801 100644
--- a/documentation/blog/2024/02/29-engine-release.md
+++ b/documentation/blog/2024/02/29-engine-release.md
@@ -24,7 +24,7 @@ tags: [releases, yaxunit]
### Запуск
-* Добавить запуск выделенных тестов в обработке запуска тестов по Ctrl+Enter [#251](https://github.com/bia-technologies/yaxunit/issues/251) Спасибо [@1cgh](\(https://github.com/1cgh)
+* Добавить запуск выделенных тестов в обработке запуска тестов по Ctrl+Enter [#251](https://github.com/bia-technologies/yaxunit/issues/251). Спасибо [@1cgh](https://github.com/1cgh)
### Отчет о тестировании
diff --git a/documentation/blog/2024/02/29-plugin-release.md b/documentation/blog/2024/02/29-plugin-release.md
index 6c0f6b153..b22b9f97e 100644
--- a/documentation/blog/2024/02/29-plugin-release.md
+++ b/documentation/blog/2024/02/29-plugin-release.md
@@ -2,7 +2,6 @@
title: EDT Test runner. Версия 24.02
authors: alkoleft
tags: [releases, plugin]
-image: https://github.com/bia-technologies/edt-test-runner/releases/tag/24.02
---
[Release 24.02](https://github.com/bia-technologies/edt-test-runner/releases/tag/24.02)
diff --git a/documentation/blog/2024/03/29-engine-release.md b/documentation/blog/2024/03/29-engine-release.md
new file mode 100644
index 000000000..f9e82a8da
--- /dev/null
+++ b/documentation/blog/2024/03/29-engine-release.md
@@ -0,0 +1,42 @@
+---
+title: YaxUnit. Версия 24.03
+authors: alkoleft
+tags: [releases, yaxunit]
+---
+
+[Release 24.03](https://github.com/bia-technologies/yaxunit/releases/tag/24.03)
+
+## Новое в версии
+
+### Документация
+
+* Переписана вся [документация](https://bia-technologies.github.io/yaxunit/)
+* Включить поиск по документации [#289](https://github.com/bia-technologies/yaxunit/issues/289)
+
+### Тестовые данные
+
+* Добавить методы генерации случайной даты [#269](https://github.com/bia-technologies/yaxunit/issues/269)
+* Добавить конструктор объектов для XDTO [#271](https://github.com/bia-technologies/yaxunit/issues/271)
+* Метод `ЮТКонструкторТестовыхДанныхСлужебный.Фикция` не работает для общих реквизитов [#218](https://github.com/bia-technologies/yaxunit/issues/218)
+* Добавить метод в КонструкторОбъекта для установки реквизитов по коллекции [#249](https://github.com/bia-technologies/yaxunit/issues/249)
+* Поддержка записи в режиме обмен данными загрузка для регистров из конструктора объекта [#270](https://github.com/bia-technologies/yaxunit/issues/270)
+
+### Утверждения
+
+* Добавить утверждение/предикат `ВСписке` [#283](https://github.com/bia-technologies/yaxunit/issues/283)
+
+### Прочее
+
+* Добавить возможность задавать разные описания для тестов с параметрами [#276](https://github.com/bia-technologies/yaxunit/issues/276)
+* Сбор лога выполнения теста [#282](https://github.com/bia-technologies/yaxunit/issues/282)
+
+## Исправленные ошибки
+
+* Падает с ошибкой создание элемента справочника с настройкой `ОбменДаннымиЗагрузка = Истина` [#273](https://github.com/bia-technologies/yaxunit/issues/273)
+* При повторном запуске упавшего теста из Предприятия реального вызова не происходит [#248](https://github.com/bia-technologies/yaxunit/issues/248)
+* Исправить описания устаревших методов, чтобы EDT их подсвечивала. [#304](https://github.com/bia-technologies/yaxunit/issues/304)
+
+## Важно
+
+Выполнен **рефакторинг** модулей YAxUnit для физического разделения публичного и служебного программного интерфейса.
+Попытался по максимуму сохранить обратную совместимость.
diff --git a/documentation/blog/authors.yml b/documentation/blog/authors.yml
index 97026a598..9952a12a3 100644
--- a/documentation/blog/authors.yml
+++ b/documentation/blog/authors.yml
@@ -1,5 +1,5 @@
alkoleft:
- name: alkoleft
- title: Разработчик YaxUnit
- url: https://github.com/alkoleft
- image_url: https://github.com/alkoleft.png
\ No newline at end of file
+ name: alkoleft
+ title: Разработчик YAxUnit
+ url: https://github.com/alkoleft
+ image_url: https://github.com/alkoleft.png
diff --git a/documentation/docs/cook-book/index.md b/documentation/docs/cook-book/index.md
new file mode 100644
index 000000000..6b28e4b3e
--- /dev/null
+++ b/documentation/docs/cook-book/index.md
@@ -0,0 +1,7 @@
+# Кулинарная книга тестов
+
+* как тестировать веб-сервисы
+* как тестировать локальные функции
+* как подключать свои плагины/шаги/методы специфичные для своей базы
+* поддержка англ.языка, линукса, Конфигуратора
+* что за и зачем нужен Макито
\ No newline at end of file
diff --git a/documentation/docs/features/assertions/assertions-base.md b/documentation/docs/features/assertions/assertions-base.md
new file mode 100644
index 000000000..9e4cd80a2
--- /dev/null
+++ b/documentation/docs/features/assertions/assertions-base.md
@@ -0,0 +1,601 @@
+---
+tags: [Начало, Утверждения]
+---
+
+# Базовые утверждения
+
+Утверждения для проверки значений
+
+Доступ к утверждениям обеспечивает метод [`ЮТест.ОжидаетЧто`](/api/ЮТест#ожидаетчто), который возвращает инициализированный модуль [`ЮТУтверждения`](/api/ЮТУтверждения), реализующий работу с утверждениями.
+
+:::tip
+Не рекомендуется обращаться к модулю `ЮТУтверждения` напрямую, используйте `ЮТест.ОжидаетЧто`
+:::
+
+* Реализован достаточный набор проверок значений
+ * [Сравнение значений](#сравнение-значений)
+ * [Методы позиционирования](#методы-позиционирования)
+ * [Проверка заполненности](#проверка-заполненности)
+ * [Проверка строк](#проверка-строк)
+ * [Проверка вхождения значения в интервал](#проверка-вхождения-значения-в-интервал)
+ * [Проверка типа значения](#проверка-типа-значения)
+ * [Проверка выполнения метода](#проверка-выполнения-метода)
+ * [Проверка наличия свойств/реквизитов](#проверка-наличия-свойствреквизитов)
+ * [Проверка коллекции](#проверка-коллекции)
+ * [Проверка на соответствие набору условий, предикату](#проверка-на-соответствие-набору-условий-предикату)
+* Большая часть методов - это сравнения фактического и ожидаемого результатов, но есть несколько методов настройки
+ * [`Что`](/api/ЮТУтверждения#что) - устанавливает проверяемый объект. Все дальнейшие проверки будут выполняется с этим объектом
+ * [`Метод`](/api/ЮТУтверждения#метод) - устанавливает имя и параметры проверяемого метода. Для проверки методов имеются утверждения [`ВыбрасываетИсключение`](/api/ЮТУтверждения#выбрасываетисключение) и [`НеВыбрасываетИсключение`](/api/ЮТУтверждения#невыбрасываетисключение)
+ * [`Параметр`](/api/ЮТУтверждения#параметр) - добавляет параметр метода. Создан для удобства установки параметров проверяемого метода
+ * [`Свойство`](/api/ЮТУтверждения#свойство) - устанавливает проверяемое свойство и проверяет его наличие.
+ * Последующие проверки, вызванные после этого метода, будут относиться к свойству объекта.
+ Например, `ЮТест.ОжидаетЧто(Контекст).Свойство("ИмяМетода").Равно("МетодБезИсключение")` эквивалентно проверке `Контекст.ИмяМетода = "МетодБезИсключение"`
+* Методы работы со свойствами позволяют указывать цепочку свойств (доступ к вложенным свойствам через точку)
+ Например:
+ * `Свойство("Контекст.ИмяМетода")` - вложенное свойство
+ * `ИмеетСвойство("Контекст.ПараметрыМетода[0]")` - элемент вложенной коллекции
+ * `НеИмеетСвойства("[0].Свойство")` - свойство элемента коллекции
+* Все методы имеют параметр `ОписаниеПроверки` для детального описания.
+
+## Доступные методы
+
+:::tip
+Полный и актуальный набор методов смотрите в описании API
+:::
+
+### Сравнение значений
+
+* [`Равно`](/api/ЮТУтверждения#равно) - проверка на равенство конкретному значению. Для сериализуемых объектов идет сравнение по значению
+* [`НеРавно`](/api/ЮТУтверждения#неравно) - проверка на не равенство конкретному значению. Для сериализуемых объектов идет сравнение по значению
+* [`Больше`](/api/ЮТУтверждения#больше) - проверяемое значение должно быть больше указанного
+* [`БольшеИлиРавно`](/api/ЮТУтверждения#большеилиравно) - проверяемое значение должно быть больше или равно указанному
+* [`Меньше`](/api/ЮТУтверждения#меньше) - проверяемое значение должно быть меньше указанного
+* [`МеньшеИлиРавно`](/api/ЮТУтверждения#меньшеилиравно) - проверяемое значение должно быть меньше или равно указанному
+* [`ЭтоНеопределено`](/api/ЮТУтверждения#этонеопределено) - проверяемое значение должно быть равно `Неопределено`
+* [`ЭтоНеНеопределено`](/api/ЮТУтверждения#этоненеопределено) - проверяемое значение должно быть не равно `Неопределено`
+* [`ЭтоNull`](/api/ЮТУтверждения#этоnull) - проверяемое значение должно быть равно `Null`
+* [`ЭтоНеNull`](/api/ЮТУтверждения#этонеnull) - проверяемое значение должно быть не равно `Null`
+* [`ЭтоИстина`](/api/ЮТУтверждения#этоистина) - проверяемое значение должно быть истиной
+* [`ЭтоНеИстина`](/api/ЮТУтверждения#этонеистина) - проверяемое значение не должно быть истиной
+* [`ЭтоЛожь`](/api/ЮТУтверждения#этоложь) - проверяемое значение должно быть ложью
+* [`ЭтоНеЛожь`](/api/ЮТУтверждения#этонеложь) - проверяемое значение не должно быть ложью
+* [`ВСписке`](/api/ЮТУтверждения#этонеложь) - проверяемое значение должно входить в список указанных.
+
+```bsl
+Значение = 1;
+ЮТУтверждения.Что(Значение)
+ .Равно(1)
+ .НеРавно(2)
+ .Больше(0)
+ .БольшеИлиРавно(-10)
+ .Меньше(10)
+ .МеньшеИлиРавно(2)
+ .ЭтоНеИстина()
+ .ЭтоНеЛожь()
+ .ВСписке(ЮТКоллекция.ЗначениеВМассиве(0, 1, 2));
+```
+
+#### Особенности сравнения
+
+* При сравнении значений сравниваются их типы. Это отличается от стандартного поведения 1С:Предприятие, где некоторые значения разных типов могут быть равны, например `1 = Истина`
+ ```bsl
+ ЮТест.ОжидаетЧто(1 = Истина).ЭтоИстина(); // Проверка успешна
+ ЮТест.ОжидаетЧто(1).Равно(Истина); // Проверка провалится
+ ```
+* Для большинства типов данных реализовано сравнение "по значению", когда сравниваются (рекурсивно) значения реквизитов объекта.
+* Поддерживается сравнение структур и соответствий.
+ ```bsl
+ Значение1 = Новый Структура("Реквизит", 1);
+ Значение2 = Новый Структура("Реквизит", 1);
+ ЮТест.ОжидаетЧто(Значение1 = Значение2).ЭтоИстина(); // Проверка провалится
+ ЮТест.ОжидаетЧто(Значение1).Равно(Значение2); // Проверка успешна
+ ```
+* Поддерживается сравнение массивов, таблиц и табличных документов.
+* Поддерживается сравнение значений упакованных в `ХранилищеЗначения`.
+* Для прочих сериализуемых значений (не примитивов) сравнение происходит через сериализацию в JSON.
+
+### Методы позиционирования
+
+Любое из утверждений можно применять как к самому анализируемому объекту, так и к его свойствам, реквизитам, вложенным элементам.
+Например, проверить, наличие заполненной табличной части документа используя выражение
+
+```bsl
+ЮТест.ОжидаетЧто(Документ)
+ .Свойство("Товары").Заполнено()
+ .Свойство("Товары[0].Номенклатура").Равно(ОжидаемыйТовар)
+;
+```
+
+Благодаря методам [`Свойство`](/api/ЮТУтверждения#свойство) и [`Элемент`](/api/ЮТУтверждения#элемент) можно позиционировать (переключать объект проверки) утверждения на вложенный реквизит/элемент.
+
+Методы [`Свойство`](/api/ЮТУтверждения#свойство) и [`Элемент`](/api/ЮТУтверждения#элемент) переключают объект проверки для последующих методов-утверждений. Они будут применяться к значению свойства или элементу коллекции. Но не переключает сам контекст на это значение, а всегда применяется к исходному объекту, помещенному в [`ОжидаетЧто`](/api/ЮТест#ожидаетчто).
+
+* [`Свойство`](/api/ЮТУтверждения#свойство) - проверяет наличие свойства и позиционирует дальнейшие проверки на указанном свойстве.
+* [`Элемент`](/api/ЮТУтверждения#элемент) - проверяет наличие элемента коллекции и позиционирует дальнейшие проверки на указанном элементе. На самом деле это просто алиас (псевдоним) для метода `Свойство` и выполняет он тоже самое.
+* [`Объект`](/api/ЮТУтверждения#объект) - позиционирует дальнейшие проверки на объекте, указанном в методе [`ОжидаетЧто`](/api/ЮТест#ожидаетчто).
+* [`НетСвойства`](/api/ЮТУтверждения#нетсвойства) - проверяет отсутствие свойства и позиционирует дальнейшие проверки на объекте, указанном в методе [`ОжидаетЧто`](/api/ЮТест#ожидаетчто).
+
+:::caution
+Методы [`Свойство`](/api/ЮТУтверждения#свойство) и [`Элемент`](/api/ЮТУтверждения#элемент) всегда вычисляют путь от объекта указанного в [`ОжидаетЧто`](/api/ЮТест#ожидаетчто), они не учитывают предыдущие изменения позиции.
+
+Например, чтобы проверить значение реквизита `Реквизит.ВложенныйРеквизит`
+
+```bsl title="Неправильно"
+Объект = Новый Структура("Реквизит", Новый Структура("ВложенныйРеквизит", 1));
+
+ЮТест.ОжидаетЧто(Объект)
+ .Свойство("Реквизит")
+ .Свойство("ВложенныйРеквизит").Равно(1) // Выбросит исключение, тк объект не содержит свойство "ВложенныйРеквизит"
+;
+```
+
+Правильно в таком примере указывать сразу полный путь для свойства.
+
+```bsl title="Правильно"
+ЮТест.ОжидаетЧто(Объект)
+ .Свойство("Реквизит.ВложенныйРеквизит").Равно(1)
+;
+```
+
+:::
+
+Методы [`Свойство`](/api/ЮТУтверждения#свойство) и [`Элемент`](/api/ЮТУтверждения#элемент), принимают на вход не просто имя реквизита, а выражение, для перехода к нужному свойству, таким образом вы можете позиционироваться:
+
+* На свойствах объекта
+ ```bsl
+ ЮТест.ОжидаетЧто(Объект)
+ .Свойство("Реквизит").Равно(ОжидаемоеЗначение)
+ ```
+* На вложенных свойствах объекта `Свойство("Реквизит.ВложенныйРеквизит")`
+ ```bsl
+ ЮТест.ОжидаетЧто(Объект)
+ .Свойство("Реквизит.ВложенныйРеквизит").Равно(ОжидаемоеЗначение)
+ ```
+* На элементах коллекций
+ ```bsl
+ ЮТест.ОжидаетЧто(Документ.Товары)
+ .Свойство("[0].Товар").Равно(ОжидаемоеЗначение);
+ // Или
+ ЮТест.ОжидаетЧто(Документ)
+ .Свойство("Товары[0].Товар").Равно(ОжидаемоеЗначение);
+ ```
+* Можно позиционировать на элементах коллекции с конца
+ ```bsl
+ ЮТест.ОжидаетЧто(Документ.Товары)
+ .Свойство("[-1].Товар").Равно(ОжидаемоеЗначение) // Последний элемент;
+ .Элемент(-1).ИмеетСвойство("Товар") // Последний элемент
+ ```
+
+### Проверка заполненности
+
+* [`Заполнено`](/api/ЮТУтверждения#заполнено) - проверяет заполненность значения
+ ```bsl
+ ЮТест.ОжидаетЧто(ОбъектПроверки)
+ .Заполнено()
+ .Свойство("Номер").Заполнено();
+ ```
+* [`НеЗаполнено`](/api/ЮТУтверждения#незаполнено) - проверяет незаполненность значения
+ ```bsl
+ Значения = ЮТКоллекции.ЗначениеВМассиве(0, "", " ", Неопределено, Null, '00010101', Новый Структура(), Справочники.Товары.ПустаяСсылка());
+ Для каждого Значение Из Значения Цикл
+ ЮТест.ОжидаетЧто(Значение)
+ .НеЗаполнено()
+ КонецЦикла;
+ ```
+* [`Существует`](/api/ЮТУтверждения#существует) - проверяет существование (не равно `Null` и `Неопределено`) значения
+ ```bsl
+ ЮТест.ОжидаетЧто(ВыборкаЗапроса)
+ .Свойство("Номер").Существует();
+ ```
+* [`НеСуществует`](/api/ЮТУтверждения#несуществует) - проверяет не существование (не равно `Null` и `Неопределено`) значения
+ ```bsl
+ ЮТест.ОжидаетЧто(ВыборкаЗапроса)
+ .Свойство("Номер").НеСуществует();
+ ```
+
+### Проверка строк
+
+* [`ИмеетДлину`](/api/ЮТУтверждения#имеетдлину) - проверяет, что строка имеет указанную длину
+* [`ИмеетДлинуБольше`](/api/ЮТУтверждения#имеетдлинубольше) - проверяет, что длин строки больше указанной
+* [`ИмеетДлинуМеньше`](/api/ЮТУтверждения#имеетдлинуменьше) - проверяет, что длина строки меньше указанной
+* [`НеИмеетДлину`](/api/ЮТУтверждения#неимеетдлину) - проверяет, что длина строки отличается от указанной
+* [`Содержит`](/api/ЮТУтверждения#содержит) - проверяемая строка содержит указанную подстроку
+* [`НеСодержит`](/api/ЮТУтверждения#несодержит) - проверяемая строка не содержит указанную подстроку
+* [`НачинаетсяС`](/api/ЮТУтверждения#начинаетсяс) - проверяемая строка начинается с указанной строки
+* [`ЗаканчиваетсяНа`](/api/ЮТУтверждения#заканчиваетсяна) - проверяемая строка заканчивается на указанную строку
+
+```bsl
+ПроверяемоеЗначение = "Ох, нелегкая это работа - Из болота тащить бегемота";
+ЮТест.ОжидаетЧто("ПроверяемоеЗначение")
+ .ИмеетДлинуБольше(10)
+ .ИмеетДлинуМеньше(100)
+ .ИмеетДлину(51)
+ .Содержит("работа")
+ .НеСодержит("зарплата")
+ .НачинаетсяС("Ох")
+ .ЗаканчиваетсяНа("мота")
+```
+
+* [`СодержитСтрокуПоШаблону`](/api/ЮТУтверждения#содержитстрокупошаблону) - проверяемая строка содержит подстроку, соответствующую регулярному выражению
+* [`НеСодержитСтрокуПоШаблону`](/api/ЮТУтверждения#несодержитстрокупошаблону) - проверяемая строка не содержит подстроку, соответствующую регулярному выражению
+
+```bsl
+ПроверяемоеЗначение = "Ох, нелегкая это работа - Из болота тащить бегемота";
+ЮТест.ОжидаетЧто("ПроверяемоеЗначение")
+ .СодержитСтрокуПоШаблону("^[а-яА-Я\s,\-]*$") // Строка содержит только кириллицу, пробелы и знаки пунктуации
+ .НеСодержитСтрокуПоШаблону("\d") // Не содержит цифр
+```
+
+### Проверка вхождения значения в интервал
+
+* [`МеждуВключаяГраницы`](/api/ЮТУтверждения#междувключаяграницы) - проверяемое значение находиться в указанному интервале (включая границы)
+* [`МеждуИсключаяГраницы`](/api/ЮТУтверждения#междуисключаяграницы) - проверяемое значение находиться в указанному интервале (исключая границы)
+* [`МеждуВключаяНачалоГраницы`](/api/ЮТУтверждения#междувключаяначалограницы) - проверяемое значение находиться в указанному интервале (включая левую границу и исключая правую)
+* [`МеждуВключаяОкончаниеГраницы`](/api/ЮТУтверждения#междувключаяокончаниеграницы) - проверяемое значение находиться в указанному интервале (исключая левую границу и включая правую)
+
+```bsl
+ЮТест.ОжидаетЧто(10)
+ .МеждуВключаяГраницы(0, 10)
+ .МеждуИсключаяГраницы(0, 100);
+ЮТест.ОжидаетЧто(ТекущаяДата())
+ .МеждуВключаяНачалоГраницы(НачалоДня, НачалоСледующегоДня);
+```
+
+### Проверка типа значения
+
+* [`ИмеетТип`](/api/ЮТУтверждения#имееттип) - проверяемое значение должно иметь указанный тип
+* [`НеИмеетТип`](/api/ЮТУтверждения#неимееттип) - тип проверяемого значения должен отличаться от указанного
+
+В качестве аргумента можно указывать
+
+* Имя типа строкой или список имен типов через запятую.
+ `ИмеетТип("Строка").ИмеетТип("Строка, Число")`
+* Конкретный тип.
+ `ИмеетТип(Тип("Строка"))`
+* Описание типов.
+ `ИмеетТип(Новый ОписаниеТипов("Строка, Число"))`
+
+### Проверка выполнения метода
+
+API для проверки, выбрасываемых методом проверяемого объекта исключения.
+Первоначально необходимо описать какой метод нужно проверить, к какому объекту он относится и с какими параметрами его необходимо вызвать. Для этих целей необходимо использовать:
+
+* [`ЮТест.ОжидаетЧто`](/api/ЮТест#ожидаетчто) - устанавливает владельца метода
+* [`Метод`](/api/ЮТУтверждения#метод) - устанавливает имя и параметры проверяемого метода
+* [`Параметр`](/api/ЮТУтверждения#параметр) - добавляет параметр метода. Создан для удобства установки параметров проверяемого метода
+
+После формируем ожидание - должен или нет методы выбросить исключение и с каким текстом.
+
+* [`ВыбрасываетИсключение`](/api/ЮТУтверждения#выбрасываетисключение) - выполняет настроенный метод объекта с параметрами и проверяет, что метод выбросит исключение и текст исключения содержит(включает) указанную в строку. При необходимости можно настроить (передать параметр), чтобы метод выполнился **в транзакции**.
+
+ ```bsl
+ ЮТест.ОжидаетЧто(Документ) // Объект, метод которого проверяем
+ .Метод("Записать").Параметр(РежимЗаписиДокумента.Проведение) // Указываем проверяемый метод и параметры вызова
+ .ВыбрасываетИсключение("Значение поля ""Дата"" не может быть пустой датой") // Утверждение-проверка, исключение должно содержать указанный текст.
+ .ВыбрасываетИсключение("""Дата""") // Можно указать только часть исключения, проверить вхождение указанной строки.
+ .ВыбрасываетИсключение("""Дата""", , Истина) // Выполнение указанного метода в транзакции
+ ```
+
+ :::info Вопрос
+ Можно ли **не указывать** текст исключения?
+ **Ответ:** Нельзя, вы должны конкретизировать свои ожидания, зафиксировать, какую ошибку ждете, иначе поведение может измениться и тест это не отработает.
+ :::
+* [`НеВыбрасываетИсключение`](/api/ЮТУтверждения#невыбрасываетисключение) - выполняет настроенный метод объекта с параметрами и проверяет, что метод не выбросит исключение или выбросит исключения с текстом отличным от указанного. При необходимости можно настроить (передать параметр), чтобы метод выполнился **в транзакции**.
+
+ ```bsl
+ ЮТест.ОжидаетЧто(Документ) // Объект, метод которого проверяем
+ .Метод("Записать").Параметр(РежимЗаписиДокумента.Проведение) // Указываем проверяемый метод и параметры вызова
+ .НеВыбрасываетИсключение() // Утверждение-проверка, метод выполниться без ошибки.
+ .НеВыбрасываетИсключение("""Дата""") // Утверждение-проверка, метод выполниться без ошибки, либо с ошибкой, которая не содержит "Дата".
+ .НеВыбрасываетИсключение("""Дата""", , Истина) // Выполнение указанного метода в транзакции
+ ```
+
+ :::caution Не злоупотребляйте проверкой `НеВыбрасываетИсключение`
+ Многие используют это утверждения, для вызова чуть ли не каждого проверяемого метода.
+ Этого делать не стоит.
+ Это утверждение должно редко применяться, если ваш метод упадет, это и так будет отражено в отчете.
+ Один из случаев когда оно может применяться, вы используете его **перед** проверками на исключения, чтобы убедится, что метод рабочий.
+
+ ```bsl
+ Документ = СоздатьДокумент();
+ Утверждение = ЮТест.ОжидаетЧто(Документ)
+ .Метод("Записать").Параметр(РежимЗаписиДокумента.Проведение)
+ .НеВыбрасываетИсключение("""Дата"""); // Проверим, что при нормальном заполнении ошибки нет
+
+ Документ.Дата = Неопределено;
+ Утверждение.ВыбрасываетИсключение("""Дата""", "Документ проведен при незаполненной дате");
+ ```
+
+ :::
+
+ :::caution Нельзя явно вызывать проверяемый метод
+ Хочу обратить внимание. Когда вы проверяете метод на исключения/их отсутствие вы должны указать:
+
+ ```bsl
+ ЮТест.ОжидаетЧто(Документ) // 1. Владельца метода
+ .Метод("Записать") // 2. Имя метода
+ .Параметр(РежимЗаписиДокумента.Проведение) // 3. Параметры вызова метода
+
+ // Явно вызывать метод нельзя.
+ ЮТест.ОжидаетЧто(Документ)
+ .Метод(Документ.Записать(РежимЗаписиДокумента.Проведение)) // Так делать нельзя, так не сработает проверка.
+ ```
+
+ Вы **не должны** явно вызывать метод, это должен сделать тестовый движок, чтобы поймать и проанализировать ошибку.
+ :::
+
+### Проверка наличия свойств/реквизитов
+
+* [`ИмеетСвойство`](/api/ЮТУтверждения#имеетсвойство) - проверяемый объект должен содержать указанное свойство
+* [`НеИмеетСвойства`](/api/ЮТУтверждения#неимеетсвойства) - проверяемый объект не содержит указанное свойство
+* [`ИмеетСвойстваРавные`](/api/ЮТУтверждения#имеетсвойстваравные) - проверяемый объект должен содержать указанный набор свойств/реквизитов и значений
+
+Поддерживается проверка наличия свойство для различных объектов: структур, массивов, таблиц, документов и тд.
+Вы можете проверить наличие свойства не только у текущего объекта, но и у его дочерних.
+Например, `ИмеетСвойство("Родитель.Наименование")`, будет выполнена проверка наличия свойства `Родитель` у текущего объекта и свойства `Наименование` у родителя.
+
+Также можно проверять наличие свойств у коллекций.
+Например, `ИмеетСвойство("Товары[0].Наименование")`, утверждение проверит наличие свойства `Товары`, наличие у него первого элемента и наличие свойства `Наименование` у этого элемента.
+
+```bsl
+Документ = Документы.ПриходТовара.СоздатьДокумент();
+
+ЮТест.ОжидаетЧто(Документ)
+ .ИмеетСвойство("Товары[0]")
+ .Свойство("Товары[0]")
+ .ИмеетСвойство("Товар")
+ .ИмеетСвойство("Количество")
+ .ИмеетСвойство("Цена");
+```
+
+Как вы могли заменить в качестве имени свойства указывается выражение, такое же как и обычном коде.
+
+```bsl
+Документ = Документы.ПриходТовара.СоздатьДокумент();
+
+Свойство = Документ.Товары[0].Наименование;
+ЮТест.ОжидаетЧто(Документ)
+ .Свойство("Товары[0].Наименование");
+// И там и там для того, чтобы добраться до наименования используется одно и тоже выражение.
+```
+
+### Проверка коллекции
+
+* [`ИмеетДлину`](/api/ЮТУтверждения#имеетдлину) - проверяет, что коллекция имеет указанный размер
+* [`ИмеетДлинуБольше`](/api/ЮТУтверждения#имеетдлинубольше) - проверяет, что коллекция имеет размер, который больше указанного
+* [`ИмеетДлинуМеньше`](/api/ЮТУтверждения#имеетдлинуменьше) - проверяет, что коллекция имеет размер, который меньше указанного
+* [`НеИмеетДлину`](/api/ЮТУтверждения#неимеетдлину) - проверяет, что размер коллекции отличается от указанного
+
+ ```bsl
+ Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3);
+ ЮТест.ОжидаетЧто(Коллекция)
+ .ИмеетДлину(3)
+ .ИмеетДлинуБольше(2)
+ .ИмеетДлинуМеньше(4)
+ .НеИмеетДлину(4)
+ ;
+ ```
+
+* [`Содержит`](/api/ЮТУтверждения#содержит) - проверяемая коллекция должна содержать указанный элемент
+* [`НеСодержит`](/api/ЮТУтверждения#несодержит) - проверяемая коллекция не должна содержать указанный элемент
+
+ ```bsl
+ Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3);
+ ЮТест.ОжидаетЧто(Коллекция)
+ .Содержит(1) // Конкретное значение
+ .Содержит(ЮТест.Предикат() // Значение по условиям
+ .ИмеетТип("Число")
+ .Больше(2))
+ .НеСодержит(0)
+ .НеСодержит(ЮТест.Предикат() // Не содержит строк
+ .ИмеетТип("Строка"))
+ ;
+ ```
+
+* [`КаждыйЭлементСодержитСвойство`](/api/ЮТУтверждения#каждыйэлементсодержитсвойство) - проверяет, что каждый элемент коллекции имеет указанное свойство
+* [`КаждыйЭлементСодержитСвойствоСоЗначением`](/api/ЮТУтверждения#каждыйэлементсодержитсвойствосозначением) - проверяет, что каждый элемент коллекции имеет указанное свойство, которое равно ожидаемому значению
+* [`ЛюбойЭлементСодержитСвойство`](/api/ЮТУтверждения#любойэлементсодержитсвойство) - проверяет, что в коллекции есть элемент содержащий указанное свойство
+* [`ЛюбойЭлементСодержитСвойствоСоЗначением`](/api/ЮТУтверждения#любойэлементсодержитсвойствосозначением) - проверяет, что в коллекции есть элемент содержащий указанное свойство, которое равно ожидаемому значению
+
+ ```bsl
+ Коллекция = ЮТКоллекции.ЗначениеВМассиве(
+ Новый Структура("С1", 1),
+ Новый Структура("С1, С2", 1, 2)
+ );
+ ЮТест.ОжидаетЧто(Коллекция)
+ .КаждыйЭлементСодержитСвойство("С1") // Проверка, что все элементы коллекции содержат свойство `С1`
+ .КаждыйЭлементСодержитСвойствоСоЗначением("С1", 1) // Проверка, что все элементы коллекции содержат свойство `С1` со значением `1`
+ .ЛюбойЭлементСодержитСвойство("С2") // Проверка, что хотя бы один элемент коллекции содержат свойство `С2`
+ .ЛюбойЭлементСодержитСвойство("С2", 2) // Проверка, что хотя бы один элемент коллекции содержат свойство `С2` со значением `2`
+ ;
+ ```
+
+* [`КаждыйЭлементСоответствуетПредикату`](/api/ЮТУтверждения#каждыйэлементсоответствуетпредикату) - проверяет, что элементы коллекции соответствуют переданным условиям
+
+ ```bsl
+ Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3);
+ ЮТест.ОжидаетЧто(Коллекция)
+ .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
+ .ИмеетТип("Число") // Все элементы это числа
+ .НеРавно(0)) // и каждый не равен `0`
+ ```
+
+* [`ЛюбойЭлементСоответствуетПредикату`](/api/ЮТУтверждения#любойэлементсоответствуетпредикату) - проверяет, что коллекция содержит элемент, который соответствует переданным условиям
+
+ ```bsl
+ Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3);
+ ЮТест.ОжидаетЧто(Коллекция)
+ .ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
+ .ИмеетТип("Число") // Есть элемент, который является числом
+ .Больше(2)) // и больше `2`
+ ```
+
+### Проверка на соответствие набору условий, предикату
+
+* [`Содержит`](/api/ЮТУтверждения#содержит)/[`ЛюбойЭлементСоответствуетПредикату`](/api/ЮТУтверждения#любойэлементсоответствуетпредикату) - проверяемая коллекция должна содержать элемент, который соответствует переданным условиям
+* [`НеСодержит`](/api/ЮТУтверждения#несодержит) - проверяемая коллекция не должна содержать элемент, который соответствует переданным условиям
+* [`КаждыйЭлементСоответствуетПредикату`](/api/ЮТУтверждения#каждыйэлементсоответствуетпредикату) - проверяет, что элементы коллекции соответствуют переданным условиям
+* [`СоответствуетПредикату`](/api/ЮТУтверждения#соответствуетпредикату) - проверяет, что объект или его свойство соответствует набору условий
+
+Работа и суть предикатов описана в [отдельной статье](../predicates.md).
+
+#### Предикаты позволяют проверить каждый элемент коллекцию на соответствие набору условий
+
+Предположим, нам необходимо проверить, что движения документа выполненные по регистру делают приход. Тогда тест может выглядеть так.
+
+```bsl
+Документ = СоздатьИПровестиДокумент(...);
+Движения = ЮТЗапросы.ДвиженияДокумента(Документ, "ОстаткиТоваров");
+
+ЮТест.ОжидаетЧто(Движения)
+ .Заполнено()
+ .ИмеетДлину(Документ.Товары.Количество())
+ .КаждыйЭлементСоответствуетПредикату(
+ ЮТест.Предикат()
+ .Реквизит("ВидДвижения").Равно(ВидДвиженияНакопления.Приход)
+ .Реквизит("Количество").Больше(0)
+ )
+;
+
+// Условия предиката будут применены для каждой записи движений. Если ожидания не совпадут, то будет выброшена ошибка.
+```
+
+#### Предикаты позволяют проверить наличие элемента по сложным условиям
+
+```bsl
+Документ = СоздатьИПровестиДокумент(...);
+Движения = ЮТЗапросы.ДвиженияДокумента(Документ, "ОстаткиТоваров");
+
+ЮТест.ОжидаетЧто(ПолучитьСообщенияПользователю())
+ .Заполнено()
+ .Содержит(
+ ЮТест.Предикат()
+ .Реквизит("Текст")
+ .НачинаетсяС("Начало")
+ .ЗаканчиваетсяНа("окончание")
+ .НеСодержит("исключение")
+ )
+;
+```
+
+## Примеры
+
+### Базовые проверки
+
+Предположим, у нас имеется функция `Сложение`, которая выполняет сложение двух параметров.
+
+Проверки для нее могут выглядеть следующим образом:
+
+```bsl title="Тест для 'Сложение'"
+Результат = Сложение(2, 3);
+ЮТест.ОжидаетЧто(Результат, "Сложение чисел") // Используя модуль утверждений установим проверяемое значение и пояснение
+ .ИмеетТип("Число") // Проверим тип
+ .Заполнено() // Заполненность проверяемого значения
+ .Больше(0) // Сравним с нулем
+ .Равно(5); // Проверим ожидаемый результат
+
+Результат = Сложение("2", 3);
+ЮТест.ОжидаетЧто(Результат, "Сложение строки и числа")
+ .ИмеетТип("Строка")
+ .Равно("23");
+
+Результат = Сложение('2000010101', 3);
+ЮТест.ОжидаетЧто(Результат, "Сложение даты и числа")
+ .Равно('2000010101000003');
+```
+
+В примере, я на каждом этапе уменьшаю количество проверок. В реальном тесте хватит проверки на равенство, остальные проверки здесь для того, чтобы показать возможности механизма.
+
+### Проверка сложного объекта
+
+```bsl
+ЮТест.ОжидаетЧто(Ссылка, "Созданный объект")
+ .Заполнено()
+ .ИмеетТип("ДокументСсылка.ПриходТовара")
+ .Свойство("Номер").Заполнено()
+ .Свойство("Дата").Заполнено()
+ .Свойство("Поставщик").Равно(Поставщик)
+ .Свойство("Склад").Равно(Склад)
+ .Свойство("Валюта").Равно(Валюта)
+ .Свойство("Организация").Равно(Организация)
+ .Свойство("Товары").ИмеетДлину(2)
+ .Свойство("Товары[0].Товар").Равно(Товар1)
+ .Свойство("Товары[0].Цена").Больше(0)
+ .Свойство("Товары[0].Количество").Больше(0)
+ .Свойство("Товары[0].Сумма").Равно(100)
+ .Свойство("Товары[-1].Товар").Равно(Товар2)
+ .Свойство("Товары[-1].Сумма").Равно(200)
+ .Свойство("Проведен").ЭтоИстина()
+```
+
+### Проверка вызова метода
+
+```bsl
+ЮТУтверждения.Что(ОМ_ЮТУтверждения)
+ .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение"))
+ .НеВыбрасываетИсключение()
+ .НеВыбрасываетИсключение("Ожидаемое исключение");
+ЮТУтверждения.Что(ОМ_ЮТУтверждения)
+ .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение", 2))
+ .ВыбрасываетИсключение("Слишком много фактических параметров");
+ЮТУтверждения.Что(ОМ_ЮТУтверждения)
+ .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение"))
+ .ВыбрасываетИсключение("Исключение");
+ЮТУтверждения.Что(ОМ_ЮТУтверждения)
+ .Метод("МетодБезИсключение")
+ .ВыбрасываетИсключение("Недостаточно фактических параметров");
+```
+
+### Проверка соответствия предикату
+
+```bsl
+Дата = ЮТест.Данные().СлучайнаяДата();
+
+Объект = Новый Структура;
+Объект.Вставить("Число", 1);
+Объект.Вставить("Строка", "1");
+Объект.Вставить("Дата", Дата);
+Объект.Вставить("Массив", ЮТКоллекции.ЗначениеВМассиве(1, "1"));
+
+ПроверкаЧисла = ЮТест.Предикат().Реквизит("Число")
+ .ИмеетТип(Тип("Число"))
+ .БольшеИлиРавно(1)
+ .МеньшеИлиРавно(10)
+ .Получить();
+ПроверкаДаты = ЮТест.Предикат().Реквизит("Дата")
+ .ИмеетТип(Новый ОписаниеТипов("Дата"))
+ .Равно(Дата)
+ .Получить();
+
+ЮТест.ОжидаетЧто(Объект)
+ .СоответствуетПредикату(ЮТест.Предикат()
+ .Заполнено()
+ .ИмеетТип("Структура"))
+ .СоответствуетПредикату(ПроверкаЧисла)
+ .СоответствуетПредикату(ПроверкаДаты)
+;
+```
+
+### Проверка элементов коллекции на соответствие предикату
+
+```bsl
+ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C11", ОписанияТипов);
+ЮТест.ОжидаетЧто(ТаблицаРезультатов)
+ .ИмеетТип("Массив")
+ .ИмеетДлину(3)
+ .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
+ .Реквизит("Товар").Заполнено().ИмеетТип("СправочникСсылка.Товары")
+ .Реквизит("Период").Заполнено().ИмеетТип("Дата")
+ .Реквизит("Количество").Заполнено().ИмеетТип("Число")
+ .Реквизит("Цена").Заполнено().ИмеетТип("Число")
+ );
+
+ЮТест.ОжидаетЧто(ТаблицаРезультатов)
+ .Содержит(ЮТест.Предикат()
+ .Реквизит("Товар").Равно(Товар1)) // Таблица содержит строку с Товар1
+ .Содержит(ЮТест.Предикат(Новый Структура("Товар", Товар2))) // Таблица содержит строку с Товар2
+ .Содержит(ЮТест.Предикат()
+ .Реквизит("Товар").Равно(Товар3) // Таблица содержит строку с Товар3
+ .Реквизит("Количество").Равно(2)) // и количеством 2
+
+```
diff --git a/documentation/docs/features/assertions/assertions-db.md b/documentation/docs/features/assertions/assertions-db.md
new file mode 100644
index 000000000..c50d7dc53
--- /dev/null
+++ b/documentation/docs/features/assertions/assertions-db.md
@@ -0,0 +1,79 @@
+---
+tags: [Начало, Утверждения, ДанныеИБ]
+---
+
+# Утверждения для проверки наличия данных информационной базы
+
+Большая часть тестируемых методов так или иначе оставляет свой след в информационной базе, создает или изменяет записи - документы, регистры, справочники и так далее.
+Для проверки правильности работы таких методов нам необходимо проверить, что изменилось в базе. В этом могут помочь утверждения работающие с записями ИБ.
+
+Доступ к этим утверждениям обеспечивает метод [`ЮТест.ОжидаетЧтоТаблицаБазы`](/api/ЮТест#ожидаетчтотаблицабазы), который возвращает инициализированный модуль [`ЮТУтвержденияИБ`](/api/ЮТУтвержденияИБ), реализующий работу с утверждениями для ИБ.
+
+Утверждения ИБ позволяют проверить наличие и отсутствие записей по различным условиям, которые задаются с помощью [предикатов](../predicates.md)
+
+```bsl
+ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
+ .НеСодержитЗаписи(); // В базе нет товаров
+
+ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
+ .СодержитЗаписи(); // В базе есть товары
+
+ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
+ .СодержитЗаписи(ЮТест.Предикат() // В базе есть товары определенного поставщика
+ .Реквизит("Поставщик").Равно(ДанныеСправочника.Поставщик));
+
+ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.КурсыВалют")
+ .НеСодержитЗаписи(ЮТест.Предикат() // Курс валюты не установлен
+ .Реквизит("Валюта").Равно(ДанныеРегистра.Валюта)
+ .Реквизит("Период").БольшеИлиРавно(ДанныеРегистра.Период));
+```
+
+## Доступные методы
+
+* [`СодержитЗаписи`](/api/ЮТУтвержденияИБ#содержитзаписи) - проверяет наличие записей по условиям
+* [`НеСодержитЗаписи`](/api/ЮТУтвержденияИБ#несодержитзаписи) - проверяет отсутствие записей по условиям
+* [`СодержитЗаписиСНаименованием`](/api/ЮТУтвержденияИБ#содержитзаписиснаименованием) - проверяет наличие в таблице записей с указанным наименованием
+* [`СодержитЗаписиСКодом`](/api/ЮТУтвержденияИБ#содержитзаписискодом) - проверяет наличие в таблице записей с указанным кодом
+* [`СодержитЗаписиСНомером`](/api/ЮТУтвержденияИБ#содержитзаписисномером) - проверяет наличие в таблице записей с указанным номером
+* [`НеСодержитЗаписиСНаименованием`](/api/ЮТУтвержденияИБ#несодержитзаписиснаименованием) - проверяет отсутствие в таблице записей с указанным наименованием
+* [`НеСодержитЗаписиСКодом`](/api/ЮТУтвержденияИБ#несодержитзаписискодом) - проверяет отсутствие в таблице записей с указанным кодом
+* [`НеСодержитЗаписиСНомером`](/api/ЮТУтвержденияИБ#несодержитзаписисномером) - проверяет отсутствие в таблице записей с указанным номером
+
+## Примеры
+
+```bsl title="Тест создания справочника"
+// Проверка и подготовка контекста
+АртикулТовара = ЮТест.Данные().СлучайнаяСтрока();
+УсловиеПоискаТовара = ЮТест.Предикат()
+ .Реквизит("Артикул").Равно(АртикулТовара)
+ .Получить(); // Необходимо для сохранения сформированного предиката в переменную
+
+ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар уже существует в базе")
+ .НеСодержитЗаписей(УсловиеПоискаТовара);
+
+// Выполнение тестируемого метода
+СоздатьТовар(АртикулТовара);
+
+// Проверка результата
+ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар не был создан")
+ .СодержитЗаписи(УсловиеПоискаТовара);
+
+// Проверим заполнение нового элемента
+СозданныйТовар = ЮТЗапрос.Запись("Справочник.Товары", УсловиеПоискаТовара);
+ЮТест.ОжидаетЧто(СозданныйТовар, "Данные нового товара")
+ .Заполнено()
+ .Свойство("Наименование").Заполнено()
+ .Свойство("Код").Заполнено()
+ .Свойство("Артикул").Заполнено();
+```
+
+:::tip Проверка заполнения
+Не рекомендую использовать `ЮТест.ОжидаетЧтоТаблицаБазы` проверки заполнения созданных/измененных данных.
+Лучше сначала получить запись используя `ЮТЗапрос.Запись` и с помощью `ЮТест.ОжидаетЧто` проверить ее заполнение.
+
+Разница будет в тексте ошибки:
+
+* `ЮТест.ОжидаетЧтоТаблицаБазы` скажет, что запись в базе отсутствует, без разницы, был ли создан товар или он был некорректно заполнен.
+* `ЮТЗапрос.Запись` + `ЮТест.ОжидаетЧто` позволит отдельно проверить наличе записи в базе и корректность заполнения.
+ При отсутствии будет выдана ошибка, что данные не заполнены, а при некорректном заполнении сообщит, какое свойство не заполнено.
+:::
diff --git a/documentation/docs/features/assertions/assertions.md b/documentation/docs/features/assertions/assertions.md
new file mode 100644
index 000000000..8eab2f861
--- /dev/null
+++ b/documentation/docs/features/assertions/assertions.md
@@ -0,0 +1,66 @@
+---
+tags: [Начало, Утверждения]
+sidebar_position: 1
+---
+
+# Утверждения
+
+Тестирование - это проверка системы на **соответствие требованиям**. Из этого следует, что при тестировании, у нас должны быть требования к тестируемой функциональности, сформулированные ожидания.
+Для описания ожиданий в тестах, использующих YAxUnit, применяется механизм утверждений, с помощью которых, разработчик описывает требования к тестируемому функционалу.
+
+Утверждения позволяют, не только фиксировать ожидания, но и помогают формировать:
+
+1. более читаемый и простой тест,
+2. формируют "дружелюбные" и понятные сообщения об ошибках,
+3. прививают единообразие у сокращают количество "велосипедов".
+
+```bsl title="Пример утверждения"
+ЮТест.ОжидаетЧто(ДанныеЗаписи)
+ .Свойство("Поставщик").Равно(ДанныеОбъекта.Поставщик)
+ .Свойство("Товары")
+ .ИмеетДлину(1)
+ .Свойство("Товары[0].НомерСтроки").Равно(2)
+ .Свойство("Товары[0].Товар").Равно(ДанныеОбъекта.Товары[0].Товар);
+```
+
+В результате этой проверки (ошибочной) будет выброшено следующее исключение:
+
+> Ожидали, что проверяемое значение `Поступление товара 000000001 от 12.03.2024 3:06:17` содержит свойство `Товары[0].НомерСтроки`, которое равно `2`, но это не так.
+
+А так оно будет выглядеть в EDT.
+
+![report](images/assertions-report.png)
+
+## Зачем нужны утверждения YAxUnit
+
+Основной задачей утверждений является формирование и проверка наши ожидания.
+Например, сложение 2 и 3 должно вернуть нам 5.
+Можно перефразировать это требование (ожидание) - тест ожидает, что `2 + 3` равно `5`.
+При помощи утверждений это превращается в следующий код - `ЮТест.ОжидаетЧто(2 + 3).Равно(5)`.
+
+Вы можете проверить результат работы и без использования утверждений - `Если 2 + 3 <> 5 Тогда ВызватьИсключение "2 + 3 <> 5";КонецЕсли;`
+Но отличии от ручной проверки с использованием условий и исключений утверждения дают ряд преимуществ:
+
+* Всегда, ну или почти, понятные сообщения об ошибках, которые помогают локализовать причину.
+* Также вам не надо ломать голову, что написать в исключении.
+* Тесты получаются более читаемыми, цепочки вызовов формируют, что-то вроде предложений.
+* Не все проверки столько просты как в примере, есть предикаты, сравнение таблиц, проверка вложенных свойств и данных в информационной базе
+* Ошибки утверждений помечаются другим типов ошибки, это позволяет понять упал тест (не совпало ожидание) или наш код сломался.
+
+В итоге: утверждений вещь полезная, изучите и используйте ее.
+
+## Возможности
+
+* Проверки [значений](assertions-base.md#доступные-методы)
+* Проверки [методов объекта на выброс исключений](assertions-base.md#проверка-выполнения-метода)
+* Проверки [данных информационной базы](assertions-db.md)
+
+Это базовые методы проверки, с помощью которых вы можете проверить любое поведение (или почти любое) системы. На их основе вы можете сформировать библиотеку своих "бизнес" утверждений, заточенных под ваше решение, что облегчит вам разработку тестов.
+
+:::tip Рекомендации
+
+* Используйте отступы и форматирование для улучшения читаемости.
+* Не забывайте указывать описания для проверок.
+* Не стоит писать проверки ради проверок, проверяйте только то, что необходимо для кейса.
+ Слишком большой код (цепочки утверждений в частности) сложно поддерживать, при необходимости разбейте его на блоки (методы).
+:::
diff --git a/documentation/docs/features/assertions/images/assertions-report.png b/documentation/docs/features/assertions/images/assertions-report.png
new file mode 100644
index 000000000..dde82bd2c
Binary files /dev/null and b/documentation/docs/features/assertions/images/assertions-report.png differ
diff --git a/documentation/docs/features/auxiliary-modules/collections.md b/documentation/docs/features/auxiliary-modules/collections.md
new file mode 100644
index 000000000..85479f158
--- /dev/null
+++ b/documentation/docs/features/auxiliary-modules/collections.md
@@ -0,0 +1,7 @@
+---
+tags: [Начало, Универсальные методы]
+sidebar_position: 2
+---
+
+# Коллекции
+
diff --git a/documentation/docs/features/auxiliary-modules/index.md b/documentation/docs/features/auxiliary-modules/index.md
new file mode 100644
index 000000000..a63820be3
--- /dev/null
+++ b/documentation/docs/features/auxiliary-modules/index.md
@@ -0,0 +1,13 @@
+# Дополнительные модули
+
+В дополнение к основным возможностям тестового движка, для упрощения работы при разработке тестов, добавлены следующие модули:
+
+* [`ЮТЗапрос`](queries.md) - предоставляет методы получения данных из информационной базы.
+* [`ЮТКоллекции`](collections.md) - универсальные методы для работы с различными коллекциями (массивы, таблицы, структур и тд)
+* [`ЮТСтроки`](/api/ЮТСтроки) - универсальные методы для работы со строками.
+* [`ЮТЛогирование`](/api/ЮТЛогирование) - методы логирования.
+* [`ЮТФабрика`](/api/ЮТФабрика) - методы для создания различных объектов движка, которые могут понадобиться при разработке тестов.
+* [`ЮТКомпоненты`](/api/ЮТКомпоненты) - предоставляет доступ к внешним компонентам движка.
+* [`ЮТМетаданные`](/api/ЮТМетаданные) - методы для работы с метаданными.
+* [`ЮТРегистрацияОшибок`](/api/ЮТРегистрацияОшибок) - методы работы с ошибками.
+* [`ЮТИсключения`](/api/ЮТИсключения) - методы для формирования текстов исключений.
diff --git a/documentation/docs/features/auxiliary-modules/queries.md b/documentation/docs/features/auxiliary-modules/queries.md
new file mode 100644
index 000000000..fd084c6f6
--- /dev/null
+++ b/documentation/docs/features/auxiliary-modules/queries.md
@@ -0,0 +1,127 @@
+---
+tags: [Начало, ДанныеИБ]
+sidebar_position: 1
+---
+
+# Запросы
+
+Для получения данных базы предоставлен API выполнения запросов [`ЮТЗапросы`](/api/ЮТЗапросы).
+
+Позволяет как с сервера, так и с клиента получать данные информационной базы и имеет следующие методы:
+
+* `ЗначенияРеквизитов` - Возвращает значения реквизитов ссылки в виде структуры.
+ ```bsl
+ ДанныеСсылки = ЮТЗапросы.ЗначенияРеквизитов(Ссылка, "Штрихкод, Поставщик");
+ ЮТест.ОжидаетЧто(ДанныеСсылки)
+ .ИмеетТип("Структура")
+ .Заполнено()
+ .Свойство("Штрихкод").Равно(Данные.Штрихкод)
+ .Свойство("Поставщик").Равно(Данные.Поставщик);
+ ```
+* `ЗначениеРеквизита` - Возвращает значение реквизита ссылки
+ ```bsl
+ ЮТест.ОжидаетЧто(ЮТЗапросы.ЗначениеРеквизита(Ссылка, "Наименование"))
+ .ИмеетТип("Строка")
+ .Заполнено()
+ .Равно(Данные.Наименование);
+ ```
+* `Запись` - Возвращает первую запись таблицы, соответствующую условиям. Возвращается структура, со всеми данными объекта, включая табличные части.
+ ```bsl
+ ДанныеЗаписи = ЮТЗапросы.Запись("Документ.ПриходТовара",
+ ЮТест.Предикат()
+ .Реквизит("Ссылка").Равно(Ссылка));
+
+ ЮТест.ОжидаетЧто(ДанныеЗаписи)
+ .Свойство("Ссылка").Равно(Ссылка)
+ .Свойство("Поставщик").Равно(ДанныеОбъекта.Поставщик)
+ .Свойство("Товары")
+ .ИмеетТип("Массив")
+ .ИмеетДлину(1)
+ .Свойство("Товары[0].НомерСтроки").Равно(1)
+ .Свойство("Товары[0].Товар")
+ .Равно(ДанныеОбъекта.Товары[0].Товар);
+ ```
+* `Записи` - Возвращает записи таблицы, соответствующую условиям. Возвращается массив структур, со всеми данными объектов, включая табличные части.
+ ```bsl
+ Записи = ЮТЗапросы.Записи("Справочник.Товары",
+ ЮТест.Предикат()
+ .Реквизит("Поставщик").Равно(Поставщик));
+
+ ЮТест.ОжидаетЧто(Записи)
+ .ИмеетТип("Массив")
+ .ИмеетДлину(5);
+
+ Для Каждого Запись Из Записи Цикл
+ ЮТест.ОжидаетЧто(Запись)
+ .ИмеетТип("Структура")
+ .Свойство("Ссылка")
+ .Свойство("Поставщик").Равно(Поставщик)
+ .Свойство("Код");
+ КонецЦикла;
+ ```
+* `ЗначенияРеквизитовЗаписи` - Возвращает значения реквизитов первой записи таблицы, соответствующей условиям
+ ```bsl
+ Предикат = ЮТест.Предикат()
+ .Реквизит("Штрихкод").Равно(Данные.Штрихкод);
+
+ ДанныеСсылки = ЮТЗапросы.ЗначенияРеквизитовЗаписи("Справочник.Товары", Предикат, "Штрихкод, Поставщик, Поставщик.Наименование");
+
+ ЮТест.ОжидаетЧто(ДанныеСсылки)
+ .ИмеетТип("Структура")
+ .Заполнено()
+ .Свойство("Штрихкод").Равно(Данные.Штрихкод)
+ .Свойство("Поставщик").Равно(Данные.Поставщик)
+ .Свойство("ПоставщикНаименование").Равно(Строка(Данные.Поставщик));
+ ```
+* `ЗначениеРеквизитаЗаписи` - Возвращает значение реквизита первой записи таблицы, соответствующей условиям
+ ```bsl
+ Предикат = ЮТест.Предикат()
+ .Реквизит("Поставщик").Равно(Данные.Поставщик);
+
+ Значение = ЮТЗапросы.ЗначениеРеквизитаЗаписи("Справочник.Товары", Предикат, "Поставщик");
+
+ ЮТест.ОжидаетЧто(Значение)
+ .Равно(Данные.Поставщик);
+ ```
+* `ТаблицаСодержитЗаписи` - Вернет признак, содержит ли таблица записи, удовлетворяющие переданным условиям
+ ```bsl
+ ЮТест.ОжидаетЧто(
+ ЮТЗапросы.ТаблицаСодержитЗаписи("Справочник.Товары",
+ ЮТест.Предикат()
+ .Реквизит("Наименование").Равно(ДанныеСправочника.Наименование)))
+ .ЭтоИстина();
+ ```
+* `РезультатЗапроса` - Возвращает результат выполнения простого запроса, используя описание запроса
+ ```bsl
+ ОписаниеЗапроса = ЮТЗапросы.ОписаниеЗапроса();
+ ОписаниеЗапроса.ИмяТаблицы = "Справочник.Товары";
+ ОписаниеЗапроса.Условия.Добавить("Ссылка = &Ссылка");
+ ОписаниеЗапроса.Условия.Добавить("НЕ ПометкаУдаления");
+ ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Товар);
+ ОписаниеЗапроса.ВыбираемыеПоля.Добавить("Ссылка");
+ ОписаниеЗапроса.ВыбираемыеПоля.Добавить("1+1 КАК Число");
+
+ ЮТест.ОжидаетЧто(ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса))
+ .ИмеетДлину(1)
+ .Свойство("[0].Ссылка").Равно(Товар)
+ .Свойство("[0].Число").Равно(2);
+ ```
+* `РезультатПустой` - Определяет, есть ли в результате записи, используя описание запроса
+ ```bsl
+ ОписаниеЗапроса = ЮТЗапросы.ОписаниеЗапроса();
+ ОписаниеЗапроса.ИмяТаблицы = "Справочник.Товары";
+ ОписаниеЗапроса.Условия.Добавить("Ссылка = &Ссылка");
+ ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Ссылка);
+
+ ЮТест.ОжидаетЧто(ЮТЗапросы.РезультатПустой(ОписаниеЗапроса)).ЭтоЛожь();
+ ```
+* `ОписаниеЗапроса` - Формирует описание простого запроса
+ ```bsl
+ ОписаниеЗапроса = ЮТЗапросы.ОписаниеЗапроса();
+ ОписаниеЗапроса.ИмяТаблицы = "Справочник.Товары";
+ ОписаниеЗапроса.Условия.Добавить("Ссылка = &Ссылка");
+ ОписаниеЗапроса.Условия.Добавить("НЕ ПометкаУдаления");
+ ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Товар);
+ ОписаниеЗапроса.ВыбираемыеПоля.Добавить("Ссылка");
+ ОписаниеЗапроса.ВыбираемыеПоля.Добавить("1+1 КАК Число");
+ ```
diff --git a/documentation/docs/features/context.md b/documentation/docs/features/context.md
new file mode 100644
index 000000000..8c4d7f2ee
--- /dev/null
+++ b/documentation/docs/features/context.md
@@ -0,0 +1,72 @@
+---
+tags: [Начало, Контекст]
+sidebar_position: 5
+---
+
+# Контекст
+
+Механизм глобальных контекстов в тестовом движке играет ключевую роль. Он предоставляет следующие основные возможности:
+
+1. Передача данных между тестами. Если вам нужно использовать определенные данные в нескольких тестах, вы можете передать их с помощью контекстов.
+2. Работа с [текучими выражениями](/docs/getting-started/fluent-api.md). Контексты обеспечивают поддержку текучих выражений, что упрощает написание и чтение кода тестов.
+3. [Удаление](test-data/test-data-deletion.md) тестовых данных. После выполнения тестов вы можете использовать контексты для очистки тестовых данных, которые больше не нужны.
+4. Передача настроек [Мокито](mocking/mockito.md). Это позволяет настроить поведение мокируемого метода прямо из теста, что упрощает процесс тестирования.
+
+Однако стоит отметить, что механизм контекстов имеет некоторые ограничения.
+
+* Он не синхронизируется между клиентом и сервером.
+* Контексты тестов имеют ограниченное время жизни. Например, контекст теста "живет" только в рамках теста и [событиях](events.md) `ПередКаждымТестом`, `ПослеКаждогоТеста`.
+
+## Использование контекстов в тестах
+
+При разработке тестов, вам могут пригодиться следующие контексты:
+
+1. Контекст теста ([ЮТест.КонтекстТеста](/api/ЮТест#контексттеста)). Это `структура`, которая существует в рамках одного теста. Она доступна в каждом тесте и в обработчиках [событий](events.md) `ПередКаждымТестом` и `ПослеКаждогоТеста`, а также в аналогичных переопределенных обработчиках. Это означает, что вы можете использовать этот контекст для хранения и доступа к данным, которые нужны только в рамках одного теста.
+
+2. Контекст тестового набора ([ЮТест.КонтекстТестовогоНабора](/api/ЮТест#контексттестовогонабора)). Это `структура`, которая существует в рамках набора тестов. Она доступна в каждом тесте набора и в обработчиках [событий](events.md) `ПередТестовымНабором`, `ПослеТестовогоНабора`, `ПередКаждымТестом` и `ПослеКаждогоТеста`, а также в аналогичных переопределенных обработчиках. Это означает, что вы можете использовать этот контекст для хранения и доступа к данным, которые нужны в рамках всего набора тестов.
+
+3. Контекст тестового модуля ([ЮТест.КонтекстМодуля](/api/ЮТест#контекстмодуля)). Это `структура`, которая существует в рамках тестового модуля. Она доступна в каждом тесте модуля и в обработчиках [событий](events.md) `ПередВсемиТестами`, `ПослеВсехТестов`, `ПередТестовымНабором`, `ПослеТестовогоНабора`, `ПередКаждымТестом` и `ПослеКаждогоТеста`, а также в аналогичных переопределенных обработчиках. Это означает, что вы можете использовать этот контекст для хранения и доступа к данным, которые нужны в рамках всего тестового модуля.
+
+4. Контекст ([ЮТест.Контекст](/api/ЮТест#контекст)): Это умный контекст, который облегчает работу с различными тестовыми контекстами. Он имеет два метода: `Значение` и `УстановитьЗначение`.
+ Метод `Значение` последовательно ищет необходимое значение во всех контекстах (теста, набора, модуля) и возвращает первое найденное.
+ Метод `УстановитьЗначение` автоматически определяет контекст, в котором вызывается установка значения, и сохраняет значение в соответствующем контексте. Это позволяет вам не задумываться о том, в каком контексте нужно сохранить данные, и при необходимости переопределять значения.
+
+ ```bsl
+ // Создаем организацию, которую будем использовать во всех тестах
+ // Но для конкретного набора переопределим ее
+ // При этом используется общий метод создания данных, который получает организацию из контекста
+ Процедура ПередВсемиТестами()
+ ЮТест.Контекст().УстановитьЗначение("Организация", НоваяОрганизация());
+ КонецПроцедуры
+
+ Процедура ПередТестовымНаборомДругойОрганизации()
+ ЮТест.Контекст().УстановитьЗначение("Организация", НоваяДругаяОрганизация()); // Переопределим настройку из модуля
+ КонецПроцедуры
+
+ Процедура Тест()
+ Документ = СоздатьДокумент();
+ ...
+ КонецПроцедуры
+
+ Процедура Тест2()
+ ЮТест.Контекст().УстановитьЗначение("Организация", НоваяТретьяОрганизация()); // Переопределим настройку
+ Документ = СоздатьДокумент();
+ ...
+ КонецПроцедуры
+
+ Функция СоздатьДокумент()
+ Документ = НовыйДокумент();
+ Документ.Организация = ЮТест.Контекст().Значение("Организация");
+ КонецФункции
+ ```
+
+## Реализация
+
+Реализация механизма контекстов включает следующие аспекты:
+
+* Все контексты сохраняются в глобальной структуре. Это означает, что они доступны во всем приложении и могут быть использованы в различных частях кода.
+ * На клиентской стороне эта глобальная структура представлена в виде переменной модуля приложения.
+ * На серверной стороне эта структура сохраняется во временном хранилище. Адрес этого хранилища сохраняется в настройках пользователя, а также кэшируется модулем повторного использования.
+* Для каждой задачи (например, контекст текучих выражений или настройки мокито) в этой структуре создается свой предопределенный элемент.
+* Методы работы с контекстами унифицированы и собраны в модуле ЮТКонтекстСлужебный. Однако не рекомендуется использовать их непосредственно в тестах.
+* У каждого контекста может быть свой собственный жизненный цикл, который контролируется конкретным механизмом движка. Это позволяет гибко управлять временем жизни контекстов в зависимости от требований решаемой задачи.
diff --git a/documentation/docs/features/events.md b/documentation/docs/features/events.md
new file mode 100644
index 000000000..67c86fe01
--- /dev/null
+++ b/documentation/docs/features/events.md
@@ -0,0 +1,69 @@
+---
+tags: [Начало, События]
+sidebar_position: 6
+---
+
+# События
+
+## События тестов
+
+События тестов можно использовать для настройки тестового окружения:
+
+* Установка констант и других настроек.
+* Создание тестовых данных.
+* Удаление созданных данных.
+* Если результат обработки события необходимо передать в тест, то это можно сделать с помощью [контекста](./context.md)
+
+Вот некоторые из событий, которые могут быть интересны разработчикам:
+
+* `ПередВсемиТестами` - Это событие вызывается перед прогоном тестов модуля в каждом контексте (`&НаСервер` и `&НаКлиенте` для клиент-серверного модуля). Это может быть полезно для установки общих настроек или данных, которые будут использоваться всеми тестами.
+* `ПередТестовымНабором` - Это событие вызывается перед прогоном тестов набора. Это может быть полезно для установки или переопределения для тестов набора настроек или данных.
+* `ПередКаждымТестом` - Это событие вызывается перед прогоном каждого теста. Это может быть полезно для установки специфических для теста настроек или данных.
+* `ПослеКаждогоТеста` - Это событие вызывается после прогона каждого теста. Это может быть полезно для очистки данных или настроек, установленных перед тестом.
+* `ПослеТестовогоНабора` - Это событие вызывается после прогона всех тестов набора.
+* `ПослеВсехТестов` - Это событие вызывается после прогона всех тестов модуля для контекста (после всех клиентских, либо после всех серверных).
+
+:::info Транзакция
+При использовании транзакций ([ЮТТесты.ВТранзакции()](/api/ЮТТесты#втранзакции)) события `ПередКаждымТестом` и `ПослеКаждогоТеста` включаются в транзакцию. Другие события выполняются вне транзакции.
+:::
+
+Для обработки этих событий необходимо в тестовом модуле разместить одноименный экспортный метод без параметров.
+
+:::warning[Обработчики могут вызываться дважды]
+Важной особенностью всех событий, связанных с исполнением тестов, это то что они могут вызываться дважды - для клиента и для сервера.
+Если у нас есть клиент-серверный модуль с тестами доступными и на клиенте, и на сервер, то события будет вызвано дважды - и перед запуском клиентских, и перед запуском серверных тесов. Это касается всех событий, и события `ПередВсемиТестами`, и события `ПослеКаждогоТеста`
+:::
+
+При необходимости разработчик может переопределить обработчики событий при регистрации тестов, вызвав `Перед` и/или `После` и указав имя нужного метода.
+
+```bsl
+Процедура ИсполняемыеСценарии() Экспорт
+
+ ЮТТесты
+ .Перед("ПодготовитьДанныеДляТестов") // Переопределение обработчика выполняемого перед прогоном тестов модуля
+ .После("ОчиститьДанныеТестов") // Переопределение обработчика выполняемого после прогона тестов модуля
+ .ДобавитьТестовыйНабор("МойНаборТестов")
+ .ДобавитьТест("МойПервыйТест")
+ .ДобавитьТест("МойВторойТест")
+ .Перед("ПодготовитьДанныеДляПервогоТеста") // Переопределение обработчика для конкретного теста
+ .ДобавитьТестовыйНабор("МойДругойНаборТестов")
+ .Перед("ПодготовитьДанныеДругогоНабора") // Переопределение обработчика вызываемого перед прогоном набора тестов
+ .ДобавитьТест("МойТретийТест")
+
+КонецПроцедуры
+```
+
+## События в движке
+
+YAxUnit также использует события для работы внутренних механизмов:
+
+* Управление жизненным циклом [контекстов](context.md)
+* [Очистка тестовых данных](test-data/test-data-deletion.md)
+* Логирование
+* и другие.
+
+Благодаря событиям вы можете развивать и адаптировать механизмы движка под себя, например:
+
+* Выполнять начальную подготовку базы или настройку движка перед прогонами
+* Реализовывать свои механизмы (например удаление данных с использованием подписок)
+* Формировать отчеты о тестировании online.
diff --git a/documentation/docs/features/features.md b/documentation/docs/features/features.md
index 49ecb8155..6395339e5 100644
--- a/documentation/docs/features/features.md
+++ b/documentation/docs/features/features.md
@@ -1,6 +1,136 @@
---
-sidebar_position: 0
-tags: [Начало]
+sidebar_label: Руководство
+sidebar_position: 1
---
-# Возможности
+# Возможности YAxUnit
+
+```mermaid
+mindmap
+ t((Тест))
+ (Регистрация)
+ Регистрация и контекст исполнения
+ Настройка
+ Параметры вызова
+ Обработчики событий
+ Очистка данных
+ (Мокирование)
+ Методы конфигурации
+ HTTP-запрос
+ ADO.RecordSet
+ (Создание данных ИБ)
+ Конструктор объекта
+ Создание пустышек
+ Загрузка из макета
+ (Генерация данных)
+ Генерация случайных данных
+ Генерация правдоподобных данных
+ (Проверка)
+ Базовые утверждения
+ Утверждения проверка данных ИБ
+ Проверка статистики вызовов
+ Предикаты
+ (Отчеты)
+ JUnit
+ Allure
+ (Удобства)
+ Плагин для EDT
+ Форма настройки/запуска тестов
+ Текучие выражения
+```
+
+YAxUnit предоставляет относительно богатый набор инструментов для помощи разработчикам в написании тестов.
+
+## Регистрация и настройка выполнения тестов
+
+[Описание](test-registration.md), [API](/api/ЮТТесты)
+
+Создание тестов начинается с регистрации их в движке, необходимо рассказать движку, какие имеются тесты, как их запускать, с какими параметрами.
+
+Для этого используется обязательный предопределенный экспортный метод `ИсполняемыеСценарии`
+
+```bsl
+Процедура ИсполняемыеСценарии() Экспорт
+
+ ЮТТесты.Добавить...
+
+КонецПроцедуры
+```
+
+Подробнее смотрите в [описании](test-registration.md).
+
+## Реализация тестов
+
+Большая часть методов программного интерфейса YAxUnit собрана в модуле [ЮТест](/api/ЮТест). Этот модуль является точкой входа в API используемый в тестах, он предоставляет доступ к другим модулям движка:
+
+* [`ЮТест.Данные()`](/api/ЮТТестовыеДанные) - Возвращает модуль работы с [тестовыми данными](test-data/)
+* [`ЮТест.ОжидаетЧто()`](/api/ЮТУтверждения) - Возвращает модуль работы с [утверждениями](assertions/assertions-base.md)
+* [`ЮТест.ОжидаетЧтоТаблицаБазы()`](/api/ЮТУтвержденияИБ) - Возвращает модуль работы с [утверждениями для проверки объектов информационной базы](assertions/assertions-db.md)
+* [`ЮТест.Контекст()`](/api/ЮТКонтекстТеста) - Возвращает модуль работы с [контекстом](context.md)
+* [`ЮТест.Предикат()`](/api/ЮТПредикаты) - Возвращает конструктор [предикатов](predicates.md)
+* [`ЮТест.Варианты()`](/api/ЮТКонструкторВариантов) - Возвращает конструктор вариантов прогона теста.
+
+### Создание тестовых данных
+
+[Описание](test-data/), [API](/api/ЮТТестовыеДанные)
+
+Почти все тесты опираются на данные, будь то параметры вызова или записи информационной базы. Вам придется эти данные создавать.
+Настоятельно рекомендую создавать данные программно, не загрузкой из макетов или вручную, а именно программно генерировать. О причинах можете почитать в [статье](test-data/) о тестовых данных
+
+Движок предоставляет различные инструменты для создания данных:
+
+* [`ЮТест.Данные().КонструкторОбъекта`](/api/ЮТТестовыеДанные#конструкторобъекта), с помощью которого вы можете создать объект информационной базы с необходимыми реквизитами.
+* Создание пустышек - примитивных объектов с минимальным заполнения.
+ * [`ЮТест.Данные().СоздатьЭлемент`](/api/ЮТТестовыеДанные#создатьэлемент)
+ * [`ЮТест.Данные().СоздатьДокумент`](/api/ЮТТестовыеДанные#создатьдокумент)
+ * [`ЮТест.Данные().СоздатьГруппу`](/api/ЮТТестовыеДанные#создатьгруппу)
+* Возможна загрузка из макета. Вы можете создать все необходимые данные [загрузив их из макета](test-data/load-from-templates.md)
+* Работа с временными файлами.
+* [Подражатель](/api/ЮТПодражатель), для генерации правдоподобных данных.
+* Генерация случайных значений.
+* [`ЮТест.Данные().КонструкторОбъектаXDTO`](/api/ЮТТестовыеДанные#конструкторобъектаxdto), с помощью которого вы можете создать XDTO объект.
+
+### Мокирование
+
+[Описание](mocking), [API](/api/Мокито)
+
+При тестировании полезно минимизировать "внешнее" воздействие на проверяемый функционал. Например, не использовать внешний http сервис, а эмулировать взаимодействие с ним, либо вместо выполнения запроса к базе данных вернуть предопределенный результат или вместо документа в качестве параметра передать структуру.
+Те заменить какой-либо объект обманкой, упрощенной его версией.
+
+* [`Мокито`](mocking/mockito.md) позволяет настроить/изменить поведение нужных методов конфигурации
+ * [`Вернуть`](/api/МокитоОбучение#вернуть) нужный результат для определенных параметров.
+ * [`ВыброситьИсключение`](/api/МокитоОбучение#выброситьисключение) при в нужный момент.
+ * [`Пропустить`](/api/МокитоОбучение#пропустить) метод (не выполнять).
+ * Просто [`Наблюдать`](/api/МокитоОбучение#наблюдать) (собирать статистику вызовов) за методом.
+ * За настройку условий срабатывания тех или иных действий отвечает метода [`Когда`](/api/МокитоОбучение#когда)
+* [`ЮТест.Данные().HTTPСервисЗапрос()`](/api/ЮТТестовыеДанные#httpсервисзапрос) позволяет настроить и эмулировать входящий запрос http-сервиса.
+ Если логика обработки запросов вынесена в отдельный общий модуль, то вы с легкостью с его помощью сможете протестировать ваш сервис без использования веб-сервера.
+* [`ЮТест.Данные().ADORecordSet()`](/api/ЮТТестовыеДанные#adorecordset) позволяет протестировать "прямые" запросы к SQL.
+
+### Проверка ожиданий
+
+[Описание](assertions/)
+
+* Проверка результата работы функции. Для проверки переменных (результатов методов) реализованы [базовые утверждения](assertions/assertions-base), подробнее со списком возможностей можете ознакомиться в [сгенерированном описании api](/api/ЮТУтверждения).
+* Если метод должен изменить данны в информационной базе, то эти изменения можно проверить с помощью [утверждений ИБ](assertions/assertions-db), [описании api утверждений](/api/ЮТУтвержденияИБ).
+* В некоторых случаях необходимо проанализировать какие методы и с какими параметрами вызывались. Здесь вам поможет [проверка статистики вызовов](/api/МокитоПроверки#вызовы), который собирает [Мокито](mocking)
+
+### Методы-помощники
+
+* Изменение данных в базе
+ * [`ЮТест.Данные().УстановитьЗначениеРеквизита`](/api/ЮТТестовыеДанные#установитьзначениереквизита)
+ * [`ЮТест.Данные().УстановитьЗначенияРеквизитов`](/api/ЮТТестовыеДанные#установитьзначенияреквизитов)
+* [Предикаты](predicates.md)
+* [Получение данных из базы и работа с запросами](auxiliary-modules/queries.md)
+* Варианты вызова. Чтобы повысить покрытие метода тестом можно сформировать наборы (варианты) параметров вызова метода. Для упрощения работы с ними вы можете воспользоваться методом [`ЮТест.Варианты()`](/api/ЮТест#варианты)
+* [`ЮТест.Пропустить`](/api/ЮТест#пропустить)
+* [`ЮТест.Пауза`](/api/ЮТест#пауза)
+* [`ЮТест.ВывестиВКонсоль`](/api/ЮТест#вывестивконсоль)
+
+## Примеры
+
+При возникновении трудностей с написанием тестов вы всегда можете
+
+* Посмотреть примеры [тестов движка](https://github.com/bia-technologies/yaxunit/tree/develop/tests/src/CommonModules)
+* Тесты других открытых проектов
+ * [bellerage-ssl](https://github.com/Bellerage-IT/bellerage-ssl/tree/master/src/cfe/yaxunit/src/CommonModules)
diff --git a/documentation/docs/images/allure-report-behaviors.png b/documentation/docs/features/images/allure-report-behaviors.png
similarity index 100%
rename from documentation/docs/images/allure-report-behaviors.png
rename to documentation/docs/features/images/allure-report-behaviors.png
diff --git a/documentation/docs/images/allure-report-suites.png b/documentation/docs/features/images/allure-report-suites.png
similarity index 100%
rename from documentation/docs/images/allure-report-suites.png
rename to documentation/docs/features/images/allure-report-suites.png
diff --git a/documentation/docs/features/images/edt-create-mock.png b/documentation/docs/features/images/edt-create-mock.png
new file mode 100644
index 000000000..2c4c01011
Binary files /dev/null and b/documentation/docs/features/images/edt-create-mock.png differ
diff --git a/documentation/docs/features/images/reports.png b/documentation/docs/features/images/reports.png
new file mode 100644
index 000000000..6579ece01
Binary files /dev/null and b/documentation/docs/features/images/reports.png differ
diff --git a/documentation/docs/features/mocking/mocking.md b/documentation/docs/features/mocking/mocking.md
new file mode 100644
index 000000000..d240474ee
--- /dev/null
+++ b/documentation/docs/features/mocking/mocking.md
@@ -0,0 +1,154 @@
+---
+tags: [Начало, Мокирование]
+sidebar_position: 3
+---
+
+# Мокирование
+
+## Вводная
+
+Мокирование - это инструмент/подход для изоляции тестируемых частей кода и контроля над зависимостями.
+
+При мокировании, мы вместо реальных (продуктовых) объектов подсовываем моки - подделки, фальшивки. Это "двойники" реальных объектов.
+
+Например:
+
+* Вместо, реального почтового сервера мы можем поднять в докере легковесный smtp сервер и настроить систему на взаимодействие с ним
+* Используя SOAP UI/Postman/Wiremock или что-то другое мы сможем протестировать систему без использования реального сервиса
+* Не редко вместо поднятия промышленной СУБД в тестах используются легковесные встраиваемые СУБД (sql lite, h2)
+
+Все это относится к мокированию и позволяет упростить процесс поднятия окружения для тестов.
+
+Но также моки могут быть использованы непосредственно при тестировании, например вместо реального документа в тестируемый метод вы можете передать структуру, содержащую все нужные реквизиты (Dummy, болванка), либо обработку с нужными методами (Мок), либо что-то иное, что позволяет вам упростить тест.
+Например, при тестировании http-сервисов передаем мок, который "притворяется" запросом, реализует интерфейс объекта `HTTPСервисЗапрос`.
+
+Основное ограничение такого подхода - обработки и структуры должны передаваться в качестве параметров в тестируемый метод. Если нам очень необходимо подменить объект, который вычисляется внутри метода, то приходится попотеть, либо передавать его в качестве доп. параметров и закладывать работы с ним в конфигурации, либо с помощью расширения возвращать жестко закодированное значение. Каждый раз, в таких случаях, приходится что-то изобретать и выдумывать способ внедрения моков.
+
+## Мокито
+
+Для унификации подхода к работе с моками мы разработали инструмент [Мокито](mockito.md), который облегчает тестирование.
+Он предоставляет
+
+* подход к внедрению моков
+* программный интерфейс для управления моками.
+
+Например, у нас есть метод отправки СМС, через шлюз.
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor РоботОтправки
+ participant ОтправкаСМС
+ participant ДрайверОтправки as ДрайверОтправки
ОтправкаСМС_Провайдер1
+ participant Шлюз as СМС шлюз
+
+ РоботОтправки->>+ОтправкаСМС: Отправить СМС
+ ОтправкаСМС->>ОтправкаСМС: Определение драйвера
+ ОтправкаСМС->>ОтправкаСМС: Получение СМС к отправке
+ ОтправкаСМС->>+ДрайверОтправки: Отправить пакет сообщений
+ loop Отправка сообщений
+ ДрайверОтправки-->>ДрайверОтправки: Подготовка тела запроса
+ critical Запрос к внешнему ресурсу
+ ДрайверОтправки->>Шлюз: Запрос на отправку сообщения
+ Шлюз-->>ДрайверОтправки: Статус отправки
+ end
+ ДрайверОтправки->>ДрайверОтправки: Анализ статуса
+ end
+ ДрайверОтправки-->>-ОтправкаСМС: Статус отправки сообщений
+ ОтправкаСМС-->>-РоботОтправки: Статус отправки
+```
+
+Он использует запросы к внешнему ресурсу, СМС шлюзу, который необходим в текущей схеме. Для решения этой проблемы мы можем:
+
+1. Отправлять реальные СМС в тестах
+2. Использовать тестовый шлюза, если провайдер предоставляет такую возможность
+3. Поднять мокирующий web-server
+4. Заложить в код обходы для тестирования
+5. Воспользоваться Мокито, написав в тесте:
+
+ ```bsl
+ Ответ = Новый HTTPСервисОтвет(200);
+ Ответ.УстановитьТелоИзСтроки(СериализацияJSON.ЗначениеВСтроку(Новый Структура("id, status",
+ "9999",
+ "delivered")));
+
+ Мокито.Обучение(ОтправкаСМС_Провайдер1)
+ .Когда("ПослатьСообщение") // Теперь, вместо реального запроса к шлюзу
+ .Вернуть(Ответ) // метод всегда будет возвращать нужный нам ответ
+ .Прогон();
+
+ РоботОтправки.ОтправкаСМС();
+ ```
+
+ В это случае, при отправке, не будут выполнятся запросы к шлюзу, вместо этого метод `ПослатьСообщение` вернет предопределенный результат.
+
+Подробнее о возможностях и принципах работы с Мокито, вы можете почитать в отдельной [статье](mockito.md).
+
+## Моки
+
+Мокито помогает изменять логику работы системы для изоляции тестируемого метода и уменьшения влияния других компонентов системы.
+Он закрывает множество задач, но иногда возникают задачи когда даже он не может помочь.
+
+### `HTTPСервисЗапрос`
+
+Первый пример с которым мы столкнулись - тестирование http-сервисов. Сервис на вход принимает объект `HTTPСервисЗапрос`, который невозможно создать и настроить из кода 1С.
+Необходимо было либо публиковать решение на web-сервере, либо дорабатывать код, чтобы он принимал структуры.
+
+Несколько первых тестов были созданы с помощью структур. Позже возникла идея реализовать мок, который бы походил на `HTTPСервисЗапрос`, реализовывал его интерфейс, и который можно настроить из теста.
+С ним тестировать сервисы стало намного проще и удобнее, позже его включили в YAxUnit, [`ЮТест.Данные().HTTPСервисЗапрос`](/api/ЮТТестовыеДанные#httpсервисзапрос)
+
+Возможности:
+
+* Реализует методы `HTTPСервисЗапрос`
+ * Свойства
+ * `HTTPМетод` \ `HTTPMethod`
+ * `БазовыйURL` \ `BaseURL`
+ * `Заголовки` \ `Headers`
+ * `ОтносительныйURL` \ `RelativeURL`
+ * `ПараметрыURL` \ `URLParameters`
+ * `ПараметрыЗапроса` \ `QueryOptions`
+ * Методы
+ * `ПолучитьТелоКакДвоичныеДанные()` \ `GetBodyAsBinaryData()`
+ * `ПолучитьТелоКакПоток()` \ `GetBodyAsStream()`
+ * `ПолучитьТелоКакСтроку()` \ `GetBodyAsString()`
+* Имеет методы настройки, реализованные в виде [текучих выражений](/docs/getting-started/fluent-api.md)
+ * Установка тела
+ * `УстановитьТелоКакДвоичныеДанные()`
+ * `УстановитьТелоКакСтроку()`
+ * `УстановитьТелоКакСтрокуJSON()`
+ * Методы установки свойств
+ * `ДобавитьЗаголовок()`
+ * `ДобавитьПараметрЗапроса()`
+ * `ДобавитьПараметрURL()`
+ * `Метод()`
+ * `БазовыйURL()`
+ * `ОтносительныйURL()`
+
+### `ADO.RecordSet`
+
+При тестировании прямых запросов к СУБД также возникает потребность использовать мок, для эмуляции чтения из `ADO.RecordSet`.
+
+Для таких кейсов был добавлен [`ЮТест.Данные().ADORecordSet`](/api/ЮТТестовыеДанные#adorecordset) реализующий интерфейс `ADO.RecordSet`
+
+* Свойства
+ * `EOF`
+ * `BOF`
+ * `AbsolutePosition`
+ * `RecordCount`
+ * `Fields`
+* Методы
+ * `MoveFirst()`
+ * `MoveNext()`
+ * `Close()`
+ * `Fields()`
+ * `EOF()`
+ * `BOF()`
+* Методы настройки, реализованные в виде [текучих выражений](/docs/getting-started/fluent-api.md)
+ * `ЮТест.Данные().ADORecordSet` - принимает информацию о колонках
+ * `Добавить()` - добавляет новую строку значений
+
+### Создание своих моков
+
+При возникновении подобных ситуаций, когда для тестов вам нужны объекты с какой-то логикой/методами, по аналогии с примерами выше вы без проблем сможете создать нужные вам моки.
+
+Это очень сильно облегчает тестирование и позволяет вам избежать лишнего вмешательства в тестируемый код.
diff --git a/documentation/docs/features/mocking/mockito.md b/documentation/docs/features/mocking/mockito.md
new file mode 100644
index 000000000..63daa2595
--- /dev/null
+++ b/documentation/docs/features/mocking/mockito.md
@@ -0,0 +1,713 @@
+---
+tags: [Начало, Мокирование]
+sidebar_position: 2
+---
+
+# Мокито
+
+[Мокито](/api/Мокито) - модуль созданный по образу популярного java-фреймворка для тестирования [Mockito](https://site.mockito.org/). Расширяет возможности тестирования, позволяет легко менять логику работы системы подменяя результаты работы методов, отключая какие-либо алгоритмы и проверки.
+
+## Возможности
+
+С помощью Мокито мы можем с легкостью управлять поведением системы прямо из теста, для этого есть возможность:
+
+* Настраивать какие методы "меняют" свое поведение, а какие обрабатывают "как положено".
+* Для разных тестов или кейсов внутри теста можно перенастраивать поведение методов.
+* Задавать условия на параметры метода.
+* Мокировать как экспортные так и приватные методы, процедуры и функции.
+* Настраивать разные "реакции" на вызов метода:
+ * Вернуть указанный результат
+ * Вызвать исключение
+ * Не выполнять метода
+ * Просто наблюдать за методом (собирать статистику по вызовам)
+
+Вы можете мокировать почти любой метод конфигурации, **исключение** - методы глобального контекста.
+
+1. Методы общих модулей
+2. Методы менеджеров
+3. Методы конкретных объектов, будь то документы или справочники
+
+Примеры:
+
+* Для всех объектов определенного типа - обучаете через менеджер
+ ```bsl
+ Мокито.Обучение(Документы.ПриходТовара) // Для всех документов ПриходТовара
+ .Когда("ОбработкаПроведения")
+ ```
+* Если нужно мокировать метод экземпляра объекта, то указываем его при обучении
+ ```bsl
+ Мокито.Обучение(ДокументОбъект) // Для конкретного экземпляра объекта,
+ .Когда("ОбработкаПроведения") // другой документ объект, даже полученный из той же ссылки отработает без мокирования
+ ```
+* либо ссылку на этот объект
+ ```bsl
+ Мокито.Обучение(ДокументСсылка) // Любой документ объект с той же ссылкой
+ .Когда("ОбработкаПроведения")
+ ```
+* Можно мокировать методы обработок и отчетов
+ ```bsl
+ Мокито.Обучение(Отчеты.ОСВ) // Для всех отчетов
+ .Когда("СформироватьОтчет")
+
+ Отчет = Отчеты.ОСВ.СоздатьОтчет();
+ Мокито.Обучение(Отчет) // для конкретного экземпляра отчета
+ .Когда("СформироватьОтчет")
+ ```
+
+Мокито не может:
+
+* Выполнять произвольную логику при вызове - выполнить алгоритм или вызвать какой-либо другой метод.
+* Не может изменять параметры.
+* При сборе статистики не хранит результат.
+
+## Принцип работы
+
+Мокито базируется на двух вещах:
+
+* Расширения и заимствование методов, благодаря им появилась возможность менять поведение системы.
+* Глобальный контекст, доступный как из теста, так и из заимствованных методов конфигурации.
+
+### Настройка мокируемых методов
+
+Для того чтобы вы смогли мокировать метода, вам в первую очередь необходимо добавить его в свое расширение.
+
+И добавить реализацию по шаблону для функции:
+
+```bsl
+&Вместо("<ИмяМокируемогоМетода>")
+Функция Мок_<ИмяМокируемогоМетода>(<ПараметрыМетода>)
+ ПараметрыМетода = Мокито.МассивПараметров(<ПараметрыМетода>);
+ ПрерватьВыполнение = Ложь;
+
+ Результат = МокитоПерехват.АнализВызова(<МокируемыйОбъект>, "<ИмяМокируемогоМетода>", ПараметрыМетода, ПрерватьВыполнение);
+
+ Если Не ПрерватьВыполнение Тогда
+ Возврат ПродолжитьВызов(<ПараметрыМетода>);
+ Иначе
+ Возврат Результат;
+ КонецЕсли;
+КонецФункции
+```
+
+Либо для процедуры:
+
+```bsl
+&Вместо("<ИмяМокируемогоМетода>")
+Процедура Мок_<ИмяМокируемогоМетода>(<ПараметрыМетода>)
+ ПараметрыМетода = Мокито.МассивПараметров(<ПараметрыМетода>);
+ ПрерватьВыполнение = Ложь;
+
+ МокитоПерехват.АнализВызова(<МокируемыйОбъект>, "<ИмяМокируемогоМетода>", ПараметрыМетода, ПрерватьВыполнение);
+
+ Если Не ПрерватьВыполнение Тогда
+ ПродолжитьВызов(<ПараметрыМетода>);
+ КонецЕсли;
+КонецПроцедуры
+```
+
+:::tip
+Если метод не содержит параметров можно использовать пустой массив:
+
+```bsl
+ПараметрыМетода = Новый Массив;
+```
+
+:::
+
+Если вы используете 1С:Enterprise Development Tools (EDT), то можете воспользоваться контекстной командой `1С:Модульные тесты (YAxUnit)` -> `Создать/обновить мок для...`
+
+![edt-create-mock](../images/edt-create-mock.png)
+
+Примеры добавления методов в расширение.
+
+#### Метод общего модуля
+
+Добавляем обработку метода `ПолучитьПрофиль` общего модуля `РаботаСПочтой`
+
+```bsl title="tests\ОбщиеМодули\РаботаСПочтой\Модуль.bsl"
+&Вместо("ПолучитьПрофиль")
+Функция Мок_ПолучитьПрофиль(ИмяОтправителя, ИспользоватьIMAP) Экспорт
+ // Собираем параметры в массив
+ ПараметрыМетода = Мокито.МассивПараметров(ИмяОтправителя, ИспользоватьIMAP);
+
+ // Отправляем данные на анализ
+ ПрерватьВыполнение = Ложь;
+ Результат = МокитоПерехват.АнализВызова(РаботаСПочтой, "ПолучитьПрофиль", ПараметрыМетода, ПрерватьВыполнение);
+
+ // Обрабатываем результат анализа
+ Если НЕ ПрерватьВыполнение Тогда
+ Возврат ПродолжитьВызов(ИмяОтправителя, ИспользоватьIMAP);
+ Иначе
+ Возврат Результат;
+ КонецЕсли;
+КонецФункции
+```
+
+#### Метод модуля менеджера
+
+Подходит для любого модуля менеджера, будь то, документ, регистр или отчет.
+
+Добавляем обработку метода `НовыйИдентификаторПодписчикаУведомлений` модуля менеджера справочника `Справочники.МобильныеУстройства`
+
+```bsl title="tests\Справочники\МобильныеУстройства\МодульМенеджера.bsl"
+&Вместо("НовыйИдентификаторПодписчикаУведомлений")
+Процедура Мок_НовыйИдентификаторПодписчикаУведомлений(Подписчик, Идентификатор) Экспорт
+
+ // Собираем параметры в массив
+ ПараметрыМетода = Мокито.МассивПараметров(Подписчик, Идентификатор);
+
+ // Отправляем данные на анализ
+ ПрерватьВыполнение = Ложь;
+ МокитоПерехват.АнализВызова(Справочники.МобильныеУстройства, "НовыйИдентификаторПодписчикаУведомлений", ПараметрыМетода, ПрерватьВыполнение);
+
+ // Обрабатываем результат анализа
+ Если НЕ ПрерватьВыполнение Тогда
+ ПродолжитьВызов(Подписчик, Идентификатор);
+ КонецЕсли;
+
+КонецПроцедуры
+```
+
+#### Метод модуля объекта
+
+Добавляем обработку приватного метода `ОбработкаПроведения` модуля объекта справочника `Документ.ПриходТовара`
+
+```bsl title="tests\Документы\ПриходТовара\МодульОбъекта.bsl"
+&Вместо("ОбработкаПроведения")
+Процедура Мок_ОбработкаПроведения(Отказ, Режим)
+
+ // Собираем параметры в массив
+ ПараметрыМетода = Мокито.МассивПараметров(Отказ, Режим);
+
+ // Отправляем данные на анализ
+ ПрерватьВыполнение = Ложь;
+ МокитоПерехват.АнализВызова(ЭтотОбъект, "ОбработкаПроведения", ПараметрыМетода, ПрерватьВыполнение);
+
+ // Обрабатываем результат анализа
+ Если НЕ ПрерватьВыполнение Тогда
+ ПродолжитьВызов(Отказ, Режим);
+ КонецЕсли;
+
+КонецПроцедуры
+```
+
+После этого, вы может управлять поведение метода из ваших тестов.
+
+Тестирование с использованием Мокито можно разделить на 3 стадии:
+
+```mermaid
+flowchart LR
+ training(1. Обучение) --> run(2. Прогон, запуск тестового метода)
+ run --> check(3. Проверка)
+```
+
+1. Сначала вы проводите **обучение** - настраиваете, какие методы мокируем и как они должны себя вести.
+2. Потом выполняете тестовый **прогон** целевого метода.
+3. После вам может понадобиться **проверка** вызовов, были ли вызваны нужные метода, с какими параметрами.
+
+```bsl
+ // Подготовка
+ Ответ = Новый HTTPСервисОтвет(1);
+ Ответ.УстановитьТелоИзСтроки(СериализацияJSON.ЗначениеВСтроку(Новый Структура("id, status",
+ "9999",
+ "delivered")));
+
+ // Обучение мокито
+ Мокито.Обучение(ОтправкаСМС_Провайдер1)
+ .Когда("УстановитьСоединение").Вернуть(Истина)
+ .Когда("ПослатьСообщение").Вернуть(Ответ)
+ .Прогон();
+
+ // Тестовый прогон
+ РоботОтправки.ОтправкаСМС();
+
+ // Проверка статистики
+ Мокито.Проверить(ОтправкаСМС_Провайдер1)
+ .КоличествоВызовов("ПослатьСообщение")
+ .Равно(1);
+```
+
+Подробнее расскажу по каждой стадии
+
+### Обучение
+
+Обучение - это процесс настройки мокито. Вы указываете какие методы и при каких условиях (параметрах) должны изменить свое поведение.
+
+С помощью API вы можете:
+
+* [`Наблюдать()`](/api/МокитоОбучение#наблюдать) - просто наблюдать за методом, собирать статистику.
+* [`Когда()`](/api/МокитоОбучение#когда) - указать какой метод и с каким параметрами необходимо обрабатывать.
+* [`Вернуть()`](/api/МокитоОбучение#вернуть) - настроить, чтобы метод возвращал нужный результат.
+* [`ВыброситьИсключение()`](/api/МокитоОбучение#выброситьисключение) - настроить, чтобы метод выбрасывал исключение.
+* [`Пропустить()`](/api/МокитоОбучение#пропустить) - настроить, чтобы метод был пропущен, не выполнился.
+* [`ВыполнитьМетод()`](/api/МокитоОбучение#выполнитьметод) - настроить, чтобы метод выполнился как есть.
+
+```bsl
+Мокито.Обучение(ОтправкаСМС_Провайдер1)
+ .Когда("УстановитьСоединение").Пропустить()
+ .Когда("ПослатьСообщение").Вернуть(Ответ)
+ .Наблюдать("ОбработатьОтвет")
+```
+
+Подробнее о методах ниже, а сейчас для лучшего понимания расскажу как работает обучение.
+Используя методы API вы формируете настройки `Мокито`, которые при вызове каждого метода обучения изменяются и сохраняются в [глобальном контексте](../context.md) движка. Каждый метод просто сохраняет нужным образом параметры в глобальные структуру.
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor Тест
+ participant Мокито
+ participant Контекст
+ Тест-->Мокито: Мокито.Обучение(). Включить обучение.
+ loop Настройка мокирования методов конфигурации
+ Тест->>+Мокито: Когда(). Указываем условия перехвата.
+ Мокито-->>Контекст: Сохранение условий перехвата
+ Тест->>Мокито: ВернутьРезультат(). Настраиваем поведение.
+ Мокито-->>Контекст: Привязка поведения к условиям перехвата
+ Мокито->>-Тест: Завершили настройку перехвата
+ end
+```
+
+:::caution Сброс старых настроек
+Каждый вызов метода `Мокито.Обучение`, по умолчанию, очищает предыдущие настройки по указанному объекту. Это нужно учитывать когда вы доучиваете Мокито в тесте.
+Если вам не нужно сбрасывать старые настройки по объекту передайте соответствующий параметр
+
+```bsl
+Мокито.Обучение(ОтправкаСМС_Провайдер1)
+ .Когда("УстановитьСоединение").Пропустить()
+ .Когда("ПослатьСообщение").Вернуть(Ответ)
+ .Наблюдать("ОбработатьОтвет")
+ .Прогон();
+// Какая то логика
+
+Мокито.Обучение(ОтправкаСМС_Провайдер1, Ложь) // Дообучение
+ .Когда("ПослатьСообщение").Вернуть(Ответ2);
+```
+
+:::
+
+В процессе обучения мы создаем правила, описывающие как будет вести себя метод при различных вариантах вызова.
+Правила состоят из двух частей
+
+* условие срабатывания (об/ект, метод, параметры), задаются в методе `Когда` или `Наблюдать`
+* действие выполняемое при соблюдении условий - `Вернуть`, `ВыброситьИсключение`, `Пропустить`, `ВыполнитьМетод`
+
+#### Условия
+
+Условие состоит из трех частей
+
+* Объект, которому относится метод
+* Имя метода
+* Параметры метода
+
+##### Объект
+
+Объект является обязательным и задается в методе [`Мокито.Обучение()`](/api/Мокито#обучение).
+
+В качестве объекта могут выступать:
+
+* **Менеджер объекта метаданных**, в таком случае под условие попадают все обращения к этому типу метаданных, будь вызовы методов модуля менеджера или объекта.
+* **Ссылка**, под условие попадают все обращения к объектам имеющим ту же ссылку.
+* **Объект** - конкретный объект метаданных (документ, обработка, набор записей), только обращения к методам этого экземпляра объекта.
+
+##### Имя метода
+
+Имя метода, является обязательным. Указывается в методах `Когда` или `Наблюдать`.
+Можно обрабатывать и экспортные и приватные метода, главное чтобы для него была [выполнена настройка](#настройка-мокируемых-методов)
+
+##### Параметры
+
+Указывается в методах `Когда` или `Наблюдать`, передачей массива ожидаемых параметров.
+
+Необязательная часть условия, если не указывать, но будут обрабатывать все вызовы.
+Также необязательно указывать все параметры метода, достаточно указать только первую часть.
+
+В качестве параметров можно указывать:
+
+* Конкретные значения параметров
+* Маски
+ * [`Мокито.ЛюбойПараметр()`](/api/Мокито#любойпараметр) - параметр может принимать любое значение
+ * [`Мокито.СтроковыйПараметр()`](/api/Мокито#строковыйпараметр) - параметр может принимать только строковые значения
+ * [`Мокито.ЧисловойПараметр()`](/api/Мокито#числовойпараметр) - параметр может принимать только числовые значения
+ * [`Мокито.ТипизированныйПараметр()`](/api/Мокито#типизированныйпараметр) - параметр может принимать значения указанного типа
+* Предикаты, параметр должен соответствовать заданным условиям.
+ ```bsl
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, ЮТест.Предикат().НеИмеетСвойства("Авторизация")))
+ .Вернуть(ОтветНеобходимаАвторизация())
+ ```
+
+##### Варианты обучения (формирования условий)
+
+Существует 2 основных подхода к формированию условий вызова:
+
+1. Явный вызов метода с параметрами
+ ```bsl
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные))
+ .Вернуть(2)
+ ```
+2. Указание имени метода и набора параметров
+ ```bsl
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(ИсточникДанных, Данные))
+ .Вернуть(2)
+ ```
+
+Первый вариант имеет ряд недостатков:
+
+1. Работает только для экспортных методов
+2. Необходимо передавать все обязательные параметры или использовать для них маску `Мокито.ЛюбойПараметр()`
+3. Если не указывать необязательные параметры, то их значения по умолчанию попадут в настройку. Покажу на примере.
+ ```bsl
+ // Имеется метод
+ Функция Метод(Параметр1, Параметр2, Параметр3 = 3) Экспорт
+ Возврат Параметр1 + Параметр2 + Параметр3;
+ КонецФункции
+
+ Мокито.Обучение(...)
+ .Когда(Метод(1, 2))
+ .Вернуть(0)
+ .Прогон();
+
+ Метод(1, 2); // Вернет 0
+ Метод(1, 2, 3); // Вернут 0
+ Метод(1, 2, 4); // Вернут 7, будет выполнен основной алгоритм
+
+ // Второй вариант обучения
+ Мокито.Обучение(...)
+ .Когда("Метод", Мокито.МассивПараметров(1, 2))
+ .Вернуть(0)
+ .Прогон();
+
+ Метод(1, 2); // Вернет 0
+ Метод(1, 2, 3); // Вернут 0
+ Метод(1, 2, 4); // Вернут 0
+ ```
+
+#### Действия (Реакции)
+
+После того как определились с условием вызова указанным в методе `Когда` нужно указать реакцию (действие). Возможные реакции:
+
+* [`Вернуть`](/api/МокитоОбучение#вернуть) - вернуть указанное значение
+* [`ВыброситьИсключение`](/api/МокитоОбучение#выброситьисключение) - вызвать исключение с переданным текстом
+* [`Пропустить`](/api/МокитоОбучение#пропустить) - пропустить выполнение метод (актуально для процедур)
+* [`ВыполнитьМетод`](/api/МокитоОбучение#выполнитьметод) - выполнить основной метод конфигурации, обычно комбинируется к другими реакциями, чтобы задать исключение.
+ Предположим, по умолчанию метод должен выбрасывать исключение, но для одного конкретного случая должен выполниться реальный метод конфигурации. Это проще всего сделать следующим образом:
+ ```bsl
+ Мокито.Обучение(...)
+ // По умолчанию метод падает
+ .Когда("МегаФункция").ВыброситьИсключение("Упал")
+ // При вызове с параметрами `1, 2, 3` выполняется метод конфигурации
+ .Когда("МегаФункция", Мокито.МассивПараметров(1, 2, 3)).ВыполнитьМетод()
+ ```
+
+```bsl title="Пример мокирования методов документа"
+Документ = СоздатьДокумент();
+
+Мокито.Обучение(Документ)
+ .Когда("ОбработкаПроверкиЗаполнения").Пропустить() // Отключим проверку заполнения документа
+ .Когда("КонтрольОстатков").Вернуть(Истина) // Проверка остатков будет успешной
+ .Когда("ЗафиксироватьОшибки").ВыброситьИсключение("Не должно быть ошибок") // При вызове "лишнего" кода сразу валим тест
+ .Когда("СформироватьПроводки")
+ .Пропустить() // Отключаем формирование таблицы движений
+ .Когда("СформироватьПроводки", Мокито.МассивПараметров("Взаиморасчеты"))
+ .ВыполнитьМетод() // Но включаем для регистра "Взаиморасчеты"
+ .Прогон(); // Завершаем настройку
+
+Документ.Записать(РежимЗаписиДокумента.Проведение);
+```
+
+##### Цепочки действий
+
+В дополнение к условиям можно формировать цепочки действий, которые будут выполнятся в порядке их "регистрации".
+Например, есть метод без параметров, для которого необходимо сэмулировать ситуацию когда он возвращает разные значения.
+
+```bsl
+
+Мокито.Обучение(...)
+ .Когда("БытьИлиНеБыть")
+ .Вернуть("Быть") // Первый вызов метода вернет "Быть"
+ .Вернуть("Или") // Второй вызов
+ .Вернуть("НеБыть") // Третий
+ .ВыброситьИсключение("Конец") // Четвертый и все последующие
+```
+
+#### Примеры формирования различных вариантов условий
+
+```bsl title="Имеется метод:"
+Функция ОтправитьОбъектНаСервер(ИсточникДанных, Объект, HTTPМетод = "POST",
+ ТипКонтента = "json", Преобразование = Неопределено,
+ ДопНастройки = Неопределено, Ответ = Неопределено, ОтветВСтруктуру = Ложь,
+ ТелоОтветаВХранилище = Ложь) Экспорт
+```
+
+Предположим необходимо:
+
+* Переопределить все вызовы метода - указываем имя метода без указания параметров
+ ```bsl
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда("ОтправитьОбъектНаСервер").Вернуть(1)
+ ```
+* Переопределить вызов, когда первый параметр имеет определенное значение
+ ```bsl
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(ИсточникДанных))
+ .Вернуть(2);
+
+ // Через явный вызов метода
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Мокито.ЛюбойПараметр())
+ .Вернуть(2) // Тут используется маска `Мокито.ЛюбойПараметр()`, тк второй параметр является обязательным
+ ```
+* Переопределить вызов, когда **второй** параметр имеет определенное значение
+ ```bsl
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ЛюбойПараметр(), Объект))
+ .Вернуть(2);
+
+ // Через явный вызов метода
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ЛюбойПараметр(), Объект)
+ .Вернуть(2)
+ ```
+* Условие на тип параметра
+ ```bsl
+ // Первый параметр должен быть ссылкой на справочник, второй числом
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ТипизированныйПараметр(Тип("СправочникСсылка.ИсточникиДанных")), Мокито.ЧисловойПараметр()))
+ .Вернуть(3);
+
+ // Через явный вызов метода
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ТипизированныйПараметр(Тип("СправочникСсылка.ИсточникиДанных")), Мокито.ЧисловойПараметр()))
+ .Вернуть(3);
+ ```
+* На основании порядка вызовов метода
+ ```bsl
+ Мокито.Обучение(РаботаСHTTP)
+ .Когда("ОтправитьОбъектНаСервер")
+ .Вернуть(1)
+ .Вернуть(2)
+ .Вернуть(3)
+ .ВыброситьИсключение("Конец");
+ ```
+
+### Тестовый прогон
+
+После обучения, настройки реакций на вызовы методов, можно запускать тест нужного метода.
+Но перед этим необхдимо перевести `Мокито` в режим **прогона тестов**, для этого используется метод [`Мокито.Прогон()`](/api/Мокито#прогон).
+
+Метод `Прогон` завершает настройку и изменяет режим работы, после этого все вызовы к настроенным методам (добавленным в расширение) будут перехватываться и анализироваться на совпадение условий вызова.
+
+:::info
+Также метод `Прогон` очищает накопленную статистику прошлых прогонов. Если вам необходимо ее сохранить передайте `Ложь` в параметрах.
+:::
+
+* Для методов, которые были указаны в `Когда()` или `Наблюдать()`, будет собираться статистика вызовов.
+* Для методов, у которых есть подходящая "реакция" будет переопределено выполнение и запустится соответствующая реакция (вернуть значение, вызвать исключение и тд)
+* Для прочих методов (не настроенных) логика не изменится.
+
+```bsl
+// Настройка
+Мокито.Обучение(РаботаСHTTP)
+ .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ЛюбойПараметр(), Мокито.ЛюбойПараметр()))
+ .Вернуть(РезультатПоУмолчанию)
+ .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Справочники.ИсточникиДанных.FTP, 2))
+ .Вернуть(2)
+ .Прогон(); // Перевод в режим прогона теста
+
+Результат = РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные); // Результат будет равен переменной РезультатПоУмолчанию
+Результат = РаботаСHTTP.ОтправитьОбъектНаСервер(Справочники.ИсточникиДанных.FTP, 2); // Результат будет равен 2
+```
+
+Схема вызовов при вызове замокированного метода.
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor Тест
+ participant Конфигурация
+ participant Расширение
+ participant Мокито
+ participant Контекст
+ Тест-->Мокито: Мокито.Прогон(). Переходим к тестированию
+ Тест->>Конфигурация: Вызов метода конфигурации.
+ Конфигурация->>Расширение: Вызов расширяющего метода.
+ Расширение->>Расширение: Собирает информацию о вызове
+ Расширение->>+Мокито: Анализ вызова метода
+ Мокито->>Контекст: Получение настроек
+ Контекст-->>Мокито: Настройки мокирования
+ Мокито->>Мокито: Находит нужную настройку
+ Мокито-->>Контекст: Сохраняет информацию о вызове метода
+ Мокито-->>-Расширение: Значение, которое должен вернуть метод
+ Расширение-->>Тест: Значение, которое должен вернуть метод
+```
+
+### Проверка
+
+После прогона теста можно проверить какие методы, с какими параметрами вызывались. Для этих целей необходимо воспользоваться методом [`Мокито.Проверить`](/api/Мокито#проверить)
+
+```bsl
+ЛюбойПараметр = Мокито.ЛюбойПараметр();
+
+Мокито.Проверить(РаботаСHTTP) // Устанавливаем проверяемый объект
+ // Проверка общего количества обращений к методу
+ .КоличествоВызовов("ОтправитьОбъектНаСервер")
+ .Заполнено()
+ .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, ЛюбойПараметр))
+ .Равно(3)
+ // Проверка обращений с фильтром по типам параметров
+ .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр())) // Условия поиска вызовов
+ .Больше(1) // Проверки
+ .Равно(2)
+ .КоличествоВызовов("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр()))
+ .Равно(2)
+ // Проверка обращений к методу с конкретными параметрами
+ .КоличествоВызовов("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(1, 2))
+ .Равно(1)
+ .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(1, 2))
+ .Равно(1)
+```
+
+Принцип формирования проверки:
+
+* Указываем проверяемый объект `Проверить(РаботаСHTTP)`.
+* Указываем условия поиска вызовов метода. Логика формирования условия такая же как при обучении.
+ Например, `КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, Мокито.ЧисловойПараметр()))`
+ Соберет все вызовы метода `РаботаСHTTP.ОтправитьОбъектНаСервер`, к которых вторым параметром идет число, а 3й и последующий параметры имеют значения по умолчанию.
+* Проверяем собранные вызовы:
+ * [`Заполнено`](/api/МокитоПроверки#заполнено) - есть вызовы метода по указанным условиям
+ * [`Пусто`](/api/МокитоПроверки#пусто) - нет вызовов метода по указанным условиям
+ * [`Равно`](/api/МокитоПроверки#равно) - количество вызовов попавших под условия равно указанному значению
+ * [`Больше`](/api/МокитоПроверки#больше) - количество вызовов попавших под условия больше указанного значения
+ * [`Меньше`](/api/МокитоПроверки#меньше) - количество вызовов попавших под условия меньше указанного значения
+
+#### Статистика вызовов
+
+Также вы можете более детально проанализировать вызовы методов
+
+Для этого можно воспользоваться методом [`Мокито.Проверить(Объект).Вызовы`](/api/МокитоПроверки#вызовы), который возвращает массив с описанием вызовов:
+
+* `Объект` - `Произвольный` - Объект, которому принадлежит метод
+* `ИмяМетода` - `Строка` - Имя вызванного метода
+* `Параметры` - `Массив` из Произвольный - Набор параметров, с которыми был вызван метод
+* `Контекст` - `Строка` - Контекст вызова метода (не реализовано)
+
+```bsl
+ВызовыМетода = Мокито.Проверить(Интеграция).Вызовы("ВыполнитьЗапрос");
+ЮТест.ОжидаетЧто(ВызовыМетода, "Вызовы метода ВыполнитьЗапрос")
+ .ИмеетТип("Массив")
+ .ИмеетДлину(3)
+ .КаждыйЭлементСодержитСвойствоСоЗначением("Объект", Интеграция)
+ .КаждыйЭлементСодержитСвойствоСоЗначением("ИмяМетода", "ВыполнитьЗапрос")
+ .КаждыйЭлементСодержитСвойство("Параметры")
+ .Свойство("[0].Параметры[0]").Равно("Адрес")
+ .Свойство("[1].Параметры[0]").Равно(Адрес)
+ .Свойство("[2].Параметры[1]").Равно(2);
+```
+
+## Примеры
+
+### Вызвать исключение при записи объекта
+
+#### Шаг1. Добавляем метод в расширение
+
+Заимствуем в расширение метод `ПередЗаписью`, если обработчик в модуле объекта отсутствует вы все равно можете подписаться таким образом на обработку события. И вставляем код для работы Мокито.
+
+```bsl
+&Вместо("ПередЗаписью")
+Процедура Мок_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
+
+ ПараметрыМетода = Мокито.МассивПараметров(Отказ, РежимЗаписи, РежимПроведения);
+
+ ПрерватьВыполнение = Ложь;
+ МокитоПерехват.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение);
+
+ Если НЕ ПрерватьВыполнение Тогда
+ ПродолжитьВызов(Отказ, РежимЗаписи, РежимПроведения);
+ КонецЕсли;
+
+КонецПроцедуры
+```
+
+#### Шаг2. Настройка теста
+
+После этого вы можете управлять обработкой события в тесте.
+
+```bsl
+Мокито.Обучение(Документы.Оплата)
+ .Когда("ПередЗаписью").ВыброситьИсключение("Не удалось записать объект")
+ .Прогон();
+
+Документ = СоздатьДокументОплаты();
+
+ЮТест.ОжидаетЧто(Документ)
+ .Метод("Записать").Параметр(РежимЗаписиДокумента.Проведение)
+ .ВыбрасываетИсключение("Не удалось записать объект");
+;
+```
+
+### Анализ вызовов метода
+
+Предположим у нас есть методы синхронизация данных базы с внешней системой и нам необходимо проверить корректность создания/удаления/изменеиня данных. В общем модуле интеграции созданы методы `СоздатьОбъект`, `УдалитьОбъект`, `ОбновитьОбъект`.
+
+В тесте мы будем формировать различные входные данные и считать вызовы этих методов, проверять чтобы не было лишних вызовов.
+
+#### Шаг1. Добавление методов в расширение
+
+Сначала необходимо выполнить заимствование и настройку методов `СоздатьОбъект`, `УдалитьОбъект`, `ОбновитьОбъект`.
+
+#### Шаг2. Настраиваем мокито
+
+```bsl
+Мокито.Обучение(СуперИнтеграция)
+ .Наблюдать("СоздатьОбъект")
+ .Наблюдать("УдалитьОбъект")
+ .Наблюдать("ОбновитьОбъект")
+ .Прогон();
+```
+
+#### Шаг3. Реализация теста
+
+```bsl
+ЗаписатьНачальныеДанные(); // Установим начальное состояние базы, создадим нужные данные
+
+// Настроим ответы сервиса, под наши кейсы
+Мокито.Обучение(СуперИнтеграция, Ложь) // Важно!. Передаем Ложь, чтобы не затереть ранее установленные настройки
+ .Когда("ПолучитьДанные")
+ .Вернуть(ОтветСервисаНовыйЭлемент()) // 1й вызов
+ .Вернуть(ОтветСервисаИзмененЭлемент()) // 2й вызов
+ .Вернуть(ОтветСервисаУдаленЭлемент()) // 3й вызов
+ .Вернуть(ОтветСервисаОшибка()) // 4й вызов
+ .Вернуть(ОтветСервисаНетДанных()); // 5й вызов
+
+Описание = "Первая итерация, новый элемент";
+Мокито.Прогон();
+СуперИнтеграция.ВыполнитьСинхронизацию();
+
+Мокито.Проверить(СуперИнтеграция, Описание)
+ .КоличествоВызовов("СоздатьОбъект").Равно(1)
+ .КоличествоВызовов("УдалитьОбъект").Пусто()
+ .КоличествоВызовов("ОбновитьОбъект").Пусто();
+
+Описание = "Вторая итерация, изменен элемент";
+Мокито.Прогон(); // Важно!. Повторно вызываем метод, чтобы сбросить ранее накопленную статистику
+СуперИнтеграция.ВыполнитьСинхронизацию();
+
+Мокито.Проверить(СуперИнтеграция, Описание)
+ .КоличествоВызовов("СоздатьОбъект").Пусто()
+ .КоличествоВызовов("УдалитьОбъект").Пусто()
+ .КоличествоВызовов("ОбновитьОбъект").Равно(1);
+
+Описание = "Третья итерация, удален элемент";
+Мокито.Прогон(); // Важно!. Повторно вызываем метод, чтобы сбросить ранее накопленную статистику
+СуперИнтеграция.ВыполнитьСинхронизацию();
+
+Мокито.Проверить(СуперИнтеграция, Описание)
+ .КоличествоВызовов("СоздатьОбъект").Пусто()
+ .КоличествоВызовов("УдалитьОбъект").Равно(1)
+ .КоличествоВызовов("ОбновитьОбъект").Пусто();
+
+// И так далее
+```
diff --git a/documentation/docs/features/predicates.md b/documentation/docs/features/predicates.md
new file mode 100644
index 000000000..21246eb8c
--- /dev/null
+++ b/documentation/docs/features/predicates.md
@@ -0,0 +1,228 @@
+---
+tags: [Начало, Предикаты, Утверждения, Запросы, Мокирование]
+sidebar_position: 4
+---
+
+# Предикаты
+
+Предикаты это довольно мощный и универсальный инструмент. С помощью предикатов вы формируете набор условий, сродни отбору. Который можно использовать:
+
+1. В утверждениях для [проверки коллекций](assertions/assertions-base.md#проверка-на-соответствие-набору-условий-предикату)
+2. В утверждениях для [проверки записей базы](assertions/assertions-db)
+3. Для [получения данных базы](auxiliary-modules/queries.md)
+4. Для указания условий при [обучении Мокито](mocking/mockito.md#параметры)
+
+Предикаты расширяют и унифицируют функциональность тестового движка.
+
+Механизм предикатов ([ЮТест.Предикат](/api/ЮТест#предикат)):
+
+* позволяет формировать наборы условий (отборы) и передавать их в качества параметров;
+* построен по модели [текучих выражений](/docs/getting-started/fluent-api.md) и имеет схожий с базовыми утверждениями синтаксис ([`ЮТест.ОжидаетЧто()`](/api/ЮТУтверждения));
+* позволяет упростить и унифицировать многие механизмы движка, некоторые еще только в планах;
+* за счет этого, расширение функциональности предикатов автоматические расширяет функциональность многих механизмов движка.
+
+Чтобы воспользоваться предикатами, вам нужно сначала создать их с помощью конструктора [ЮТест.Предикат](/api/ЮТест#предикат), а затем передать в метод.
+
+Например, нам нужно проверить формирование записей в регистре.
+
+```bsl
+Процедура АктуализацияУведомлений() Экспорт
+
+ // Тест удостовериться в отсутствии нужных записей перед вызовом метода
+ // Вызовет метод формирующий записи в регистре
+ // Проверит наличие сформированных записей
+ // А также проверит записи на соответствие требований
+
+ ИмяРегистра = "РегистрСведений.ОповещенияПользователя";
+ Объект = ТестовыеДанные.Объект();
+
+ // Для этого мы формируем отбор поиска записей
+ Отбор = ЮТест.Предикат()
+ .Реквизит("Источник").Равно(Объект)
+ .Реквизит("ТипОповещения").Равно(Справочники.ТипыОповещенийПользователя.Уведомление)
+ .Получить();
+
+ // По этому отбору проверим отсутствие нужных записей
+ ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра)
+ .НеСодержитЗаписи(Отбор);
+
+ УведомленияВызовСервера.АктуализацияУведомлений();
+
+ // А после вызова метода - присутствие
+ ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра)
+ .СодержитЗаписи(Отбор);
+
+ // Также получим сами записи используя тот же отбор
+ ДанныеУведомления = ЮТЗапросы.Запись(ИмяРегистра, Отбор);
+
+ ЮТест.ОжидаетЧто(ДанныеУведомления)
+ .Свойство("Прочитано").ЭтоЛожь()
+ .Свойство("Пользователь").Равно(Справочники.ГруппыОповещенийПользователей.Инженер);
+
+КонецПроцедуры
+```
+
+## Возможности
+
+* Проверка вложенных свойств:
+ * [`Реквизит`](/api/ЮТПредикаты#реквизит) - Устанавливает имя реквизита, который необходимо проверить. Все последующие проверки будут относится к нему.
+ * [`Свойство`](/api/ЮТПредикаты#свойство) - Это алиас (псевдоним) для `Реквизит`
+* Проверки
+ * [`Равно`](/api/ЮТПредикаты#равно) - Добавляет предикат, проверяющий равенство объекта (свойства) указанному значению
+ * [`НеРавно`](/api/ЮТПредикаты#неравно) - Добавляет предикат, проверяющий не равенство объекта (свойства) указанному значению
+ * [`Заполнено`](/api/ЮТПредикаты#заполнено) - Добавляет предикат, проверяющий заполненность объекта (свойства)
+ * [`Пусто`](/api/ЮТПредикаты#пусто) - Добавляет предикат, проверяющий, что объект (свойств) не заполнено
+ * [`Больше`](/api/ЮТПредикаты#больше) - Добавляет предикат, проверяющий, что значение объекта (свойства) больше указанного
+ * [`БольшеИлиРавно`](/api/ЮТПредикаты#большеилиравно) - Добавляет предикат, проверяющий, что значение объекта (свойства) больше или равно указанному
+ * [`Меньше`](/api/ЮТПредикаты#меньше) - Добавляет предикат, проверяющий, что значение объекта (свойства) меньше указанного
+ * [`МеньшеИлиРавно`](/api/ЮТПредикаты#меньшеилиравно) - Добавляет предикат, проверяющий, что значение объекта (свойства) меньше или равно указанному
+ * [`ИмеетТип`](/api/ЮТПредикаты#имееттип) - Добавляет предикат, проверяющий, что значение объекта (свойства) имеет указанный тип
+ * [`ИмеетТипОтличныйОт`](/api/ЮТПредикаты#имееттипотличныйот) - Добавляет предикат, проверяющий, что значение объекта (свойства) имеет тип отличный от указанного
+ * [`ИмеетДлину`](/api/ЮТПредикаты#имеетдлину) - Добавляет предикат, проверяющий, длину/размер значение объекта (свойства) на равенство указанному значению
+ * [`ИмеетДлинуОтличнуюОт`](/api/ЮТПредикаты#имеетдлинуотличнуюот) - Добавляет предикат, проверяющий, длину/размер значение объекта (свойства) на не равенство указанному значению
+ * [`ИмеетСвойство`](/api/ЮТПредикаты#имеетсвойство) - Добавляет предикат, проверяющий, что значение объекта (реквизита) содержит вложенное свойство
+ * [`НеИмеетСвойства`](/api/ЮТПредикаты#неимеетсвойства) - Добавляет предикат, проверяющий, что значение объекта (реквизита) не содержит вложенное свойство
+ * [`Содержит`](/api/ЮТПредикаты#содержит) - Добавляет предикат, проверяющий, что значение объекта (реквизита) содержит указанное значение
+ * [`НеСодержит`](/api/ЮТПредикаты#несодержит) - Добавляет предикат, проверяющий, что значение объекта (реквизита) не содержит указанное значение
+ * [`СодержитСтрокуПоШаблону`](/api/ЮТПредикаты#содержитстрокупошаблону) - Добавляет предикат, проверяющий, что строка соответствует указанному регулярному выражению
+ * [`НеСодержитСтрокуПоШаблону`](/api/ЮТПредикаты#несодержитстрокупошаблону) - Добавляет предикат, проверяющий, что строка не соответствует указанному регулярному выражению
+ * [`ВСписке`](/api/ЮТПредикаты#всписке) - Добавляет условие, что проверяемое значение (или значение его свойства) входит в список значений
+* Служебные
+ * [`Получить`](/api/ЮТПредикаты#получить) - Возвращает набор сформированных утверждений.
+ Рекомендуется использовать этот метод, если планируется отложенная проверка предикатов. Например, вы хотите сформировать два набору предикатов и проверять их в зависимости от условия.
+ Метод копирует настроенный набор утверждений в массив и возвращает его, таким образом сохраняется состояние, которое можно передавать дальше.
+
+Возможно создавать предикаты на основании структуры - `ЮТест.Предикат(Структура)`, например:
+
+```bsl
+// Вместо
+Предикат = ЮТест.Предикат()
+ .Свойство("Наименование").Равно(НаименованиеОбъекта)
+ .Свойство("Код").Равно(КодОбъекта);
+
+// Можно использовать структур
+Условия = Новый Структура("Наименование, Код", НаименованиеОбъекта, КодОбъекта);
+Предикат = ЮТест.Предикат(Условия);
+```
+
+## Примеры использования
+
+* Проверка коллекции
+ ```bsl
+ // Проверят, что в коллекции есть элементы с реквизитом `Число`, значение которого равно `2`
+ ЮТест.ОжидаетЧто(Коллекция)
+ .ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
+ .Реквизит("Число").Равно(2));
+
+ // Тоже самое, что и проверка выше
+ ЮТест.ОжидаетЧто(Коллекция)
+ .Содержит(ЮТест.Предикат()
+ .Реквизит("Число").Равно(2));
+
+ // Проверят, что каждый элемент коллекции это заполненный массив
+ ЮТест.ОжидаетЧто(Коллекция)
+ .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
+ .Заполнено().ИмеетТип("Массив"));
+
+ // Проверят, что в коллекции нет элементов с реквизитом `Число`, значение которого равно `2`
+ ЮТест.ОжидаетЧто(Коллекция)
+ .НеСодержит(ЮТест.Предикат()
+ .Реквизит("Число").Равно(2));
+ ```
+* Описания параметров метода при мокировании
+ Например, имеем метод, который принимает в параметрах структуру. Необходимо вернуть 2 разных результата в зависимости от значения реквизита входной структуры.
+ ```bsl title="Проверяемый метод"
+ Функция Посчитать(Параметры)
+ Если Параметры.Оператор = "Сложить" Тогда
+ Возврат Параметры.Операнд1 + Параметры.Операнд2;
+ ИначеЕсли Параметры.Оператор = "Вычесть" Тогда
+ Возврат Параметры.Операнд1 - Параметры.Операнд2;
+ КонецЕсли;
+ КонецФункции
+ ```
+ ```bsl title="Тест"
+ Мокито.Обучение(Модуль)
+ .Когда(Модуль.Посчитать(ЮТест.Предикат()
+ .Реквизит("Оператор").Равно("Сложить")))
+ .ВернутьРезультат(Результат1)
+
+ .Когда(Модуль.Посчитать(ЮТест.Предикат()
+ .Реквизит("Оператор").Равно("Вычесть")))
+ .ВернутьРезультат(Результат2);
+ ```
+* Утверждения, проверяющие данные в базе на основании предикатов.
+ ```bsl
+ ЮТест.ОжидаетЧтоТаблица("Справочник.Товары").СодержитЗаписи(
+ ЮТест.Предикат()
+ .Реквизит("Наименование").Равно("Товар 1")
+ .Реквизит("Ссылка").НеРавно(Исключение)
+ );
+ ```
+* Получение записей из базы
+ ```bsl
+ ДанныеТовара = ЮТЗапросы.Запись("Справочник.Товары", ЮТест.Предикат()
+ .Реквизит("Наименование").Равно("Товар 1")
+ .Реквизит("Ссылка").НеРавно(Исключение));
+ ```
+
+## Особенности
+
+### Особенности контекста
+
+Предикаты как и большинство механизмов построены на [текучих выражениях](/docs/getting-started/fluent-api.md) с сохранением состояния в глобальном [контексте](context.md).
+
+Это приводит к тому, что вы не можете сразу использовать несколько предикатов, например
+
+```bsl
+Мокито.Обучение(Модуль)
+ .Когда(Модуль.СделатьЧтоТо(
+ ЮТест.Предикат().ИмеетТип("Строка"),
+ ЮТест.Предикат().ИмеетТип("Число")))
+ .ВернутьРезультат(Результат1);
+```
+
+В этом примере 1С сначала вычислит выражения для всех параметров, а потом передаст их в метод и мы получим для обоих параметров один и тот же предикат, ожидающий тип `Число`.
+
+А все потому, что методы настройки предиката возвращают общий модуль-конструктор. Таким образом оба параметра будут иметь одно и тоже значение - общий модуль `ЮТПредикаты`, который вернет одну и туже настройку (из глобального контекста).
+Можно переписать настройку мокито, для большей наглядности, с использованием переменных:
+
+```bsl
+Параметр1 = ЮТест.Предикат().ИмеетТип("Строка"); // Параметр1 = ОбщийМодуль.ЮТПредикаты
+Параметр2 = ЮТест.Предикат().ИмеетТип("Число"); // Параметр2 = ОбщийМодуль.ЮТПредикаты
+
+ЮТест.ОжидаетЧто(Параметр1).Равно(Параметр2); // Это утверждение будет успешным
+
+Мокито.Обучение(Модуль)
+ .Когда(Модуль.СделатьЧтоТо(Параметр1, Параметр2))
+ .ВернутьРезультат(Результат1);
+```
+
+Для обхода этой проблемы можно использовать метод `Получить`, который возвращает текущее состояние (настройки) из конструктора и передает его в параметр метода.
+
+```bsl
+Мокито.Обучение(Модуль)
+ .Когда(Модуль.СделатьЧтоТо(
+ ЮТест.Предикат().ИмеетТип("Строка").Получить(),
+ ЮТест.Предикат().ИмеетТип("Число")))
+ .ВернутьРезультат(Результат1);
+```
+
+Такая же история при сохранение предикатов в переменные.
+
+```bsl
+ПроверкаСтрока = ЮТест.Предикат().ИмеетТип("Строка");
+ПроверкаЧисло = ЮТест.Предикат().ИмеетТип("Число");
+```
+
+`ПроверкаСтрока` и `ПроверкаЧисло` будут равны и содержать одинаковые условия. Проблему также можно обойти используя метод `Получить`.
+
+```bsl
+ПроверкаСтрока = ЮТест.Предикат().ИмеетТип("Строка").Получить();
+ПроверкаЧисло = ЮТест.Предикат().ИмеетТип("Число").Получить();
+```
+
+### Особенности реализации
+
+Сам модуль предикатов используется только для формирования набора утверждений/условий.
+
+За применение их в разных механизмах, реализацией проверок и формированием условий, отвечают другие модули и возможна ситуация, когда некоторые предикаты еще не реализованы или не поддерживаются каким-либо механизмом. Например, проверка заполненности не поддерживается запросами.
diff --git a/documentation/docs/reports.md b/documentation/docs/features/reports.md
similarity index 50%
rename from documentation/docs/reports.md
rename to documentation/docs/features/reports.md
index 75b1e5eed..633bdb648 100644
--- a/documentation/docs/reports.md
+++ b/documentation/docs/features/reports.md
@@ -3,11 +3,17 @@ sidebar_position: 9
tags: [Начало]
---
-# Форматы отчетов о тестировании
+# Отчеты о тестировании
-YAxUnit поддерживает генерацию отчетов в форматах `JUnit` и `Allure`.
+Важным этапом тестирования является формирование удобного и информативного отчета. YAxUnit предоставляет возможность работать с различными видами отчетов.
-Указать необходимый формат вы может в [параметрах запуска](run/configuration), либо в [форме настроек](yaxunit-ui#интерфейс-настройки-конфигурации).
+* Отчет в формате JUnit - используется при разработке тестов в EDT, позволяет быстро увидеть результат тестирования прямов в IDE, позволяет переходить по стеку ошибок и сравнивать фактическое и ожидаемое значение.
+* Отчет в формате Allure - чаще всего применяется в CI, имеет богатую функциональность: фильтрация, различные группировки, история и статистика.
+* Отчет в режиме 1С:Предприятия - удобен если вы не используете (или не можете использовать) по какой-либо причине EDT.
+
+![reports](images/reports.png)
+
+Указать необходимый формат вы может в [параметрах запуска](../getting-started/run/configuration), либо в [форме настроек](../yaxunit-ui#интерфейс-настройки-конфигурации).
По умолчанию используется формат `JUnit`.
## Формат `JUnit`
@@ -24,4 +30,4 @@ YAxUnit поддерживает генерацию отчетов в форма
Группировка по функциональности
-![Группировка по функциональности](images/allure-report-behaviors.png)
\ No newline at end of file
+![Группировка по функциональности](images/allure-report-behaviors.png)
diff --git a/documentation/docs/features/test-data/data-generation.md b/documentation/docs/features/test-data/data-generation.md
new file mode 100644
index 000000000..fd8d6146e
--- /dev/null
+++ b/documentation/docs/features/test-data/data-generation.md
@@ -0,0 +1,306 @@
+---
+tags: [Начало, Тестовые данные]
+sidebar_position: 1
+---
+
+# Программное создание тестовых данных
+
+Доступ к методам генерации тестовых реализован через [`ЮТест.Данные()`](/api/ЮТест#данные), этот метод возвращает общий модуль [`ЮТТестовыеДанные`](/api/ЮТТестовыеДанные).
+
+:::tip
+Не рекомендуется обращаться к модулю `ЮТТестовыеДанные` напрямую, используйте `ЮТест.Данные()`
+:::
+
+## Возможности
+
+Инструменты работы с тестовыми данными можно разделить на следующие группы:
+
+* Генераторы случайных значений
+* Методы создания данных в информационной базе
+* Методы загрузки из макетов
+* Работа с файлами
+
+### Генераторы случайных данных
+
+Как уже говорилось в [статье](test-data.md) в YAxUnit сделан большой упор на генерацию случайных тестовых данных, которая позволяет улучшить покрытие и сократить количество "лишнего" кода. Поставив в самом начале на такой подход мы еще ни разу в нем не разочаровались.
+
+Создание случайных данных базируется на генерации примитивных значения:
+
+* Числа
+ * [`ЮТест.Данные().СлучайноеЧисло`](/api/ЮТТестовыеДанные#случайноечисло) - Формирует случайное число в указанном диапазоне
+ * [`ЮТест.Данные().СлучайноеПоложительноеЧисло`](/api/ЮТТестовыеДанные#случайноеположительноечисло) - Формирует случайное положительное число ограниченное максимумом
+ * [`ЮТест.Данные().СлучайноеОтрицательноеЧисло`](/api/ЮТТестовыеДанные#случайноеотрицательноечисло) - Формирует случайное отрицательное число ограниченное минимумом
+* Строки
+ * [`ЮТест.Данные().СлучайнаяСтрока`](/api/ЮТТестовыеДанные#случайнаястрока) - Формирует случайную строку указанной длины
+ * [`ЮТест.Данные().СлучайныйИдентификатор`](/api/ЮТТестовыеДанные#случайныйидентификатор) - Формирует случайный валидный идентификатор (Первым символом должна быть буква или символ подчеркивания, каждый из последующих символов может быть буквой, цифрой или символом подчеркивания)
+ * [`ЮТест.Данные().СлучайныйIPАдрес`](/api/ЮТТестовыеДанные#случайныйipадрес) - Формирует случайный IP адрес
+ * [`ЮТест.Данные().СлучайныйНомерТелефона`](/api/ЮТТестовыеДанные#случайныйномертелефона) - Формирует случайный номер телефона
+ * [`ЮТест.Данные().УникальнаяСтрока`](/api/ЮТТестовыеДанные#уникальнаястрока) - Создает строку на базе нового уникального идентификатора
+* Даты
+ * [`ЮТест.Данные().СлучайнаяДата`](/api/ЮТТестовыеДанные#случайнаядата) - Формирует случайную дату в указанном диапазоне
+ * [`ЮТест.Данные().СлучайноеВремя`](/api/ЮТТестовыеДанные#случайноевремя) - Формирует случайное время
+ * [`ЮТест.Данные().СлучайнаяДатаВБудущем`](/api/ЮТТестовыеДанные#случайнаядатавбудущем) - Формирует случайную дату в будущем (больше текущей) с возможностью ограничить максимальное значение.
+ Пример: `СлучайнаяДатаВБудущем(2, "часа")` - будет сформирована дата в интервале (ТекущаяДата, ТекущаяДата + 2 часа]
+ * [`ЮТест.Данные().СлучайнаяДатаВПрошлом`](/api/ЮТТестовыеДанные#случайнаядатавпрошлом) - Формирует случайную дату в прошлом (меньше текущей) с возможностью ограничить минимальное значение.
+ Пример: `СлучайнаяДатаВПрошлом(2, "часа")` - будет сформирована дата в интервале [ТекущаяДата - 2 часа, ТекущаяДата)
+ * [`ЮТест.Данные().СлучайнаяДатаПосле`](/api/ЮТТестовыеДанные#случайнаядатапосле) - Формирует случайную дату, которая больше указанной с возможностью ограничить максимальное значение.
+ Пример: `СлучайнаяДатаПосле(Дата, 2, "часа")` - будет сформирована дата в интервале (Дата, Дата + 2 часа]
+ * [`ЮТест.Данные().СлучайнаяДатаДо`](/api/ЮТТестовыеДанные#случайнаядатадо) - Формирует случайную дату, которая меньше указанной с возможностью ограничить минимальное значение.
+ Пример: `СлучайнаяДатаДо(Дата, 2, "часа")` - будет сформирована дата в интервале [Дата - 2 часа, Дата)
+* Булево
+ * [`ЮТест.Данные().СлучайноеБулево`](/api/ЮТТестовыеДанные#случайноебулево) - Возвращает случайное булево
+* Получение случайного из предопределенного списка
+ * [`ЮТест.Данные().СлучайноеЗначениеИзСписка`](/api/ЮТТестовыеДанные#случайноезначениеизсписка) - Возвращает случайное значение из указанного списка
+
+ ```bsl
+ ВозможныеЗначения = ЮТКоллекции.ЗначениеВМассиве(-1, 0, 1);
+ Возврат ЮТест.Данные().СлучайноеЗначениеИзСписка(ВозможныеЗначения);
+ ```
+
+ * [`ЮТест.Данные().СлучайноеЗначениеПеречисления`](/api/ЮТТестовыеДанные#случайноезначениеперечисления) - Возвращает случайное значение перечисления
+ Примеры:
+
+ ```bsl
+ Цена = ЮТест.Данные().СлучайноеЗначениеПеречисления(Перечисления.ВидыЦен); // Можно получить значение через указание менеджера
+ Цена = ЮТест.Данные().СлучайноеЗначениеПеречисления("Перечисление.ВидыЦен"); // Или имя объекта метаданных (подходит для работы с клиента)
+ ```
+
+ * [`ЮТест.Данные().СлучайноеПредопределенноеЗначение`](/api/ЮТТестовыеДанные#случайноепредопределенноезначение) - Возвращает случайное предопределенное значение
+ Примеры:
+
+ ```bsl
+ Цена = ЮТест.Данные().СлучайноеПредопределенноеЗначение(Справочники.ВидыЦен); // Можно получить значение через указание менеджера
+ Цена = ЮТест.Данные().СлучайноеПредопределенноеЗначение("Справочник.ВидыЦен"); // Или имя объекта метаданных (подходит для работы с клиента)
+ ```
+
+* [`ЮТест.Данные().Подражатель`](/api/ЮТТестовыеДанные#подражатель) - генератор правдоподобных данных. Генерирует случайные данные на базе словарей, является реализацией [faker](https://github.com/faker-js/faker) для 1С.
+ * [`ЮТест.Данные().Подражатель().Люди`](/api/ЮТПодражатель#люди)
+ * [`ФИО`](/api/ЮТПодражатель_Люди#фио) - Формирует случайное ФИО
+ * [`Фамилия`](/api/ЮТПодражатель_Люди#фамилия) - Формирует случайную фамилию
+ * [`Имя`](/api/ЮТПодражатель_Люди#имя) - Формирует случайное имя
+ * [`Отчество`](/api/ЮТПодражатель_Люди#отчество) - Формирует случайное отчество
+ * [`ИНН`](/api/ЮТПодражатель_Люди#инн) - Формирует случайный ИНН
+ * [`СНИЛС`](/api/ЮТПодражатель_Люди#снилс) - Формирует случайный СНИЛС
+ * [`ЮТест.Данные().Подражатель().Компании`](/api/ЮТПодражатель#компании)
+ * [`Наименование`](/api/ЮТПодражатель_Компании#наименование) - Формирует случайное наименование компании
+ * [`ИНН`](/api/ЮТПодражатель_Компании#инн) - Формирует случайный ИНН компании
+ * [`КПП`](/api/ЮТПодражатель_Компании#кпп) - Формирует случайный КПП компании
+ * [`ЮТест.Данные().Подражатель().Банки`](/api/ЮТПодражатель#банки)
+ * [`НомерСчета`](/api/ЮТПодражатель_Банки#номерсчета) - Формирует случайный номер банковского счета
+ * [`БИК`](/api/ЮТПодражатель_Банки#бик) - Формирует случайный валидный БИК банка
+
+### Методы создания данных в информационной базе
+
+* Создание пустышек - примитивных объектов с минимальным заполнения. Полезно использовать когда вам нужна ссылка определенного типа, но не важно ее заполнение
+ * [`ЮТест.Данные().СоздатьЭлемент`](/api/ЮТТестовыеДанные#создатьэлемент) - Создает новый элемент справочника или плана видов характеристик
+
+ ```bsl
+ Товар = ЮТест.Данные().СоздатьЭлемент(Справочники.Товары); // На основании менеджера
+ Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары"); // На основании имени менеджера
+
+ ПараметрыЗаписи = ЮТФабрика.ПараметрыЗаписи();
+ ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина;
+ Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары", , , ПараметрыЗаписи); // Запись в режиме ОбменДанными.Загрузка = Истина
+ ```
+
+ * [`ЮТест.Данные().СоздатьДокумент`](/api/ЮТТестовыеДанные#создатьдокумент) - Создает новый документ
+
+ ```bsl
+ Товар = ЮТест.Данные().СоздатьДокумент(Документ.ПриходТовара); // На основании менеджера
+ Товар = ЮТест.Данные().СоздатьДокумент("Документ.ПриходТовара"); // На основании имени менеджера
+ ```
+
+ * [`ЮТест.Данные().СоздатьГруппу`](/api/ЮТТестовыеДанные#создатьгруппу) - Создает новую группу справочника или плана видов характеристик
+
+ ```bsl
+ Товар = ЮТест.Данные().СоздатьГруппу(Документ.ПриходТовара); // На основании менеджера
+ Товар = ЮТест.Данные().СоздатьГруппу("Документ.ПриходТовара"); // На основании имени менеджера
+ ```
+
+ * [`ЮТест.Данные().Фикция`](/api/ЮТТестовыеДанные#фикция) - Создает новый объект на основании его типа
+
+ ```bsl
+ Товар = ЮТест.Данные().Фикция(Тип("ДокументСсылка.ПриходТовара"));
+ Товар = ЮТест.Данные().Фикция(Новый ОписаниеТипов("ДокументСсылка.ПриходТовара"));
+ Товар = ЮТест.Данные().Фикция(Новый ОписаниеТипов("ДокументСсылка.ПриходТовара, ДокументСсылка.РасходТовара")); // Будет выбран случайный тип
+ ```
+
+* [`ЮТест.Данные().КонструкторОбъекта`](/api/ЮТТестовыеДанные#конструкторобъекта), с помощью которого вы можете создать объект информационной базы с необходимыми реквизитами.
+ Конструктор позволяет:
+ * В более компактной форме заполнять объект
+ * Имеет методы записи и проведения
+ * При возникновении ошибки оборачивает их в более понятные человеку описания
+ * Киллер фича - `Фикция` и `ФикцияОбязательныхПолей`. Устанавливает случайно сгенерированные значения реквизитов. Таким образом делается акцент на важных для теста реквизитах и экономит "строки" на генерацию ненужных значений
+ * Умеет создавать данные с клиента и [удалять их по окончании теста](test-data-deletion.md)
+
+ ```bsl
+ Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара")
+ .Фикция("Поставщик")
+ .Фикция("Склад")
+ .ФикцияОбязательныхПолей()
+ .ТабличнаяЧасть("Товары");
+
+ ОбщиеДанные = Новый Структура("ВидЦены, Поставщик", Закупочная, Конструктор.ДанныеОбъекта().Поставщик);
+
+ Для Инд = 1 По 3 Цикл
+ Конструктор.ДобавитьСтроку()
+ .Фикция("Товар")
+ .УстановитьРеквизиты(ОбщиеДанные)
+ .Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2))
+ .Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20))
+ .Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество)
+ КонецЦикла;
+
+ Возврат Конструктор.Провести();
+ ```
+
+### Загрузка данных из макетов
+
+Работа с макетами описана в отдельной [статье](load-from-templates.md)
+
+### Работа с файлами
+
+* [`ЮТест.Данные().НовыйФайл`](/api/ЮТТестовыеДанные#новыйфайл) - Создает новый файл, который будет удален после теста
+* [`ЮТест.Данные().НовоеИмяВременногоФайла`](/api/ЮТТестовыеДанные#новоеимявременногофайла) - Возвращает имя нового файла, по окончании выполнения теста этот файл будет удален
+
+### Создание XDTO
+
+При тестировании обменов или интеграций использующих SOAP вам может пригодится [`ЮТест.Данные().КонструкторОбъектаXDTO`](/api/ЮТТестовыеДанные#конструкторобъектаxdto), с помощью которого вы можете с легкостью создать XDTO объект.
+
+```bsl
+Тип = СериализаторXDTO.XMLТип(Тип("ДокументОбъект.Заказ"));
+
+Дата = ЮТест.Данные().СлучайнаяДата();
+Номер = ЮТест.Данные().СлучайнаяСтрока(9);
+Сумма = ЮТест.Данные().СлучайноеЧисло();
+Реквизиты = Новый Структура("Number, Сумма", Номер, Сумма);
+
+Объект = ЮТест.Данные().КонструкторОбъектаXDTO(Тип.ИмяТипа, Тип.URIПространстваИмен)
+ .Установить("Date", Дата)
+ .ФикцияОбязательныхПолей()
+ .УстановитьРеквизиты(Реквизиты)
+ .Фикция("Покупатель")
+ .ДобавитьНовый("Товары")
+ .Фикция("Цена")
+ .Фикция("Количество")
+ .ДанныеОбъекта();
+```
+
+Он был создан на основании уже проверенного и зарекомендовавшего себя `ЮТест.Данные().КонструкторОбъекта` и обладает схожим API.
+
+* `Установить(ИмяРеквизита, Значение)` - Устанавливает значение указанного реквизита объекта.
+* `УстановитьРеквизиты(ЗначенияРеквизитов)` - Устанавливает значения реквизитов объекта.
+
+* `Фикция(ИмяРеквизита)` - на основании типа создаваемого объекта определяет тип реквизита и устанавливает для него случайное значение.
+ * Для примитивных значение генерируется случайное значение
+ * Для объектных типов создается новый объект
+ * Для коллекций - генерируется случайно количество случайных элементов (на основании типа)
+* `ФикцияОбязательныхПолей()` - на основании типа создаваемого объекта определяет список обязательных полей и для каждого из них вызывается метод `Фикция`.
+* `ФикцияНезаполненных()` - для всех незаполненных полей создаваемого объекта вызывает метод `Фикция`.
+* `ДобавитьНовый(ИмяРеквизита)` - Добавляет новый объект в указанную реквизит-коллекцию. Все последующие вызовы установки реквизитов будут относится к этому добавленному объекту.
+* `ПерейтиКВладельцу()` - используется после метода `ДобавитьНовый` для переключения контекста заполнения на родительский объект. Например вам необходимо добавить две строки в табличную часть.
+ ```bsl
+ Объект = ЮТест.Данные().КонструкторОбъектаXDTO(Тип.ИмяТипа, Тип.URIПространстваИмен)
+ .ДобавитьНовый("Товары")
+ .Фикция("Цена")
+ .Фикция("Количество")
+ .ПерейтиКВладельцу()
+ .ДобавитьНовый("Товары")
+ .Фикция("Цена")
+ .Фикция("Количество")
+ .ДанныеОбъекта();
+ ```
+ Здесь перед добавлением второй строки нужно переключится (`ПерейтиКВладельцу`) на основной объект и после этого можно добавить строку.
+* `ДанныеОбъекта()` - возвращает созданный объект XDTO.
+
+## Примеры
+
+### Генерация фейкового документа
+
+```bsl
+#Если Сервер Тогда
+ Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара);
+#Иначе
+ Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара");
+#КонецЕсли
+
+ Конструктор
+ .Фикция("Поставщик")
+ .Фикция("Склад")
+ .Фикция("Валюта")
+ .Установить("Организация", ЮТест.Данные().КонструкторОбъекта("Справочники.Организации").Установить("КакойТоТамУчет", Истина))
+ .ТабличнаяЧасть("Товары");
+
+ Для Инд1 = 1 По ЮТест.Данные().СлучайноеЧисло(1, 5) Цикл
+ Конструктор.ДобавитьСтроку()
+ .Фикция("Товар")
+ .Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2))
+ .Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20))
+ .Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество)
+ КонецЦикла;
+
+ Ссылка = Конструктор.Провести();
+```
+
+### Генерация произвольных фейковых данных
+
+```bsl
+Функция ОписаниеСервера(Знач Идентификатор = Неопределено) Экспорт
+
+ Описание = БазовоеОписаниеОбъекта(Идентификатор, "СРВ");
+
+ Описание.Вставить("Адрес", ЮТТестовыеДанные.СлучайныйIPАдрес());
+ Описание.Вставить("ЧастотаЯдра", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(4, 3));
+ Описание.Вставить("КоличествоЯдер", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(10));
+ Описание.Вставить("КоличествоПотоков", Описание.КоличествоЯдер * 2);
+ Описание.Вставить("ПроизводительностьПроцессора", Описание.ЧастотаЯдра * Описание.КоличествоЯдер);
+ Описание.Вставить("ОбъемПамяти", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(1024, 3));
+ Описание.Вставить("Диски", Новый Массив());
+ Описание.Вставить("Кластер");
+
+ Для Инд = 1 По ЮТТестовыеДанные.СлучайноеЧисло(1, 3) Цикл
+ Описание.Диски.Добавить(ОписаниеДиска());
+ КонецЦикла;
+
+ Возврат Описание;
+
+КонецФункции
+
+Функция ОписаниеЗаявкиНаСозданиеВМ() Экспорт
+
+ Описание = Новый Структура();
+
+ Описание.Вставить("Наименование", "req-" + ЮТТестовыеДанные.СлучайнаяСтрока());
+ Описание.Вставить("ДатаДобавления", глПолучитьМосковскоеВремя());
+ Описание.Вставить("ДатаОкончанияАренды", глДобавитьКДате(глПолучитьМосковскоеВремя(), "ДЕНЬ", 2));
+ Описание.Вставить("Адрес", ЮТТестовыеДанные.СлучайныйIPАдрес());
+
+ Описание.Вставить("Проект", Проект());
+ Описание.Вставить("Ментейнер", ПараметрыСеанса.Сотрудник);
+
+ Описание.Вставить("КоличествоCPU", ЮТТестовыеДанные.СлучайноеЧисло(1, 4));
+ Описание.Вставить("КоличествоПамяти", ЮТТестовыеДанные.СлучайноеЧисло(1, 16));
+ Описание.Вставить("КоличествоДисков", ЮТТестовыеДанные.СлучайноеЧисло(1, 16));
+ Описание.Вставить("ОперационнаяСистема", ЮТТестовыеДанные.СоздатьЭлемент(Справочники.ОперационныеСистемы));
+
+ Описание.Вставить("СредаЭксплуатации", "");
+ Описание.Вставить("Назначение", ЮТТестовыеДанные.СоздатьЭлемент(Справочники.НазначенияВиртуальныхМашин));
+ Описание.Вставить("ТипСреды", Справочники.ТипыИнформационныхСред.BETA);
+ Описание.Вставить("КодСервиса", ЮТТестовыеДанные.СлучайнаяСтрока(1));
+
+ Возврат Описание;
+
+КонецФункции
+
+Функция НовыйОбразDocker(Версия, ПоУмолчанию = Истина) Экспорт
+
+ Данные = Новый Структура("Адрес, ВерсияПлатформы, ТипПлатформы, ИспользоватьПоУмолчанию");
+ Данные.Адрес = "gitlab.ru/orais/ci_cd/1cws-apache24:" + Версия;
+ Данные.ВерсияПлатформы = Версия;
+ Данные.ТипПлатформы = Перечисления.ТипыСоединенияИсточникаДанных.Соединение1СПредприятие83Сервер;
+ Данные.ИспользоватьПоУмолчанию = ПоУмолчанию;
+
+ Возврат ЮТТестовыеДанные.СоздатьЭлемент(Справочники.ОбразыDocker, Версия, Данные);
+
+КонецФункции
+```
diff --git a/documentation/docs/features/test-data/data-manipulations.md b/documentation/docs/features/test-data/data-manipulations.md
new file mode 100644
index 000000000..d4ab387af
--- /dev/null
+++ b/documentation/docs/features/test-data/data-manipulations.md
@@ -0,0 +1,6 @@
+# Дополнительные методы работы с данными
+
+* [`ЮТест.Данные().Удалить`](/api/ЮТТестовыеДанные#удалить) - Выполняет удаление переданных записей из базы
+* [`ЮТест.Данные().УстановитьЗначениеРеквизита`](/api/ЮТТестовыеДанные#установитьзначениереквизита) - Устанавливает значение реквизита ссылки
+* [`ЮТест.Данные().УстановитьЗначенияРеквизитов`](/api/ЮТТестовыеДанные#установитьзначенияреквизитов) - Устанавливает значения реквизитов ссылки
+* [`ЮТЗапросы`](/api/ЮТЗапросы) - Расширяет возможности тестирования, позволяет в упрощенной форме получать данны из информационной базы как с сервера, так и с клиента.
diff --git a/documentation/docs/user-api/test-data/test-data.md b/documentation/docs/features/test-data/load-from-templates.md
similarity index 62%
rename from documentation/docs/user-api/test-data/test-data.md
rename to documentation/docs/features/test-data/load-from-templates.md
index fca9b6acc..d048011cd 100644
--- a/documentation/docs/user-api/test-data/test-data.md
+++ b/documentation/docs/features/test-data/load-from-templates.md
@@ -1,182 +1,13 @@
---
tags: [Начало, Тестовые данные]
+sidebar_position: 3
---
-# Тестовые данные
-Почти в каждом тесте разработчику необходимы данные, которые он будет использовать при тестировании: элементы справочников, документы, остатки и тд.
+# Загрузка данных из макетов
-Есть разные подходы к работе с тестовыми данными:
+## Описание
-1. Ручное наполнение тестовой базы (мы предварительно создаем все что необходимо для тестов в базе, а потом используем её для прогона тестов)
-2. Использование файлов с данными (макеты - сгенерированные в нужном формате файлы с описанием тестовых данных, загружаемые при выполнении тестов)
-3. Программное создание нужных данных внутри теста
-
-У каждого из вариантов есть свои плюсы и минусы, и при грамотной компоновке можно достичь наилучшего результата.
-
-Например:
-
-* Ручное наполнение базы не учитывает последующие доработки системы, нужна миграция на новые алгоритмы и структуру, и, если таких данных будет много, то миграция будет занимать большое время. А также в этом случае нам необходимо завязываться на конкретные записи в системе, и при их изменении тестом мы можем сломать другие тесты. Поэтому, предварительное наполнение базы должно быть минимальным.
-* В случае использования макетов данных возникают некоторые трудности с их доработкой и вариативностью, например, в новом тесте нужны данные из макета, но с некоторыми изменениями. В этом случае нам потребуется создавать новый макет или проверять, не сломают ли наши изменения другие тесты. Также при таком подходе сложно контролировать и искать какие макеты используются и кем.
-* Программное создание тестовых данных увеличивает время и сложность теста.
-
-Если грамотно распределить тестовые данные на способы создания, мы можем добиться оптимального результата.
-Например, можно статичные данные создать вручную, сложные кейсы данных засунуть в макеты, а для программного создания реализовать методы-конструкторы, которые будем переиспользовать. Таким образом, сможем уйти от минусов данного подхода или минимизировать их вред.
-
-В текущей версии тестовый движок предоставляет api для программного создания тестовых данных. За это отвечает общий модуль `ЮТТестовыеДанные`, к которому можно обратиться через метод `ЮТест.Данные()`.
-
-:::tip
-Не рекомендуется обращаться к модулю `ЮТТестовыеДанные` напрямую, используйте `ЮТест.Данные()`
-:::
-
-Он позволяет:
-
-* Создавать данные информационной базы
-* Генерировать случайные значения
-* Автоматически удалять созданные данные (для этого необходимо включить настройку теста `УдалениеТестовыхДанных()`)
-* Работать с файлами
-* Использовать таблицы markdown в качестве макетов данных
-* Генерировать таблицы значений из табличных документов и таблиц markdown
-
-## Примеры
-
-### Генерация фейкового документа
-
-```bsl
-#Если Сервер Тогда
- Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара);
-#Иначе
- Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара");
-#КонецЕсли
-
- Конструктор
- .Фикция("Поставщик")
- .Фикция("Склад")
- .Фикция("Валюта")
- .Установить("Организация", ЮТест.Данные().КонструкторОбъекта("Справочники.Организации").Установить("КакойТоТамУчет", Истина))
- .ТабличнаяЧасть("Товары");
-
- Для Инд1 = 1 По ЮТест.Данные().СлучайноеЧисло(1, 5) Цикл
- Конструктор.ДобавитьСтроку()
- .Фикция("Товар")
- .Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2))
- .Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20))
- .Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество)
- КонецЦикла;
-
- Ссылка = Конструктор.Провести();
-```
-
-### Генерация произвольных фейковых данных
-
-```bsl
-Функция ОписаниеСервера(Знач Идентификатор = Неопределено) Экспорт
-
- Описание = БазовоеОписаниеОбъекта(Идентификатор, "СРВ");
-
- Описание.Вставить("Адрес", ЮТТестовыеДанные.СлучайныйIPАдрес());
- Описание.Вставить("ЧастотаЯдра", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(4, 3));
- Описание.Вставить("КоличествоЯдер", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(10));
- Описание.Вставить("КоличествоПотоков", Описание.КоличествоЯдер * 2);
- Описание.Вставить("ПроизводительностьПроцессора", Описание.ЧастотаЯдра * Описание.КоличествоЯдер);
- Описание.Вставить("ОбъемПамяти", ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(1024, 3));
- Описание.Вставить("Диски", Новый Массив());
- Описание.Вставить("Кластер");
-
- Для Инд = 1 По ЮТТестовыеДанные.СлучайноеЧисло(1, 3) Цикл
- Описание.Диски.Добавить(ОписаниеДиска());
- КонецЦикла;
-
- Возврат Описание;
-
-КонецФункции
-
-Функция ОписаниеЗаявкиНаСозданиеВМ() Экспорт
-
- Описание = Новый Структура();
-
- Описание.Вставить("Наименование", "req-" + ЮТТестовыеДанные.СлучайнаяСтрока());
- Описание.Вставить("ДатаДобавления", глПолучитьМосковскоеВремя());
- Описание.Вставить("ДатаОкончанияАренды", глДобавитьКДате(глПолучитьМосковскоеВремя(), "ДЕНЬ", 2));
- Описание.Вставить("Адрес", ЮТТестовыеДанные.СлучайныйIPАдрес());
-
- Описание.Вставить("Проект", Проект());
- Описание.Вставить("Мейнтейнер", ПараметрыСеанса.Сотрудник);
-
- Описание.Вставить("КоличествоCPU", ЮТТестовыеДанные.СлучайноеЧисло(1, 4));
- Описание.Вставить("КоличествоПамяти", ЮТТестовыеДанные.СлучайноеЧисло(1, 16));
- Описание.Вставить("КоличествоДисков", ЮТТестовыеДанные.СлучайноеЧисло(1, 16));
- Описание.Вставить("ОперационнаяСистема", ЮТТестовыеДанные.СоздатьЭлемент(Справочники.ОперационныеСистемы));
-
- Описание.Вставить("СредаЭксплуатации", "");
- Описание.Вставить("Назначение", ЮТТестовыеДанные.СоздатьЭлемент(Справочники.НазначенияВиртуальныхМашин));
- Описание.Вставить("ТипСреды", Справочники.ТипыИнформационныхСред.BETA);
- Описание.Вставить("КодСервиса", ЮТТестовыеДанные.СлучайнаяСтрока(1));
-
- Возврат Описание;
-
-КонецФункции
-
-Функция НовыйОбразDocker(Версия, ПоУмолчанию = Истина) Экспорт
-
- Данные = Новый Структура("Адрес, ВерсияПлатформы, ТипПлатформы, ИспользоватьПоУмолчанию");
- Данные.Адрес = "gitlab.ru/orais/ci_cd/1cws-apache24:" + Версия;
- Данные.ВерсияПлатформы = Версия;
- Данные.ТипПлатформы = Перечисления.ТипыСоединенияИсточникаДанных.Соединение1СПредприятие83Сервер;
- Данные.ИспользоватьПоУмолчанию = ПоУмолчанию;
-
- Возврат ЮТТестовыеДанные.СоздатьЭлемент(Справочники.ОбразыDocker, Версия, Данные);
-
-КонецФункции
-```
-
-### Чтение из таблицы Markdown
-
-```bsl
- Макет =
- "| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | Реквизиты | Измерения | Ресурсы | РеквизитыАдресации | ТабличныеЧасти |
- ||------------------------|-------------------------|----------------------|--------|-----------|-----------|-----------|---------|--------------------|----------------|
- || Справочник | Справочники | СоздатьЭлемент | + | + | + | | | | + |
- || Документ | Документы | СоздатьДокумент | | + | + | | | | + |
- || ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | | | + |
- || ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + |
- || ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + |
- || ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + |
- || РегистрСведений | РегистрыСведений | СоздатьНаборЗаписей | | | + | + | + | | |
- || РегистрНакопления | РегистрыНакопления | СоздатьНаборЗаписей | | | + | + | + | | |
- || РегистрБухгалтерии | РегистрыБухгалтерии | СоздатьНаборЗаписей | | | + | + | + | | |
- || РегистрРасчета | РегистрыРасчета | СоздатьНаборЗаписей | | | + | + | + | | |
- || БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | | | + |
- || Задача | Задачи | СоздатьЗадачу | | + | + | | | + | + |
- |";
- КоллекцияОписаний = ЮТТестовыеДанные.ТаблицаMarkDown(Макет);
-
- ТипыМетаданных = Новый Структура();
-
- Для Каждого Запись Из КоллекцияОписаний Цикл
-
- Описание = Новый Структура();
- Описание.Вставить("Имя", Запись.Имя);
- Описание.Вставить("ИмяКоллекции", Запись.ИмяКоллекции);
- Описание.Вставить("Конструктор", Запись.Конструктор);
- Описание.Вставить("Группы", Запись.Группы = "+");
- Описание.Вставить("Ссылочный", Запись.Ссылочный = "+");
- Описание.Вставить("Реквизиты", Запись.Реквизиты = "+");
- Описание.Вставить("Измерения", Запись.Измерения = "+");
- Описание.Вставить("Ресурсы", Запись.Ресурсы = "+");
- Описание.Вставить("РеквизитыАдресации", Запись.РеквизитыАдресации = "+");
- Описание.Вставить("ТабличныеЧасти", Запись.ТабличныеЧасти = "+");
-
- ТипыМетаданных.Вставить(Описание.Имя, Описание);
- ТипыМетаданных.Вставить(Описание.ИмяКоллекции, Описание);
-
- КонецЦикла;
-
- Возврат ТипыМетаданных;
-```
-
-### Загрузка данных из макетов
-
-Для загрузки данных из макетов подойдет метод `ЮТест.Данные().ЗагрузитьИзМакета`
+Для загрузки данных из макетов подойдет метод [`ЮТест.Данные().ЗагрузитьИзМакета`](/api/ЮТТестовыеДанные#загрузитьизмакета)
Он позволяет:
@@ -197,25 +28,33 @@ tags: [Начало, Тестовые данные]
Особенности:
-* Создание данных
- * Данные в базе всегда создаются, не выполняется поиск уже существующих ссылок. При необходимости вы можете найти данные сами и передать в параметрах `ЗаменяемыеЗначения` или `КэшЗначений`
- :::tip
- При преобразовании табличного документа в таблицу значений существующие объекты метаданных не изменяются, только создаются новые. Нужно проявлять внимательность в случаях, если в базе уже имеются данные с тем же кодом/наименованием (и по ним используется контроль уникальности), что и в табличном документе.
- :::
- * Можно указывать значения вложенных реквизитов в других колонках, например для колонки `Товар` можно добавить колонки с поставщиком и видом товара `Товар.Поставщик` и `Товар.Вид`, в которых указать нужные значения
- * Переиспользование созданных данных, используется `КэшЗначений`, в который помещаются все созданные данные, если кэш содержит данные подходящего типа с указанным идентификатором, то используется ранее созданное значение из кэша. Например, в примере выше, для первой строки будет создан товар с идентификатором `Товар 1`. В строках 2 и 3 будет использовано значение из кэша - `Товар 1`, в 4й и 5й строке - созданы новые товары.
+* Данные в базе всегда создаются, не выполняется поиск уже существующих ссылок. При необходимости вы можете найти данные сами и передать в параметрах `ЗаменяемыеЗначения`
+ :::tip
+ При преобразовании табличного документа в таблицу значений существующие объекты метаданных не изменяются, только создаются новые. Нужно проявлять внимательность в случаях, если в базе уже имеются данные с тем же кодом/наименованием (и по ним используется контроль уникальности), что и в табличном документе.
+ :::
+* Можно указывать значения вложенных реквизитов, например при создании товаров (колонка `Товар`) необходимо указать конкретные значения поставщика и вида товара. Для этого необходимо добавить колонки `Товар.Поставщик` и `Товар.Вид`, в которых указать нужные значения.
+* Переиспользование созданных данных, используется `КэшЗначений`, в который помещаются все созданные данные, если кэш содержит данные подходящего типа с указанным идентификатором, то используется ранее созданное значение из кэша. Например, в примере выше, для первой строки будет создан товар с идентификатором `Товар 1`. В строках 2 и 3 будет использовано значение из кэша - `Товар 1`, в 4й и 5й строке - созданы новые товары.
- :::tip
- Значение в колонке "Товар" является идентификатором ссылки. Для справочника значение этой колонки по умолчанию записывается в реквизит "Наименование" или "Код", в зависимости от того, какой из этих реквизитов является основным представлением. Для документа это значение никуда не записывается, оно лишь является идентификатором. Таким образом, если одному значению в колонке "Товар" соответствуют различные значения в других колонках, то в элемент справочника запишутся реквизиты из первой строки, а для других строк ссылка на этот элемент будет проставлена по соответствующему идентификатору
- :::
+ :::tip
+ Кэш значений может передаваться между загрузками разных макетов, например есть макет с табличной частью документа и второй макет с набором ожидаемых движений. Чтобы созданные товары из табличной части соответствовали товарам движений необходимо передать `КэшЗначений` между загрузками.
-#### Загрузка всего макета
+ ```bsl
+ КэшЗначений = Неопределено;
+ ТабличнаяЧасть = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ДанныеДокумента.ТабличнаяЧасть", ОписанияТиповТЧ, КэшЗначений);
+ ОжидаемыеДвижения = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ДанныеДокумента.ДвиженияРегистра1", ОписанияТиповРегистра1, КэшЗначений);
+ ```
-В качестве источника данных можно использовать весь табличный документ. В этом случае будет получена таблица значений, начиная с 1-ой строки и 1-ой колонки табличного документа до первой пустой строки.
+ :::
-:::info
-Этот код работает и на клиенте и на сервер. Для сервера результатом будет таблица значений, для клиента - массив структур
-:::
+ :::tip
+ Значение в колонке "Товар" является идентификатором ссылки. Для справочника значение этой колонки по умолчанию записывается в реквизит "Наименование" или "Код", в зависимости от того, какой из этих реквизитов является основным представлением. Для документа это значение никуда не записывается, оно лишь является идентификатором. Таким образом, если одному значению в колонке "Товар" соответствуют различные значения в других колонках, то в элемент справочника запишутся реквизиты из первой строки, а для других строк ссылка на этот элемент будет проставлена по соответствующему идентификатору
+ :::
+
+## Примеры
+
+### Загрузка всего макета
+
+В качестве источника данных можно использовать весь табличный документ. В этом случае будет получена таблица значений, начиная с 1-ой строки и 1-ой колонки табличного документа до первой пустой строки.
_Исходные данные_
@@ -227,6 +66,10 @@ _Исходные данные_
| Товар 2 | Поставщик 1 | Товар | 2 000 | 1 | 2000 |
| Услуга | | Услуга | 300,5 | 1 | 300.5 |
+:::info
+Этот код работает и на клиенте и на сервер. Для сервера результатом будет таблица значений, для клиента - массив структур
+:::
+
```bsl
ОписанияТипов = Новый Соответствие;
ОписанияТипов.Вставить("Товар", Новый ОписаниеТипов("СправочникСсылка.Товары"));
@@ -236,7 +79,7 @@ _Исходные данные_
ТаблицаТоваров = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных", ОписанияТипов);
-Ютест.ОжидаетЧто(ТаблицаТоваров)
+ЮТест.ОжидаетЧто(ТаблицаТоваров)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлину(5)
.Свойство("[0].Товар.Наименование").Равно("Товар 1")
@@ -267,7 +110,7 @@ _Исходные данные_
.Свойство("[4].Сумма").Равно(300.5);
```
-#### Загрузка области из макета
+### Загрузка области из макета
Можно получить отдельную область из табличного документа и использовать ее в качестве источника данных для таблицы значений. Таким образом в одном табличном документе можно хранить несколько таблиц.
@@ -288,9 +131,7 @@ _Исходные данные_
```bsl
ОписанияТипов = Новый Соответствие;
ОписанияТипов.Вставить("Товар", Новый ОписаниеТипов("СправочникСсылка.Товары"));
-ОписанияТипов.Вставить("Цена", Новый ОписаниеТипов("Число"));
ОписанияТипов.Вставить("Количество", Новый ОписаниеТипов("Число"));
-ОписанияТипов.Вставить("Сумма", Новый ОписаниеТипов("Число"));
// Для общего использования созданных значений используется переменная КешЗначений.
// В двух табличных документах одинаковый состав товаров.
@@ -305,11 +146,11 @@ _Исходные данные_
КэшЗначений
);
-ТаблицаИсходныхДанных = ЮТест.Данные().ЗагрузитьИзМакета(
- "ОбщийМакет.ЮТ_МакетТестовыхДанных.R1C1R4C4",
- ОписанияТипов,
- КэшЗначений
-);
+ОписанияТипов = Новый Соответствие;
+ОписанияТипов.Вставить("Товар", Новый ОписаниеТипов("СправочникСсылка.Товары"));
+ОписанияТипов.Вставить("Цена", Новый ОписаниеТипов("Число"));
+ОписанияТипов.Вставить("Количество", Новый ОписаниеТипов("Число"));
+ОписанияТипов.Вставить("Сумма", Новый ОписаниеТипов("Число"));
ТаблицаОжидаемыхЗначений = ЮТест.Данные().ЗагрузитьИзМакета(
"ОбщийМакет.ЮТ_МакетТестовыхДанных.R5C1R8C4",
@@ -319,11 +160,11 @@ _Исходные данные_
ТаблицаРезультата = ОбщийМодуль1.ТаблицаТоваровСЦенамиИзОстатков(ТаблицаИсходныхДанных);
-Ютест.ОжидаетЧто(ТаблицаРезультата)
+ЮТест.ОжидаетЧто(ТаблицаРезультата)
.Равно(ТаблицаОжидаемыхЗначений);
```
-#### Загрузка документа с табличной частью и проверка движений
+### Загрузка документа с табличной частью и проверка движений
Интеграционный-тест для проверки формирования движений документа по некоторому регистру. В первой таблице - табличная часть документа. Во второй - реквизиты самого документа. В третьей - ожидаемые движения по регистру, который нужно протестировать.
@@ -331,16 +172,16 @@ _Исходные данные_
Область `Реквизиты_документа`
-| ПриходТовара | Дата | Поставщик | Валюта | Склад | Организация |
-|--------------|------|-------------|--------|-------|-------------|
-| Документ 1 | Дата | Поставщик 1 | Валюта | Склад | Организация |
+| ПриходТовара | Дата | Поставщик | Валюта | Склад | Организация |
+|--------------|------|-----------|--------|-------|-------------|
+| Документ 1 | Дата | Поставщик | Валюта | Склад | Организация |
Область `Табличная_часть_документа`
| Документ | Товар | Товар.Поставщик | Товар.Вид | Цена | Количество | Сумма |
|------------|---------|-----------------|-----------|-------|------------|-------|
-| Документ 1 | Товар 1 | Поставщик 1 | Товар | 100 | 1 | 100 |
-| Документ 1 | Товар 2 | Поставщик 1 | Товар | 2 000 | 1 | 2000 |
+| Документ 1 | Товар 1 | Поставщик | Товар | 100 | 1 | 100 |
+| Документ 1 | Товар 2 | Поставщик | Товар | 2 000 | 1 | 2000 |
| Документ 1 | Услуга | | Услуга | 300,5 | 1 | 300.5 |
Область `Ожидаемые_движения`
@@ -354,7 +195,7 @@ _Исходные данные_
```bsl
КэшЗначений = Новый Соответствие;
-Организация = Ютест.КонтекстМодуля().Организация;
+Организация = ЮТест.КонтекстМодуля().Организация;
Поставщик = ЮТест.Данные().СоздатьЭлемент(Справочники.Контрагенты, "Поставщик");
ДатаДокумента = НачалоДня(ТекущаяДатаСеанса());
@@ -363,7 +204,7 @@ _Исходные данные_
// значение из табличного документа к нужному значению.
ЗаменяемыеЗначения = Новый Соответствие;
ЗаменяемыеЗначения.Вставить("Организация", Организация);
-ЗаменяемыеЗначения.Вставить("Поставщик 1", Поставщик);
+ЗаменяемыеЗначения.Вставить("Поставщик", Поставщик);
ЗаменяемыеЗначения.Вставить("Дата", ДатаДокумента);
ОписанияТипов = Новый Соответствие;
@@ -427,13 +268,13 @@ _Исходные данные_
Отбор = Новый Структура("Регистратор", ДанныеДокументов.ПриходТовара);
ОжидаемыеТоварныеЗапасы = ТаблицаДвижений.Скопировать(Отбор);
- Ютест.ОжидаетЧто(ТаблицаТоварныхЗапасов)
+ ЮТест.ОжидаетЧто(ТаблицаТоварныхЗапасов)
.Равно(ОжидаемыеТоварныеЗапасы);
КонецЦикла;
```
-#### Заменяемые значения
+### Заменяемые значения
Создание и заполнение объектов двойной вложенности и более (например, "Товар.Поставщик.ВидКонтрагента") не поддерживается. Если есть такая потребность, следует использовать переменную "ЗаменяемыеЗначения". Т.е. следует создать и заполнять нужный объект перед преобразованием табличного документа в таблицу значений, а затем передать его в функцию получения таблицы значений.
@@ -443,7 +284,7 @@ _Исходные данные_
.Записать();
// В табличном документе должна быть колонка [Товар.Поставщик] со значением "Некий поставщик".
-// В этом случае в таблицу значений проставится значение, полученное из соответствия
+// В этом случае в таблицу значений попадет значение, полученное из соответствия
ЗаменяемыеЗначения = Новый Соответствие;
ЗаменяемыеЗначения.Вставить("Некий поставщик", Поставщик);
@@ -458,7 +299,7 @@ _Исходные данные_
.Свойство("[0].Товар.Поставщик.ВидКонтрагента").Равно(ВидКонтрагента);
```
-#### Заменяемые значения и составные типы
+### Заменяемые значения и составные типы
Можно использовать составные типы в колонках таблицы значений, но создание объектов метаданных для такой колонки не поддерживается. Можно воспользоваться соответствием "ЗаменяемыеЗначения", если потребуется в одну колонку записать значения разных типов.
@@ -488,7 +329,7 @@ _Исходные данные_
;
```
-#### Inline макеты, загрузка из Markdown
+### Inline макеты, загрузка из Markdown
При необходимости вы можете разместить таблицу с данными прямо в коде.
@@ -512,3 +353,77 @@ _Исходные данные_
Данные = ЮТест.Данные().ЗагрузитьИзМакета(ТаблицаMarkDown, ОписанияТипов);
```
+
+## Другие методы загрузки
+
+* [`ЮТест.Данные().ТаблицаMarkDown`](/api/ЮТТестовыеДанные#таблицаmarkdown) - Читает таблицу MarkDown в массив структур
+
+```bsl
+ Макет =
+ "| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | Реквизиты | Измерения | Ресурсы | РеквизитыАдресации | ТабличныеЧасти |
+ ||------------------------|-------------------------|----------------------|--------|-----------|-----------|-----------|---------|--------------------|----------------|
+ || Справочник | Справочники | СоздатьЭлемент | + | + | + | | | | + |
+ || Документ | Документы | СоздатьДокумент | | + | + | | | | + |
+ || ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | | | + |
+ || ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + |
+ || ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + |
+ || ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + |
+ || РегистрСведений | РегистрыСведений | СоздатьНаборЗаписей | | | + | + | + | | |
+ || РегистрНакопления | РегистрыНакопления | СоздатьНаборЗаписей | | | + | + | + | | |
+ || РегистрБухгалтерии | РегистрыБухгалтерии | СоздатьНаборЗаписей | | | + | + | + | | |
+ || РегистрРасчета | РегистрыРасчета | СоздатьНаборЗаписей | | | + | + | + | | |
+ || БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | | | + |
+ || Задача | Задачи | СоздатьЗадачу | | + | + | | | + | + |
+ |";
+ КоллекцияОписаний = ЮТТестовыеДанные.ТаблицаMarkDown(Макет);
+
+ ТипыМетаданных = Новый Структура();
+
+ Для Каждого Запись Из КоллекцияОписаний Цикл
+
+ Описание = Новый Структура();
+ Описание.Вставить("Имя", Запись.Имя);
+ Описание.Вставить("ИмяКоллекции", Запись.ИмяКоллекции);
+ Описание.Вставить("Конструктор", Запись.Конструктор);
+ Описание.Вставить("Группы", Запись.Группы = "+");
+ Описание.Вставить("Ссылочный", Запись.Ссылочный = "+");
+ Описание.Вставить("Реквизиты", Запись.Реквизиты = "+");
+ Описание.Вставить("Измерения", Запись.Измерения = "+");
+ Описание.Вставить("Ресурсы", Запись.Ресурсы = "+");
+ Описание.Вставить("РеквизитыАдресации", Запись.РеквизитыАдресации = "+");
+ Описание.Вставить("ТабличныеЧасти", Запись.ТабличныеЧасти = "+");
+
+ ТипыМетаданных.Вставить(Описание.Имя, Описание);
+ ТипыМетаданных.Вставить(Описание.ИмяКоллекции, Описание);
+
+ КонецЦикла;
+
+ Возврат ТипыМетаданных;
+```
+
+* [`ЮТест.Данные().СтруктураMarkDown`](/api/ЮТТестовыеДанные#структураmarkdown) - Читает таблицу MarkDown в структуру
+
+```bsl
+ Функция ИмяКоллекции(Имя) Экспорт
+ Макет =
+ "| Имя | ИмяКоллекции |
+ ||------------------------|-------------------------|
+ || Справочник | Справочники |
+ || Документ | Документы |
+ || ПланВидовХарактеристик | ПланыВидовХарактеристик |
+ || ПланСчетов | ПланыСчетов |
+ || ПланВидовРасчета | ПланыВидовРасчета |
+ || ПланОбмена | ПланыОбмена |
+ || РегистрСведений | РегистрыСведений |
+ || РегистрНакопления | РегистрыНакопления |
+ || РегистрБухгалтерии | РегистрыБухгалтерии |
+ || РегистрРасчета | РегистрыРасчета |
+ || БизнесПроцесс | БизнесПроцессы |
+ || Задача | Задачи |
+ |";
+ Описания = ЮТТестовыеДанные.СтруктураMarkDown("Имя", Макет);
+
+ Возврат Описания[Имя].ИмяКоллекции;
+
+ КонецФункции
+```
diff --git a/documentation/docs/features/test-data/test-data-deletion.md b/documentation/docs/features/test-data/test-data-deletion.md
new file mode 100644
index 000000000..af9b58a86
--- /dev/null
+++ b/documentation/docs/features/test-data/test-data-deletion.md
@@ -0,0 +1,246 @@
+---
+tags: [Начало, Тестовые данные]
+sidebar_position: 2
+---
+
+# Удаление тестовых данных
+
+При использовании тестовых данных нередко необходимо удалять созданные объекты.
+
+Для этого вы можете использовать
+
+## Автоматические транзакции
+
+Самый простой в способ отката изменений сделанных тестом - обернуть тест в транзакцию.
+Для того чтобы YAxUnit сам оборачивал тесты в транзакции вам, при регистрации теста, нужно вызвать метод [`ВТранзакции()`](/api/ЮТТесты#втранзакции).
+
+* Если метод вызвать в самом начале, то настройка примениться для всех тестов модуля;
+* если после добавления набора, то для всех тестов этого набора;
+* если после добавления теста, то только для этого теста.
+* Также можно отключать использование транзакции, указав параметр `ВТранзакции(Ложь)`
+
+```bsl title=ВТранзакции.bsl
+ЮТТесты
+ .ДобавитьТест("Фикция").ВТранзакции() // Использование транзакции для конкретного теста
+
+ЮТТесты
+ .ДобавитьТестовыйНабор("Основной").ВТранзакции() // Использование транзакции для набора тестов
+ .ДобавитьТест("Фикция")
+
+ЮТТесты.ВТранзакции() // Использование транзакции для тестов модуля
+ .ДобавитьТест("Фикция")
+```
+
+И тогда тестовый движок будет оборачивать в транзакцию **каждый серверный тест** (для клиентских будет игнорироваться)
+
+Особенности работы:
+
+* В транзакцию оборачивается только тест и [события](../events.md) `ПередКаждымТестом\ПередТестом` и `ПослеКаждогоТеста\ПослеТеста`
+* Для клиентских тестов настройка игнорируется
+
+### Схема работы транзакций
+
+Для настройки
+
+```bsl title='Тесты набора с настройкой ВТранзакции'
+ЮТТесты
+ .ДобавитьТестовыйНабор("Основной").ВТранзакции()
+ .ДобавитьТест("Тест1")
+ .ДобавитьТест("Тест2")
+```
+
+Схема выполнения будет выглядеть так:
+
+```mermaid
+flowchart TB
+ bm(ПередВсемиТестами)-->b(ПередТестовымНабором)
+ b-->Транзакция1
+ Транзакция1-->Транзакция2
+ Транзакция2-->a(ПослеТестовогоНабора)
+ a-->am(ПослеВсехТестов)
+
+ subgraph Транзакция1
+ direction LR
+ b1(ПередКаждымТестом)-->t1(Тест1)
+ t1-->a1(ПослеКаждогоТеста)
+ end
+ subgraph Транзакция2
+ b2(ПередКаждымТестом)-->t2(Тест2)
+ t2-->a2(ПослеКаждогоТеста)
+ end
+```
+
+Точно также она будет выглядеть и для настройки
+
+```bsl
+ЮТТесты.ВТранзакции()
+ .ДобавитьТестовыйНабор("Основной")
+ .ДобавитьТест("Тест1")
+ .ДобавитьТест("Тест2")
+```
+
+:::caution Учитывайте
+В транзакцию оборачивается тест, а не модуль или набор, поэтому данные созданные вне теста не будут удалены.
+Такие данные необходимо удалять самостоятельно при необходимости.
+
+Например, настройка
+
+```bsl
+ЮТТесты
+ .ДобавитьТестовыйНабор("Основной").ВТранзакции() // Использование транзакции для набора тестов
+```
+
+указывает, что каждый тест набор будет выполняться в своей транзакции, которая будет отменена по окончании каждого теста.
+:::
+
+## Механизм удаления тестовых данных
+
+В некоторых ситуация тестирование в транзакции невозможно:
+
+* Клиентский тест
+* Тестируемый метод не рассчитан на работу в транзакции (например, используются внутренние транзакции)
+* Необходимо создавать данные за рамками теста (общие параметры)
+
+В подобных случаях, для удаления созданных данных, может подойти механизм удаления тестовых данных.
+
+Для его включения нужно при регистрации теста вызвать метод [`УдалениеТестовыхДанных()`](/api/ЮТТесты#удалениетестовыхданных).
+
+:::caution Механизм имеет ряд ограничений и не работает для следующих кейсов:
+
+* Данные созданы не через API
+* Данные создаются внутри тестируемого кода
+* Данные созданы в клиентском модуле через вызов своего серверного модуля, даже если он использует API тестового движка
+:::
+
+```bsl title=УдалениеТестовыхДанных.bsl
+ЮТТесты
+ .ДобавитьТест("Фикция").УдалениеТестовыхДанных() // Использование для конкретного теста
+
+ЮТТесты
+ .ДобавитьТестовыйНабор("Основной").УдалениеТестовыхДанных() // Использование для всех тестов набора
+ .ДобавитьТест("Фикция")
+
+ЮТТесты.УдалениеТестовыхДанных() // Использование для всех тестов модуля
+ .ДобавитьТест("Фикция")
+
+ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() // Совместно с транзакцией
+ .ДобавитьТест("Фикция")
+
+```
+
+Механизм не использует транзакции, а запоминает в контексте все созданные с помощью API объекты и записи регистров сведений.
+Позволяет:
+
+* Удалять данные созданные с клиента
+* Удалять данные созданные вне теста (в обработчиках событий)
+
+:::caution Удаление и только
+Механизм только удаляет созданные объекты, изменения не откатываются
+:::
+
+:::tip Разное время жизни данных
+Механизм понимает в рамках какого контекста исполнения (тест, набор, модуль) были созданы данные и удаляет их по выходу из него.
+:::
+
+Рассмотрим время жизни объектов созданных на разных этапах тестирования, например имеем такой модуль.
+
+```bsl title=УдалениеТестовыхДанныхВремяЖизни.bsl
+Процедура ПередВсемиТестами() Экспорт
+ ДанныеМодуля = ЮТест.Данные().СоздатьЭлемент();
+КонецПроцедуры
+
+Процедура ПередТестовымНабором() Экспорт
+ ДанныеНабора = ЮТест.Данные().СоздатьЭлемент();
+КонецПроцедуры
+
+Процедура ПослеВсехТестов() Экспорт
+ ДанныеТеста = ЮТест.Данные().СоздатьЭлемент();
+КонецПроцедуры
+
+Процедура Тест() Экспорт
+ Ссылка = ЮТест.Данные().СоздатьЭлемент();
+КонецПроцедуры
+```
+
+Для переменных получим разное время жизни
+
+* `ДанныеМодуля` - Живет, пока исполняются тесты модуля одного контекста (Сервер, Клиент).
+* `ДанныеНабора` - Живет, пока исполняются тесты набора.
+* `ДанныеТеста` и `Ссылка` - Живут, пока исполняется тест.
+
+### Схема работы механизма "УдалениеТестовыхДанных"
+
+```mermaid
+sequenceDiagram
+ actor Y as YAxUnit
+ participant M as Тестовый модуль
+ participant D as Тестовые данные
+ box rgb(132 132 132 / 10%) Контексты
+ participant MC as КонтекстМодуля
+ participant SC as КонтекстНабора
+ participant TC as КонтекстТеста
+ end
+
+ Y->>M: ПередВсемиТестами
+ activate M
+ M->>D: СоздатьЭлемент
+ activate D
+ D ->> MC: ЗапомнитьСсылку
+ D ->> M: Созданный элемент
+ deactivate D
+ deactivate M
+
+ Y->>M: ПередТестовымНабором
+ activate M
+ M->>D: СоздатьЭлемент
+ activate D
+ D ->> SC: ЗапомнитьСсылку
+ D ->> M: Созданный элемент
+ deactivate D
+ deactivate M
+
+ Y ->> M: Выполнить тест
+ activate M
+ M ->> D: КонструкторОбъекта().Записать()
+ activate D
+ D ->> TC: ЗапомнитьСсылку
+ D ->> M: Созданный элемент
+ deactivate D
+ deactivate M
+
+ Y->>M: ПослеТеста
+ activate M
+ M->>D: УдалитьТестовыеДанные
+ activate D
+ D ->> TC: ПолучитьСохраненныеСсылки
+ TC ->>D: Сохраненные cсылки
+ D-->>D: Удаление сохраненных ссылок
+ deactivate D
+ deactivate M
+
+ Y->>M: ПослеТестовогоНабора
+ activate M
+ M->>D: УдалитьТестовыеДанные
+ activate D
+ D ->> SC: ПолучитьСохраненныеСсылки
+ SC ->>D: Сохраненные cсылки
+ D-->>D: Удаление сохраненных ссылок
+ deactivate D
+ deactivate M
+
+ Y->>M: ПослеВсехТестов
+ activate M
+ M->>D: УдалитьТестовыеДанные
+ activate D
+ D ->> MC: ПолучитьСохраненныеСсылки
+ MC ->>D: Сохраненные cсылки
+ D-->>D: Удаление сохраненных ссылок
+ deactivate D
+ deactivate M
+```
+
+## Глобальная настройка удаления данных
+
+Для глобальной настройки [`ВТранзакции()`](/api/ЮТТесты#втранзакции) и/или [`УдалениеТестовыхДанных()`](/api/ЮТТесты#удалениетестовыхданных) вам необходимо всего лишь создать свой общий модуль, подписать на событие инициализации и там установить глобальные настройки.
+
+Подробнее тема будет раскрыта в будущем.
diff --git a/documentation/docs/features/test-data/test-data.md b/documentation/docs/features/test-data/test-data.md
new file mode 100644
index 000000000..1c3d58463
--- /dev/null
+++ b/documentation/docs/features/test-data/test-data.md
@@ -0,0 +1,127 @@
+---
+tags: [Начало, Тестовые данные]
+sidebar_position: 2
+---
+# Тестовые данные
+
+Тестовые данные, на мой взгляд, одна из самых сложных тем в тестировании решений на базе 1С:Предприятия.
+
+Почти все алгоритмы системы опираются на данные базы, они их создают, обрабатывают, изменяют и используют в логике работы. Для корректного проведения одного документа может понадобиться множество записей справочников, настройки/остатки из регистров, значения констант и так далее.
+Все это вам придется создать в тесте, который проверит корректность проведения этого документа. И это будет проверка только одного кейса. Для проверки проведения в других условиях вам придется создать еще пачку данных и так далее.
+
+Можно сократить объемы создаваемых данных используя [мокито](../mocking/mockito.md) и отключая часть логики для каких-то кейсов, но все равно данных понадобится много.
+
+Для облегчения работы с данными вам необходимо продумать схему, как вы будете с ними работать, откуда брать, как создавать, искать и так далее.
+
+## Подходы к работе с данными
+
+1. Ручное наполнение тестовой базы (мы предварительно создаем все что необходимо для тестов в базе, а потом используем её для прогона тестов)
+2. Использование файлов с данными (макеты - сгенерированные в нужном формате файлы с описанием тестовых данных, загружаемые при выполнении тестов)
+3. Программное создание нужных данных внутри теста
+
+У каждого из вариантов есть свои плюсы и минусы и при грамотной компоновке можно достичь наилучшего результата.
+
+* Ручное наполнение базы не учитывает последующие доработки системы, нужна миграция на новые алгоритмы и структуру. А также в этом случае нам необходимо завязываться на конкретные записи в системе, и при их изменении тестом мы можем сломать другие тесты. Поэтому, предварительное наполнение базы должно быть минимальным.
+* В случае использования макетов данных возникают некоторые трудности с их доработкой и вариативностью, например, в новом тесте нужны данные из макета, но с некоторыми изменениями. В этом случае нам потребуется создавать новый макет или проверять, не сломают ли наши изменения другие тесты. Также при таком подходе сложно контролировать и искать какие макеты используются и кем.
+* Программное создание тестовых данных увеличивает время и сложность теста.
+
+Если грамотно распределить тестовые данные на способы создания, можно добиться оптимального результата.
+Например, статичные данные создать вручную, сложные кейсы данных засунуть в макеты, а для программного создания реализовать методы-конструкторы, которые будем переиспользовать. Таким образом, сможем уйти от минусов того или иного подхода или минимизировать их вред.
+
+Ниже хочу рассказать как мы работает с данными.
+
+### Образ тестовой базы
+
+Для прогона тестов используется предварительно подготовленный образ базы, на котором гоняются тесты как в CI, так и на базах разработки.
+
+Образ базы - это выгрузка (файл dt) или сама база (файл 1cd), на основании которого копированием или загрузкой создается база для прогона тестов.
+
+### Ручное наполнение тестовой базы
+
+Образ предварительно настраивается вручную (либо методами обновления/миграции), вводится минимально необходимая информация и базовые настройки.
+
+В образе не должно быть документов, справочников и прочего, с чем обычно имеют дело пользователи, только минимальный набор неизменных данных.
+
+### Программное создание данных
+
+Все остальные данные тесты готовят для себя сами.
+
+В большинстве случаев используется программное создание данных
+
+* Данные создаются кодом, используя [механизмы движка](data-generation.md)
+* Используется генерация случайных значений, где это не противоречит требования
+* Тесты стараются [прибрать за собой](test-data-deletion.md), используя транзакции или механизм удаления данных
+* Созданы отдельные [модули-помощники](../../getting-started/auxiliary-modules.md) реализующие типовые кейсы данных
+
+#### Благодаря программной генерации данных вы получаете
+
+* Старый добрый код 1С, который понятен и не требует изучения дополнительных материалов
+* Переиспользование и кастомизация алгоритмов генерации данных - общие модули, экспортные методы, параметры.
+* Возможность создавать новые уникальные данные
+* Можете использовать уже готовую логику тестируемого решения
+
+```bsl title="Общий модуль ТестовыеДанные"
+Функция НовыйТовар() Экспорт
+ // Логика генерации
+КонецФункции
+
+Функция НовыйПоставщик() Экспорт
+ // Логика генерации
+КонецФункции
+
+Функция НовоеПоступлениеТовара(Склад, Знач Товар = Неопределено, Знач Поставщик = Неопределено) Экспорт
+
+ Если Поставщик = Неопределено Тогда
+ Поставщик = НовыйПоставщик();
+ КонецЕсли;
+
+ Если Товар = Неопределено тогда
+ Товар = НовыйТовар();
+ КонецЕсли;
+
+ Возврат ЮТест.Данные().КонструкторОбъекта(Документы.ПоступлениеТоваров)
+ .Установить("Склад", Склад)
+ .Установить("Поставщик", Поставщик)
+ .ФикцияОбязательныхПолей();
+ .ТабличнаяЧасть("Товары")
+ .ДобавитьСтроку()
+ .Установить("Номенклатура", Товар)
+ .Фикция("Количество")
+ .Фикция("Цена")
+ .Провести();
+
+КонецФункции
+```
+
+#### Использование генерации случайных значений позволяет
+
+* Сократить количество кода
+* Акцентировать внимание на "важных" значениях
+ Например, в тесте ниже важно, чтобы `товар` и `склад` в документах совпадали, дата расхода должна быть больше прихода, количество расхода меньше прихода.
+
+ ```bsl title="Тест"
+ Склад = ТестовыеДанные.НовыйСклад();
+ Товар = ТестовыеДанные.НовыйТовар();
+
+ ДатаПоступления = ЮТест.Данные().СлучайнаяДата();
+ ДатаРасхода = ЮТест.Данные().СлучайнаяДатаПосле(ДатаПоступления);
+
+ КоличествоРасход = ЮТест.Данные().СлучайноеПоложительноеЧисло(100);
+ КоличествоПоступления = КоличествоРасход + ЮТест.Данные().СлучайноеПоложительноеЧисло(100);
+
+ ТестовыеДанные.НовоеПоступлениеТовара(Склад, Товар, КоличествоПоступления, ДатаПоступления);
+ ТестовыеДанные.НовыйРасходТовара(Склад, Товар, КоличествоРасход, ДатаРасхода);
+
+ // Проверки
+ ```
+
+* Вскрыть неожиданные проблемы, за счет случайности данных вы покрываете больше кейсов. Правда это имеет и негативный эффект - тесты могут "фонить", то падать, то успешно проходить, а также сложнее воспроизвести упавший тест.
+
+Правильно организовав работу с тестовыми данными вы существенно облегчите процесс создания и поддержки тестов
+
+* Регламентируйте подход к именованию модулей и методов, это облегчит их поиск
+* Договоритесь как вы будете создавать общие модули, как разделяются по ним конструкторы, например:
+ * Использовать один модуль на все методы-конструкторы, подходит для небольших решений.
+ * Создаете модули по подсистемам (разрезы учета/функциональности) - для небольших и средних конфигураций.
+ * Для каждого объекта/функциональности создается свой модуль с конструкторами - для больших и сложных проектов.
+* Выполняйте перекрестные ревью, делитесь знаниями в команде.
diff --git a/documentation/docs/features/test-registration.md b/documentation/docs/features/test-registration.md
new file mode 100644
index 000000000..db36a1aad
--- /dev/null
+++ b/documentation/docs/features/test-registration.md
@@ -0,0 +1,52 @@
+---
+tags: [Начало]
+sidebar_position: 0
+---
+
+# Регистрация тестовых методов
+
+Кроме того, чтобы написать тестовые сценарии (методы), разработчик должен зарегистрировать их в движке - рассказать ему, какие имеются тесты, как их запускать, с какими параметрами и т.д.
+Регистрация выполняется внутри предопределенного экспортного метод `ИсполняемыеСценарии`, который обязательно должен находиться в каждом тестовом модуле.
+
+```bsl
+Процедура ИсполняемыеСценарии() Экспорт
+
+ // Регистрация тестов
+ ЮТТесты // Регистрация тестов выполняет через модуль регистратор
+ .ДобавитьТестовыйНабор("Математические методы") // Набор - объединение тестов
+ .ДобавитьТест("Сложение") // Обязательно при регистрации указываем имя экспортного метода
+ .ДобавитьТест("Вычитание", "Вычитание") // Также можно указать представление теста
+ .ДобавитьТест("Вычитание", "ВычитаниеСервер", , "Сервер") // Контекст исполнения, по умолчанию тест выполняется во всех контекстах модуля
+ .ДобавитьКлиентскийТест("УмножениеНаКлиенте") // Есть отдельный метод для регистрации клиентских тестов
+ .ДобавитьСерверныйТест("ДелениеНаСервере", "Деление на сервер") // Есть отдельный метод для регистрации серверных тестов
+ .ДобавитьТестовыйНабор("Строковые методы")
+ .ДобавитьТест("СтрНайти")
+ .ДобавитьТест("СтрРазделить");
+
+КонецПроцедуры
+
+Процедура Сложение() Экспорт
+ // Тест сложения
+КонецПроцедуры
+
+```
+
+В нем перечисляются все доступные тесты этого модуля.
+Метод `ИсполняемыеСценарии` вызывается движком для каждого тестового модуля при загрузке тестов, задолго до исполнения самих тестов.
+В нем **не стоит** создавать какие-то тестовые данные или выполнять инициализацию, он должен просто отдать список тестов модуля.
+
+Регистрация и настройка тестов выполняется через методы модуля [`ЮТТесты`](/api/ЮТТесты), он позволяет:
+
+* Зарегистрировать тесты, с возможностью выбрать контексты исполнения:
+ * [`ДобавитьТест`](/api/ЮТТесты#добавитьтест) - Тест выполняется во всех контекстах тестового модуля
+ * [`ДобавитьКлиентскийТест`](/api/ЮТТесты#добавитьклиентскийтест) - Тест выполняется на клиенте
+ * [`ДобавитьСерверныйТест`](/api/ЮТТесты#добавитьсерверныйтест) - Тест выполняется на сервере
+* [`ДобавитьТестовыйНабор`](/api/ЮТТесты#добавитьтестовыйнабор) позволяет сгруппировать тесты в наборы
+* Настроить параметры исполнения теста
+ * [Очистка данных](test-data/test-data-deletion), перед использованием изучите [документацию](test-data/test-data-deletion)
+ * Выполнение [`ВТранзакции`](/api/ЮТТесты#втранзакции) - Тест выполняется в транзакции
+ * Удаление тестовых данных ([`УдалениеТестовыхДанных`](/api/ЮТТесты#удалениетестовыхданных)) - Данные созданные тестом будут удалены (если они создаются с помощью API движка - [`ЮТест.Данные()`](/api/ЮТест#данные)) вне зависимости от транзакции
+ * [`СПараметрами`](/api/ЮТТесты#спараметрами) - Тестовый метод будет вызван с указанными параметрами
+* Настройка обработчиков [событий](events.md)
+ * [`Перед`](/api/ЮТТесты#перед) - Указывает, какой метод будет выполнятся перед тестом
+ * [`После`](/api/ЮТТесты#после) - Указывает, какой метод будет выполнятся после тестом
diff --git a/documentation/docs/first-test.md b/documentation/docs/first-test.md
deleted file mode 100644
index a81b84616..000000000
--- a/documentation/docs/first-test.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-sidebar_position: 2
-tags: [Начало]
----
-
-# Пишем первый тест
-
-Для создания теста нужно в расширении (в отдельном или в том же) добавить модуль, содержащий экспортный метод регистрации - ИсполняемыеСценарии и реализовать тесты.
-
-```bsl title="ОМ_ПервыйТест"
-#Область СлужебныйПрограммныйИнтерфейс
-
-Процедура ИсполняемыеСценарии() Экспорт
-
- ЮТТесты
- .ДобавитьТест("Сложение")
- .СПараметрами(2, 3, 5)
- .СПараметрами(2, -3, -1)
- ;
-
-КонецПроцедуры
-
-Процедура Сложение(ПервыйОперанд, ВторойОперанд, Результат) Экспорт
-
- ЮТест.ОжидаетЧто(ПервыйОперанд + ВторойОперанд)
- .ИмеетТип("Число")
- .Равно(Результат);
-
-КонецПроцедуры
-
-#КонецОбласти
-```
diff --git a/documentation/docs/getting-started/auxiliary-modules.md b/documentation/docs/getting-started/auxiliary-modules.md
new file mode 100644
index 000000000..a49921b70
--- /dev/null
+++ b/documentation/docs/getting-started/auxiliary-modules.md
@@ -0,0 +1,97 @@
+# Модули помощники
+
+При написании тестов не стоит забывать, что вы пишете код, а это значит, что вы можете использовать те же принципы, что при обычной разработке.
+
+Вы можете создавать общие модули и экспортные методы, которые упростят написание тестов для вашего продукта.
+Такие как модули создания тестовых данных, настройки мокирования, общих проверок и так далее.
+Главное сначала подумать об организации работы с ними, чтобы в будущем было проще находить нужные методы и избежать конфликтов при разработке.
+
+## Конструкторы данных
+
+Предположим у нас есть подсистема управления складом, которая содержит документы поступления, перемещения и реализации.
+Создание документа поступления нам понадобится при тестировании всех видов документов, поэтому стоит вынести это в отдельный общий модуль.
+
+```bsl title="ОбщийМодуль.ТестовыеДанныеУправлениеСкладом"
+Функция НовоеПоступлениеТовара(Склад, Товар, Поставщик = Неопределено) Экспорт
+ Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПоступлениеТоваров)
+ .ФикцияОбязательныхПолей()
+ .Установить("Склад");
+
+ Если Поставщик = Неопределено Тогда
+ Конструктор.Фикция("Поставщик");
+ Иначе
+ Конструктор.Установить("Поставщик", Поставщик);
+ КонецЕсли
+
+ Возврат Конструктор
+ .ТабличнаяЧасть("Товары")
+ .ДобавитьСтроку()
+ .Установить("Номенклатура", Товар)
+ .Фикция("Количество")
+ .Фикция("Цена")
+ .Записать();
+
+КонецФункции
+```
+
+Бывают случаи, когда слишком сложно кастомизировать создание объекта через параметры, тогда удобнее возвращать конструктор объекта с базовым заполнением. Либо сделать набор методов-пресетов для различных кейсов.
+
+```bsl title="ОбщийМодуль.ТестовыеДанныеУправлениеСкладом"
+Функция КонструкторПоступленияТовара(Склад, Поставщик = Неопределено) Экспорт
+ Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПоступлениеТоваров)
+ .ФикцияОбязательныхПолей()
+ .Установить("Склад");
+
+ Если Поставщик = Неопределено Тогда
+ Конструктор.Фикция("Поставщик");
+ Иначе
+ Конструктор.Установить("Поставщик", Поставщик);
+ КонецЕсли
+
+ Возврат Конструктор;
+
+КонецФункции
+
+Функция НовоеПоступлениеТовара(Склад, Товар, Поставщик = Неопределено) Экспорт
+ Конструктор = КонструкторПоступленияТовара(Склад, Поставщик);
+
+ Возврат Конструктор
+ .ТабличнаяЧасть("Товары")
+ .ДобавитьСтроку()
+ .Установить("Номенклатура", Товар)
+ .Фикция("Количество")
+ .Фикция("Цена")
+ .Записать();
+
+КонецФункции
+
+Функция НовоеПоступлениеТовараОтЮрЛица(Склад, Товар) Экспорт
+ Поставщик = НовоеЮрЛицо();
+
+ Конструктор = КонструкторПоступленияТовара(Склад, Поставщик);
+
+ Возврат Конструктор
+ .ТабличнаяЧасть("Товары")
+ .ДобавитьСтроку()
+ .Установить("Номенклатура", Товар)
+ .Фикция("Количество")
+ .Фикция("Цена")
+ .Записать();
+
+КонецФункции
+
+Функция НовоеПоступлениеТовараОтФизЛица(Склад, Товар) Экспорт
+ Поставщик = НовоеФизЛицо();
+
+ Конструктор = КонструкторПоступленияТовара(Склад, Поставщик);
+
+ Возврат Конструктор
+ .ТабличнаяЧасть("Товары")
+ .ДобавитьСтроку()
+ .Установить("Номенклатура", Товар)
+ .Фикция("Количество")
+ .Фикция("Цена")
+ .Записать();
+
+КонецФункции
+```
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
new file mode 100644
index 000000000..ae669afa2
Binary files /dev/null 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/module-launch-test.png b/documentation/docs/getting-started/edt-plugin/images/module-launch-test.png
new file mode 100644
index 000000000..11ad6d1fa
Binary files /dev/null and b/documentation/docs/getting-started/edt-plugin/images/module-launch-test.png differ
diff --git a/documentation/docs/getting-started/edt-plugin/images/report.png b/documentation/docs/getting-started/edt-plugin/images/report.png
new file mode 100644
index 000000000..8314a493e
Binary files /dev/null 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
new file mode 100644
index 000000000..6170ba18b
Binary files /dev/null and b/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png differ
diff --git a/documentation/docs/getting-started/edt-plugin/index.md b/documentation/docs/getting-started/edt-plugin/index.md
new file mode 100644
index 000000000..658bf4a04
--- /dev/null
+++ b/documentation/docs/getting-started/edt-plugin/index.md
@@ -0,0 +1,58 @@
+---
+sidebar_position: 1
+tags: [Начало]
+---
+
+# Плагин для EDT
+
+Предоставляет следующие функции
+
+## Запуск тестов
+
+В первую очередь, плагин предоставляет новую конфигурацию запуска, позволяя указать настройки запуска тестов.
+
+![Расширение и конфигурация запуска](images/launch-type-and-extension.png)
+
+После создания конфигурация запуска тестов, появляется возможность запустить выполнение тестов, используя стандартное меню EDT _(также как и 1С:Предприятие)_.
+
+Кроме конфигурации запуска тестов, плагин добавляет команды запуска тестова для конкретных методов, а также тестовых модулей.
+Справа от имени каждого тестового метода появляется кнопка запуска, запускающая этот тест или все тесты модуля _(если выполнить запуск тестова для метода `ИсполняемыеСценарии`)_.
+
+Для удобства, эти команды продублированы в контекстное меню на панеле "Схема модуля".
+
+![Команды запуска теста](images/module-launch-test.png)
+
+## Отчет о тестировании
+
+По окончании тестирования плагин выводит отчет в котором детально отображается список пройденных тестов, статус их прохождения и информация о возникших ошибках.
+
+![Отчет](images/report.png)
+
+Отчет позволяет:
+
+* Получить информацию о результате тестирования;
+* Перезапустить тесты _(упавшие, все или выбранные)_;
+* Посмотреть историю тестовых прогонов;
+* Перейти к тесту и тестируемому методу;
+* Просмотреть стек ошибки и перейти к месту их возникновения;
+* Увидеть различие ожидаемого и фактического значения.
+
+## Команды помощники
+
+Для помощи при написании тестов добавлена команда "1С:Модульные тесты (YAxUnit)" в контекстное меню редактора и схемы модуля. Она позволяет:
+
+* создавать тестовые методы,
+* генерировать наборы тестов,
+* создавать моки,
+* переходить между проверяемым методом и тестом,
+* а также запускать тесты.
+
+При выборе этой команды открывается окно с доступными действиями. Список действий формируется динамически и зависит от модуля.
+
+Для модулей конфигурации доступны действия создания тестов и моков, а также переходы к тестам при их наличии.
+
+Для модулей с тестами - команды создания тестов и их запуска.
+
+Для того, чтобы движок мог находить тестовые модули, выполнять переходы между ними, вы должны следовать [схеме наименования](../structure.md)
+
+![Команды переходов](images/yaxunit-commands.png)
diff --git a/documentation/docs/getting-started/first-test.md b/documentation/docs/getting-started/first-test.md
new file mode 100644
index 000000000..1245f5c2a
--- /dev/null
+++ b/documentation/docs/getting-started/first-test.md
@@ -0,0 +1,125 @@
+---
+sidebar_position: 2
+tags: [Начало]
+---
+
+# Пишем первый тест
+
+## Подготовка окружения
+
+Перед написанием тестов вам необходимо:
+
+* Создать информационную базу, на которой будете прогонять тесты.
+* Установить [тестовый движок](install/install.md) в проект. Не забывайте о необходимости сбросить признаки `Безопасный режим` и `Защита от опасных действий` после загрузки расширения.
+* Если вы используете 1С:Enterprise Development Tools (EDT), то установить [плагин](install/install-plugin.md), который будет вам помогать.
+
+## Первый тест
+
+Вы все установили, перед вами открыта EDT или конфигуратор, в котором есть проверяемая конфигурация и расширение с тестовым движком `YAxUnit`.
+
+Тесты с использование YAxUnit пишутся в расширении, это может быть как отдельное расширение, так и расширение движка. Подробнее об плюсах и минусах этих вариантов вы можете почитать в [статье об организации тестов](structure.md).
+Для первого теста **рекомендую** использовать расширение движка.
+
+Необходимо создать общий модуль в расширении (новый, а не заимствованный), назовем его `ОМ_ПервыйТест`, это будет наш первый тестовый набор (test suite).
+
+Следующим шагом необходим создать экспортную процедуру с наименованием `ИсполняемыеСценарии`, это главный метод тестового набора, здесь необходимо будет перечислить тесты, которые содержит модуль. Так как в 1С:Предприятии нельзя в режиме исполнения понять, какие методы содержит модуль (нет рефлексии).
+
+```bsl title="ОМ_ПервыйТест"
+
+Процедура ИсполняемыеСценарии() Экспорт
+
+КонецПроцедуры
+```
+
+Предположим **мы хотим протестировать** как работает сложение.
+
+Для этого нам необходимо создать **экспортный метод**, который будет реализовывать тест и **зарегистрировать** его в методе `ИсполняемыеСценарии`.
+
+```bsl title="ОМ_ПервыйТест"
+Процедура ИсполняемыеСценарии() Экспорт
+
+ ЮТТесты.ДобавитьТест("Сложение");
+
+КонецПроцедуры
+
+Процедура Сложение() Экспорт
+
+КонецПроцедуры
+
+```
+
+За [регистрацию тестов](../features/test-registration.md) отвечает модуль `ЮТТесты`. Он содержит набор методов позволяющих добавлять тесты и настраивать их исполнение (параметры, режимы исполнения - клиент/сервер, работу в транзакции и многое другое).
+С помощью команды `ЮТТесты.ДобавитьТест("Сложение")` мы добавляем тест `Сложение` в тестовый набор. На этом этапе можно уже [запускать](run/run.md) наш тест.
+
+Теперь добавим полезной нагрузки тесту, проверим что `2 + 2 = 4`.
+
+```bsl title="ОМ_ПервыйТест"
+Процедура Сложение() Экспорт
+
+ РезультатСложения = 2 + 2; // 1
+ ЮТест.ОжидаетЧто(РезультатСложения) // 2
+ .Равно(4); // 3
+
+КонецПроцедуры
+```
+
+1. Тест выполняет интересующую нас команду `2 + 2` (это может быть вызов какого-то метода конфигурации).
+2. Используя [механизм утверждений](../features/assertions/assertions.md) (проверок) указываем, что хотим проверить `ЮТест.ОжидаетЧто(РезультатСложения)`
+3. Проверяем, что `РезультатСложения` равно `4`
+
+С помощью утверждений разработчик описывает, ожидания (требования) от работы команды(метода). Тест во время исполнения, проверяет соответствуют ли эти ожидания реальным данным, если есть расхождения, то будет выброшено исключение, которое зафиксируется в отчете о тестировании.
+
+Настало время запустить наш первый тест, как это сделать прочтите в [статье](run/run.md).
+После выполнения вы увидите отчет о тестировании, в котором тест будет "зеленым". Если в тесте исправить проверку `.Равно(4);` на `.Равно(3);` и еще раз запустить, то тест уже изменит свой статус и вы увидите сообщение об ошибке.
+
+Можно еще доработать нащ тест, проверить разные варианты сложения, для этого могут помочь параметры теста.
+
+```bsl title="ОМ_ПервыйТест"
+Процедура ИсполняемыеСценарии() Экспорт
+
+ ЮТТесты
+ .ДобавитьТест("Сложение")
+ .СПараметрами(2, 3, 5)
+ .СПараметрами(2, -3, -1)
+ .СПараметрами("2", "-3", "2-3")
+ .СПараметрами("2", -3, "2-3")
+ ;
+
+КонецПроцедуры
+
+Процедура Сложение(ПервыйОперанд, ВторойОперанд, Результат) Экспорт
+
+ РезультатСложения = ПервыйОперанд + ВторойОперанд;
+ ЮТест.ОжидаетЧто(РезультатСложения)
+ .Равно(Результат);
+
+КонецПроцедуры
+```
+
+При регистрации указываются параметры, с которыми должен быть вызван тест, дополняем сигнатуру процедуры, чтобы она приняла параметры и переводим тест на использование этих параметров.
+
+Также можно добавить проверок.
+
+```bsl title="ОМ_ПервыйТест"
+Процедура Сложение(ПервыйОперанд, ВторойОперанд, Результат) Экспорт
+
+ РезультатСложения = ПервыйОперанд + ВторойОперанд;
+ ЮТест.ОжидаетЧто(РезультатСложения)
+ .Заполнено()
+ .ИмеетТип("Число, Строка")
+ .Равно(Результат);
+
+КонецПроцедуры
+```
+
+Поздравляю с первый реализованным тестом.
+Используя [руководство](../features) и имеющиеся тесты вы сможете дальше изучить и написать более полезные тесты для своих продуктов.
+
+Примеры тестов:
+
+* [Тестов движка](https://github.com/bia-technologies/yaxunit/tree/develop/tests/src/CommonModules)
+* Тесты других открытых проектов
+ * [bellerage-ssl](https://github.com/Bellerage-IT/bellerage-ssl/tree/master/src/cfe/yaxunit/src/CommonModules)
+ * [AdvancedGlobalSearchOneS](https://github.com/SeiOkami/AdvancedGlobalSearchOneS/tree/main/%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%D0%9F%D0%BE%D0%B8%D1%81%D0%BA.%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/src/CommonModules)
+
+Также есть [видео курс](https://www.youtube.com/playlist?list=PLQ0oWbrgHNk5RF3dfH1QexQLr38Cm03Kj), кажется годным, но все не смотрел.
diff --git a/documentation/docs/getting-started/fluent-api.md b/documentation/docs/getting-started/fluent-api.md
new file mode 100644
index 000000000..3bed79394
--- /dev/null
+++ b/documentation/docs/getting-started/fluent-api.md
@@ -0,0 +1,102 @@
+# Текучий интерфейс
+
+Большая часть публичной функциональности тестового движка YAxUnit реализована с использование [`текучих выражений (Fluent interface)`](https://ru.wikipedia.org/wiki/Fluent_interface)
+
+Основная цель их использования - улучшение читаемости кода и упрощение работы с движком. Текучие выражения хорошо зарекомендовали себя и широко применяются в других языках (примеры: [C#: builder pattern](https://metanit.com/sharp/patterns/6.1.php), [java: stream-api](https://javarush.com/groups/posts/2203-stream-api), [php: dsl](https://ru.hexlet.io/courses/php-object-oriented-design/lessons/fluent-interface/theory_unit), [C#: tests assertions](https://fluentassertions.com/introduction), [1С: текучие утверждения](https://habr.com/ru/articles/260013/), [1С: Элемент](https://its.1c.ru/db/pubelementlang/content/18/hdoc), [1С: объектная модель запроса](https://infostart.ru/1c/articles/1991009/)).
+Текучие выражения - это цепочка методов, объединенных одним контекстом, который они настраивают/обрабатывают. Он упрощает множественные вызовы методов одного и того же объекта.
+Например:
+
+```bsl title="Создание документа с использованием текучих выражений"
+ Документ = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара)
+ .Установить("Поставщик", Поставщик) // Устанавливает значение реквизита документа.
+ .Фикция("Дата") // Генерирует случайную дату.
+ .Фикция("Номер") // Генерирует случайный номер.
+ .Фикция("Склад") // Создает "пустышку" склада.
+ .Фикция("Валюта") // Создает "пустышку" валюты.
+ .ТабличнаяЧасть("Товары") // Переключает контекст на работу с табличной частью "Товары".
+ .ДобавитьСтроку() // Добавляет строку табличной части.
+ .Фикция("Товар", Новый Структура("Поставщик", Поставщик)) // Создает "пустышку" товары от конкретного поставщика.
+ .Фикция("Цена") // Генерирует случайную цену.
+ .Провести();
+```
+
+```bsl title="Проверка документа с использованием текучих выражений"
+ ЮТест.ОжидаетЧто(Документ)
+ .Свойство("Дата").Заполнено() // Проверяет, что дата документа заполнена.
+ .Свойство("Номер").Заполнено() // Проверяет, что номер документа заполнен.
+ .Свойство("Склад").Заполнено() // Проверяет, что склад документа заполнен.
+ .Свойство("Валюта").Заполнено() // Проверяет, что валюта документа заполнена.
+ .Свойство("Товары").ИмеетДлину(1) // Проверяет, что табличная часть "Товары" имеет длину 1.
+ .Свойство("Товары[0].Товар").Заполнено() // Проверяет, что товар из первой строки заполнен
+ .Свойство("Товары[0].Товар.Поставщик").Равно(Поставщик); // и имеет поставщика, равного нужному
+```
+
+Примеры выше можно было бы реализовать без использования текучих выражений, например:
+
+```bsl title="Создание документа с заполнением случайных значений"
+Документ = Документы.ПриходТовара.СоздатьДокумент();
+Документ.Поставщик = Поставщик;
+Документ.Дата = ЮТест.Данные().СлучайнаяДата();
+Документ.Номер = ЮТест.Данные().СлучайнаяСтрока();
+Документ.Склад = ЮТест.Данные().Фикция(Тип("СправочникСсылка.Склад"));
+Документ.Валюта = ЮТест.Данные().Фикция(Тип("СправочникСсылка.Валюты"));
+
+СтрокаТовары = Документ.Товары.Добавить();
+СтрокаТовары.Товар = ЮТест.Данные().Фикция(Тип("СправочникСсылка.Товары"), Новый Структура("Поставщик", Поставщик));
+СтрокаТовары.Цена = ЮТест.Данные().СлучайноеПоложительноеЧисло();
+
+Документ.Записать(РежимЗаписиДокумента.Проведение);
+Ссылка = Документ.Ссылка;
+```
+
+```bsl title="Или вариант используя конструктора, но без цепочки вызовов"
+Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара);
+Конструктор.Установить("Поставщик", Поставщик);
+Конструктор.Фикция("Дата");
+Конструктор.Фикция("Номер");
+Конструктор.Фикция("Склад");
+Конструктор.Фикция("Валюта");
+Конструктор.ТабличнаяЧасть("Товары");
+Конструктор.ДобавитьСтроку();
+Конструктор.Фикция("Товар", Новый Структура("Поставщик", Поставщик));
+Конструктор.Фикция("Цена");
+Документ = Конструктор.Провести();
+```
+
+Первый вариант (с использованием текучих выражений) не содержит "служебного" кода (обращения к документу или конструктору), таким образом концентрация полезного кода выше, меньше отвлекающих факторов и больше акцент на то, что действительно важно.
+
+Но при этом текучие выражения имеют и ряд минусов:
+
+* Проблема с отладкой, нельзя поставить точку внутри цепочки, только проход по шагам.
+* Не работает контекстная подсказка в конфигураторе (хотя она и так редко работает).
+* Необходимость привычки и использовать "правильное" форматирование (отступы).
+
+## Принцип работы текучих выражений в YAxUnit
+
+Текучие выражения работают за счет передачи контекста между вызовами, достигается это тем, что объект, реализующий интерфейс текучих выражений:
+
+* хранит внутри себя контекст(состояние)
+* возвращает сам себя из методов
+* или новый объект, передав в него текущий контекст.
+
+В языках, поддерживающих ООП, под каждый текучий интерфейс создается свой класс, хранящий контекст и предоставляющий необходимый API. В 1С это можно реализовать в виде набора обработок.
+Таким образом в YAxUnit созданы:
+
+* Конструктор объектов информационной базы, `ЮТест.Данные().КонструкторОбъекта`.
+* Конструктор объектов XDTO, `ЮТест.Данные().КонструкторОбъектаXDTO`.
+* Эмулятор выборки данных ADO.RecordSet, `ЮТест.Данные().ADORecordSet`.
+* Эмулятор запроса к http сервису, `ЮТест.Данные().HTTPСервисЗапрос`.
+
+А есть, другая часть API построенная на текучих выражения, она реализуется через общие модули и хранение состояния в глобальном контексте.
+Общие модули позволяют, в отличии от обработок:
+
+* создавать API доступный и на клиенте, и на сервере
+* избежать дублирования кода, который приводи к расхождению логики api
+* не захламлять контекстную подсказку свойствами обработки (или формы для клиента)
+* оптимизировать время работы (нет затрат на создание обработок)
+
+Дополнительно, так как контекст глобальный, не обязательно передавать объект, чтобы получить доступ к настроенному контексту.
+Например:
+
+* При регистрации теста, информация о тестах никуда не возвращается, движок, после вызова метода `ИсполняемыеСценарии`, просто считывает результат из глобального контекста.
+* Или настройки мокито, выполненные в методе теста сразу же доступны в методах других модулей (перехватываемых).
diff --git a/documentation/docs/getting-started/images/structure.png b/documentation/docs/getting-started/images/structure.png
new file mode 100644
index 000000000..3e73f353f
Binary files /dev/null and b/documentation/docs/getting-started/images/structure.png differ
diff --git a/documentation/docs/getting-started/index.md b/documentation/docs/getting-started/index.md
new file mode 100644
index 000000000..7ff83f31e
--- /dev/null
+++ b/documentation/docs/getting-started/index.md
@@ -0,0 +1,30 @@
+---
+sidebar_label: "Начало работы"
+sidebar_position: 0
+---
+
+# Начало работы
+
+YAxUnit - это расширение конфигурации с открытым исходным кодом, которое помогает в нелегком труде по написанию модульных тестов для решений на платформе 1С:Предприятие.
+
+![Отчет о тестировании](../images/report-ui.png)
+
+Прежде всего нужно пройти через [процесс установки](install/).
+
+После этого вы можете попробовать написать свой [первый тест](first-test.md) или ознакомиться с возможностями YAxUnit изучив [руководство](../features/).
+
+## Системные требования
+
+| | |
+|--------------------------------------:|-------------------------|
+| Версия платформы 1С:Предприятие | `8.3.10+` |
+| Поддерживаемые ОС | `Windows`, `Linux` |
+| Вариант встроенного языка | `Русский`, `Английский` |
+| Поддерживаемые режимы работы: | |
+| Тонкий клиент | ✅ |
+| Тонкий клиент | ✅ |
+| Толстый клиент управляемое приложение | ✅ |
+| Толстый клиент обычное приложение | ✅ |
+| Web-клиент | ❌ |
+| Файловая информационная база | ✅ |
+| Клиент-серверная информационная база | ✅ |
diff --git a/documentation/docs/install/images/compare.png b/documentation/docs/getting-started/install/images/compare.png
similarity index 100%
rename from documentation/docs/install/images/compare.png
rename to documentation/docs/getting-started/install/images/compare.png
diff --git a/documentation/docs/install/images/gh-release-content.png b/documentation/docs/getting-started/install/images/gh-release-content.png
similarity index 100%
rename from documentation/docs/install/images/gh-release-content.png
rename to documentation/docs/getting-started/install/images/gh-release-content.png
diff --git a/documentation/docs/install/images/gh-release.png b/documentation/docs/getting-started/install/images/gh-release.png
similarity index 100%
rename from documentation/docs/install/images/gh-release.png
rename to documentation/docs/getting-started/install/images/gh-release.png
diff --git a/documentation/docs/install/images/link-base-project.png b/documentation/docs/getting-started/install/images/link-base-project.png
similarity index 100%
rename from documentation/docs/install/images/link-base-project.png
rename to documentation/docs/getting-started/install/images/link-base-project.png
diff --git a/documentation/docs/install/images/plugin-install-from-rep.png b/documentation/docs/getting-started/install/images/plugin-install-from-rep.png
similarity index 100%
rename from documentation/docs/install/images/plugin-install-from-rep.png
rename to documentation/docs/getting-started/install/images/plugin-install-from-rep.png
diff --git a/documentation/docs/install/images/project-import.png b/documentation/docs/getting-started/install/images/project-import.png
similarity index 100%
rename from documentation/docs/install/images/project-import.png
rename to documentation/docs/getting-started/install/images/project-import.png
diff --git a/documentation/docs/install/install-plugin.md b/documentation/docs/getting-started/install/install-plugin.md
similarity index 76%
rename from documentation/docs/install/install-plugin.md
rename to documentation/docs/getting-started/install/install-plugin.md
index 13b60729d..250c66b3f 100644
--- a/documentation/docs/install/install-plugin.md
+++ b/documentation/docs/getting-started/install/install-plugin.md
@@ -1,8 +1,8 @@
---
-sidebar_position: 2
-sidebar_label: Установка плагина EDT
+sidebar_position: 1
+sidebar_label: Установка плагина для EDT
---
-# Установка плагина для работы с тестами в EDT
+# Установка плагина для работы с тестами
```mdx-code-block
import Tabs from '@theme/Tabs';
@@ -10,7 +10,7 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
```
-Для того, что бы вам и нам было проще писать тесты мы разработали плагин для EDT.
+Для того, что бы вам и нам было проще писать тесты мы разработали плагин для 1С:Enterprise Development Tools (EDT).
С его помощью вы сможете:
@@ -20,40 +20,34 @@ import TabItem from '@theme/TabItem';
Для установки плагина вам необходимо воспользоваться стандартным функционалом Eclipse (EDT) `Установить новое ПО...`.
-* Открываем EDT.
+* Открываем EDT.
* Переходим к `Установить новое ПО` (в меню `Справка`);
* Добавляем новый репозиторий;
- ```mdx-code-block
-
-
- ```
-
+````mdx-code-block
+
+
```url
https://bia-technologies.github.io/edt-test-runner/repository
```
-
- ```mdx-code-block
-
-
-
- ```
-
+
+
```url
https://bia-technologies.github.io/edt-test-runner/dev/repository
```
-
- ```mdx-code-block
-
-
+
+
+ ```url
+ https://bia-technologies.github.io/edt-test-runner/repository/updates/23.x
```
+
+
+````
![Установка плагина](images/plugin-install-from-rep.png)
:::tip совет
-
Для ускорения установки можно убрать галочку `Обращаться во время инсталляции ко всем сайтам ...`
-
:::
* Нажимаем далее;
@@ -61,7 +55,5 @@ import TabItem from '@theme/TabItem';
* Соглашаемся с предупреждением безопасности;
* И перезагружаем IDE.
:::note примечание
-
EDT будет долго перезагружаться и это нормально.
-
:::
diff --git a/documentation/docs/install/install.md b/documentation/docs/getting-started/install/install.md
similarity index 92%
rename from documentation/docs/install/install.md
rename to documentation/docs/getting-started/install/install.md
index a0c2108de..67148ea5e 100644
--- a/documentation/docs/install/install.md
+++ b/documentation/docs/getting-started/install/install.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 1
+sidebar_position: 0
tags: [Начало]
---
@@ -11,16 +11,16 @@ YAxUnit - это расширение для 1С:Предприятия, кот
* 1С:Предприятие версии 8.3.10 или старше
-## Установка в EDT
+## Установка в 1С:Enterprise Development Tools (EDT)
### Первичная установка тестового движка в рабочее пространство (workspace)
1. Скачаем архив [релиза](https://github.com/bia-technologies/yaxunit/releases/latest)
![Страница релиза](images/gh-release.png)
-2. Копируем из архива расширение расположенное в каталоге `exts/yaxunit/` в свой каталог с исходниками (не в воркспейс)
+2. Копируем из архива расширение расположенное в каталоге `exts/yaxunit/` в свой каталог с исходниками (не в workspace)
![Содержимое архива](images/gh-release-content.png)
-3. Импортируем проект расширения в воркспейс
+3. Импортируем проект расширения в workspace
![Импорт проекта](images/project-import.png)
4. Привязываем импортированный проект расширения к конфигурации
![Связь с базовым проектом](images/link-base-project.png)
diff --git a/documentation/docs/getting-started/recomendations.md b/documentation/docs/getting-started/recomendations.md
new file mode 100644
index 000000000..0ae812ba3
--- /dev/null
+++ b/documentation/docs/getting-started/recomendations.md
@@ -0,0 +1,12 @@
+# Рекомендации
+
+* Для того чтобы лучше понять тестирование и научиться разным приемам читайте/ищите статьи по тестированию в других языках/продуктах. Большинство практик и примеров универсальные и никак не связаны с тем, что вы тестируете, разница лишь в инструментарии.
+* Перед внедрением, когда вы уже попробовали и поняли необходимость использования тестов вам следует сразу же продумать и регламентировать
+ * Подход к организации тестов - что тестировать, что нет, как называть модули с тестами, как именовать модули помощники. Это все нужно чтобы упростить работу с тестами в будущем.
+ * Как вам валидировать "правильность" тестов, чтобы они были действительно полезными.
+
+## Внедрение
+
+* Если у вас в компании множество команд занимающихся тестированием, то вам следует:
+ * Продумать схему обновления, рекомендую использовать релизный репозиторий и обновление через git
+ * Возможно стоит создать свою версию движка на базе публичной версии, в которой вы будете собирать "помогаторы" тестирования для ваших продуктов.
\ No newline at end of file
diff --git a/documentation/docs/run/configuration.md b/documentation/docs/getting-started/run/configuration.md
similarity index 96%
rename from documentation/docs/run/configuration.md
rename to documentation/docs/getting-started/run/configuration.md
index 37122b8dd..591621c51 100644
--- a/documentation/docs/run/configuration.md
+++ b/documentation/docs/getting-started/run/configuration.md
@@ -28,12 +28,12 @@
## Параметры логирования
-| Имя параметра | Тип | Значение по умолчанию | Описание |
-|---------------|-----------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------|
-| `file` | `String` | `""` | Путь к файлу лога |
+| Имя параметра | Тип | Значение по умолчанию | Описание |
+|---------------|-----------|-----------------------|--------------------------------------------------------------------------------------------------------------------------------|
+| `file` | `String` | `""` | Путь к файлу лога |
| `enable` | `Boolean` | `Null` | Использование логирвания.
Если не указан, зависит от параметра `file` и `console`, если установлены - вкл, если нет - выкл |
-| `console` | `Boolean` | `false` | Вывод лога в stdout (консоль) |
-| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"error"` |
+| `console` | `Boolean` | `false` | Вывод лога в stdout (консоль) |
+| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"error"` |
Примеры:
diff --git a/documentation/docs/getting-started/run/images/from-configurator.png b/documentation/docs/getting-started/run/images/from-configurator.png
new file mode 100644
index 000000000..942d200e5
Binary files /dev/null and b/documentation/docs/getting-started/run/images/from-configurator.png differ
diff --git a/documentation/docs/getting-started/run/images/run-button.png b/documentation/docs/getting-started/run/images/run-button.png
new file mode 100644
index 000000000..168912ffa
Binary files /dev/null and b/documentation/docs/getting-started/run/images/run-button.png differ
diff --git a/documentation/docs/getting-started/run/images/run-configuration.png b/documentation/docs/getting-started/run/images/run-configuration.png
new file mode 100644
index 000000000..77132e57a
Binary files /dev/null and b/documentation/docs/getting-started/run/images/run-configuration.png differ
diff --git a/documentation/docs/getting-started/run/images/run-from-command-palette.png b/documentation/docs/getting-started/run/images/run-from-command-palette.png
new file mode 100644
index 000000000..1cede5ba2
Binary files /dev/null and b/documentation/docs/getting-started/run/images/run-from-command-palette.png differ
diff --git a/documentation/docs/getting-started/run/images/run-from-module.png b/documentation/docs/getting-started/run/images/run-from-module.png
new file mode 100644
index 000000000..139f1c06d
Binary files /dev/null and b/documentation/docs/getting-started/run/images/run-from-module.png differ
diff --git a/documentation/docs/getting-started/run/images/run-from-schema.png b/documentation/docs/getting-started/run/images/run-from-schema.png
new file mode 100644
index 000000000..8af3f031c
Binary files /dev/null and b/documentation/docs/getting-started/run/images/run-from-schema.png differ
diff --git a/documentation/docs/getting-started/run/run.md b/documentation/docs/getting-started/run/run.md
new file mode 100644
index 000000000..43638c47e
--- /dev/null
+++ b/documentation/docs/getting-started/run/run.md
@@ -0,0 +1,91 @@
+---
+sidebar_position: 3
+tags: [Начало]
+---
+
+# Запуск и отладка тестов
+
+В общем случае запуск тестов выполняется запуском 1С:Предприятия с параметром `RunUnitTests`. При необходимости можно указать путь к файлу [конфигурации запуска](configuration.md) для настройки прогона тестов.
+
+Для упрощения этого процесса есть другие способы.
+
+:::caution Важно
+*После загрузки расширения в информационную базу необходимо отключить у него `безопасный режим` и `защиту от опасных действий`*
+:::
+
+## Запуск из 1С:Enterprise Development Tools (EDT)
+
+Если вы используете EDT, то установив [плагин](../install/install-plugin.md) вы получаете возможность запускать тесты нажатием одной кнопки.
+
+:::info
+Все описанные ниже способы позволяют запускать тесты в режиме отладки
+:::
+
+### Конфигурация запуска
+
+Плагин добавляет в EDT новый тип конфигурации запуска приложения.
+
+![EDT](images/run-configuration.png)
+
+С ее помощью вы можете запускать тесты также как и 1С:Предприятие (кнопкой панели инструментов)
+
+![EDT](images/run-button.png)
+
+:::caution Важно
+Без созданной и настроенной конфигурации запуска модульных тестов не будут работать другие варианты запуска.
+:::
+
+### Запуск из боковой панели модуля
+
+Также плагин позволяет запускать тесты прямо из модуля для нужных методов.
+Если вы перейдете в модуль с тестами, то рядом с каждым тестовым методом вы увидите иконки запуска.
+
+![EDT](images/run-from-module.png)
+
+Кликнув по ним вы сможете запустить конкретный тест.
+При нажатии на иконку метода `ИсполняемыеСценарии` вы запустите все тесты модуля.
+
+Команды запуска добавлены в схему модуля.
+
+![EDT](images/run-from-schema.png)
+
+### Запуск из палитры команд
+
+Плагин добавляет набор различных команд для работы с тестами, среди которых есть и запуск.
+
+![EDT](images/run-from-command-palette.png)
+
+Основным ее плюсом является возможность работать с клавиатуры и не запоминать большое количество горячих клавиш.
+`Ctrl+Shift+T`, затем `Enter` и тест текущего метода запущен.
+
+## Запуск из конфигуратора
+
+Возможности конфигуратора не столь большие, поэтому есть только один способ запустить тесты.
+
+1. Создать файл конфигурации запуска
+ * [Вручную](configuration.md)
+ * С помощью [формы настройки](../../yaxunit-ui.md#интерфейс-настройки-конфигурации)
+2. Указать путь к файлу конфигурации запуска в параметрах запуска
+
+ ![Конфигуратор](images/from-configurator.png)
+
+:::tip
+При разработки/отладке тестов полезно держать открытой [форму настройки](../../yaxunit-ui.md#интерфейс-настройки-конфигурации) для быстрой перенастройки запускаемых тестов. Сначала запустил тесты модуля, потом в той же форме убрали "зеленые", сохранили настройку в тот же файл и выполнили отладку нужных тестов, запустив их из конфигуратор.
+:::
+
+## Запуск из предприятия
+
+Для запуска тестов из предприятия необходимо воспользоваться командой [Запуск тестирования](../../yaxunit-ui.md#запуск-тестов)
+
+![Запуск тестов](../../images/ui-run-tests.png)
+
+## Строка запуска предприятия
+
+`[путь к клиенту 1С] ENTERPRISE [Параметры подключения к ИБ] [Параметры авторизации] /C RunUnitTests=/путь/к/конфигурационному/файлу`
+
+Для формирования строки запуска можно воспользоваться [интерфейсом настройки](../../yaxunit-ui.md#интерфейс-настройки-конфигурации)
+
+Пример:
+
+`"C:\Program Files\1cv8\8.3.18.1698\bin\1cv8c.exe" ENTERPRISE /IBName MyInfoBase /N Admin /C RunUnitTests=C:\tmp\test-config.json`
+ Запуск тестов в режиме тонкого клиента на информационной базе `MyInfoBase` под пользователем `Admin` по конфигурации указанной в файле `C:\tmp\test-config.json`
diff --git a/documentation/docs/getting-started/structure.md b/documentation/docs/getting-started/structure.md
new file mode 100644
index 000000000..98d55e071
--- /dev/null
+++ b/documentation/docs/getting-started/structure.md
@@ -0,0 +1,79 @@
+# Организация тестов
+
+## Расширение с тестами
+
+Тесты размещаются в расширениях конфигурации, вы можете их совместить с движком, либо создать отдельное расширение.
+
+* Вместе с движком.
+ * Доступна контекстная подсказка.
+ * Сложнее обновлять движок, необходимо воспользоваться сравнением-объединением.
+* В отдельном расширении.
+ * Нет подсказки по методам движка.
+ * Движок обновляется загрузкой/заменой.
+ * Проще переключаться между версиями.
+ * Движок можно не хранить в репозитории проекта.
+
+Мы в своих проектах используем первый вариант, так как удобство и экономия времени каждым разработчиком от контекстной подсказки перевешивает минус ручного обновления.
+
+![Тесты движка](images/structure.png)
+
+## Тестовые модули
+
+Тесты располагаются в общих модулях (не заимствованных).
+Тестовые модули (наборы тестов объекта) состоят из следующих блоков:
+
+* Метод регистрации тестов `ИсполняемыеСценарии`.
+ В методе регистрации необходимо [перечислить все тесты](../features/test-registration.md) и, при необходимости, выполнить настройку.
+* Реализация тестов, тестовые методы, собственно сами тесты.
+* [Обработчики событий](../features/events.md), при необходимости.
+
+Принято на один тестируемый модуль объекта создавать один общий модуль с тестами, например, тесты на модуль объекта и отдельно тесты на модуль менеджера.
+
+Также полезно использовать регламент наименования тестовых модулей, так чтобы вам проще было с ними работать в будущем, облегчить навигацию.
+
+Рекомендуем рассмотреть схему именования для EDT и если ее соблюдать, вы сможете с легкостью переключатся между тестом и тестируемым методом.
+
+### Схема наименования модулей
+
+Все тесты должны располагаться в общих модулях.
+
+Имя тестового модуля должно соответствовать шаблону `[Префикс типа объекта_][Имя проверяемого объект]{_Суффикс типа модуля}`, где суффикс не обязателен, но крайне желателен.
+
+По правильно названному модулю мы можем с легкостью получить информацию о типе тестируемого объекта и его имени, а также тип его модуля, методы которого проверяем. Список поддерживаемых суффиксов и префиксов приведен в таблицах ниже.
+
+#### Префиксы типов объекта
+
+| Тип тестируемого объекта | Префикс | Пример |
+| ------------------------ | ------- | ------------------------------------------- |
+| Общий модуль | `ОМ_` | ОМ_ОбщегоНазначения |
+| Регистр бухгалтерии | `РБ_` | РБ_Хозрасчетный, РБ_Хозрасчетный_НЗ |
+| Регистр накопления | `РН_` | РН_ОстаткиНаСкладах, РН_ОстаткиНаСкладах_ММ |
+| Регистр расчета | `РР_` | РР_Зарплата, РР_Зарплата_НЗ |
+| Регистр сведений | `РС_` | РС_АдресныйКлассификатор |
+| Бизнес процесс | `БП_` | БП_Согласование |
+| Справочник | `Спр_` | Спр_Пользователи, Спр_Пользователи_МО |
+| План счетов | `ПС_` | ПС_Хозрасчетный |
+| План видов расчета | `ПВР_` | ПВР_Зарплатный |
+| План видов характеристик | `ПВХ_` | ПВХ_Субконто, ПВХ_Субконто_ММ |
+| Документ | `Док_` | Док_ПКО |
+| Перечисление | `Пер_` | Пер_СтатусСогласования |
+| План обмена | `ПО_` | ПО_РИБ, ПО_РИБ_ММ |
+| Задача | `Зад_` | Зад_Задача |
+| Обработка | `Обр_` | Обр_ЗакрытиеМесяца, Обр_ЗакрытиеМесяца_МО |
+| Отчет | `Отч_` | Отч_УниверсальныйОтчет |
+
+#### Суффиксы типов модулей
+
+| Тип тестируемого модуля | Суффикс | Пример |
+| ----------------------- | -------------- | ------------------------------------------ |
+| Общий модуль | `<Без суффикса>` | ОМ_ОбщегоНазначения |
+| Модуль объекта | `_МО` | Спр_Пользователи_МО, Обр_ЗакрытиеМесяца_МО |
+| Модуль менеджера | `_ММ` | ПВХ_Субконто_ММ, ПО_РИБ_ММ |
+| Модуль набора записей | `_НЗ` | РБ_Хозрасчетный_НЗ, РР_Зарплата_НЗ |
+
+## Тестовые методы
+
+Тест состоит из двух обязательных частей:
+
+* Регистрация в методе `ИсполняемыеСценарии`
+* Реализация теста.
diff --git a/documentation/docs/images/report-ui.png b/documentation/docs/images/report-ui.png
index 87842ff29..12d9e46b9 100644
Binary files a/documentation/docs/images/report-ui.png and b/documentation/docs/images/report-ui.png differ
diff --git a/documentation/docs/images/ui-run-menu.png b/documentation/docs/images/ui-run-menu.png
index 1f1bd4a5c..e08bbd8dc 100644
Binary files a/documentation/docs/images/ui-run-menu.png and b/documentation/docs/images/ui-run-menu.png differ
diff --git a/documentation/docs/images/ui-run-tests.png b/documentation/docs/images/ui-run-tests.png
index 811e7fb74..6b545fd90 100644
Binary files a/documentation/docs/images/ui-run-tests.png and b/documentation/docs/images/ui-run-tests.png differ
diff --git a/documentation/docs/run/images/from-configurator.png b/documentation/docs/run/images/from-configurator.png
deleted file mode 100644
index cb83544d2..000000000
Binary files a/documentation/docs/run/images/from-configurator.png and /dev/null differ
diff --git a/documentation/docs/run/images/from-edt.png b/documentation/docs/run/images/from-edt.png
deleted file mode 100644
index f6a1986c8..000000000
Binary files a/documentation/docs/run/images/from-edt.png and /dev/null differ
diff --git a/documentation/docs/run/run.md b/documentation/docs/run/run.md
deleted file mode 100644
index 11e44b1b5..000000000
--- a/documentation/docs/run/run.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Запуск
-
-Для запуска тестов необходимо запустить 1С:Предприятие с параметром `RunUnitTests`, при необходимости можно указать путь к файлу [конфигурации запуска](configuration.md).
-
-:::caution Важно
-*После загрузки расширения в информационную базу необходимо отключить у него `безопасный режим` и `защиту от опасных действий`*
-:::
-
-## Запуск из EDT
-
-Для запуска тестов из EDT необходимо установить [плагин](../install/install-plugin.md), либо вручную создать файл [конфигурации запуска](configuration.md) и указать его в параметрах запуска.
-
-![EDT](images/from-edt.png)
-
-## Запуск из конфигуратора
-
-Для запуска тестов из конфигуратора вы можете
-
-* Вручную создать файл [конфигурации запуска](configuration.md) и указать его в параметрах запуска
- ![Конфигуратор](images/from-configurator.png)
-* Воспользоваться [интерфейсом настройки](../yaxunit-ui.md#интерфейс-настройки-конфигурации)
-
-## Запуск из предприятия
-
-Для запуска тестов из предприятия необходимо воспользоваться командой [Запуск тестирования](../yaxunit-ui.md#запуск-тестов)
-
-![Запуск тестов](../images/ui-run-tests.png)
-
-## Строка запуска предприятия
-
-`[путь к клиенту 1С] ENTERPRISE [Параметры подключения к ИБ] [Параметры авторизации] /C RunUnitTests=/путь/к/конфигурационному/файлу`
-
-Для формирования строки запуска можно воспользоваться [интерфейсом настройки](../yaxunit-ui.md#интерфейс-настройки-конфигурации)
-
-Пример:
-
-`"C:\Program Files\1cv8\8.3.18.1698\bin\1cv8c.exe" ENTERPRISE /IBName MyInfoBase /N Admin /C RunUnitTests=C:\tmp\test-config.json`
- Запуск тестов в режиме тонкого клиента на информационной базе `MyInfoBase` под пользователем `Admin` по конфигурации указанной в файле `C:\tmp\test-config.json`
diff --git a/documentation/docs/user-api/assertions/assertions-base.md b/documentation/docs/user-api/assertions/assertions-base.md
deleted file mode 100644
index dff8c667d..000000000
--- a/documentation/docs/user-api/assertions/assertions-base.md
+++ /dev/null
@@ -1,233 +0,0 @@
----
-tags: [Начало, Утверждения]
----
-
-# Базовые утверждения
-
-Утверждения для проверки значений
-
-Доступ к утверждениям обеспечивает метод `ЮТест.ОжидаетЧто`, который возвращает инициализированный модуль `ЮТУтверждения`, реализующий работу с утверждениями.
-
-:::tip
-Не рекомендуется обращаться к модулю `ЮТУтверждения` напрямую, используйте `ЮТест.ОжидаетЧто`
-:::
-
-* Реализован минимально необходимый набор проверок
-* Большая часть методов - это сравнения фактического и ожидаемого результатов, но есть несколько методов настройки
- * `Что` - устанавливает проверяемый объект. Все дальнейшие проверки будут выполняется с этим объектом
- * `Метод` - устанавливает имя и параметры проверяемого метода. Для проверки методов имеются утверждения `ВыбрасываетИсключение` и `НеВыбрасываетИсключение`
- * `Параметр` - добавляет параметр метода. Создан для удобства установки параметров проверяемого метода
- * `Свойство` - устанавливает проверяемое свойство и проверяет его наличие.
- * Последующие проверки, вызванные после этого метода, будут относиться к свойству объекта.
- Например, `ЮТест.ОжидаетЧто(Контекст).Свойство("ИмяМетода").Равно("МетодБезИсключение")` эквивалентно проверке `Контекст.ИмяМетода = "МетодБезИсключение"`
-* Методы работы со свойствами позволяют указывать цепочку свойств (доступ к вложенным свойствам через точку)
- Например:
- * `Свойство("Контекст.ИмяМетода")` - вложенное свойство
- * `ИмеетСвойство("Контекст.ПараметрыМетода[0]")` - элемент вложенной коллекции
- * `НеИмеетСвойства("[0].Свойство")` - свойство элемента коллекции
-* Все методы имеют параметр `ОписаниеПроверки` для описания конкретной проверки
-
-## Доступные методы
-
-:::tip
-Полный и актуальный набор методов смотрите в описании API
-:::
-
-### Сравнение значений
-
-* `Равно` - проверка на равенство конкретному значению. Для сериализуемых объектов идет сравнение по значению
-* `НеРавно` - проверка на не равенство конкретному значению. Для сериализуемых объектов идет сравнение по значению
-* `Больше` - проверяемое значение должно быть больше указанного
-* `БольшеИлиРавно` - проверяемое значение должно быть больше или равно указанному
-* `Меньше` - проверяемое значение должно быть меньше указанного
-* `МеньшеИлиРавно` - проверяемое значение должно быть меньше или равно указанному
-* `ЭтоНеопределено` - проверяемое значение должно быть равно `Неопределено`
-* `ЭтоНеНеопределено` - проверяемое значение должно быть не равно `Неопределено`
-* `ЭтоNull` - проверяемое значение должно быть равно `Null`
-* `ЭтоНеNull` - проверяемое значение должно быть не равно `Null`
-* `ЭтоИстина` - проверяемое значение должно быть истиной
-* `ЭтоНеИстина` - проверяемое значение не должно быть истиной
-* `ЭтоЛожь` - проверяемое значение должно быть ложью
-* `ЭтоНеЛожь` - проверяемое значение не должно быть ложью
-
-### Проверка заполненности
-
-* `Заполнено` - проверяет заполненность значения
-* `НеЗаполнено` - проверяет незаполненность значения
-* `Существует` - проверяет существование (не равно `Null` и `Неопределено`) значения
-* `НеСуществует` - проверяет не существование (не равно `Null` и `Неопределено`) значения
-
-### Проверка строк
-
-* `ИмеетДлину` - проверяет, что строка имеет указанную длину
-* `ИмеетДлинуБольше` - проверяет, что длин строки больше указанной
-* `ИмеетДлинуМеньше` - проверяет, что длина строки меньше указанной
-* `НеИмеетДлину` - проверяет, что длина строки отличается от указанной
-* `Содержит` - проверяемая строка содержит указанную подстроку
-* `НеСодержит` - проверяемая строка не содержит указанную подстроку
-* `НачинаетсяС` - проверяемая строка начинается с указанной строки
-* `ЗаканчиваетсяНа` - проверяемая строка заканчивается на указанную строку
-* `СодержитСтрокуПоШаблону` - проверяемая строка содержит подстроку, соответствующую регулярному выражению
-* `НеСодержитСтрокуПоШаблону` - проверяемая строка не содержит подстроку, соответствующую регулярному выражению
-
-### Проверка вхождения значения в интервал
-
-* `МеждуВключаяГраницы` - проверяемое значение находиться в указанному интервале (включая границы)
-* `МеждуИсключаяГраницы` - проверяемое значение находиться в указанному интервале (исключая границы)
-* `МеждуВключаяНачалоГраницы` - проверяемое значение находиться в указанному интервале (включая левую границу и исключая правую)
-* `МеждуВключаяОкончаниеГраницы` - проверяемое значение находиться в указанному интервале (исключая левую границу и включая правую)
-
-### Проверка типа значения
-
-* `ИмеетТип` - проверяемое значение должно иметь указанный тип
-* `НеИмеетТип` - тип проверяемого значения должен отличаться от указанного
-
-### Проверка выполнения метода
-
-* `ВыбрасываетИсключение` - проверят, что указанный метод объекта выбрасывает исключение
-* `НеВыбрасываетИсключение` - проверят, что указанный метод объекта не выбрасывает исключение
-
-### Проверка наличия свойств/реквизитов
-
-* `ИмеетСвойство` - проверяемый объект должен содержать указанное свойство
-* `НеИмеетСвойства` - проверяемый объект не содержит указанное свойство
-* `ИмеетСвойстваРавные` - проверяемый объект должен содержать указанный набор свойств/реквизитов и значений
-
-### Проверка коллекции
-
-* `ИмеетДлину` - проверяет, что коллекция имеет указанный размер
-* `ИмеетДлинуБольше` - проверяет, что коллекция имеет размер, который больше указанного
-* `ИмеетДлинуМеньше` - проверяет, что коллекция имеет размер, который меньше указанного
-* `НеИмеетДлину` - проверяет, что размер коллекции отличается от указанного
-* `Содержит` - проверяемая коллекция должна содержать указанный элемент
-* `НеСодержит` - проверяемая коллекция не должна содержать указанный элемент
-* `КаждыйЭлементСодержитСвойство` - проверяет, что каждый элемент коллекции имеет указанное свойство
-* `КаждыйЭлементСодержитСвойствоСоЗначением` - проверяет, что каждый элемент коллекции имеет указанное свойство, которое равно ожидаемому значению
-* `ЛюбойЭлементСодержитСвойство` - проверяет, что в коллекции есть элемент содержащий указанное свойство
-* `ЛюбойЭлементСодержитСвойствоСоЗначением` - проверяет, что в коллекции есть элемент содержащий указанное свойство, которое равно ожидаемому значению
-* `КаждыйЭлементСоответствуетПредикату` - проверяет, что элементы коллекции соответствуют переданным условиям
-* `ЛюбойЭлементСоответствуетПредикату` - проверяет, что коллекция содержит элемент, который соответствует переданным условиям
-
-### Проверка на соответствие набору условий, предикату
-
-* `СоответствуетПредикату` - проверяет, что объект или его свойство соответствует набору условий
-* `КаждыйЭлементСоответствуетПредикату` - проверяет, что элементы коллекции соответствуют переданным условиям
-* `ЛюбойЭлементСоответствуетПредикату` - проверяет, что коллекция содержит элемент, который соответствует переданным условиям
-* `Содержит` - проверяемая коллекция должна содержать элемент, который соответствует переданным условиям
-* `НеСодержит` - проверяемая коллекция не должна содержать элемент, который соответствует переданным условиям
-
-### Проверка методов объекта
-
-Для проверки работы методов объекта есть набор утверждений среди описанных выше (`ВыбрасываетИсключение` и `НеВыбрасываетИсключение`), но для их работы необходимо выполнить предварительные настройки.
-Нужно указать какой методы объекта мы хотим проверить и с какими параметрами, для этого имеются следующие методы api
-
-* `Метод` - устанавливает имя и параметры проверяемого метода
-* `Параметр` - добавляет параметр метода. Создан для удобства установки параметров проверяемого метода
-
-### Методы позиционирования
-
-В дополнении к указанным методам утверждений есть возможность применить их к вложенным свойствам. Например, проверить, наличие заполненной табличной части документа используя выражение `ОжидаетЧто(Документ).Свойство("Товары").Заполнено()`.
-Используя методы `Свойство` и `Элемент` можно позиционировать утверждения на вложенный реквизит/элемент.
-
-* `Свойство` - проверяет наличие свойства и позиционирует дальнейшие проверки на указанном свойстве
-* `Элемент` - проверяет наличие элемента коллекции и позиционирует дальнейшие проверки на указанном элементе
-* `Объект` - позиционирует дальнейшие проверки на объекте, указанном в методе `Что`
-* `НетСвойства` - проверяет отсутствие свойства и позиционирует дальнейшие проверки на объекте, указанном в методе `Что`
-
-## Примеры
-
-### Базовые проверки
-
-```bsl
-ЮТест.ОжидаетЧто(2 + 3, "2 + 3") // Используя модуль утверждений установим проверяемое значение и пояснение
- .ИмеетТип("Число") // Проверим тип
- .Заполнено() // Заполненность проверяемого значения
- .Больше(0) // Сравним с нулем
- .Равно(5); // Проверим ожидаемый результат
-```
-
-### Проверка сложного объекта
-
-```bsl
-Объект = ЮТОбщий.ЗначениеВМассиве("1", "2", "3");
-ЮТУтверждения.Что(Объект, "Проверка элементов массива")
- .Содержит("1")
- .НеСодержит(1)
- .Элемент(0).Равно("1")
- .Элемент(1).Равно("2")
- .Элемент(-1).Равно("3")
- .Свойство("[00]").Равно("1")
- .Свойство("[1]").Равно("2")
- .Свойство("[-1]").Равно("3")
- .НетСвойства(3)
- .НеИмеетСвойства("[3]");
-
-Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2)));
-ЮТУтверждения.Что(Объект, "Проверка свойства элемента массива")
- .Свойство("[3].Первый").Равно(1)
- .Свойство("[3].Второй[-1]").Равно(2)
- .Свойство("[3].Второй[0]").Равно(2)
-```
-
-### Проверка вызова метода
-
-```bsl
-ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
- .НеВыбрасываетИсключение()
- .НеВыбрасываетИсключение("Ожидаемое исключение");
-ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение", 2))
- .ВыбрасываетИсключение("Слишком много фактических параметров");
-ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
- .ВыбрасываетИсключение("Исключение");
-ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодБезИсключение")
- .ВыбрасываетИсключение("Недостаточно фактических параметров");
-```
-
-### Проверка соответствия предикату
-
-```bsl
-Дата = ЮТест.Данные().СлучайнаяДата();
-
-Объект = Новый Структура;
-Объект.Вставить("Число", 1);
-Объект.Вставить("Строка", "1");
-Объект.Вставить("Дата", Дата);
-Объект.Вставить("Массив", ЮТОбщий.ЗначениеВМассиве(1, "1"));
-
-ПроверкаЧисла = ЮТест.Предикат().Реквизит("Число")
- .ИмеетТип(Тип("Число"))
- .БольшеИлиРавно(1)
- .МеньшеИлиРавно(10)
- .Получить();
-ПроверкаДаты = ЮТест.Предикат().Реквизит("Дата")
- .ИмеетТип(Новый ОписаниеТипов("Дата"))
- .Равно(Дата)
- .Получить();
-
-ЮТест.ОжидаетЧто(Объект)
- .СоответствуетПредикату(ЮТест.Предикат()
- .Заполнено()
- .ИмеетТип("Структура"))
- .СоответствуетПредикату(ПроверкаЧисла)
- .СоответствуетПредикату(ПроверкаДаты)
-;
-```
-
-### Проверка элементов коллекции на соответствие предикату
-
-```bsl
-ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C11", ОписанияТипов);
-Ютест.ОжидаетЧто(ТаблицаРезультатов)
- .ИмеетТип("Массив")
- .ИмеетДлину(3)
- .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
- .Реквизит("Товар").Заполнено().ИмеетТип("СправочникСсылка.Товары")
- .Реквизит("Период").Заполнено().ИмеетТип("Дата")
- .Реквизит("Количество").Заполнено().ИмеетТип("Число")
- .Реквизит("Цена").Заполнено().ИмеетТип("Число")
- )
-```
diff --git a/documentation/docs/user-api/assertions/assertions-db.md b/documentation/docs/user-api/assertions/assertions-db.md
deleted file mode 100644
index 290dda00f..000000000
--- a/documentation/docs/user-api/assertions/assertions-db.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-tags: [Начало, Утверждения, ДанныеИБ]
----
-
-# Утверждения для проверки данных информационной базы
-
-Большая часть тестируемых методов так или иначе оставляет свой след в базе, создает или изменяет записи в ИБ.
-
-Для проверки правильности работы метода нам необходимо проверить, что изменилось в базе. В этом могут помочь утверждения проверяющие записи ИБ.
-
-Доступ к утверждениям обеспечивает метод `ЮТест.ОжидаетЧтоТаблицаБазы`, который возвращает инициализированный модуль `ЮТУтвержденияИБ`, реализующий работу с утверждениями для ИБ.
-
-Утверждения позволяют проверить наличие и отсутствие записей по различным условиям, для задания условий используются [предикаты](../predicates.md)
-
-```bsl
- ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
- .НеСодержитЗаписи(); // В базе нет товаров
- ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
- .СодержитЗаписи(); // В базе есть товары
- ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
- .СодержитЗаписи(ЮТест.Предикат() // В базе есть товары определенного поставщика
- .Реквизит("Поставщик").Равно(ДанныеСправочника.Поставщик));
- ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.КурсыВалют")
- .НеСодержитЗаписи(ЮТест.Предикат() // Курс валюты не установлен
- .Реквизит("Валюта").Равно(ДанныеРегистра.Валюта)
- .Реквизит("Период").БольшеИлиРавно(ДанныеРегистра.Период));
-```
-
-## Доступные методы
-
-* `СодержитЗаписи` - проверяет наличие записей по условиям
-* `НеСодержитЗаписи` - проверяет отсутствие записей по условиям
-* `СодержитЗаписиСНаименованием` - проверяет наличие в таблице записей с указанным наименованием
-* `СодержитЗаписиСКодом` - проверяет наличие в таблице записей с указанным кодом
-* `СодержитЗаписиСНомером` - проверяет наличие в таблице записей с указанным номером
-* `НеСодержитЗаписиСНаименованием` - проверяет отсутствие в таблице записей с указанным наименованием
-* `НеСодержитЗаписиСКодом` - проверяет отсутствие в таблице записей с указанным кодом
-* `НеСодержитЗаписиСНомером` - проверяет отсутствие в таблице записей с указанным номером
-
-:::tip
-
-[Предлагайте](https://github.com/bia-technologies/yaxunit/issues) и [добавляйте](https://github.com/bia-technologies/yaxunit/pulls) свои утверждения
-
-:::
\ No newline at end of file
diff --git a/documentation/docs/user-api/assertions/assertions.md b/documentation/docs/user-api/assertions/assertions.md
deleted file mode 100644
index 78cbca29c..000000000
--- a/documentation/docs/user-api/assertions/assertions.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-tags: [Начало, Утверждения]
----
-
-# Утверждения
-
-Каждый тестовый сценарий должен проверить результат работы тестируемого метода, будь то функция или процедура.
-
-Для написания таких проверок реализован механизм утверждений, позволяющий в лаконичной форме описать свои ожидания, требования к результату.
-
-
-Как и большая часть API, утверждения реализованы по модели [текучих выражений](https://ru.wikipedia.org/wiki/Fluent_interface), с целью повышения удобства и читаемости тестов
-
- ```bsl
- ЮТест.ОжидаетЧто(Контекст)
- .ИмеетТип("Структура")
- .Свойство("ПрефиксОшибки").Равно("Контекст метода с параметрами")
- .Свойство("ИмяМетода").Заполнено().Равно("МетодБезИсключение")
- .Свойство("ПараметрыМетода").ИмеетТип("Массив").ИмеетДлину(1);
- ```
-
-YaxUnit содержит утверждения для:
-
-* Проверки [значений](assertions-base.md#доступные-методы)
-* Проверки [методов объекта на выброс исключений](assertions-base.md#проверка-методов-объекта)
-* Проверки [данных информационной базы](assertions-db.md)
\ No newline at end of file
diff --git a/documentation/docs/user-api/context.md b/documentation/docs/user-api/context.md
deleted file mode 100644
index 46a2e8a09..000000000
--- a/documentation/docs/user-api/context.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-tags: [Начало, Контекст]
----
-
-# Контекст
-
-## Механизм контекстов
-
-Одним из важнейших блоков работы тестового движка является механизм контекстов.
-
-Он позволяет:
-
-1. Хранить промежуточные данные и обеспечивать работу механизма текучих выражений.
-2. Передавать между тестами необходимые данные.
-3. Удалять тестовые данные.
-
-И имеет несколько ограничений:
-
-1. Не синхронизируется между клиентом и сервером.
-2. Тестовые контексты имеют ограниченное время жизни. Например, контекст теста "живет" только в рамках теста и событиях "ПередКаждымТестом", "ПослеКаждогоТеста".
-
-Для различных механизмов движка существуют различные контексты, такие как контекст утверждений, контекст теста и тд.
-
-## Контексты тестового модуля
-
-Разработчику тестов будут интересны следующие контексты:
-
-* Контекст теста (`ЮТест.КонтекстТеста`) - живет в рамках одного теста. Доступен в каждом тесте и в обработчиках событий
- * `ПередКаждымТестом`
- * `ПослеКаждогоТеста`
-* Контекст тестового набора (`ЮТест.КонтекстТестовогоНабора`) - живет в рамках набора тестов. Доступен в каждом тесте набора и в обработчиках событий
- * `ПередТестовымНабором`
- * `ПослеТестовогоНабора`
- * `ПередКаждымТестом`
- * `ПослеКаждогоТеста`
-* Контекст тестового модуля (`ЮТест.КонтекстМодуля`) - живет в рамках тестового модуля. Доступен в каждом тесте модуля и в обработчиках событий
- * `ПередВсемиТестами`
- * `ПослеВсехТестов`
- * `ПередТестовымНабором`
- * `ПослеТестовогоНабора`
- * `ПередКаждымТестом`
- * `ПослеКаждогоТеста`
-
-На каждом уровне исполнения есть возможность переопределить обработчики событий соответствующего контекста исполнения при помощи методов `Перед()` и `После()`. Настроенный обработчик события будет вызван _вместо_ основного. Пример:
-```bsl
-ЮТТесты
- .ДобавитьТестовыйНабор("Набор1") // Будет вызван основной обработчик ПередТестовымНабором()
- .ДобавитьТест("Тест1")
- .ДобавитьТестовыйНабор("Набор2").Перед("Перед_Набор2") // Будет вызван обработчик Перед_Набор2()
- .ДобавитьТест("Тест2");
-
-```
diff --git a/documentation/docs/user-api/index.md b/documentation/docs/user-api/index.md
deleted file mode 100644
index 6e7112fa1..000000000
--- a/documentation/docs/user-api/index.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-tags: [Начало]
----
-
-# Пользовательский API
-
-Для разработчиков тестов расширение предоставляет API:
-
-* [Регистрации тестовых сценариев](test-registration.md)
-* Формирования [утверждений](assertions/assertions.md) для проверки результата работы различных механизмов системы.
-* Создания [тестовых данных](test-data/test-data.md)
-* Сохранения состояния и обмена данными между тестами используя [контекст](context.md)
-* [Подмены](mockito.md) алгоритмов работы системы
-* [Предикаты](predicates.md), которые используются во многих механизмах движка
-* Методы [получения данных](queries.md) информационной базы
-* [Интерфейс](yaxunit-ui.md) для просмотра отчета и настройки параметров запуска тестов
-
-Доступ к API осуществляется через методы модуля `ЮТест`, например
-
-* `ЮТест.Данные()` для доступа к методам работы с тестовыми данными
-* `ЮТест.ОжидаетЧто()` для доступа к утверждения
-
-:::tip
-Не рекомендуется обращаться к модулям API напрямую, используйте `ЮТест`
-:::
diff --git a/documentation/docs/user-api/mockito.md b/documentation/docs/user-api/mockito.md
deleted file mode 100644
index 95d3e2eb3..000000000
--- a/documentation/docs/user-api/mockito.md
+++ /dev/null
@@ -1,285 +0,0 @@
----
-tags: [Начало, Мокирование]
----
-
-# Мокито
-
-Мокито - модуль созданный по образу популярного java-фреймворка для тестирования [Mockito](https://site.mockito.org/). Расширяет возможности тестирования, позволяет легко менять логику работы системы подменяя результаты работы методов, отключая какие-либо алгоритмы и проверки.
-
-Юнит-тесты, это тесты конкретных методов в отрыве от системы - контролировать данные используемые методом, изменение логики и ошибки других объектов не должны аффектить на тест.
-В реальных конфигурациях объекты тесно связаны друг с другом, поэтому добиться контроля влияющих данных очень сложно. Обычно приходится создавать большой объем тестовых данных. А добиться изоляции от изменения логики других объектов почти невозможно. Мокирование же позволяет изменить логику работы системы таким образом, чтобы тестируемый метод не вызывал другие методы и использовал уже подготовленные данные. Например, для тестирования проведения реализации товаров мы можем подменить результат функции формирующей таблицу проводок и избежать сложной подготовки данных.
-
-С помощью Мокито разработчик указывает, что делать при вызове определенных методов - вернуть нужный результат, вызвать исключение или просто не трогать ненужные методы. После тестирования разработчик может запросить и проверить статистику о вызовах, как и какие методы были вызваны.
-
-Пример:
-
-```bsl
-ОтветСерверы = ОтветУспешногоЗапроса("Серверы");
-ОтветДиски = ОтветУспешногоЗапроса("Диски");
-
-Мокито.Обучение(РаботаСHTTP)
- .Когда(РаботаСHTTP.ВыполнитьЗапрос(ПараметрыПодключения, "/hosts", "GET"))
- .Вернуть(ОтветСерверы)
- .Когда(РаботаСHTTP.ВыполнитьЗапрос(ПараметрыПодключения, "/disks", "GET"))
- .Вернуть(ОтветДиски)
- .Прогон();
-
-Результат = БиллингДрайверГипервизорNutanix.Серверы(ПараметрыПодключения);
-```
-
-В этом примере изменяется работа модуля `РаботаСHTTP`, для функции `ВыполнитьЗапрос`, вызванной с нужными параметрами будет возвращено подготовленное значение, а сам метод не будет вызван.
-Мы получим ожидаемые ответы на запросы к сторонней системе и уйдет от проблем связанных с ней - недоступность, изменение контрактов и т.д.
-
-Работа с Мокито делится на 3 стадии:
-
-```mermaid
-flowchart LR
- training(Обучение) --> run(Прогон, запуск тестового метода)
- run --> check(Проверка)
-```
-
-* [Обучение](#обучение) - настраиваем поведение методов системы
-* [Прогон](#прогон) - выполнение теста целевого метода
-* [Проверка](#проверка) - анализ вызовов
-
-## Использование
-
-### Настройка мокируемых методов
-
-Для работы Мокито вам необходимо добавить интересующие методы в тестовое расширение.
-
-Эта позволит управлять поведением метода:
-
-* подменять результат во время выполнения теста
-* использовать явный вызов метода с параметрами на стадии обучения, например `Мокито.Обучение(Справочники.ИсточникиДанных).Когда(Справочники.ИсточникиДанных.СохраненныеБезопасныеДанные(Справочник)).Вернуть(Результат)`
-* использовать явный вызов метода с параметрами на стадии проверки, например `Мокито.Проверить(Справочники.ИсточникиДанных).КоличествоВызовов(Справочники.ИсточникиДанных.СохраненныеБезопасныеДанные(Справочник)).Больше(1)`
-
-Примеры добавления методов в расширение.
-
-#### Метод общего модуля
-
-Добавляем обработку метода `ИнициализироватьВнешнююКомпоненту` общего модуля `ОбщегоНазначенияКлиентСервер`
-
-```bsl
-&Вместо("ИнициализироватьВнешнююКомпоненту")
-Функция ЮТИнициализироватьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ВызыватьИсключение, ПаузаЧерезКомпоненту) Экспорт
- // Собираем параметры в массив
- ПараметрыМетода = Мокито.МассивПараметров(ИмяМакета, ИмяКомпоненты, ВызыватьИсключение, ПаузаЧерезКомпоненту);
-
- // Отправляем данные на анализ
- ПрерватьВыполнение = Ложь;
- Результат = Мокито.АнализВызова(ОбщегоНазначенияКлиентСервер, "ИнициализироватьВнешнююКомпоненту", ПараметрыМетода, ПрерватьВыполнение);
-
- // Обрабатываем результат анализа
- Если НЕ ПрерватьВыполнение Тогда
- Возврат ПродолжитьВызов(ИмяМакета, ИмяКомпоненты, ВызыватьИсключение, ПаузаЧерезКомпоненту);
- Иначе
- Возврат Результат;
- КонецЕсли;
-КонецФункции
-```
-
-#### Метод модуля менеджера
-
-Добавляем обработку метода `СохраненныеБезопасныеДанные` модуля менеджера справочника `Справочники.ИсточникиДанных`
-
-```bsl
-&Вместо("СохраненныеБезопасныеДанные")
-Функция ЮТСохраненныеБезопасныеДанные(Владелец, Знач Ключи) Экспорт
-
- // Собираем параметры в массив
- ПараметрыМетода = Мокито.МассивПараметров(Владелец, Ключи);
-
- // Отправляем данные на анализ
- ПрерватьВыполнение = Ложь;
- Результат = Мокито.АнализВызова(Справочники.ИсточникиДанных, "СохраненныеБезопасныеДанные", ПараметрыМетода, ПрерватьВыполнение);
-
- // Обрабатываем результат анализа
- Если НЕ ПрерватьВыполнение Тогда
- Возврат ПродолжитьВызов(Владелец, Ключи);
- Иначе
- Возврат Результат;
- КонецЕсли;
-
-КонецФункции
-```
-
-#### Метод модуля объекта
-
-Добавляем обработку приватного метода `ПеренестиДанныеВБезопасноеХранилище` модуля объекта справочника `Справочники.ИсточникиДанных`
-
-```bsl
-&Вместо("ПеренестиДанныеВБезопасноеХранилище")
-Функция ЮТПеренестиДанныеВБезопасноеХранилище(Ключи)
-
- // Собираем параметры в массив
- ПараметрыМетода = Мокито.МассивПараметров(Ключи);
-
- // Отправляем данные на анализ
- ПрерватьВыполнение = Ложь;
- Результат = Мокито.АнализВызова(ЭтотОбъект, "ПеренестиДанныеВБезопасноеХранилище", ПараметрыМетода, ПрерватьВыполнение);
-
- // Обрабатываем результат анализа
- Если НЕ ПрерватьВыполнение Тогда
- Возврат ПродолжитьВызов(Ключи);
- Иначе
- Возврат Результат;
- КонецЕсли;
-
-КонецФункции
-```
-
-### Обучение
-
-Самая первая стадия при написании тестов использующих моки - обучение.
-Мы создаем правила как будет вести себя метод при различных вариантах вызова.
-Правило состоит из условий проверки параметров и действия выполняемого при соблюдении условий.
-
-Условия можно задать на равенство определенному значению, на проверку типа переданного значения или же безусловно принимать любый параметры
-
-Существует 2 основных подхода к формированию условий вызова:
-
-1. Явный вызов метода с параметрами: `Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные)).Вернуть(2)`
-2. Указание имени метода и набора параметров: `Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(ИсточникДанных, Данные)).Вернуть(2)`
-
-Первый вариант имеет ряд недостатков:
-
-1. Работает только для экспортных методов
-2. Необходимо передавать все обязательные параметры или использовать для них маску `Мокито.ЛюбойПараметр()`
-3. Если не указывать необязательные параметры, то их значения по умолчанию попадут в настройку. Покажу на примере.
- Имеется метод `Функция Метод(Параметр1, Параметр2, Параметр3 = 3)`
-
- Настройка `Когда(Метод(1, 2)).Вернуть(0)`, в результате ноль мы получим для вызовов
-
- * `Метод(1, 2)`
- * `Метод(1, 2, 3)`
-
- Для вызова `Метод(1, 2, 4)` будет выполнен основной алгоритм метода.
-
- А для настройки `Когда("Метод", Мокито.МассивПараметров(1, 2)).Вернуть(0)` все три варианта вызова вернут ноль.
-
-После того как определились с условием вызова указанным в методе `Когда` нужно указать реакцию. Возможные реакции:
-
-* `Вернуть` - вернуть указанное значение
-* `ВыброситьИсключение` - вызвать исключение с переданным текстом
-* `Пропустить` - пропустить выполнение метод (актуально для процедур)
-
-#### Примеры формирования различных вариантов условий
-
-Имеется метод:
-
-```bsl
-Функция ОтправитьОбъектНаСервер(ИсточникДанных, Объект, HTTPМетод = "POST",
- ТипКонтента = "json", Преобразование = Неопределено,
- ДопНастройки = Неопределено, Ответ = Неопределено, ОтветВСтруктуру = Ложь,
- ТелоОтветаВХранилище = Ложь) Экспорт
-```
-
-* Переопределить все вызовы метода - указываем имя метода без указания параметров
- `Мокито.Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер").Вернуть(1)`
-* Переопределить вызов, когда первый параметр имеет определенное значение
- 1. `Мокито.Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(ИсточникДанных)).Вернуть(2)`
- 2. `Мокито.Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Мокито.ЛюбойПараметр()).Вернуть(2)`. Тут используется маска `Мокито.ЛюбойПараметр()`, тк второй параметр является обязательным
-* Переопределить вызов, когда **второй** параметр имеет определенное значение
- 1. `Мокито.Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ЛюбойПараметр(), Объект)).Вернуть(2)`
- 2. `Мокито.Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ЛюбойПараметр(), Объект).Вернуть(2)`.
-* Условие на тип параметра
- 1. `Мокито.Обучение(РаботаСHTTP).Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр())).Вернуть(3)`
- 2. `Мокито.Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ТипизированныйПараметр(ТипИсточникДанных), Мокито.ЧисловойПараметр()).Вернуть(3)`
-
-### Прогон
-
-После обучения, настройки реакций на вызовы методов, можно запускать тест нужного метода. Для перехода к этому режиму работы Мокито используется метод `Прогон`.
-
-Все вызовы к настроенным методам (добавленным в расширение) будут перехватываться и анализироваться на совпадение условий вызова.
-Для вызовов, у которых есть подходящая "реакция" будет переопределено выполнение и запустится соответствующая реакция (вернуть значение, вызвать исключение и тд), для прочих - выполнение продолжится.
-
-```bsl
-// Настройка
-Мокито.Обучение(РаботаСHTTP)
- .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Мокито.ЛюбойПараметр(), Мокито.ЛюбойПараметр()))
- .Вернуть(РезультатПоУмолчанию)
- .Когда("ОтправитьОбъектНаСервер", Мокито.МассивПараметров(Справочники.ИсточникиДанных.FTP, 2))
- .Вернуть(2)
- .Прогон(); // Перевод в режим прогона теста
-
-Результат = РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные); // Результат будет равен переменной РезультатПоУмолчанию
-Результат = РаботаСHTTP.ОтправитьОбъектНаСервер(Справочники.ИсточникиДанных.FTP, 2); // Результат будет равен 2
-```
-
-### Проверка
-
-После прогона теста можно проверить какие методы, с какими параметрами вызывались. Для этих целей необходимо воспользоваться методом `Проверить`
-
-```bsl
-Мокито.Проверить(РаботаСHTTP) // Устанавливаем проверяемый объект
- .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, Мокито.ЧисловойПараметр())) // Условия поиска вызовов
- .Больше(1) // Проверки
- .Равно(2)
- .КоличествоВызовов("ОтправитьОбъектНаСервер").Заполнено().Равно(3).Меньше(6)
- .КоличествоВызовов("ОтправитьЗапросHTTP").Пусто().Меньше(1)
- .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(1, 2)).Равно(1)
- .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, ЛюбойПараметр)).Равно(3)
- .КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(Мокито.ТипизированныйПараметр(ТипИсточникДанных), ЛюбойПараметр)).Равно(1)
-```
-
-Принцип формирования проверки:
-
-* Указываем проверяемый объект `Проверить(РаботаСHTTP)`.
-* Указываем условия поиска вызовов метода. Логика формирования условия такая же как при обучении.
- Например, `КоличествоВызовов(РаботаСHTTP.ОтправитьОбъектНаСервер(ЛюбойПараметр, Мокито.ЧисловойПараметр()))`
- Соберет все вызовы метода `РаботаСHTTP.ОтправитьОбъектНаСервер`, к которых вторым параметром идет число, а 3й и последующий параметры имеют значения по умолчанию.
-* Проверяем собранные вызовы:
- * `Заполнено` - есть вызовы метода по указанным условиям
- * `Пусто` - нет вызовов метода по указанным условиям
- * `Равно` - количество вызовов попавших под условия равно указанному значению
- * `Больше` - количество вызовов попавших под условия больше указанного значения
- * `Меньше` - количество вызовов попавших под условия меньше указанного значения
-
-### Ограничения параметров
-
-При обучении (а также при проверке) не редко мы не может указать конкретные значения, которые придут в метод. для этих целей имеются.
-
-* Маски параметров
- * `ЛюбойПараметр` - ожидаем любой параметр
- * `ЧисловойПараметр` - ожидаем только числовой параметр
- * `СтроковыйПараметр` - ожидаем только строковый параметр
- * `ТипизированныйПараметр` - ожидаем параметр указанного типа
-* [Предикаты](predicates.md) позволяющие сформировать почти любые условия на параметры
-
-Примеры
-
-* `Когда(Метод(1, 2))`
-* `Когда(Метод(Мокито.ЧисловойПараметр(), 2))`
-* `Когда(Метод(ЮТест.Предикат().Больше(0), 2))`
-
-
-## Кейсы использования\*
-
-\* *В примерах опускается часть добавления метода в расширение*
-
-1. Подмена результат функции для любого вызова
-
- ```bsl
- Мокито.Обучение(РаботаСHTTP)
- .Когда("ОтправитьОбъектНаСервер")
- .Вернуть(1)
- ```
-
-2. Выключение алгоритма проведения документа
-
- ```bsl
- Мокито.Обучение(СсылкаИлиОбъектДокумент)
- .Когда("ОбработкаПроведения")
- .Пропустить()
- ```
-
-3. Выбросить исключение, если в метод передан некорректный набор параметров
-
- ```bsl
- Мокито.Обучение(РаботаСHTTP)
- .Когда("ОтправитьОбъектНаСервер")
- .ВыброситьИсключение("Не верные параметры вызова")
- .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Справочники.ИсточникиДанных.FTP, Мокито.ЛюбойПараметр()))
- .ВыполнитьМетод();
- ```
diff --git a/documentation/docs/user-api/predicates.md b/documentation/docs/user-api/predicates.md
deleted file mode 100644
index 1f11dd002..000000000
--- a/documentation/docs/user-api/predicates.md
+++ /dev/null
@@ -1,145 +0,0 @@
----
-tags: [Начало, Предикаты, Утверждения, Запросы, Мокирование]
----
-
-# Предикаты
-
-Предикаты это утверждения, которые вы можете передавать в качестве параметров.
-Они расширяют и унифицируют функциональность тестового движка.
-
-```bsl
-Процедура АктуализацияУведомлений() Экспорт
-
- ИмяРегистра = "РегистрСведений.ОповещенияПользователя";
- Объект = ТестовыеДанные.Объект();
-
- УсловиеУведомления = ЮТест.Предикат()
- .Реквизит("Источник").Равно(Объект)
- .Реквизит("ТипОповещения").Равно(Справочники.ТипыОповещенийПользователя.Уведомление1)
- .Получить();
-
- ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра)
- .НеСодержитЗаписи(УсловиеУведомления);
-
- УведомленияВызовСервера.АктуализацияУведомлений();
-
- ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра)
- .СодержитЗаписи(УсловиеУведомления);
-
- ДанныеУведомления = ЮТЗапросы.Запись(ИмяРегистра, УсловиеУведомления);
-
- ЮТест.ОжидаетЧто(ДанныеУведомления)
- .Свойство("Прочитано").ЭтоЛожь()
- .Свойство("Пользователь").Равно(Справочники.ГруппыОповещенийПользователей.Инженер);
-
-КонецПроцедуры
-```
-
-Механизм предикатов:
-
-* позволяет формировать наборы утверждений и передавать их в качества параметров;
-* используется для проверки коллекций, записей базы и так далее;
-* построен по модели текучих выражения и имеет схожий с базовыми утверждениями синтаксис (`ЮТест.ОжидаетЧто()`);
-
-## Примеры использования
-
-* Проверка коллекции
-
- ```bsl
- ЮТест.ОжидаетЧто(Коллекция)
- .ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
- .Реквизит("Число").Равно(2)); // Проверят, что в коллекции есть элементы с реквизитом `Число`, которое равно `2`
-
- ЮТест.ОжидаетЧто(Коллекция)
- .Содержит(ЮТест.Предикат()
- .Реквизит("Число").Равно(2)); // Тоже самое, что и проверка выше
-
- ЮТест.ОжидаетЧто(Коллекция)
- .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
- .Заполнено().ИмеетТип("Массив")); // Проверят, что каждый элемент коллекции это заполненный массив
-
- ЮТест.ОжидаетЧто(Коллекция)
- .НеСодержит(ЮТест.Предикат()
- .Реквизит("Число").Равно(2)); // Проверят, что в коллекции нет элементов с реквизитом `Число`, которое равно `2`
-
- ```
-
-* Описания параметров метода при мокировании
-
- Например, имеем метод, который принимает в параметрах структуру. Необходимо вернуть 2 разных результата в зависимости от значения реквизита входной структуры.
-
- ```bsl
- Мокито.Обучение(Модуль)
- .Когда(Модуль.Посчитать(ЮТест.Предикат()
- .Реквизит("Оператор").Равно("Сложить")))
- .ВернутьРезультат(Результат1)
-
- .Когда(Модуль.Посчитать(ЮТест.Предикат()
- .Реквизит("Оператор").Равно("Вычесть")))
- .ВернутьРезультат(Результат2);
- ```
-
-* Утверждения, проверяющие данные в базе на основании предикатов.
-
- ```bsl
- ЮТест.ОжидаетЧтоТаблица("Справочник.Товары").СодержитЗаписи(
- ЮТест.Предикат()
- .Реквизит("Наименование").Равно("Товар 1")
- .Реквизит("Ссылка").НеРавно(Исключение)
- );
- ```
-
-* Получение записей из базы
-
- ```bsl
- ДанныеТовара = ЮТЗапросы.Запись("Справочник.Товары", ЮТест.Предикат()
- .Реквизит("Наименование").Равно("Товар 1")
- .Реквизит("Ссылка").НеРавно(Исключение));
- ```
-
-## Особенности
-
-### Особенности контекста
-
-Предикаты как и большинство механизмов построены на текучих выражениях с сохранением состояния в глобальном контексте.
-
-Это приводит к тому, что вы не можете сразу использовать несколько предикатов, например
-
-```bsl
-Мокито.Обучение(Модуль)
- .Когда(Модуль.СделатьЧтоТо(
- ЮТест.Предикат().ИмеетТип("Строка"),
- ЮТест.Предикат().ИмеетТип("Число")))
- .ВернутьРезультат(Результат1);
-```
-
-В этом примере 1С сначала вычислит выражения для всех параметров, а потом передаст их в метод и мы получим для обоих параметров один и тот же предикат, ожидающий тип `Число`.
-Потому что состояние первого предиката будет заменено вторым. Для обхода этой проблемы можно использовать метод `Получить`, который возвращает текущее состояние.
-
-```bsl
-Мокито.Обучение(Модуль)
- .Когда(Модуль.СделатьЧтоТо(
- ЮТест.Предикат().ИмеетТип("Строка").Получить(),
- ЮТест.Предикат().ИмеетТип("Число")))
- .ВернутьРезультат(Результат1);
-```
-
-Такая же история при сохранение предикатов в переменные.
-
-```bsl
-ПроверкаСтрока = ЮТест.Предикат().ИмеетТип("Строка");
-ПроверкаЧисло = ЮТест.Предикат().ИмеетТип("Число");
-```
-
-`ПроверкаСтрока` и `ПроверкаЧисло` будут равны и содержать одинаковые условия. Проблему также можно обойти используя метод `Получить`.
-
-```bsl
-ПроверкаСтрока = ЮТест.Предикат().ИмеетТип("Строка").Получить();
-ПроверкаЧисло = ЮТест.Предикат().ИмеетТип("Число").Получить();
-```
-
-### Особенности реализации
-
-Сам модуль предикатов используется только для формирования утверждений/условий.
-
-Реализацией проверок и формированием условий занимаются другие модули и возможна ситуация, когда некоторые предикаты еще не реализованы или не поддерживаются каким-либо механизмом. Например, проверка заполненности не поддерживается запросами.
diff --git a/documentation/docs/user-api/queries.md b/documentation/docs/user-api/queries.md
deleted file mode 100644
index c8330ed7d..000000000
--- a/documentation/docs/user-api/queries.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-tags: [Начало, ДанныеИБ]
----
-
-# Запросы
-
-Для получения данных базы предоставлен API выполнения запросов `ЮТЗапросы`
-
-Позволяет как с сервера, так и с клиента получать данные информационной базы и имеет следующие методы
-
-* `ЗначенияРеквизитов` - Возвращает значения реквизитов ссылки
-* `ЗначениеРеквизита` - Возвращает значение реквизита ссылки
-* `Запись` - Возвращает первую запись таблицы, соответствующую условиям
-* `Записи` - Возвращает записи таблицы, соответствующую условиям
-* `ЗначенияРеквизитовЗаписи` - Возвращает значения реквизитов первой записи таблицы, соответствующей условиям
-* `ЗначениеРеквизитаЗаписи` - Возвращает значение реквизита первой записи таблицы, соответствующей условиям
-* `ТаблицаСодержитЗаписи` - Вернет признак, содержит ли таблица записи, удовлетворяющие переданным условиям
-* `РезультатЗапроса` - Возвращает результат выполнения простого запроса, используя описание запроса
-* `РезультатПустой` - Определяет, есть ли в результате записи, используя описание запроса
-* `ОписаниеЗапроса` - Формирует описание простого запроса
diff --git a/documentation/docs/user-api/test-data/test-data-deletion.md b/documentation/docs/user-api/test-data/test-data-deletion.md
deleted file mode 100644
index 905a076ad..000000000
--- a/documentation/docs/user-api/test-data/test-data-deletion.md
+++ /dev/null
@@ -1,99 +0,0 @@
----
-tags: [Начало, Тестовые данные]
----
-
-# Удаление тестовых данных
-
-При использовании тестовых данных нередко необходимо удалять созданные объекты.
-
-Для этого вы можете использовать
-
-## Автоматические транзакции
-
-Для включения нужно при регистрации теста вызвать метод `ВТранзакции()`
-
-```bsl title=ВТранзакции.bsl
-ЮТТесты
- .ДобавитьТест("Фикция").ВТранзакции() // Использование транзакции для конкретного теста
-
-ЮТТесты
- .ДобавитьТестовыйНабор("Основной).ВТранзакции() // Использование транзакции для набора тестов
- .ДобавитьТест("Фикция")
-
-ЮТТесты.ВТранзакции() // Использование транзакции для тестов модуля
- .ДобавитьТест("Фикция")
-
-```
-
-И тогда тестовый движок будет оборачивать в транзакцию каждый серверный тест (для клиентских будет игнорироваться)
-
-:::caution Учитывайте
-В транзакцию оборачивается тест, а не модуль или набор, поэтому данные созданные вне теста не будут удалены.
-Такие данные необходимо удалять самостоятельно при необходимости.
-:::
-
-## Механизм удаления тестовых данных
-
-Для включения нужно при регистрации теста вызвать метод `УдалениеТестовыхДанных()`
-
-```bsl title=УдалениеТестовыхДанных.bsl
-ЮТТесты
- .ДобавитьТест("Фикция").УдалениеТестовыхДанных() // Использование для конкретного теста
-
-ЮТТесты
- .ДобавитьТестовыйНабор("Основной).УдалениеТестовыхДанных() // Использование для всех тестов набора
- .ДобавитьТест("Фикция")
-
-ЮТТесты.УдалениеТестовыхДанных() // Использование для всех тестов модуля
- .ДобавитьТест("Фикция")
-
-ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() // Совместно с транзакцией
- .ДобавитьТест("Фикция")
-
-```
-
-Механизм не использует транзакции, а запоминает в контексте все созданные с помощью API объекты и записи регистров сведений.
-Позволяет:
-
-* Удалять данные созданные с клиента
-* Удалять данные созданные вне теста (в обработчиках событий)
-
-:::caution Удаление и только
-Механизм только удаляет созданные объекты, изменения не откатываются
-:::
-
-:::tip Разное время жизни данных
-Механизм понимает в рамках какого контекста исполнения (тест, набор, модуль) были созданы данные и удаляет их по выходу из него.
-:::
-
-Рассмотрим время жизни объектов созданных на разных этапах тестирования, например имеем такой модуль.
-
-```bsl title=УдалениеТестовыхДанныхВремяЖизни.bsl
-Процедура ПередВсемиТестами() Экспорт
- ДанныеМодуля = ЮТест.Данные().СоздатьЭлемент();
-КонецПроцедуры
-
-Процедура ПередТестовымНабором() Экспорт
- ДанныеНабора = ЮТест.Данные().СоздатьЭлемент();
-КонецПроцедуры
-
-Процедура ПослеВсехТестов() Экспорт
- ДанныеТеста = ЮТест.Данные().СоздатьЭлемент();
-КонецПроцедуры
-
-Процедура Тест() Экспорт
- Ссылка = ЮТест.Данные().СоздатьЭлемент();
-КонецПроцедуры
-```
-
-Для переменных получим разное время жизни
-
-* `ДанныеМодуля` - Живет, пока исполняются тесты модуля одного контекста (Сервер, Клиент).
-* `ДанныеНабора` - Живет, пока исполняются тесты набора.
-* `ДанныеТеста` и `Ссылка` - Живут, пока исполняется тест.
-
-:::caution Механизм имеет ряд ограничений и не работает для следующих кейсов:
-
-* Данные создан не через API
-* Данные созданы в клиентском модуле через вызов своего серверного модуля, даже если он использует API тестового движка
-:::
diff --git a/documentation/docs/user-api/test-registration.md b/documentation/docs/user-api/test-registration.md
deleted file mode 100644
index 24e7a80b0..000000000
--- a/documentation/docs/user-api/test-registration.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-tags: [Начало]
----
-
-# Регистрация тестовых методов (ЮТТесты)
-
-Кроме того, чтобы написать тестовые сценарии, разработчик должен зарегистрировать их в движке.
-Регистрация выполняется внутри предопределенного экспортного метод `ИсполняемыеСценарии`, который обязательно должен находиться в тестовом модуле.
-
-```bsl
-
-Процедура ИсполняемыеСценарии() Экспорт
-
- // Регистрация тестов
- ЮТТесты // Регистрация тестов выполняет через модуль регистратор
- .ДобавитьТестовыйНабор("Математические методы") // Набор - объединение тестов
- .ДобавитьТест("Сложение") // Обязательно при регистрации указываем имя экспортного метода
- .ДобавитьТест("Вычитание", "Вычитание") // Также можно указать представление теста
- .ДобавитьТест("Вычитание", "ВычитаниеСервер", , "Сервер") // Контекст исполнения, по умолчанию тест выполняется во всех контекстах модуля
- .ДобавитьКлиентскийТест("УмножениеНаКлиенте") // Есть отдельный метод для регистрации клиентских тестов
- .ДобавитьСерверныйТест("ДелениеНаСервере", "Деление на сервер") // Есть отдельный метод для регистрации серверных тестов
- .ДобавитьТестовыйНабор("Строковые методы")
- .ДобавитьТест("СтрНайти")
- .ДобавитьТест("СтрРазделить");
-
-КонецПроцедуры
-
-```
-
-Этот метод автоматически вызывается тестовым движком при старте тестирования.
-
-Как видно из примера выше, регистрация выполняется с помощью методов модуля `ЮТТесты`.
-
-Он позволяет:
-
-* Объединять тесты в наборы, указывать теги, по которым возможно формировать отборы запускаемых тестов
-* Указывать контекст вызова, например, для клиент-серверного модуля (или метода) можно реализовать тесты в одном тестовом модуле, проверяющие логику и на клиенте, и на сервере.
-* Указывать параметры выполнения тестов.
-* Организовывать черновики, регистрируя нереализованные тесты.
diff --git a/documentation/docs/yaxunit-ui.md b/documentation/docs/yaxunit-ui.md
index 4e19a8022..2d9ec4304 100644
--- a/documentation/docs/yaxunit-ui.md
+++ b/documentation/docs/yaxunit-ui.md
@@ -1,3 +1,8 @@
+---
+sidebar_position: 5
+tags: [Начало]
+---
+
# Графический интерфейс
Расширение добавляет в командный интерфейс конфигурации новый раздел "Юнит тест".
diff --git a/documentation/docusaurus.config.js b/documentation/docusaurus.config.js
index 75fb358e9..39388937e 100644
--- a/documentation/docusaurus.config.js
+++ b/documentation/docusaurus.config.js
@@ -1,8 +1,7 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
-const lightCodeTheme = require('prism-react-renderer/themes/github');
-const darkCodeTheme = require('prism-react-renderer/themes/dracula');
+import {themes as prismThemes} from 'prism-react-renderer';
/** @type {import('@docusaurus/types').Config} */
const config = {
@@ -95,13 +94,13 @@ const config = {
navbar: {
title: 'YAx Unit',
logo: {
- alt: 'YaxUnit Logo',
+ alt: 'YAxUnit Logo',
src: 'img/logo.png',
},
items: [
{
type: 'doc',
- docId: 'user-api/index',
+ docId: 'features/features',
position: 'left',
label: 'Описание',
},
@@ -142,7 +141,7 @@ const config = {
items: [
{
label: 'Tutorial',
- to: '/docs/user-api',
+ to: '/docs/features',
},
],
},
@@ -168,14 +167,25 @@ const config = {
copyright: `Copyright © ${new Date().getFullYear()} BIA Technologies, Inc. Built with Docusaurus.`,
},
prism: {
- theme: lightCodeTheme,
- darkTheme: darkCodeTheme,
+ theme: prismThemes.vsLight,
+ darkTheme: prismThemes.vsDark,
+ additionalLanguages: ['bsl'],
},
}),
markdown: {
mermaid: true,
},
- themes: ['@docusaurus/theme-mermaid'],
+ themes: ['@docusaurus/theme-mermaid',
+ ["@easyops-cn/docusaurus-search-local", {
+ hashed: true,
+ language: ["en", "ru"],
+ indexBlog: false,
+ indexDocs: true,
+ docsRouteBasePath: ["docs", "api", 'contributing', 'lessons'],
+ docsDir: ["docs", "api", 'contributing', 'lessons'],
+ highlightSearchTermsOnTargetPage: true,
+ hideSearchBarWithNoSearchContext: true,
+ }]],
};
module.exports = config;
diff --git a/documentation/package.json b/documentation/package.json
index f5d57605c..a8ef6d8ce 100644
--- a/documentation/package.json
+++ b/documentation/package.json
@@ -14,17 +14,20 @@
"write-heading-ids": "docusaurus write-heading-ids"
},
"dependencies": {
- "@docusaurus/core": "2.3.1",
- "@docusaurus/preset-classic": "2.3.1",
- "@docusaurus/theme-mermaid": "2.3.1",
- "@mdx-js/react": "^1.6.22",
- "clsx": "^1.2.1",
- "prism-react-renderer": "^1.3.5",
- "react": "^17.0.2",
- "react-dom": "^17.0.2"
+ "@docusaurus/core": "^3.1.1",
+ "@docusaurus/preset-classic": "^3.1.1",
+ "@docusaurus/theme-mermaid": "^3.1.1",
+ "@easyops-cn/docusaurus-search-local": "^0.40.1",
+ "@mdx-js/react": "^3.0.0",
+ "dagre": "^0.8.5",
+ "prism-react-renderer": "^2.3.1",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-router-dom": "^6.20.0",
+ "reactflow": "^11.10.1"
},
"devDependencies": {
- "@docusaurus/module-type-aliases": "2.3.1"
+ "@docusaurus/module-type-aliases": "^3.1.1"
},
"browserslist": {
"production": [
@@ -39,6 +42,6 @@
]
},
"engines": {
- "node": ">=16.14"
+ "node": ">=18.0"
}
}
diff --git a/documentation/src/components/mindmap.js b/documentation/src/components/mindmap.js
new file mode 100644
index 000000000..520a92bc6
--- /dev/null
+++ b/documentation/src/components/mindmap.js
@@ -0,0 +1,121 @@
+import React, { useCallback } from 'react';
+import ReactFlow, {
+ addEdge,
+ ConnectionLineType,
+ Panel,
+ useNodesState,
+ useEdgesState,
+} from 'reactflow';
+import dagre from 'dagre';
+import { useHistory } from "react-router-dom";
+
+// we have to import the React Flow styles for it to work
+import 'reactflow/dist/style.css';
+
+const dagreGraph = new dagre.graphlib.Graph();
+dagreGraph.setDefaultEdgeLabel(() => ({}));
+
+const nodeWidth = 150;
+const nodeHeight = 36;
+
+const getLayoutedElements = (nodes, edges, direction = 'LR') => {
+ const isHorizontal = direction === 'LR';
+ dagreGraph.setGraph({ rankdir: direction });
+
+ nodes.forEach((node) => {
+ dagreGraph.setNode(node.id, { width: nodeWidth, height: nodeHeight });
+ });
+
+ edges.forEach((edge) => {
+ dagreGraph.setEdge(edge.source, edge.target);
+ });
+
+ dagre.layout(dagreGraph);
+
+ nodes.forEach((node) => {
+ const nodeWithPosition = dagreGraph.node(node.id);
+ node.targetPosition = isHorizontal ? 'left' : 'top';
+ node.sourcePosition = isHorizontal ? 'right' : 'bottom';
+
+ // We are shifting the dagre node position (anchor=center center) to the top left
+ // so it matches the React Flow node anchor point (top left).
+ node.position = {
+ x: nodeWithPosition.x - nodeWidth / 2,
+ y: nodeWithPosition.y - nodeHeight / 2,
+ };
+
+ return node;
+ });
+
+ return { nodes, edges };
+};
+
+const Mindmap = (nodesTree) => {
+ const initialNodes = []
+ const initialEdges = []
+ var id = 0;
+ const fillNodes = (nodeTree, parentID)=>{
+ console.log(nodeTree);
+
+ const nodeId = 'n' + (id++);
+ const node = { id: nodeId, data: { label: nodeTree.label, href: nodeTree.href } };
+ initialNodes.push(node);
+ if(parentID){
+ initialEdges.push({ id: 'e' + parentID + nodeId, source: parentID, target: nodeId });
+ } else {
+ node.type = 'input'
+ }
+ if(nodeTree.child){
+ nodeTree.child.forEach(childNode=>{
+ fillNodes(childNode, nodeId);
+ })
+ } else{
+ node.type = 'output'
+ }
+ }
+
+ fillNodes(nodesTree.nodesTree, undefined);
+
+ const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(
+ initialNodes,
+ initialEdges
+ );
+
+ const [nodes, setNodes, onNodesChange] = useNodesState(layoutedNodes);
+ const [edges, setEdges, onEdgesChange] = useEdgesState(layoutedEdges);
+
+ const onConnect = useCallback(
+ (params) =>
+ setEdges((eds) =>
+ addEdge({ ...params, type: ConnectionLineType.SmoothStep, animated: true }, eds)
+ ),
+ []
+ );
+
+ const history = useHistory();
+ const onNodeClick = (event, node) => history.push(node.data.href);
+
+ return (
+
+
+
+ );
+};
+
+const Node = (label, href, child) =>{
+ return {label: label, href: href, child: child};
+}
+
+export { Mindmap, Node };
diff --git a/documentation/src/pages/images/report.png b/documentation/src/pages/images/report.png
deleted file mode 100644
index 884d8c3fc..000000000
Binary files a/documentation/src/pages/images/report.png and /dev/null differ
diff --git a/documentation/src/pages/images/reports.png b/documentation/src/pages/images/reports.png
new file mode 100644
index 000000000..6579ece01
Binary files /dev/null and b/documentation/src/pages/images/reports.png differ
diff --git a/documentation/src/pages/images/telegram.svg b/documentation/src/pages/images/telegram.svg
new file mode 100644
index 000000000..fd71cc560
--- /dev/null
+++ b/documentation/src/pages/images/telegram.svg
@@ -0,0 +1,16 @@
+
+
\ No newline at end of file
diff --git a/documentation/src/pages/index.md b/documentation/src/pages/index.md
index 6c8d97bc4..cc3bdde7a 100644
--- a/documentation/src/pages/index.md
+++ b/documentation/src/pages/index.md
@@ -12,174 +12,27 @@ slug: /
[![GitHub Releases](https://img.shields.io/github/downloads/bia-technologies/yaxunit/latest/total?style=flat-square)](https://github.com/bia-technologies/yaxunit/releases)
[![Quality Gate](https://sonar.openbsl.ru/api/project_badges/measure?project=yaxunit&metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=yaxunit)
[![Maintainability](https://sonar.openbsl.ru/api/project_badges/measure?project=yaxunit&metric=sqale_rating)](https://sonar.openbsl.ru/dashboard?id=yaxunit)
-
[![Build and test](https://github.com/bia-technologies/yaxunit/actions/workflows/main-build.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/main-build.yml)
[![Build ocumentation](https://github.com/bia-technologies/yaxunit/actions/workflows/deploy-documentation.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/deploy-documentation.yml)
-
-Обсудить в [Telegram чате](https://t.me/BIAOpenTools/12)
+[![Telegram чате](images/telegram.svg)](https://t.me/BIAOpenTools/12)
----
-- [Назначение](#назначение)
- - [Возможности](#возможности)
-- [Пример тестового модуля](#пример-тестового-модуля)
-- [Запуск](#запуск)
- - [Запуск из EDT](#запуск-из-edt)
- - [Запуск вне EDT](#запуск-вне-edt)
-- [Благодарности](#благодарности)
-- [Лицензия](#лицензия)
-
-## Назначение
-
-Самостоятельное расширение для написания и выполнения модульного тестирования.
-
-### Возможности
-
-- YAxUnit - это расширение с открытым исходным кодом, которое используется для написания и выполнения тестов
-- Разрабатывалось с оглядкой на JUnit5, пожалуй, лучший фреймворк тестирования
-- Предоставляет движок выполнения тестов
-- Предоставляет утверждения для проверки ожидаемых результатов
-- Тесты могут быть организованы в наборы и выполняться в разных контекстах
-- Позволяет быстрее и проще не только писать, но и читать тесты
-- Результаты тестирования могут быть сохранены в отчет, на текущий момент jUnit и json.
-- Большая часть пользовательского API реализована как [текучие выражения](https://ru.wikipedia.org/wiki/Fluent_interface)
-- Предусмотрена возможность расширения функциональности, можно регистрировать свои форматы отчетов, добавлять модули с утверждениями
-- Реализован [плагин для EDT](https://github.com/bia-technologies/edt-test-runner), который упрощает процесс запуска тестов
-
-Подробнее ознакомиться с функциональностью вы можете изучив [документацию](/docs/user-api).
-
-А для того, что бы начать писать тесты необходимо [установить расширение](/docs/install) в свою IDE (конфигуратор или EDT).
-
-## Пример тестового модуля
-
-Для создания теста нужно в расширении (в отдельном или в том же) добавить модуль, содержащий экспортный метод регистрации - `ИсполняемыеСценарии` и реализовать тесты.
-
-Пример модуля тестов:
-
-```bsl
-#Область СлужебныйПрограммныйИнтерфейс
-
-Процедура ИсполняемыеСценарии() Экспорт
-
- // Регистрация тестов
- ЮТТесты // Регистрация тестов выполняет через модуль регистратор
- .ДобавитьТестовыйНабор("Математические методы") // Набор - объединение тестов
- .ДобавитьТест("Сложение") // Обязательно при регистрации указываем имя экспортного метода
- .ДобавитьТест("Вычитание", "Вычитание") // Также можно указать представление теста
- .ДобавитьТест("Вычитание", "ВычитаниеСервер", , "Сервер") // Контекст исполнения, по умолчанию тест выполняется во всех контекстах модуля
- .ДобавитьКлиентскийТест("УмножениеНаКлиенте") // Есть отдельный метод для регистрации клиентских тестов
- .ДобавитьСерверныйТест("ДелениеНаСервере", "Деление на сервер") // Есть отдельный метод для регистрации серверных тестов
- .ДобавитьТестовыйНабор("Строковые методы")
- .ДобавитьТест("СтрНайти")
- .ДобавитьТест("СтрРазделить");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Тесты
-
-Процедура Сложение() Экспорт
-
- // Реализация теста на сложение
- ЮТест.ОжидаетЧто(2 + 3, "2 + 3") // Используя модуль утверждений установим проверяемое значение и пояснение
- .ИмеетТип("Число") // Проверим тип
- .Заполнено() // Заполненность проверяемого значения
- .Больше(0) // Сравним с нулем
- .Равно(5); // Проверим ожидаемый результат
-
- ЮТест.ОжидаетЧто(-8 + 8, "-8 + 8") // Проверим второй вариант
- .Равно(0);
-
-КонецПроцедуры
-
-Процедура Вычитание() Экспорт
-
- // Реализация теста на вычитание
- ЮТест.ОжидаетЧто(2 - 3, "2 - 3").ИмеетТип("Число").Заполнено().Меньше(0);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область События
-
-// Также в тесте можно обрабатывать события выполнения
-// Например можно реализовать подготовку и удаление тестовых данных
-// Зачистку временных файлов, настройку системы
-
-Процедура ПередВсемиТестами() Экспорт
- // Выполняется перед запуском всех тестов контекста, те если есть тесты и на клиенте и на сервер, то метод будет выполнен 2 раза
- Сообщить("Запуск тестирования");
-
-КонецПроцедуры
-
-Процедура ПередТестовымНабором() Экспорт
-
- // Выполняется перед каждым тестовым набором для каждого контекста выполнения
- Контекст = ЮТест.КонтекстТестовогоНабора(); // Контекст набора служит для хранения любых данных, нужных при тестировании
- // Контекст живет в рамках контекста выполнения,
- // таки образом, через контекст нельзя передавать данные между серверными и клиентскими тестами
- Контекст.Вставить("ВремяНачала", ТекущаяУниверсальнаяДатаВМиллисекундах());
-
-КонецПроцедуры
-
-Процедура ПередКаждымТестом() Экспорт
-
- // Выполняется перед каждым тестом
- Контекст = ЮТест.КонтекстТеста(); // Контекст теста служит для хранения любых данных, нужных при тестировании
- // Контекст создает перед тестом и уничтожается после его выполнения
- // В контекст например, можно помещать созданные в процессе данные, что бы потом их удалить
- Контекст.Вставить("ВремяНачала", ТекущаяУниверсальнаяДатаВМиллисекундах());
-
-КонецПроцедуры
-
-Процедура ПослеКаждогоТеста() Экспорт
-
- // Выполняется после каждого теста
- Контекст = ЮТест.КонтекстТеста();
- Сообщить("Время выполнения теста: " + (ТекущаяУниверсальнаяДатаВМиллисекундах() - Контекст.ВремяНачала));
-
-КонецПроцедуры
-
-Процедура ПослеТестовогоНабора() Экспорт
-
- // Выполняется после каждого тестового набора для каждого контекста выполнения
- // Применяется для очистки данных и т.д.
- Контекст = ЮТест.КонтекстТестовогоНабора();
- Сообщить("Время выполнения набора: " + (ТекущаяУниверсальнаяДатаВМиллисекундах() - Контекст.ВремяНачала));
-
-КонецПроцедуры
-
-Процедура ПослеВсехТестов() Экспорт
-
- // Выполняется после выполнения всех тестов контекста, те если есть тесты и на клиенте и на сервер, то метод будет выполнен 2 раза
- // В этом событии все контексты уже уничтожены
- Сообщить("Тестирование завершено");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-```
-
-После запуска тестов модуля в EDT (используя [плагин](https://github.com/bia-technologies/edt-test-runner)) получаем такой отчет:
-
-![Отчет](images/report.png)
-
-## Запуск
-
-### Запуск из EDT
+**YAxUnit** представляет собой мощный инструмент написания тестов для решений на платформе 1С:Предприятие.
+Он был создан с учетом лучших практик тестирования и предлагает [множество функций](/docs/features/), которые позволяют эффективно справиться с поставленной задачей.
-При разработке в EDT процесс запуска тестов можно упростить, установив [плагин](https://github.com/bia-technologies/edt-test-runner)
-и настроив конфигурацию запуска, как указано в описании плагина.
+* Тестовый движок, который выполнит тесты и предоставит подробный отчет в нужном формате.
+* [Утверждения](/docs/features/assertions/) для проверки ожидаемых результатов. Они помогают разработчикам ясно и точно определить, какие результаты они ожидают, и автоматически проверить, соответствуют ли реальные результаты этим ожиданиям.
+* Мощные инструменты для работы с [тестовыми данными](/docs/features/test-data/). Создание, удаление и поиск нужных данных теперь не проблема.
+* Благодаря поддержке [текучих выражений](/docs/getting-started/fluent-api), код тестов становится более читаемым и понятным, что упрощает его поддержку и модификацию.
+* Кроме того, YAxUnit предусматривает возможность расширения функциональности, что позволяет разработчикам адаптировать инструмент под свои уникальные требования.
+* Последнее, но не менее важное - [плагин для запуска тестов](/docs/getting-started/edt-plugin/) из 1С:Enterprise Development Tools (EDT). Значительно упрощает процесс написания и отладки тестов. В один клик вы может запустить и увидеть результат нужного теста.
-### Запуск вне EDT
+Все эти возможности делают YAxUnit мощным помощником разработчика на непростом пути тестирования.
-Для запуска тестов без использования EDT необходимо:
+![Отчет о тестировании](images/reports.png)
-1. Сформировать файл конфигурации запуска [вручную](/docs/run), либо воспользоваться [формой настройки](/docs/yaxunit-ui)
-2. [Запустить 1С:Предприятие](/docs/run) с параметром `RunUnitTests=ПутьКФайлуКонфигурации.json`.
+Чтобы более подробнее ознакомиться с возможностями YAxUnit вы можете изучить [документацию](/docs/features), либо [установив](/docs/getting-started/install) все необходимое? попробуйте написать [первый тест](/docs/getting-started/first-test)
## Благодарности
diff --git a/documentation/src/theme/prism-include-languages.js b/documentation/src/theme/prism-include-languages.js
new file mode 100644
index 000000000..0f888307f
--- /dev/null
+++ b/documentation/src/theme/prism-include-languages.js
@@ -0,0 +1,23 @@
+import siteConfig from '@generated/docusaurus.config';
+export default function prismIncludeLanguages(PrismObject) {
+ const {
+ themeConfig: {prism},
+ } = siteConfig;
+ const {additionalLanguages} = prism;
+ // Prism components work on the Prism instance on the window, while prism-
+ // react-renderer uses its own Prism instance. We temporarily mount the
+ // instance onto window, import components to enhance it, then remove it to
+ // avoid polluting global namespace.
+ // You can mutate PrismObject: registering plugins, deleting languages... As
+ // long as you don't re-assign it
+ globalThis.Prism = PrismObject;
+ additionalLanguages.forEach((lang) => {
+ if (lang === 'php') {
+ // eslint-disable-next-line global-require
+ require('prismjs/components/prism-markup-templating.js');
+ }
+ // eslint-disable-next-line global-require, import/no-dynamic-require
+ require(`prismjs/components/prism-${lang}`);
+ });
+ delete globalThis.Prism;
+}
diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl"
index 563f9cfa4..1fef6412b 100644
--- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/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.
@@ -35,7 +35,7 @@
// ПараметрыМетода = Мокито.МассивПараметров(ПараметрыПодключения, Ресурс, HTTPМетод, Параметры, ОписаниеТела, Заголовки);
//
// ПрерватьВыполнение = Ложь;
-// Результат = Мокито.АнализВызова(РаботаСHTTP, "ВыполнитьЗапрос", ПараметрыМетода, ПрерватьВыполнение);
+// Результат = МокитоПерехват.АнализВызова(РаботаСHTTP, "ВыполнитьЗапрос", ПараметрыМетода, ПрерватьВыполнение);
//
// Если НЕ ПрерватьВыполнение Тогда
// Возврат ПродолжитьВызов(ПараметрыПодключения, Ресурс, HTTPМетод, Параметры, ОписаниеТела, Заголовки);
@@ -197,17 +197,17 @@
Параметр8 = "_!%*",
Параметр9 = "_!%*",
Параметр10 = "_!%*") Экспорт
-
- Возврат ЮТОбщий.ЗначениеВМассиве(Параметр1,
- Параметр2,
- Параметр3,
- Параметр4,
- Параметр5,
- Параметр6,
- Параметр7,
- Параметр8,
- Параметр9,
- Параметр10);
+
+ Возврат ЮТКоллекции.ЗначениеВМассиве(Параметр1,
+ Параметр2,
+ Параметр3,
+ Параметр4,
+ Параметр5,
+ Параметр6,
+ Параметр7,
+ Параметр8,
+ Параметр9,
+ Параметр10);
КонецФункции
@@ -238,8 +238,9 @@
#Область СлужебныйПрограммныйИнтерфейс
-// Анализ вызова.
-// Deprecate
+#Область УстаревшиеПроцедурыИФункции
+
+// Устарела. Анализ вызова.
//
// Параметры:
// Объект - Произвольный
@@ -251,8 +252,12 @@
// Произвольный - Подменный результат работы метода
Функция АнализВызова(Объект, ИмяМетода, ПараметрыМетода, ПрерватьВыполнение) Экспорт
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("Мокито.АнализВызова", "МокитоПерехват.АнализВызова", "24.03");
+
Возврат МокитоСлужебный.АнализВызова(Объект, ИмяМетода, ПараметрыМетода, ПрерватьВыполнение);
КонецФункции
#КонецОбласти
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/\320\234\320\276\320\272\320\270\321\202\320\276.suppress" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/\320\234\320\276\320\272\320\270\321\202\320\276.suppress"
deleted file mode 100644
index 0491407cf..000000000
--- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/\320\234\320\276\320\272\320\270\321\202\320\276.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265.suppress" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265.suppress"
deleted file mode 100644
index 6ef77900c..000000000
--- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/Module.bsl"
new file mode 100644
index 000000000..a3ab77ff8
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/Module.bsl"
@@ -0,0 +1,37 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo"
new file mode 100644
index 000000000..f0f1d0ab8
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\320\265\321\200\320\265\321\205\320\262\320\260\321\202.mdo"
@@ -0,0 +1,11 @@
+
+
+ МокитоПерехват
+
+ ru
+ Мокито перехват
+
+ true
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl"
index 0aa8cfc40..6a8f1c98e 100644
--- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\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.
@@ -19,7 +19,7 @@
#Область ПрограммныйИнтерфейс
// см. Мокито.Проверить
-Функция Проверить(Объект, Описание) Экспорт
+Функция Проверить(Объект, Описание = Неопределено) Экспорт
УстановитьПараметрыПроверки(Объект, Описание);
Возврат МокитоПроверки;
@@ -244,7 +244,7 @@
СтруктураВызоваМетода = ПараметрыПроверки().СтруктураВызоваМетода;
Объект = СтруктураВызоваМетода.Объект;
- ПредставлениеТипа = ЮТОбщий.ПредставлениеТипа(ТипЗнч(Объект));
+ ПредставлениеТипа = ЮТТипыДанныхСлужебный.ПредставлениеТипа(ТипЗнч(Объект));
Возврат СтрШаблон(" - вызовы метода `%1(%2).%3`,", Объект, ПредставлениеТипа, СтруктураВызоваМетода.ИмяМетода);
КонецФункции
diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270.suppress" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270.suppress"
deleted file mode 100644
index 20316abcb..000000000
--- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\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\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 2beb4238f..142426c91 100644
--- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\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\234\320\276\320\272\320\270\321\202\320\276\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.
@@ -20,7 +20,7 @@
Функция Включен() Экспорт
- ДанныеКонтекста = ЮТКонтекст.ДанныеКонтекста();
+ ДанныеКонтекста = ЮТКонтекстСлужебный.ДанныеКонтекста();
Настройки = Неопределено;
Возврат ДанныеКонтекста <> Неопределено И ДанныеКонтекста.Свойство(КлючНастроек(), Настройки) И Настройки <> Неопределено;
@@ -40,7 +40,7 @@
// см. НовыеНастройки
Функция Настройки() Экспорт
- Настройки = ЮТКонтекст.ЗначениеКонтекста(КлючНастроек());
+ Настройки = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючНастроек());
Если Настройки = Неопределено Тогда
ВызватьИсключение "Что-то пошло не так, настройки Мокито не инициализированы";
@@ -206,7 +206,7 @@
ИначеЕсли Условие.Режим = ТипыУсловий.Значение Тогда
- Совпадает = ЮТСравнениеКлиентСервер.ЗначенияРавны(Условие.Значение, Параметр);
+ Совпадает = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Условие.Значение, Параметр);
ИначеЕсли Условие.Режим = ТипыУсловий.Тип Тогда
@@ -218,7 +218,7 @@
ИначеЕсли Условие.Режим = ТипыУсловий.Предикат Тогда
- Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Параметр, Условие.Предикат);
+ Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Параметр, Условие.Предикат);
Совпадает = Результат.Успешно;
КонецЕсли;
@@ -531,7 +531,7 @@
Процедура ИнициализироватьНастройки() Экспорт
- ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), НовыеНастройки(), Истина);
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючНастроек(), НовыеНастройки(), Истина);
КонецПроцедуры
@@ -568,7 +568,7 @@
Процедура ОчиститьНастройки() Экспорт
- ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), Неопределено);
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючНастроек(), Неопределено);
КонецПроцедуры
@@ -611,10 +611,10 @@
Условия.Добавить(Параметр);
- ИначеЕсли ЮТПредикатыКлиентСервер.ЭтоПредикат(Параметр) Тогда
+ ИначеЕсли ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Параметр) Тогда
Маска = ОписаниеМаскиПараметра(ТипыУсловий.Предикат, 90);
- Маска.Вставить("Предикат", ЮТПредикатыКлиентСервер.НаборПредикатов(Параметр));
+ Маска.Вставить("Предикат", ЮТПредикатыСлужебныйКлиентСервер.НаборПредикатов(Параметр));
Условия.Добавить(Маска);
Иначе
@@ -672,7 +672,7 @@
И Элемент.Ключ.Ссылка = Ссылка
И Элемент.Значение.Свойство(ИмяМетода);
Если ПодходящийЭлемент Тогда
- ЮТОбщий.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]);
+ ЮТКоллекции.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]);
КонецЕсли;
КонецЦикла;
@@ -700,7 +700,7 @@
ПодходящийЭлемент = ТипЗнч(Элемент.Ключ) = ТипОбъекта
И Элемент.Значение.Свойство(ИмяМетода);
Если ПодходящийЭлемент Тогда
- ЮТОбщий.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]);
+ ЮТКоллекции.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]);
КонецЕсли;
КонецЦикла;
diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.suppress" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.suppress"
deleted file mode 100644
index 3f3f0462d..000000000
--- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
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 65dc068c9..e2a540455 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"
@@ -35,7 +35,7 @@
Функция ЗначенияРеквизитов(Ссылка, ИменаРеквизитов) Экспорт
//@skip-check constructor-function-return-section
- Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитов(Ссылка, ИменаРеквизитов, Ложь);
+ Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитов(Ссылка, ИменаРеквизитов, Ложь);
КонецФункции
@@ -49,7 +49,7 @@
// Произвольный - Значение реквизита ссылки
Функция ЗначениеРеквизита(Ссылка, ИмяРеквизита) Экспорт
- Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитов(Ссылка, ИмяРеквизита, Истина);
+ Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитов(Ссылка, ИмяРеквизита, Истина);
КонецФункции
@@ -65,9 +65,9 @@
// Структура, Неопределено - Содержит все данные записи, включая табличный части
Функция Запись(ИмяТаблицы, Предикат) Экспорт
- ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*");
+ ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*");
//@skip-check constructor-function-return-section
- Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Истина);
+ Возврат ЮТЗапросыСлужебныйВызовСервера.Записи(ОписаниеЗапроса, Истина);
КонецФункции
@@ -83,8 +83,8 @@
// Массив из Структура - Найденные записи, включая табличный части
Функция Записи(ИмяТаблицы, Предикат) Экспорт
- ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*");
- Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Ложь);
+ ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, "*");
+ Возврат ЮТЗапросыСлужебныйВызовСервера.Записи(ОписаниеЗапроса, Ложь);
КонецФункции
@@ -102,8 +102,8 @@
//
Функция ЗначенияРеквизитовЗаписи(ИмяТаблицы, Предикат, ИменаРеквизитов) Экспорт
- ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИменаРеквизитов);
- Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Ложь);
+ ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИменаРеквизитов);
+ Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Ложь);
КонецФункции
@@ -121,9 +121,9 @@
//
Функция ЗначениеРеквизитаЗаписи(ИмяТаблицы, Предикат, ИмяРеквизита) Экспорт
- ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИмяРеквизита);
+ ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат, ИмяРеквизита);
//@skip-check constructor-function-return-section
- Возврат ЮТЗапросыВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Истина);
+ Возврат ЮТЗапросыСлужебныйВызовСервера.ЗначенияРеквизитовЗаписи(ОписаниеЗапроса, Истина);
КонецФункции
@@ -139,7 +139,7 @@
// Булево - Таблица содержит записи
Функция ТаблицаСодержитЗаписи(ИмяТаблицы, Предикат = Неопределено) Экспорт
- ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат);
+ ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Предикат);
Возврат НЕ РезультатПустой(ОписаниеЗапроса);
КонецФункции
@@ -155,9 +155,9 @@
Функция РезультатЗапроса(ОписаниеЗапроса) Экспорт
#Если Клиент Тогда
- Возврат ЮТЗапросыВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Истина);
+ Возврат ЮТЗапросыСлужебныйВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Истина);
#Иначе
- Возврат ЮТЗапросыВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Ложь);
+ Возврат ЮТЗапросыСлужебныйВызовСервера.РезультатЗапроса(ОписаниеЗапроса, Ложь);
#КонецЕсли
КонецФункции
@@ -171,7 +171,7 @@
// Булево - Результат пустой
Функция РезультатПустой(ОписаниеЗапроса) Экспорт
- Возврат ЮТЗапросыВызовСервера.РезультатПустой(ОписаниеЗапроса);
+ Возврат ЮТЗапросыСлужебныйВызовСервера.РезультатПустой(ОписаниеЗапроса);
КонецФункции
@@ -202,7 +202,7 @@
Функция НовыйОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля) Экспорт
- Возврат ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля);
+ Возврат ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля);
КонецФункции
@@ -228,10 +228,10 @@
КонецЕсли;
Предикат = ЮТест.Предикат().Реквизит("Регистратор").Равно(Документ);
- ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяРегистра, Предикат, "*");
+ ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяРегистра, Предикат, "*");
ОписаниеЗапроса.Порядок.Добавить("НомерСтроки");
- Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Ложь);
+ Возврат ЮТЗапросыСлужебныйВызовСервера.Записи(ОписаниеЗапроса, Ложь);
КонецФункции
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\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\277\321\200\320\276\321\201\321\213\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"
similarity index 93%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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 3875208f4..94b9e2790 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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\277\321\200\320\276\321\201\321\213\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"
@@ -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.
@@ -156,12 +156,12 @@
Если ОписаниеЗапроса.ВыбираемыеПоля.Количество() Тогда
ВыбираемыеПоля = ОписаниеЗапроса.ВыбираемыеПоля;
Иначе
- ВыбираемыеПоля = ЮТОбщий.ЗначениеВМассиве("1 КАК Поле");
+ ВыбираемыеПоля = ЮТКоллекции.ЗначениеВМассиве("1 КАК Поле");
КонецЕсли;
Строки.Добавить(СтрСоединить(ВыбираемыеПоля, "," + Символы.ПС));
Строки.Добавить("ИЗ " + ОписаниеЗапроса.ИмяТаблицы);
-
+
Условия = СформироватьУсловия(ОписаниеЗапроса.Условия, ОписаниеЗапроса.ИмяТаблицы, Запрос);
Если Условия.Количество() Тогда
@@ -176,7 +176,7 @@
КонецЕсли;
Запрос.Текст = СтрСоединить(Строки, Символы.ПС);
- ЮТОбщий.ОбъединитьВСтруктуру(Запрос.Параметры, ОписаниеЗапроса.ЗначенияПараметров);
+ ЮТКоллекции.ДополнитьСтруктуру(Запрос.Параметры, ОписаниеЗапроса.ЗначенияПараметров);
Возврат Запрос;
@@ -276,9 +276,9 @@
Функция ШаблонУсловия(ВыражениеПредиката, ВыраженияПредикатов, ТипРеквизита)
Выражение = ВыражениеПредиката.ВидСравнения;
- Отрицание = ЮТПредикатыКлиентСервер.ЭтоВыраженияОтрицания(Выражение);
+ Отрицание = ЮТПредикатыСлужебныйКлиентСервер.ЭтоВыраженияОтрицания(Выражение);
Если Отрицание Тогда
- Выражение = ЮТПредикатыКлиентСервер.ВыраженияБезОтрицания(Выражение);
+ Выражение = ЮТПредикатыСлужебныйКлиентСервер.ВыраженияБезОтрицания(Выражение);
КонецЕсли;
Если Выражение = ВыраженияПредикатов.Равно Тогда
@@ -299,6 +299,8 @@
Шаблон = "ТИПЗНАЧЕНИЯ(%1) = &%2";
ИначеЕсли Выражение = ВыраженияПредикатов.Содержит Тогда
Шаблон = "%1 ПОДОБНО ""%%"" + &%2 + ""%%""";
+ ИначеЕсли Выражение = ВыраженияПредикатов.ВСписке Тогда
+ Шаблон = "%1 В (&%2)";
ИначеЕсли Выражение = ВыраженияПредикатов.Заполнено Тогда
// TODO Реализовать
ВызватьИсключение "Проверка заполненности пока не поддерживается";
@@ -323,7 +325,7 @@
ДлинаПсевдонима = СтрДлина(ПсевдонимТаблицы);
Для Каждого ВыражениеПредиката Из Предикаты Цикл
- Если ЮТПредикатыКлиентСервер.ЭтоПредикат(ВыражениеПредиката) И ЗначениеЗаполнено(ВыражениеПредиката.ИмяРеквизита) Тогда
+ Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ВыражениеПредиката) И ЗначениеЗаполнено(ВыражениеПредиката.ИмяРеквизита) Тогда
Реквизиты.Добавить(СтрШаблон("%1.%2 КАК _%3", ПсевдонимТаблицы, ВыражениеПредиката.ИмяРеквизита, Реквизиты.Количество()));
КонецЕсли;
КонецЦикла;
@@ -372,7 +374,7 @@
Для Каждого Условие Из Условия Цикл
- Если НЕ ЮТПредикатыКлиентСервер.ЭтоПредикат(Условие) Тогда
+ Если НЕ ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Условие) Тогда
Результат.Добавить(Условие);
Продолжить;
КонецЕсли;
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\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\277\321\200\320\276\321\201\321\213\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\277\321\200\320\276\321\201\321\213\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\277\321\200\320\276\321\201\321\213\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"
similarity index 81%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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\277\321\200\320\276\321\201\321\213\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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\277\321\200\320\276\321\201\321\213\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"
index 10fbfd8d8..d9cf66049 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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\277\321\200\320\276\321\201\321\213\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\277\321\200\320\276\321\201\321\213\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\277\321\200\320\276\321\201\321\213\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"
@@ -1,6 +1,6 @@
- ЮТЗапросыВызовСервера
+ ЮТЗапросыСлужебныйВызовСервера
ru
Запросы вызов сервера
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\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/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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"
similarity index 82%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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 489b23354..d964e146e 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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"
@@ -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.
@@ -29,7 +29,7 @@
КонецЕсли;
Если ПредикатыУсловия <> Неопределено Тогда
- Описание.Условия = ЮТПредикатыКлиентСервер.НаборПредикатов(ПредикатыУсловия);
+ Описание.Условия = ЮТПредикатыСлужебныйКлиентСервер.НаборПредикатов(ПредикатыУсловия);
КонецЕсли;
Возврат Описание;
@@ -45,7 +45,7 @@
ТипПараметра = ТипЗнч(ВыбираемыеПоля);
Если ТипПараметра = Тип("Строка") Тогда
- ВыбираемыеПоля = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(ВыбираемыеПоля, ",");
+ ВыбираемыеПоля = ЮТСтроки.РазделитьСтроку(ВыбираемыеПоля, ",");
ТипПараметра = Тип("Массив");
КонецЕсли;
@@ -62,7 +62,7 @@
Иначе
- ВызватьИсключение ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТЗапросыКлиентСервер.ЗаполнитьВыбираемыеПоля", ВыбираемыеПоля);
+ ВызватьИсключение ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТЗапросыКлиентСервер.ЗаполнитьВыбираемыеПоля", ВыбираемыеПоля);
КонецЕсли;
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\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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.mdo"
similarity index 85%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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.mdo"
index f0a712979..081f5647d 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\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.mdo"
@@ -1,6 +1,6 @@
- ЮТЗапросыКлиентСервер
+ ЮТЗапросыСлужебныйКлиентСервер
ru
Запросы клиент сервер
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/Module.bsl"
new file mode 100644
index 000000000..ab781986a
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/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.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область ПрограммныйИнтерфейс
+
+// Формирует текст исключения о некорректных параметрах вызова метода
+//
+// Параметры:
+// ИмяМетода - Строка
+// Пояснение - Строка
+//
+// Возвращаемое значение:
+// Строка - Текст исключения
+Функция НекорректныеПараметрыМетода(ИмяМетода, Пояснение = Неопределено) Экспорт
+
+ Сообщение = СтрШаблон("Некорректные параметры метода `%1`");
+ Возврат ЮТСтроки.ДобавитьСтроку(Сообщение, Пояснение, ", ");
+
+КонецФункции
+
+// Формирует текст исключения о неподдерживаемом значении параметра вызова метода
+//
+// Параметры:
+// ИмяМетода - Строка
+// ЗначениеПараметра - Произвольный
+//
+// Возвращаемое значение:
+// Строка - Текст исключения
+Функция НеподдерживаемыйПараметрМетода(ИмяМетода, ЗначениеПараметра) Экспорт
+
+ Возврат СтрШаблон("Неподдерживаемый параметр метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра));
+
+КонецФункции
+
+// Формирует текст исключения о недоступности метода в указанном контексте
+//
+// Параметры:
+// ИмяМетода - Строка
+// ИмяКонтекста - Строка
+//
+// Возвращаемое значение:
+// Строка - Текст исключения
+Функция МетодНеДоступен(ИмяМетода, ИмяКонтекста = "веб-клиенте") Экспорт
+
+ Возврат СтрШаблон("Метод `%1` не доступен в/на %2", ИмяМетода, ИмяКонтекста);
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217.mdo"
new file mode 100644
index 000000000..bceff2664
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217/\320\256\320\242\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТИсключения
+
+ ru
+ Исключения
+
+ true
+ true
+ true
+
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\265\321\200\320\262\320\265\321\200/\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\265\321\200\320\262\320\265\321\200.suppress" "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\265\321\200\320\262\320\265\321\200/\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\265\321\200\320\262\320\265\321\200.suppress"
deleted file mode 100644
index 71114e427..000000000
--- "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\265\321\200\320\262\320\265\321\200/\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\265\321\200\320\262\320\265\321\200.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
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\265\321\200\320\262\320\265\321\200/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\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"
similarity index 55%
rename from "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\265\321\200\320\262\320\265\321\200/Module.bsl"
rename to "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\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 83ad8d2e7..77ad127d7 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\265\321\200\320\262\320\265\321\200/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\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"
@@ -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.
@@ -22,14 +22,14 @@
// Выполняет тесты наборов модуля. Возвращает результат прогона
// Это обертка для прогона на сервере
// Параметры:
-// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы исполняемых тестов, структуру набора см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
+// Наборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Наборы исполняемых тестов, структуру набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
//
// Возвращаемое значение:
-// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов, структура набора см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
+// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов, структура набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
Функция ВыполнитьГруппуНаборовТестов(Знач Наборы, Знач ТестовыйМодуль) Экспорт
- Возврат ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль);
+ Возврат ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль);
КонецФункции
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\265\321\200\320\262\320\265\321\200/\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\265\321\200\320\262\320\265\321\200.mdo" "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\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\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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
similarity index 80%
rename from "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\265\321\200\320\262\320\265\321\200/\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\265\321\200\320\262\320\265\321\200.mdo"
rename to "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\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\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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
index 844cea612..bbcec480b 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\265\321\200\320\262\320\265\321\200/\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\265\321\200\320\262\320\265\321\200.mdo"
+++ "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\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\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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
@@ -1,6 +1,6 @@
- ЮТИсполнительСервер
+ ЮТИсполнительСлужебныйВызовСервера
ru
Исполнитель тестов (сервер)
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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl"
similarity index 84%
rename from "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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl"
rename to "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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/Module.bsl"
index faba7e613..0a5099ab3 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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/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\223\320\273\320\276\320\261\320\260\320\273\321\214\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.
@@ -20,7 +20,7 @@
Процедура ЮТВыполнитьМодульноеТестирование() Экспорт
- ЮТИсполнительКлиент.ВыполнитьМодульноеТестирование();
+ ЮТИсполнительСлужебныйКлиент.ВыполнитьМодульноеТестирование();
КонецПроцедуры
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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo" "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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo"
similarity index 72%
rename from "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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo"
rename to "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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo"
index 03a76c730..3a25f8920 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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271.mdo"
+++ "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\223\320\273\320\276\320\261\320\260\320\273\321\214\320\275\321\213\320\271/\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\223\320\273\320\276\320\261\320\260\320\273\321\214\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\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\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"
similarity index 77%
rename from "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\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
rename to "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 19cbaa888..55ce81d8b 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\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"
@@ -80,7 +80,7 @@
Продолжить;
КонецЕсли;
- РежимИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим);
+ РежимИсполнения = ЮТФабрикаСлужебный.КонтекстИсполнения(Набор.Режим);
Если РежимИсполнения = КонтекстыИсполнения.Клиент Тогда
КлиентскиеНаборы.Добавить(Набор);
@@ -92,20 +92,20 @@
КонецЦикла;
- ТестовыйМодульОблегченный = ЮТОбщий.СкопироватьСтруктуру(ТестовыйМодуль);
+ ТестовыйМодульОблегченный = ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль);
ТестовыйМодульОблегченный.НаборыТестов = Новый Массив();
Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда
- Результаты = ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный);
+ Результаты = ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный);
КонецЕсли;
Если ЗначениеЗаполнено(СерверныеНаборы) Тогда
- Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный);
- ЮТЛогирование.ВывестиСерверныеСообщения();
- ЮТОбщий.ДополнитьМассив(Результаты, Результат);
+ Результат = ЮТИсполнительСлужебныйВызовСервера.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный);
+ ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения();
+ ЮТКоллекции.ДополнитьМассив(Результаты, Результат);
КонецЕсли;
- ЮТОбщий.ДополнитьМассив(Результаты, ПропущенныеНаборы);
+ ЮТКоллекции.ДополнитьМассив(Результаты, ПропущенныеНаборы);
ТестовыйМодульОблегченный.НаборыТестов = Результаты;
@@ -117,6 +117,17 @@
ВызватьИсключение ТекстОшибки;
КонецПроцедуры
+Процедура ВыполнитьИнициализацию(ПараметрыЗапуска) Экспорт
+
+ ЮТКонтекстСлужебный.ИнициализироватьКонтекст();
+ ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ПараметрыЗапуска.settings);
+ // Повторно сохраним для передачи на сервер
+ ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения());
+
+ ЮТСобытияСлужебный.Инициализация(ПараметрыЗапуска);
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -132,7 +143,7 @@
Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
- ЮТПараметрыЗапуска.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик);
+ ЮТПараметрыЗапускаСлужебный.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик);
КонецПроцедуры
@@ -150,18 +161,17 @@
Процедура ОбработчикИнициализация(Результат, ДополнительныеПараметры) Экспорт
- ЮТСобытия.Инициализация(ДополнительныеПараметры.ПараметрыЗапуска);
-
+ ВыполнитьИнициализацию(ДополнительныеПараметры.ПараметрыЗапуска);
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецПроцедуры
Процедура ОбработчикЗагрузитьТесты(Результат, ДополнительныеПараметры) Экспорт
- ЮТСобытия.ПередЧтениеСценариев();
+ ЮТСобытияСлужебный.ПередЧтениеСценариев();
- ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска);
- ЮТСобытия.ПослеЧтенияСценариев(ТестовыеМодули);
+ ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска);
+ ЮТСобытияСлужебный.ПослеЧтенияСценариев(ТестовыеМодули);
ИсполняемыеТестовыеМодули = Новый Массив();
@@ -170,7 +180,7 @@
ИсполняемыеТестовыеМодули.Добавить(ИсполняемыйТестовыйМодуль);
КонецЦикла;
- ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули);
+ ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули);
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули;
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули);
@@ -179,7 +189,7 @@
Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт
- ЮТСобытия.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули);
+ ЮТСобытияСлужебный.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули);
РезультатыТестирования = Новый Массив();
@@ -190,7 +200,7 @@
КонецЦикла;
- ЮТСобытия.ПослеВыполненияТестов(РезультатыТестирования);
+ ЮТСобытияСлужебный.ПослеВыполненияТестов(РезультатыТестирования);
ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования;
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, РезультатыТестирования);
@@ -201,7 +211,7 @@
Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
- ЮТОтчет.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик);
+ ЮТОтчетСлужебный.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик);
Иначе
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецЕсли;
@@ -218,7 +228,7 @@
Процедура ОбработчикЗавершить(Результат, ДополнительныеПараметры) Экспорт
Параметры = ДополнительныеПараметры.ПараметрыЗапуска;
- ЮТКонтекст.УдалитьКонтекст();
+ ЮТКонтекстСлужебный.УдалитьКонтекст();
Если Параметры.showReport Тогда
ПоказатьОтчет(ДополнительныеПараметры.РезультатыТестирования, Параметры);
@@ -232,7 +242,7 @@
Если ДополнительныеПараметры.ПараметрыЗапуска.ПодключатьВнешниеКомпоненты Тогда
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
- ЮТКомпонентыКлиент.ТихаяУстановкаКомпонент(Обработчик);
+ ЮТКомпонентыСлужебныйКлиент.ТихаяУстановкаКомпонент(Обработчик);
Иначе
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
КонецЕсли;
@@ -243,18 +253,9 @@
#Область ОбработчикиСобытий
-Процедура Инициализация(Параметры) Экспорт
-
- ЮТКонтекст.ИнициализироватьКонтекст();
- ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(Параметры.settings);
- // Повторно сохраним для передачи на сервер
- ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекст.ГлобальныеНастройкиВыполнения());
-
-КонецПроцедуры
-
Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт
- ЮТКонтекст.УстановитьКонтекстИсполнения(ЮТФабрика.НовыйКонтекстИсполнения());
+ ЮТКонтекстСлужебный.УстановитьКонтекстИсполнения(ЮТФабрикаСлужебный.НовыйКонтекстИсполнения());
КонецПроцедуры
@@ -269,17 +270,17 @@
Функция ИсполняемыйТестовыйМодуль(ТестовыйМодуль)
- ИсполняемыйТестовыйМодуль = ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль);
+ ИсполняемыйТестовыйМодуль = ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль);
- КонтекстыПриложения = ЮТФабрика.КонтекстыПриложения();
- КонтекстыМодуля = ЮТФабрика.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля);
+ КонтекстыПриложения = ЮТФабрикаСлужебный.КонтекстыПриложения();
+ КонтекстыМодуля = ЮТФабрикаСлужебный.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля);
КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения();
ИсполняемыйТестовыйМодуль.НаборыТестов = ИсполняемыеНаборыМодуля(ТестовыйМодуль);
Для Каждого Набор Из ИсполняемыйТестовыйМодуль.НаборыТестов Цикл
- КонтекстИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим);
+ КонтекстИсполнения = ЮТФабрикаСлужебный.КонтекстИсполнения(Набор.Режим);
Если КонтекстыПриложения.Найти(Набор.Режим) = Неопределено Тогда
ОшибкаКонтекста = "Неподдерживаемый режим запуска";
@@ -293,9 +294,9 @@
Если ОшибкаКонтекста <> Неопределено Тогда
Набор.Выполнять = Ложь;
- ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Набор, ОшибкаКонтекста);
+ ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуРежимаВыполнения(Набор, ОшибкаКонтекста);
Для Каждого Тест Из Набор.Тесты Цикл
- ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Тест, ОшибкаКонтекста);
+ ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуРежимаВыполнения(Тест, ОшибкаКонтекста);
КонецЦикла;
КонецЕсли;
@@ -313,7 +314,7 @@
НаборыКонтекстов = Новый Структура;
- ТестыНабора = ЮТОбщий.ЗначениеСтруктуры(ТестовыйНабор, "Тесты", Новый Массив());
+ ТестыНабора = ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты", Новый Массив());
ОбработатьОшибкиЧтенияНабора(ТестовыйНабор, ТестовыйМодуль);
Для Каждого Тест Из ТестыНабора Цикл
@@ -321,16 +322,16 @@
Для Каждого Контекст Из Тест.КонтекстВызова Цикл
Если НЕ НаборыКонтекстов.Свойство(Контекст) Тогда
- ИсполняемыйНабор = ЮТФабрика.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль);
+ ИсполняемыйНабор = ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль);
ИсполняемыйНабор.Режим = Контекст;
НаборыКонтекстов.Вставить(Контекст, ИсполняемыйНабор);
Иначе
ИсполняемыйНабор = НаборыКонтекстов[Контекст];
КонецЕсли;
- ИсполняемыйТест = ЮТФабрика.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль);
+ ИсполняемыйТест = ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль);
Если Тест.Свойство("Ошибки") И Тест.Ошибки.Количество() > 0 Тогда
- ИсполняемыйТест.Ошибки = ЮТОбщий.СкопироватьМассив(Тест.Ошибки);
+ ИсполняемыйТест.Ошибки = ЮТКоллекции.СкопироватьМассив(Тест.Ошибки);
КонецЕсли;
ИсполняемыйНабор.Тесты.Добавить(ИсполняемыйТест);
@@ -353,15 +354,15 @@
КонецФункции
Процедура ОбработатьОшибкиЧтенияНабора(Набор, Модуль)
- ТестыНабора = ЮТОбщий.ЗначениеСтруктуры(Набор, "Тесты", Новый Массив());
- Ошибки = ЮТОбщий.ЗначениеСтруктуры(Набор, "Ошибки", Новый Массив());
+ ТестыНабора = ЮТКоллекции.ЗначениеСтруктуры(Набор, "Тесты", Новый Массив());
+ Ошибки = ЮТКоллекции.ЗначениеСтруктуры(Набор, "Ошибки", Новый Массив());
Если Ошибки.Количество() > 0 Тогда
Для Каждого Ошибка Из Ошибки Цикл
- Если Ошибка.ТипОшибки = ЮТФабрика.ТипыОшибок().ЧтенияТестов Тогда
+ Если Ошибка.ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().ЧтенияТестов Тогда
Тест = ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка);
ТестыНабора.Добавить(Тест);
-
+
Прервать;
КонецЕсли;
КонецЦикла;
@@ -369,10 +370,10 @@
КонецПроцедуры
Функция ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка)
- Контексты = ЮТФабрика.КонтекстыМодуля(Модуль.МетаданныеМодуля);
- Тест = ЮТФабрика.ОписаниеТеста("ИсполняемыеСценарии", "ИсполняемыеСценарии", Контексты);
+ Контексты = ЮТФабрикаСлужебный.КонтекстыМодуля(Модуль.МетаданныеМодуля);
+ Тест = ЮТФабрикаСлужебный.ОписаниеТеста("ИсполняемыеСценарии", "ИсполняемыеСценарии", Контексты);
Тест.Вставить("Ошибки", Новый Массив);
- Тест.Ошибки.Добавить(ЮТОбщий.СкопироватьСтруктуру(Ошибка));
+ Тест.Ошибки.Добавить(ЮТКоллекции.СкопироватьСтруктуру(Ошибка));
Возврат Тест;
КонецФункции
@@ -389,7 +390,7 @@
// Записать код возврата.
//
// Параметры:
-// РезультатыТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
+// РезультатыТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
// Параметры - см. ЮТФабрика.ПараметрыЗапуска
Процедура ЗаписатьКодВозврата(РезультатыТестирования, Параметры)
@@ -430,7 +431,7 @@
КонецЦикла;
#Если ВебКлиент Тогда
- ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТИсполнительКлиент.ЗаписатьКодВозврата");
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТИсполнительКлиент.ЗаписатьКодВозврата");
#Иначе
Запись = Новый ЗаписьТекста(Параметры.exitCode, КодировкаТекста.UTF8);
Запись.ЗаписатьСтроку(?(Успешно, 0, 1));
@@ -446,7 +447,7 @@
Возврат Результат;
КонецЕсли;
- ТипОшибкиПропущен = ЮТФабрика.ТипыОшибок().Пропущен;
+ ТипОшибкиПропущен = ЮТФабрикаСлужебный.ТипыОшибок().Пропущен;
Для Каждого ОписаниеОшибки Из Тест.Ошибки Цикл
Если ОписаниеОшибки.ТипОшибки <> ТипОшибкиПропущен Тогда
Результат = Истина;
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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo" "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/\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.mdo"
similarity index 84%
rename from "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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo"
rename to "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/\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.mdo"
index 049d96e65..6b2ea6dff 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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТИсполнительКлиент
+ ЮТИсполнительСлужебныйКлиент
ru
Исполнитель клиент
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\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/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\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
similarity index 71%
rename from "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\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"
rename to "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\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
index 1706248fd..9c619b516 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\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/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\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
@@ -20,18 +20,18 @@
// Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер)
// Параметры:
-// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля
-// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
+// Наборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля
+// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
//
// Возвращаемое значение:
-// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении
+// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении
Функция ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль) Экспорт
Если Наборы.Количество() = 0 Тогда
Возврат Наборы;
КонецЕсли;
- ЮТСобытия.ПередВсемиТестамиМодуля(ТестовыйМодуль);
+ ЮТСобытияСлужебный.ПередВсемиТестамиМодуля(ТестовыйМодуль);
Если ЕстьОшибки(ТестовыйМодуль) Тогда
СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки);
@@ -48,7 +48,7 @@
КонецЦикла;
- ЮТСобытия.ПослеВсехТестовМодуля(ТестовыйМодуль);
+ ЮТСобытияСлужебный.ПослеВсехТестовМодуля(ТестовыйМодуль);
Если ЕстьОшибки(ТестовыйМодуль) Тогда
СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки);
@@ -67,7 +67,7 @@
Функция ВыполнитьНаборТестов(Набор, ТестовыйМодуль)
Набор.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах();
- ЮТСобытия.ПередТестовымНабором(ТестовыйМодуль, Набор);
+ ЮТСобытияСлужебный.ПередТестовымНабором(ТестовыйМодуль, Набор);
Если ЕстьОшибки(Набор) Тогда
Возврат Неопределено;
@@ -86,12 +86,12 @@
ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест, ВТранзакции);
- Тест.Статус = ЮТРегистрацияОшибок.СтатусВыполненияТеста(Тест);
+ Тест.Статус = ЮТРегистрацияОшибокСлужебный.СтатусВыполненияТеста(Тест);
Результаты.Добавить(Тест);
КонецЦикла;
- ЮТСобытия.ПослеТестовогоНабора(ТестовыйМодуль, Набор);
+ ЮТСобытияСлужебный.ПослеТестовогоНабора(ТестовыйМодуль, Набор);
Набор.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Набор.ДатаСтарта;
@@ -101,7 +101,7 @@
Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции)
- ЮТСобытия.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест);
+ ЮТСобытияСлужебный.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест);
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции();
Если ВТранзакции Тогда
@@ -109,18 +109,18 @@
КонецЕсли;
#КонецЕсли
- ЮТСобытия.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест);
+ ЮТСобытияСлужебный.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест);
КонецПроцедуры
Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест, ВТранзакции)
- Если ЮТКонтекст.ДанныеКонтекста() = Неопределено Тогда // Сломан контекст
+ Если ЮТКонтекстСлужебный.ДанныеКонтекста() = Неопределено Тогда // Сломан контекст
ОбновитьПовторноИспользуемыеЗначения();
ОтменитьТранзакциюТеста(Тест, ВТранзакции);
- ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
+ ЮТСобытияСлужебный.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
Иначе
- ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
+ ЮТСобытияСлужебный.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
ОтменитьТранзакциюТеста(Тест, ВТранзакции);
КонецЕсли;
@@ -133,13 +133,13 @@
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
Иначе
- ЮТРегистрацияОшибок.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружено лишне закрытие транзакции");
+ ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружено лишне закрытие транзакции");
КонецЕсли;
КонецЕсли;
Пока ТранзакцияАктивна() Цикл
ОтменитьТранзакцию();
- ЮТРегистрацияОшибок.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружена незакрытая транзакция");
+ ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружена незакрытая транзакция");
КонецЦикла;
#КонецЕсли
@@ -160,10 +160,10 @@
СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста();
Тест.Статус = СтатусыИсполненияТеста.Исполнение;
- Ошибка = ЮТОбщий.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры);
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры);
Если Ошибка <> Неопределено Тогда
- ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка);
+ ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка);
КонецЕсли;
КонецПроцедуры
@@ -172,7 +172,7 @@
Для Каждого Объект Из Объекты Цикл
- ЮТОбщий.ДополнитьМассив(Объект.Ошибки, Ошибки);
+ ЮТКоллекции.ДополнитьМассив(Объект.Ошибки, Ошибки);
Если Объект.Свойство("Статус") Тогда
Объект.Статус = ЮТФабрика.СтатусыИсполненияТеста().Сломан;
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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "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\320\241\320\265\321\200\320\262\320\265\321\200/\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.mdo"
similarity index 83%
rename from "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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "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\320\241\320\265\321\200\320\262\320\265\321\200/\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.mdo"
index c64fae9a6..ed903cc56 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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "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\320\241\320\265\321\200\320\262\320\265\321\200/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТИсполнительКлиентСервер
+ ЮТИсполнительСлужебныйКлиентСервер
ru
Исполнитель тестов
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl"
new file mode 100644
index 000000000..4bd1afce9
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl"
@@ -0,0 +1,409 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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 По Размер - 1 Цикл
+ Результат[Инд] = СкопироватьРекурсивно(Источник[Инд]);
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Создает копию списка значений
+//
+// Параметры:
+// Источник - СписокЗначений Из Произвольный
+//
+// Возвращаемое значение:
+// СписокЗначений Из Произвольный
+//
+Функция СкопироватьСписокЗначений(Источник) Экспорт
+
+ Результат = Новый СписокЗначений;
+
+ Для Каждого ЭлементСписка Из Источник Цикл
+
+ НовоеЗначение = СкопироватьРекурсивно(ЭлементСписка.Значение);
+ Результат.Добавить(НовоеЗначение, ЭлементСписка.Представление, ЭлементСписка.Пометка, ЭлементСписка.Картинка);
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Выгружает значения "колонки" коллекции элементов.
+//
+// Параметры:
+// Коллекция - Произвольный - Итерируемая коллекция
+// ИмяРеквизита - Строка - Имя реквизата элементов коллекции
+//
+// Возвращаемое значение:
+// Массив из Произвольный
+Функция ВыгрузитьЗначения(Коллекция, ИмяРеквизита) Экспорт
+
+ Результат = Новый Массив();
+
+ Для Каждого ЭлементКоллекции Из Коллекция Цикл
+ Результат.Добавить(ЭлементКоллекции[ИмяРеквизита]);
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Вычисляет двух массивов, коллекцию содержащую общие элементы.
+//
+// Параметры:
+// Коллекция1 - Массив из Произвольный
+// Коллекция2 - Массив из Произвольный
+//
+// Возвращаемое значение:
+// Массив из Произвольный - Пересечение массивов
+Функция ПересечениеМассивов(Коллекция1, Коллекция2) Экспорт
+
+ Результат = Новый Массив;
+
+ Для Каждого Элемент Из Коллекция1 Цикл
+
+ Если Коллекция2.Найти(Элемент) <> Неопределено Тогда
+ Результат.Добавить(Элемент);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Создает массив с переданными значениями
+//
+// Параметры:
+// Значение - Произвольный
+// Значение2 - Произвольный
+// Значение3 - Произвольный
+// Значение4 - Произвольный
+// Значение5 - Произвольный
+// Значение6 - Произвольный
+// Значение7 - Произвольный
+// Значение8 - Произвольный
+// Значение9 - Произвольный
+// Значение10 - Произвольный
+//
+// Возвращаемое значение:
+// Массив из Произвольный
+//@skip-check method-too-many-params
+Функция ЗначениеВМассиве(Значение,
+ Значение2 = "_!%*",
+ Значение3 = "_!%*",
+ Значение4 = "_!%*",
+ Значение5 = "_!%*",
+ Значение6 = "_!%*",
+ Значение7 = "_!%*",
+ Значение8 = "_!%*",
+ Значение9 = "_!%*",
+ Значение10 = "_!%*") Экспорт
+
+ Значения = Новый Массив;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение2) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение3) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение4) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение5) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение6) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение7) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение8) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение9) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Если Не ДобавитьНеПоследнее(Значения, Значение10) Тогда
+ Возврат Значения;
+ КонецЕсли;
+
+ Возврат Значения;
+
+КонецФункции
+
+// Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
+//
+// Параметры:
+// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки.
+// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
+// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
+// Возвращаемое значение:
+// Соответствие Из Произвольный - полученное соответствие.
+Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
+
+ Результат = Новый Соответствие();
+
+ Для Каждого ЭлементКоллекции Из Коллекция Цикл
+
+ Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]);
+
+ Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение);
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
+//
+// Параметры:
+// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки.
+// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
+// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
+// Возвращаемое значение:
+// Структура Из Произвольный - полученная структура.
+Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
+
+ Результат = Новый Структура();
+
+ Для Каждого ЭлементКоллекции Из Коллекция Цикл
+
+ Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]);
+
+ Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение);
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Формирует текстовое представление массива.
+// Пример результата - "[1, 2, 3]"
+//
+// Параметры:
+// Данные - Массив из Строка
+//
+// Возвращаемое значение:
+// Строка
+Функция ПредставлениеМассива(Данные) Экспорт
+
+ Возврат СтрШаблон("[%1]", СтрСоединить(Данные, ", "));
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция ДобавитьНеПоследнее(Значения, Значение, ФлагОкончания = "_!%*")
+
+ Если Значение <> ФлагОкончания Тогда
+ Значения.Добавить(Значение);
+ Возврат Истина;
+ КонецЕсли;
+
+ Возврат Ложь;
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo"
new file mode 100644
index 000000000..47c180d20
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТКоллекции
+
+ ru
+ Коллекции
+
+ true
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl"
index cc3e0f6f8..ad39dade4 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/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.
@@ -74,7 +74,7 @@
Функция СоздатьКомпоненту(ОписаниеКомпоненты, Кэшировать = Ложь) Экспорт
Если Кэшировать Тогда
- Возврат ЮТПовторногоИспользования.СоздатьКомпоненту(ОписаниеКомпоненты);
+ Возврат ЮТСлужебныйПовторногоИспользования.СоздатьКомпоненту(ОписаниеКомпоненты);
КонецЕсли;
#Если Сервер Тогда
@@ -107,7 +107,7 @@
Функция ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты, Кэшировать) Экспорт
Если Кэшировать Тогда
- Возврат ЮТПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты);
+ Возврат ЮТСлужебныйПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты);
КонецЕсли;
Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
similarity index 96%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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 ec01d6304..154ff00f3 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
@@ -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 @@
Функция ФайлКомпоненты(Знач ИмяМакета, Знач ОперационнаяСистема, Знач Архитектура) Экспорт
- Данные = ЮТОбщийВызовСервера.Макет(ИмяМакета);
+ Данные = ЮТОбщийСлужебныйВызовСервера.Макет(ИмяМакета);
ЧтениеАрхива = Новый ЧтениеZipФайла();
ЧтениеАрхива.Открыть(Данные.ОткрытьПотокДляЧтения());
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
similarity index 81%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
index 2fdf4a25f..1a40d8c0d 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
@@ -1,6 +1,6 @@
- ЮТКомпонентыВызовСервера
+ ЮТКомпонентыСлужебныйВызовСервера
ru
Компоненты вызов сервера
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
similarity index 93%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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 5b99ced1a..9856c3620 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
@@ -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.
@@ -106,7 +106,7 @@
ОперационнаяСистема = MacOS;
Архитектура = x64;
Иначе
- ЮТИсполнительКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы");
+ ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы");
КонецЕсли;
ПараметрыТихойУстановки.ОперационнаяСистема = ОперационнаяСистема;
@@ -118,7 +118,7 @@
Процедура ПрочитатьФайлRegistry(ПараметрыТихойУстановки) Экспорт
#Если ВебКлиент Тогда
- ЮТИсполнительКлиент.ОбработкаОшибки(ЮТОбщий.МетодНеДоступен("ЮТКомпонентыКлиент.ПрочитатьФайлRegistry"));
+ ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ПрочитатьФайлRegistry"));
Возврат;
#Иначе
ФайлРеестра = ЮТФайлы.ОбъединитьПути(ПараметрыТихойУстановки.РабочийКаталог, "registry.xml");
@@ -134,7 +134,7 @@
Процедура ЗаписатьФайлRegistry(ПараметрыТихойУстановки) Экспорт
#Если ВебКлиент Тогда
- ЮТИсполнительКлиент.ОбработкаОшибки(ЮТОбщий.МетодНеДоступен("ЮТКомпонентыКлиент.ЗаписатьФайлRegistry"));
+ ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки(ЮТИсключения.МетодНеДоступен("ЮТКомпонентыКлиент.ЗаписатьФайлRegistry"));
Возврат;
#Иначе
Если ПараметрыТихойУстановки.ИзмененРеестр Тогда
@@ -188,7 +188,7 @@
Процедура ТихаяУстановкаВнешнейКомпоненты(Компонента, Параметры)
- ДанныеФайла = ЮТКомпонентыВызовСервера.ФайлКомпоненты(Компонента.ИмяМакета, Параметры.ОперационнаяСистема, Параметры.Архитектура);
+ ДанныеФайла = ЮТКомпонентыСлужебныйВызовСервера.ФайлКомпоненты(Компонента.ИмяМакета, Параметры.ОперационнаяСистема, Параметры.Архитектура);
Если ЗаписатьВРеестр(Параметры.ДанныеРеестра, ДанныеФайла.ИмяФайла) Тогда
Параметры.ИзмененРеестр = Истина;
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
similarity index 85%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
index 3a4492e06..238264fce 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\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"
@@ -1,6 +1,6 @@
- ЮТКомпонентыКлиент
+ ЮТКомпонентыСлужебныйКлиент
ru
Компоненты клиент
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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl"
index 9877c8097..973ef484e 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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/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.
@@ -31,7 +31,7 @@
Вариант = Новый Структура(Реквизиты);
Варианты.КоличествоРеквизитов = Вариант.Количество();
- ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), Варианты);
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), Варианты);
Возврат ЮТКонструкторВариантов;
@@ -60,7 +60,7 @@
Параметр7 = Неопределено) Экспорт
// BSLLS:MagicNumber-off
// BSLLS:NumberOfValuesInStructureConstructor-off
- Варианты = ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
+ Варианты = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста());
Если Варианты.КоличествоРеквизитов = 1 Тогда
Вариант = Новый Структура(Варианты.Реквизиты, Параметр1);
@@ -91,7 +91,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 488135cfb..1639bbe78 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"
@@ -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,30 +20,34 @@
Процедура Установить(Контекст, ИмяРеквизита, Значение) Экспорт
- Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
- ТекущаяЗапись = ДанныеСтроки(Контекст);
- Иначе
- ТекущаяЗапись = Контекст.Данные;
- КонецЕсли;
+ ОписаниеРеквизита(Контекст, ИмяРеквизита); // Проверка наличия реквизита
+ ТекущаяЗапись = ТекущаяЗапись(Контекст);
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
КонецПроцедуры
+Процедура УстановитьРеквизиты(Контекст, ЗначенияРеквизитов) Экспорт
+
+ ТекущаяЗапись = ТекущаяЗапись(Контекст);
+ Для Каждого ЗначениеРеквизита Из ЗначенияРеквизитов Цикл
+
+ ОписаниеРеквизита(Контекст, ЗначениеРеквизита.Ключ);
+ ТекущаяЗапись.Вставить(ЗначениеРеквизита.Ключ, ЗначениеРеквизита.Значение);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
Процедура Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения, Знач ОграничениеТипа) Экспорт
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ОграничениеТипа, "Тип, ОписаниеТипов, Строка", "Фикция", "ЮТКонструкторТестовыхДанных", Истина);
- Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
- ОписаниеРеквизита = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть][ИмяРеквизита];
- ТекущаяЗапись = ДанныеСтроки(Контекст);
- Иначе
- ОписаниеРеквизита = Контекст.Метаданные.Реквизиты[ИмяРеквизита];
- ТекущаяЗапись = Контекст.Данные;
- КонецЕсли;
+ ТекущаяЗапись = ТекущаяЗапись(Контекст);
+ ОписаниеРеквизита = ОписаниеРеквизита(Контекст, ИмяРеквизита);
Если ОграничениеТипа <> Неопределено Тогда
- ПолноеИмяРеквизита = ЮТОбщий.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, ".");
+ ПолноеИмяРеквизита = ЮТСтроки.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, ".");
ТипЗначения = ПересечениеТипов(ОписаниеРеквизита.Тип, ОграничениеТипа, ПолноеИмяРеквизита);
Иначе
ТипЗначения = ОписаниеРеквизита.Тип;
@@ -56,13 +60,8 @@
Процедура ФикцияОбязательныхПолей(Контекст) Экспорт
- Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
- Реквизиты = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть];
- ТекущаяЗапись = ДанныеСтроки(Контекст);
- Иначе
- Реквизиты = Контекст.Метаданные.Реквизиты;
- ТекущаяЗапись = Контекст.Данные;
- КонецЕсли;
+ Реквизиты = Реквизиты(Контекст);
+ ТекущаяЗапись = ТекущаяЗапись(Контекст);
Для Каждого Элемент Из Реквизиты Цикл
Реквизит = Элемент.Значение;
@@ -84,11 +83,15 @@
КонецПроцедуры
-Процедура ДобавитьСтроку(Контекст) Экспорт
+Процедура ДобавитьСтроку(Контекст, ЗначенияРеквизитов) Экспорт
Запись = Новый Структура();
ДанныеТабличнойЧасти(Контекст).Добавить(Запись);
+ Если ЗначенияРеквизитов <> Неопределено Тогда
+ УстановитьРеквизиты(Контекст, ЗначенияРеквизитов);
+ КонецЕсли;
+
КонецПроцедуры
Процедура УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение = Неопределено) Экспорт
@@ -103,7 +106,7 @@
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка;
- Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
+ Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
@@ -113,7 +116,7 @@
Функция НовыйОбъект(Контекст) Экспорт
- Возврат ЮТТестовыеДанныеВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства);
+ Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства);
КонецФункции
@@ -123,7 +126,7 @@
ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства;
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;
- Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
+ Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
@@ -189,7 +192,7 @@
// Структура - Новый контекст конструктора:
// * Менеджер - Произвольный
// * Данные - Структура
-// * Метаданные - см. ЮТМетаданные.ОписаниеОбъектаМетаданных
+// * Метаданные - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных
// * ТекущаяТабличнаяЧасть - Строка
// * ДополнительныеСвойства - Структура
Функция НовыйКонтекстКонструктора(Менеджер) Экспорт
@@ -222,9 +225,9 @@
КонецЕсли;
Если ТипОграничения = Тип("Тип") И ОписаниеТипов.СодержитТип(ОграничениеТипов) И ОграничениеТипов <> Тип("Неопределено") Тогда
- Результат = ЮТОбщий.ЗначениеВМассиве(ОграничениеТипов);
+ Результат = ЮТКоллекции.ЗначениеВМассиве(ОграничениеТипов);
ИначеЕсли ТипОграничения = Тип("ОписаниеТипов") Тогда
- Результат = ЮТОбщий.ПересечениеМассивов(ОписаниеТипов.Типы(), ОграничениеТипов.Типы());
+ Результат = ЮТКоллекции.ПересечениеМассивов(ОписаниеТипов.Типы(), ОграничениеТипов.Типы());
Иначе
Результат = Неопределено;
КонецЕсли;
@@ -247,4 +250,43 @@
КонецФункции
+Функция Реквизиты(Контекст)
+
+ Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
+ Возврат Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть];
+ Иначе
+ Возврат Контекст.Метаданные.Реквизиты;
+ КонецЕсли;
+
+КонецФункции
+
+Функция ОписаниеРеквизита(Контекст, ИмяРеквизита)
+
+ Реквизиты = Реквизиты(Контекст);
+
+ Если НЕ Реквизиты.Свойство(ИмяРеквизита) Тогда
+ ИмяОсновнойТаблицы = ЮТМетаданные.НормализованноеИмяТаблицы(Контекст.Метаданные);
+ Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
+ Пояснение = СтрШаблон("Табличная часть `%1.%2` не содержит реквизит `%3`", ИмяОсновнойТаблицы, Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита);
+ Иначе
+ Пояснение = СтрШаблон("`%1` не содержит реквизит `%2`", ИмяОсновнойТаблицы, ИмяРеквизита);
+ КонецЕсли;
+
+ ВызватьИсключение Пояснение;
+ КонецЕсли;
+
+ Возврат Реквизиты[ИмяРеквизита];
+
+КонецФункции
+
+Функция ТекущаяЗапись(Контекст)
+
+ Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
+ Возврат ДанныеСтроки(Контекст);
+ Иначе
+ Возврат Контекст.Данные;
+ КонецЕсли;
+
+КонецФункции
+
#КонецОбласти
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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.suppress" "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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.suppress"
deleted file mode 100644
index f1965587b..000000000
--- "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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
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/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"
similarity index 80%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/Module.bsl"
rename to "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 fac42bb52..ce8875bb8 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/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"
@@ -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.
@@ -25,8 +25,8 @@
#Если НЕ Клиент Тогда
ВызватьИсключение "Метод `ИнициализироватьКонтекст` должен вызываться только с клиента";
#Иначе
- ЮТКонтекстКлиент.ИнициализироватьКонтекст();
- ЮТКонтекстСервер.ИнициализироватьКонтекст();
+ ЮТКонтекстСлужебныйКлиент.ИнициализироватьКонтекст();
+ ЮТКонтекстСлужебныйВызовСервера.ИнициализироватьКонтекст();
ОбновитьПовторноИспользуемыеЗначения();
#КонецЕсли
@@ -40,10 +40,10 @@
Функция ДанныеКонтекста() Экспорт
#Если Клиент Тогда
- Возврат ЮТКонтекстКлиент.ДанныеКонтекста();
+ Возврат ЮТКонтекстСлужебныйКлиент.ДанныеКонтекста();
#Иначе
//@skip-check constructor-function-return-section
- Возврат ЮТКонтекстСервер.ДанныеКонтекста();
+ Возврат ЮТКонтекстСлужебныйВызовСервера.ДанныеКонтекста();
#КонецЕсли
КонецФункции
@@ -60,7 +60,8 @@
#Если Клиент Тогда
Если ПолучитьССервера Тогда
- Возврат ЮТКонтекстСервер.ЗначениеКонтекста(ИмяРеквизита);
+ //@skip-check constructor-function-return-section
+ Возврат ЮТКонтекстСлужебныйВызовСервера.ЗначениеКонтекста(ИмяРеквизита);
КонецЕсли;
#КонецЕсли
@@ -76,7 +77,7 @@
КонецЦикла;
//@skip-check constructor-function-return-section
- Возврат ЮТОбщий.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]);
+ Возврат ЮТКоллекции.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]);
КонецФункции
@@ -101,7 +102,7 @@
#Если НЕ Сервер Тогда
Если УстановитьНаСервер Тогда
- ЮТКонтекстСервер.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение);
+ ЮТКонтекстСлужебныйВызовСервера.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение);
КонецЕсли;
#КонецЕсли
@@ -111,13 +112,17 @@
// Возвращает структуру, в которой можно хранить данные используемые в тесте
// Данные живут в рамках одного теста, но доступны в обработчиках событий `ПередКаждымТестом` и `ПослеКаждогоТеста`
// Например, в контекст можно помещать создаваемые данные, что бы освободить/удалить их в обработчике `ПослеКаждогоТеста`
+//
+// Параметры:
+// ПолучитьССервера - Булево - Получить контекст с сервера
+//
// Возвращаемое значение:
// - Структура - Контекст теста
// - Неопределено - Если метод вызывается за рамками теста
-Функция КонтекстТеста() Экспорт
+Функция КонтекстТеста(ПолучитьССервера = Ложь) Экспорт
//@skip-check constructor-function-return-section
- Возврат ЗначениеКонтекста(ИмяКонтекстаТеста());
+ Возврат ЗначениеКонтекста(ИмяКонтекстаТеста(), ПолучитьССервера);
КонецФункции
@@ -161,18 +166,6 @@
КонецФункции
-// КонтекстОшибки
-// Возвращает служебный контекст, содержит дополнительные детали ошибки теста
-//
-// Возвращаемое значение:
-// Неопределено, Структура - Контекст ошибки, см. ЮТФабрика.ОписаниеКонтекстаОшибки
-Функция КонтекстОшибки() Экспорт
-
- //@skip-check constructor-function-return-section
- Возврат ЗначениеКонтекста(ИмяКонтекстаОшибки());
-
-КонецФункции
-
// КонтекстПроверки
// Возвращает служебный контекста, данные выполняемой проверки
// Возвращаемое значение:
@@ -198,7 +191,7 @@
// КонтекстЧитателя
// Возвращает служебный контекста, данные используемые исполнителем тестов
// Возвращаемое значение:
-// см. ЮТФабрика.НовыйКонтекстИсполнения
+// см. ЮТФабрикаСлужебный.НовыйКонтекстИсполнения
Функция КонтекстИсполнения() Экспорт
//@skip-check constructor-function-return-section
@@ -210,9 +203,9 @@
//
// Возвращаемое значение:
// - Неопределено
-// - См. ЮТФабрика.ОписаниеТестовогоМодуля
-// - См. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-// - См. ЮТФабрика.ОписаниеИсполняемогоТеста
+// - См. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
+// - См. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+// - См. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
Функция КонтекстИсполненияТекущегоУровня() Экспорт
Уровни = ЮТФабрика.УровниИсполнения();
@@ -238,20 +231,6 @@
КонецФункции
-// КонтекстОшибки
-// Возвращает служебный контекст, содержит дополнительные детали ошибки теста
-// Параметры:
-// ПолучитьССервера - Булево - Получить значение из серверного контекста
-//
-// Возвращаемое значение:
-// Неопределено, Массив из Строка- Детали ошибки
-Функция КонтекстДеталиОшибки(ПолучитьССервера = Ложь) Экспорт
-
- //@skip-check constructor-function-return-section
- Возврат ЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), ПолучитьССервера);
-
-КонецФункции
-
Функция ОписаниеКонтекста() Экспорт
Описание = Новый Структура;
@@ -260,13 +239,6 @@
КонецФункции
-Процедура УстановитьКонтекстОшибки() Экспорт
-
- ДанныеОшибки = ЮТФабрика.ОписаниеКонтекстаОшибки();
- УстановитьЗначениеКонтекста(ИмяКонтекстаОшибки(), ДанныеОшибки);
-
-КонецПроцедуры
-
Процедура УстановитьКонтекстУтверждений(Знач ДанныеКонтекста) Экспорт
УстановитьЗначениеКонтекста(ИмяКонтекстаУтверждений(), ДанныеКонтекста);
@@ -309,18 +281,12 @@
КонецПроцедуры
-Процедура УстановитьКонтекстДеталиОшибки(Знач ДанныеКонтекста) Экспорт
-
- УстановитьЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), ДанныеКонтекста);
-
-КонецПроцедуры
-
Процедура УдалитьКонтекст() Экспорт
#Если Клиент Тогда
- ЮТКонтекстКлиент.УдалитьКонтекст();
+ ЮТКонтекстСлужебныйКлиент.УдалитьКонтекст();
#КонецЕсли
- ЮТКонтекстСервер.УдалитьКонтекст();
+ ЮТКонтекстСлужебныйВызовСервера.УдалитьКонтекст();
КонецПроцедуры
@@ -328,12 +294,6 @@
#Область СлужебныеПроцедурыИФункции
-Функция ИмяКонтекстаОшибки()
-
- Возврат "ДанныеОшибки";
-
-КонецФункции
-
Функция ИмяКонтекстаУтверждений()
Возврат "КонтекстУтверждения";
@@ -376,10 +336,4 @@
КонецФункции
-Функция ИмяКонтекстаДеталиОшибки()
-
- Возврат "ДеталиОшибки";
-
-КонецФункции
-
#КонецОбласти
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\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo" "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\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.mdo"
similarity index 89%
rename from "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\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo"
rename to "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\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.mdo"
index 9c64469db..27a63dc98 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\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.mdo"
+++ "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\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.mdo"
@@ -1,6 +1,6 @@
- ЮТКонтекст
+ ЮТКонтекстСлужебный
ru
Контекст тестового движка
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\265\321\200\320\262\320\265\321\200/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"
similarity index 87%
rename from "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\265\321\200\320\262\320\265\321\200/Module.bsl"
rename to "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 4dd964da3..7911602e9 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\265\321\200\320\262\320\265\321\200/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"
@@ -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 @@
Процедура ИнициализироватьКонтекст() Экспорт
- Контекст = ЮТКонтекст.ОписаниеКонтекста();
+ Контекст = ЮТКонтекстСлужебный.ОписаниеКонтекста();
АдресХранилища = ПоместитьВоВременноеХранилище(Контекст, Новый УникальныйИдентификатор());
ХранилищеОбщихНастроек.Сохранить(КлючНастроекКонтекста(), "АдресХранилища", АдресХранилища);
@@ -48,13 +48,13 @@
// Значение - Произвольный - Новое значение реквизита/вложенного контекста
Процедура УстановитьЗначениеКонтекста(Знач ИмяРеквизита, Знач Значение) Экспорт
- ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение);
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяРеквизита, Значение);
КонецПроцедуры
Функция ЗначениеКонтекста(Знач ИмяРеквизита) Экспорт
- Возврат ЮТКонтекст.ЗначениеКонтекста(ИмяРеквизита);
+ Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяРеквизита);
КонецФункции
@@ -68,7 +68,7 @@
Если Кэшировать Тогда
- Возврат ЮТПовторногоИспользования.АдресСерверногоКонтекста();
+ Возврат ЮТСлужебныйПовторногоИспользования.АдресСерверногоКонтекста();
Иначе
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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "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/\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.mdo"
similarity index 81%
rename from "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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "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/\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.mdo"
index 26636c802..68270a7aa 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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТКонтекстСервер
+ ЮТКонтекстСлужебныйВызовСервера
ru
Контекст (сервер)
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\232\320\273\320\270\320\265\320\275\321\202/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\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
similarity index 86%
rename from "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\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
rename to "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\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
index 7ff8718bc..3ca7c41df 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\232\320\273\320\270\320\265\320\275\321\202/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\232\320\273\320\270\320\265\320\275\321\202/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 @@
Процедура ИнициализироватьКонтекст() Экспорт
- ЮТДанныеКонтекста = ЮТКонтекст.ОписаниеКонтекста(); // BSLLS:UnusedLocalVariable-off
+ ЮТДанныеКонтекста = ЮТКонтекстСлужебный.ОписаниеКонтекста(); // BSLLS:UnusedLocalVariable-off
КонецПроцедуры
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\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo"
similarity index 85%
rename from "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\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.mdo"
rename to "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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo"
index cb3a5ef3a..5044a7742 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\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\232\320\273\320\270\320\265\320\275\321\202.mdo"
+++ "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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo"
@@ -1,6 +1,6 @@
- ЮТКонтекстКлиент
+ ЮТКонтекстСлужебныйКлиент
ru
Контекст (клиент)
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\242\320\265\321\201\321\202\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\242\320\265\321\201\321\202\320\260/Module.bsl"
index 16487d70d..e11cbf705 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\242\320\265\321\201\321\202\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\242\320\265\321\201\321\202\320\260/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.
@@ -27,17 +27,17 @@
// Произвольный - Сохраненное в контексте значение
Функция Значение(ИмяЗначения) Экспорт
- Уровень = ЮТКонтекст.КонтекстИсполнения().Уровень;
+ Уровень = ЮТКонтекстСлужебный.КонтекстИсполнения().Уровень;
Уровни = ЮТФабрика.УровниИсполнения();
- КонтекстТеста = ЮТКонтекст.КонтекстТеста();
+ КонтекстТеста = ЮТКонтекстСлужебный.КонтекстТеста();
Если Уровень = Уровни.Тест И КонтекстТеста <> Неопределено И КонтекстТеста.Свойство(ИмяЗначения) Тогда
Возврат КонтекстТеста[ИмяЗначения];
КонецЕсли;
- КонтекстНабора = ЮТКонтекст.КонтекстНабора();
+ КонтекстНабора = ЮТКонтекстСлужебный.КонтекстНабора();
Если (Уровень = Уровни.НаборТестов ИЛИ Уровень = Уровни.Тест)
И КонтекстНабора <> Неопределено И КонтекстНабора.Свойство(ИмяЗначения) Тогда
@@ -45,7 +45,7 @@
КонецЕсли;
- КонтекстМодуля = ЮТКонтекст.КонтекстМодуля();
+ КонтекстМодуля = ЮТКонтекстСлужебный.КонтекстМодуля();
Если (Уровень = Уровни.Модуль ИЛИ Уровень = Уровни.Тест ИЛИ Уровень = Уровни.НаборТестов)
И КонтекстМодуля <> Неопределено И КонтекстМодуля.Свойство(ИмяЗначения) Тогда
@@ -67,7 +67,7 @@
// Значение - Произвольный
Процедура УстановитьЗначение(ИмяЗначения, Значение) Экспорт
- Уровень = ЮТКонтекст.КонтекстИсполнения().Уровень;
+ Уровень = ЮТКонтекстСлужебный.КонтекстИсполнения().Уровень;
Уровни = ЮТФабрика.УровниИсполнения();
Контекст = ТекущийКонтекст();
@@ -75,11 +75,11 @@
Если Контекст = Неопределено Тогда
Если Уровень = Уровни.Тест Тогда
- ЮТКонтекст.УстановитьКонтекстТеста();
+ ЮТКонтекстСлужебный.УстановитьКонтекстТеста();
ИначеЕсли Уровень = Уровни.НаборТестов Тогда
- ЮТКонтекст.УстановитьКонтекстНабораТестов();
+ ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов();
ИначеЕсли Уровень = Уровни.Модуль Тогда
- ЮТКонтекст.УстановитьКонтекстМодуля();
+ ЮТКонтекстСлужебный.УстановитьКонтекстМодуля();
Иначе
ВызватьИсключение СтрШаблон("Неизвестный уровень исполнения `%1`", Уровень);
КонецЕсли;
@@ -98,20 +98,20 @@
// Неопределено, Структура, Произвольный - Текущий контекст
Функция ТекущийКонтекст() Экспорт
- Уровень = ЮТКонтекст.КонтекстИсполнения().Уровень;
+ Уровень = ЮТКонтекстСлужебный.КонтекстИсполнения().Уровень;
Уровни = ЮТФабрика.УровниИсполнения();
Если Уровень = Уровни.Тест Тогда
- Контекст = ЮТКонтекст.КонтекстТеста();
+ Контекст = ЮТКонтекстСлужебный.КонтекстТеста();
ИначеЕсли Уровень = Уровни.НаборТестов Тогда
- Контекст = ЮТКонтекст.КонтекстНабора();
+ Контекст = ЮТКонтекстСлужебный.КонтекстНабора();
ИначеЕсли Уровень = Уровни.Модуль Тогда
- Контекст = ЮТКонтекст.КонтекстМодуля();
+ Контекст = ЮТКонтекстСлужебный.КонтекстМодуля();
Иначе
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\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\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\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..84ee7fb97
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -0,0 +1,84 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Процедура ДобавитьСообщение(Текст) Экспорт
+
+ ДобавитьЗапись("[INF] " + Текст);
+
+КонецПроцедуры
+
+Процедура ДобавитьОшибку(Текст) Экспорт
+
+ ДобавитьЗапись("[ERR] " + Текст);
+
+КонецПроцедуры
+
+Процедура ДобавитьПредупреждение(Текст) Экспорт
+
+ ДобавитьЗапись("[WRN] " + Текст);
+
+КонецПроцедуры
+
+Функция Записи() Экспорт
+
+ Если ЮТест.КонтекстТеста() = Неопределено Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ Лог = ЮТКоллекции.ЗначениеСтруктуры(ЮТест.КонтекстТеста(), "Лог");
+#Если Сервер Тогда
+ Возврат Лог;
+#Иначе
+ СерверныйКонтекст = ЮТКонтекстСлужебный.КонтекстТеста(Истина);
+ СерверныйЛог = ЮТКоллекции.ЗначениеСтруктуры(СерверныйКонтекст, "Лог");
+
+ Если Лог = Неопределено Тогда
+ Лог = СерверныйЛог;
+ ИначеЕсли СерверныйЛог <> Неопределено Тогда
+ ЮТКоллекции.ДополнитьМассив(Лог, СерверныйЛог);
+ КонецЕсли;
+#КонецЕсли
+
+ Возврат Лог;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Процедура ДобавитьЗапись(Текст)
+
+ Если ЮТест.КонтекстТеста() = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Ошибки = Неопределено;
+
+ Если НЕ ЮТест.КонтекстТеста().Свойство("Лог", Ошибки) Тогда
+ Ошибки = Новый Массив();
+ ЮТест.КонтекстТеста().Вставить("Лог", Ошибки);
+ КонецЕсли;
+
+ Ошибки.Добавить(Текст);
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\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\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\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..bc94391e8
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl"
index e69106b23..1faca3303 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/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.
@@ -19,418 +19,53 @@
#Область ПрограммныйИнтерфейс
// Выводит отладочное сообщение
-//
+//
// Параметры:
// Сообщение - Строка - Сообщение
Процедура Отладка(Сообщение) Экспорт
- Записать("DBG", Сообщение, 0);
+ ЮТЛогированиеСлужебный.Записать("DBG", Сообщение, 0);
КонецПроцедуры
// Выводит информационное сообщение
-//
+//
// Параметры:
// Сообщение - Строка - Сообщение
Процедура Информация(Сообщение) Экспорт
- Записать("INF", Сообщение, 1);
+ ЮТЛогированиеСлужебный.Записать("INF", Сообщение, 10);
КонецПроцедуры
-// Выводит сообщение об ошибке
-//
+// Выводит предупреждение
+//
// Параметры:
// Сообщение - Строка - Сообщение
-Процедура Ошибка(Сообщение) Экспорт
-
- Записать("ERR", Сообщение, 2);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция УровниЛога() Экспорт
-
- Возврат Новый ФиксированнаяСтруктура("Отладка, Информация, Ошибка", "debug", "info", "error");
-
-КонецФункции
-
-Процедура ВывестиСерверныеСообщения() Экспорт
-
-#Если Клиент Тогда
- Контекст = Контекст();
- Если Контекст = Неопределено ИЛИ НЕ Контекст.Включено ИЛИ Контекст.ФайлЛогаДоступенНаСервере Тогда
- Возврат;
- КонецЕсли;
-
- Сообщения = ЮТЛогированиеВызовСервера.НакопленныеСообщенияЛогирования(Истина);
- ЗаписатьСообщения(Контекст, Сообщения);
-#Иначе
- ВызватьИсключение "Метод вывода серверных сообщений в лог должен вызываться с клиента";
-#КонецЕсли
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область ОбработчикиСобытий
-
-// Инициализация.
-//
-// Параметры:
-// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
-Процедура Инициализация(ПараметрыЗапуска) Экспорт
-
- УровниЛога = УровниЛога();
-
- ДанныеКонтекста = НовыйДанныеКонтекста();
- ДанныеКонтекста.ФайлЛога = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file");
- ДанныеКонтекста.ВыводВКонсоль = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь);
- ДанныеКонтекста.Включено = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено);
- УровеньЛога = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка);
-
- Если ДанныеКонтекста.Включено = Неопределено Тогда
- ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога);
- КонецЕсли;
-
- Если НЕ ДанныеКонтекста.Включено Тогда
- ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);
- Возврат;
- КонецЕсли;
-
- Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда
- ДанныеКонтекста.УровеньЛога = 2;
- ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда
- ДанныеКонтекста.УровеньЛога = 1;
- Иначе
- ДанныеКонтекста.УровеньЛога = 0;
- КонецЕсли;
-
- ЗначениеПроверки = Строка(Новый УникальныйИдентификатор());
- ЗаписатьСообщения(ДанныеКонтекста, ЮТОбщий.ЗначениеВМассиве(ЗначениеПроверки), Ложь);
-
- ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, ЗначениеПроверки);
-
- ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);
-
- Разделитель = "------------------------------------------------------";
- ЗаписатьСообщения(ДанныеКонтекста, ЮТОбщий.ЗначениеВМассиве(Разделитель), Ложь);
-
- Информация("Старт");
-
-КонецПроцедуры
-
-// Обработка события "ПередЧтениеСценариев"
-Процедура ПередЧтениеСценариев() Экспорт
-
- Информация("Загрузка сценариев");
-
-КонецПроцедуры
-
-// Перед чтением сценариев модуля.
-//
-// Параметры:
-// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
-// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
-Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
-
- Информация(СтрШаблон("Загрузка сценариев модуля `%1`", МетаданныеМодуля.Имя));
-
-КонецПроцедуры
-
-// Перед чтением сценариев модуля.
-//
-// Параметры:
-// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
-// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
-Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
-
- Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", МетаданныеМодуля.Имя));
-
-КонецПроцедуры
-
-// Обработка события "ПослеЧтенияСценариев"
-// Параметры:
-// Сценарии - Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
-Процедура ПослеЧтенияСценариев(Сценарии) Экспорт
-
- Информация("Загрузка сценариев завершена.");
-
-КонецПроцедуры
-
-// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
-// Параметры:
-// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
-Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
-
- Количество = 0;
-
- Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл
-
- Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
-
- Если Набор.Выполнять Тогда
- ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЦикла;
-
- ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".ОбщееКоличествоТестов", Количество, Истина);
-
-КонецПроцедуры
-
-// Перед всеми тестами.
-//
-// Параметры:
-// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
-Процедура ПередВсемиТестами(ОписаниеСобытия) Экспорт
-
-#Если Клиент Тогда
- ПрогрессКлиент = Контекст().КоличествоВыполненныхТестов;
- ПрогрессСервер = ЮТКонтекст.ЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Истина);
-
- Если ПрогрессКлиент < ПрогрессСервер Тогда
- Контекст().КоличествоВыполненныхТестов = ПрогрессСервер;
- КонецЕсли;
-#КонецЕсли
- Информация(СтрШаблон("Запуск тестов модуля `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя));
-
-КонецПроцедуры
-
-// Перед тестовым набором.
-//
-// Параметры:
-// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
-Процедура ПередТестовымНабором(ОписаниеСобытия) Экспорт
-
- Информация(СтрШаблон("Запуск тестов набора `%1`", ОписаниеСобытия.Набор.Имя));
-
-КонецПроцедуры
-
-// Перед каждым тестом.
-//
-// Параметры:
-// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
-Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт
-
- Информация(СтрШаблон("Запуск теста `%1`", ОписаниеСобытия.Тест.Имя));
-
-КонецПроцедуры
-
-// Перед каждым тестом.
-//
-// Параметры:
-// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
-Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт
+Процедура Предостережение(Сообщение) Экспорт
- Контекст = Контекст();
- Если НЕ ЛогированиеВключено(Контекст) Тогда
- Возврат;
- КонецЕсли;
-
- ЮТОбщий.Инкремент(Контекст.КоличествоВыполненныхТестов);
- Информация(СтрШаблон("%1 Завершен тест `%2`", Прогресс(), ОписаниеСобытия.Тест.Имя));
+ ЮТЛогированиеСлужебный.Записать("WRN", Сообщение, 20);
КонецПроцедуры
-// Перед каждым тестом.
-//
-// Параметры:
-// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
-Процедура ПослеТестовогоНабора(ОписаниеСобытия) Экспорт
-
- Информация(СтрШаблон("Завершен тестовый набор `%1`", ОписаниеСобытия.Набор.Имя));
-
-КонецПроцедуры
-
-// Перед каждым тестом.
-//
+// Выводит сообщение об ошибке
+//
// Параметры:
-// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
-Процедура ПослеВсехТестов(ОписаниеСобытия) Экспорт
-
- Контекст = Контекст();
- Если НЕ ЛогированиеВключено(Контекст) Тогда
- Возврат;
- КонецЕсли;
-#Если Клиент Тогда
- ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Контекст.КоличествоВыполненныхТестов, Истина);
-#КонецЕсли
+// Сообщение - Строка - Сообщение
+Процедура Ошибка(Сообщение) Экспорт
- Информация(СтрШаблон("Завершен модуль `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя));
+ ЮТЛогированиеСлужебный.Записать("ERR", Сообщение, 99);
КонецПроцедуры
#КонецОбласти
-#Область Контекст
-
-// Контекст.
-//
-// Возвращаемое значение:
-// см. НовыйДанныеКонтекста
-Функция Контекст()
-
- Возврат ЮТКонтекст.ЗначениеКонтекста(ИмяКонтекстаЛогирования());
-
-КонецФункции
-
-Функция ИмяКонтекстаЛогирования()
-
- Возврат "КонтекстЛогирования";
-
-КонецФункции
-
-// Новый данные контекста.
-//
-// Возвращаемое значение:
-// Структура - Новый данные контекста:
-// * Включено - Булево - Логирование включено
-// * ФайлЛога - Неопределено - Файл вывода лога
-// * ВыводВКонсоль- Булево - Вывод лога в консоль
-// * ФайлЛогаДоступенНаСервере - Булево - Файл лога доступен на сервере
-// * НакопленныеЗаписи - Массив из Строка - Буфер для серверных сообщений
-// * ОбщееКоличествоТестов - Число
-// * КоличествоВыполненныхТестов - Число
-// * УровеньЛога - Число - Уровень логирования
-Функция НовыйДанныеКонтекста()
-
- ДанныеКонтекста = Новый Структура();
- ДанныеКонтекста.Вставить("Включено", Ложь);
- ДанныеКонтекста.Вставить("ФайлЛога", Неопределено);
- ДанныеКонтекста.Вставить("ВыводВКонсоль", Ложь);
- ДанныеКонтекста.Вставить("ФайлЛогаДоступенНаСервере", Ложь);
- ДанныеКонтекста.Вставить("НакопленныеЗаписи", Новый Массив());
- ДанныеКонтекста.Вставить("ОбщееКоличествоТестов", 0);
- ДанныеКонтекста.Вставить("КоличествоВыполненныхТестов", 0);
- ДанныеКонтекста.Вставить("УровеньЛога", 0);
-
- Возврат ДанныеКонтекста;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Запись
-
-Функция ЛогированиеВключено(Знач Контекст = Неопределено, Приоритет = Неопределено)
-
- Если Контекст = Неопределено Тогда
- Контекст = Контекст();
- КонецЕсли;
-
- Возврат Контекст <> Неопределено И Контекст.Включено И (Приоритет = Неопределено ИЛИ Контекст.УровеньЛога <= Приоритет);
-
-КонецФункции
-
-Функция НакопленныеСообщенияЛогирования(Очистить = Ложь) Экспорт
-
- Контекст = Контекст();
-
- Сообщения = Контекст.НакопленныеЗаписи;
-
- Если Очистить Тогда
- Контекст.НакопленныеЗаписи = Новый Массив();
- КонецЕсли;
-
- Возврат Сообщения;
-
-КонецФункции
-
-Процедура Записать(УровеньЛога, Сообщение, Приоритет)
-
- Контекст = Контекст();
- Если НЕ ЛогированиеВключено(Контекст, Приоритет) Тогда
- Возврат;
- КонецЕсли;
-
-#Если Клиент Тогда
- КонтекстИсполнения = "Клиент";
-#Иначе
- КонтекстИсполнения = "Сервер";
-#КонецЕсли
- Текст = СтрШаблон("%1 [%2][%3]: %4", ЮТОбщий.ПредставлениеУниверсальнойДата(), КонтекстИсполнения, УровеньЛога, Сообщение);
-#Если Клиент Тогда
- ЗаписатьСообщения(Контекст, ЮТОбщий.ЗначениеВМассиве(Текст));
-#Иначе
- Если Контекст.ФайлЛогаДоступенНаСервере Тогда
- ЗаписатьСообщения(Контекст, ЮТОбщий.ЗначениеВМассиве(Текст));
- Иначе
- Контекст.НакопленныеЗаписи.Добавить(Текст);
- КонецЕсли;
-#КонецЕсли
-
-КонецПроцедуры
-
-Процедура ЗаписатьСообщения(Контекст, Сообщения, Дописывать = Истина)
-
-#Если ВебКлиент Тогда
- ВызватьИсключение "Метод записи лога не доступен в web-клиенте";
-#Иначе
-
- Если Контекст.ВыводВКонсоль Тогда
- ЗаписатьЛогВКонсоль(Сообщения);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Контекст.ФайлЛога) Тогда
- ЗаписатьЛогВФайл(Контекст.ФайлЛога, Сообщения, Дописывать);
- КонецЕсли;
-
-#КонецЕсли
-
-КонецПроцедуры
-
-Процедура ЗаписатьЛогВФайл(ФайлЛога, Сообщения, Дописывать = Истина)
-
-#Если ВебКлиент Тогда
- ВызватьИсключение "Метод записи лога не доступен в web-клиенте";
-#Иначе
-
- Запись = Новый ЗаписьТекста(ФайлЛога, КодировкаТекста.UTF8, , Дописывать);
-
- Для Каждого Сообщение Из Сообщения Цикл
- Запись.ЗаписатьСтроку(Сообщение);
- КонецЦикла;
-
- Запись.Закрыть();
-#КонецЕсли
-
-КонецПроцедуры
-
-Процедура ЗаписатьЛогВКонсоль(Сообщения)
-
-#Если ВебКлиент Тогда
- ВызватьИсключение "Метод записи лога не доступен в web-клиенте";
-#Иначе
-
- //@skip-check empty-except-statement
- Попытка
- Для Каждого Сообщение Из Сообщения Цикл
- ЮТОбщий.ВывестиВКонсоль(Сообщение);
- КонецЦикла;
- Исключение
- // Игнорируем ошибку
- КонецПопытки;
-#КонецЕсли
-
-КонецПроцедуры
+#Область СлужебныйПрограммныйИнтерфейс
-Функция Прогресс()
-
- Контекст = Контекст();
- Прогресс = Окр(100 * Контекст.КоличествоВыполненныхТестов / Контекст.ОбщееКоличествоТестов, 0);
+Функция УровниЛога() Экспорт
- Возврат СтрШаблон("%1%% (%2/%3)", Прогресс, Контекст.КоличествоВыполненныхТестов, Контекст.ОбщееКоличествоТестов);
+ Возврат Новый ФиксированнаяСтруктура("Отладка, Информация, Предупреждение, Ошибка", "debug", "info", "warning", "error");
КонецФункции
#КонецОбласти
-
-#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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..51d5db8ff
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -0,0 +1,395 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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 [%2][%3]: %4", ЮТОбщий.ПредставлениеУниверсальнойДата(), КонтекстИсполнения, УровеньЛога, Сообщение);
+#Если Клиент Тогда
+ ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст));
+#Иначе
+ Если Контекст.ФайлЛогаДоступенНаСервере Тогда
+ ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст));
+ Иначе
+ Контекст.НакопленныеЗаписи.Добавить(Текст);
+ КонецЕсли;
+#КонецЕсли
+
+КонецПроцедуры
+
+Процедура ВывестиСерверныеСообщения() Экспорт
+
+#Если Клиент Тогда
+ Контекст = Контекст();
+ Если Контекст = Неопределено ИЛИ НЕ Контекст.Включено ИЛИ Контекст.ФайлЛогаДоступенНаСервере Тогда
+ Возврат;
+ КонецЕсли;
+
+ Сообщения = ЮТЛогированиеСлужебныйВызовСервера.НакопленныеСообщенияЛогирования(Истина);
+ ЗаписатьСообщения(Контекст, Сообщения);
+#Иначе
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ВывестиСерверныеСообщения");
+#КонецЕсли
+
+КонецПроцедуры
+
+Функция НакопленныеСообщенияЛогирования(Очистить = Ложь) Экспорт
+
+ Контекст = Контекст();
+
+ Сообщения = Контекст.НакопленныеЗаписи;
+
+ Если Очистить Тогда
+ Контекст.НакопленныеЗаписи = Новый Массив();
+ КонецЕсли;
+
+ Возврат Сообщения;
+
+КонецФункции
+
+#Область ОбработчикиСобытий
+
+// Инициализация.
+//
+// Параметры:
+// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
+Процедура Инициализация(ПараметрыЗапуска) Экспорт
+
+ УровниЛога = ЮТЛогирование.УровниЛога();
+
+ ДанныеКонтекста = НовыйДанныеКонтекста();
+ ДанныеКонтекста.ФайлЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file");
+ ДанныеКонтекста.ВыводВКонсоль = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь);
+ ДанныеКонтекста.Включено = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено);
+ УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка);
+
+ Если ДанныеКонтекста.Включено = Неопределено Тогда
+ ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога);
+ КонецЕсли;
+
+ Если НЕ ДанныеКонтекста.Включено Тогда
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);
+ Возврат;
+ КонецЕсли;
+
+ Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда
+ ДанныеКонтекста.УровеньЛога = 99;
+ ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда
+ ДанныеКонтекста.УровеньЛога = 10;
+ ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Предупреждение) = 0 Тогда
+ ДанныеКонтекста.УровеньЛога = 20;
+ Иначе
+ ДанныеКонтекста.УровеньЛога = 0;
+ КонецЕсли;
+
+ ЗначениеПроверки = Строка(Новый УникальныйИдентификатор());
+ ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь);
+
+ ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, ЗначениеПроверки);
+
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);
+
+ Разделитель = "------------------------------------------------------";
+ ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(Разделитель), Ложь);
+
+ ЮТЛогирование.Информация("Старт");
+
+КонецПроцедуры
+
+// Обработка события "ПередЧтениеСценариев"
+Процедура ПередЧтениеСценариев() Экспорт
+
+ ЮТЛогирование.Информация("Загрузка сценариев");
+
+КонецПроцедуры
+
+// Перед чтением сценариев модуля.
+//
+// Параметры:
+// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
+Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
+
+ ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля `%1`", МетаданныеМодуля.Имя));
+
+КонецПроцедуры
+
+// Перед чтением сценариев модуля.
+//
+// Параметры:
+// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
+Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
+
+ ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", МетаданныеМодуля.Имя));
+
+КонецПроцедуры
+
+// Обработка события "ПослеЧтенияСценариев"
+// Параметры:
+// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
+Процедура ПослеЧтенияСценариев(Сценарии) Экспорт
+
+ ЮТЛогирование.Информация("Загрузка сценариев завершена.");
+
+КонецПроцедуры
+
+// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
+// Параметры:
+// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
+Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
+
+ Количество = 0;
+
+ Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл
+
+ Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
+
+ Если Набор.Выполнять Тогда
+ ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
+ КонецЕсли;
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".ОбщееКоличествоТестов", Количество, Истина);
+
+КонецПроцедуры
+
+// Перед всеми тестами.
+//
+// Параметры:
+// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
+Процедура ПередВсемиТестами(ОписаниеСобытия) Экспорт
+
+#Если Клиент Тогда
+ Контекст = Контекст();
+ ПрогрессКлиент = Контекст.КоличествоВыполненныхТестов;
+ ПрогрессСервер = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Истина);
+
+ Если ПрогрессКлиент < ПрогрессСервер Тогда
+ Контекст.КоличествоВыполненныхТестов = ПрогрессСервер;
+ КонецЕсли;
+#КонецЕсли
+ ЮТЛогирование.Информация(СтрШаблон("Запуск тестов модуля `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя));
+
+КонецПроцедуры
+
+// Перед тестовым набором.
+//
+// Параметры:
+// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
+Процедура ПередТестовымНабором(ОписаниеСобытия) Экспорт
+
+ ЮТЛогирование.Информация(СтрШаблон("Запуск тестов набора `%1`", ОписаниеСобытия.Набор.Имя));
+
+КонецПроцедуры
+
+// Перед каждым тестом.
+//
+// Параметры:
+// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
+Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт
+
+ ЮТЛогирование.Информация(СтрШаблон("Запуск теста `%1`", ОписаниеСобытия.Тест.Имя));
+
+КонецПроцедуры
+
+// Перед каждым тестом.
+//
+// Параметры:
+// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
+Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт
+
+ Контекст = Контекст();
+ Если НЕ ЛогированиеВключено(Контекст) Тогда
+ Возврат;
+ КонецЕсли;
+
+ ЮТОбщий.Инкремент(Контекст.КоличествоВыполненныхТестов);
+ ЮТЛогирование.Информация(СтрШаблон("%1 Завершен тест `%2`", Прогресс(), ОписаниеСобытия.Тест.Имя));
+
+КонецПроцедуры
+
+// Перед каждым тестом.
+//
+// Параметры:
+// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
+Процедура ПослеТестовогоНабора(ОписаниеСобытия) Экспорт
+
+ ЮТЛогирование.Информация(СтрШаблон("Завершен тестовый набор `%1`", ОписаниеСобытия.Набор.Имя));
+
+КонецПроцедуры
+
+// Перед каждым тестом.
+//
+// Параметры:
+// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
+Процедура ПослеВсехТестов(ОписаниеСобытия) Экспорт
+
+ Контекст = Контекст();
+ Если НЕ ЛогированиеВключено(Контекст) Тогда
+ Возврат;
+ КонецЕсли;
+#Если Клиент Тогда
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Контекст.КоличествоВыполненныхТестов, Истина);
+#КонецЕсли
+
+ ЮТЛогирование.Информация(СтрШаблон("Завершен модуль `%1`", ОписаниеСобытия.Модуль.МетаданныеМодуля.ПолноеИмя));
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область Запись
+
+Функция ЛогированиеВключено(Знач Контекст = Неопределено, Приоритет = Неопределено)
+
+ Если Контекст = Неопределено Тогда
+ Контекст = Контекст();
+ КонецЕсли;
+
+ Возврат Контекст <> Неопределено И Контекст.Включено И (Приоритет = Неопределено ИЛИ Контекст.УровеньЛога <= Приоритет);
+
+КонецФункции
+
+Процедура ЗаписатьСообщения(Контекст, Сообщения, Дописывать = Истина)
+
+#Если ВебКлиент Тогда
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьСообщения");
+#Иначе
+ Если Контекст.ВыводВКонсоль Тогда
+ ЗаписатьЛогВКонсоль(Сообщения);
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(Контекст.ФайлЛога) Тогда
+ ЗаписатьЛогВФайл(Контекст.ФайлЛога, Сообщения, Дописывать);
+ КонецЕсли;
+#КонецЕсли
+
+КонецПроцедуры
+
+Процедура ЗаписатьЛогВФайл(ФайлЛога, Сообщения, Дописывать = Истина)
+
+#Если ВебКлиент Тогда
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВФайл");
+#Иначе
+ Запись = Новый ЗаписьТекста(ФайлЛога, КодировкаТекста.UTF8, , Дописывать);
+
+ Для Каждого Сообщение Из Сообщения Цикл
+ Запись.ЗаписатьСтроку(Сообщение);
+ КонецЦикла;
+
+ Запись.Закрыть();
+#КонецЕсли
+
+КонецПроцедуры
+
+Процедура ЗаписатьЛогВКонсоль(Сообщения)
+
+#Если ВебКлиент Тогда
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЗаписатьЛогВКонсоль");
+#Иначе
+ //@skip-check empty-except-statement
+ Попытка
+ Для Каждого Сообщение Из Сообщения Цикл
+ ЮТОбщий.ВывестиВКонсоль(Сообщение);
+ КонецЦикла;
+ Исключение
+ // Игнорируем ошибку
+ КонецПопытки;
+#КонецЕсли
+
+КонецПроцедуры
+
+Функция Прогресс()
+
+ Контекст = Контекст();
+ Прогресс = Окр(100 * Контекст.КоличествоВыполненныхТестов / Контекст.ОбщееКоличествоТестов, 0);
+
+ Возврат СтрШаблон("%1%% (%2/%3)", Прогресс, Контекст.КоличествоВыполненныхТестов, Контекст.ОбщееКоличествоТестов);
+
+КонецФункции
+
+#КонецОбласти
+
+#Область Контекст
+
+// Контекст.
+//
+// Возвращаемое значение:
+// см. НовыйДанныеКонтекста
+Функция Контекст()
+
+ Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаЛогирования());
+
+КонецФункции
+
+Функция ИмяКонтекстаЛогирования()
+
+ Возврат "КонтекстЛогирования";
+
+КонецФункции
+
+// Новый данные контекста.
+//
+// Возвращаемое значение:
+// Структура - Новый данные контекста:
+// * Включено - Булево - Логирование включено
+// * ФайлЛога - Неопределено - Файл вывода лога
+// * ВыводВКонсоль- Булево - Вывод лога в консоль
+// * ФайлЛогаДоступенНаСервере - Булево - Файл лога доступен на сервере
+// * НакопленныеЗаписи - Массив из Строка - Буфер для серверных сообщений
+// * ОбщееКоличествоТестов - Число
+// * КоличествоВыполненныхТестов - Число
+// * УровеньЛога - Число - Уровень логирования
+Функция НовыйДанныеКонтекста()
+
+ ДанныеКонтекста = Новый Структура();
+ ДанныеКонтекста.Вставить("Включено", Ложь);
+ ДанныеКонтекста.Вставить("ФайлЛога", Неопределено);
+ ДанныеКонтекста.Вставить("ВыводВКонсоль", Ложь);
+ ДанныеКонтекста.Вставить("ФайлЛогаДоступенНаСервере", Ложь);
+ ДанныеКонтекста.Вставить("НакопленныеЗаписи", Новый Массив());
+ ДанныеКонтекста.Вставить("ОбщееКоличествоТестов", 0);
+ ДанныеКонтекста.Вставить("КоличествоВыполненныхТестов", 0);
+ ДанныеКонтекста.Вставить("УровеньЛога", 0);
+
+ Возврат ДанныеКонтекста;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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..0aed12e26
--- /dev/null
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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"
similarity index 88%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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 fb73b8d57..e22c87873 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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"
@@ -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/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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.mdo"
similarity index 80%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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.mdo"
index 3d1561cd2..de21ef596 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\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\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\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.mdo"
@@ -1,6 +1,6 @@
- ЮТЛогированиеВызовСервера
+ ЮТЛогированиеСлужебныйВызовСервера
ru
Логирование (вызов сервера)
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 b4e9ea168..714a1022a 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"
@@ -16,7 +16,7 @@
//
//©///////////////////////////////////////////////////////////////////////////©//
-#Область СлужебныйПрограммныйИнтерфейс
+#Область ПрограммныйИнтерфейс
// Модули подсистемы.
// Возвращает список модулей подсистемы
@@ -29,7 +29,7 @@
// Массив из Строка - Имена модулей входящих в подсистему
Функция МодулиПодсистемы(ИмяПодсистемы, Серверные = Истина, Клиентские = Истина) Экспорт
- Возврат ЮТМетаданныеПовтИсп.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
+ Возврат ЮТМетаданныеСлужебныйПовтИсп.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
КонецФункции
@@ -39,23 +39,20 @@
// Значение - ОбъектМетаданных
// - Тип - Тип объекта информационной базы
// - Строка - Полное имя объекта метаданных
-// - см. ОписаниеОбъектаМетаданных
+// - см. СтруктураОписанияОбъектаМетаданных
// - Произвольный - Объект информационной базы
//
// Возвращаемое значение:
-// Структура - Описание менеджера:
-// * ОписаниеТипа - см. ЮТМетаданныеСервер.ОписаниеТипаМетаданных
-// * Реквизиты - Структура из см. ЮТФабрика.ОписаниеРеквизита
-// * ТабличныеЧасти - Структура из Структура -
+// см. СтруктураОписанияОбъектаМетаданных
Функция ОписаниеОбъектаМетаданных(Знач Значение) Экспорт
- ТипЗначения = ТипЗнч(Значение);
-
- Если ТипЗначения = Тип("Структура") И ЭтоОписаниеОбъектаМетаданных(Значение) Тогда
+ Если ЮТМетаданныеСлужебный.ЭтоОписаниеОбъектаМетаданных(Значение) Тогда
//@skip-check constructor-function-return-section
Возврат Значение;
КонецЕсли;
+ ТипЗначения = ТипЗнч(Значение);
+
ТипТип = Тип("Тип");
#Если Сервер Тогда
Если ТипЗначения = Тип("ОбъектМетаданных") Тогда
@@ -72,14 +69,25 @@
Если ТипЗначения = ТипТип Тогда
ИдентификаторТипа = ЮТТипыДанныхСлужебный.ИдентификаторТипа(Значение); // Для работы кэширования
//@skip-check constructor-function-return-section
- Возврат ЮТМетаданныеПовтИсп.ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(ИдентификаторТипа);
+ Возврат ЮТМетаданныеСлужебныйПовтИсп.ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(ИдентификаторТипа);
Иначе
//@skip-check constructor-function-return-section
- Возврат ЮТМетаданныеПовтИсп.ОписаниеОбъектаМетаданных(Значение);
+ Возврат ЮТМетаданныеСлужебныйПовтИсп.ОписаниеОбъектаМетаданных(Значение);
КонецЕсли;
КонецФункции
+// Возвращает нормализованное имя таблицы, то которое можно использовать в запросах
+//
+// Параметры:
+// Значение - ОбъектМетаданных
+// - Тип - Тип объекта информационной базы
+// - Строка - Полное имя объекта метаданных
+// - см. СтруктураОписанияОбъектаМетаданных
+// - Произвольный - Объект информационной базы
+//
+// Возвращаемое значение:
+// Строка - Нормализованное имя таблицы
Функция НормализованноеИмяТаблицы(Значение) Экспорт
Описание = ОписаниеОбъектаМетаданных(Значение);
@@ -88,29 +96,49 @@
КонецФункции
-Функция ЭтоОписаниеОбъектаМетаданных(Параметры) Экспорт
-
- Возврат ЮТОбщий.ЭтаСтруктураИмеетТип(Параметры, "ОписаниеОбъектаМетаданных");
-
-КонецФункции
-
-Функция ТипыМетаданных() Экспорт
+// Проверка, что переданное значение относится к перечислениям.
+//
+// Параметры:
+// Значение - ОбъектМетаданных
+// - Тип - Тип объекта информационной базы
+// - Строка - Полное имя объекта метаданных
+// - см. СтруктураОписанияОбъектаМетаданных
+// - Произвольный - Объект информационной базы
+//
+// Возвращаемое значение:
+// Булево - Это перечисление
+Функция ЭтоПеречисление(Значение) Экспорт
- Возврат ЮТМетаданныеПовтИсп.ТипыМетаданных();
+ Описание = ОписаниеОбъектаМетаданных(Значение);
+ Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "Перечисление";
КонецФункции
-Функция ЭтоПеречисление(Значение) Экспорт
+// Проверка, что переданное значение относится к регистрам.
+//
+// Параметры:
+// Значение - ОбъектМетаданных
+// - Тип - Тип объекта информационной базы
+// - Строка - Полное имя объекта метаданных
+// - см. СтруктураОписанияОбъектаМетаданных
+// - Произвольный - Объект информационной базы
+//
+// Возвращаемое значение:
+// Булево - Это перечисление
+Функция ЭтоРегистр(Значение) Экспорт
Описание = ОписаниеОбъектаМетаданных(Значение);
-
- Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "Перечисление";
+ Возврат Описание <> Неопределено И СтрНачинаетсяС(Описание.ОписаниеТипа.Имя, "Регистр");
КонецФункции
+// Разрешены ли синхронные вызовы в параметрах конфигурации.
+//
+// Возвращаемое значение:
+// Булево - Разрешены синхронные вызовы
Функция РазрешеныСинхронныеВызовы() Экспорт
- Возврат ЮТМетаданныеПовтИсп.РазрешеныСинхронныеВызовы();
+ Возврат ЮТМетаданныеСлужебныйПовтИсп.РазрешеныСинхронныеВызовы();
КонецФункции
@@ -120,7 +148,7 @@
// Документ - ОбъектМетаданных
// - Тип - Тип объекта информационной базы
// - Строка - Полное имя объекта метаданных
-// - см. ОписаниеОбъектаМетаданных
+// - см. СтруктураОписанияОбъектаМетаданных
// - ДокументСсылка, ДокументОбъект - Объект информационной базы
// - ДокументМенеджер - Менеджер вида документа
//
@@ -132,7 +160,96 @@
ПолноеИмя = СтрШаблон("%1.%2", ОписаниеОбъектаМетаданных.ОписаниеТипа.ИмяКоллекции, ОписаниеОбъектаМетаданных.Имя);
- Возврат ЮТМетаданныеПовтИсп.РегистрыДвиженийДокумента(ПолноеИмя);
+ Возврат ЮТМетаданныеСлужебныйПовтИсп.РегистрыДвиженийДокумента(ПолноеИмя);
+
+КонецФункции
+
+// Возвращает текущую версию тестового движка (YAxUnit)
+//
+// Возвращаемое значение:
+// Строка - Версия движка
+Функция ВерсияДвижка() Экспорт
+
+ Возврат ЮТМетаданныеСлужебныйПовтИсп.ВерсияДвижка();
+
+КонецФункции
+
+// Описание типа объекта метаданных.
+//
+// Возвращаемое значение:
+// Структура - Описание типа метаданных:
+// * Имя - Строка
+// * ИмяКоллекции - Строка
+// * Конструктор - Строка
+// * Группы - Булево
+// * Ссылочный - Булево
+// * Регистр - Булево
+// * ОбработкаОтчет - Булево
+// * СтандартныеРеквизиты - Булево
+// * Реквизиты - Булево
+// * Измерения - Булево
+// * Ресурсы - Булево
+// * РеквизитыАдресации - Булево
+// * ТабличныеЧасти - Булево
+Функция ОписаниеТипаМетаданных() Экспорт
+
+ Описание = Новый Структура();
+ Описание.Вставить("Имя", "");
+ Описание.Вставить("ИмяКоллекции", "");
+ Описание.Вставить("Конструктор", "");
+ Описание.Вставить("Группы", Ложь);
+ Описание.Вставить("Ссылочный", Ложь);
+ Описание.Вставить("Регистр", Ложь);
+ Описание.Вставить("ОбработкаОтчет", Ложь);
+ Описание.Вставить("СтандартныеРеквизиты", Ложь);
+ Описание.Вставить("Реквизиты", Ложь);
+ Описание.Вставить("Измерения", Ложь);
+ Описание.Вставить("Ресурсы", Ложь);
+ Описание.Вставить("РеквизитыАдресации", Ложь);
+ Описание.Вставить("ТабличныеЧасти", Ложь);
+
+ Возврат Описание;
+
+КонецФункции
+
+// Описание объекта метаданных.
+//
+// Возвращаемое значение:
+// Структура - Описание объекта метаданных:
+// * Имя - Строка
+// * ОписаниеТипа - см. ОписаниеТипаМетаданных
+// * Реквизиты - Структура
+// * ТабличныеЧасти - Структура
+Функция СтруктураОписанияОбъектаМетаданных() Экспорт
+
+ Описание = Новый Структура;
+ Описание.Вставить("Имя", "");
+ Описание.Вставить("ОписаниеТипа", Неопределено);
+ Описание.Вставить("Реквизиты", Новый Структура());
+ Описание.Вставить("ТабличныеЧасти", Новый Структура());
+
+ //@skip-check constructor-function-return-section
+ Возврат Описание;
+
+КонецФункции
+
+// Описание реквизита объекта метаданных
+//
+// Возвращаемое значение:
+// Структура - Описание реквизита:
+// * Имя - Строка
+// * Тип - ОписаниеТипов
+// * Обязательный - Булево
+// * ЭтоКлюч - Булево
+Функция ОписаниеРеквизита() Экспорт
+
+ Описание = Новый Структура();
+ Описание.Вставить("Имя", "");
+ Описание.Вставить("Тип", Новый ОписаниеТипов("Неопределено"));
+ Описание.Вставить("Обязательный", Ложь);
+ Описание.Вставить("ЭтоКлюч", Ложь);
+
+ Возврат Описание;
КонецФункции
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/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/Module.bsl"
new file mode 100644
index 000000000..ec9ee5300
--- /dev/null
+++ "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/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.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Функция ЭтоОписаниеОбъектаМетаданных(Значение) Экспорт
+
+ Возврат ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗнч(Значение)) И ЮТОбщий.ЭтаСтруктураИмеетТип(Значение, "ОписаниеОбъектаМетаданных");
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#КонецОбласти
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\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.mdo" "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\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.mdo"
new file mode 100644
index 000000000..1580425b2
--- /dev/null
+++ "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\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.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТМетаданныеСлужебный
+
+ ru
+ Метаданные служебный
+
+ true
+ true
+ true
+
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\265\321\200\320\262\320\265\321\200/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"
similarity index 77%
rename from "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\265\321\200\320\262\320\265\321\200/Module.bsl"
rename to "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 fd3127b96..b9b2b4e7e 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\265\321\200\320\262\320\265\321\200/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"
@@ -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.
@@ -22,7 +22,7 @@
// Выполняет чтение метаданных общих модулей, которые предположительно могут являться тестами
//
// Возвращаемое значение:
-// Массив из см. ЮТФабрика.ОписаниеМодуля - Коллекция описаний моделей, структуру элемента см. ЮТФабрика.ОписаниеМодуля
+// Массив из см. ЮТФабрикаСлужебный.ОписаниеМодуля - Коллекция описаний моделей, структуру элемента см. ЮТФабрикаСлужебный.ОписаниеМодуля
Функция МодулиРасширений() Экспорт
УстановитьПривилегированныйРежим(Истина);
@@ -98,7 +98,7 @@
КонецЕсли;
КонецЕсли;
- Описание = ЮТФабрика.ОписаниеМодуля();
+ Описание = ЮТФабрикаСлужебный.ОписаниеМодуля();
Описание.Имя = Модуль.Имя;
Описание.КлиентУправляемоеПриложение = Модуль.КлиентУправляемоеПриложение;
Описание.КлиентОбычноеПриложение = Модуль.КлиентОбычноеПриложение;
@@ -117,11 +117,9 @@
МетаданныеОбъекта = ОбъектМетаданных(Значение);
ОписаниеТипа = ОписаниеТипаМетаданных(МетаданныеОбъекта);
- ОписаниеОбъект = Новый Структура;
- ОписаниеОбъект.Вставить("Имя", МетаданныеОбъекта.Имя);
- ОписаниеОбъект.Вставить("ОписаниеТипа", ОписаниеТипа);
- ОписаниеОбъект.Вставить("Реквизиты", Новый Структура());
- ОписаниеОбъект.Вставить("ТабличныеЧасти", Новый Структура());
+ ОписаниеОбъект = ЮТМетаданные.СтруктураОписанияОбъектаМетаданных();
+ ОписаниеОбъект.Имя = МетаданныеОбъекта.Имя;
+ ОписаниеОбъект.ОписаниеТипа = ОписаниеТипа;
ЮТОбщий.УказатьТипСтруктуры(ОписаниеОбъект, "ОписаниеОбъектаМетаданных");
Если НЕ ЗаполнятьРеквизиты Тогда
@@ -148,6 +146,8 @@
ДобавитьОписанияРеквизитов(МетаданныеОбъекта.РеквизитыАдресации, ОписаниеОбъект.Реквизиты, Ложь);
КонецЕсли;
+ ДобавитьОбщиеРеквизиты(МетаданныеОбъекта, ОписаниеОбъект.Реквизиты);
+
Если ОписаниеТипа.ТабличныеЧасти Тогда
Для Каждого ТабличнаяЧасть Из МетаданныеОбъекта.ТабличныеЧасти Цикл
@@ -159,7 +159,7 @@
КонецЕсли;
- Возврат ОписаниеОбъект;
+ Возврат Новый ФиксированнаяСтруктура(ОписаниеОбъект);
КонецФункции
@@ -169,20 +169,7 @@
// МетаданныеОбъекта - Тип, ОбъектМетаданных - Тип
//
// Возвращаемое значение:
-// Структура - Описание типа метаданных:
-// * Имя - Строка
-// * ИмяКоллекции - Строка
-// * Конструктор - Строка
-// * Группы - Булево
-// * Ссылочный - Булево
-// * Регистр - Булево
-// * ОбработкаОтчет - Булево
-// * СтандартныеРеквизиты - Булево
-// * Реквизиты - Булево
-// * Измерения - Булево
-// * Ресурсы - Булево
-// * РеквизитыАдресации - Булево
-// * ТабличныеЧасти - Булево
+// см. ЮТМетаданные.ОписаниеТипаМетаданных
Функция ОписаниеТипаМетаданных(Знач МетаданныеОбъекта) Экспорт
Если ТипЗнч(МетаданныеОбъекта) = Тип("Тип") Тогда
@@ -191,15 +178,18 @@
ПолноеИмя = МетаданныеОбъекта.ПолноеИмя();
ЧастиИмени = СтрРазделить(ПолноеИмя, ".");
- Типы = ЮТМетаданные.ТипыМетаданных();
+ Типы = ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных();
- Если Типы.Свойство(ЧастиИмени[0]) Тогда
- Возврат Типы[ЧастиИмени[0]];
- Иначе
+ Если НЕ Типы.Свойство(ЧастиИмени[0]) Тогда
Сообщение = СтрШаблон("Получение описания для '%1' не поддерживается, либо не реализовано", ЧастиИмени[0]);
ВызватьИсключение Сообщение;
КонецЕсли;
+ Описание = ЮТМетаданные.ОписаниеТипаМетаданных();
+ ЗаполнитьЗначенияСвойств(Описание, Типы[ЧастиИмени[0]]);
+ //@skip-check constructor-function-return-section
+ Возврат Новый ФиксированнаяСтруктура(Описание);
+
КонецФункции
Функция ТипыМетаданных() Экспорт
@@ -288,7 +278,7 @@
ОбъектМетаданных = ОбъектМетаданныхИзСтроки(Значение);
- ИначеЕсли ТипЗначение = Тип("Структура") И Значение.Свойство("ОписаниеТипа") И Значение.Свойство("Имя") Тогда
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначение) И Значение.Свойство("ОписаниеТипа") И Значение.Свойство("Имя") Тогда
ОбъектМетаданных = Метаданные[Значение.ОписаниеТипа.ИмяКоллекции][Значение.Имя];
@@ -299,7 +289,7 @@
КонецЕсли;
Если ОбъектМетаданных = Неопределено Тогда
- Сообщение = ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТМетаданныеСервер.ОбъектМетаданных", Значение);
+ Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТМетаданныеСлужебныйВызовСервера.ОбъектМетаданных", Значение);
ВызватьИсключение Сообщение;
КонецЕсли;
@@ -313,7 +303,7 @@
Если ЧастиСтроки.Количество() = 2 Тогда
- ТипыМетаданных = ЮТМетаданные.ТипыМетаданных();
+ ТипыМетаданных = ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных();
ОписаниеТипа = ТипыМетаданных[ЧастиСтроки[0]];
Если ОписаниеТипа <> Неопределено Тогда
ОбъектМетаданных = Метаданные[ОписаниеТипа.ИмяКоллекции].Найти(ЧастиСтроки[1]);
@@ -342,10 +332,48 @@
ЭтоКлюч = ИменаКлючевыхПолей.Найти(Реквизит.Имя) <> Неопределено;
КонецЕсли;
- КоллекцияОписаний.Вставить(Реквизит.Имя, ЮТФабрика.ОписаниеРеквизита(Реквизит, ЭтоКлюч));
+ КоллекцияОписаний.Вставить(Реквизит.Имя, НовоеОписаниеРеквизита(Реквизит, ЭтоКлюч));
КонецЦикла;
КонецПроцедуры
+Процедура ДобавитьОбщиеРеквизиты(МетаданныеОбъекта, КоллекцияОписаний)
+
+ Использовать = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Использовать;
+ Авто = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Авто;
+ АвтоИспользование = Метаданные.СвойстваОбъектов.АвтоИспользованиеОбщегоРеквизита.Использовать;
+
+ Для Каждого Реквизит Из Метаданные.ОбщиеРеквизиты Цикл
+
+ ЭлементСостава = Реквизит.Состав.Найти(МетаданныеОбъекта);
+
+ Если ЭлементСостава = Неопределено Тогда
+ Продолжить;
+ ИначеЕсли ЭлементСостава.Использование = Использовать Или Реквизит.АвтоИспользование = АвтоИспользование И ЭлементСостава.Использование = Авто Тогда
+ КоллекцияОписаний.Вставить(Реквизит.Имя, НовоеОписаниеРеквизита(Реквизит, Ложь));
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Функция НовоеОписаниеРеквизита(Реквизит, ЭтоКлюч)
+
+ Описание = ЮТМетаданные.ОписаниеРеквизита();
+ Описание.Имя = Реквизит.Имя;
+ Описание.Тип = Реквизит.Тип;
+ Описание.Обязательный = Реквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку;
+ Описание.ЭтоКлюч = ЭтоКлюч;
+
+ Возврат Описание;
+
+КонецФункции
+
+Функция ВерсияДвижка() Экспорт
+
+ Возврат Метаданные.ОбщиеМодули.ЮТМетаданныеСлужебныйВызовСервера.РасширениеКонфигурации().Версия;
+
+КонецФункции
+
#КонецОбласти
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\265\321\200\320\262\320\265\321\200/\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\265\321\200\320\262\320\265\321\200.mdo" "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/\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.mdo"
similarity index 83%
rename from "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\265\321\200\320\262\320\265\321\200/\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\265\321\200\320\262\320\265\321\200.mdo"
rename to "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/\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.mdo"
index 773aa838a..698e53c86 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\265\321\200\320\262\320\265\321\200/\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\265\321\200\320\262\320\265\321\200.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТМетаданныеСервер
+ ЮТМетаданныеСлужебныйВызовСервера
ru
Метаданные (сервер)
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\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"
similarity index 59%
rename from "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\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl"
rename to "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 f0c3b700d..baf334e70 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\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"
@@ -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,45 +20,51 @@
Функция МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские) Экспорт
- Возврат ЮТМетаданныеСервер.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
+ Возврат ЮТМетаданныеСлужебныйВызовСервера.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские);
КонецФункции
Функция ОписаниеОбъектаМетаданных(Знач Менеджер) Экспорт
- Возврат ЮТМетаданныеСервер.ОписаниеОбъектаМетаданных(Менеджер);
+ Возврат ЮТМетаданныеСлужебныйВызовСервера.ОписаниеОбъектаМетаданных(Менеджер);
КонецФункции
Функция ОписаниеОбъектаМетаданныхПоИдентификаторуТипа(Знач ИдентификаторТипа) Экспорт
Тип = ЮТТипыДанныхСлужебный.ТипПоИдентификатору(ИдентификаторТипа);
- Возврат ЮТМетаданныеСервер.ОписаниеОбъектаМетаданных(Тип);
+ Возврат ЮТМетаданныеСлужебныйВызовСервера.ОписаниеОбъектаМетаданных(Тип);
КонецФункции
Функция ТипыМетаданных() Экспорт
- Возврат ЮТМетаданныеСервер.ТипыМетаданных();
+ Возврат ЮТМетаданныеСлужебныйВызовСервера.ТипыМетаданных();
КонецФункции
Функция РазрешеныСинхронныеВызовы() Экспорт
- Возврат ЮТМетаданныеСервер.РазрешеныСинхронныеВызовы();
+ Возврат ЮТМетаданныеСлужебныйВызовСервера.РазрешеныСинхронныеВызовы();
КонецФункции
Функция РегистрыДвиженийДокумента(ПолноеИмя) Экспорт
- Возврат ЮТМетаданныеСервер.РегистрыДвиженийДокумента(ПолноеИмя);
+ Возврат ЮТМетаданныеСлужебныйВызовСервера.РегистрыДвиженийДокумента(ПолноеИмя);
КонецФункции
Функция ВариантВстроенногоЯзыка() Экспорт
- Возврат ЮТМетаданныеСервер.ВариантВстроенногоЯзыка();
+ Возврат ЮТМетаданныеСлужебныйВызовСервера.ВариантВстроенногоЯзыка();
КонецФункции
+Функция ВерсияДвижка() Экспорт
+
+ Возврат ЮТМетаданныеСлужебныйВызовСервера.ВерсияДвижка();
+
+КонецФункции
+
#КонецОбласти
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\237\320\276\320\262\321\202\320\230\321\201\320\277/\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\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" "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/\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.mdo"
similarity index 87%
rename from "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\237\320\276\320\262\321\202\320\230\321\201\320\277/\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\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo"
rename to "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/\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.mdo"
index 6de5020f0..652cc9131 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\237\320\276\320\262\321\202\320\230\321\201\320\277/\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\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТМетаданныеПовтИсп
+ ЮТМетаданныеСлужебныйПовтИсп
ru
Метаданные (повторного использования)
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"
new file mode 100644
index 000000000..4283e2b32
--- /dev/null
+++ "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"
@@ -0,0 +1,185 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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. Рекомендуется использовать '%2'", Сообщение, РекомендуемыйМетод);
+ КонецЕсли;
+
+ ЮТЛогирование.Предостережение(Сообщение);
+
+ Если ЮТСтроки.СравнитьВерсии(Версия, ВерсияЗапретаИспользованияУстаревших()) <= 0 Тогда
+ ВызватьИсключение Сообщение;
+ Иначе
+ ЮТОбщий.СообщитьПользователю(Сообщение);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#Область ПроверкаМетодов
+
+// МетодМодуляСуществует
+// Проверяет существование публичного (экспортного) метода у модуля
+//
+// Параметры:
+// ИмяМодуля - Строка - Имя модуля, метод которого нужно поискать
+// ИмяМетода - Строка - Имя метода, который ищем
+// Кешировать - Булево - Признак кеширования результата проверки
+//
+// Возвращаемое значение:
+// Булево - Метод найден
+Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, Кешировать = Истина) Экспорт
+
+ ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМодуля, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМодуля");
+ ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода");
+
+ Если Кешировать Тогда
+ Возврат ЮТСлужебныйПовторногоИспользования.МетодМодуляСуществует(ИмяМодуля, ИмяМетода);
+ КонецЕсли;
+
+ ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяМетода);
+ Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
+
+ Ошибка = ВыполнитьМетод(Алгоритм);
+
+ ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода);
+ Возврат ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().МногоПараметров;
+
+КонецФункции
+
+// Проверяет существование публичного (экспортного) метода у объекта
+//
+// Параметры:
+// Объект - Произвольный - Объект, метод которого нужно поискать
+// ИмяМетода - Строка - Имя метода, который ищем
+//
+// Возвращаемое значение:
+// Булево - Метод найден
+Функция МетодОбъектаСуществует(Объект, ИмяМетода) Экспорт
+
+#Если ВебКлиент Тогда
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.МетодОбъектаСуществует");
+#Иначе
+ ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода");
+
+ ПолноеИмяМетода = СтрШаблон("Объект.%1", ИмяМетода);
+ Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
+
+ Ошибка = ВыполнитьМетод(Алгоритм, , Объект);
+
+ ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода);
+ Возврат ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().МногоПараметров;
+#КонецЕсли
+
+КонецФункции
+
+#КонецОбласти
+
+#Область ВызовМетодов
+
+Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт
+
+#Если ВебКлиент Тогда
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.ВыполнитьМетод");
+#Иначе
+ Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда
+
+ Алгоритм = ПолноеИмяМетода;
+
+ ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда
+
+ Алгоритм = ПолноеИмяМетода + "()";
+
+ ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда
+
+ Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, "Параметры"));
+
+ Иначе
+
+ ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры));
+
+ КонецЕсли;
+
+ Попытка
+ //@skip-check server-execution-safe-mode
+ Выполнить(Алгоритм);
+ Исключение
+ Возврат ИнформацияОбОшибке();
+ КонецПопытки;
+
+ Возврат Неопределено;
+#КонецЕсли
+
+КонецФункции
+
+Функция ВычислитьБезопасно(Выражение) Экспорт
+
+#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда
+ УстановитьБезопасныйРежим(Истина);
+ Попытка
+ Значение = Вычислить(Выражение);
+ Исключение
+ УстановитьБезопасныйРежим(Ложь);
+ ВызватьИсключение;
+ КонецПопытки;
+
+ УстановитьБезопасныйРежим(Ложь);
+#Иначе
+ Значение = Вычислить(Выражение);
+#КонецЕсли
+
+ Возврат Значение;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция ВерсияЗапретаИспользованияУстаревших()
+
+ Возврат "23.01";
+
+КонецФункции
+
+Функция СтрокаПараметровМетода(Параметры, ИмяПеременнойСПараметрами)
+
+ СписокПараметров = Новый Массив();
+
+ Для Инд = 0 По Параметры.ВГраница() Цикл
+
+ Если Параметры[Инд] = Мокито.ПараметрПоУмолчанию() Тогда
+ СписокПараметров.Добавить("");
+ Иначе
+ СписокПараметров.Добавить(СтрШаблон("%1[%2]", ИмяПеременнойСПараметрами, Инд));
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат СтрСоединить(СписокПараметров, ", ");
+
+КонецФункции
+
+#КонецОбласти
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/\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.mdo" "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/\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.mdo"
new file mode 100644
index 000000000..dd5e80158
--- /dev/null
+++ "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/\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.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТМетодыСлужебный
+
+ ru
+ Общий служебный
+
+ true
+ true
+ true
+
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 5a4087e9b..fe14db317 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"
@@ -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.
@@ -16,8 +16,12 @@
//
//©///////////////////////////////////////////////////////////////////////////©//
-#Область СлужебныйПрограммныйИнтерфейс
+#Область ПрограммныйИнтерфейс
+// Возвращает значение настройки "ВТранзакции" для текущего исполняемого объекта (тест, набор, модуль)
+//
+// Возвращаемое значение:
+// Булево
Функция ВТранзакции() Экспорт
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции;
@@ -26,6 +30,10 @@
КонецФункции
+// Возвращает значение настройки "УдалениеТестовыхДанных" для текущего исполняемого объекта (тест, набор, модуль)
+//
+// Возвращаемое значение:
+// Булево
Функция УдалениеТестовыхДанных() Экспорт
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных;
@@ -34,6 +42,11 @@
КонецФункции
+// Возвращает значение настройки "Перед" для текущего исполняемого объекта (тест, набор, модуль)
+// Возвращает имя назначенного обработчика события (имя метода) "Перед".
+//
+// Возвращаемое значение:
+// Строка
Функция Перед() Экспорт
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().Перед;
@@ -42,6 +55,11 @@
КонецФункции
+// Возвращает значение настройки "После" для текущего исполняемого объекта (тест, набор, модуль)
+// Возвращает имя назначенного обработчика события (имя метода) "После".
+//
+// Возвращаемое значение:
+// Строка
Функция После() Экспорт
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().После;
@@ -50,17 +68,28 @@
КонецФункции
+// Возвращает значение произвольной настройки для текущего исполняемого объекта (тест, набор, модуль)
+//
+// Параметры:
+// ИмяНастройки - Строка - Имя настройки, см. ЮТФабрика.ПараметрыИсполненияТеста
+// ЗначениеПоУмолчанию - Произвольный - Значение по умолчанию
+// СтрогийУровеньИсполнения - Булево - Признак, стоит ли проверять наличие настройки у родительских элементов.
+// Ложь - По умолчанию, будет выполнен поиск и получение значения для родетелей (набор, модуль), если значения для текущего элемента не установлено.
+// Истина - Получение настройки только для текущего элемента.
+//
+// Возвращаемое значение:
+// Произвольный, Неопределено, Булево, Строка - Значение настройки теста
Функция ЗначениеНастройкиТеста(ИмяНастройки, ЗначениеПоУмолчанию, СтрогийУровеньИсполнения = Ложь) Экспорт
Значение = ЗначениеПоУмолчанию;
- КонтекстИсполнения = ЮТКонтекст.КонтекстИсполнения();
+ КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения();
Если СтрогийУровеньИсполнения Тогда
- ТекущийКонтекстИсполнения = ЮТКонтекст.КонтекстИсполненияТекущегоУровня();
+ ТекущийКонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполненияТекущегоУровня();
Если ТекущийКонтекстИсполнения <> Неопределено Тогда
- Значение = ЮТОбщий.ЗначениеСтруктуры(ТекущийКонтекстИсполнения.НастройкиВыполнения, ИмяНастройки, ЗначениеПоУмолчанию);
+ Значение = ЮТКоллекции.ЗначениеСтруктуры(ТекущийКонтекстИсполнения.НастройкиВыполнения, ИмяНастройки, ЗначениеПоУмолчанию);
КонецЕсли;
ИначеЕсли КонтекстИсполнения.Тест <> Неопределено И КонтекстИсполнения.Тест.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда
@@ -77,7 +106,7 @@
Иначе
- ГлобальныеНастройки = ЮТКонтекст.ГлобальныеНастройкиВыполнения();
+ ГлобальныеНастройки = ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения();
Если ГлобальныеНастройки.Свойство(ИмяНастройки) Тогда
Значение = ГлобальныеНастройки[ИмяНастройки];
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 9232c484c..35b6160b9 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"
@@ -20,12 +20,12 @@
// Возвращает значение свойства объекта.
// Возможно получение "глубоко" вложенных свойство и элементов коллекции по индексу
-//
+//
// Параметры:
// Объект - Произвольный
// ИмяСвойства - Строка - Путь к свойству. Примеры: "ИмяСвойства.ИмяВложенногоСвойства", "[2].ИмяСвойства", "ИмяСвойства[2].ИмяВложенногоСвойства"
-// - Число - Индекс элемента. Возможен выбор элемента с конца, для этого нужно указывать отрицательный номер элемента с конца,
-// например: '-1' - последний элемент, '-2' - предпоследний
+// - Число - Индекс элемента. Возможен выбор элемента с конца, для этого нужно указывать отрицательный номер элемента с конца,
+// например: '-1' - последний элемент, '-2' - предпоследний
// Возвращаемое значение:
// Произвольный
Функция ЗначениеСвойства(Объект, ИмяСвойства) Экспорт
@@ -37,7 +37,7 @@
Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда
#Если ВебКлиент Или ТонкийКлиент Тогда
- Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение);
+ Значение = ЮТОбщийСлужебныйВызовСервера.ИзХранилищаЗначений(Значение);
#Иначе
Значение = Значение.Получить();
#КонецЕсли
@@ -55,98 +55,51 @@
КонецФункции
-Функция ХешMD5(Данные) Экспорт
-
- Возврат ЮТОбщийВызовСервера.ХешMD5(Данные);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область Строки
-
-// ДобавитьСтроку
-// Конкатенирует строки, разделяя их разделителем
+// Вычисляет хеш по алгоритму md5.
//
// Параметры:
-// ИсходнаяСтрока - Строка - Исходная строка
-// ДополнительнаяСтрока - Строка - Добавляемая строка
-// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками
-//
-// Возвращаемое значение:
-// Строка - Результат конкатенации строк
+// Данные - Строка, ДвоичныеДанные - Данные, для которых необходимо вычислить хеш
//
-Функция ДобавитьСтроку(Знач ИсходнаяСтрока, Знач ДополнительнаяСтрока, Знач Разделитель = ";") Экспорт
-
- Если Не ПустаяСтрока(ДополнительнаяСтрока) Тогда
-
- Если Не ПустаяСтрока(ИсходнаяСтрока) Тогда
-
- Возврат Строка(ИсходнаяСтрока) + Разделитель + Строка(ДополнительнаяСтрока);
-
- Иначе
-
- Возврат Строка(ДополнительнаяСтрока);
-
- КонецЕсли;
-
- КонецЕсли;
+// Возвращаемое значение:
+// Строка
+Функция ХешMD5(Данные) Экспорт
- Возврат Строка(ИсходнаяСтрока);
+ Возврат ЮТОбщийСлужебныйВызовСервера.ХешMD5(Данные);
КонецФункции
-// РазложитьСтрокуВМассивПодстрок
-// Возвращает массив на основании строки
+#Область ДатаВремя
+
+// Добавляет к дате указанное значение временных интервалов
//
// Параметры:
-// Значение - Строка - преобразуемая строка
-// Разделитель - Строка - строка-разделитель
-//
-// Возвращаемое значение:
-// Массив Из Строка - массив строк
+// Дата - Дата
+// Интервал - Число - Добавляемое
+// ТипИнтервала - Строка - Тип интервала
//
-Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Разделитель = ";") Экспорт
+// Возвращаемое значение:
+// Дата
+Функция ДобавитьКДате(Дата, Интервал, ТипИнтервала) Экспорт
- КодУниверсальногоРазделителя = 5855;
- УниверсальныйРазделитель = Символ(КодУниверсальногоРазделителя);
- МодифицированнаяСтрока = СтрЗаменить(Значение, Разделитель, УниверсальныйРазделитель);
+ Если ЭтоМесяц(ТипИнтервала) Тогда
+ Возврат ДобавитьМесяц(Дата, Интервал);
+ КонецЕсли;
- МассивСтрок = ?(МодифицированнаяСтрока = "", Новый Массив, СтрРазделить(МодифицированнаяСтрока,
- УниверсальныйРазделитель));
-
- Для Индекс = 0 По МассивСтрок.ВГраница() Цикл
-
- МассивСтрок[Индекс] = СокрЛП(МассивСтрок[Индекс]);
-
- КонецЦикла;
-
- Возврат МассивСтрок;
+ Множитель = МножительПериода(ТипИнтервала);
+ Возврат Дата + Множитель * Интервал;
КонецФункции
-// Сформировать строку символов.
-// Формирует строку из заданного количества повторяемых символов
-// Параметры:
-// Символ - Строка - Повторяемый символ
-// Количество - Число - Количество повторений
-//
-// Возвращаемое значение:
-// Строка - Строка повторяемых символов
-Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт
-
- Возврат СтрСоединить(Новый Массив(Количество + 1), Символ);
-
-КонецФункции
+#КонецОбласти
#КонецОбласти
+#Область СлужебныйПрограммныйИнтерфейс
+
#Область Числа
// Инкрементирует значение
-//
+//
// Параметры:
// Значение - Число
// Шаг - Число
@@ -170,16 +123,16 @@
#Область ДатаВремя
// Человекочитаемое представление продолжительности
-//
+//
// Параметры:
// Продолжительность - Число - Продолжительность в миллисекундах
-//
+//
// Возвращаемое значение:
// Строка - Представление продолжительности
Функция ПредставлениеПродолжительности(Знач Продолжительность) Экспорт
Представление = ЧислоВСтроку(Цел(Продолжительность / 1000));
- Представление = ДобавитьСтроку(Представление, Формат(Продолжительность % 1000, "ЧЦ=3; ЧВН=;"), ".");
+ Представление = ЮТСтроки.ДобавитьСтроку(Представление, Формат(Продолжительность % 1000, "ЧЦ=3; ЧВН=;"), ".");
Инкремент(Представление, " сек");
@@ -202,797 +155,595 @@
#КонецОбласти
-#Область Коллекции
+#Область ЧтениеДанных
-// ЗначениеСтруктуры
-// Возвращает требуемое поле структуры. В случае отсутствия поля возвращает значение по умолчанию
-//
-// Параметры:
-// ИсходнаяСтруктура - Структура - Исходная структура
-// ИмяПоля - Строка - Имя поля структуры
-// ЗначениеПоУмолчанию - Произвольный - Значение, которое будет возвращено, если поля в структуре нет
-// ПроверятьЗаполненность - Булево - Необходимость проверять значение на заполненность. Если не заполнено,
-// то возвращается значение по умолчанию
-//
-// Возвращаемое значение:
-// Произвольный - Значение искомого поля структуры
-Функция ЗначениеСтруктуры(Знач ИсходнаяСтруктура, ИмяПоля, Знач ЗначениеПоУмолчанию = Неопределено, ПроверятьЗаполненность = Ложь) Экспорт
+Функция ДанныеТекстовогоФайла(ИмяФайла) Экспорт
- Если ПустаяСтрока(ИмяПоля) Тогда
- Возврат ЗначениеПоУмолчанию;
- КонецЕсли;
+#Если НЕ ВебКлиент Тогда
+ Чтение = Новый ЧтениеТекста;
+ Чтение.Открыть(ИмяФайла, "UTF-8");
+ Текст = Чтение.Прочитать();
+ Чтение.Закрыть();
- ЗначениеПоля = Неопределено;
+ Возврат Текст;
+#Иначе
+ ВызватьИсключение "Чтение данных текстовых файлов в веб-клиенте не поддерживается";
+#КонецЕсли
- Если ИсходнаяСтруктура.Свойство(ИмяПоля, ЗначениеПоля) Тогда
- Если ПроверятьЗаполненность И ЗначениеЗаполнено(ЗначениеПоля) Или Не ПроверятьЗаполненность Тогда
- Возврат ЗначениеПоля;
- КонецЕсли;
-
- КонецЕсли;
+КонецФункции
+
+Функция ЗначениеИзJSON(СтрокаJSON) Экспорт
- Возврат ЗначениеПоУмолчанию;
+#Если НЕ ВебКлиент Тогда
+ Чтение = Новый ЧтениеJSON;
+ Чтение.УстановитьСтроку(СтрокаJSON);
+ Значение = ПрочитатьJSON(Чтение);
+ Чтение.Закрыть();
+ Возврат Значение;
+#Иначе
+ ВызватьИсключение "Разбор JSON строки в веб-клиенте не поддерживается";
+#КонецЕсли
КонецФункции
-// ОбъединитьВСтруктуру
-// Функция, объединяющая две коллекции( с типами Структура или Соответствие) в одну структуру, если это возможно
+#КонецОбласти
+
+// ПеременнаяСодержитСвойство
+// функция проверяет наличие свойства у значения любого типа данных. Если передано НЕОПРЕДЕЛЕНО, то ф-ия всегда вернет Ложь
//
// Параметры:
-// Коллекция1 - Соответствие из Произвольный
-// - Структура
-// Коллекция2 - Соответствие из Произвольный
-// - Структура
-//
+// Переменная - Произвольный - переменная любого типа, для которой необходимо проверить наличие свойства
+// ИмяСвойства - Строка - переменная типа "Строка", содержащая искомое свойства
+//
// Возвращаемое значение:
-// Структура - Результат объединения двух коллекций
+// Булево - признак наличия свойства у значения
//
-Функция ОбъединитьВСтруктуру(Знач Коллекция1, Коллекция2) Экспорт
+Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) Экспорт
- Если ТипЗнч(Коллекция1) <> Тип("Структура") Тогда
- Коллекция1 = СкопироватьСтруктуру(Коллекция1);
+ Если Переменная = Неопределено Тогда
+ Возврат Ложь;
КонецЕсли;
- //@skip-check constructor-function-return-section
- Возврат ДобавитьКлючИЗначениеВКоллекцию(Коллекция1, Коллекция2);
+ // Инициализируем структуру для теста с ключом (значение переменной "ИмяСвойства") и значением произвольного GUID'а
+ GUIDПроверка = Новый УникальныйИдентификатор;
+ СтруктураПроверка = Новый Структура;
+ СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка);
+ // Заполняем созданную структуру из переданного значения переменной
+ ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
+ // Если значение для свойства структуры осталось GUIDПроверка, то искомое свойство не найдено, и наоборот.
+ Возврат СтруктураПроверка[ИмяСвойства] <> GUIDПроверка;
КонецФункции
-// СкопироватьРекурсивно
-// Создает копию экземпляра указанного объекта.
-// Примечание:
-// Функцию нельзя использовать для объектных типов (СправочникОбъект, ДокументОбъект и т.п.).
+// СообщитьПользователю
+// Формирует и выводит сообщение
//
// Параметры:
-// Источник - Произвольный - объект, который необходимо скопировать.
-//
-// Возвращаемое значение:
-// Произвольный - копия объекта, переданного в параметре Источник.
-//
-Функция СкопироватьРекурсивно(Знач Источник) Экспорт
+// ТекстСообщенияПользователю - Строка - текст сообщения.
+Процедура СообщитьПользователю(ТекстСообщенияПользователю) Экспорт
- Перем Приемник;
+ Сообщение = Новый СообщениеПользователю;
+ Сообщение.Текст = СокрЛП(ТекстСообщенияПользователю);
+ Сообщение.Сообщить();
- СкопироватьПрисвоением = Ложь;
+КонецПроцедуры
+
+Функция СтрокаJSON(Значение, ИспользоватьСериализатор = Истина) Экспорт
- ТипИсточника = ТипЗнч(Источник);
- Если ТипИсточника = Тип("Структура") Или ТипИсточника = Тип("ФиксированнаяСтруктура") Тогда
-
- Приемник = СкопироватьСтруктуру(Источник);
-
- ИначеЕсли ТипИсточника = Тип("Соответствие") Или ТипИсточника = Тип("ФиксированноеСоответствие") Тогда
-
- Приемник = СкопироватьСоответствие(Источник);
-
- ИначеЕсли ТипИсточника = Тип("Массив") Или ТипИсточника = Тип("ФиксированныйМассив") Тогда
-
- Приемник = СкопироватьМассив(Источник);
-
- ИначеЕсли ТипИсточника = Тип("СписокЗначений") Тогда
-
- Приемник = СкопироватьСписокЗначений(Источник);
-
+#Если ВебКлиент Тогда
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.СтрокаJSON");
+#Иначе
+ ЗаписьJSON = Новый ЗаписьJSON();
+ ЗаписьJSON.УстановитьСтроку();
+ Если ИспользоватьСериализатор Тогда
+ //@skip-check undefined-variable
+ СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Значение);
Иначе
-
- СкопироватьПрисвоением = Истина;
-#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
- Если ТипИсточника = Тип("ТаблицаЗначений") Или ТипИсточника = Тип("ДеревоЗначений") Тогда
-
- СкопироватьПрисвоением = Ложь;
- Приемник = Источник.Скопировать();
-
- КонецЕсли;
-#КонецЕсли
-
+ ЗаписатьJSON(ЗаписьJSON, Значение);
КонецЕсли;
- Если СкопироватьПрисвоением Тогда
-
- Приемник = Источник;
+ Возврат ЗаписьJSON.Закрыть();
+#КонецЕсли
- КонецЕсли;
+КонецФункции // СтрокаJSON
+
+Функция ПредставлениеЗначения(Значение) Экспорт
- Возврат Приемник;
+ Попытка
+ Возврат СтрокаJSON(Значение);
+ Исключение
+ Возврат Строка(Значение);
+ КонецПопытки;
КонецФункции
-// СкопироватьСтруктуру
-// Создает копию значения типа Структура
+// Параметры записи объекта
//
-// Параметры:
-// СтруктураИсточник - Структура - копируемая структура
-//
// Возвращаемое значение:
-// Структура - копия исходной структуры.
-//
-Функция СкопироватьСтруктуру(СтруктураИсточник) Экспорт
-
- СтруктураРезультат = Новый Структура;
+// Структура - Параметры записи:
+// * ОбменДаннымиЗагрузка - Булево
+// * ДополнительныеСвойства - Структура
+// * РежимЗаписи - РежимЗаписиДокумента
+// - Неопределено
+Функция ПараметрыЗаписи() Экспорт
- Для Каждого КлючИЗначение Из СтруктураИсточник Цикл
- СтруктураРезультат.Вставить(КлючИЗначение.Ключ, СкопироватьРекурсивно(КлючИЗначение.Значение));
- КонецЦикла;
+ ПараметрыЗаписи = Новый Структура();
+ ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь);
+ ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура);
+ ПараметрыЗаписи.Вставить("РежимЗаписи", Неопределено);
- Возврат СтруктураРезультат;
+ Возврат ПараметрыЗаписи;
КонецФункции
-// СкопироватьСоответствие
-// Создает копию значения типа Соответствие.
-//
-// Параметры:
-// СоответствиеИсточник - Соответствие из Произвольный - соответствие, копию которого необходимо получить.
-//
-// Возвращаемое значение:
-// Соответствие Из Произвольный - копия исходного соответствия.
-//
-Функция СкопироватьСоответствие(СоответствиеИсточник) Экспорт
-
- СоответствиеРезультат = Новый Соответствие;
-
- Для Каждого КлючИЗначение Из СоответствиеИсточник Цикл
-
- СоответствиеРезультат.Вставить(СкопироватьРекурсивно(КлючИЗначение.Ключ),
- СкопироватьРекурсивно(КлючИЗначение.Значение));
-
- КонецЦикла;
+Функция УстановленБезопасныйРежим() Экспорт
- Возврат СоответствиеРезультат;
+ Возврат ЮТОбщийСлужебныйВызовСервера.УстановленБезопасныйРежим();
КонецФункции
-// СкопироватьМассив
-// Создает копию значения типа Массив.
-//
-// Параметры:
-// МассивИсточник - Массив Из Произвольный - массив, копию которого необходимо получить
-//
-// Возвращаемое значение:
-// Массив Из Произвольный - копия исходного массива.
-//
-Функция СкопироватьМассив(МассивИсточник) Экспорт
+Функция МестноеВремяПоВременнойМетке(Метка) Экспорт
- Если НЕ ЗначениеЗаполнено(МассивИсточник) Тогда
- Возврат Новый Массив;
+ Если ЗначениеЗаполнено(Метка) Тогда
+ Возврат МестноеВремя('00010101' + Метка / 1000);
+ Иначе
+ Возврат Неопределено;
КонецЕсли;
- Размер = МассивИсточник.Количество();
- МассивРезультат = Новый Массив(Размер);
-
- Для Инд = 0 По Размер - 1 Цикл
- МассивРезультат[Инд] = СкопироватьРекурсивно(МассивИсточник[Инд]);
- КонецЦикла;
-
- Возврат МассивРезультат;
-
КонецФункции
-// СкопироватьСписокЗначений
-// Создает копию значения типа СписокЗначений.
-//
-// Параметры:
-// СписокИсточник - СписокЗначений Из Произвольный - список значений, копию которого необходимо получить
-//
-// Возвращаемое значение:
-// СписокЗначений Из Произвольный - копия исходного списка значений
-//
-Функция СкопироватьСписокЗначений(СписокИсточник) Экспорт
-
- СписокРезультат = Новый СписокЗначений;
-
- Для Каждого ЭлементСписка Из СписокИсточник Цикл
-
- СписокРезультат.Добавить(СкопироватьРекурсивно(ЭлементСписка.Значение),
- ЭлементСписка.Представление,
- ЭлементСписка.Пометка,
- ЭлементСписка.Картинка);
-
- КонецЦикла;
+Функция ПродолжительностьВСекундах(Продолжительность) Экспорт
- Возврат СписокРезультат;
+ Возврат Продолжительность / 1000;
КонецФункции
-Функция ВыгрузитьЗначения(Знач Коллекция, Знач ИмяРеквизита) Экспорт
-
- Результат = Новый Массив();
-
- Для Каждого ЭлементКоллекции Из Коллекция Цикл
-
- Результат.Добавить(ЭлементКоллекции[ИмяРеквизита]);
-
- КонецЦикла;
+Функция Модуль(ИмяМодуля) Экспорт
- Возврат Результат;
+ Возврат ЮТМетодыСлужебный.ВычислитьБезопасно(ИмяМодуля);
КонецФункции
-Функция ПересечениеМассивов(Коллекция1, Коллекция2) Экспорт
-
- Результат = Новый Массив;
-
- Для Каждого Элемент Из Коллекция1 Цикл
-
- Если Коллекция2.Найти(Элемент) <> Неопределено Тогда
- Результат.Добавить(Элемент);
- КонецЕсли;
-
- КонецЦикла;
+Функция Менеджер(Знач Менеджер) Экспорт
- Возврат Результат;
+#Если Сервер Тогда
+ Возврат ЮТОбщийСлужебныйВызовСервера.Менеджер(Менеджер);
+#Иначе
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.Менеджер", "клиенте");
+#КонецЕсли
КонецФункции
-// Создает массив с переданными значениями
-//
-// Параметры:
-// Значение - Произвольный
-// Значение2 - Произвольный
-// Значение3 - Произвольный
-// Значение4 - Произвольный
-// Значение5 - Произвольный
-// Значение6 - Произвольный
-// Значение7 - Произвольный
-// Значение8 - Произвольный
-// Значение9 - Произвольный
-// Значение10 - Произвольный
-//
-// Возвращаемое значение:
-// Массив из Произвольный
-//@skip-check method-too-many-params
-Функция ЗначениеВМассиве(Значение,
- Значение2 = "_!%*",
- Значение3 = "_!%*",
- Значение4 = "_!%*",
- Значение5 = "_!%*",
- Значение6 = "_!%*",
- Значение7 = "_!%*",
- Значение8 = "_!%*",
- Значение9 = "_!%*",
- Значение10 = "_!%*") Экспорт
-
- Значения = Новый Массив;
-
- Если Не ДобавитьНеПоследнее(Значения, Значение) Тогда
- Возврат Значения;
- КонецЕсли;
-
- Если Не ДобавитьНеПоследнее(Значения, Значение2) Тогда
- Возврат Значения;
- КонецЕсли;
-
- Если Не ДобавитьНеПоследнее(Значения, Значение3) Тогда
- Возврат Значения;
- КонецЕсли;
-
- Если Не ДобавитьНеПоследнее(Значения, Значение4) Тогда
- Возврат Значения;
- КонецЕсли;
+Функция ТипСтруктуры(Структура) Экспорт
- Если Не ДобавитьНеПоследнее(Значения, Значение5) Тогда
- Возврат Значения;
- КонецЕсли;
+ Возврат ЮТКоллекции.ЗначениеСтруктуры(Структура, "__type__");
- Если Не ДобавитьНеПоследнее(Значения, Значение6) Тогда
- Возврат Значения;
- КонецЕсли;
-
- Если Не ДобавитьНеПоследнее(Значения, Значение7) Тогда
- Возврат Значения;
- КонецЕсли;
-
- Если Не ДобавитьНеПоследнее(Значения, Значение8) Тогда
- Возврат Значения;
- КонецЕсли;
-
- Если Не ДобавитьНеПоследнее(Значения, Значение9) Тогда
- Возврат Значения;
- КонецЕсли;
+КонецФункции
- Если Не ДобавитьНеПоследнее(Значения, Значение10) Тогда
- Возврат Значения;
- КонецЕсли;
+Функция ЭтаСтруктураИмеетТип(Структура, ИмяТипа) Экспорт
- Возврат Значения;
+ Возврат ТипСтруктуры(Структура) = ИмяТипа;
КонецФункции
-Процедура ДополнитьМассив(Приемник, Источник) Экспорт
+Процедура УказатьТипСтруктуры(Структура, ИмяТипа) Экспорт
- Для Каждого Элемент Из Источник Цикл
-
- Приемник.Добавить(Элемент);
-
- КонецЦикла;
+ Структура.Вставить("__type__", ИмяТипа);
КонецПроцедуры
-// Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
-//
-// Параметры:
-// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки.
-// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
-// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
-// Возвращаемое значение:
-// Соответствие Из Произвольный - полученное соответствие.
-Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
-
- Результат = Новый Соответствие();
-
- Для Каждого ЭлементКоллекции Из Коллекция Цикл
-
- Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]);
-
- Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение);
-
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
-// Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
-//
+// Преостанавливает поток выполнения на указанное количество секунд
+//
// Параметры:
-// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки.
-// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
-// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
-// Возвращаемое значение:
-// Структура Из Произвольный - полученная структура.
-Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
-
- Результат = Новый Структура();
-
- Для Каждого ЭлементКоллекции Из Коллекция Цикл
-
- Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]);
-
- Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение);
-
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
-// см. ЮТСравнениеКлиентСервер.ЗначенияРавны
-// Устарела.
-//@skip-check doc-comment-export-function-return-section
-//@skip-check doc-comment-parameter-section
-Функция ДанныеСовпадают(Данные1, Данные2) Экспорт
-
- ВызовУстаревшегоМетода("ЮТОбщий.ДанныеСовпадают", "ЮТСравнениеКлиентСервер.ЗначенияРавны");
- Возврат ЮТСравнениеКлиентСервер.ЗначенияРавны(Данные1, Данные2);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ЧтениеДанных
-
-Функция ДанныеТекстовогоФайла(ИмяФайла) Экспорт
-
-#Если НЕ ВебКлиент Тогда
- Чтение = Новый ЧтениеТекста;
- Чтение.Открыть(ИмяФайла, "UTF-8");
- Текст = Чтение.Прочитать();
- Чтение.Закрыть();
+// Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение
+Процедура Пауза(Время) Экспорт
- Возврат Текст;
+ Задержка = Цел(1000 * Время);
+ Компонента = ЮТКомпоненты.Пауза();
+#Если Сервер Тогда
+ Компонента.Ожидать(Задержка);
#Иначе
- ВызватьИсключение "Чтение данных текстовых файлов в веб-клиенте не поддерживается";
+ Если ЮТМетаданные.РазрешеныСинхронныеВызовы() Тогда
+ Компонента.Ожидать(Задержка);
+ Иначе
+ ВызватьИсключение "Пауза не работает на клиенте при отключенных синхронных вызовах";
+ КонецЕсли;
#КонецЕсли
-КонецФункции
+КонецПроцедуры
-Функция ЗначениеИзJSON(СтрокаJSON) Экспорт
+// Выводит сообщение в консоль (stdout) приложения
+//
+// Параметры:
+// Сообщение - Строка - Выводимое сообщение
+Процедура ВывестиВКонсоль(Сообщение) Экспорт
-#Если НЕ ВебКлиент Тогда
- Чтение = Новый ЧтениеJSON;
- Чтение.УстановитьСтроку(СтрокаJSON);
- Значение = ПрочитатьJSON(Чтение);
- Чтение.Закрыть();
- Возврат Значение;
+ Компонента = ЮТКомпоненты.Консоль();
+#Если Сервер Тогда
+ Компонента.Напечатать(Сообщение);
#Иначе
- ВызватьИсключение "Разбор JSON строки в веб-клиенте не поддерживается";
+ Если ЮТМетаданные.РазрешеныСинхронныеВызовы() Тогда
+ Компонента.Напечатать(Сообщение);
+ Иначе
+ Компонента.НачатьВызовНапечатать(ЮТАсинхроннаяОбработкаСлужебныйКлиент.НовыйПустойОбработчик(3), Сообщение);
+ КонецЕсли;
#КонецЕсли
-КонецФункции
-
-#КонецОбласти
-
-#Область ПроверкаМетодов
+КонецПроцедуры
-// МетодМодуляСуществует
-// Проверяет существование публичного (экспортного) метода у модуля
-//
+// Возвращяет макет
+//
// Параметры:
-// ИмяМодуля - Строка - Имя модуля, метод которого нужно поискать
-// ИмяМетода - Строка - Имя метода, который ищем
-// КоличествоПараметров - Число - Количество параметров метода, увы это никак не влияет на проверку
-// Кешировать - Булево - Признак кеширования результата проверки
-//
+// ИмяМакета - Строка - Возможные значения
+// * Общий макет, например, ОбщийМакет.ЮТМетаданные
+// * Макет объекта метаданных, например, Справочник.Товары.ПечатнаяФорма
+// * Область макета, например, Справочник.Товары.ПечатнаяФорма.Шапка, ОбщийМакет.ЮТМетаданные.Заголовок
+//
// Возвращаемое значение:
-// Булево - Метод найден
-Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров = 0, Кешировать = Истина) Экспорт
-
- ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМодуля, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМодуля");
- ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода");
-
- Если Кешировать Тогда
- Возврат ЮТПовторногоИспользования.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров);
- КонецЕсли;
-
- ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяМетода);
- Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
-
- Ошибка = ВыполнитьМетод(Алгоритм);
+// ТабличныйДокумент, ТекстовыйДокумент, ДвоичныеДанные - Макет или его область
+Функция Макет(ИмяМакета) Экспорт
- ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода);
- Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров;
+ Возврат ЮТОбщийСлужебныйВызовСервера.Макет(ИмяМакета);
КонецФункции
-// Проверяет существование публичного (экспортного) метода у объекта
-//
+#Область УстаревшиеПроцедурыИФункции
+
+// Устарела. Метод перенесен в см. ЮТСтроки.ДобавитьСтроку
+// Конкатенирует строки, разделяя их разделителем
+//
// Параметры:
-// Объект - Произвольный - Объект, метод которого нужно поискать
-// ИмяМетода - Строка - Имя метода, который ищем
-//
+// ИсходнаяСтрока - Строка - Исходная строка
+// ДополнительнаяСтрока - Строка - Добавляемая строка
+// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками
+//
// Возвращаемое значение:
-// Булево - Метод найден
-Функция МетодОбъектаСуществует(Объект, ИмяМетода) Экспорт
-
-#Если ВебКлиент Тогда
- ВызватьИсключение МетодНеДоступен("ЮТОбщий.МетодОбъектаСуществует");
-#Иначе
- ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяМетода, Тип("Строка"), "ЮТОбщий.МетодМодуляСуществует", "ИмяМетода");
-
- ПолноеИмяМетода = СтрШаблон("Объект.%1", ИмяМетода);
- Алгоритм = ПолноеИмяМетода + "(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
-
- Ошибка = ВыполнитьМетод(Алгоритм, , Объект);
+// Строка - Результат конкатенации строк
+Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт
- ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода);
- Возврат ТипОшибки = ЮТФабрика.ТипыОшибок().МногоПараметров;
-#КонецЕсли
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ДобавитьСтроку", "ЮТСтроки.ДобавитьСтроку", "24.03");
+ Возврат ЮТСтроки.ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель);
КонецФункции
-#КонецОбласти
-
-#Область ВызовМетодов
-
-Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт
-
-#Если ВебКлиент Тогда
- ВызватьИсключение МетодНеДоступен("ЮТОбщий.ВыполнитьМетод");
-#Иначе
- Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда
-
- Алгоритм = ПолноеИмяМетода;
-
- ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда
-
- Алгоритм = ПолноеИмяМетода + "()";
-
- ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда
-
- Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, "Параметры"));
-
- Иначе
-
- ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры));
-
- КонецЕсли;
-
- Попытка
- //@skip-check server-execution-safe-mode
- Выполнить(Алгоритм);
- Исключение
- Возврат ИнформацияОбОшибке();
- КонецПопытки;
+// Устарела. Метод перенесен в см. ЮТСтроки.РазделитьСтроку
+// Возвращает массив на основании строки
+//
+// Параметры:
+// Значение - Строка - преобразуемая строка
+// Разделитель - Строка - строка-разделитель
+//
+// Возвращаемое значение:
+// Массив Из Строка - массив строк
+//
+Функция РазложитьСтрокуВМассивПодстрок(Значение, Разделитель = ";") Экспорт
- Возврат Неопределено;
-#КонецЕсли
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.РазложитьСтрокуВМассивПодстрок", "ЮТСтроки.РазбитьСтроку", "24.03");
+ Возврат ЮТСтроки.РазделитьСтроку(Значение, Разделитель);
КонецФункции
-Функция ВычислитьБезопасно(Выражение) Экспорт
-
-#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда
- УстановитьБезопасныйРежим(Истина);
- Попытка
- Значение = Вычислить(Выражение);
- Исключение
- УстановитьБезопасныйРежим(Ложь);
- ВызватьИсключение;
- КонецПопытки;
-
- УстановитьБезопасныйРежим(Ложь);
-#Иначе
- Значение = Вычислить(Выражение);
-#КонецЕсли
+// Устарела. Метод перенесен в см. ЮТСтроки.СтрокаСимволов
+// Формирует строку из заданного количества повторяемых символов
+// Параметры:
+// Символ - Строка - Повторяемый символ
+// Количество - Число - Количество повторений
+//
+// Возвращаемое значение:
+// Строка - Строка повторяемых символов
+Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт
- Возврат Значение;
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СформироватьСтрокуСимволов", "ЮТСтроки.СтрокаСимволов", "24.03");
+ Возврат ЮТСтроки.СтрокаСимволов(Символ, Количество);
КонецФункции
-#КонецОбласти
-
-// ПеременнаяСодержитСвойство
-// функция проверяет наличие свойства у значения любого типа данных. Если передано НЕОПРЕДЕЛЕНО, то ф-ия всегда вернет Ложь
+// Устарела. Метод перенесен в см. ЮТКоллекции.ЗначениеСтруктуры
+// Возвращает требуемое поле структуры. В случае отсутствия поля возвращает значение по умолчанию
//
// Параметры:
-// Переменная - Произвольный - переменная любого типа, для которой необходимо проверить наличие свойства
-// ИмяСвойства - Строка - переменная типа "Строка", содержащая искомое свойства
-//
-// Возвращаемое значение:
-// Булево - признак наличия свойства у значения
+// ИсходнаяСтруктура - Структура - Исходная структура
+// ИмяПоля - Строка - Имя поля структуры
+// ЗначениеПоУмолчанию - Произвольный - Значение, которое будет возвращено, если поля в структуре нет
//
-Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) Экспорт
-
- Если Переменная = Неопределено Тогда
- Возврат Ложь;
- КонецЕсли;
-
- // Инициализируем структуру для теста с ключом (значение переменной "ИмяСвойства") и значением произвольного GUID'а
- GUIDПроверка = Новый УникальныйИдентификатор;
- СтруктураПроверка = Новый Структура;
- СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка);
- // Заполняем созданную структуру из переданного значения переменной
- ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
- // Если значение для свойства структуры осталось GUIDПроверка, то искомое свойство не найдено, и наоборот.
- Возврат СтруктураПроверка[ИмяСвойства] <> GUIDПроверка;
+// Возвращаемое значение:
+// Произвольный - Значение искомого поля структуры
+Функция ЗначениеСтруктуры(ИсходнаяСтруктура, ИмяПоля, ЗначениеПоУмолчанию = Неопределено) Экспорт
+
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ЗначениеСтруктуры", "ЮТКоллекции.ЗначениеСтруктуры", "24.03");
+ Возврат ЮТКоллекции.ЗначениеСтруктуры(ИсходнаяСтруктура, ИмяПоля, ЗначениеПоУмолчанию);
КонецФункции
-// СообщитьПользователю
-// Формирует и выводит сообщение
+// Устарела. Метод перенесен в см. ЮТКоллекции.ДополнитьСтруктуру
+// Функция, объединяющая две коллекции( с типами Структура или Соответствие) в одну структуру, если это возможно
//
// Параметры:
-// ТекстСообщенияПользователю - Строка - текст сообщения.
-Процедура СообщитьПользователю(ТекстСообщенияПользователю) Экспорт
-
- Сообщение = Новый СообщениеПользователю;
- Сообщение.Текст = СокрЛП(ТекстСообщенияПользователю);
- Сообщение.Сообщить();
-
-КонецПроцедуры
-
-Функция СтрокаJSON(Значение, ИспользоватьСериализатор = Истина) Экспорт
+// Коллекция1 - Соответствие из Произвольный
+// - Структура
+// Коллекция2 - Соответствие из Произвольный
+// - Структура
+//
+// Возвращаемое значение:
+// Структура - Результат объединения двух коллекций
+//
+Функция ОбъединитьВСтруктуру(Знач Коллекция1, Коллекция2) Экспорт
-#Если ВебКлиент Тогда
- ВызватьИсключение МетодНеДоступен("ЮТОбщий.СтрокаJSON");
-#Иначе
- ЗаписьJSON = Новый ЗаписьJSON();
- ЗаписьJSON.УстановитьСтроку();
- Если ИспользоватьСериализатор Тогда
- СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Значение);
- Иначе
- ЗаписатьJSON(ЗаписьJSON, Значение);
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ОбъединитьВСтруктуру", "ЮТКоллекции.ДополнитьСтруктуру", "24.03");
+ Если ТипЗнч(Коллекция1) <> Тип("Структура") Тогда
+ Коллекция1 = ЮТКоллекции.СкопироватьСтруктуру(Коллекция1);
КонецЕсли;
- Возврат ЗаписьJSON.Закрыть();
-#КонецЕсли
-
-КонецФункции // СтрокаJSON
-
-Функция ПредставлениеЗначения(Значение) Экспорт
+ ЮТКоллекции.ДополнитьСтруктуру(Коллекция1, Коллекция2);
- Попытка
- Возврат СтрокаJSON(Значение);
- Исключение
- Возврат Строка(Значение);
- КонецПопытки;
+ //@skip-check constructor-function-return-section
+ Возврат Коллекция1;
КонецФункции
-Функция ПредставлениеТипа(Тип) Экспорт
+// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьРекурсивно
+// Создает копию экземпляра указанного объекта.
+// Примечание:
+// Функцию нельзя использовать для объектных типов (СправочникОбъект, ДокументОбъект и т.п.).
+//
+// Параметры:
+// Источник - Произвольный - объект, который необходимо скопировать.
+//
+// Возвращаемое значение:
+// Произвольный - копия объекта, переданного в параметре Источник.
+//
+Функция СкопироватьРекурсивно(Источник) Экспорт
- Возврат ЮТТипыДанныхСлужебный.ПредставлениеТипа(Тип);
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьРекурсивно", "ЮТКоллекции.СкопироватьРекурсивно", "24.03");
+ Возврат ЮТКоллекции.СкопироватьРекурсивно(Источник);
КонецФункции
-Функция МетодНеДоступен(ИмяМетода, ИмяКонтекста = "веб-клиенте") Экспорт
+// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьСтруктуру
+// Создает копию значения типа Структура
+//
+// Параметры:
+// Источник - Структура - копируемая структура
+//
+// Возвращаемое значение:
+// Структура - копия исходной структуры.
+//
+Функция СкопироватьСтруктуру(Источник) Экспорт
- Возврат СтрШаблон("Метод `%1` не доступен в/на %2", ИмяМетода, ИмяКонтекста);
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСтруктуру", "ЮТКоллекции.СкопироватьСтруктуру", "24.03");
+ Возврат ЮТКоллекции.СкопироватьСтруктуру(Источник);
КонецФункции
-// Параметры записи объекта
-//
+// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьСоответствие
+// Создает копию значения типа Соответствие.
+//
+// Параметры:
+// Источник - Соответствие из Произвольный - соответствие, копию которого необходимо получить.
+//
// Возвращаемое значение:
-// Структура - Параметры записи:
-// * ОбменДаннымиЗагрузка - Булево
-// * ДополнительныеСвойства - Структура
-// * РежимЗаписи - РежимЗаписиДокумента
-// - Неопределено
-Функция ПараметрыЗаписи() Экспорт
-
- ПараметрыЗаписи = Новый Структура();
- ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь);
- ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура);
- ПараметрыЗаписи.Вставить("РежимЗаписи", Неопределено);
+// Соответствие Из Произвольный - копия исходного соответствия.
+//
+Функция СкопироватьСоответствие(Источник) Экспорт
- Возврат ПараметрыЗаписи;
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСоответствие", "ЮТКоллекции.СкопироватьСоответствие", "24.03");
+ Возврат ЮТКоллекции.СкопироватьСоответствие(Источник);
КонецФункции
-// Описание типов любая ссылка.
-//
+// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьМассив
+// Создает копию значения типа Массив.
+//
+// Параметры:
+// Источник - Массив Из Произвольный - массив, копию которого необходимо получить
+//
// Возвращаемое значение:
-// ОписаниеТипов - Описание типов любая ссылка
-Функция ОписаниеТиповЛюбаяСсылка() Экспорт
+// Массив Из Произвольный - копия исходного массива.
+//
+Функция СкопироватьМассив(Источник) Экспорт
- Возврат ЮТПовторногоИспользования.ОписаниеТиповЛюбаяСсылка();
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьМассив", "ЮТКоллекции.СкопироватьМассив", "24.03");
+ Возврат ЮТКоллекции.СкопироватьМассив(Источник);
КонецФункции
-Процедура ВызовУстаревшегоМетода(УстаревшийМетод, РекомендуемыйМетод = Неопределено) Экспорт
-
- Сообщение = СтрШаблон("Используется устаревший метод '%1'. В следующий релизах метод будет удален", УстаревшийМетод);
-
- Если ЗначениеЗаполнено(РекомендуемыйМетод) Тогда
- Сообщение = СтрШаблон("%1. Рекомендуется использовать '%2'", Сообщение, РекомендуемыйМетод);
- КонецЕсли;
+// Устарела. Метод перенесен в см. ЮТКоллекции.СкопироватьСписокЗначений
+// Создает копию значения типа СписокЗначений.
+//
+// Параметры:
+// Источник - СписокЗначений Из Произвольный - список значений, копию которого необходимо получить
+//
+// Возвращаемое значение:
+// СписокЗначений Из Произвольный - копия исходного списка значений
+//
+Функция СкопироватьСписокЗначений(Источник) Экспорт
- СообщитьПользователю(Сообщение);
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.СкопироватьСписокЗначений", "ЮТКоллекции.СкопироватьСписокЗначений", "24.03");
+ Возврат ЮТКоллекции.СкопироватьСписокЗначений(Источник);
-КонецПроцедуры
+КонецФункции
-Функция НеподдерживаемыйПараметрМетода(ИмяМетода, ЗначениеПараметра) Экспорт
+// Устарела. Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения
+//
+// Параметры:
+// Коллекция - Произвольный
+// ИмяРеквизита - Строка
+//
+// Возвращаемое значение:
+// Массив из Произвольный - Выгрузить значения
+Функция ВыгрузитьЗначения(Коллекция, ИмяРеквизита) Экспорт
- Возврат СтрШаблон("Неподдерживаемый параметр метода `%1` `%2`(%3)", ИмяМетода, ЗначениеПараметра, ТипЗнч(ЗначениеПараметра));
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВыгрузитьЗначения", "ЮТКоллекции.ВыгрузитьЗначения", "24.03");
+ Возврат ЮТКоллекции.ВыгрузитьЗначения(Коллекция, ИмяРеквизита);
КонецФункции
-Функция УстановленБезопасныйРежим() Экспорт
+// Устарела. Метод перенесен в см. ЮТКоллекции.ВыгрузитьЗначения
+//
+// Параметры:
+// Коллекция1 - Массив из Произвольный
+// Коллекция2 - Массив из Произвольный
+//
+// Возвращаемое значение:
+// Массив из Произвольный - Пересечение массивов
+Функция ПересечениеМассивов(Коллекция1, Коллекция2) Экспорт
- Возврат ЮТОбщийВызовСервера.УстановленБезопасныйРежим();
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ПересечениеМассивов", "ЮТКоллекции.ПересечениеМассивов", "24.03");
+ Возврат ЮТКоллекции.ПересечениеМассивов(Коллекция1, Коллекция2);
КонецФункции
-Функция МестноеВремяПоВременнойМетке(Метка) Экспорт
+// Устарела. Метод перенесен в см. ЮТКоллекции.ЗначениеВМассиве
+// Создает массив с переданными значениями
+//
+// Параметры:
+// Значение - Произвольный
+// Значение2 - Произвольный
+// Значение3 - Произвольный
+// Значение4 - Произвольный
+// Значение5 - Произвольный
+// Значение6 - Произвольный
+// Значение7 - Произвольный
+// Значение8 - Произвольный
+// Значение9 - Произвольный
+// Значение10 - Произвольный
+//
+// Возвращаемое значение:
+// Массив из Произвольный
+//@skip-check method-too-many-params
+Функция ЗначениеВМассиве(Значение,
+ Значение2 = "_!%*",
+ Значение3 = "_!%*",
+ Значение4 = "_!%*",
+ Значение5 = "_!%*",
+ Значение6 = "_!%*",
+ Значение7 = "_!%*",
+ Значение8 = "_!%*",
+ Значение9 = "_!%*",
+ Значение10 = "_!%*") Экспорт
- Если ЗначениеЗаполнено(Метка) Тогда
- Возврат МестноеВремя('00010101' + Метка / 1000);
- Иначе
- Возврат Неопределено;
- КонецЕсли;
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ЗначениеВМассиве", "ЮТКоллекции.ЗначениеВМассиве", "24.03");
+ Возврат ЮТКоллекции.ЗначениеВМассиве(Значение, Значение2, Значение3, Значение4, Значение5, Значение6, Значение7, Значение8, Значение9, Значение10);
КонецФункции
-Функция ПродолжительностьВСекундах(Продолжительность) Экспорт
+// Устарела. Метод перенесен в см. ЮТКоллекции.ДополнитьМассив
+//
+// Параметры:
+// Приемник - Массив из Произвольный
+// Источник - Массив из Произвольный
+Процедура ДополнитьМассив(Приемник, Источник) Экспорт
- Возврат Продолжительность / 1000;
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ДополнитьМассив", "ЮТКоллекции.ДополнитьМассив", "24.03");
+ ЮТКоллекции.ДополнитьМассив(Приемник, Источник);
-КонецФункции
+КонецПроцедуры
-Функция Модуль(ИмяМодуля) Экспорт
+// Устарела. Метод перенесен в см. ЮТКоллекции.ВСоответствие
+// Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
+//
+// Параметры:
+// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки.
+// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
+// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
+// Возвращаемое значение:
+// Соответствие Из Произвольный - полученное соответствие.
+Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
- Возврат ВычислитьБезопасно(ИмяМодуля);
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВСоответствие", "ЮТКоллекции.ВСоответствие", "24.03");
+ Возврат ЮТКоллекции.ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения);
КонецФункции
-Функция Менеджер(Знач Менеджер) Экспорт
+// Устарела. Метод перенесен в см. ЮТКоллекции.ВСтруктуру
+// Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
+//
+// Параметры:
+// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки.
+// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
+// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
+// Возвращаемое значение:
+// Структура Из Произвольный - полученная структура.
+Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
-#Если Сервер Тогда
- Возврат ЮТОбщийВызовСервера.Менеджер(Менеджер);
-#Иначе
- ВызватьИсключение МетодНеДоступен("ЮТОбщий.Менеджер", "клиенте");
-#КонецЕсли
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВСтруктуру", "ЮТКоллекции.ВСтруктуру", "24.03");
+ Возврат ЮТКоллекции.ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения);
КонецФункции
-Функция ТипСтруктуры(Структура) Экспорт
+// Устарела. МетодМодуляСуществует
+// Проверяет существование публичного (экспортного) метода у модуля
+//
+// Параметры:
+// ИмяМодуля - Строка - Имя модуля, метод которого нужно поискать
+// ИмяМетода - Строка - Имя метода, который ищем
+// КоличествоПараметров - Число - Количество параметров метода, увы это никак не влияет на проверку
+// Кешировать - Булево - Признак кеширования результата проверки
+//
+// Возвращаемое значение:
+// Булево - Метод найден
+Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров = 0, Кешировать = Истина) Экспорт
- Возврат ЗначениеСтруктуры(Структура, "__type__");
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.МетодМодуляСуществует", Неопределено, "24.03");
+ Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, Кешировать);
КонецФункции
-Функция ЭтаСтруктураИмеетТип(Структура, ИмяТипа) Экспорт
+// Устарела. Проверяет существование публичного (экспортного) метода у объекта
+//
+// Параметры:
+// Объект - Произвольный - Объект, метод которого нужно поискать
+// ИмяМетода - Строка - Имя метода, который ищем
+//
+// Возвращаемое значение:
+// Булево - Метод найден
+Функция МетодОбъектаСуществует(Объект, ИмяМетода) Экспорт
- Возврат ТипСтруктуры(Структура) = ИмяТипа;
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.МетодОбъектаСуществует", Неопределено, "24.03");
+ Возврат ЮТМетодыСлужебный.МетодОбъектаСуществует(Объект, ИмяМетода);
КонецФункции
-Процедура УказатьТипСтруктуры(Структура, ИмяТипа) Экспорт
+// Устарела.
+Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено, Объект = Неопределено) Экспорт
- Структура.Вставить("__type__", ИмяТипа);
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВыполнитьМетод", Неопределено, "24.03");
+ Возврат ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, Параметры, Объект);
-КонецПроцедуры
+КонецФункции
-// Преостанавливает поток выполнения на указанное количество секунд
-//
-// Параметры:
-// Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение
-Процедура Пауза(Время) Экспорт
+// Устарела.
+Функция ВычислитьБезопасно(Выражение) Экспорт
- Задержка = Цел(1000 * Время);
- Компонента = ЮТКомпоненты.Пауза();
-#Если Сервер Тогда
- Компонента.Ожидать(Задержка);
-#Иначе
- Если ЮТМетаданные.РазрешеныСинхронныеВызовы() Тогда
- Компонента.Ожидать(Задержка);
- Иначе
- ВызватьИсключение "Пауза не работает на клиенте при отключенных синхронных вызовах";
- КонецЕсли;
-#КонецЕсли
-
-КонецПроцедуры
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ВычислитьБезопасно", Неопределено, "24.03");
+ Возврат ЮТМетодыСлужебный.ВычислитьБезопасно(Выражение);
+
+КонецФункции
-// Выводит сообщение в консоль (stdout) приложения
-//
-// Параметры:
-// Сообщение - Строка - Выводимое сообщение
-Процедура ВывестиВКонсоль(Сообщение) Экспорт
+// Устарела.
+Функция ПредставлениеТипа(Тип) Экспорт
- Компонента = ЮТКомпоненты.Консоль();
-#Если Сервер Тогда
- Компонента.Напечатать(Сообщение);
-#Иначе
- Если ЮТМетаданные.РазрешеныСинхронныеВызовы() Тогда
- Компонента.Напечатать(Сообщение);
- Иначе
- Компонента.НачатьВызовНапечатать(ЮТАсинхроннаяОбработкаСлужебныйКлиент.НовыйПустойОбработчик(3), Сообщение);
- КонецЕсли;
-#КонецЕсли
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ПредставлениеТипа", Неопределено, "24.03");
+ Возврат ЮТТипыДанныхСлужебный.ПредставлениеТипа(Тип);
-КонецПроцедуры
+КонецФункции
-// Возвращяет макет
-//
-// Параметры:
-// ИмяМакета - Строка - Возможные значения
-// * Общий макет, например, ОбщийМакет.ЮТМетаданные
-// * Макет объекта метаданных, например, Справочник.Товары.ПечатнаяФорма
-// * Область макета, например, Справочник.Товары.ПечатнаяФорма.Шапка, ОбщийМакет.ЮТМетаданные.Заголовок
-//
+// Устарела. Описание типов любая ссылка.
+//
// Возвращаемое значение:
-// ТабличныйДокумент, ТекстовыйДокумент, ДвоичныеДанные - Макет или его область
-Функция Макет(ИмяМакета) Экспорт
+// ОписаниеТипов - Описание типов любая ссылка
+Функция ОписаниеТиповЛюбаяСсылка() Экспорт
- Возврат ЮТОбщийВызовСервера.Макет(ИмяМакета);
+ ЮТМетодыСлужебный.ВызовУстаревшегоМетода("ЮТОбщий.ОписаниеТиповЛюбаяСсылка", Неопределено, "24.03");
+ Возврат ЮТТипыДанныхСлужебный.ОписаниеТиповЛюбаяСсылка();
КонецФункции
#КонецОбласти
-#Область СлужебныеПроцедурыИФункции
+#КонецОбласти
-Функция ДобавитьКлючИЗначениеВКоллекцию(КоллекцияРезультат, Коллекция)
-
- Для Каждого Элемент Из Коллекция Цикл
-
- КоллекцияРезультат.Вставить(Элемент.Ключ, Элемент.Значение);
-
- КонецЦикла;
-
- Возврат КоллекцияРезультат;
-
-КонецФункции
+#Область СлужебныеПроцедурыИФункции
Функция ПредставлениеОбъекта(Объект, Знач Уровень = 1, ПредставлениеОбъекта = Неопределено)
@@ -1003,10 +754,10 @@
ПредставлениеТипа = ТипОбъекта;
Если ТипОбъекта = Тип("Структура") ИЛИ ТипОбъекта = Тип("Соответствие") Тогда
- СформироватьСтрокуСимволов(" ", Уровень * 4);
+ ЮТСтроки.СтрокаСимволов(" ", Уровень * 4);
Шаблон = "%2:
- |%1";
- Представление = СформироватьСтрокуСимволов(" ", Уровень * 4) + ПредставлениеСтруктуры(Объект, Уровень);
+ |%1";
+ Представление = ЮТСтроки.СтрокаСимволов(" ", Уровень * 4) + ПредставлениеСтруктуры(Объект, Уровень);
ИначеЕсли ТипОбъекта = Тип("Массив") Тогда
@@ -1056,7 +807,7 @@
КонецЦикла;
- Возврат СтрСоединить(Строки, Символы.ПС + СформироватьСтрокуСимволов(" ", Уровень * 4));
+ Возврат СтрСоединить(Строки, Символы.ПС + ЮТСтроки.СтрокаСимволов(" ", Уровень * 4));
КонецФункции
@@ -1096,7 +847,7 @@
Функция СодержитИндекс(ИмяСвойства)
- Возврат СтрНайти(ИмяСвойства, "[") > 0 И СтрЗаканчиваетсяНа(ИмяСвойства, "]") ;
+ Возврат СтрНайти(ИмяСвойства, "[") > 0 И СтрЗаканчиваетсяНа(ИмяСвойства, "]");
КонецФункции
@@ -1121,30 +872,19 @@
КонецПроцедуры
-Функция СтрокаПараметровМетода(Параметры, ИмяПеременнойСПараметрами)
-
- СписокПараметров = Новый Массив();
+Функция МножительПериода(ТипИнтервала)
- Для Инд = 0 По Параметры.ВГраница() Цикл
-
- Если Параметры[Инд] = Мокито.ПараметрПоУмолчанию() Тогда
- СписокПараметров.Добавить("");
- Иначе
- СписокПараметров.Добавить(СтрШаблон("%1[%2]", ИмяПеременнойСПараметрами, Инд));
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат СтрСоединить(СписокПараметров, ", ");
+ Множители = ЮТСлужебныйПовторногоИспользования.МножителиИнтервалов();
+ Возврат Множители[ТипИнтервала];
КонецФункции
-Функция ДобавитьНеПоследнее(Значения, Значение, ФлагОкончания = "_!%*")
- Если Значение <> ФлагОкончания Тогда
- Значения.Добавить(Значение);
- Возврат Истина;
- КонецЕсли;
- Возврат Ложь;
+Функция ЭтоМесяц(ТипИнтервала)
+
+ Возврат СтрСравнить(ТипИнтервала, "месяц") = 0
+ ИЛИ СтрСравнить(ТипИнтервала, "месяца") = 0
+ ИЛИ СтрСравнить(ТипИнтервала, "месяцев") = 0;
+
КонецФункции
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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"
similarity index 93%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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"
index d3cd52c9d..93863b778 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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"
@@ -41,7 +41,8 @@
Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер);
Если Описание = Неопределено Тогда
- ВызватьИсключение "Несуществующий объект метаданных, либо " + ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер);
+ ВызватьИсключение "Несуществующий объект метаданных, либо " +
+ ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер);
КонецЕсли;
ИмяТипа = "";
@@ -105,13 +106,13 @@
Функция ЭтоАнглийскийВстроенныйЯзык() Экспорт
- Возврат ЮТМетаданныеПовтИсп.ВариантВстроенногоЯзыка() = "English";
+ Возврат ЮТМетаданныеСлужебныйПовтИсп.ВариантВстроенногоЯзыка() = "English";
КонецФункции
Функция ЭтоРусскийВстроенныйЯзык() Экспорт
- Возврат ЮТМетаданныеПовтИсп.ВариантВстроенногоЯзыка() = "Русский";
+ Возврат ЮТМетаданныеСлужебныйПовтИсп.ВариантВстроенногоЯзыка() = "Русский";
КонецФункции
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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"
similarity index 84%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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"
index 8d98953f6..ffb866b9b 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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\236\320\261\321\211\320\270\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"
@@ -1,6 +1,6 @@
- ЮТОбщийВызовСервера
+ ЮТОбщийСлужебныйВызовСервера
ru
Общий (вызов сервера)
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.suppress"
deleted file mode 100644
index 59c6e1d27..000000000
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/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"
similarity index 95%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl"
rename to "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 04801a02b..faad6baad 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/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"
@@ -20,9 +20,9 @@
Функция ПараметрыГенерацииОтчета() Экспорт
- Параметры = ЮТФабрика.ПараметрыГенератораОтчета();
+ Параметры = ЮТФабрикаСлужебный.ПараметрыГенератораОтчета();
- ОписаниеФормата = ЮТФабрика.ОписаниеФорматаОтчета("allure", "Allure 2 (json)");
+ ОписаниеФормата = ЮТФабрикаСлужебный.ОписаниеФорматаОтчета("allure", "Allure 2 (json)");
ОписаниеФормата.ЗаписьВКаталог = Истина;
ОписаниеФормата.СамостоятельнаяЗаписьОтчета = Истина;
Параметры.Форматы.Вставить(ОписаниеФормата.Идентификатор, ОписаниеФормата);
@@ -130,8 +130,8 @@
Для Каждого ОписаниеОшибки Из РезультатТеста.Ошибки Цикл
- Описание.statusDetails.message = ЮТОбщий.ДобавитьСтроку(Описание.statusDetails.message, ОписаниеОшибки.Сообщение, Символы.ПС);
- Описание.statusDetails.trace = ЮТОбщий.ДобавитьСтроку(Описание.statusDetails.trace, ОписаниеОшибки.Стек, Символы.ПС);
+ Описание.statusDetails.message = ЮТСтроки.ДобавитьСтроку(Описание.statusDetails.message, ОписаниеОшибки.Сообщение, Символы.ПС);
+ Описание.statusDetails.trace = ЮТСтроки.ДобавитьСтроку(Описание.statusDetails.trace, ОписаниеОшибки.Стек, Символы.ПС);
КонецЦикла;
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" "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/\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.mdo"
similarity index 87%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo"
rename to "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/\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.mdo"
index 5873099b4..39707d092 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТОтчетAllure
+ ЮТОтчетAllureСлужебный
ru
Отчет allure
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.suppress"
deleted file mode 100644
index 9346e2632..000000000
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
similarity index 82%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/Module.bsl"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
index 007fe6834..d2d5d568b 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
@@ -20,9 +20,9 @@
Функция ПараметрыГенерацииОтчета() Экспорт
- Параметры = ЮТФабрика.ПараметрыГенератораОтчета();
+ Параметры = ЮТФабрикаСлужебный.ПараметрыГенератораОтчета();
- ОписаниеФормата = ЮТФабрика.ОписаниеФорматаОтчета("dumpjson", "Дамп результата тестирования в json");
+ ОписаниеФормата = ЮТФабрикаСлужебный.ОписаниеФорматаОтчета("dumpjson", "Дамп результата тестирования в json");
ОписаниеФормата.ИмяФайлаПоУмолчанию = "report.json";
ОписаниеФормата.ФильтрВыбораФайла = "Дамп результата тестирования (*.json)|*.json";
Параметры.Форматы.Вставить(ОписаниеФормата.Идентификатор, ОписаниеФормата);
@@ -34,8 +34,8 @@
// Формирует отчет в формате JSON
//
// Параметры:
-// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
-// Формат - см. ЮТФабрика.ОписаниеФорматаОтчета
+// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
+// Формат - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета
// Возвращаемое значение:
// ДвоичныеДанные - Данные отчета
Функция ДанныеОтчета(РезультатВыполнения, Формат) Экспорт
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\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\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
similarity index 88%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\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\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
index c2f49de1b..db11fb798 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\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\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
@@ -1,6 +1,6 @@
- ЮТОтчетJSON
+ ЮТОтчетJSONСлужебный
ru
Отчет JSON
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/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"
similarity index 95%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/Module.bsl"
rename to "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 85866670e..9c9c40a99 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/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"
@@ -20,9 +20,9 @@
Функция ПараметрыГенерацииОтчета() Экспорт
- Параметры = ЮТФабрика.ПараметрыГенератораОтчета();
+ Параметры = ЮТФабрикаСлужебный.ПараметрыГенератораОтчета();
- ОписаниеФормата = ЮТФабрика.ОписаниеФорматаОтчета("jUnit", "JUnit");
+ ОписаниеФормата = ЮТФабрикаСлужебный.ОписаниеФорматаОтчета("jUnit", "JUnit");
ОписаниеФормата.ИмяФайлаПоУмолчанию = "junit.xml";
ОписаниеФормата.ФильтрВыбораФайла = "jUnit(*.xml)|*.xml";
Параметры.Форматы.Вставить(ОписаниеФормата.Идентификатор, ОписаниеФормата);
@@ -34,8 +34,8 @@
// Формирует отчет в формате jUnit
//
// Параметры:
-// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
-// Формат - см. ЮТФабрика.ОписаниеФорматаОтчета
+// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
+// Формат - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета
//
// Возвращаемое значение:
// ДвоичныеДанные - Данные отчета
@@ -53,7 +53,7 @@
// Формирует отчет (xml-файл) и возвращает его в виде двоичных данных
//
// Параметры:
-// РезультатТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
+// РезультатТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
// Возвращаемое значение:
// ДвоичныеДанные - полученный отчет
Функция СформироватьОтчетОТестировании(РезультатТестирования)
@@ -104,7 +104,7 @@
Для Каждого ОписаниеОшибки Из РезультатТеста.Ошибки Цикл
- Статус = ЮТРегистрацияОшибок.СтатусОшибки(ОписаниеОшибки.ТипОшибки);
+ Статус = ЮТРегистрацияОшибокСлужебный.СтатусОшибки(ОписаниеОшибки.ТипОшибки);
ИмяУзла = Неопределено;
ЗаписатьЗначения = Ложь;
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit.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"
similarity index 87%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit.mdo"
rename to "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 3605a0dfa..967ce71fc 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit.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"
@@ -1,6 +1,6 @@
- ЮТОтчетJUnit
+ ЮТОтчетJUnitСлужебный
ru
Отчет jUnit
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/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"
similarity index 94%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl"
rename to "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 e58cf3529..c35479552 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/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"
@@ -21,7 +21,7 @@
// СформироватьОтчет
// Формирует отчет о результатах тестирования по заданным параметрам
// Параметры:
-// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
+// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
// ПараметрыЗапуска - Структура - Параметры запуска, см. ЮТФабрика.ПараметрыЗапуска
// Обработчик - ОписаниеОповещения
Процедура СформироватьОтчет(РезультатВыполнения, ПараметрыЗапуска, Обработчик) Экспорт
@@ -56,16 +56,16 @@
// Возвращаемое значение:
// Структура - Поддерживаемые форматы отчетов
// + Ключ - Идентификатор формата
-// + Значение - см. ЮТФабрика.ОписаниеФорматаОтчета
+// + Значение - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета
Функция ПоддерживаемыеФорматыОтчетов() Экспорт
- Модули = ЮТРасширения.ГенераторыОтчетов();
+ Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов();
Форматы = Новый Структура;
Для Каждого Модуль Из Модули Цикл
Параметры = Модуль.ПараметрыГенерацииОтчета();
- ЮТОбщий.ОбъединитьВСтруктуру(Форматы, Параметры.Форматы);
+ ЮТКоллекции.ДополнитьСтруктуру(Форматы, Параметры.Форматы);
КонецЦикла;
@@ -106,7 +106,7 @@
Функция МодульФормирования(Формат)
- Модули = ЮТРасширения.ГенераторыОтчетов();
+ Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов();
Для Каждого Модуль Из Модули Цикл
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" "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/\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.mdo"
similarity index 88%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo"
rename to "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/\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.mdo"
index 45a1b3073..8df729cc0 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТОтчет
+ ЮТОтчетСлужебный
ru
Отчет
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\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.suppress" "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\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.suppress"
deleted file mode 100644
index 8a6cb292f..000000000
--- "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\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.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
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/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"
similarity index 91%
rename from "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/Module.bsl"
rename to "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 e4746bd37..b0b7c7e82 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/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"
@@ -34,7 +34,7 @@
Исключение
- ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуИнициализацииДвижка(ИнформацияОбОшибке(), "Ошибка чтения параметров запуска");
+ ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуИнициализацииДвижка(ИнформацияОбОшибке(), "Ошибка чтения параметров запуска");
Параметры = ЮТФабрика.ПараметрыЗапуска();
КонецПопытки;
@@ -73,7 +73,7 @@
Возврат Параметры;
КонецЕсли;
- ПарыКлючЗначение = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(ПараметрыЗапускаСтрокой, ";");
+ ПарыКлючЗначение = ЮТСтроки.РазделитьСтроку(ПараметрыЗапускаСтрокой, ";");
ПараметрыЗапуска = Новый Структура;
@@ -83,7 +83,7 @@
Продолжить;
КонецЕсли;
- КлючЗначение = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Пара, "=");
+ КлючЗначение = ЮТСтроки.РазделитьСтроку(Пара, "=");
Если КлючЗначение.Количество() = 1 Тогда
ПараметрыЗапуска.Вставить(КлючЗначение[0], Истина);
@@ -93,7 +93,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\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.mdo" "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/\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.mdo"
similarity index 88%
rename from "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\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.mdo"
rename to "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/\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.mdo"
index 8f24fd55c..abb79f6ca 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\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.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТПараметрыЗапуска
+ ЮТПараметрыЗапускаСлужебный
ru
Параметры
diff --git "a/exts/yaxunit/src/CommonModules/\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/exts/yaxunit/src/CommonModules/\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 94f81be79..63270c715 100644
--- "a/exts/yaxunit/src/CommonModules/\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/exts/yaxunit/src/CommonModules/\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.
@@ -31,15 +31,15 @@
Функция НомерСчета(БИК, КодВалюты = "810", ЮрЛицо = Истина) Экспорт
Если СтрДлина(КодВалюты) <> 3 Тогда
- ВызватьИсключение "Длина кода валюты должна быть равна 3";
+ ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("НомерСчета", "Длина кода валюты должна быть равна 3");
КонецЕсли;
-
+
БалансовыйСчет = ?(ЮрЛицо, "40702", "40802");
НомерСчетаВБанке = ЮТТестовыеДанные.СлучайнаяСтрока(11, , "0123456789");
-
+
ЧислоДляРасчетаКонтрольнойСуммы = Прав(БИК, 3) + БалансовыйСчет + КодВалюты + "0" + НомерСчетаВБанке;
Весы = ВесовыеКоэффициентаДляРасчетаКонтрольнойСуммыСчета();
-
+
КонтрольнаяСумма = 0;
Для Индекс = 0 По 22 Цикл
КонтрольнаяСумма =
@@ -47,9 +47,9 @@
+ Число(Сред(ЧислоДляРасчетаКонтрольнойСуммы, Индекс + 1, 1)) * Число(Весы.Получить(Индекс))
;
КонецЦикла;
-
+
КонтрольноеЧисло = ((КонтрольнаяСумма % 10) * 3) % 10;
-
+
Возврат СтрШаблон(
"%1%2%3%4",
БалансовыйСчет,
@@ -57,7 +57,7 @@
КонтрольноеЧисло,
НомерСчетаВБанке
);
-
+
КонецФункции
// Формирует случайный валидный БИК банка
diff --git "a/exts/yaxunit/src/CommonModules/\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\233\321\216\320\264\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\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\233\321\216\320\264\320\270/Module.bsl"
index 0db6cf961..95dafc0f4 100644
--- "a/exts/yaxunit/src/CommonModules/\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\233\321\216\320\264\320\270/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\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\233\321\216\320\264\320\270/Module.bsl"
@@ -196,7 +196,7 @@
Возврат Пол;
КонецЕсли;
- Варианты = ЮТОбщий.ВыгрузитьЗначения(ПолЧеловека(), "Значение");
+ Варианты = ЮТКоллекции.ВыгрузитьЗначения(ПолЧеловека(), "Значение");
Возврат ЮТТестовыеДанные.СлучайноеЗначениеИзСписка(Варианты);
КонецФункции
diff --git "a/exts/yaxunit/src/CommonModules/\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\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\321\200\320\260\320\266\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 233a83712..c4fac2939 100644
--- "a/exts/yaxunit/src/CommonModules/\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\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\321\200\320\260\320\266\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"
@@ -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.
@@ -29,7 +29,7 @@
// ФиксированныйМассив из Строка
Функция Словарь(ИмяРеализации, ИмяСловаря, Знач КодЛокализации = Неопределено) Экспорт
КодЛокализации = ?(КодЛокализации = Неопределено, ЮТПодражатель.Локализация(), КодЛокализации);
- Возврат ЮТПодражательПовтИсп.Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации);
+ Возврат ЮТПодражательСлужебныйПовтИсп.Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации);
КонецФункции
// Случайное значение из словаря.
@@ -49,7 +49,7 @@
// см. НовыйКонтекст
Функция Контекст() Экспорт
//@skip-check constructor-function-return-section
- Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
+ Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста());
КонецФункции
// Инициализирует подражатель
@@ -58,7 +58,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция Инициализировать() Экспорт
Если Контекст() = Неопределено Тогда
- ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
КонецЕсли;
Возврат ЮТПодражатель;
КонецФункции
diff --git "a/exts/yaxunit/src/CommonModules/\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\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\321\200\320\260\320\266\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\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"
similarity index 96%
rename from "exts/yaxunit/src/CommonModules/\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\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"
rename to "exts/yaxunit/src/CommonModules/\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\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 4f451296b..fae40b312 100644
--- "a/exts/yaxunit/src/CommonModules/\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\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\321\200\320\260\320\266\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\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"
@@ -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.
diff --git "a/exts/yaxunit/src/CommonModules/\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\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\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\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\321\200\320\260\320\266\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\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\321\200\320\260\320\266\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\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"
similarity index 80%
rename from "exts/yaxunit/src/CommonModules/\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\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\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\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"
rename to "exts/yaxunit/src/CommonModules/\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\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\321\200\320\260\320\266\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\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"
index 69798e1ec..530b3b432 100644
--- "a/exts/yaxunit/src/CommonModules/\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\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\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214\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\321\200\320\260\320\266\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\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\321\200\320\260\320\266\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\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"
@@ -1,6 +1,6 @@
- ЮТПодражательВызовСервера
+ ЮТПодражательСлужебныйВызовСервера
ru
Подражатель вызов сервера
diff --git "a/exts/yaxunit/src/CommonModules/\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\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\237\320\276\320\264\321\200\320\260\320\266\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\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl"
similarity index 91%
rename from "exts/yaxunit/src/CommonModules/\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\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl"
rename to "exts/yaxunit/src/CommonModules/\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\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 ffdcc80c8..ff5c18a18 100644
--- "a/exts/yaxunit/src/CommonModules/\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\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\237\320\276\320\264\321\200\320\260\320\266\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\320\237\320\276\320\262\321\202\320\230\321\201\320\277/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.
@@ -29,7 +29,7 @@
// ФиксированныйМассив из Строка
Функция Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации) Экспорт
Кодификатор = КодификаторСловаря(ИмяРеализации, ИмяСловаря, КодЛокализации);
- Возврат Новый ФиксированныйМассив(ЮТПодражательВызовСервера.ДанныеСловаря(Кодификатор));
+ Возврат Новый ФиксированныйМассив(ЮТПодражательСлужебныйВызовСервера.ДанныеСловаря(Кодификатор));
КонецФункции
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\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\237\320\276\320\262\321\202\320\230\321\201\320\277/\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\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo" "b/exts/yaxunit/src/CommonModules/\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\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/\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\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.mdo"
similarity index 87%
rename from "exts/yaxunit/src/CommonModules/\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\237\320\276\320\262\321\202\320\230\321\201\320\277/\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\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo"
rename to "exts/yaxunit/src/CommonModules/\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\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/\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\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.mdo"
index 58d6d844b..47a95dc1a 100644
--- "a/exts/yaxunit/src/CommonModules/\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\237\320\276\320\262\321\202\320\230\321\201\320\277/\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\237\320\276\320\262\321\202\320\230\321\201\320\277.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\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\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/\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\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.mdo"
@@ -1,6 +1,6 @@
- ЮТПодражательПовтИсп
+ ЮТПодражательСлужебныйПовтИсп
ru
Подражатель повт исп
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl"
index 025636fb7..d6721454f 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl"
@@ -41,6 +41,22 @@
КонецФункции
+// Устанавливает имя свойства, все последующие проверки будут относится к нему.
+// Это алиас для см. Реквизит
+//
+// Параметры:
+// ИмяСвойства - Строка - Имя реквизита
+// - Число - Индекс коллекции
+// - Произвольный - Ключ соответствия
+//
+// Возвращаемое значение:
+// ОбщийМодуль - Этот модуль для замыкания
+Функция Свойство(ИмяСвойства) Экспорт
+
+ Возврат Реквизит(ИмяСвойства);
+
+КонецФункции
+
// Добавляет предикат, проверяющий равенство объекта (свойства) указанному значению
//
// Параметры:
@@ -295,6 +311,21 @@
КонецФункции
+// Добавляет условие, что проверяемое значение (или значение его свойства) входит в список значений
+//
+// Параметры:
+// Значения - Массив из Произвольный - Значения для проверки
+// - СписокЗначений из Произвольный - Значения для проверки
+//
+// Возвращаемое значение:
+// ОбщийМодуль - Этот модуль для замыкания
+Функция ВСписке(Значения) Экспорт
+
+ ДобавитьПредикат(Выражения().ВСписке, Значения);
+ Возврат ЮТПредикаты;
+
+КонецФункции
+
// Возвращает набор сформированных утверждений.
//
// Рекомендуется использовать этот метод, если планируется отложенная проверка предикатов. Например, вы хотите сформировать два набору предикатов
@@ -306,7 +337,7 @@
// Массив из см. ЮТФабрика.ВыражениеПредиката - Набор предикатов
Функция Получить() Экспорт
- Возврат ЮТОбщий.СкопироватьМассив(Контекст().Предикаты);
+ Возврат ЮТКоллекции.СкопироватьМассив(Контекст().Предикаты);
КонецФункции
@@ -325,7 +356,7 @@
// ОбщийМодуль - Этот модуль для замыкания
Функция Инициализировать(Условия = Неопределено) Экспорт
- ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
Если ЗначениеЗаполнено(Условия) Тогда
Для Каждого Элемент Из Условия Цикл
@@ -358,6 +389,7 @@
Выражения.Вставить("НеСодержит", "НеСодержит");
Выражения.Вставить("СодержитСтрокуПоШаблону", "СодержитСтрокуПоШаблону");
Выражения.Вставить("НеСодержитСтрокуПоШаблону", "НеСодержитСтрокуПоШаблону");
+ Выражения.Вставить("ВСписке", "ВСписке");
Возврат Новый ФиксированнаяСтруктура(Выражения);
@@ -370,7 +402,7 @@
Функция Контекст()
//@skip-check constructor-function-return-section
- Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
+ Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста());
КонецФункции
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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"
similarity index 90%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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 5674c384f..53034b530 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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"
@@ -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.
@@ -19,19 +19,19 @@
#Область СлужебныйПрограммныйИнтерфейс
// Проверить предикат.
-//
+//
// Параметры:
// Значение - Произвольный
// Предикаты - Массив Из см. ЮТФабрика.ВыражениеПредиката
// ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке
// ПараметрыСравнения - Неопределено
// - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры
-//
+//
// Возвращаемое значение:
-// см. ЮТФабрика.ОписаниеРезультатаПроверки
+// см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки
Функция ПроверитьПредикаты(Знач Значение, Знач Предикаты, Знач ПараметрыСообщенийОбОшибке = Неопределено, ПараметрыСравнения = Неопределено) Экспорт
- Результат = ЮТФабрика.ОписаниеРезультатаПроверки();
+ Результат = ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки();
Если ПараметрыСообщенийОбОшибке = Неопределено Тогда
ПараметрыСообщенийОбОшибке = ПараметрыСообщенийОбОшибке();
@@ -40,7 +40,7 @@
Предикаты = НаборПредикатов(Предикаты);
Для Каждого Выражение Из Предикаты Цикл
- ЮТСравнениеКлиентСервер.ПроверитьВыражениеПредиката(Значение, Выражение, Результат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);
+ ЮТСравнениеСлужебныйКлиентСервер.ПроверитьВыражениеПредиката(Значение, Выражение, Результат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);
Если НЕ Результат.Успешно Тогда
Прервать;
КонецЕсли;
@@ -52,12 +52,12 @@
КонецФункции
// Набор предикатов.
-//
+//
// Параметры:
// Предикаты - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений. см. ЮТест.Предикат
// - см. ЮТФабрика.ВыражениеПредиката
// - CommonModule.ЮТПредикаты - Модуль настройки предикатов, см. ЮТест.Предикат
-//
+//
// Возвращаемое значение:
// Массив из см. ЮТФабрика.ВыражениеПредиката - Набор предикатов
Функция НаборПредикатов(Знач Предикаты) Экспорт
@@ -69,9 +69,9 @@
ИначеЕсли ЭтоПредикатМассив(ТипПараметра, Предикаты) Тогда
Результат = Предикаты;
ИначеЕсли ЭтоПредикатСтруктура(ТипПараметра, Предикаты) Тогда
- Результат = ЮТОбщий.ЗначениеВМассиве(Предикаты);
+ Результат = ЮТКоллекции.ЗначениеВМассиве(Предикаты);
Иначе
- ВызватьИсключение "Некорректный параметр метода `ЮТПредикатыКлиентСервер.НаборПредикатов`";
+ ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ЮТПредикатыКлиентСервер.НаборПредикатов");
КонецЕсли;
Возврат Результат;
@@ -79,10 +79,10 @@
КонецФункции
// Это предикат
-//
+//
// Параметры:
// Предикаты - Произвольный - значение, для которого будет определено является ли оно предикатом или нет
-//
+//
// Возвращаемое значение:
// Булево
Функция ЭтоПредикат(Предикаты) Экспорт
@@ -90,8 +90,8 @@
ТипПараметра = ТипЗнч(Предикаты);
Возврат ЭтоПредикатОбщийМодуль(ТипПараметра, Предикаты)
- Или ЭтоПредикатМассив(ТипПараметра, Предикаты)
- Или ЭтоПредикатСтруктура(ТипПараметра, Предикаты);
+ ИЛИ ЭтоПредикатМассив(ТипПараметра, Предикаты)
+ ИЛИ ЭтоПредикатСтруктура(ТипПараметра, Предикаты);
КонецФункции
@@ -142,6 +142,8 @@
Шаблон = "содержит %1";
ИначеЕсли Выражение = Выражения.СодержитСтрокуПоШаблону Тогда
Шаблон = "содержит подстроку соответствующую шаблону %1";
+ ИначеЕсли Выражение = Выражения.ВСписке Тогда
+ Шаблон = "в списке %1";
Иначе
ВызватьИсключение "Не описан шаблон сообщения для выражения предиката " + Выражение;
КонецЕсли;
@@ -167,12 +169,12 @@
КонецФункции
// Параметры сообщений об ошибке.
-//
+//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
// ТекстПроверяемоеЗначение - Строка - Человекочитаемое описание проверяемого значения
// ПредставлениеПроверяемогоЗначения - Неопределено - Представление проверяемого значения
-//
+//
// Возвращаемое значение:
// Структура - Параметры сообщений об ошибке:
// * ОписаниеПроверки - Неопределено, Строка - Описание конкретной проверки
@@ -203,8 +205,8 @@
ПроверяемоеЗначение = СтрШаблон(ШаблонСвойства, ВыражениеПредиката.ИмяРеквизита) + " ";
КонецЕсли;
- Выражение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(
- ШаблонВыражения(ВыражениеПредиката.ВидСравнения), ВыражениеПредиката.Значение);
+ Выражение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(ШаблонВыражения(ВыражениеПредиката.ВидСравнения),
+ ВыражениеПредиката.Значение);
Возврат СтрШаблон("%1%2", ПроверяемоеЗначение, Выражение);
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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.mdo"
similarity index 84%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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.mdo"
index a7e62ecdf..621b78a11 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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.mdo"
@@ -1,6 +1,6 @@
- ЮТПредикатыКлиентСервер
+ ЮТПредикатыСлужебныйКлиентСервер
ru
Предикаты клиент сервер
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\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"
similarity index 95%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\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"
index 7de12ce53..ad9d96dc0 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\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"
@@ -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.
@@ -203,9 +203,7 @@
ЭтоНулеваяЗона = ДлинаСтроки = ДлинаДатыВНулевойЗоне И СтрЗаканчиваетсяНа(ДатаСтрока, "Z");
Если ДлинаСтроки < ДлинаБезВремени Или ДлинаСтроки > ДлинаСВременем Или ЭтоНулеваяЗона Тогда
-
- ВызватьИсключение "Дата в строке не подходит ни под одну маску.";
-
+ ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ПривестиЗначениеКДате", "Дата в строке не подходит ни под одну маску.");
КонецЕсли;
КонецПроцедуры
@@ -224,9 +222,7 @@
МесяцевВГоду = 12;
Если Число(МесяцСтрокой) > МесяцевВГоду Или Число(МесяцСтрокой) = 0 Тогда
-
- ВызватьИсключение "Месяц выходит за границы диапазона.";
-
+ ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ПривестиЗначениеКДате", "Месяц выходит за границы диапазона.");
КонецЕсли;
КонецПроцедуры
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\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\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\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"
similarity index 81%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\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\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\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"
index 543964086..a759b0a53 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\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\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\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"
@@ -1,6 +1,6 @@
- ЮТПреобразования
+ ЮТПреобразованияСлужебный
ru
Преобразования
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/Module.bsl" "b/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"
similarity index 97%
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/Module.bsl"
rename to "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"
index 4ef579240..823f2eb9c 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/Module.bsl"
+++ "b/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"
@@ -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.
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\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.mdo" "b/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"
similarity index 88%
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\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.mdo"
rename to "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"
index 937ba8c33..6d590a83d 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\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.mdo"
+++ "b/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"
@@ -1,6 +1,6 @@
- ЮТРасширения
+ ЮТРасширенияСлужебный
ru
Расширения функциональности
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/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/Module.bsl"
index dcdfb3e1b..c2ad89f6b 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/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/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.
@@ -16,370 +16,16 @@
//
//©///////////////////////////////////////////////////////////////////////////©//
-#Область СлужебныйПрограммныйИнтерфейс
+#Область ПрограммныйИнтерфейс
-#Область ФиксацияОшибокВРезультате
-
-// Регистрирует ошибку обработки события исполнения тестов
-//
-// Параметры:
-// ИмяСобытия - Строка
-// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
-// Ошибка - ИнформацияОбОшибке
-// - Строка
-Процедура ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка) Экспорт
-
- ТипОшибки = ЮТФабрика.ТипыОшибок().ОшибкаОбработкиСобытия;
- Пояснение = ЮТСообщенияСлужебный.СообщениеОбОшибкеСобытия(ИмяСобытия, Ошибка);
- ДанныеОшибки = ДанныеОшибки(Ошибка, Пояснение, ТипОшибки);
-
- Если ОписаниеСобытия.Тест <> Неопределено Тогда
- Объект = ОписаниеСобытия.Тест;
- ИначеЕсли ОписаниеСобытия.Набор <> Неопределено Тогда
- Объект = ОписаниеСобытия.Набор;
- Иначе
- Объект = ОписаниеСобытия.Модуль;
- КонецЕсли;
-
- Объект.Ошибки.Добавить(ДанныеОшибки);
-
-КонецПроцедуры
-
-// Регистрирует ошибку загрузки тестов
-//
-// Параметры:
-// Объект - Структура - см. ЮТФабрика.ОписаниеТестовогоМодуля или см. ЮТФабрика.ОписаниеТестовогоНабора или см. ЮТФабрика.ОписаниеТеста
-// Описание - Строка - Описания ошибки, места возникновения
-// Ошибка - ИнформацияОбОшибке
-Процедура ЗарегистрироватьОшибкуЧтенияТестов(Объект, Описание, Ошибка) Экспорт
-
- ДанныеОшибки = ДанныеОшибки(Ошибка, Описание, ЮТФабрика.ТипыОшибок().ЧтенияТестов);
- Объект.Ошибки.Добавить(ДанныеОшибки);
-
-КонецПроцедуры
-
-// Регистрирует ошибку выполнения теста
-// Параметры:
-// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста
-// Ошибка - ИнформацияОбОшибке
-Процедура ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка) Экспорт
-
- ТипОшибки = ТипОшибки(Ошибка, Тест.ПолноеИмяМетода);
-
- Если ТипОшибки = ЮТФабрика.ТипыОшибок().Утверждений Тогда
- ДанныеОшибки = ДанныеОшибкиУтверждений(Ошибка);
- ИначеЕсли ТипОшибки = ЮТФабрика.ТипыОшибок().Пропущен Тогда
- ДанныеОшибки = ДанныеОшибкиПропуска(Ошибка);
- Иначе
- ДанныеОшибки = ДанныеОшибки(Ошибка, ЮТСообщенияСлужебный.КраткоеСообщениеОшибки(Ошибка), ТипОшибки);
- КонецЕсли;
-
- Тест.Ошибки.Добавить(ДанныеОшибки);
-
-КонецПроцедуры
-
-// Регистрирует ошибку выполнения теста
-// Параметры:
-// Объект - см. ЮТФабрика.ОписаниеИсполняемогоТеста
-// Сообщение - Строка
-Процедура ЗарегистрироватьПростуюОшибкуВыполнения(Объект, Сообщение) Экспорт
-
- ДанныеОшибки = ДанныеОшибки(Неопределено, Сообщение, ЮТФабрика.ТипыОшибок().Исполнения);
- Объект.Ошибки.Добавить(ДанныеОшибки);
-
-КонецПроцедуры
-
-// Регистрирует ошибку режима выполнения теста
-// Параметры:
-// Объект - см. ЮТФабрика.ОписаниеИсполняемогоТеста
-// Ошибка - Строка
-Процедура ЗарегистрироватьОшибкуРежимаВыполнения(Объект, Ошибка) Экспорт
-
- ДанныеОшибки = ДанныеОшибки(Неопределено, Ошибка, ЮТФабрика.ТипыОшибок().НекорректныйКонтекстИсполнения);
- Объект.Ошибки.Добавить(ДанныеОшибки);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-// Вызывает ошибку выполнения теста, на основании перехваченной ошибки
-//
-// Параметры:
-// ИнформацияОбОшибке - ИнформацияОбОшибке
-// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
-Процедура СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке, ОписаниеПроверки = Неопределено) Экспорт
-
- СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
- СтруктураОшибки.ОшибкаУтверждения = Ложь;
-
- ВызватьОшибкуИсполнения(ИнформацияОбОшибке, ОписаниеПроверки);
-
-КонецПроцедуры
-
-// Вызывает ошибку сравнения значений
-// При этом сохраняет в контекст состояние, для дальнейшей обработки
-//
-// Параметры:
-// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
-// Сообщение - Строка
-// ПроверяемоеЗначение - Произвольный
-// ОжидаемоеЗначение - Произвольный
-// ОбъектПроверки - Строка - Человекочитаемое описание проверяемого значения
-Процедура СгенерироватьОшибкуСравнения(ОписаниеПроверки,
- Сообщение,
- ПроверяемоеЗначение,
- ОжидаемоеЗначение,
- ОбъектПроверки = "проверяемое значение") Экспорт
-
- УстановитьДанныеОшибкиСравнения(ПроверяемоеЗначение, ОжидаемоеЗначение);
- ТекстСообщения = ЮТСообщенияСлужебный.ФорматированныйТекстОшибкиУтверждения(ОписаниеПроверки, Сообщение, ОбъектПроверки);
- ВызватьОшибкуПроверки(ТекстСообщения, ОписаниеПроверки);
-
-КонецПроцедуры
-
-// Вызывает ошибку проверки утверждений
-// При этом сохраняет в контекст состояние, для дальнейшей обработки
-//
-// Параметры:
-// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
-// Сообщение - Строка
-// ПроверяемоеЗначение - Произвольный
-// ОбъектПроверки - Строка - Человекочитаемое описание проверяемого значения
-Процедура СгенерироватьОшибкуУтверждения(ОписаниеПроверки, Сообщение, ПроверяемоеЗначение, ОбъектПроверки = "проверяемое значение") Экспорт
-
- УстановитьДанныеОшибкиУтверждения(ПроверяемоеЗначение);
- ТекстСообщения = ЮТСообщенияСлужебный.ФорматированныйТекстОшибкиУтверждения(ОписаниеПроверки, Сообщение, ОбъектПроверки);
- ВызватьОшибкуПроверки(ТекстСообщения, ОписаниеПроверки);
-
-КонецПроцедуры
-
-Процедура Пропустить(Сообщение) Экспорт
-
- СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
- СтруктураОшибки.ОшибкаУтверждения = Ложь;
-
- СообщениеОбОшибке = СообщениеОбОшибке(Сообщение, ПрефиксОшибкиПропуска());
- ВызватьИсключение СообщениеОбОшибке;
-
-КонецПроцедуры
-
-Функция ПредставлениеОшибки(Знач Описание, Знач Ошибка) Экспорт
-
- Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда
- Ошибка = Символы.ПС + ПодробноеПредставлениеОшибки(Ошибка);
- КонецЕсли;
-
- Возврат СтрШаблон("%1: %2", Описание, Ошибка);
-
-КонецФункции
-
-// Вызывает ошибку выполнения теста
-// Служебный метод, предварительно нужно самостоятельно настроить контекст (см. ЮТКонтекст.КонтекстОшибки)
-// Параметры:
-// ТекстСообщения - Строка
-// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
-Процедура ВызватьОшибкуПроверки(Знач ТекстСообщения, ОписаниеПроверки = Неопределено) Экспорт
-
- СообщениеОбОшибке = СообщениеОбОшибке(ТекстСообщения, ПрефиксОшибкиУтверждений(), ОписаниеПроверки);
- ВызватьИсключение СообщениеОбОшибке;
-
-КонецПроцедуры
-
-Процедура ЗарегистрироватьОшибкуИнициализацииДвижка(Ошибка, Описание) Экспорт
-
- СообщитьОбОшибке(Ошибка, Описание);
-
-КонецПроцедуры
-
-// Возвращает тип ошибки
+// Добавляет пяснение возникшей ошибки, которое будет довлено в отчет.
+// Используется перед выбросом исключения, чтобы добавить полезной информации об ошибке, но при этом не ломать стек.
//
// Параметры:
-// Ошибка - ИнформацияОбОшибке
-// ИмяВызываемогоМетода - Строка - Имя вызываемого метода
-//
-// Возвращаемое значение:
-// Строка - см. ЮТФабрика.ТипыОшибок
-Функция ТипОшибки(Ошибка, ИмяВызываемогоМетода) Экспорт
-
- ТипыОшибок = ЮТФабрика.ТипыОшибок();
-
- Описание = Ошибка.Описание;
-
- ИмяМетода = Сред(ИмяВызываемогоМетода, СтрНайти(ИмяВызываемогоМетода, ".") + 1);
-
- Тексты = ТекстыОшибокВызоваМетода(ИмяМетода);
-
- Если Описание = Тексты.МетодНеОбнаружен
- И СтрНачинаетсяС(Ошибка.ИсходнаяСтрока, ИмяВызываемогоМетода) Тогда
-
- ТипОшибки = ТипыОшибок.ТестНеРеализован;
-
- ИначеЕсли Описание = Тексты.МалоПараметров И СтрНачинаетсяС(Ошибка.ИсходнаяСтрока, ИмяВызываемогоМетода) Тогда
-
- ТипОшибки = ТипыОшибок.МалоПараметров;
-
- ИначеЕсли Описание = Тексты.МногоПараметров И СтрНачинаетсяС(Ошибка.ИсходнаяСтрока, ИмяВызываемогоМетода) Тогда
-
- ТипОшибки = ТипыОшибок.МногоПараметров;
-
- ИначеЕсли СтрНачинаетсяС(Описание, ПрефиксОшибкиУтверждений()) Тогда
-
- ТипОшибки = ТипыОшибок.Утверждений;
-
- ИначеЕсли СтрНачинаетсяС(Описание, ПрефиксОшибкиПропуска()) Тогда
-
- ТипОшибки = ТипыОшибок.Пропущен;
-
- Иначе
-
- ТипОшибки = ТипыОшибок.Исполнения;
-
- КонецЕсли;
-
- Возврат ТипОшибки;
-
-КонецФункции
-
-Функция ПрефиксОшибкиУтверждений() Экспорт
-
- Возврат "[Failed]";
-
-КонецФункции
-
-Функция ПрефиксОшибкиВыполнения() Экспорт
-
- Возврат "[Broken]";
-
-КонецФункции
-
-Функция ПрефиксОшибкиПропуска() Экспорт
-
- Возврат "[Skip]";
-
-КонецФункции
-
-Функция СтатусВыполненияТеста(Тест) Экспорт
-
- СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста();
-
- Если Тест.Ошибки.КОличество() = 0 Тогда
- Возврат СтатусыИсполненияТеста.Успешно;
- КонецЕсли;
-
- ПорядокСтатусов = Новый Массив();
- ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Успешно);
- ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Исполнение);
- ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.НеРеализован);
- ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Ожидание);
- ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Пропущен);
- ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Ошибка);
- ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Сломан);
-
- Статус = Тест.Статус;
-
- Для Каждого Ошибка Из Тест.Ошибки Цикл
-
- СтатусОшибки = СтатусОшибки(Ошибка.ТипОшибки);
-
- Если ПорядокСтатусов.Найти(СтатусОшибки) > ПорядокСтатусов.Найти(Статус) Тогда
- Статус = СтатусОшибки;
- КонецЕсли;
-
- Если Статус = СтатусыИсполненияТеста.Сломан Тогда
- Прервать;
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат Статус;
-
-КонецФункции
-
-Функция СтатусОшибки(ТипОшибки) Экспорт
-
- СтатусОшибки = ЮТФабрика.ПараметрыТиповОшибок()[ТипОшибки].Статус;
-
- Если СтатусОшибки = Неопределено Тогда
- СтатусОшибки = ЮТФабрика.СтатусыИсполненияТеста().Сломан;
- КонецЕсли;
-
- Возврат СтатусОшибки;
-
-КонецФункции
-
-Процедура УстановитьДанныеОшибкиСравнения(ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт
-
- СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
-
- СтруктураОшибки.ОшибкаУтверждения = Истина;
- СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение);
- СтруктураОшибки.ОжидаемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ОжидаемоеЗначение);
-
-КонецПроцедуры
-
-Процедура УстановитьДанныеОшибкиУтверждения(ПроверяемоеЗначение) Экспорт
-
- СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
-
- СтруктураОшибки.ОшибкаУтверждения = Истина;
- СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение);
- СтруктураОшибки.ОжидаемоеЗначение = Неопределено;
-
-КонецПроцедуры
-
-Функция ДобавитьОписания(ТекстОшибки, ОписаниеПроверки = Неопределено) Экспорт
-
- Если ОписаниеПроверки <> Неопределено Тогда
- ПрефиксОшибки = ЮТОбщий.ДобавитьСтроку(ОписаниеПроверки.ПрефиксОшибки, ОписаниеПроверки.ОписаниеПроверки, " ");
- СообщениеОбОшибке = ЮТОбщий.ДобавитьСтроку(ПрефиксОшибки, ТекстОшибки, ": ");
- Иначе
- СообщениеОбОшибке = ТекстОшибки;
- КонецЕсли;
-
- СообщениеОбОшибке = ВРег(Лев(СообщениеОбОшибке, 1)) + Сред(СообщениеОбОшибке, 2);
- Возврат СообщениеОбОшибке;
-
-КонецФункции
-
-Процедура ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, Знач Ошибка, ОписаниеПроверки = Неопределено) Экспорт
-
- Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда
- Ошибка = ПодробноеПредставлениеОшибки(Ошибка);
- КонецЕсли;
-
- ТекстОшибки = ДобавитьОписания(Ошибка, ОписаниеПроверки);
- РезультатПроверки.Успешно = Ложь;
- РезультатПроверки.Сообщения.Добавить(ТекстОшибки);
-
-КонецПроцедуры
-
-Процедура ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки, Сообщение, ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт
-
- ОписаниеКонтекстаОшибки = ЮТФабрика.ОписаниеКонтекстаОшибки();
- ОписаниеКонтекстаОшибки.ПроверяемоеЗначение = ПроверяемоеЗначение;
- ОписаниеКонтекстаОшибки.ОжидаемоеЗначение = ОжидаемоеЗначение;
- ОписаниеКонтекстаОшибки.ОшибкаУтверждения = Истина;
- ОписаниеКонтекстаОшибки.Сообщение = Сообщение;
-
- РезультатПроверки.Успешно = Ложь;
- РезультатПроверки.Сообщения.Добавить(ОписаниеКонтекстаОшибки);
-
-КонецПроцедуры
-
+// Пояснение - Строка - Пояснение
Процедура ДобавитьПояснениеОшибки(Пояснение) Экспорт
- Детали = ЮТКонтекст.КонтекстДеталиОшибки();
- Установить = Детали = Неопределено;
-
- Если Установить Тогда
- Детали = Новый Массив();
- КонецЕсли;
-
- Детали.Добавить(Пояснение);
-
- Если Установить Тогда
- ЮТКонтекст.УстановитьКонтекстДеталиОшибки(Детали);
- КонецЕсли;
+ ЮТРегистрацияОшибокСлужебный.ДобавитьПояснениеОшибки(Пояснение);
КонецПроцедуры
@@ -387,229 +33,4 @@
#Область СлужебныеПроцедурыИФункции
-#Область КонструкторыОписанийОшибки
-
-Функция ДанныеОшибки(Ошибка, Знач Сообщение, ТипОшибки)
-
-#Если Сервер Тогда
- Детали = ЮТКонтекст.КонтекстДеталиОшибки(Истина);
-#Иначе
- ДеталиСервер = ЮТКонтекст.КонтекстДеталиОшибки(Истина);
- ДеталиКлиент = ЮТКонтекст.КонтекстДеталиОшибки();
-
- Если ЗначениеЗаполнено(ДеталиКлиент) И ЗначениеЗаполнено(ДеталиСервер) Тогда
- ЮТОбщий.ДополнитьМассив(ДеталиСервер, ДеталиКлиент);
- Детали = ДеталиСервер;
- ИначеЕсли ЗначениеЗаполнено(ДеталиКлиент) Тогда
- Детали = ДеталиКлиент;
- ИначеЕсли ЗначениеЗаполнено(ДеталиСервер) Тогда
- Детали = ДеталиСервер;
- Иначе
- Детали = Неопределено;
- КонецЕсли;
-#КонецЕсли
-
- Если ЗначениеЗаполнено(Детали) Тогда
- ЮТКонтекст.УстановитьКонтекстДеталиОшибки(Новый Массив());
-
- Детали.Добавить(Сообщение);
- Сообщение = СтрСоединить(Детали, Символы.ПС);
- КонецЕсли;
-
- ДанныеОшибки = ЮТФабрика.ОписаниеВозникшейОшибки(ТипОшибки + ": " + Сообщение);
-
- Если Ошибка <> Неопределено Тогда
- ДанныеОшибки.Стек = СтекОшибки(Ошибка);
- КонецЕсли;
- ДанныеОшибки.ТипОшибки = ТипОшибки;
- ДобавитьСообщенияПользователю(ДанныеОшибки);
-
- Возврат ДанныеОшибки;
-
-КонецФункции
-
-Функция СтекОшибки(Ошибка)
-
- Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда
- Возврат ПодробноеПредставлениеОшибки(Ошибка);
- Иначе
- Возврат Неопределено;
- КонецЕсли;
-
-КонецФункции
-
-Функция ДанныеОшибкиУтверждений(Ошибка)
-
- Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиУтверждений());
-
- ДанныеОшибки = ЮТФабрика.ОписаниеОшибкиСравнения(Описание);
-
- ДанныеОшибки.Стек = СтекОшибки(Ошибка);
- ДобавитьСообщенияПользователю(ДанныеОшибки);
-
- СтруктураОшибки = ЮТКонтекст.КонтекстОшибки();
-
- Если СтруктураОшибки <> Неопределено И СтруктураОшибки.ОшибкаУтверждения Тогда
- ДанныеОшибки.ПроверяемоеЗначение = СтруктураОшибки.ПроверяемоеЗначение;
- ДанныеОшибки.ОжидаемоеЗначение = СтруктураОшибки.ОжидаемоеЗначение;
- КонецЕсли;
-
- Возврат ДанныеОшибки;
-
-КонецФункции
-
-Функция ДанныеОшибкиПропуска(Ошибка)
-
- Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиПропуска());
-
- ДанныеОшибки = ЮТФабрика.ОписаниеОшибкиПропуска(Описание);
-
- Возврат ДанныеОшибки;
-
-КонецФункции
-
-Функция ИзвлечьТекстОшибки(Ошибка, Префикс)
-
- ДлинаПрефикса = СтрДлина(Префикс);
-
- Описание = Сред(Ошибка.Описание, ДлинаПрефикса + 1);
- Описание = СокрЛП(Описание);
-
- Если СтрНачинаетсяС(Описание, "<") И СтрЗаканчиваетсяНа(Описание, ">") Тогда
- Описание = Сред(Описание, 2, СтрДлина(Описание) - 2);
- КонецЕсли;
-
- Возврат Описание;
-
-КонецФункции
-
-#КонецОбласти
-
-Функция МодулиУтверждений()
-
- Возврат ЮТОбщий.ЗначениеВМассиве("ЮТУтверждения");
-
-КонецФункции
-
-Процедура СообщитьОбОшибке(Ошибка, Описание)
-
- ЮТОбщий.СообщитьПользователю(ПредставлениеОшибки(Описание, Ошибка));
-
-КонецПроцедуры
-
-Функция ИнформациюОбОшибкеВСтроку(Ошибка, НомерПричины = 0)
-
- ТекстОшибки = "";
-
- Если Ошибка = Неопределено Тогда
-
- ТекстОшибки = "Неизвестная ошибка.";
-
- ИначеЕсли ТипЗнч(Ошибка) = Тип("Строка") Тогда
-
- ТекстОшибки = Ошибка;
-
- ИначеЕсли ЭтоОшибкаСлужебногоМодуля(Ошибка) Тогда
-
- Если Ошибка.Причина = Неопределено Тогда
-
- ТекстОшибки = Ошибка.Описание;
-
- Иначе
-
- ТекстОшибки = ИнформациюОбОшибкеВСтроку(Ошибка.Причина, НомерПричины);
-
- КонецЕсли;
-
- Иначе
-
- Если Не ПустаяСтрока(Ошибка.ИмяМодуля) Тогда
-
- ТекстОшибки = ТекстОшибки + "{"
- + Ошибка.ИмяМодуля + "("
- + Ошибка.НомерСтроки + ")}: ";
-
- КонецЕсли;
-
- ТекстОшибки = ТекстОшибки + Ошибка.Описание + ?(ПустаяСтрока(Ошибка.ИсходнаяСтрока), "", "
- |" + Ошибка.ИсходнаяСтрока);
-
- Если Ошибка.Причина <> Неопределено Тогда
-
- ТекстОшибки = ТекстОшибки + "
- |
- |ПРИЧИНА №" + Формат(НомерПричины + 1, "ЧГ=0") + "
- |" + ИнформациюОбОшибкеВСтроку(Ошибка.Причина, НомерПричины + 1);
-
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат ТекстОшибки;
-
-КонецФункции
-
-Функция ЭтоОшибкаСлужебногоМодуля(Ошибка)
-
- Если НЕ ЗначениеЗаполнено(Ошибка.ИмяМодуля) Тогда
- Возврат Ложь;
- КонецЕсли;
-
- Для Каждого ИмяМодуля Из МодулиУтверждений() Цикл
- Если СтрНайти(Ошибка.ИмяМодуля, ИмяМодуля) > 0 Тогда
- Возврат Истина;
- КонецЕсли;
- КонецЦикла;
-
- Возврат Ложь;
-
-КонецФункции
-
-Процедура ДобавитьСообщенияПользователю(ДанныеОшибки)
-
-#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
- Сообщения = ЮТОбщий.ВыгрузитьЗначения(ПолучитьСообщенияПользователю(Истина), "Текст");
- Если Сообщения.Количество() Тогда
- ДанныеОшибки.Стек = СтрШаблон("%1
- |Сообщения пользователю:
- | %2", ДанныеОшибки.Стек, СтрСоединить(Сообщения, Символы.ПС));
- КонецЕсли;
-#КонецЕсли
-
-КонецПроцедуры
-
-Процедура ВызватьОшибкуИсполнения(Знач ИнформацияОбОшибке, ОписаниеПроверки)
-
- ТекстОшибки = ИнформациюОбОшибкеВСтроку(ИнформацияОбОшибке);
- СообщениеОбОшибке = СообщениеОбОшибке(ТекстОшибки, ПрефиксОшибкиВыполнения(), ОписаниеПроверки);
- ВызватьИсключение СообщениеОбОшибке;
-
-КонецПроцедуры
-
-Функция СообщениеОбОшибке(ТекстОшибки, ПрефиксТипаОшибки, ОписаниеПроверки = Неопределено) Экспорт
-
- СообщениеОбОшибке = ДобавитьОписания(ТекстОшибки, ОписаниеПроверки);
-
- Возврат СтрШаблон("%1 <%2>", ПрефиксТипаОшибки, СообщениеОбОшибке);
-
-КонецФункции
-
-Функция ТекстыОшибокВызоваМетода(ИмяМетода)
-
- Тексты = Новый Структура("МетодНеОбнаружен, МногоПараметров, МалоПараметров");
-
- Если ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы() Тогда
- Тексты.МетодНеОбнаружен = СтрШаблон("Object method not found (%1)", ИмяМетода);
- Тексты.МногоПараметров = "Too many actual parameters";
- Тексты.МалоПараметров = "Not enough actual parameters";
- Иначе
- Тексты.МетодНеОбнаружен = СтрШаблон("Метод объекта не обнаружен (%1)", ИмяМетода);
- Тексты.МногоПараметров = "Слишком много фактических параметров";
- Тексты.МалоПараметров = "Недостаточно фактических параметров";
- КонецЕсли;
-
- Возврат Тексты;
-
-КонецФункции
-
#КонецОбласти
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\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.mdo" "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\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.mdo"
index dc27eee7f..38a107d6d 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\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.mdo"
+++ "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\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.mdo"
@@ -1,5 +1,5 @@
-
+
ЮТРегистрацияОшибок
ru
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"
new file mode 100644
index 000000000..33f3de2cc
--- /dev/null
+++ "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"
@@ -0,0 +1,698 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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: %2", Описание, Ошибка);
+
+КонецФункции
+
+// Вызывает ошибку выполнения теста
+// Служебный метод, предварительно нужно самостоятельно настроить контекст (см. ЮТКонтекстСлужебный.КонтекстОшибки)
+// Параметры:
+// ТекстСообщения - Строка
+// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки
+Процедура ВызватьОшибкуПроверки(Знач ТекстСообщения, ОписаниеПроверки = Неопределено) Экспорт
+
+ СообщениеОбОшибке = СообщениеОбОшибке(ТекстСообщения, ПрефиксОшибкиУтверждений(), ОписаниеПроверки);
+ ВызватьИсключение СообщениеОбОшибке;
+
+КонецПроцедуры
+
+Процедура ЗарегистрироватьОшибкуИнициализацииДвижка(Ошибка, Описание) Экспорт
+
+ СообщитьОбОшибке(Ошибка, Описание);
+
+КонецПроцедуры
+
+// Возвращает тип ошибки
+//
+// Параметры:
+// Ошибка - ИнформацияОбОшибке
+// ИмяВызываемогоМетода - Строка - Имя вызываемого метода
+//
+// Возвращаемое значение:
+// Строка - см. ЮТФабрикаСлужебный.ТипыОшибок
+Функция ТипОшибки(Ошибка, ИмяВызываемогоМетода) Экспорт
+
+ ТипыОшибок = ЮТФабрикаСлужебный.ТипыОшибок();
+
+ Описание = Ошибка.Описание;
+
+ ИмяМетода = Сред(ИмяВызываемогоМетода, СтрНайти(ИмяВызываемогоМетода, ".") + 1);
+
+ Тексты = ТекстыОшибокВызоваМетода(ИмяМетода);
+
+ Если Описание = Тексты.МетодНеОбнаружен
+ И СтрНачинаетсяС(Ошибка.ИсходнаяСтрока, ИмяВызываемогоМетода) Тогда
+
+ ТипОшибки = ТипыОшибок.ТестНеРеализован;
+
+ ИначеЕсли Описание = Тексты.МалоПараметров И СтрНачинаетсяС(Ошибка.ИсходнаяСтрока, ИмяВызываемогоМетода) Тогда
+
+ ТипОшибки = ТипыОшибок.МалоПараметров;
+
+ ИначеЕсли Описание = Тексты.МногоПараметров И СтрНачинаетсяС(Ошибка.ИсходнаяСтрока, ИмяВызываемогоМетода) Тогда
+
+ ТипОшибки = ТипыОшибок.МногоПараметров;
+
+ ИначеЕсли СтрНачинаетсяС(Описание, ПрефиксОшибкиУтверждений()) Тогда
+
+ ТипОшибки = ТипыОшибок.Утверждений;
+
+ ИначеЕсли СтрНачинаетсяС(Описание, ПрефиксОшибкиПропуска()) Тогда
+
+ ТипОшибки = ТипыОшибок.Пропущен;
+
+ Иначе
+
+ ТипОшибки = ТипыОшибок.Исполнения;
+
+ КонецЕсли;
+
+ Возврат ТипОшибки;
+
+КонецФункции
+
+Функция ПрефиксОшибкиУтверждений() Экспорт
+
+ Возврат "[Failed]";
+
+КонецФункции
+
+Функция ПрефиксОшибкиВыполнения() Экспорт
+
+ Возврат "[Broken]";
+
+КонецФункции
+
+Функция ПрефиксОшибкиПропуска() Экспорт
+
+ Возврат "[Skip]";
+
+КонецФункции
+
+Функция СтатусВыполненияТеста(Тест) Экспорт
+
+ СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста();
+
+ Если Тест.Ошибки.КОличество() = 0 Тогда
+ Возврат СтатусыИсполненияТеста.Успешно;
+ КонецЕсли;
+
+ ПорядокСтатусов = Новый Массив();
+ ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Успешно);
+ ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Исполнение);
+ ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.НеРеализован);
+ ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Ожидание);
+ ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Пропущен);
+ ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Ошибка);
+ ПорядокСтатусов.Добавить(СтатусыИсполненияТеста.Сломан);
+
+ Статус = Тест.Статус;
+
+ Для Каждого Ошибка Из Тест.Ошибки Цикл
+
+ СтатусОшибки = СтатусОшибки(Ошибка.ТипОшибки);
+
+ Если ПорядокСтатусов.Найти(СтатусОшибки) > ПорядокСтатусов.Найти(Статус) Тогда
+ Статус = СтатусОшибки;
+ КонецЕсли;
+
+ Если Статус = СтатусыИсполненияТеста.Сломан Тогда
+ Прервать;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Статус;
+
+КонецФункции
+
+Функция СтатусОшибки(ТипОшибки) Экспорт
+
+ СтатусОшибки = ЮТФабрикаСлужебный.ПараметрыТиповОшибок()[ТипОшибки].Статус;
+
+ Если СтатусОшибки = Неопределено Тогда
+ СтатусОшибки = ЮТФабрика.СтатусыИсполненияТеста().Сломан;
+ КонецЕсли;
+
+ Возврат СтатусОшибки;
+
+КонецФункции
+
+Процедура УстановитьДанныеОшибкиСравнения(ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт
+
+ СтруктураОшибки = КонтекстОшибки();
+
+ СтруктураОшибки.ОшибкаУтверждения = Истина;
+ СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение);
+ СтруктураОшибки.ОжидаемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ОжидаемоеЗначение);
+
+КонецПроцедуры
+
+Процедура УстановитьДанныеОшибкиУтверждения(ПроверяемоеЗначение) Экспорт
+
+ СтруктураОшибки = КонтекстОшибки();
+
+ СтруктураОшибки.ОшибкаУтверждения = Истина;
+ СтруктураОшибки.ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение);
+ СтруктураОшибки.ОжидаемоеЗначение = Неопределено;
+
+КонецПроцедуры
+
+Функция ДобавитьОписания(ТекстОшибки, ОписаниеПроверки = Неопределено) Экспорт
+
+ Если ОписаниеПроверки <> Неопределено Тогда
+ ПрефиксОшибки = ЮТСтроки.ДобавитьСтроку(ОписаниеПроверки.ПрефиксОшибки, ОписаниеПроверки.ОписаниеПроверки, " ");
+ СообщениеОбОшибке = ЮТСтроки.ДобавитьСтроку(ПрефиксОшибки, ТекстОшибки, ": ");
+ Иначе
+ СообщениеОбОшибке = ТекстОшибки;
+ КонецЕсли;
+
+ СообщениеОбОшибке = ВРег(Лев(СообщениеОбОшибке, 1)) + Сред(СообщениеОбОшибке, 2);
+ Возврат СообщениеОбОшибке;
+
+КонецФункции
+
+Процедура ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, Знач Ошибка, ОписаниеПроверки = Неопределено) Экспорт
+
+ Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда
+ Ошибка = ПодробноеПредставлениеОшибки(Ошибка);
+ КонецЕсли;
+
+ ТекстОшибки = ДобавитьОписания(Ошибка, ОписаниеПроверки);
+ РезультатПроверки.Успешно = Ложь;
+ РезультатПроверки.Сообщения.Добавить(ТекстОшибки);
+
+КонецПроцедуры
+
+Процедура ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки, Сообщение, ПроверяемоеЗначение, ОжидаемоеЗначение) Экспорт
+
+ ОписаниеКонтекстаОшибки = ОписаниеКонтекстаОшибки();
+ ОписаниеКонтекстаОшибки.ПроверяемоеЗначение = ПроверяемоеЗначение;
+ ОписаниеКонтекстаОшибки.ОжидаемоеЗначение = ОжидаемоеЗначение;
+ ОписаниеКонтекстаОшибки.ОшибкаУтверждения = Истина;
+ ОписаниеКонтекстаОшибки.Сообщение = Сообщение;
+
+ РезультатПроверки.Успешно = Ложь;
+ РезультатПроверки.Сообщения.Добавить(ОписаниеКонтекстаОшибки);
+
+КонецПроцедуры
+
+Процедура ДобавитьПояснениеОшибки(Пояснение) Экспорт
+
+ Детали = КонтекстДеталиОшибки();
+ Установить = Детали = Неопределено;
+
+ Если Установить Тогда
+ Детали = Новый Массив();
+ КонецЕсли;
+
+ Детали.Добавить(Пояснение);
+
+ Если Установить Тогда
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), Детали);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Область Контекст
+
+// Контекст ошибки.
+//
+// Возвращаемое значение:
+// см. ОписаниеКонтекстаОшибки
+Функция КонтекстОшибки() Экспорт
+
+ Контекст = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаОшибки());
+
+ Если Контекст = Неопределено Тогда
+ Контекст = УстановитьКонтекстОшибки();
+ КонецЕсли;
+
+ //@skip-check constructor-function-return-section
+ Возврат Контекст;
+
+КонецФункции
+
+Функция УстановитьКонтекстОшибки() Экспорт
+
+ ДанныеОшибки = ОписаниеКонтекстаОшибки();
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаОшибки(), ДанныеОшибки);
+
+ Возврат ДанныеОшибки;
+
+КонецФункции
+
+Функция КонтекстДеталиОшибки(ПолучитьССервера = Ложь)
+
+ Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), ПолучитьССервера);
+
+КонецФункции
+
+// ОписаниеКонтекстаОшибки
+// Возвращает описание деталей/расшифровки ошибки
+// Возвращаемое значение:
+// Структура - Детали ошибки:
+// * ОшибкаУтверждения - Булево - Признак, это ошибка проверки утверждения
+// * ПроверяемоеЗначение - Произвольный - Фактическое значение
+// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение
+// * Сообщение - Строка
+// * ДополнительныеДанные - Массив из Произвольный
+// * Пояснения - Массив из Произвольный
+Функция ОписаниеКонтекстаОшибки()
+
+ Описание = Новый Структура("ПроверяемоеЗначение, ОжидаемоеЗначение");
+ Описание.Вставить("ОшибкаУтверждения", Ложь);
+ Описание.Вставить("Сообщение", "");
+ Описание.Вставить("ДополнительныеДанные", Новый Массив());
+ Описание.Вставить("Пояснения", Новый Массив());
+
+ //@skip-check constructor-function-return-section
+ Возврат Описание;
+
+КонецФункции
+
+Функция ИмяКонтекстаОшибки()
+
+ Возврат "ДанныеОшибки";
+
+КонецФункции
+
+Функция ИмяКонтекстаДеталиОшибки()
+
+ Возврат "ДеталиОшибки";
+
+КонецФункции
+
+#КонецОбласти
+
+#Область КонструкторыОписанийОшибки
+
+Функция ДанныеОшибки(Ошибка, Знач Сообщение, ТипОшибки)
+
+#Если Сервер Тогда
+ Детали = КонтекстДеталиОшибки(Истина);
+#Иначе
+ ДеталиСервер = КонтекстДеталиОшибки(Истина);
+ ДеталиКлиент = КонтекстДеталиОшибки();
+
+ Если ЗначениеЗаполнено(ДеталиКлиент) И ЗначениеЗаполнено(ДеталиСервер) Тогда
+ ЮТКоллекции.ДополнитьМассив(ДеталиСервер, ДеталиКлиент);
+ Детали = ДеталиСервер;
+ ИначеЕсли ЗначениеЗаполнено(ДеталиКлиент) Тогда
+ Детали = ДеталиКлиент;
+ ИначеЕсли ЗначениеЗаполнено(ДеталиСервер) Тогда
+ Детали = ДеталиСервер;
+ Иначе
+ Детали = Неопределено;
+ КонецЕсли;
+#КонецЕсли
+
+ Если ЗначениеЗаполнено(Детали) Тогда
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), Неопределено);
+
+ Детали.Добавить(Сообщение);
+ Сообщение = СтрСоединить(Детали, Символы.ПС);
+ КонецЕсли;
+
+ ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки(ТипОшибки + ": " + Сообщение);
+
+ Если Ошибка <> Неопределено Тогда
+ ДанныеОшибки.Стек = СтекОшибки(Ошибка);
+ КонецЕсли;
+ ДанныеОшибки.ТипОшибки = ТипОшибки;
+
+ ДобавитьСообщенияПользователю();
+ ДобавитьЛогТеста(ДанныеОшибки);
+
+ Возврат ДанныеОшибки;
+
+КонецФункции
+
+Функция ДанныеОшибкиУтверждений(Ошибка)
+
+ Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиУтверждений());
+
+ ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиСравнения(Описание);
+ ДанныеОшибки.Стек = СтекОшибки(Ошибка);
+
+ ДобавитьСообщенияПользователю();
+ ДобавитьЛогТеста(ДанныеОшибки);
+
+ СтруктураОшибки = КонтекстОшибки();
+
+ Если СтруктураОшибки <> Неопределено И СтруктураОшибки.ОшибкаУтверждения Тогда
+ ДанныеОшибки.ПроверяемоеЗначение = СтруктураОшибки.ПроверяемоеЗначение;
+ ДанныеОшибки.ОжидаемоеЗначение = СтруктураОшибки.ОжидаемоеЗначение;
+ КонецЕсли;
+
+ Возврат ДанныеОшибки;
+
+КонецФункции
+
+Функция ДанныеОшибкиПропуска(Ошибка)
+
+ Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиПропуска());
+
+ ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиПропуска(Описание);
+
+ ДобавитьСообщенияПользователю();
+ ДобавитьЛогТеста(ДанныеОшибки);
+
+ Возврат ДанныеОшибки;
+
+КонецФункции
+
+Процедура ДобавитьЛогТеста(ДанныеОшибки)
+
+ Лог = ЮТЛогИсполненияТестаСлужебный.Записи();
+ Если Лог <> Неопределено Тогда
+ ЮТКоллекции.ДополнитьМассив(ДанныеОшибки.Лог, Лог);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Функция СтекОшибки(Ошибка)
+
+ Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда
+ Возврат ПодробноеПредставлениеОшибки(Ошибка);
+ Иначе
+ Возврат Неопределено;
+ КонецЕсли;
+
+КонецФункции
+
+Функция ИзвлечьТекстОшибки(Ошибка, Префикс)
+
+ ДлинаПрефикса = СтрДлина(Префикс);
+
+ Описание = Сред(Ошибка.Описание, ДлинаПрефикса + 1);
+ Описание = СокрЛП(Описание);
+
+ Если СтрНачинаетсяС(Описание, "<") И СтрЗаканчиваетсяНа(Описание, ">") Тогда
+ Описание = Сред(Описание, 2, СтрДлина(Описание) - 2);
+ КонецЕсли;
+
+ Возврат Описание;
+
+КонецФункции
+
+#КонецОбласти
+
+Функция МодулиУтверждений()
+
+ Возврат ЮТКоллекции.ЗначениеВМассиве("ЮТУтверждения");
+
+КонецФункции
+
+Процедура СообщитьОбОшибке(Ошибка, Описание)
+
+ ЮТОбщий.СообщитьПользователю(ПредставлениеОшибки(Описание, Ошибка));
+
+КонецПроцедуры
+
+Функция ИнформациюОбОшибкеВСтроку(Ошибка, НомерПричины = 0)
+
+ ТекстОшибки = "";
+
+ Если Ошибка = Неопределено Тогда
+
+ ТекстОшибки = "Неизвестная ошибка.";
+
+ ИначеЕсли ТипЗнч(Ошибка) = Тип("Строка") Тогда
+
+ ТекстОшибки = Ошибка;
+
+ ИначеЕсли ЭтоОшибкаСлужебногоМодуля(Ошибка) Тогда
+
+ Если Ошибка.Причина = Неопределено Тогда
+
+ ТекстОшибки = Ошибка.Описание;
+
+ Иначе
+
+ ТекстОшибки = ИнформациюОбОшибкеВСтроку(Ошибка.Причина, НомерПричины);
+
+ КонецЕсли;
+
+ Иначе
+
+ Если НЕ ПустаяСтрока(Ошибка.ИмяМодуля) Тогда
+
+ ТекстОшибки = ТекстОшибки + "{"
+ + Ошибка.ИмяМодуля + "("
+ + Ошибка.НомерСтроки + ")}: ";
+
+ КонецЕсли;
+
+ ТекстОшибки = ТекстОшибки + Ошибка.Описание + ?(ПустаяСтрока(Ошибка.ИсходнаяСтрока), "", "
+ |" + Ошибка.ИсходнаяСтрока);
+
+ Если Ошибка.Причина <> Неопределено Тогда
+
+ ТекстОшибки = ТекстОшибки + "
+ |
+ |ПРИЧИНА №" + Формат(НомерПричины + 1, "ЧГ=0") + "
+ |" + ИнформациюОбОшибкеВСтроку(Ошибка.Причина, НомерПричины + 1);
+
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Возврат ТекстОшибки;
+
+КонецФункции
+
+Функция ЭтоОшибкаСлужебногоМодуля(Ошибка)
+
+ Если НЕ ЗначениеЗаполнено(Ошибка.ИмяМодуля) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Для Каждого ИмяМодуля Из МодулиУтверждений() Цикл
+ Если СтрНайти(Ошибка.ИмяМодуля, ИмяМодуля) > 0 Тогда
+ Возврат Истина;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Ложь;
+
+КонецФункции
+
+Процедура ДобавитьСообщенияПользователю()
+
+#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
+ Для Каждого Сообщение Из ПолучитьСообщенияПользователю(Истина) Цикл
+ ЮТест.ДобавитьСообщение(Сообщение.Текст);
+ КонецЦикла;
+#КонецЕсли
+
+КонецПроцедуры
+
+Процедура ВызватьОшибкуИсполнения(Знач ИнформацияОбОшибке, ОписаниеПроверки)
+
+ ТекстОшибки = ИнформациюОбОшибкеВСтроку(ИнформацияОбОшибке);
+ СообщениеОбОшибке = СообщениеОбОшибке(ТекстОшибки, ПрефиксОшибкиВыполнения(), ОписаниеПроверки);
+ ВызватьИсключение СообщениеОбОшибке;
+
+КонецПроцедуры
+
+Функция СообщениеОбОшибке(ТекстОшибки, ПрефиксТипаОшибки, ОписаниеПроверки = Неопределено)
+
+ СообщениеОбОшибке = ДобавитьОписания(ТекстОшибки, ОписаниеПроверки);
+
+ Возврат СтрШаблон("%1 <%2>", ПрефиксТипаОшибки, СообщениеОбОшибке);
+
+КонецФункции
+
+Функция ТекстыОшибокВызоваМетода(ИмяМетода)
+
+ Тексты = Новый Структура("МетодНеОбнаружен, МногоПараметров, МалоПараметров");
+
+ Если ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы() Тогда
+ Тексты.МетодНеОбнаружен = СтрШаблон("Object method not found (%1)", ИмяМетода);
+ Тексты.МногоПараметров = "Too many actual parameters";
+ Тексты.МалоПараметров = "Not enough actual parameters";
+ Иначе
+ Тексты.МетодНеОбнаружен = СтрШаблон("Метод объекта не обнаружен (%1)", ИмяМетода);
+ Тексты.МногоПараметров = "Слишком много фактических параметров";
+ Тексты.МалоПараметров = "Недостаточно фактических параметров";
+ КонецЕсли;
+
+ Возврат Тексты;
+
+КонецФункции
+
+#КонецОбласти
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/\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.mdo" "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/\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.mdo"
new file mode 100644
index 000000000..648797154
--- /dev/null
+++ "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/\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.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТРегистрацияОшибокСлужебный
+
+ ru
+ Регистрация ошибок
+
+ true
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\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\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl"
similarity index 55%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\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\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl"
index ca68d9757..01a195787 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\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\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/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,25 +20,25 @@
Функция АдресСерверногоКонтекста() Экспорт
- Возврат ЮТКонтекстСервер.АдресСерверногоКонтекста(Ложь);
+ Возврат ЮТКонтекстСлужебныйВызовСервера.АдресСерверногоКонтекста(Ложь);
КонецФункции
-Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров = 0) Экспорт
+Функция МетодМодуляСуществует(ИмяМодуля, ИмяМетода) Экспорт
- Возврат ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, КоличествоПараметров, Ложь);
+ Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяМетода, Ложь);
КонецФункции
Функция ПараметрыТиповОшибок() Экспорт
- Возврат ЮТФабрика.ПараметрыТиповОшибок(Ложь);
+ Возврат ЮТФабрикаСлужебный.ПараметрыТиповОшибок(Ложь);
КонецФункции
Функция ОписаниеТиповЛюбаяСсылка() Экспорт
- Возврат ЮТОбщийВызовСервера.ОписаниеТиповЛюбаяСсылка();
+ Возврат ЮТОбщийСлужебныйВызовСервера.ОписаниеТиповЛюбаяСсылка();
КонецФункции
@@ -67,4 +67,28 @@
КонецФункции
+Функция МножителиИнтервалов() Экспорт
+
+ СекундВМинуте = 60;
+ СекундВЧасе = 60 * СекундВМинуте;
+ СекундВДне = СекундВЧасе * 24;
+
+ Множители = Новый Структура;
+ Множители.Вставить("секунда", 1);
+ Множители.Вставить("секунды", 1);
+ Множители.Вставить("секунд", 1);
+ Множители.Вставить("минута", СекундВМинуте);
+ Множители.Вставить("минуты", СекундВМинуте);
+ Множители.Вставить("минут", СекундВМинуте);
+ Множители.Вставить("час", СекундВЧасе);
+ Множители.Вставить("часа", СекундВЧасе);
+ Множители.Вставить("часов", СекундВЧасе);
+ Множители.Вставить("день", СекундВДне);
+ Множители.Вставить("дня", СекундВДне);
+ Множители.Вставить("дней", СекундВДне);
+
+ Возврат Множители;
+
+КонецФункции
+
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\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\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\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\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo"
similarity index 85%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\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\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\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\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo"
index 444108f08..5955f698a 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\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\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/\320\256\320\242\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\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217.mdo"
@@ -1,6 +1,6 @@
- ЮТПовторногоИспользования
+ ЮТСлужебныйПовторногоИспользования
ru
Повторного использования
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/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"
similarity index 68%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl"
rename to "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 2010743e9..f29fc2e19 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/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"
@@ -20,7 +20,7 @@
Процедура Инициализация(ПараметрыЗапуска) Экспорт
- Параметры = ЮТОбщий.ЗначениеВМассиве(ПараметрыЗапуска);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска);
ВызватьОбработчикРасширения("Инициализация", Параметры);
КонецПроцедуры
@@ -28,79 +28,79 @@
#Область СобытияИсполненияТестов
// Обработчик события "ПередВсемиТестамиМодуля"
-//
+//
// Параметры:
-// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
+// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
Процедура ПередВсемиТестамиМодуля(ТестовыйМодуль) Экспорт
УстановитьКонтекстИсполнения(ТестовыйМодуль);
- ЮТКонтекст.УстановитьКонтекстМодуля();
+ ЮТКонтекстСлужебный.УстановитьКонтекстМодуля();
- ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
+ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
ВызватьОбработкуСобытия("ПередВсемиТестами", ОписаниеСобытия);
КонецПроцедуры
// Обработчик события "ПередТестовымНабором"
-//
+//
// Параметры:
-// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
-// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
+// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
+// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
Процедура ПередТестовымНабором(ТестовыйМодуль, Набор) Экспорт
УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор);
- ЮТКонтекст.УстановитьКонтекстНабораТестов();
+ ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов();
- ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
+ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
ВызватьОбработкуСобытия("ПередТестовымНабором", ОписаниеСобытия);
КонецПроцедуры
// Обработчик события "ПередКаждымТестом"
-//
+//
// Параметры:
-// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
-// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста
+// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
+// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест) Экспорт
- // Установка контекста исполнения вызывается в см. ЮТИсполнительКлиентСервер.ПередКаждымТестом
- ЮТКонтекст.УстановитьКонтекстТеста();
+ // Установка контекста исполнения вызывается в см. ЮТИсполнительСлужебныйКлиентСервер.ПередКаждымТестом
+ ЮТКонтекстСлужебный.УстановитьКонтекстТеста();
- ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
+ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
-#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
+ #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
ПолучитьСообщенияПользователю(Истина);
-#КонецЕсли
+ #КонецЕсли
- ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия);
+ ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия);
КонецПроцедуры
// Обработчик события "ПослеКаждогоТеста"
-//
+//
// Параметры:
-// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
-// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста
+// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
+// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест) Экспорт
- ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
+ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
- ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия);
+ ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия);
УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор);
КонецПроцедуры
// Обработчик события "ПослеТестовогоНабора"
-//
+//
// Параметры:
-// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
-// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
+// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
+// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
Процедура ПослеТестовогоНабора(ТестовыйМодуль, Набор) Экспорт
- ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
+ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор);
ВызватьОбработкуСобытия("ПослеТестовогоНабора", ОписаниеСобытия);
УстановитьКонтекстИсполнения(ТестовыйМодуль);
@@ -108,12 +108,12 @@
КонецПроцедуры
// Обработчик события "ПослеВсехТестовМодуля"
-//
+//
// Параметры:
-// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
+// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
Процедура ПослеВсехТестовМодуля(ТестовыйМодуль) Экспорт
- ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
+ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль);
ВызватьОбработкуСобытия("ПослеВсехТестов", ОписаниеСобытия);
УстановитьКонтекстИсполнения();
@@ -121,23 +121,23 @@
КонецПроцедуры
// Перед выполнением тестов.
-//
+//
// Параметры:
-// ИсполняемыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
+// ИсполняемыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт
- Параметры = ЮТОбщий.ЗначениеВМассиве(ИсполняемыеМодули);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеМодули);
ВызватьОбработчикРасширения("ПередВыполнениемТестов", Параметры);
КонецПроцедуры
// После выполнения тестов.
-//
+//
// Параметры:
-// РезультатТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
+// РезультатТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
Процедура ПослеВыполненияТестов(РезультатТестирования) Экспорт
- Параметры = ЮТОбщий.ЗначениеВМассиве(РезультатТестирования);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(РезультатТестирования);
ВызватьОбработчикРасширения("ПослеВыполненияТестов", Параметры);
КонецПроцедуры
@@ -157,10 +157,10 @@
// Обработчик события "ПередЧтениемСценариевМодуля"
// Позволяет настроить базовые параметры перед чтением настроек тестов модуля
// Параметры:
-// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
+// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт
- Параметры = ЮТОбщий.ЗначениеВМассиве(МетаданныеМодуля);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля);
ВызватьОбработчикРасширения("ПередЧтениемСценариевМодуля", Параметры);
КонецПроцедуры
@@ -168,31 +168,31 @@
// После чтения сценариев модуля.
// Позволяет настроить/обработать параметры загруженных настроек тестов модуля
// Параметры:
-// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
+// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
- Параметры = ЮТОбщий.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии);
ВызватьОбработчикРасширения("ПослеЧтенияСценариевМодуля", Параметры);
КонецПроцедуры
// Обработка события "ПослеЧтенияСценариев"
// Параметры:
-// Сценарии - Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
+// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
Процедура ПослеЧтенияСценариев(Сценарии) Экспорт
- Параметры = ЮТОбщий.ЗначениеВМассиве(Сценарии);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(Сценарии);
ВызватьОбработчикРасширения("ПослеЧтенияСценариев", Параметры);
КонецПроцедуры
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
// Параметры:
-// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
+// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
- Параметры = ЮТОбщий.ЗначениеВМассиве(ИсполняемыеТестовыеМодули);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеТестовыеМодули);
ВызватьОбработчикРасширения("ПослеФормированияИсполняемыхНаборовТестов", Параметры);
КонецПроцедуры
@@ -206,7 +206,7 @@
Процедура УстановитьКонтекстИсполнения(ТестовыйМодуль = Неопределено, Набор = Неопределено, Тест = Неопределено) Экспорт
Уровни = ЮТФабрика.УровниИсполнения();
- КонтекстИсполнения = ЮТКонтекст.КонтекстИсполнения();
+ КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения();
КонтекстИсполнения.Модуль = ТестовыйМодуль;
КонтекстИсполнения.Набор = Набор;
@@ -231,7 +231,7 @@
ПропуститьОбработчикТестовогоМодуля = (ы > 0 И ОбработчикСобытияПереопределен(ИмяСобытия));
Если ПропуститьОбработчикТестовогоМодуля Тогда
- Параметры = ЮТОбщий.ЗначениеВМассиве(ОписаниеСобытия);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
@@ -246,7 +246,7 @@
Процедура ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия)
- Параметры = ЮТОбщий.ЗначениеВМассиве(ОписаниеСобытия);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
Если ЭтоСобытиеПеред(ИмяСобытия) Тогда
Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
@@ -264,11 +264,11 @@
Ошибки = Новый Массив();
- Для Каждого ИмяМодуля Из ЮТРасширения.ОбработчикиСобытий() Цикл
+ Для Каждого ИмяМодуля Из ЮТРасширенияСлужебный.ОбработчикиСобытий() Цикл
- Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
+ Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяСобытия);
- Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия);
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия);
Если Ошибка <> Неопределено Тогда
Ошибки.Добавить(Ошибка);
@@ -282,11 +282,11 @@
КонецФункции
// Вызвать обработчик модуля.
-//
+//
// Параметры:
// ИмяСобытия - Строка - Имя вызываемого метода обработки события
-// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
-//
+// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
+//
Процедура ВызватьОбработчикТестовогоМодуля(Знач ИмяСобытия, ОписаниеСобытия)
ОбработчикСобытияПереопределен = ОбработчикСобытияПереопределен(ИмяСобытия);
@@ -298,15 +298,15 @@
ЧастиКоманды = СтрРазделить(ИмяСобытия, ".");
Если ЧастиКоманды.Количество() = 2 Тогда
- ИмяМодуля = ЧастиКоманды[0];
+ ИмяМодуля = ЧастиКоманды[0];
ИмяСобытия = ЧастиКоманды[1];
КонецЕсли;
Ошибки = Новый Массив();
Команда = СтрШаблон("%1.%2()", ИмяМодуля, ИмяСобытия);
- Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
+ Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
- Ошибка = ЮТОбщий.ВыполнитьМетод(Команда);
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Команда);
Если Ошибка <> Неопределено Тогда
Ошибки.Добавить(Ошибка);
@@ -326,7 +326,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\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo" "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/\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.mdo"
similarity index 89%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo"
rename to "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/\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.mdo"
index 448bfcd4b..f86d80900 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\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТСобытия
+ ЮТСобытияСлужебный
ru
Генератор событий
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\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\241\320\276\320\276\320\261\321\211\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"
index 175c510c7..57d3c356b 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\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\241\320\276\320\276\320\261\321\211\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"
@@ -21,7 +21,7 @@
// Форматированный текст ошибки утверждения.
//
// Параметры:
-// ОписаниеПроверки - см. ЮТФабрика.ОписаниеПроверки
+// ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки
// ТекстОжидания - Строка - Описание ожидания
// ОбъектПроверки - Строка - Объект проверки
//
@@ -65,7 +65,7 @@
// Строка - Сообщение об ошибке события
Функция СообщениеОбОшибкеСобытия(ИмяСобытия, Ошибка) Экспорт
- ТипОшибки = ЮТФабрика.ТипыОшибок().ОшибкаОбработкиСобытия;
+ ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().ОшибкаОбработкиСобытия;
Возврат СтрШаблон("%1 '%2': %3", ТипОшибки, ИмяСобытия, КраткоеСообщениеОшибки(Ошибка));
КонецФункции
@@ -80,7 +80,6 @@
КонецФункции
-
// Формирует строковое представление значения. Для значений, преобразуемых в пустые строки, добавляет описание типа.
//
// Параметры:
@@ -110,7 +109,9 @@
// в противном случае, будет возвращен текст шаблона без изменений.
//
Функция ПодставитьПредставлениеЗначенияВШаблон(ШаблонСтроки, ЗначениеПараметра) Экспорт
+
Возврат СтрЗаменить(ШаблонСтроки, "%1", ПредставлениеЗначения(ЗначениеПараметра));
+
КонецФункции
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.suppress" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.suppress"
deleted file mode 100644
index 0102ef970..000000000
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\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"
similarity index 93%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\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 abb15e9d6..486a36b84 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\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"
@@ -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.
@@ -35,7 +35,7 @@
Индекс = Данные1.Количество() - 1;
Пока Индекс >= 0 Цикл
- Если НЕ ЮТСравнениеКлиентСервер.ЗначенияРавны(Данные1[Индекс][Колонка.Имя], Данные2[Индекс][Колонка.Имя]) Тогда
+ Если НЕ ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Данные1[Индекс][Колонка.Имя], Данные2[Индекс][Колонка.Имя]) Тогда
Возврат Ложь;
КонецЕсли;
Индекс = Индекс - 1;
@@ -69,7 +69,7 @@
КонецЕсли;
Если УчитыватьТолькоВидимыеКолонки И УчитыватьТолькоВидимыеСтроки Тогда
- ЮТОбщийВызовСервера.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента);
+ ЮТОбщийСлужебныйВызовСервера.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента);
КонецЕсли;
НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы;
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\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/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\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.mdo"
similarity index 80%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\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/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\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.mdo"
index 6b1ab8a63..c2bec952a 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\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/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\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.mdo"
@@ -1,6 +1,6 @@
- ЮТСравнениеСервер
+ ЮТСравнениеСлужебныйВызовСервера
ru
Сравнение сервер
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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"
similarity index 85%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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 4b71a6fb9..3729f5d9d 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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"
@@ -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.
@@ -51,23 +51,23 @@
Результат = Неопределено;
- Если ЭтоТипСтруктура(ТипЗначения) Тогда
+ Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) Тогда
Результат = СтруктурыРавны(Данные1, Данные2);
- ИначеЕсли ЭтоТипСоответствие(ТипЗначения) Тогда
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения) Тогда
Результат = СоответствияРавны(Данные1, Данные2);
- ИначеЕсли ЭтоТипМассива(ТипЗначения) Тогда
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипЗначения) Тогда
Результат = МассивыРавны(Данные1, Данные2);
ИначеЕсли ТипЗначения = Тип("ТабличныйДокумент") Тогда
- Результат = ЮТСравнениеСервер.ТабличныеДокументыРавны(Данные1, Данные2);
+ Результат = ЮТСравнениеСлужебныйВызовСервера.ТабличныеДокументыРавны(Данные1, Данные2);
- ИначеЕсли ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТОбщий.ОписаниеТиповЛюбаяСсылка().СодержитТип(ТипЗначения) Тогда
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда
// Возвращаем ложь, так как для этих типов должно сработать обычное равенство
Результат = Ложь;
КонецЕсли; // BSLLS:IfElseIfEndsWithElse-off
@@ -75,7 +75,7 @@
#Если Сервер Тогда
Если ТипЗначения = Тип("ТаблицаЗначений") Тогда
- Результат = ЮТСравнениеСервер.ТаблицыРавны(Данные1, Данные2);
+ Результат = ЮТСравнениеСлужебныйВызовСервера.ТаблицыРавны(Данные1, Данные2);
ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда
@@ -84,7 +84,7 @@
КонецЕсли; // BSLLS:IfElseIfEndsWithElse-off
#КонецЕсли
- Если Результат = Неопределено И ПараметрыСравнения <> Неопределено И ЮТОбщий.ЗначениеСтруктуры(ПараметрыСравнения, "ГлубокийАнализ", Ложь) Тогда
+ Если Результат = Неопределено И ПараметрыСравнения <> Неопределено И ЮТКоллекции.ЗначениеСтруктуры(ПараметрыСравнения, "ГлубокийАнализ", Ложь) Тогда
Результат = СравнитьПоЗначению(Данные1, Данные2);
КонецЕсли;
@@ -127,7 +127,7 @@
//
// Возвращаемое значение:
// Структура - Параметры проверки:
-// * ОбъектПроверки - см. ЮТФабрика.ОписаниеПроверяемогоЗначения
+// * ОбъектПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверяемогоЗначения
// * ПрефиксОшибки - Строка, Неопределено -
// * ОписаниеПроверки - Строка, Неопределено -
// * ВидСравнения - Строка
@@ -136,7 +136,7 @@
// * ТекстПроверяемоеЗначение - Строка
Функция ПараметрыПроверки(ВидСравнения, ПроверяемоеЗначение, ИмяСвойства, ОжидаемоеЗначение, Реверс = Ложь) Экспорт
- Параметры = ЮТФабрика.ОписаниеПроверки(ПроверяемоеЗначение);
+ Параметры = ЮТФабрикаСлужебный.ОписаниеПроверки(ПроверяемоеЗначение);
Параметры.ОбъектПроверки.ИмяСвойства = ИмяСвойства;
Параметры.Вставить("ВидСравнения", ВидСравнения);
Параметры.Вставить("ОжидаемоеЗначение", ОжидаемоеЗначение);
@@ -235,7 +235,7 @@
ТипЗнч(Значение),
ОжидаемыйТип,
Суффикс);
- ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки);
+ ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки);
КонецЕсли;
Возврат Соответствует;
@@ -261,11 +261,11 @@
Результат = Ложь;
ТипЗначения = ТипЗнч(Значение);
- Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("ФиксированнаяСтруктура") Тогда
+ Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) Тогда
Результат = Значение.Свойство(Свойство);
- ИначеЕсли ТипЗначения = Тип("Соответствие") Или ТипЗначения = Тип("ФиксированноеСоответствие") Тогда
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения) Тогда
Для Каждого КлючЗначение Из Значение Цикл
@@ -358,12 +358,12 @@
ИскомоеЗначениеНайдено = СтрНайти(ПроверяемоеЗначение, ОжидаемоеЗначение) > 0;
- ИначеЕсли ЭтоТипМассива(ТипПроверяемогоЗначения) Тогда
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипПроверяемогоЗначения) Тогда
Индекс = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение);
ИскомоеЗначениеНайдено = Индекс <> Неопределено;
- ИначеЕсли ЭтоТипКлючЗначение(ТипПроверяемогоЗначения) Тогда
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоКлючЗначение(ТипПроверяемогоЗначения) Тогда
ИскомоеЗначениеНайдено = Ложь;
ТипОжидаемогоЗначения = ТипЗнч(ОжидаемоеЗначение);
@@ -379,7 +379,7 @@
ИскомоеЗначениеНайдено = ПроверяемоеЗначение.НайтиПоЗначению(ОжидаемоеЗначение) <> Неопределено;
- ИначеЕсли ПроверяемоеЗначение <> Неопределено И ЮТОбщий.МетодОбъектаСуществует(ПроверяемоеЗначение, "Найти") Тогда
+ ИначеЕсли ПроверяемоеЗначение <> Неопределено И ЮТМетодыСлужебный.МетодОбъектаСуществует(ПроверяемоеЗначение, "Найти") Тогда
ИскомоеЗначениеНайдено = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение) <> Неопределено;
@@ -393,39 +393,6 @@
КонецФункции
-Функция ЭтоТипМассива(Тип)
-
- Возврат Тип = Тип("Массив") Или Тип = Тип("ФиксированныйМассив");
-
-КонецФункции
-
-Функция ЭтоТипСтруктура(Тип)
-
- Возврат Тип = Тип("Структура") Или Тип = Тип("ФиксированнаяСтруктура");
-
-КонецФункции
-
-Функция ЭтоТипСоответствие(Тип)
-
- Возврат Тип = Тип("Соответствие") Или Тип = Тип("ФиксированноеСоответствие");
-
-КонецФункции
-
-Функция ЭтоТипКлючЗначение(Тип)
-
- Возврат ЭтоТипСтруктура(Тип) ИЛИ ЭтоТипСоответствие(Тип);
-
-КонецФункции
-
-Функция ЭтоПримитивныйТип(ТипЗначения)
-
- Возврат ТипЗначения = Тип("Число")
- ИЛИ ТипЗначения = Тип("Строка")
- ИЛИ ТипЗначения = Тип("Дата")
- ИЛИ ТипЗначения = Тип("Булево");
-
-КонецФункции
-
#Область РеализацияПредикатор
Процедура ПроверитьВыражениеПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения) Экспорт
@@ -433,7 +400,7 @@
Попытка
ВызватьОбработчикПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);
Исключение
- ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(СтатусПроверки, ИнформацияОбОшибке());
+ ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(СтатусПроверки, ИнформацияОбОшибке());
КонецПопытки;
КонецПроцедуры
@@ -443,7 +410,7 @@
// Параметры:
// Значение - Произвольный - Значение
// Выражение - см. ЮТФабрика.ВыражениеПредиката
-// СтатусПроверки - см. ЮТФабрика.ОписаниеРезультатаПроверки
+// СтатусПроверки - см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки
// ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке
// ПараметрыСравнения - Неопределено
// - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры
@@ -514,6 +481,10 @@
Результат = ПроверитьСоответствуетШаблону(СтатусПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки);
+ ИначеЕсли ВидСравненияВыражения = ВидыСравнения.ВСписке Тогда
+
+ Результат = ПроверитьВСписке(СтатусПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки);
+
Иначе
ВызватьИсключение СтрШаблон("Неизвестное выражение предиката `%1`", Выражение.ВидСравнения);
@@ -539,13 +510,13 @@
Возврат;
КонецЕсли;
- ШаблонСообщения = ЮТПредикатыКлиентСервер.ШаблонВыражения(ПараметрыПроверки.ВидСравнения);
+ ШаблонСообщения = ЮТПредикатыСлужебныйКлиентСервер.ШаблонВыражения(ПараметрыПроверки.ВидСравнения);
Сообщение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(ШаблонСообщения, ПараметрыПроверки.ОжидаемоеЗначение);
ТекстОшибки = ЮТСообщенияСлужебный.ФорматированныйТекстОшибкиУтверждения(ПараметрыПроверки, Сообщение, ПараметрыПроверки.ТекстПроверяемоеЗначение);
- ТекстОшибки = ЮТРегистрацияОшибок.ДобавитьОписания(ТекстОшибки, ПараметрыПроверки);
+ ТекстОшибки = ЮТРегистрацияОшибокСлужебный.ДобавитьОписания(ТекстОшибки, ПараметрыПроверки);
- ЮТРегистрацияОшибок.ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки,
+ ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки,
ТекстОшибки,
ФактическоеЗначение,
ПараметрыПроверки.ОжидаемоеЗначение);
@@ -582,8 +553,8 @@
Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда
#Если ВебКлиент Или ТонкийКлиент Тогда
- Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение);
-#Иначе
+ Значение = ЮТОбщийСлужебныйВызовСервера.ИзХранилищаЗначений(Значение);
+#Иначе
Значение = Значение.Получить();
#КонецЕсли
КонецЕсли;
@@ -616,7 +587,7 @@
Если ФактическаяДлина = Неопределено Тогда
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
- ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
+ ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
Возврат;
КонецЕсли;
@@ -636,7 +607,7 @@
Если Результат = Неопределено Тогда
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
- ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
+ ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
КонецЕсли;
Возврат Результат;
@@ -656,13 +627,31 @@
Если СоответствуетШаблону = Неопределено Тогда
ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
- ЮТРегистрацияОшибок.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
+ ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки);
КонецЕсли;
Возврат СоответствуетШаблону;
КонецФункции
+Функция ПроверитьВСписке(РезультатПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки)
+
+ ТипыПараметровСоответствуют = ПроверитьТипЗначения(РезультатПроверки, ОжидаемоеЗначение, "Массив, ФиксированныйМассив, СписокЗначений");
+
+ Если Не ТипыПараметровСоответствуют Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ ТипСписка = ТипЗнч(ОжидаемоеЗначение);
+
+ Если ЮТТипыДанныхСлужебный.ЭтоМассива(ТипСписка) Тогда
+ Возврат ОжидаемоеЗначение.Найти(ПроверяемоеЗначение) <> Неопределено;
+ Иначе
+ Возврат ОжидаемоеЗначение.НайтиПоЗначению(ПроверяемоеЗначение) <> Неопределено;
+ КонецЕсли;
+
+КонецФункции
+
#КонецОбласти
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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.mdo"
similarity index 84%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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.mdo"
index 2deec1154..f06402790 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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.mdo"
@@ -1,6 +1,6 @@
- ЮТСравнениеКлиентСервер
+ ЮТСравнениеСлужебныйКлиентСервер
ru
Сравнение клиент сервер
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 b99dede19..d0a526862 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"
@@ -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.
@@ -18,6 +18,73 @@
#Область ПрограммныйИнтерфейс
+// Конкатенирует строки, разделяя их разделителем
+//
+// Параметры:
+// ИсходнаяСтрока - Строка - Исходная строка
+// ДополнительнаяСтрока - Строка - Добавляемая строка
+// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками
+//
+// Возвращаемое значение:
+// Строка - Результат конкатенации строк
+//
+Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт
+
+ Если Не ПустаяСтрока(ДополнительнаяСтрока) Тогда
+
+ Если Не ПустаяСтрока(ИсходнаяСтрока) Тогда
+ Возврат Строка(ИсходнаяСтрока) + Разделитель + Строка(ДополнительнаяСтрока);
+ Иначе
+ Возврат Строка(ДополнительнаяСтрока);
+ КонецЕсли;
+
+ КонецЕсли;
+
+ Возврат Строка(ИсходнаяСтрока);
+
+КонецФункции
+
+// Возвращает массив на основании строки.
+// При этом:
+// * отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке.
+// * в отличии от `СтрРазделить` в качестве разделителля используется вся переданная строка, а не любой из символов входящий в нее.
+//
+// Параметры:
+// Значение - Строка - преобразуемая строка
+// Разделитель - Строка - строка-разделитель
+//
+// Возвращаемое значение:
+// Массив Из Строка - массив строк
+//
+Функция РазделитьСтроку(Знач Значение, Разделитель = ";") Экспорт
+
+ КодУниверсальногоРазделителя = 5855;
+ УниверсальныйРазделитель = Символ(КодУниверсальногоРазделителя);
+ МодифицированнаяСтрока = СтрЗаменить(Значение, Разделитель, УниверсальныйРазделитель);
+
+ МассивСтрок = ?(МодифицированнаяСтрока = "", Новый Массив, СтрРазделить(МодифицированнаяСтрока, УниверсальныйРазделитель));
+
+ Для Индекс = 0 По МассивСтрок.ВГраница() Цикл
+ МассивСтрок[Индекс] = СокрЛП(МассивСтрок[Индекс]);
+ КонецЦикла;
+
+ Возврат МассивСтрок;
+
+КонецФункции
+
+// Формирует строку из заданного количества повторяемых символов
+// Параметры:
+// Символ - Строка - Повторяемый символ
+// Количество - Число - Количество повторений
+//
+// Возвращаемое значение:
+// Строка - Строка повторяемых символов
+Функция СтрокаСимволов(Символ, Количество) Экспорт
+
+ Возврат СтрСоединить(Новый Массив(Количество + 1), Символ);
+
+КонецФункции
+
// Строка с символами русского алфавита
//
// Параметры:
@@ -56,6 +123,50 @@
КонецФункции
+// Выполняет сравнение версий
+//
+// Параметры:
+// Версия1 - Строка
+// Версия2 - Строка
+//
+// Возвращаемое значение:
+// Число - Результат сравнения
+// `-1` - Версия1 меньше Версия2
+// `0` - Версии равны
+// `1` - Версия1 больше Версия2
+Функция СравнитьВерсии(Версия1, Версия2) Экспорт
+
+ ЧастиВерсия1 = СтрРазделить(Версия1, ".");
+ ЧастиВерсия2 = СтрРазделить(Версия2, ".");
+
+ КоличествоЧастейВерсия1 = ЧастиВерсия1.Количество();
+ КоличествоЧастейВерсия2 = ЧастиВерсия2.Количество();
+
+ КоличествоЧастей = Макс(КоличествоЧастейВерсия1, КоличествоЧастейВерсия2);
+
+ Для Инд = КоличествоЧастейВерсия1 По КоличествоЧастей - 1 Цикл
+ ЧастиВерсия1.Добавить("0");
+ КонецЦикла;
+
+ Для Инд = КоличествоЧастейВерсия2 По КоличествоЧастей - 1 Цикл
+ ЧастиВерсия2.Добавить("0");
+ КонецЦикла;
+
+ Результат = 0;
+
+ Для Разряд = 0 По КоличествоЧастей - 1 Цикл
+
+ Результат = Число(ЧастиВерсия1[Разряд]) - Число(ЧастиВерсия2[Разряд]);
+ Если Результат <> 0 Тогда
+ Прервать;
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Макс(Мин(Результат, 1), -1);
+
+КонецФункции
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
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 97d9a2d3e..443ad1ae4 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"
@@ -37,14 +37,14 @@
КонецЕсли;
Если ЗначениеЗаполнено(Наименование) Тогда
- Если ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
+ Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
Данные.Вставить("Description", Наименование);
Иначе
Данные.Вставить("Наименование", Наименование);
КонецЕсли;
КонецЕсли;
- Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь);
+ Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
@@ -74,7 +74,7 @@
Данные.Удалить("РежимЗаписи");
КонецЕсли;
- Ссылка = ЮТТестовыеДанныеВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь);
+ Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь);
ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка);
Возврат Ссылка;
@@ -119,13 +119,13 @@
Функция СлучайноеЧисло(Минимум = 0, Максимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт
#Если ВебКлиент Тогда
- ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТестовыеДанные.СлучайноеЧисло");
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТестовыеДанные.СлучайноеЧисло");
#Иначе
- Генератор = ЮТКонтекст.ЗначениеКонтекста("ГенераторСлучайныхЧисел");
+ Генератор = ЮТКонтекстСлужебный.ЗначениеКонтекста("ГенераторСлучайныхЧисел");
Если Генератор = Неопределено Тогда
Генератор = Новый ГенераторСлучайныхЧисел();
- ЮТКонтекст.УстановитьЗначениеКонтекста("ГенераторСлучайныхЧисел", Генератор);
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("ГенераторСлучайныхЧисел", Генератор);
КонецЕсли;
Если Максимум = Неопределено Тогда
@@ -238,22 +238,143 @@
//
// Возвращаемое значение:
// Дата - Случайная дата
-Функция СлучайнаяДата(Знач Минимум = Неопределено, Знач Максимум = Неопределено) Экспорт
+Функция СлучайнаяДата(Знач Минимум = '00010101', Знач Максимум = '39991231') Экспорт
- Если Минимум = Неопределено Тогда
- Минимум = '00010101';
+ Если Минимум = Максимум Тогда
+ Возврат Минимум;
+ ИначеЕсли Максимум < Минимум Тогда
+ ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("СлучайнаяДата", "максимальное значение должно быть больше минимального");
КонецЕсли;
- Если Максимум = Неопределено Тогда
- Максимум = '39991231';
+ РазностьДат = Максимум - Минимум;
+
+ Если РазностьДат <= МаксимумГенератора() Тогда
+ Возврат Минимум + СлучайноеЧисло(0, РазностьДат);
КонецЕсли;
СекундВДне = 86400;
- КоличествоДней = Цел((Максимум - Минимум) / СекундВДне);
+ КоличествоДней = Цел((РазностьДат) / СекундВДне);
+
Возврат Минимум + СлучайноеЧисло(0, КоличествоДней) * СекундВДне + СлучайноеЧисло(0, СекундВДне);
КонецФункции
+// Генерирует случайное время
+//
+// Возвращаемое значение:
+// Дата - Случайное время
+Функция СлучайноеВремя() Экспорт
+
+ СекундВСутках = 60*60*24;
+
+ Возврат '00010101000000' + СлучайноеЧисло(0, СекундВСутках - 1);
+
+КонецФункции
+
+// Генерирует случайную дату в будущем.
+// Максимальное значение генерируемой даты можно ограничить параметрами.
+// Например: СлучайнаяДатаВБудущем(2, "часа") - будет сформирована дата в интервале (ТекущаяДата, ТекущаяДата + 2 часа]
+//
+// Параметры:
+// Интервал - Число - Интервал
+// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения
+// * секунда, секунды, секунд
+// * минута, минуты, минут
+// * час, часа, часов
+// * день, дня, дней
+// * месяц, месяца, месяцев
+//
+// Возвращаемое значение:
+// Дата - Случайная дата в будущем
+Функция СлучайнаяДатаВБудущем(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт
+
+ //@skip-check use-non-recommended-method
+ Возврат СлучайнаяДатаПосле(ТекущаяДата(), Интервал, ТипИнтервала);
+
+КонецФункции
+
+// Генерирует случайную дату в прошлом.
+// Минимальное значение генерируемой даты можно ограничить параметрами.
+// Например: СлучайнаяДатаВПрошлом(2, "часа") - будет сформирована дата в интервале [ТекущаяДата - 2 часа, ТекущаяДата)
+//
+// Параметры:
+// Интервал - Число - Интервал
+// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения
+// * секунда, секунды, секунд
+// * минута, минуты, минут
+// * час, часа, часов
+// * день, дня, дней
+// * месяц, месяца, месяцев
+//
+// Возвращаемое значение:
+// Дата - Случайная дата в прошлом
+Функция СлучайнаяДатаВПрошлом(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт
+
+ //@skip-check use-non-recommended-method
+ Возврат СлучайнаяДатаДо(ТекущаяДата(), Интервал, ТипИнтервала);
+
+КонецФункции
+
+// Генерирует случайную дату, значение которой больше указанной.
+// Максимальное значение генерируемой даты можно ограничить параметрами.
+// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервале [Дата - 2 часа, Дата)
+//
+// Параметры:
+// Дата - Дата
+// Интервал - Число - Интервал
+// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения
+// * секунда, секунды, секунд
+// * минута, минуты, минут
+// * час, часа, часов
+// * день, дня, дней
+// * месяц, месяца, месяцев
+//
+// Возвращаемое значение:
+// Дата
+Функция СлучайнаяДатаПосле(Дата, Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт
+
+ ИнтервалНеУказан = Интервал = Неопределено И ТипИнтервала = Неопределено;
+
+ Если ИнтервалНеУказан Тогда
+ Возврат СлучайнаяДата(Дата + 1);
+ Иначе
+ Минимум = Дата + 1;
+ Максимум = ЮТОбщий.ДобавитьКДате(Дата, Интервал, ТипИнтервала);
+ Возврат СлучайнаяДата(Минимум, Максимум);
+ КонецЕсли;
+
+КонецФункции
+
+// Генерирует случайную дату, значение которой меньше указанной.
+// Минимальное значение генерируемой даты можно ограничить параметрами.
+// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервале [Дата - 2 часа, Дата)
+//
+// Параметры:
+// Дата - Дата
+// Интервал - Число - Интервал
+// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения
+// * секунда, секунды, секунд
+// * минута, минуты, минут
+// * час, часа, часов
+// * день, дня, дней
+// * месяц, месяца, месяцев
+//
+// Возвращаемое значение:
+// Дата
+Функция СлучайнаяДатаДо(Дата, Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт
+
+ ИнтервалНеУказан = Интервал = Неопределено И ТипИнтервала = Неопределено;
+
+ Если ИнтервалНеУказан Тогда
+ Возврат СлучайнаяДата(, Дата - 1);
+ Иначе
+ Минимум = ЮТОбщий.ДобавитьКДате(Дата, -Интервал, ТипИнтервала);
+ Максимум = Дата - 1;
+ Возврат СлучайнаяДата(Минимум, Максимум);
+ КонецЕсли;
+
+КонецФункции
+
// Генерирует и возвращает случайный IP адрес.
//
// Возвращаемое значение:
@@ -305,7 +426,7 @@
// ПеречислениеСсылка
Функция СлучайноеЗначениеПеречисления(Перечисление) Экспорт
- Возврат ЮТТестовыеДанныеВызовСервера.СлучайноеЗначениеПеречисления(Перечисление);
+ Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеЗначениеПеречисления(Перечисление);
КонецФункции
@@ -320,7 +441,7 @@
// ПеречислениеСсылка
Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор = Неопределено) Экспорт
- Возврат ЮТТестовыеДанныеВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор);
+ Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор);
КонецФункции
@@ -514,7 +635,7 @@
Варианты = Новый Массив;
Варианты.Добавить(ЗначенияПоУмолчанию);
- Ключи = ЮТОбщий.ВыгрузитьЗначения(ЗначенияПараметров, "Ключ");
+ Ключи = ЮТКоллекции.ВыгрузитьЗначения(ЗначенияПараметров, "Ключ");
ДобавитьВарианты(Варианты, ЗначенияПоУмолчанию, ЗначенияПараметров, Ключи, 0);
@@ -551,6 +672,26 @@
КонецФункции
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда
+// Возвращает конструктор создания объекта XDTO
+//
+// Параметры:
+// ИмяТипа - Строка - Имя типа объекта
+// ПространствоИмен - Строка - Пространство имен типа
+// Фабрика - ФабрикаXDTO - Используемая фабрика XDTO
+//
+// Возвращаемое значение:
+// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор объекта XDTO
+Функция КонструкторОбъектаXDTO(ИмяТипа, ПространствоИмен, Фабрика = Неопределено) Экспорт
+
+ Обработка = Обработки.ЮТКонструкторОбъектаXDTO.Создать();
+ Обработка.Инициализировать(ИмяТипа, ПространствоИмен, Фабрика);
+
+ Возврат Обработка;
+
+КонецФункции
+#КонецЕсли
+
// Удаляет переданные объекта
//
// Параметры:
@@ -558,7 +699,7 @@
Процедура Удалить(Ссылки) Экспорт
Если ЗначениеЗаполнено(Ссылки) Тогда
- ЮТТестовыеДанныеВызовСервера.Удалить(Ссылки);
+ ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки);
КонецЕсли;
КонецПроцедуры
@@ -622,7 +763,7 @@
// ОбработкаОбъект.ЮТHTTPСервисЗапрос - Мок
Функция HTTPСервисЗапрос() Экспорт
- Если ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
+ Если ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
Возврат Обработки.ЮТHTTPServiceRequest.Создать();
Иначе
Возврат Обработки.ЮТHTTPСервисЗапрос.Создать();
@@ -657,7 +798,7 @@
// Ссылка - ЛюбаяСсылка
// ИмяРеквизита - Строка
// ЗначениеРеквизита - Произвольный
-// ПараметрыЗаписи - см. ЮТФабрика.ПараметрыЗаписи
+// ПараметрыЗаписи - см. ЮТФабрикаСлужебный.ПараметрыЗаписи
Процедура УстановитьЗначениеРеквизита(Ссылка, ИмяРеквизита, ЗначениеРеквизита, ПараметрыЗаписи = Неопределено) Экспорт
Значения = Новый Соответствие();
@@ -671,10 +812,10 @@
// Параметры:
// Ссылка - ЛюбаяСсылка - Ссылка
// ЗначенияРеквизитов - Структура, Соответствие из Произвольный - Значения реквизитов
-// ПараметрыЗаписи - см. ЮТФабрика.ПараметрыЗаписи
+// ПараметрыЗаписи - см. ЮТФабрикаСлужебный.ПараметрыЗаписи
Процедура УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи = Неопределено) Экспорт
- ЮТТестовыеДанныеВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов);
+ ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов);
КонецПроцедуры
@@ -706,7 +847,7 @@
Ключ = Ключи[Инд];
Для Каждого Значение Из ЗначенияПараметров[Ключ] Цикл
- Вариант = ЮТОбщий.СкопироватьСтруктуру(БазоваяСтруктура);
+ Вариант = ЮТКоллекции.СкопироватьСтруктуру(БазоваяСтруктура);
Вариант[Ключ] = Значение;
Варианты.Добавить(Вариант);
@@ -716,4 +857,25 @@
КонецПроцедуры
+Функция МножительПериода(ТипИнтервала)
+
+ Множители = ЮТСлужебныйПовторногоИспользования.МножителиИнтервалов();
+ Возврат Множители[ТипИнтервала];
+
+КонецФункции
+
+Функция ЭтоМесяц(ТипИнтервала)
+
+ Возврат СтрСравнить(ТипИнтервала, "месяц") = 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 35a5c6d50..4c5690195 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"
@@ -56,7 +56,7 @@
Иначе
- Значение = ЮТТестовыеДанныеВызовСервера.ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения);
+ Значение = ЮТТестовыеДанныеСлужебныйВызовСервера.ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения);
ДобавитьТестовуюЗапись(Значение);
КонецЕсли;
@@ -152,9 +152,9 @@
Функция ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыСозданияОбъектов, ТаблицаЗначений) Экспорт
- ПараметрыЗаполнения = ЮТФабрика.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов);
+ ПараметрыЗаполнения = ЮТФабрикаСлужебный.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов);
- Возврат ЮТТестовыеДанныеВызовСервера.ЗагрузитьИзМакета(Макет,
+ Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.ЗагрузитьИзМакета(Макет,
ОписанияТипов,
КэшЗначений,
ЗаменяемыеЗначения,
@@ -169,7 +169,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\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"
similarity index 81%
rename from "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\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"
rename to "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 04717e6f7..37f235a76 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\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"
@@ -20,7 +20,6 @@
Функция СоздатьЗапись(Знач Менеджер, Знач Данные, Знач ПараметрыЗаписи, Знач ВернутьОбъект) Экспорт
- Менеджер = ЮТОбщий.Менеджер(Менеджер);
ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи);
Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства);
@@ -36,21 +35,33 @@
КонецФункции
// Создает новый объект и заполняет его данными
-//
+//
// Параметры:
// Менеджер - Произвольный
// Данные - Структура - Данные заполнения объекта
// ДополнительныеСвойства - Структура - Дополнительные свойства объекта
-//
+//
// Возвращаемое значение:
// Произвольный - Созданный объект
Функция НовыйОбъект(Знач Менеджер, Знач Данные, Знач ДополнительныеСвойства = Неопределено) Экспорт
- Менеджер = ЮТОбщий.Менеджер(Менеджер);
-
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер);
+ Менеджер = ЮТОбщий.Менеджер(ОписаниеОбъектаМетаданных);
+
+ ЭтоРегистр = ЮТМетаданные.ЭтоРегистр(ОписаниеОбъектаМетаданных);
Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа, Данные);
+
+ Если ДополнительныеСвойства <> Неопределено Тогда
+ ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства);
+ КонецЕсли;
+
+ Если ЭтоРегистр Тогда
+
+ ЗаполнитьНаборРегистра(Объект, Данные);
+ Возврат Объект;
+
+ КонецЕсли;
ЗаполнитьЗначенияСвойств(Объект, Данные);
Если ОписаниеОбъектаМетаданных.ОписаниеТипа.ТабличныеЧасти Тогда
@@ -73,10 +84,6 @@
ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных);
- Если ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный И ДополнительныеСвойства <> Неопределено Тогда
- ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства);
- КонецЕсли;
-
Возврат Объект;
КонецФункции
@@ -84,21 +91,20 @@
Процедура Удалить(Знач Ссылки) Экспорт
Если ТипЗнч(Ссылки) <> Тип("Массив") Тогда
- Ссылки = ЮТОбщий.ЗначениеВМассиве(Ссылки);
+ Ссылки = ЮТКоллекции.ЗначениеВМассиве(Ссылки);
КонецЕсли;
- СсылочныеТипы = ЮТОбщий.ОписаниеТиповЛюбаяСсылка();
Ошибки = Новый Массив;
Для Каждого Ссылка Из Ссылки Цикл
ТипЗначения = ТипЗнч(Ссылка);
- Если Ссылка = Неопределено ИЛИ СтрНачинаетсяС(ЮТОбщий.ПредставлениеТипа(ТипЗначения), "Enum") Тогда
+ Если Ссылка = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда
Продолжить;
КонецЕсли;
Попытка
- Если СсылочныеТипы.СодержитТип(ТипЗначения) Тогда
+ Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда
Объект = Ссылка.ПолучитьОбъект();
Если Объект <> Неопределено Тогда
Объект.Удалить();
@@ -112,7 +118,7 @@
КонецЕсли;
Исключение
- Ошибки.Добавить(ЮТРегистрацияОшибок.ПредставлениеОшибки("Удаление " + Ссылка, ИнформацияОбОшибке()));
+ Ошибки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление " + Ссылка, ИнформацияОбОшибке()));
КонецПопытки;
@@ -141,16 +147,9 @@
КонецЕсли;
ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ОбъектМетаданных);
- ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа;
+ Менеджер = ЮТОбщий.Менеджер(ОбъектМетаданных);
- Если ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык() Тогда
- ИмяТипаМенеджера = СтрШаблон("%1Manager.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя);
- Иначе
- ИмяТипаМенеджера = СтрШаблон("%1Менеджер.%2", ОписаниеТипа.Имя, ОбъектМетаданных.Имя);
- КонецЕсли;
- Менеджер = Новый (ИмяТипаМенеджера);
-
- Объект = СоздатьОбъект(Менеджер, ОписаниеТипа, РеквизитыЗаполнения);
+ Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа, РеквизитыЗаполнения);
Если ЗначениеЗаполнено(РеквизитыЗаполнения) Тогда
ЗаполнитьЗначенияСвойств(Объект, РеквизитыЗаполнения);
@@ -169,7 +168,7 @@
Знач ПараметрыЗаполнения,
Знач ТаблицаЗначений) Экспорт
- Таблица = ЮТТестовыеДанные_ТаблицыЗначений.ЗагрузитьИзМакета(Макет,
+ Таблица = ЮТТестовыеДанныеСлужебныйТаблицыЗначений.ЗагрузитьИзМакета(Макет,
ОписанияТипов,
КэшЗначений,
ЗаменяемыеЗначения,
@@ -179,7 +178,7 @@
Возврат Таблица;
КонецЕсли;
- Реквизиты = СтрСоединить(ЮТОбщий.ВыгрузитьЗначения(Таблица.Колонки, "Имя"), ",");
+ Реквизиты = СтрСоединить(ЮТКоллекции.ВыгрузитьЗначения(Таблица.Колонки, "Имя"), ",");
Результат = Новый Массив(Таблица.Количество());
Для Инд = 0 По Таблица.Количество() - 1 Цикл
@@ -207,7 +206,7 @@
Условия = ЮТест.Предикат(Отбор)
.Реквизит("Предопределенный").Равно(Истина);
- ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка");
+ ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка");
Данные = ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса);
@@ -242,11 +241,11 @@
#Область СлужебныеПроцедурыИФункции
// Создать объект.
-//
-// Параметры: ОписаниеМенеджера -
+//
+// Параметры: ОписаниеМенеджера -
// См. ОписаниеМенеджера
// Менеджер - Произвольный - Менеджер
-// ОписаниеТипа - см. ЮТМетаданные.ОписаниеОбъектаМетаданных
+// ОписаниеТипа - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных
// Данные - Структура
// Возвращаемое значение:
// Произвольный - Создать объект
@@ -254,7 +253,7 @@
Если ОписаниеТипа.Конструктор = "СоздатьЭлемент" Тогда
- ЭтоГруппа = ?(Данные = Неопределено, Ложь, ЮТОбщий.ЗначениеСтруктуры(Данные, "ЭтоГруппа", Ложь));
+ ЭтоГруппа = ?(Данные = Неопределено, Ложь, ЮТКоллекции.ЗначениеСтруктуры(Данные, "ЭтоГруппа", Ложь));
Если ЭтоГруппа Тогда
Результат = Менеджер.СоздатьГруппу();
Иначе
@@ -286,11 +285,11 @@
КонецФункции
// Записать объект.
-//
+//
// Параметры:
// Объект - Произвольный - Объект
// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи
-//
+//
// Возвращаемое значение:
// ЛюбаяСсылка
Функция ЗаписатьОбъект(Объект, ПараметрыЗаписи)
@@ -299,10 +298,6 @@
Объект.ОбменДанными.Загрузка = Истина;
КонецЕсли;
- Если ЗначениеЗаполнено(ПараметрыЗаписи.ДополнительныеСвойства) Тогда
- ЮТОбщий.ОбъединитьВСтруктуру(Объект.ДополнительныеСвойства, ПараметрыЗаписи.ДополнительныеСвойства);
- КонецЕсли;
-
Попытка
Если ПараметрыЗаписи.РежимЗаписи <> Неопределено Тогда
@@ -328,10 +323,10 @@
Процедура ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных)
- АнглийскийЯзык = ЮТОбщийВызовСервера.ЭтоАнглийскийВстроенныйЯзык();
- ИмяТипаДокумент = ?(АнглийскийЯзык,"Document","Документ");
- ИмяРеквизитаКод = ?(АнглийскийЯзык,"Code","Код");
- ИмяРеквизитаНаименование = ?(АнглийскийЯзык,"Description","Наименование");
+ АнглийскийЯзык = ЮТОбщийСлужебныйВызовСервера.ЭтоАнглийскийВстроенныйЯзык();
+ ИмяТипаДокумент = ?(АнглийскийЯзык, "Document", "Документ");
+ ИмяРеквизитаКод = ?(АнглийскийЯзык, "Code", "Код");
+ ИмяРеквизитаНаименование = ?(АнглийскийЯзык, "Description", "Наименование");
ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа;
Если ОписаниеТипа.Имя = ИмяТипаДокумент Тогда
@@ -345,13 +340,13 @@
Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаКод)
И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаКод].Обязательный
- И Не ЗначениеЗаполнено(Объект.Код) Тогда
+ И НЕ ЗначениеЗаполнено(Объект.Код) Тогда
Объект.УстановитьНовыйКод();
КонецЕсли;
Если ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаНаименование)
И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование].Обязательный
- И Не ЗначениеЗаполнено(Объект.Наименование) Тогда
+ И НЕ ЗначениеЗаполнено(Объект.Наименование) Тогда
Объект.Наименование = ЮТТестовыеДанные.СлучайнаяСтрока();
КонецЕсли;
@@ -379,9 +374,20 @@
Менеджер = ЮТОбщий.Менеджер(Описание);
Возврат Менеджер.СоздатьКлючЗаписи(КлючевыеРеквизиты);
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоТипНабораЗаписей(ТипЗначения) Тогда
+
+ КлючевыеРеквизиты = Новый Структура();
+
+ Для Каждого ЭлементОтбора Из Объект.Отбор Цикл
+ КлючевыеРеквизиты.Вставить(ЭлементОтбора.Имя, ЭлементОтбора.Значение);
+ КонецЦикла;
+
+ Менеджер = ЮТОбщий.Менеджер(Объект);
+ Возврат Менеджер.СоздатьКлючЗаписи(КлючевыеРеквизиты);
+
Иначе
- Сообщение = ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.КлючЗаписи", Объект);
+ Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.КлючЗаписи", Объект);
ВызватьИсключение Сообщение;
КонецЕсли;
@@ -400,4 +406,15 @@
КонецФункции
+Процедура ЗаполнитьНаборРегистра(Набор, ДанныеЗаписи)
+
+ Запись = Набор.Добавить();
+ ЗаполнитьЗначенияСвойств(Запись, ДанныеЗаписи);
+
+ Для Каждого ЭлементОтбора Из Набор.Отбор Цикл
+ ЭлементОтбора.Установить(Запись[ЭлементОтбора.Имя]);
+ КонецЦикла;
+
+КонецПроцедуры
+
#КонецОбласти
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\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\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\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\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/\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.mdo"
similarity index 80%
rename from "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\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\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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo"
rename to "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/\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.mdo"
index ffd304d45..a104c2e86 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\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\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\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\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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТТестовыеДанныеВызовСервера
+ ЮТТестовыеДанныеСлужебныйВызовСервера
ru
Тестовые данные (вызов сервера)
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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\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\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl"
similarity index 93%
rename from "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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl"
rename to "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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl"
index a37037e1e..734c06059 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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\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\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl"
@@ -49,7 +49,7 @@
ПараметрыЗагрузки = ПараметрыЗагрузки(КолонкиМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения);
- Выборка = ЮТОбщийВызовСервера.ВыборкаИзТабличногоДокумента(ДанныеМакета);
+ Выборка = ЮТОбщийСлужебныйВызовСервера.ВыборкаИзТабличногоДокумента(ДанныеМакета);
Пока Выборка.Следующий() Цикл
@@ -92,7 +92,7 @@
Продолжить;
КонецЕсли;
- КолонкиМакета = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель);
+ КолонкиМакета = ЮТСтроки.РазделитьСтроку(Строка, Разделитель);
СледующаяСтрока(ПараметрыИтератора);
Прервать;
@@ -112,7 +112,7 @@
КонецЕсли;
СтрокаДанных = ПараметрыЗагрузки.Таблица.Добавить();
- Блоки = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель);
+ Блоки = ЮТСтроки.РазделитьСтроку(Строка, Разделитель);
Для Каждого ОписаниеКолонки Из ПараметрыЗагрузки.ОписаниеКолонок Цикл
@@ -166,7 +166,7 @@
ПараметрыЧтения.ИзВыборки = Истина;
ПараметрыЧтения.Вставить("Выборка", Источник);
Иначе
- ВызватьИсключение "Неподдерживаемый параметр";
+ ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ЗагрузитьИзМакета", "неподдерживаемый источник");
КонецЕсли;
Возврат ПараметрыЧтения;
@@ -210,8 +210,7 @@
КонецЕсли;
Иначе
-
- ВызватьИсключение "Некорректные/неподдерживаемые параметры чтения";
+ ВызватьИсключение ЮТИсключения.НекорректныеПараметрыМетода("ЗагрузитьИзМакета", "Некорректные/неподдерживаемые параметры чтения");
КонецЕсли;
@@ -225,16 +224,15 @@
ДанныеМакета = Неопределено;
ПараметрыСодержитДанные = ТипПараметра = Тип("ТабличныйДокумент")
- Или ТипПараметра = Тип("ТекстовыйДокумент")
- Или ТипПараметра = Тип("Строка")
- И СтрНачинаетсяС(Макет, "|");
+ ИЛИ ТипПараметра = Тип("ТекстовыйДокумент")
+ ИЛИ ТипПараметра = Тип("Строка") И СтрНачинаетсяС(Макет, "|");
Если ПараметрыСодержитДанные Тогда
ДанныеМакета = Макет;
ИначеЕсли ТипПараметра = Тип("Строка") Тогда
- ДанныеМакета = ЮТОбщийВызовСервера.Макет(Макет);
+ ДанныеМакета = ЮТОбщийСлужебныйВызовСервера.Макет(Макет);
Иначе
- ВызватьИсключение ЮТОбщий.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.ДанныеМакета", Макет);
+ ВызватьИсключение ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.ДанныеМакета", Макет);
КонецЕсли;
Возврат ДанныеМакета;
@@ -276,7 +274,7 @@
ЗаменяемыеЗначения = Новый Соответствие;
КонецЕсли;
- Если Не ЗначениеЗаполнено(КэшЗначений) Тогда
+ Если НЕ ЗначениеЗаполнено(КэшЗначений) Тогда
КэшЗначений = Новый Соответствие;
КонецЕсли;
@@ -331,9 +329,9 @@
ИначеЕсли ОписаниеКолонки.Ссылочный Тогда
Значение = СоздатьНовуюЗапись(ОписаниеКолонки, ЗначенияРеквизитов, ПараметрыЗаписи);
ИначеЕсли ОписаниеКолонки.ЭтоДата Тогда
- Значение = ЮТПреобразования.ПривестиЗначениеКДате(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления);
+ Значение = ЮТПреобразованияСлужебный.ПривестиЗначениеКДате(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления);
ИначеЕсли ОписаниеКолонки.ЭтоЧисло Тогда
- Значение = ЮТПреобразования.ПривестиЗначениеКЧислу(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления);
+ Значение = ЮТПреобразованияСлужебный.ПривестиЗначениеКЧислу(ОписаниеКолонки.ОписаниеТипа, ЗначениеПредставления);
Иначе
Значение = ОписаниеКолонки.ОписаниеТипа.ПривестиЗначение(ЗначениеПредставления);
КонецЕсли;
@@ -356,7 +354,7 @@
Конструктор.ФикцияОбязательныхПолей();
КонецЕсли;
- Возврат Конструктор.Записать(, ПараметрыЗаписи.ПараметрыЗаписи.ОбменДаннымиЗагрузка);
+ Возврат Конструктор.Записать( , ПараметрыЗаписи.ПараметрыЗаписи.ОбменДаннымиЗагрузка);
КонецФункции
@@ -377,7 +375,7 @@
ОписаниеКолонок = ОписаниеКолонок(КолонкиМакета, ОписанияТипов);
ПодготовитьПараметрыЗаполненияТаблицы(КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, ОписаниеКолонок);
ПараметрыСоздания = ПараметрыЗаполнения.СозданиеОбъектовМетаданных;
-
+
ТаблицаЗначений = НоваяТаблица(ОписаниеКолонок);
ПараметрыЗагрузки = Новый Структура;
@@ -408,7 +406,7 @@
КонецЦикла;
Если ТипЗнч(ОписанияТипов) = Тип("Структура") Тогда
- ОписанияТипов = ЮТОбщий.ВСоответствие(ОписанияТипов, "Ключ", "Значение");
+ ОписанияТипов = ЮТКоллекции.ВСоответствие(ОписанияТипов, "Ключ", "Значение");
КонецЕсли;
ЗагружаемыеКолонки = Новый Массив();
@@ -556,7 +554,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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" "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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo"
similarity index 80%
rename from "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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo"
rename to "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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo"
index 6c6dc00b0..5efe35c92 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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo"
+++ "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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\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\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo"
@@ -1,6 +1,6 @@
- ЮТТестовыеДанные_ТаблицыЗначений
+ ЮТТестовыеДанныеСлужебныйТаблицыЗначений
ru
Тестовые данные таблицы значений
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 aba0f8118..78d40fc42 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"
@@ -26,27 +26,12 @@
// Параметры:
// Имя - Строка - Имя набора тестов
// ТегиСтрокой - Строка - Теги относящиеся к набору и вложенным тестам. Это строка разделенная запятыми
-//
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
+// ОбщийМодуль - Этот же модуль
Функция ДобавитьТестовыйНабор(Имя, ТегиСтрокой = "") Экспорт
- ИсполняемыеСценарии = СценарииМодуля();
-
- Если Не ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда
- ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии";
- КонецЕсли;
-
- Если ПустаяСтрока(Имя) Тогда
- ВызватьИсключение "Имя тестового набора не может быть пустым";
- КонецЕсли;
-
- Контекст = Контекст();
- НовыйТестовыйНабор = ЮТФабрика.ОписаниеТестовогоНабора(Имя, ТегиСтрокой);
-
- ИсполняемыеСценарии.ТестовыеНаборы.Добавить(НовыйТестовыйНабор);
- Контекст.ТекущийНабор = НовыйТестовыйНабор;
- Контекст.ТекущийЭлемент = НовыйТестовыйНабор;
+ ЮТТестыСлужебный.ДобавитьТестовыйНабор(Имя, ТегиСтрокой);
Возврат ЮТТесты;
@@ -54,11 +39,11 @@
// Регистрирует тест, исполняемый в контекстах, в которых доступен тестовый модуль.
// Например
-//
+//
// * Если модуль с тестами клиент-серверный, то тест будет вызван и на клиенте и на сервере.
// * Если клиентский, то только на клиенте.
// * Если клиент обычное приложение, то только при запуске в режиме обычного приложения.
-//
+//
// Параметры:
// ИмяТестовогоМетода - Строка - Имя тестового метода
// ПредставлениеТеста - Строка - Представление теста
@@ -66,97 +51,76 @@
// Контексты - Строка - Контексты, строка перечисления контекстов вызова, разделенных запятой.
// Возможные значения см. ЮТФабрика.КонтекстыВызова
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
+// ОбщийМодуль - Этот же модуль
Функция ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "", Контексты = Неопределено) Экспорт
- Контекст = Контекст();
- Набор = Контекст.ТекущийНабор;
-
- ЭтоИсполняемыеСценарии = ЭтоИсполняемыеСценарии(Набор);
- ЭтоТестовыйНабор = ЭтоТестовыйНабор(Набор);
-
- Если Не (ЭтоИсполняемыеСценарии Или ЭтоТестовыйНабор) Тогда
- ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии или ЮТТесты.ТестовыйНабор";
- КонецЕсли;
-
- Если ПустаяСтрока(ИмяТестовогоМетода) Тогда
- ВызватьИсключение "Имя тестового метода не может быть пустым";
- КонецЕсли;
-
- Тест = ОписаниеТеста(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты);
- ДобавитьТестВНабор(Контекст, Тест);
+ ЮТТестыСлужебный.ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты);
Возврат ЮТТесты;
КонецФункции
// Регистрирует тест исполняемый на клиенте.
-//
+//
// Параметры:
// ИмяТестовогоМетода - Строка - Имя тестового метода
// ПредставлениеТеста - Строка - Представление теста
// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
-//
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
+// ОбщийМодуль - Этот же модуль
Функция ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт
- ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, КонтекстыВызоваКлиента());
+ ЮТТестыСлужебный.ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, ЮТТестыСлужебный.КонтекстыВызоваКлиента());
+
Возврат ЮТТесты;
КонецФункции
// Регистрирует тест исполняемый на сервере.
-//
+//
// Параметры:
// ИмяТестовогоМетода - Строка - Имя тестового метода
// ПредставлениеТеста - Строка - Представление теста
// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
-//
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
+// ОбщийМодуль - Этот же модуль
Функция ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт
- Режимы = ЮТФабрика.КонтекстыВызова();
-
- ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Режимы.Сервер);
+ КонтекстыВызова = ЮТФабрика.КонтекстыВызова();
+ ЮТТестыСлужебный.ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, КонтекстыВызова.Сервер);
Возврат ЮТТесты;
КонецФункции
// Устанавливает настройку выполнения тестового метода.
-//
+//
// Параметры:
// ИмяПараметра - Строка
-// Значение - Произвольный - Значение настройки
-//
+// Значение - Произвольный - Значение настройки
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
+// ОбщийМодуль - Этот же модуль
Функция НастройкаИсполнения(ИмяПараметра, Значение) Экспорт
- Контекст = Контекст();
-
- Если Контекст.ТекущийЭлемент = Неопределено Тогда
- ВызватьИсключение "Не инициализированы настройки регистрации тестов";
- КонецЕсли;
-
- Контекст.ТекущийЭлемент.НастройкиВыполнения.Вставить(ИмяПараметра, Значение);
+ ЮТТестыСлужебный.НастройкаИсполнения(ИмяПараметра, Значение);
Возврат ЮТТесты;
КонецФункции
// Устанавливает настройку выполнения тестового метода в транзакции.
-//
+//
// Параметры:
// ВыполнятьВТранзакции - Булево
-//
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
+// ОбщийМодуль - Этот же модуль
Функция ВТранзакции(ВыполнятьВТранзакции = Истина) Экспорт
- НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции);
+ ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции);
Возврат ЮТТесты;
@@ -164,60 +128,60 @@
// Устанавливает настройку удаления созданных тестовых данных
// В отличии от использования транзакции:
-//
+//
// * Умеет работать с данными созданными на клиенте
// * Только удаляет созданные данные и не откатывает изменения объектов
// * Работает с данными созданными через API работы с тестовыми данными
// * Удаляет данные созданные вне теста (в обработчиках событий, например, ПередВсемиТестами и ПередТестовымНабором)
-//
+//
// Параметры:
// УдалятьСозданныеДанные - Булево
-//
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
+// ОбщийМодуль - Этот же модуль
Функция УдалениеТестовыхДанных(УдалятьСозданныеДанные = Истина) Экспорт
- НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные);
+ ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные);
Возврат ЮТТесты;
КонецФункции
// Устанавливает настройку переопределения обработчика события Перед...
-//
+//
// Параметры:
// ВыполнитьПеред - Строка - Имя обработчика события, который будет выполнен вместо основного
-//
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
+// ОбщийМодуль - Этот же модуль
Функция Перед(ВыполнитьПеред = "") Экспорт
- НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред);
+ ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред);
Возврат ЮТТесты;
КонецФункции
// Устанавливает настройку переопределения обработчика события После...
-//
+//
// Параметры:
// ВыполнитьПосле - Строка - Имя обработчика события, который будет выполнен вместо основного
-//
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
+// ОбщийМодуль - Этот же модуль
Функция После(ВыполнитьПосле = "") Экспорт
- НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле);
+ ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле);
Возврат ЮТТесты;
КонецФункции
// Устанавливает параметры вызова теста.
-//
+//
// * Если метод вызывается первый раз, то он устанавливает параметры теста.
// * Если второй и последующие, то добавляет новый тест с параметрами.
-//
+//
// Параметры:
// Параметр1 - Произвольный
// Параметр2 - Произвольный
@@ -229,30 +193,30 @@
// Параметр8 - Произвольный
// Параметр9 - Произвольный
// Параметр10 - Произвольный
-//
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
-//
+// ОбщийМодуль - Этот же модуль
+//
// Примеры:
-//
+//
// ЮТТесты.ДобавитьТест("Тест1").СПараметрами(1, 2); // Будет зарегистрирован один тест с параметрами 1, 2
// ЮТТесты.ДобавитьТест("Тест1")
// .СПараметрами(1)
// .СПараметрами(2); // Будет зарегистрировано два теста, первый с параметром 1 и второй с параметром 2
-//
+//
//@skip-check method-too-many-params
Функция СПараметрами(Параметр1 = "_!%*",
- Параметр2 = "_!%*",
- Параметр3 = "_!%*",
- Параметр4 = "_!%*",
- Параметр5 = "_!%*",
- Параметр6 = "_!%*",
- Параметр7 = "_!%*",
- Параметр8 = "_!%*",
- Параметр9 = "_!%*",
- Параметр10 = "_!%*") Экспорт
-
- Параметры = ЮТОбщий.ЗначениеВМассиве(Параметр1,
+ Параметр2 = "_!%*",
+ Параметр3 = "_!%*",
+ Параметр4 = "_!%*",
+ Параметр5 = "_!%*",
+ Параметр6 = "_!%*",
+ Параметр7 = "_!%*",
+ Параметр8 = "_!%*",
+ Параметр9 = "_!%*",
+ Параметр10 = "_!%*") Экспорт
+
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр1,
Параметр2,
Параметр3,
Параметр4,
@@ -263,231 +227,127 @@
Параметр9,
Параметр10);
- Контекст = Контекст();
-
- Если Контекст.ТекущийЭлемент = Неопределено Тогда
- ВызватьИсключение "Не инициализированы настройки регистрации тестов";
- ИначеЕсли НЕ ЭтоОписаниеТеста(Контекст.ТекущийЭлемент) Тогда
- ВызватьИсключение "Параметры устанавливаются только для теста";
- КонецЕсли;
-
- Если Контекст.ТекущийЭлемент.Параметры <> Неопределено Тогда
- НоваяНастройка = ЮТОбщий.СкопироватьСтруктуру(Контекст.ТекущийЭлемент);
- ДобавитьТестВНабор(Контекст, НоваяНастройка);
- КонецЕсли;
-
- Контекст.ТекущийЭлемент.Параметры = Параметры;
+ ЮТТестыСлужебный.СПараметрами(Параметры, Неопределено);
Возврат ЮТТесты;
КонецФункции
-#Область Устаревшие
-
-// Регистрирует тест.
-// Deprecate
-//
-// Параметры:
-// ИмяТестовогоМетода - Строка - Имя тестового метода
-// ПредставлениеТеста - Строка - Представление теста
-// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
-// Контексты - Строка - Контексты, строка перечисления контекстов вызова, разделенных запятой.
-// Возможные значения см. ЮТФабрика.КонтекстыВызова
-// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
-Функция Тест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "", Контексты = Неопределено) Экспорт
-
- ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.Тест", "ЮТТесты.ДобавитьТест");
- Возврат ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты);
-
-КонецФункции
-
-// Регистрирует тест вызываемый на клиенте.
-// Deprecate
-//
+// Устанавливает параметры вызова теста и новый контекст исполнения (клиентский).
+//
+// * Если метод вызывается первый раз, то он устанавливает параметры теста.
+// * Если второй и последующие, то добавляет новый тест с параметрами.
+//
// Параметры:
-// ИмяТестовогоМетода - Строка - Имя тестового метода
-// ПредставлениеТеста - Строка - Представление теста
-// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
-//
+// Параметр1 - Произвольный
+// Параметр2 - Произвольный
+// Параметр3 - Произвольный
+// Параметр4 - Произвольный
+// Параметр5 - Произвольный
+// Параметр6 - Произвольный
+// Параметр7 - Произвольный
+// Параметр8 - Произвольный
+// Параметр9 - Произвольный
+// Параметр10 - Произвольный
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
-Функция ТестКлиент(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт
-
- ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестКлиент", "ЮТТесты.ДобавитьКлиентскийТест");
- Возврат ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой);
+// ОбщийМодуль - Этот же модуль
+//
+//@skip-check method-too-many-params
+Функция СПараметрамиНаКлиенте(Параметр1 = "_!%*",
+ Параметр2 = "_!%*",
+ Параметр3 = "_!%*",
+ Параметр4 = "_!%*",
+ Параметр5 = "_!%*",
+ Параметр6 = "_!%*",
+ Параметр7 = "_!%*",
+ Параметр8 = "_!%*",
+ Параметр9 = "_!%*",
+ Параметр10 = "_!%*") Экспорт
+
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр1,
+ Параметр2,
+ Параметр3,
+ Параметр4,
+ Параметр5,
+ Параметр6,
+ Параметр7,
+ Параметр8,
+ Параметр9,
+ Параметр10);
-КонецФункции
-
-// Регистрирует тест вызываемый на сервере.
-// Deprecate
-//
-// Параметры:
-// ИмяТестовогоМетода - Строка - Имя тестового метода
-// ПредставлениеТеста - Строка - Представление теста
-// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми
-//
-// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
-Функция ТестСервер(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт
+ ЮТТестыСлужебный.СПараметрами(Параметры, ЮТТестыСлужебный.КонтекстыВызоваКлиента());
- ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестСервер", "ЮТТесты.ДобавитьСерверныйТест");
- Возврат ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой);
+ Возврат ЮТТесты;
КонецФункции
-// Создает и регистрирует набор, в который будут добавляться последующие тесты.
-// Deprecate
+// Устанавливает параметры вызова теста и новый контекст исполнения (серверный).
//
+// * Если метод вызывается первый раз, то он устанавливает параметры теста.
+// * Если второй и последующие, то добавляет новый тест с параметрами.
+//
// Параметры:
-// Имя - Строка - Имя набора тестов
-// ТегиСтрокой - Строка - Теги относящиеся к набору и вложенным тестам. Это строка разделенная запятыми
-//
+// Параметр1 - Произвольный
+// Параметр2 - Произвольный
+// Параметр3 - Произвольный
+// Параметр4 - Произвольный
+// Параметр5 - Произвольный
+// Параметр6 - Произвольный
+// Параметр7 - Произвольный
+// Параметр8 - Произвольный
+// Параметр9 - Произвольный
+// Параметр10 - Произвольный
+//
// Возвращаемое значение:
-// ОбщийМодуль - Этот же модуль, для замыкания
-Функция ТестовыйНабор(Имя, ТегиСтрокой = "") Экспорт
-
- ЮТОбщий.ВызовУстаревшегоМетода("ЮТТесты.ТестовыйНабор", "ЮТТесты.ДобавитьТестовыйНабор");
- Возврат ДобавитьТестовыйНабор(Имя, ТегиСтрокой);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт
-
- ИнициализироватьКонтекст(МетаданныеМодуля);
-
- ЮТСобытия.ПередЧтениемСценариевМодуля(МетаданныеМодуля);
-
-КонецПроцедуры
-
-Процедура ПослеЧтенияСценариевМодуля() Экспорт
-
- Контекст = Контекст();
- ЮТСобытия.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии);
+// ОбщийМодуль - Этот же модуль
+//
+//@skip-check method-too-many-params
+Функция СПараметрамиНаСервере(Параметр1 = "_!%*",
+ Параметр2 = "_!%*",
+ Параметр3 = "_!%*",
+ Параметр4 = "_!%*",
+ Параметр5 = "_!%*",
+ Параметр6 = "_!%*",
+ Параметр7 = "_!%*",
+ Параметр8 = "_!%*",
+ Параметр9 = "_!%*",
+ Параметр10 = "_!%*") Экспорт
+
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр1,
+ Параметр2,
+ Параметр3,
+ Параметр4,
+ Параметр5,
+ Параметр6,
+ Параметр7,
+ Параметр8,
+ Параметр9,
+ Параметр10);
-КонецПроцедуры
-
-// Описание сценариев модуля
-//
-// Возвращаемое значение:
-// Структура - см. ИсполняемыеСценарии
-Функция СценарииМодуля() Экспорт
+ КонтекстыВызова = ЮТФабрика.КонтекстыВызова();
+ ЮТТестыСлужебный.СПараметрами(Параметры, КонтекстыВызова.Сервер);
- Возврат Контекст().ИсполняемыеСценарии;
+ Возврат ЮТТесты;
КонецФункции
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-// Исполняемые сценарии.
+// Устанавливает представление объекта, может использоваться как для теста, так и для набора.
//
// Параметры:
-// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
+// Представление - Строка
+// ИспользуяИмя - Булево - Необходимо ли использовать имя объекта при формировании представления.
+// Ложь - По умолчанию, представление будет установлено по параметру.
+// Истина - Новое представление объекта = `<ИмяОбъект>. <Параметр Представление>`
//
// Возвращаемое значение:
-// Структура - Исполняемые сценарии:
-// * ТестовыеНаборы - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Тестовые наборы модуля
-// * НастройкиВыполнения- Структура - Настройки исполнения теста
-Функция ИсполняемыеСценарии(МетаданныеМодуля)
-
- Структура = Новый Структура;
- Структура.Вставить("ТестовыеНаборы", Новый Массив());
- Структура.Вставить("НастройкиВыполнения", Новый Структура());
-
- Набор = ЮТФабрика.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
- Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию
- Структура.ТестовыеНаборы.Добавить(Набор);
-
- Возврат Структура;
-
-КонецФункции
-
-Функция КонтекстыВызоваКлиента()
+// ОбщийМодуль - Этот же модуль
+Функция Представление(Представление, ИспользуяИмя = Ложь) Экспорт
- Режимы = ЮТФабрика.КонтекстыВызова();
- Возврат ЮТОбщий.ЗначениеВМассиве(Режимы.КлиентУправляемоеПриложение, Режимы.КлиентОбычноеПриложение);
+ ЮТТестыСлужебный.УстановитьПредставление(Представление, ИспользуяИмя);
-КонецФункции
-
-Функция КонтекстыВызоваПоУмолчанию()
-
- Возврат ЮТФабрика.КонтекстыМодуля(Контекст().МетаданныеМодуля);
-
-КонецФункции
-
-Функция ОписаниеТеста(Имя, Знач Представление, ТегиСтрокой, Знач Контексты)
-
- Если НЕ ЗначениеЗаполнено(Контексты) Тогда
- Контексты = КонтекстыВызоваПоУмолчанию();
- ИначеЕсли ТипЗнч(Контексты) = Тип("Строка") Тогда
- Контексты = СтрРазделить(Контексты, ", ", Ложь);
- КонецЕсли;
-
- Возврат ЮТФабрика.ОписаниеТеста(Имя, Представление, Контексты, ТегиСтрокой);
-
-КонецФункции
-
-Функция ЭтоИсполняемыеСценарии(ИсполняемыеСценарии)
-
- Возврат ТипЗнч(ИсполняемыеСценарии) = Тип("Структура")
- И ТипЗнч(ЮТОбщий.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив");
-
-КонецФункции
-
-Функция ЭтоТестовыйНабор(ТестовыйНабор)
-
- Возврат ТипЗнч(ТестовыйНабор) = Тип("Структура")
- И ТипЗнч(ЮТОбщий.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив");
-
-КонецФункции
-
-Функция ЭтоОписаниеТеста(Описание)
-
- Возврат ТипЗнч(Описание) = Тип("Структура")
- И ТипЗнч(ЮТОбщий.ЗначениеСтруктуры(Описание, "КонтекстВызова")) = Тип("Массив");
-
-КонецФункции
-
-Процедура ДобавитьТестВНабор(Контекст, Тест)
-
- Контекст.ТекущийНабор.Тесты.Добавить(Тест);
- Контекст.ТекущийЭлемент = Тест;
- Тест.НомерВНаборе = Контекст.ТекущийНабор.Тесты.Количество();
-
-КонецПроцедуры
-
-#Область Контекст
-
-Функция Контекст()
-
- Возврат ЮТКонтекст.ЗначениеКонтекста("КонтекстРегистрацияТестов");
+ Возврат ЮТТесты;
КонецФункции
-Процедура ИнициализироватьКонтекст(МетаданныеМодуля)
-
- ИсполняемыеСценарии = ИсполняемыеСценарии(МетаданныеМодуля);
- Набор = ИсполняемыеСценарии.ТестовыеНаборы[0];
-
- Контекст = Новый Структура();
-
- Контекст.Вставить("МетаданныеМодуля", МетаданныеМодуля);
- Контекст.Вставить("ИсполняемыеСценарии", ИсполняемыеСценарии);
- Контекст.Вставить("ТекущийНабор", Набор);
- Контекст.Вставить("ТекущийЭлемент", Набор);
-
- ЮТКонтекст.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст);
-
-КонецПроцедуры
-
-#КонецОбласти
-
#КонецОбласти
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"
new file mode 100644
index 000000000..7a2b857a8
--- /dev/null
+++ "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"
@@ -0,0 +1,287 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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 и устанавливаемые %2",
+ ЮТКоллекции.ПредставлениеМассива(Контекст.БазовыйТест.КонтекстВызова),
+ ЮТКоллекции.ПредставлениеМассива(НормализованныеКонтексты));
+ КонецЕсли;
+ КонецЕсли;
+
+ Если НЕ ЭтоПервыйВызовСПараметрами Тогда
+ НоваяНастройка = ЮТКоллекции.СкопироватьСтруктуру(Контекст.БазовыйТест);
+ ДобавитьТестВНабор(Контекст, НоваяНастройка, Истина);
+ КонецЕсли;
+
+ Контекст.ТекущийЭлемент.Параметры = Параметры;
+
+ Если УстановитьНовыйКонтекст Тогда
+ Контекст.ТекущийЭлемент.КонтекстВызова = НовыеКонтексты;
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура УстановитьПредставление(Представление, ИспользуяИмя) Экспорт
+
+ ТекущийЭлемент = Контекст().ТекущийЭлемент;
+ Если ИспользуяИмя Тогда
+ ТекущийЭлемент.Представление = СтрШаблон("%1. %2", ТекущийЭлемент.Имя, Представление);
+ Иначе
+ ТекущийЭлемент.Представление = Представление;
+ КонецЕсли;
+
+КонецПроцедуры
+
+Функция КонтекстыВызоваКлиента() Экспорт
+
+ Режимы = ЮТФабрика.КонтекстыВызова();
+ Возврат ЮТКоллекции.ЗначениеВМассиве(Режимы.КлиентУправляемоеПриложение, Режимы.КлиентОбычноеПриложение);
+
+КонецФункции
+
+// Описание сценариев модуля
+//
+// Возвращаемое значение:
+// Структура - см. ИсполняемыеСценарии
+Функция СценарииМодуля() Экспорт
+
+ Возврат Контекст().ИсполняемыеСценарии;
+
+КонецФункции
+
+Функция Контекст() Экспорт
+
+ Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов");
+
+КонецФункции
+
+#Область ОбработчикиСобытий
+
+Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт
+
+ ИнициализироватьКонтекст(МетаданныеМодуля);
+ ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля);
+
+КонецПроцедуры
+
+Процедура ПослеЧтенияСценариевМодуля() Экспорт
+
+ Контекст = Контекст();
+ ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+// Исполняемые сценарии.
+//
+// Параметры:
+// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+//
+// Возвращаемое значение:
+// Структура - Исполняемые сценарии:
+// * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля
+// * НастройкиВыполнения- Структура - Настройки исполнения теста
+Функция ИсполняемыеСценарии(МетаданныеМодуля)
+
+ Структура = Новый Структура;
+ Структура.Вставить("ТестовыеНаборы", Новый Массив());
+ Структура.Вставить("НастройкиВыполнения", Новый Структура());
+
+ Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
+ Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию
+ Структура.ТестовыеНаборы.Добавить(Набор);
+
+ Возврат Структура;
+
+КонецФункции
+
+Функция КонтекстыВызоваПоУмолчанию()
+
+ Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().МетаданныеМодуля);
+
+КонецФункции
+
+Функция ОписаниеТеста(Имя, Знач Представление, ТегиСтрокой, Знач Контексты)
+
+ Контексты = НормализованныеКонтексты(Контексты);
+
+ Возврат ЮТФабрикаСлужебный.ОписаниеТеста(Имя, Представление, Контексты, ТегиСтрокой);
+
+КонецФункции
+
+Функция ЭтоИсполняемыеСценарии(ИсполняемыеСценарии)
+
+ Возврат ТипЗнч(ИсполняемыеСценарии) = Тип("Структура")
+ И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив");
+
+КонецФункции
+
+Функция ЭтоТестовыйНабор(ТестовыйНабор)
+
+ Возврат ТипЗнч(ТестовыйНабор) = Тип("Структура")
+ И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив");
+
+КонецФункции
+
+Функция ЭтоОписаниеТеста(Описание)
+
+ Возврат ТипЗнч(Описание) = Тип("Структура")
+ И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(Описание, "КонтекстВызова")) = Тип("Массив");
+
+КонецФункции
+
+Процедура ДобавитьТестВНабор(Контекст, Тест, ЭтоКопия)
+
+ Если НЕ ЭтоКопия Тогда
+ Контекст.БазовыйТест = Неопределено;
+ КонецЕсли;
+
+ Контекст.ТекущийНабор.Тесты.Добавить(Тест);
+ Контекст.ТекущийЭлемент = Тест;
+ Тест.НомерВНаборе = Контекст.ТекущийНабор.Тесты.Количество();
+
+КонецПроцедуры
+
+Процедура ИнициализироватьКонтекст(МетаданныеМодуля)
+
+ ИсполняемыеСценарии = ИсполняемыеСценарии(МетаданныеМодуля);
+ Набор = ИсполняемыеСценарии.ТестовыеНаборы[0];
+
+ Контекст = Новый Структура();
+
+ Контекст.Вставить("МетаданныеМодуля", МетаданныеМодуля);
+ Контекст.Вставить("ИсполняемыеСценарии", ИсполняемыеСценарии);
+ Контекст.Вставить("ТекущийНабор", Набор);
+ Контекст.Вставить("ТекущийЭлемент", Набор);
+ Контекст.Вставить("БазовыйТест", Неопределено);
+
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст);
+
+КонецПроцедуры
+
+Функция НормализованныеКонтексты(ПараметрКонтексты)
+
+ Если НЕ ЗначениеЗаполнено(ПараметрКонтексты) Тогда
+ Контексты = КонтекстыВызоваПоУмолчанию();
+ ИначеЕсли ТипЗнч(ПараметрКонтексты) = Тип("Строка") Тогда
+ Контексты = СтрРазделить(ПараметрКонтексты, ", ", Ложь);
+ Иначе
+ Контексты = ПараметрКонтексты;
+ КонецЕсли;
+
+ Возврат Контексты;
+
+КонецФункции
+
+#КонецОбласти
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/\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.mdo" "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/\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.mdo"
new file mode 100644
index 000000000..81b67ec05
--- /dev/null
+++ "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/\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.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТТестыСлужебный
+
+ ru
+ Тесты служебный
+
+ true
+ true
+ true
+
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\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\242\320\270\320\277\321\213\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 778f193b7..ed011211c 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\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\242\320\270\320\277\321\213\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"
@@ -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.
@@ -21,7 +21,7 @@
Функция ПредставлениеТипа(Тип) Экспорт
#Если ВебКлиент Тогда
- ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа");
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа");
#Иначе
Возврат ИдентификаторТипа(Тип);
#КонецЕсли
@@ -31,7 +31,7 @@
Функция ИдентификаторТипа(Тип) Экспорт
#Если ВебКлиент Тогда
- ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа");
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа");
#Иначе
ЮТПроверкиСлужебный.ПроверитьТипПараметра(Тип, Тип("Тип"), "ЮТТипыДанныхСлужебный.ИдентификаторТипа", "Тип");
@@ -53,7 +53,7 @@
Функция ТипПоИдентификатору(ИдентификаторТипа) Экспорт
#Если ВебКлиент Тогда
- ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа");
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа");
#Иначе
Возврат Тип(ИдентификаторТипа);
#КонецЕсли
@@ -62,7 +62,7 @@
Функция ЭтоСсылочныйТип(Тип) Экспорт
- Возврат Тип <> Неопределено И ЮТОбщий.ОписаниеТиповЛюбаяСсылка().СодержитТип(Тип);
+ Возврат Тип <> Неопределено И ОписаниеТиповЛюбаяСсылка().СодержитТип(Тип);
КонецФункции
@@ -104,7 +104,7 @@
Функция ТипОбъектаСсылки(ТипСсылки) Экспорт
#Если ВебКлиент Тогда
- ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ТипОбъектаСсылки");
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТТипыДанныхСлужебный.ТипОбъектаСсылки");
#Иначе
ТипXML = СериализаторXDTO.XMLТип(ТипСсылки);
ИмяТипа = СтрЗаменить(ТипXML.ИмяТипа, "Ref.", "Object.");
@@ -114,6 +114,19 @@
КонецФункции
+Функция ЭтоТипПеречисления(ТипЗначения) Экспорт
+
+ ПредставлениеТипа = ПредставлениеТипа(ТипЗначения);
+ Возврат СтрНачинаетсяС(ПредставлениеТипа, "EnumRef.");
+
+КонецФункции
+
+Функция ОписаниеТиповЛюбаяСсылка() Экспорт
+
+ Возврат ЮТСлужебныйПовторногоИспользования.ОписаниеТиповЛюбаяСсылка();
+
+КонецФункции
+
#Область СистемныеПеречисления
Функция ЭтоСистемноеПеречисление(Тип) Экспорт
@@ -163,7 +176,7 @@
Функция ЭтоПримитивныйТип(Тип) Экспорт
- ПримитивныеТипы = ЮТПовторногоИспользования.ПримитивныеТипы();
+ ПримитивныеТипы = ЮТСлужебныйПовторногоИспользования.ПримитивныеТипы();
ТипПараметра = ТипЗнч(Тип);
@@ -185,4 +198,34 @@
#КонецОбласти
+Функция ЭтоСтруктура(ТипЗначения) Экспорт
+
+ Возврат ТипЗначения = Тип("Структура")
+ Или ТипЗначения = Тип("ФиксированнаяСтруктура");
+
+КонецФункции
+
+Функция ЭтоМассива(ТипЗначения) Экспорт
+
+ Возврат ТипЗначения = Тип("Массив")
+ Или ТипЗначения = Тип("ФиксированныйМассив");
+
+КонецФункции
+
+Функция ЭтоСоответствие(ТипЗначения) Экспорт
+
+ Возврат ТипЗначения = Тип("Соответствие")
+ Или ТипЗначения = Тип("ФиксированноеСоответствие");
+
+КонецФункции
+
+Функция ЭтоКлючЗначение(ТипЗначения) Экспорт
+
+ Возврат ТипЗначения = Тип("Структура")
+ Или ТипЗначения = Тип("ФиксированнаяСтруктура")
+ Или ТипЗначения = Тип("Соответствие")
+ Или ТипЗначения = Тип("ФиксированноеСоответствие");
+
+КонецФункции
+
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\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/exts/yaxunit/src/CommonModules/\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 a0e7348a8..7b95cb6ab 100644
--- "a/exts/yaxunit/src/CommonModules/\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/exts/yaxunit/src/CommonModules/\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"
@@ -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.
@@ -18,20 +18,18 @@
#Область ПрограммныйИнтерфейс
-#Область УтвержденияBDD
-
// Инициализирует модуль для проверки утверждений.
-//
+//
// * Запоминает проверяемое значение.
// * Запоминает описание.
// * Сбрасывает настройки предыдущих утверждений.
-//
+//
// Утверждения формируются методами этого модуля.
-//
+//
// Параметры:
// ПроверяемоеЗначение - Произвольный - Проверяемое фактическое значение
// Сообщение - Строка - Описание проверки, которое будет выведено при возникновении ошибки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
// Примеры
@@ -44,19 +42,19 @@
Контекст.ОбъектПроверки.Значение = ПроверяемоеЗначение;
Контекст.ПрефиксОшибки = Сообщение;
- ЮТКонтекст.УстановитьКонтекстУтверждений(Контекст);
- ЮТКонтекст.УстановитьКонтекстОшибки();
+ СброситьКонтекст();
+ ЮТКонтекстСлужебный.УстановитьКонтекстУтверждений(Контекст);
Возврат ЮТУтверждения;
КонецФункции
// Запоминает описание метода (имя и параметры) для последующей проверки.
-//
+//
// Параметры:
// ИмяМетода - Строка - Наименование метода
// ПараметрыМетода - Массив из Произвольный - Параметры вызываемого метода
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт
@@ -75,10 +73,10 @@
КонецФункции
// Добавляет параметр метода для последующего вызова метода и проверки.
-//
+//
// Параметры:
// ЗначениеПараметра - Произвольный - Параметр вызываемого метода
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция Параметр(Знач ЗначениеПараметра) Экспорт
@@ -86,11 +84,11 @@
Контекст = Контекст();
Если НЕ ЗначениеЗаполнено(Контекст.ИмяМетода) Тогда
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения("Перед установкой параметров нужно указать метод", Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения("Перед установкой параметров нужно указать метод", Контекст);
КонецЕсли;
Если Контекст.ПараметрыМетода = Неопределено Тогда
- Контекст.ПараметрыМетода = ЮТОбщий.ЗначениеВМассиве(ЗначениеПараметра);
+ Контекст.ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(ЗначениеПараметра);
Иначе
Контекст.ПараметрыМетода.Добавить(ЗначениеПараметра);
КонецЕсли;
@@ -100,10 +98,10 @@
КонецФункции
// Устанавливает описание проверяемого объекта.
-//
+//
// Параметры:
// Представление - Строка - Представление
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ИмеющееПредставление(Представление) Экспорт
@@ -114,15 +112,15 @@
КонецФункции
// Проверяет наличие свойства и запоминает его для последующих проверок.
-//
+//
// Важно, следующие проверки будут относится к этому свойству.
// Для переключения на проверки объекта можно воспользоваться методом см. Объект.
-//
+//
// Параметры:
// ИмяСвойства - Строка - Наименование свойства объекта.
// Возможно обращение к вложенным свойствам через точку
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция Свойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт
@@ -141,13 +139,13 @@
КонецФункции
// Проверяет отсутствие свойства основного объекта.
-// А также сбрасывает ранее установленное проверяемое свойство (см. Свойство).
-//
+// А также сбрасывает ранее установленное проверяемое свойство (см. Свойство).
+//
// Параметры:
// ИмяСвойства - Строка - Наименование свойства объекта.
// Возможно обращение к вложенным свойствам через точку
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция НетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт
@@ -165,14 +163,14 @@
КонецФункции
// Проверяет наличие элемента с указанным индексом и позиционируется на нем для последующих проверок.
-//
+//
// Важно, следующие проверки будут относится к этому элементу.
// Для переключения на проверки объекта можно воспользоваться методом см. Объект.
-//
+//
// Параметры:
// Индекс - Число - Индекс элемента коллекции
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция Элемент(Знач Индекс, Знач ОписаниеПроверки = Неопределено) Экспорт
@@ -182,7 +180,7 @@
КонецФункции
// Используется после вызова метода см. Свойство, для переключения с ранее указанного свойства на объект.
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция Объект() Экспорт
@@ -194,481 +192,501 @@
КонецФункции
-// Проверяет наличие свойства у объекта/его свойства.
-// В отличии от метода см. Свойство не позиционируется на указанное свойство.
+#Область УтвержденияПредикатов
+
+// Проверяет установленное значение Контекста (или его свойство) на равенство ожидаемому.
+//
+// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
+// Для сериализуемых объектов проверяется равенство по значению.
+//
// Параметры:
-// ИмяСвойства - Строка - Наименование свойства объекта.
-// Возможно обращение к вложенным свойствам через точку
+// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) равно этому значению
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ИмеетСвойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция Равно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетСвойство, ИмяСвойства, ОписаниеПроверки);
+ ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().Равно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет отсутствие свойства у объекта/его свойства.
-// В отличии от метода см. НетСвойства не сбрасывает позиционирование проверки.
-//
+// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство ожидаемому.
+//
+// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения
+// Для сериализуемых значений проверяется равенство по значению
+//
// Параметры:
-// ИмяСвойства - Строка - Наименование свойства объекта.
-// Возможно обращение к вложенным свойствам через точку
+// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ равно этому значению
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция НеИмеетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция НеРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетСвойство, ИмяСвойства, ОписаниеПроверки);
+ ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().НеРавно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет наличие свойств и их значения у проверяемого объекта (или его свойства).
-//
+// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше ожидаемого.
+//
// Параметры:
-// ОжидаемоеЗначение - Структура - Проверяемый объект должен иметь свойства указанные в параметре
+// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ИмеетСвойстваРавные(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция Больше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
- Контекст = Контекст();
- УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
- ОбъектыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().Больше, ОжидаемоеЗначение, ОписаниеПроверки);
+ Возврат ЮТУтверждения;
+
+КонецФункции
+
+// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше или равно ожидаемому.
+//
+// Параметры:
+// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения или равно ему
+// ОписаниеПроверки - Строка - Описание конкретной проверки
+//
+// Возвращаемое значение:
+// ОбщийМодуль - Этот модуль для замыкания
+Функция БольшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+ ПроверитьПредикат(ЮТПредикаты.Выражения().БольшеРавно, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на равенство `Истина)`.
-// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
-//
+// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше ожидаемого.
+//
// Параметры:
+// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ЭтоИстина(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция Меньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
- Контекст = Контекст();
- УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- СравнитьЗначения(Контекст, Истина, Ложь, "является истиной");
+ ПроверитьПредикат(ЮТПредикаты.Выражения().Меньше, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство)на НЕ равенство `Истина`.
-// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
-//
+// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше или равно ожидаемому.
+//
// Параметры:
+// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения или равно ему
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ЭтоНеИстина(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция МеньшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
- Контекст = Контекст();
- УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- СравнитьЗначения(Контекст, Истина, Истина, "является истиной");
+ ПроверитьПредикат(ЮТПредикаты.Выражения().МеньшеРавно, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на равенство `Ложь`.
-// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
-//
+// Проверяет установленное значение Контекста (или его свойство) на "заполненность" (обертка для `ЗначениеЗаполнено`).
+//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ЭтоЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция Заполнено(Знач ОписаниеПроверки = Неопределено) Экспорт
- Контекст = Контекст();
- УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- СравнитьЗначения(Контекст, Ложь, Ложь, "является ложью");
+ ПроверитьПредикат(ЮТПредикаты.Выражения().Заполнено, , ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство `Ложь`.
-// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
-//
+// Проверяет установленное значение Контекста (или его свойство) на "не заполненность" (обертка для `ЗначениеЗаполнено`)
+//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ЭтоНеЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция НеЗаполнено(Знач ОписаниеПроверки = Неопределено) Экспорт
- Контекст = Контекст();
- УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- СравнитьЗначения(Контекст, Ложь, Истина, "является ложью");
+ ПроверитьПредикат(ЮТПредикаты.Выражения().НеЗаполнено, , ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на равенство ожидаемому.
-//
-// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
-// Для сериализуемых объектов проверяется равенство по значению.
-//
+// Проверяет установленное значение Контекста (или его свойство) на соответствие переданному типу.
+//
// Параметры:
-// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) равно этому значению
+// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) имеет данный тип
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция Равно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
- ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина);
- ПроверитьПредикат(ЮТПредикаты.Выражения().Равно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство ожидаемому.
-//
-// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения
-// Для сериализуемых значений проверяется равенство по значению
-//
+// Проверяет установленное значение Контекста (или его свойство) на несоответствие переданному типу.
+//
// Параметры:
-// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ равно этому значению
+// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) НЕ имеет данный тип
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция НеРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция НеИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
- ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина);
- ПроверитьПредикат(ЮТПредикаты.Выражения().НеРавно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше ожидаемого.
-//
+// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого.
+//
+// Проверка поддерживается для следующих типов проверяемого значения:
+//
+// - Строка - по вхождению
+// - Массив - по наличию равного элемента
+// - Структура - по наличию равного значения
+// - Соответствие - по наличию равного значения
+// - СписокЗначений - по наличию равного значения
+// - ФиксированныйМассив - по наличию равного значения
+// - ФиксированнаяСтруктура - по наличию равного значения
+// - ФиксированноеСоответствие - по наличию равного значения
+// - Произвольный итерируемый объект для проверки на соответствие предикату
+//
+// При сравнении также проверяется совпадение типов
+//
// Параметры:
-// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения
+// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) содержит указанное значение
+// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция Больше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция Содержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+
+ Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда
+ ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Ложь);
+ Иначе
+ ПроверитьПредикат(ЮТПредикаты.Выражения().Содержит, ОжидаемоеЗначение, ОписаниеПроверки);
+ КонецЕсли;
- ПроверитьПредикат(ЮТПредикаты.Выражения().Больше, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше или равно ожидаемому.
-//
+// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого.
+//
+// Проверка поддерживается для следующих типов проверяемого значения:
+//
+// - Строка - по отсутствию вхождению
+// - Массив - по отсутствию равного элемента
+// - Структура - по отсутствию равного значения
+// - Соответствие - по отсутствию равного значения
+// - СписокЗначений - по отсутствию равного значения
+// - ФиксированныйМассив - по отсутствию равного значения
+// - ФиксированнаяСтруктура - по отсутствию равного значения
+// - ФиксированноеСоответствие - по отсутствию равного значения
+// - Произвольный итерируемый объект для проверки на соответствие предикату
+//
+// При сравнении также проверяется совпадение типов
+//
// Параметры:
-// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения или равно ему
+// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ содержит указанное
+// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция БольшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция НеСодержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+
+ Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда
+ ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Истина);
+ Иначе
+ ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержит, ОжидаемоеЗначение, ОписаниеПроверки);
+ КонецЕсли;
- ПроверитьПредикат(ЮТПредикаты.Выражения().БольшеРавно, ОжидаемоеЗначение, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше ожидаемого.
-//
+// Проверяет установленное значение Контекста (или его свойство) на наличие подстроки, соответствующей регулярному выражению
+//
// Параметры:
-// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения
+// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция Меньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция СодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().Меньше, ОжидаемоеЗначение, ОписаниеПроверки);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().СодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше или равно ожидаемому.
-//
+// Проверяет установленное значение Контекста (или его свойство) на отсутствие подстроки, соответствующей регулярному выражению
+//
// Параметры:
-// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения или равно ему
+// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция МеньшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция НеСодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().МеньшеРавно, ОжидаемоеЗначение, ОписаниеПроверки);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на "заполненность" (обертка для `ЗначениеЗаполнено`).
-//
+// Проверяет наличие свойства у объекта/его свойства.
+// В отличии от метода см. Свойство не позиционируется на указанное свойство.
// Параметры:
+// ИмяСвойства - Строка - Наименование свойства объекта.
+// Возможно обращение к вложенным свойствам через точку
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция Заполнено(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ИмеетСвойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().Заполнено, , ОписаниеПроверки);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетСвойство, ИмяСвойства, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на "не заполненность" (обертка для `ЗначениеЗаполнено`)
-//
+// Проверяет отсутствие свойства у объекта/его свойства.
+// В отличии от метода см. НетСвойства не сбрасывает позиционирование проверки.
+//
// Параметры:
+// ИмяСвойства - Строка - Наименование свойства объекта.
+// Возможно обращение к вложенным свойствам через точку
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция НеЗаполнено(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция НеИмеетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().НеЗаполнено, , ОписаниеПроверки);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетСвойство, ИмяСвойства, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на "существование", т.е. отличие от `Null` и `Неопределено`.
-//
+// Проверяет значение (или его свойство), оно должно входить в указанный список.
+//
// Параметры:
+// Значения - Массив из Произвольный - Значения для проверки
+// - СписокЗначений из Произвольный - Значения для проверки
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция Существует(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ВСписке(Значения, ОписаниеПроверки = Неопределено) Экспорт
- Контекст = Контекст();
- УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- ПроверитьСуществование(Контекст, Ложь);
+ ПроверитьПредикат(ЮТПредикаты.Выражения().ВСписке, Значения, ОписаниеПроверки);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на "не существование", т.е. оно равно `Null` или `Неопределено`.
-//
+#КонецОбласти
+
+// Проверяет наличие свойств и их значения у проверяемого объекта (или его свойства).
+//
// Параметры:
+// ОжидаемоеЗначение - Структура - Проверяемый объект должен иметь свойства указанные в параметре
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция НеСуществует(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ИмеетСвойстваРавные(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- ПроверитьСуществование(Контекст, Истина);
+ ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
+ ОбъектыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение);
+
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) не равенство `Неопределено`.
-//
+// Проверяет установленное значение Контекста (или его свойство) на равенство `Истина)`.
+// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
+//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ЭтоНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ЭтоИстина(Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- СравнитьЗначения(Контекст, Неопределено, Ложь, "является неопределено");
+ СравнитьЗначения(Контекст, Истина, Ложь, "является истиной");
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на не равенство `Неопределено`.
-//
+// Проверяет установленное значение Контекста (или его свойство)на НЕ равенство `Истина`.
+// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
+//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ЭтоНеНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ЭтоНеИстина(Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- СравнитьЗначения(Контекст, Неопределено, Истина, "является неопределено");
+ СравнитьЗначения(Контекст, Истина, Истина, "является истиной");
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на равенство `Null`.
-//
+// Проверяет установленное значение Контекста (или его свойство) на равенство `Ложь`.
+// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
+//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ЭтоNull(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ЭтоЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- СравнитьЗначения(Контекст, Null, Ложь, "является null");
+ СравнитьЗначения(Контекст, Ложь, Ложь, "является ложью");
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на не равенство `Null`.
-//
+// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство `Ложь`.
+// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения.
+//
// Параметры:
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ЭтоНеNull(Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ЭтоНеЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт
Контекст = Контекст();
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
- СравнитьЗначения(Контекст, Null, Истина, "является null");
+ СравнитьЗначения(Контекст, Ложь, Истина, "является ложью");
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на соответствие переданному типу.
-//
+// Проверяет установленное значение Контекста (или его свойство) на "существование", т.е. отличие от `Null` и `Неопределено`.
+//
// Параметры:
-// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) имеет данный тип
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция ИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция Существует(Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки);
+ Контекст = Контекст();
+ УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
+ ПроверитьСуществование(Контекст, Ложь);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на несоответствие переданному типу.
-//
+// Проверяет установленное значение Контекста (или его свойство) на "не существование", т.е. оно равно `Null` или `Неопределено`.
+//
// Параметры:
-// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) НЕ имеет данный тип
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция НеИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция НеСуществует(Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки);
+ Контекст = Контекст();
+ УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
+ ПроверитьСуществование(Контекст, Истина);
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого.
-//
-// Проверка поддерживается для следующих типов проверяемого значения:
-//
-// - Строка - по вхождению
-// - Массив - по наличию равного элемента
-// - Структура - по наличию равного значения
-// - Соответствие - по наличию равного значения
-// - СписокЗначений - по наличию равного значения
-// - ФиксированныйМассив - по наличию равного значения
-// - ФиксированнаяСтруктура - по наличию равного значения
-// - ФиксированноеСоответствие - по наличию равного значения
-// - Произвольный итерируемый объект для проверки на соответствие предикату
-//
-// При сравнении также проверяется совпадение типов
-//
+// Проверяет установленное значение Контекста (или его свойство) не равенство `Неопределено`.
+//
// Параметры:
-// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) содержит указанное значение
-// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция Содержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
-
- Если ЮТПредикатыКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда
- ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Ложь);
- Иначе
- ПроверитьПредикат(ЮТПредикаты.Выражения().Содержит, ОжидаемоеЗначение, ОписаниеПроверки);
- КонецЕсли;
+Функция ЭтоНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт
+ Контекст = Контекст();
+ УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
+ СравнитьЗначения(Контекст, Неопределено, Ложь, "является неопределено");
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого.
-//
-// Проверка поддерживается для следующих типов проверяемого значения:
-//
-// - Строка - по отсутствию вхождению
-// - Массив - по отсутствию равного элемента
-// - Структура - по отсутствию равного значения
-// - Соответствие - по отсутствию равного значения
-// - СписокЗначений - по отсутствию равного значения
-// - ФиксированныйМассив - по отсутствию равного значения
-// - ФиксированнаяСтруктура - по отсутствию равного значения
-// - ФиксированноеСоответствие - по отсутствию равного значения
-// - Произвольный итерируемый объект для проверки на соответствие предикату
-//
-// При сравнении также проверяется совпадение типов
-//
+// Проверяет установленное значение Контекста (или его свойство) на не равенство `Неопределено`.
+//
// Параметры:
-// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ содержит указанное
-// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция НеСодержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
-
- Если ЮТПредикатыКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда
- ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Истина);
- Иначе
- ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержит, ОжидаемоеЗначение, ОписаниеПроверки);
- КонецЕсли;
+Функция ЭтоНеНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт
+ Контекст = Контекст();
+ УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
+ СравнитьЗначения(Контекст, Неопределено, Истина, "является неопределено");
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на наличие подстроки, соответствующей регулярному выражению
+// Проверяет установленное значение Контекста (или его свойство) на равенство `Null`.
//
// Параметры:
-// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку
// ОписаниеПроверки - Строка - Описание конкретной проверки
//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция СодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ЭтоNull(Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().СодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки);
+ Контекст = Контекст();
+ УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
+ СравнитьЗначения(Контекст, Null, Ложь, "является null");
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленное значение Контекста (или его свойство) на отсутствие подстроки, соответствующей регулярному выражению
+// Проверяет установленное значение Контекста (или его свойство) на не равенство `Null`.
//
// Параметры:
-// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку
// ОписаниеПроверки - Строка - Описание конкретной проверки
//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
-Функция НеСодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт
+Функция ЭтоНеNull(Знач ОписаниеПроверки = Неопределено) Экспорт
- ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки);
+ Контекст = Контекст();
+ УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
+ СравнитьЗначения(Контекст, Null, Истина, "является null");
Возврат ЮТУтверждения;
КонецФункции
// Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции.
-//
-// Проверка поддерживается для следующих типов проверяемого значения:
+//
+// Проверка поддерживается для следующих типов проверяемого значения:
// - Строка
// - Массив
// - Структура
@@ -678,11 +696,11 @@
// - ФиксированнаяСтруктура
// - ФиксированноеСоответствие
// - ТаблицаЗначения
-//
+//
// Параметры:
// ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) имеет указанную длину или размер
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ИмеетДлину(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
@@ -701,8 +719,8 @@
КонецФункции
// Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции.
-//
-// Проверка поддерживается для следующих типов проверяемого значения:
+//
+// Проверка поддерживается для следующих типов проверяемого значения:
// - Строка
// - Массив
// - Структура
@@ -712,11 +730,11 @@
// - ФиксированнаяСтруктура
// - ФиксированноеСоответствие
// - ТаблицаЗначения
-//
+//
// Параметры:
// ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) имеет указанную длину или размер
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ИмеетДлинуБольше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
@@ -735,8 +753,8 @@
КонецФункции
// Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции.
-//
-// Проверка поддерживается для следующих типов проверяемого значения:
+//
+// Проверка поддерживается для следующих типов проверяемого значения:
// - Строка
// - Массив
// - Структура
@@ -746,11 +764,11 @@
// - ФиксированнаяСтруктура
// - ФиксированноеСоответствие
// - ТаблицаЗначения
-//
+//
// Параметры:
// ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) имеет указанную длину или размер
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ИмеетДлинуМеньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
@@ -769,8 +787,8 @@
КонецФункции
// Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции, которые не должны совпадать с указанным значением.
-//
-// Проверка поддерживается для следующих типов проверяемого значения:
+//
+// Проверка поддерживается для следующих типов проверяемого значения:
// - Строка
// - Массив
// - Структура
@@ -780,11 +798,11 @@
// - ФиксированнаяСтруктура
// - ФиксированноеСоответствие
// - ТаблицаЗначения
-//
+//
// Параметры:
// ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) не имеет указанную дину или размер
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция НеИмеетДлину(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт
@@ -804,13 +822,14 @@
#Область ПроверкаМетодов
-// Проверяет установленный для проверки метод Контекста на то, что метод упадет по исключению, далее текст исключения проверяется на ожидаемый.
-//
+// Вызывает метод (см. Метод) объекта контекста и проверяет, выбрасывает ли он исключение.
+// Проверяет, что метод упадет по исключению, а текст исключения содержит(включает) указанный.
+//
// Параметры:
-// ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке будет содержать данный текст
+// ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке будет содержать(включать) данный текст
// ОписаниеПроверки - Строка - Описание конкретной проверки
// ВТранзакции - Булево - Вызов метода выполняется в трананзакции
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ВыбрасываетИсключение(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено, ВТранзакции = Ложь) Экспорт
@@ -821,34 +840,36 @@
Модуль = ПроверяемоеЗначение(Контекст);
Результат = ВызватьМетод(Модуль, Контекст.ИмяМетода, Контекст.ПараметрыМетода, ВТранзакции);
Исключение
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
- Если Не Результат.ИсключениеВозникло Тогда
+ Если НЕ Результат.ИсключениеВозникло Тогда
ТекстОшибки = СтрШаблон("ожидали, что метод `%1` вызовет исключение `%2`, но это не так.", Контекст.ИмяМетода, ОжидаемоеЗначение);
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение);
- ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение);
+ ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(ТекстОшибки, Контекст);
ИначеЕсли СтрНайти(Результат.ТекстИсключения, ОжидаемоеЗначение) = 0 Тогда
ТекстОшибки = СтрШаблон("ожидали, что метод `%1` вызовет исключение `%2`, но получили `%3`.",
- Контекст.ИмяМетода,
- ОжидаемоеЗначение,
- Результат.ТекстИсключения);
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение);
- ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст);
+ Контекст.ИмяМетода,
+ ОжидаемоеЗначение,
+ Результат.ТекстИсключения);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение);
+ ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(ТекстОшибки, Контекст);
КонецЕсли;
Возврат ЮТУтверждения;
КонецФункции
-// Проверяет установленный для проверки метод Контекста на то, что метод не упадет по исключению
-// или упадет по исключению текст которого не содержит ожидаемый.
-//
+// Вызывает метод (см. Метод) объекта контекста и проверяет, выбрасывает ли он исключение.
+// Проверяет, что метод не упадет по исключению
+// или упадет по исключению текст, которого не содержит указанный.
+//
// Параметры:
-// ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке НЕ будет содержать данный текст
+// ОжидаемоеЗначение - Строка - Ожидается, что метод выбросит исключение, текст которого НЕ будет содержать (включать) данный текст
+// - Неопределено - Ожидается, что метод отработает без выбора исключения
// ОписаниеПроверки - Строка - Описание конкретной проверки
// ВТранзакции - Булево - Вызов метода выполняется в трананзакции
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция НеВыбрасываетИсключение(Знач ОжидаемоеЗначение = Неопределено, Знач ОписаниеПроверки = Неопределено, ВТранзакции = Ложь) Экспорт
@@ -859,18 +880,18 @@
Модуль = ПроверяемоеЗначение(Контекст);
Результат = ВызватьМетод(Модуль, Контекст.ИмяМетода, Контекст.ПараметрыМетода, ВТранзакции);
Исключение
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
Если Результат.ИсключениеВозникло Тогда
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Результат.ТекстИсключения, ОжидаемоеЗначение);
Если НЕ ЗначениеЗаполнено(ОжидаемоеЗначение) Тогда
ТекстОшибки = СтрШаблон("ожидали, что метод `%1` не вызовет исключение, но это не так.", Контекст.ИмяМетода);
- ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст);
+ ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(ТекстОшибки, Контекст);
ИначеЕсли СтрНайти(Результат.ТекстИсключения, ОжидаемоеЗначение) <> 0 Тогда
ТекстОшибки = СтрШаблон("ожидали, что метод `%1` не вызовет исключение `%2`, но это не так.", Контекст.ИмяМетода, ОжидаемоеЗначение);
- ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(ТекстОшибки, Контекст);
+ ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(ТекстОшибки, Контекст);
КонецЕсли;
КонецЕсли;
@@ -879,12 +900,12 @@
КонецФункции
// Проверяет, что установленное значение Контекста (или его свойство) имеет указанный экспортный метод.
-//
-//
+//
+//
// Параметры:
// ИмяМетода - Строка - Имя метода, наличие которого нужно проверить
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ИмеетМетод(ИмяМетода, ОписаниеПроверки = Неопределено) Экспорт
@@ -893,8 +914,8 @@
УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки);
Модуль = ПроверяемоеЗначение(Контекст);
- Результат = ЮТОбщий.МетодОбъектаСуществует(Модуль, ИмяМетода);
- Если Не Результат Тогда
+ Результат = ЮТМетодыСлужебный.МетодОбъектаСуществует(Модуль, ИмяМетода);
+ Если НЕ Результат Тогда
Сообщение = СтрШаблон("имеет метод `%1`", ИмяМетода);
СгенерироватьОшибкуСравнения(Сообщение, Модуль, ИмяМетода);
КонецЕсли;
@@ -905,13 +926,13 @@
#КонецОбласти
// Проверяет установленное значение Контекста (или его свойство), ожидается что оно начинается на указанное значение.
-//
+//
// При этом проверяемое значение должно быть строкой.
-//
+//
// Параметры:
// СтрокаПоиска - Строка - Строка поиска
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция НачинаетсяС(СтрокаПоиска, ОписаниеПроверки = Неопределено) Экспорт
@@ -935,13 +956,13 @@
КонецФункции
// Проверяет установленное значение Контекста (или его свойство), ожидается что оно заканчивается на указанное значение.
-//
+//
// При этом проверяемое значение должно быть строкой.
-//
+//
// Параметры:
// СтрокаПоиска - Строка - Строка поиска
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ЗаканчиваетсяНа(СтрокаПоиска, ОписаниеПроверки = Неопределено) Экспорт
@@ -965,14 +986,14 @@
КонецФункции
// Проверяет вхождение установленного значение (или его свойства) в заданный интервал.
-//
+//
// Проверяемое значение может находится на границе интервала.
-//
+//
// Параметры:
// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения
// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция МеждуВключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт
@@ -985,14 +1006,14 @@
КонецФункции
// Проверяет вхождение установленного значение (или его свойства) в заданный интервал.
-//
+//
// Проверяемое значение не может находится на границе интервала.
-//
+//
// Параметры:
// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения
// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция МеждуИсключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт
@@ -1005,14 +1026,14 @@
КонецФункции
// Проверяет вхождение установленного значение (или его свойства) в заданный интервал.
-//
+//
// Проверяемое значение может находится на начальной границе интервала.
-//
+//
// Параметры:
// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения
// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция МеждуВключаяНачалоГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт
@@ -1025,14 +1046,14 @@
КонецФункции
// Проверяет вхождение установленного значение (или его свойства) в заданный интервал.
-//
+//
// Проверяемое значение может находится на конечной границе интервала.
-//
+//
// Параметры:
// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения
// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция МеждуВключаяОкончаниеГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт
@@ -1045,11 +1066,11 @@
КонецФункции
// Проверяет каждый элемент установленного значения (или его свойства), все элементы должны иметь указанное свойство.
-//
+//
// Параметры:
// ИмяСвойства - Строка
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция КаждыйЭлементСодержитСвойство(ИмяСвойства, ОписаниеПроверки = Неопределено) Экспорт
@@ -1072,14 +1093,14 @@
КонецФункции
-// Проверяет каждый элемент установленного значения (или его свойства),
+// Проверяет каждый элемент установленного значения (или его свойства),
// все элементы должны иметь указанное свойство, которое равно ожидаемому значению.
-//
+//
// Параметры:
// ИмяСвойства - Строка
// ОжидаемоеЗначение - Произвольный - Ожидаемое значение свойства
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция КаждыйЭлементСодержитСвойствоСоЗначением(ИмяСвойства, ОжидаемоеЗначение, ОписаниеПроверки = Неопределено) Экспорт
@@ -1112,11 +1133,11 @@
КонецФункции
// Проверяет элементы установленного значения (или его свойства), хотя бы один из них должен иметь указанное свойство.
-//
+//
// Параметры:
// ИмяСвойства - Строка
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ЛюбойЭлементСодержитСвойство(ИмяСвойства, ОписаниеПроверки = Неопределено) Экспорт
@@ -1145,14 +1166,14 @@
КонецФункции
-// Проверяет элементы установленного значения (или его свойства),
+// Проверяет элементы установленного значения (или его свойства),
// хотя бы один из них должен иметь указанное свойство, которое равно ожидаемому значению.
-//
+//
// Параметры:
// ИмяСвойства - Строка
// ОжидаемоеЗначение - Произвольный - Ожидаемое значение свойства
// ОписаниеПроверки - Строка - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ЛюбойЭлементСодержитСвойствоСоЗначением(ИмяСвойства, ОжидаемоеЗначение, ОписаниеПроверки = Неопределено) Экспорт
@@ -1196,13 +1217,13 @@
// Проверяет установленное значение (или его свойства) на соответствие утверждениям предиката.
// см. ЮТест.Предикат
-//
+//
// Параметры:
// Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить
// - см. ЮТФабрика.ВыражениеПредиката
// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат
// ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция СоответствуетПредикату(Предикат, ОписаниеПроверки = Неопределено) Экспорт
@@ -1213,7 +1234,7 @@
ПараметрыСообщенийОбОшибке = ПараметрыСообщенийОбОшибке(ПроверяемоеЗначение, ОписаниеПроверки);
- РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(ПроверяемоеЗначение, Предикат, ПараметрыСообщенийОбОшибке);
+ РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(ПроверяемоеЗначение, Предикат, ПараметрыСообщенийОбОшибке);
Если НЕ РезультатПроверки.Успешно Тогда
ОбработатьРезультатПроверки(Контекст, РезультатПроверки);
@@ -1223,16 +1244,16 @@
КонецФункции
-// Проверяет каждый элемент установленного значения (или его свойства),
+// Проверяет каждый элемент установленного значения (или его свойства),
// все элементы должны соответствовать утверждениям предиката.
// см. ЮТест.Предикат
-//
+//
// Параметры:
// Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить
// - см. ЮТФабрика.ВыражениеПредиката
// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат
// ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция КаждыйЭлементСоответствуетПредикату(Предикат, ОписаниеПроверки = Неопределено) Экспорт
@@ -1245,7 +1266,7 @@
Для Каждого Элемент Из ПроверяемоеЗначение Цикл
- РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке);
+ РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке);
Если НЕ РезультатПроверки.Успешно Тогда
ОбработатьРезультатПроверки(Контекст, РезультатПроверки);
КонецЕсли;
@@ -1256,16 +1277,16 @@
КонецФункции
-// Проверяет элементы установленного значения (или его свойства),
+// Проверяет элементы установленного значения (или его свойства),
// хотя бы один из них должен соответствовать утверждениям предиката.
// см. ЮТест.Предикат
-//
+//
// Параметры:
// Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить
// - см. ЮТФабрика.ВыражениеПредиката
// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат
// ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки
-//
+//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция ЛюбойЭлементСоответствуетПредикату(Предикат, ОписаниеПроверки = Неопределено) Экспорт
@@ -1280,7 +1301,7 @@
Для Каждого Элемент Из ПроверяемоеЗначение Цикл
- РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке);
+ РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке);
Если РезультатПроверки.Успешно Тогда
Успешно = Истина;
Прервать;
@@ -1289,7 +1310,7 @@
КонецЦикла;
Если НЕ Успешно Тогда
- Сообщение = ЮТПредикатыКлиентСервер.ПредставлениеПредикатов(Предикат, " и ");
+ Сообщение = ЮТПредикатыСлужебныйКлиентСервер.ПредставлениеПредикатов(Предикат, " и ");
СгенерироватьОшибкуУтверждения(Сообщение, ПроверяемоеЗначение, "один из элементов проверяемого значения");
КонецЕсли;
@@ -1299,23 +1320,21 @@
#КонецОбласти
-#КонецОбласти
-
#Область СлужебныйПрограммныйИнтерфейс
// Сбросить контекст.
// Используется для принудительного сброса контекста утверждения
Процедура СброситьКонтекст() Экспорт
- ЮТКонтекст.УстановитьКонтекстУтверждений(Неопределено);
- ЮТКонтекст.УстановитьКонтекстОшибки();
+ ЮТКонтекстСлужебный.УстановитьКонтекстУтверждений(Неопределено);
+ ЮТРегистрацияОшибокСлужебный.УстановитьКонтекстОшибки();
КонецПроцедуры
// Обработчик события "ПередКаждымТестом"
-//
+//
// Параметры:
-// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
+// ОписаниеСобытия - см. ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов
Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт
СброситьКонтекст();
@@ -1329,24 +1348,24 @@
#Область Контекст
// Контекст.
-//
+//
// Возвращаемое значение:
// см. НовыйКонтекстУтверждения
Функция Контекст() Экспорт
//@skip-check constructor-function-return-section
- Возврат ЮТКонтекст.КонтекстПроверки();
+ Возврат ЮТКонтекстСлужебный.КонтекстПроверки();
КонецФункции
// Инициализирует контекст утверждений
-//
+//
// Параметры:
// ПроверяемоеЗначение - Произвольный - Проверяемое значение
-//
+//
// Возвращаемое значение:
// Структура - контекст утверждений:
-// * ОбъектПроверки - см. ЮТФабрика.ОписаниеПроверяемогоЗначения
+// * ОбъектПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверяемогоЗначения
// * ИмяМетода - Строка
// * НормализованныйПутьКСвойству - Неопределено - Не указано свойство
// - Массив из Строка, Число
@@ -1354,7 +1373,7 @@
// - Массив из Произвольный
Функция НовыйКонтекстУтверждения(ПроверяемоеЗначение)
- Контекст = ЮТФабрика.ОписаниеПроверки(ПроверяемоеЗначение);
+ Контекст = ЮТФабрикаСлужебный.ОписаниеПроверки(ПроверяемоеЗначение);
Контекст.Вставить("ИмяМетода", "");
Контекст.Вставить("НормализованныйПутьКСвойству", Неопределено);
@@ -1385,8 +1404,8 @@
Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда
#Если ВебКлиент Или ТонкийКлиент Тогда
- Значение = ЮТОбщийВызовСервера.ИзХранилищаЗначений(Значение);
-#Иначе
+ Значение = ЮТОбщийСлужебныйВызовСервера.ИзХранилищаЗначений(Значение);
+#Иначе
Значение = Значение.Получить();
#КонецЕсли
КонецЕсли;
@@ -1501,11 +1520,11 @@
Результат = Ложь;
ТипЗначения = ТипЗнч(Значение);
- Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("ФиксированнаяСтруктура") Тогда
+ Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) Тогда
Результат = Значение.Свойство(Свойство);
- ИначеЕсли ТипЗначения = Тип("Соответствие") Или ТипЗначения = Тип("ФиксированноеСоответствие") Тогда
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения) Тогда
Для Каждого КлючЗначение Из Значение Цикл
@@ -1558,9 +1577,9 @@
Функция ВызватьМетод(Модуль, ИмяМетода, ПараметрыМетода, ВТранзакции)
#Если ВебКлиент Тогда
- ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТУтверждения.ВызватьМетод");
+ ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТУтверждения.ВызватьМетод");
#Иначе
- Если Не ЗначениеЗаполнено(ИмяМетода) Тогда
+ Если НЕ ЗначениеЗаполнено(ИмяМетода) Тогда
ВызватьИсключение "ИмяМетода не заполнено в контексте. Воспользуйтесь предварительно методом интерфейса `Метод(ИмяМетода)`";
КонецЕсли;
@@ -1585,13 +1604,13 @@
КонецЕсли;
НачатьТранзакцию(); // BSLLS:PairingBrokenTransaction-off BSLLS:BeginTransactionBeforeTryCatch-off
- Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль);
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль);
ОтменитьТранзакцию(); // BSLLS:WrongUseOfRollbackTransactionMethod-off
Иначе
- Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль);
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль);
КонецЕсли;
#Иначе
- Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль);
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыМетода, Модуль);
#КонецЕсли
Если Ошибка <> Неопределено Тогда
@@ -1625,7 +1644,7 @@
ТипЗнч(Значение),
ОжидаемыйТип,
Суффикс);
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
КонецЕсли;
КонецПроцедуры
@@ -1656,7 +1675,7 @@
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Результат = ЗначенияРавны(ПроверяемоеЗначение, ОжидаемоеЗначение);
Исключение
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
ОбработатьРезультатСравнения(Результат, Сообщение, Реверс, ПроверяемоеЗначение, ОжидаемоеЗначение);
@@ -1668,7 +1687,7 @@
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
Результат = ПроверяемоеЗначение <> Null И ПроверяемоеЗначение <> Неопределено;
Исключение
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
ОбработатьРезультатСравнения(Результат, "существует", Реверс, ПроверяемоеЗначение, Неопределено);
@@ -1681,12 +1700,12 @@
ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст);
ФактическаяДлина = ДлинаЗначения(ПроверяемоеЗначение);
Исключение
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ИнформацияОбОшибке(), Контекст);
КонецПопытки;
Если ФактическаяДлина = Неопределено Тогда
ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение));
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
КонецЕсли;
Возврат ФактическаяДлина;
@@ -1700,7 +1719,7 @@
Сообщение = "не " + Сообщение;
КонецЕсли;
- Если Не Результат Тогда
+ Если НЕ Результат Тогда
СгенерироватьОшибкуСравнения(Сообщение, ПроверяемоеЗначение, ОжидаемоеЗначение);
КонецЕсли;
@@ -1720,7 +1739,7 @@
ТекстОшибки = СтрШаблон("Не корректно задан интервал, левая граница (%1) не должна быть больше правой (%2)",
НачалоИнтервала,
ОкончаниеИнтервала);
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
КонецЕсли;
Результат = Истина;
@@ -1736,32 +1755,33 @@
Результат = Результат И ПроверяемоеЗначение < ОкончаниеИнтервала;
КонецЕсли;
- Если Не Результат Тогда
+ Если НЕ Результат Тогда
Интервал = СтрШаблон("%1%2; %3%4",
- ?(ВключаяНачало, "[", "("),
- НачалоИнтервала,
- ОкончаниеИнтервала,
- ?(ВключаяОкончание, "]", ")"));
+ ?(ВключаяНачало, "[", "("),
+ НачалоИнтервала,
+ ОкончаниеИнтервала,
+ ?(ВключаяОкончание, "]", ")"));
Сообщение = "находится в интервале " + Интервал;
СгенерироватьОшибкуСравнения(Сообщение, ПроверяемоеЗначение, Интервал);
КонецЕсли;
-
+
КонецПроцедуры
Процедура ПроверитьЗаполненностьЗначения(Контекст, Значение, Описание)
Если НЕ ЗначениеЗаполнено(Значение) Тогда
ТекстОшибки = СтрШаблон("Ожидали, что %1 заполнено, но это не так", Описание);
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст);
КонецЕсли;
КонецПроцедуры
Процедура ОбъектыРавны(Объект, ОбъектЭталон)
- Ключи = ЮТОбщий.ВыгрузитьЗначения(ОбъектЭталон, "Ключ");
+ Ключи = ЮТКоллекции.ВыгрузитьЗначения(ОбъектЭталон, "Ключ");
+ ТипЗначения = ТипЗнч(Объект);
- ЭтоСоответствие = ТипЗнч(Объект) = Тип("Соответствие") ИЛИ ТипЗнч(Объект) = Тип("ФиксированноеСоответствие");
- ЭтоСтруктура = ТипЗнч(Объект) = Тип("Структура") ИЛИ ТипЗнч(Объект) = Тип("ФиксированнаяСтруктура");
+ ЭтоСоответствие = ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения);
+ ЭтоСтруктура = ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения);
ЗначениеОтсутствующегоРеквизита = Новый УникальныйИдентификатор();
@@ -1777,7 +1797,7 @@
Для Каждого Ключ Из Ключи Цикл
- Если Не ЭтоСоответствие И (Не СтруктураОбъекта.Свойство(Ключ) Или СтруктураОбъекта[Ключ] = ЗначениеОтсутствующегоРеквизита) Тогда
+ Если НЕ ЭтоСоответствие И (НЕ СтруктураОбъекта.Свойство(Ключ) ИЛИ СтруктураОбъекта[Ключ] = ЗначениеОтсутствующегоРеквизита) Тогда
Сообщение = СтрШаблон("не содержат свойство '%1'", Ключ);
СгенерироватьОшибкуСравнения(Сообщение, СтруктураОбъекта, ОбъектЭталон);
КонецЕсли;
@@ -1798,12 +1818,12 @@
Для Каждого Сообщение Из Результат.Сообщения Цикл
Если ТипЗнч(Сообщение) = Тип("Структура") Тогда
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение);
- ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибок.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение);
+ ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибокСлужебный.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение);
ВызватьИсключение ТекстИсключения;
Иначе
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(Сообщение, Контекст);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(Сообщение, Контекст);
КонецЕсли;
КонецЦикла;
@@ -1817,16 +1837,16 @@
Функция ПараметрыСообщенийОбОшибке(ПроверяемоеЗначение, ОписаниеПроверки, ОбъектПроверки = "проверяемое значение")
Контекст = Контекст();
- ПолноеОписаниеПроверки = ЮТОбщий.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " ");
+ ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " ");
ПредставлениеЗначения = СтрШаблон("`%1`", ПроверяемоеЗначение);
- Возврат ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, ОбъектПроверки, ПредставлениеЗначения);
+ Возврат ЮТПредикатыСлужебныйКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, ОбъектПроверки, ПредставлениеЗначения);
КонецФункции
// Вызывает ошибку проверки утверждений
// При этом сохраняет в контекст состояние, для дальнейшей обработки
-//
+//
// Параметры:
// Сообщение - Строка
// ПроверяемоеЗначение - Произвольный
@@ -1834,14 +1854,14 @@
Процедура СгенерироватьОшибкуУтверждения(Сообщение, ПроверяемоеЗначение, ОбъектПроверки = "проверяемое значение")
Контекст = Контекст();
- ЮТРегистрацияОшибок.СгенерироватьОшибкуУтверждения(Контекст, Сообщение, ПроверяемоеЗначение, ОбъектПроверки);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуУтверждения(Контекст, Сообщение, ПроверяемоеЗначение, ОбъектПроверки);
КонецПроцедуры
Процедура СгенерироватьОшибкуСравнения(Сообщение, ФактическоеЗначение, ОжидаемоеЗначение, ОбъектПроверки = "проверяемое значение")
Контекст = Контекст();
- ЮТРегистрацияОшибок.СгенерироватьОшибкуСравнения(Контекст, Сообщение, ФактическоеЗначение, ОжидаемоеЗначение, ОбъектПроверки);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуСравнения(Контекст, Сообщение, ФактическоеЗначение, ОжидаемоеЗначение, ОбъектПроверки);
КонецПроцедуры
@@ -1852,28 +1872,28 @@
Контекст = Контекст();
Предикат = ЮТФабрика.ВыражениеПредиката(Выражение, Контекст.ОбъектПроверки.ИмяСвойства, ОжидаемоеЗначение);
- ПолноеОписаниеПроверки = ЮТОбщий.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " ");
+ ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " ");
- ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, , Контекст.ОбъектПроверки.Представление);
- Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);
+ ПараметрыСообщенийОбОшибке = ЮТПредикатыСлужебныйКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, , Контекст.ОбъектПроверки.Представление);
+ Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);
ОбработатьРезультатПроверкиПредиката(Результат);
КонецПроцедуры
-
+
Процедура ОбработатьРезультатПроверкиПредиката(Результат)
Если НЕ Результат.Успешно Тогда
Для Каждого Сообщение Из Результат.Сообщения Цикл
-
+
Если ТипЗнч(Сообщение) = Тип("Структура") Тогда
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение);
-
- ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибок.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(Сообщение.ПроверяемоеЗначение, Сообщение.ОжидаемоеЗначение);
+
+ ТекстИсключения = СтрШаблон("%1 <%2>", ЮТРегистрацияОшибокСлужебный.ПрефиксОшибкиУтверждений(), Сообщение.Сообщение);
ВызватьИсключение ТекстИсключения;
Иначе
- ЮТРегистрацияОшибок.СгенерироватьОшибкуВыполнения(Сообщение);
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(Сообщение);
КонецЕсли;
КонецЦикла;
@@ -1896,7 +1916,7 @@
Для Каждого Элемент Из ПроверяемоеЗначение Цикл
- РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке);
+ РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Элемент, Предикат, ПараметрыСообщенийОбОшибке);
Если РезультатПроверки.Успешно Тогда
Успешно = Истина;
Прервать;
@@ -1909,7 +1929,7 @@
КонецЕсли;
Если НЕ Успешно Тогда
- Сообщение = "содержит элемент, значение которого " + ЮТПредикатыКлиентСервер.ПредставлениеПредикатов(Предикат, " и ");
+ Сообщение = "содержит элемент, значение которого " + ЮТПредикатыСлужебныйКлиентСервер.ПредставлениеПредикатов(Предикат, " и ");
Если Реверс Тогда
Сообщение = "не " + Сообщение;
@@ -1921,5 +1941,5 @@
КонецПроцедуры
#КонецОбласти
-
+
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonModules/\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/exts/yaxunit/src/CommonModules/\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 ff3a3df66..f8125236e 100644
--- "a/exts/yaxunit/src/CommonModules/\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/exts/yaxunit/src/CommonModules/\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.
@@ -50,7 +50,7 @@
Контекст = НовыйКонтекст(ИмяТаблицы);
Контекст.ПрефиксОшибки = ОписаниеПроверки;
- ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяКонтекста(), Контекст);
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекста(), Контекст);
Возврат ЮТУтвержденияИБ;
@@ -235,7 +235,7 @@
Функция Контекст()
//@skip-check constructor-function-return-section
- Возврат ЮТКонтекст.ЗначениеКонтекста(ИмяКонтекста());
+ Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекста());
КонецФункции
@@ -245,10 +245,10 @@
// ИмяТаблицы - Строка
//
// Возвращаемое значение:
-// см. ЮТФабрика.ОписаниеПроверки
+// см. ЮТФабрикаСлужебный.ОписаниеПроверки
Функция НовыйКонтекст(ИмяТаблицы)
- Контекст = ЮТФабрика.ОписаниеПроверки(ИмяТаблицы);
+ Контекст = ЮТФабрикаСлужебный.ОписаниеПроверки(ИмяТаблицы);
Возврат Контекст;
@@ -265,7 +265,7 @@
Процедура СгенерироватьОшибкуУтверждения(Контекст, Предикат, Сообщение)
Если Предикат <> Неопределено Тогда
- ПредставлениеПредиката = ЮТПредикатыКлиентСервер.ПредставлениеПредикатов(Предикат, ", ", "`%1`");
+ ПредставлениеПредиката = ЮТПредикатыСлужебныйКлиентСервер.ПредставлениеПредикатов(Предикат, ", ", "`%1`");
КонецЕсли;
Если ЗначениеЗаполнено(ПредставлениеПредиката) Тогда
@@ -274,7 +274,7 @@
СообщениеОбОшибке = Сообщение;
КонецЕсли;
- ЮТРегистрацияОшибок.СгенерироватьОшибкуУтверждения(Контекст, СообщениеОбОшибке, Неопределено, "проверяемая таблица");
+ ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуУтверждения(Контекст, СообщениеОбОшибке, Неопределено, "проверяемая таблица");
КонецПроцедуры
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 5761e5d2f..858409ad9 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"
@@ -16,26 +16,9 @@
//
//©///////////////////////////////////////////////////////////////////////////©//
-#Область СлужебныйПрограммныйИнтерфейс
-
-// Параметры записи объекта
-//
-// Возвращаемое значение:
-// Структура - Параметры записи:
-// * ОбменДаннымиЗагрузка - Булево
-// * ДополнительныеСвойства - Структура
-// * РежимЗаписи - РежимЗаписиДокумента
-Функция ПараметрыЗаписи() Экспорт
-
- ПараметрыЗаписи = Новый Структура();
- ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь);
- ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура);
- ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Запись);
-
- Возврат ПараметрыЗаписи;
-
-КонецФункции
+#Область ПрограммныйИнтерфейс
+#Область Перечисления
// КонтекстыВызова
// Возвращает перечисление возможных контекстов вызова
// Возвращаемое значение:
@@ -59,31 +42,9 @@
КонецФункции
-// Доступные параметры (настройки) исполнения тестов
-//
-// Возвращаемое значение:
-// ФиксированнаяСтруктура - Параметры исполнения теста:
-// * ВТранзакции - Строка - Тест должен выполняться в транзакции
-// * УдалениеТестовыхДанных - Строка - Тест должен удалить созданные тестовые данные
-// * Перед - Строка - Перед тестом должен выполниться указанный обработчик события вместо основного
-// * После - Строка - После теста должен выполниться указанный обработчик события вместо основного
-Функция ПараметрыИсполненияТеста() Экспорт
-
- Параметры = Новый Структура();
- Параметры.Вставить("ВТранзакции", "ВТранзакции");
- Параметры.Вставить("УдалениеТестовыхДанных", "УдалениеТестовыхДанных");
- Параметры.Вставить("Перед", "Перед");
- Параметры.Вставить("После", "После");
-
- Возврат Новый ФиксированнаяСтруктура(Параметры);
-
-КонецФункции
-
-#Область Перечисления
-
// КонтекстыИсполнения
// Возвращает перечисление возможных контекстов исполнения тестов
-//
+//
// Возвращаемое значение:
// ФиксированнаяСтруктура - Контексты исполнения:
// * Клиент - Строка
@@ -100,7 +61,7 @@
КонецФункции
// Возвращает перечисление возможных статусов выполнения теста, жизненный цикл теста
-//
+//
// Возвращаемое значение:
// ФиксированнаяСтруктура - Статусы исполнения теста:
// * Ожидание- Строка - Тест не выполнялся
@@ -126,58 +87,13 @@
КонецФункции
-// Типы ошибок.
+// Возвращает перечисление возможные уровнией исполнения тестрв.
//
// Возвращаемое значение:
-// ФиксированнаяСтруктура - Типы возможных ошибок:
-// * ТестНеРеализован - Строка
-// * ОшибкаСравнения - Строка
-// * ОшибкаОбработкиСобытия - Строка
-// * Утверждений - Строка
-// * Исполнения - Строка
-// * ЧтенияТестов - Строка
-// * МалоПараметров - Строка
-// * МногоПараметров - Строка
-// * НекорректныйКонтекстИсполнения - Строка
-// * Пропущен - Строка
-Функция ТипыОшибок() Экспорт
-
- Типы = Новый Структура;
-
- Для Каждого ТипОшибки Из ПараметрыТиповОшибок() Цикл
- Типы.Вставить(ТипОшибки.Ключ, ТипОшибки.Ключ);
- КонецЦикла;
-
- //@skip-check constructor-function-return-section
- Возврат Новый ФиксированнаяСтруктура(Типы);
-
-КонецФункции
-
-Функция ПараметрыТиповОшибок(Кешировать = Истина) Экспорт
-
- Если Кешировать Тогда
- ЮТПовторногоИспользования.ПараметрыТиповОшибок();
- КонецЕсли;
-
- Статусы = СтатусыИсполненияТеста();
- Реквизиты = "Ключ, Представление, Статус";
-
- ТипыОшибок = Новый Массив();
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ТестНеРеализован", "Не реализован", Статусы.НеРеализован));
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаСравнения", "Ошибка сравнения", Статусы.Ошибка));
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаОбработкиСобытия", "Ошибка обработки события", Статусы.Сломан));
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Утверждений", "Ошибка утверждений", Статусы.Ошибка));
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Исполнения", "Ошибка исполнения", Статусы.Сломан));
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ЧтенияТестов", "Загрузки тестов", Статусы.Сломан));
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МалоПараметров", "Мало фактических параметров", Статусы.Сломан));
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МногоПараметров", "Много фактических параметров", Статусы.Сломан));
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "НекорректныйКонтекстИсполнения", "Некорректный контекст исполнения", Статусы.Пропущен));
- ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Пропущен", "Пропущен", Статусы.Пропущен));
-
- Возврат ЮТОбщий.ВСтруктуру(ТипыОшибок, "Ключ");
-
-КонецФункции
-
+// ФиксированнаяСтруктура - Уровни исполнения:
+// * Модуль - Строка
+// * НаборТестов - Строка
+// * Тест - Строка
Функция УровниИсполнения() Экспорт
Уровни = Новый Структура;
@@ -191,215 +107,10 @@
#КонецОбласти
-#Область СтруктурыДанных
-
-// Описание тестового модуля.
-//
-// Параметры:
-// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
-// НаборыТестов - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора
-//
-// Возвращаемое значение:
-// Структура - Описание тестового модуля:
-// * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
-// * НаборыТестов - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора
-// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки
-// * НастройкиВыполнения- Структура - Настройки исполнения теста
-Функция ОписаниеТестовогоМодуля(МетаданныеМодуля, НаборыТестов) Экспорт
-
- Описание = Новый Структура;
- Описание.Вставить("МетаданныеМодуля", МетаданныеМодуля);
- Описание.Вставить("НаборыТестов", НаборыТестов);
- Описание.Вставить("Ошибки", Новый Массив);
- Описание.Вставить("НастройкиВыполнения", Новый Структура());
-
- Возврат Описание;
-
-КонецФункции
-
-// ОписаниеТестовогоНабора
-// Возвращает описание регистрируемого тестового набора.
-// Эта структура используется на этапе формирования описаний имеющихся тестов
-// Параметры:
-// Имя - Строка - Имя набора
-// ТегиСтрокой - Строка - Теги набора
-//
-// Возвращаемое значение:
-// Структура - Описание тестового набора:
-// * Имя - Строка - Имя набора
-// * Представление - Строка - Представление, краткое описание
-// * Теги - Массив из Строка - Коллекция тегов набора
-// * Тесты - Массив из см. ОписаниеТеста - Коллекция тестов набора, см. ОписаниеТеста
-// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки - Описания ошибок регистрации тестов
-// * НастройкиВыполнения- Структура - Настройки исполнения теста
-Функция ОписаниеТестовогоНабора(Имя, ТегиСтрокой = "") Экспорт
-
- Описание = Новый Структура;
- Описание.Вставить("Имя", Строка(Имя));
- Описание.Вставить("Представление", Строка(Имя));
- Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь));
- Описание.Вставить("Тесты", Новый Массив);
- Описание.Вставить("Ошибки", Новый Массив);
- Описание.Вставить("НастройкиВыполнения", Новый Структура());
-
- Возврат Описание;
-
-КонецФункции
-
-// ОписаниеТеста
-// Возвращает описание регистрируемого теста.
-// Эта структура используется на этапе формирования описаний имеющихся тестов
-// Параметры:
-// Имя - Строка - Имя тестового метода
-// Представление - Строка - Представление, краткое описание теста
-// КонтекстыВызова - Массив из Строка - Контексты исполнения теста
-// ТегиСтрокой - Строка - Теги теста
-//
-// Возвращаемое значение:
-// Структура - Описание теста:
-// * Имя - Строка - Имя теста (тестового метода)
-// * Представление - Строка - Представление теста
-// * Теги - Массив из Строка - Теги теста
-// * КонтекстВызова - Массив из Строка - Контексты исполнения теста
-// * НастройкиВыполнения- Структура - Настройки исполнения теста
-// * Параметры - Неопределено, Массив из Произвольный - Параметры теста
-// * НомерВНаборе - Число - Порядковый номер теста в наборе
-Функция ОписаниеТеста(Имя, Представление, КонтекстыВызова, Знач ТегиСтрокой = "") Экспорт
-
- Если ТегиСтрокой = Неопределено Тогда
- ТегиСтрокой = "";
- КонецЕсли;
-
- Описание = Новый Структура();
- Описание.Вставить("Имя", Строка(Имя));
- Описание.Вставить("Представление", Строка(Представление));
- Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь));
- Описание.Вставить("КонтекстВызова", КонтекстыВызова);
- Описание.Вставить("НастройкиВыполнения", Новый Структура());
- Описание.Вставить("Параметры", Неопределено);
- Описание.Вставить("НомерВНаборе", 0);
-
- Возврат Описание;
-
-КонецФункции
-
-// Описание исполняемого тестового модуля.
-// Содержит всю необходимую информацию для прогона тестов, а также данные результата
-// Параметры:
-// ТестовыйМодуль - см. ОписаниеТестовогоМодуля
-//
-// Возвращаемое значение:
-// Структура - Описание тестового модуля:
-// * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
-// * НаборыТестов - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки
-// * НастройкиВыполнения- Структура - Настройки исполнения теста
-Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт
-
- Описание = Новый Структура;
-
- Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
- Описание.Вставить("НаборыТестов", Новый Массив);
- Описание.Вставить("Ошибки", ЮТОбщий.СкопироватьМассив(ТестовыйМодуль.Ошибки));
- Описание.Вставить("НастройкиВыполнения", ЮТОбщий.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения));
-
- Возврат Описание;
-
-КонецФункции
-
-// ОписаниеИсполняемогоНабораТестов
-// Возвращает описание исполняемого тестового набора.
-// Содержит данные необходимые для выполнения прогона тестов
-// Параметры:
-// НаборТестов - См. ОписаниеТестовогоНабора
-// ТестовыйМодуль - См. ОписаниеТестовогоМодуля
-//
-// Возвращаемое значение:
-// Структура - Описание исполняемого набора тестов:
-// * Имя - Строка - Имя набора
-// * Представление - Строка - Представление набора
-// * Теги - Массив из Строка - Тэги набора
-// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста
-// * Режим - Строка - Режим исполнения набора, см. КонтекстыВызова
-// * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
-// * Тесты - Массив из см. ОписаниеИсполняемогоТеста - Тесты набора, структуру тестов см. ОписаниеИсполняемогоТеста
-// * Выполнять - Булево - Признак, что можно выполнить прогон набора (нет ошибок блокирующих запуск)
-// * ДатаСтарта - Число - Дата запуска набора
-// * Длительность - Число - Продолжительность выполнения набора
-// * НастройкиВыполнения - Структура - Настройки исполнения теста
-// * ТестовыйМодуль - См. ОписаниеТестовогоМодуля
-Функция ОписаниеИсполняемогоНабораТестов(НаборТестов, ТестовыйМодуль) Экспорт
-
- Описание = Новый Структура();
-
- Описание.Вставить("Имя", НаборТестов.Имя);
- Описание.Вставить("Представление", НаборТестов.Представление);
- Описание.Вставить("Теги", НаборТестов.Теги);
- Описание.Вставить("Ошибки", ЮТОбщий.СкопироватьМассив(НаборТестов.Ошибки));
- Описание.Вставить("Режим", "");
- Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль);
- Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
- Описание.Вставить("Тесты", Новый Массив);
- Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0);
- Описание.Вставить("ДатаСтарта", 0);
- Описание.Вставить("Длительность", 0);
- Описание.Вставить("НастройкиВыполнения", НаборТестов.НастройкиВыполнения);
-
- Возврат Описание;
-
-КонецФункции
-
-// ОписаниеИсполняемогоТеста
-// Возвращает описание исполняемого теста
-// Содержит данные необходимые для выполнения прогона тестов
-//
-// Параметры:
-// Тест - См. ОписаниеТеста
-// Режим - См. КонтекстыВызова
-// ТестовыйМодуль - См. ОписаниеТестовогоМодуля
-//
-// Возвращаемое значение:
-// Структура - Описание исполняемого теста:
-// * Имя - Строка - Имя/представление теста
-// * Метод - Строка - Имя тестового метода
-// * ПолноеИмяМетода - Строка - Полное имя тестового метода, ИмяМодуля.ИмяМетода
-// * Теги - Массив из Строка - Теги теста
-// * Режим - Строка - Режим исполнения теста, см. КонтекстыВызова
-// * ДатаСтарта - Число - Дата запуска теста
-// * Длительность - Число - Продолжительность выполнения теста
-// * Статус - Строка - Статус выполнения теста, см. СтатусыИсполненияТеста
-// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста, см. ЮТФабрика.ОписаниеВозникшейОшибки
-// * НастройкиВыполнения- Структура - Настройки исполнения теста
-// * Параметры - Неопределено, Массив из Произвольный - Набор параметров теста
-// * НомерВНаборе - Число - Порядковый номер теста в наборе
-Функция ОписаниеИсполняемогоТеста(Тест, Режим, ТестовыйМодуль) Экспорт
-
- ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.МетаданныеМодуля.Имя, Тест.Имя);
- Представление = ПредставлениеТеста(Тест);
-
- ОписаниеТеста = Новый Структура;
- ОписаниеТеста.Вставить("Имя", Представление);
- ОписаниеТеста.Вставить("Метод", Тест.Имя);
- ОписаниеТеста.Вставить("ПолноеИмяМетода", ПолноеИмяМетода);
- ОписаниеТеста.Вставить("Теги", Тест.Теги);
- ОписаниеТеста.Вставить("Режим", Режим);
- ОписаниеТеста.Вставить("ДатаСтарта", 0);
- ОписаниеТеста.Вставить("Длительность", 0);
- ОписаниеТеста.Вставить("Статус", СтатусыИсполненияТеста().Ожидание);
- ОписаниеТеста.Вставить("Ошибки", Новый Массив);
- ОписаниеТеста.Вставить("НастройкиВыполнения", Тест.НастройкиВыполнения);
- ОписаниеТеста.Вставить("Параметры", Тест.Параметры);
- ОписаниеТеста.Вставить("НомерВНаборе", Тест.НомерВНаборе);
-
- //@skip-check constructor-function-return-section
- Возврат ОписаниеТеста;
-
-КонецФункции
-
// ПараметрыЗапуска
-// Набор параметров подсистемы тестирования.
+// Набор параметров подсистемы тестирования.
// Параметры на английском, чтобы не держать несколько реализаций чтения и обработки параметров
-//
+//
// Возвращаемое значение:
// Структура - Параметры:
// * ВыполнятьМодульноеТестирование - Булево - Признак необходимости выполнения тестов
@@ -407,14 +118,14 @@
// * filter - см. ПараметрыФильтрации
// * settings - см. НастройкиВыполнения
// * closeAfterTests - Булево - Признак необходимости закрытия приложения по окончании прогона
-// * reportFormat - Строка - Формат отчета о тестировании.
+// * reportFormat - Строка - Формат отчета о тестировании.
// Модули реализующие различные форматы отчетов собраны в подсистеме ЮТФормированиеОтчета
// * logging - см. ПараметрыЛогирования
// * showReport - Булево - Признак необходмости отобразить отчет в 1с по окончании тестирования
// * exitCode - Строка - Путь к файлу, в который будет записан коды выхода
// * ПодключатьВнешниеКомпоненты - Булево - Выполнять установку и подключение внешних компонент при старте.
-// Если выключено и включен запрет синхронных вызовов, то компоненты не будут доступы в тонком клиенте.
-// Если выключено и разрешены синхронные вызовы, то компоненты можно установить вручную и тогда они будут доступны на клиенте.
+// Если выключено и включен запрет синхронных вызовов, то компоненты не будут доступы в тонком клиенте.
+// Если выключено и разрешены синхронные вызовы, то компоненты можно установить вручную и тогда они будут доступны на клиенте.
Функция ПараметрыЗапуска() Экспорт
Параметры = Новый Структура;
@@ -436,283 +147,13 @@
КонецФункции
-// ОписаниеКонтекстаОшибки
-// Возвращает описание деталей/расшифровки ошибки
-// Возвращаемое значение:
-// Структура - Детали ошибки:
-// * ОшибкаУтверждения - Булево - Признак, это ошибка проверки утверждения
-// * ПроверяемоеЗначение - Произвольный - Фактическое значение
-// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение
-// * Сообщение - Строка
-Функция ОписаниеКонтекстаОшибки() Экспорт
-
- Описание = Новый Структура("ПроверяемоеЗначение, ОжидаемоеЗначение");
- Описание.Вставить("ОшибкаУтверждения", Ложь);
- Описание.Вставить("Сообщение", "");
-
- //@skip-check constructor-function-return-section
- Возврат Описание;
-
-КонецФункции
-
-// ОписаниеМодуля
-// Возвращает структуру описания модуля
-// Возвращаемое значение:
-// Структура - Описание модуля:
-// * Имя - Строка - Имя модуля
-// * ПолноеИмя - Строка - Полное имя модуля
-// * Расширение - Строка - Имя расширения, владельца модуля
-// * КлиентУправляемоеПриложение - Булево - Доступность контекста
-// * КлиентОбычноеПриложение - Булево - Доступность контекста
-// * Сервер - Булево - Доступность контекста
-// * ВызовСервера - Булево - Доступность контекста
-// * Глобальный - Булево - Доступность контекста
-Функция ОписаниеМодуля() Экспорт
-
- Описание = Новый Структура;
- Описание.Вставить("Имя", "");
- Описание.Вставить("ПолноеИмя", "");
- Описание.Вставить("Расширение", "");
- Описание.Вставить("КлиентУправляемоеПриложение", Ложь);
- Описание.Вставить("КлиентОбычноеПриложение", Ложь);
- Описание.Вставить("Сервер", Ложь);
- Описание.Вставить("ВызовСервера", Ложь);
- Описание.Вставить("Глобальный", Ложь);
-
- Возврат Описание;
-
-КонецФункции
-
-// ОписаниеВозникшейОшибки
-// Возвращает базовую структуру ошибки
-//
-// Параметры:
-// Сообщение - Строка
-//
-// Возвращаемое значение:
-// Структура - Описание возникшей ошибки:
-// * Сообщение - Строка - Описание возникшей ошибки
-// * Стек - Строка - Стек возникшей ошибки
-// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрика.ТипыОшибок
-Функция ОписаниеВозникшейОшибки(Сообщение) Экспорт
-
- Возврат Новый Структура("Сообщение, Стек, ТипОшибки", Сообщение, "", "");
-
-КонецФункции
-
-// Возвращает базовую структуру ошибки проверки факта и ожидания
-//
-// Параметры:
-// Сообщение - Строка
-//
-// Возвращаемое значение:
-// Структура - Описание возникшей ошибки:
-// * Сообщение - Строка - Описание возникшей ошибки
-// * Стек - Строка - Стек возникшей ошибки
-// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрика.ТипыОшибок
-// * ПроверяемоеЗначение - Произвольный - Проверяемое, фактическое значение
-// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение
-Функция ОписаниеОшибкиСравнения(Сообщение) Экспорт
-
- Описание = ОписаниеВозникшейОшибки(Сообщение);
- Описание.ТипОшибки = ТипыОшибок().Утверждений;
- Описание.Вставить("ПроверяемоеЗначение");
- Описание.Вставить("ОжидаемоеЗначение");
-
- //@skip-check constructor-function-return-section
- Возврат Описание;
-
-КонецФункции
-
-// Возвращает базовую структуру ошибки пропуска теста
-//
-// Параметры:
-// Сообщение - Строка
-//
-// Возвращаемое значение:
-// Структура - Описание возникшей ошибки:
-// * Сообщение - Строка - Описание возникшей ошибки
-// * Стек - Строка - Стек возникшей ошибки
-// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения
-// См. ЮТФабрика.ТипыОшибок
-Функция ОписаниеОшибкиПропуска(Сообщение) Экспорт
-
- Описание = ОписаниеВозникшейОшибки(Сообщение);
- Описание.ТипОшибки = ТипыОшибок().Пропущен;
-
- Возврат Описание;
-
-КонецФункции
-
-// Описание события исполнения тестов.
-//
-// Параметры:
-// Модуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
-// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста
-//
-// Возвращаемое значение:
-// Структура - Описание события исполнения тестов:
-// * Модуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
-// * Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-// * Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста
-Функция ОписаниеСобытияИсполненияТестов(Модуль, Набор = Неопределено, Тест = Неопределено) Экспорт
-
- Описание = Новый Структура();
- Описание.Вставить("Модуль", Модуль);
- Описание.Вставить("Набор", Набор);
- Описание.Вставить("Тест", Тест);
-
- //@skip-check constructor-function-return-section
- Возврат Описание;
-
-КонецФункции
-
-// Описание категория набора тестов.
-//
-// Параметры:
-// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
-//
-// Возвращаемое значение:
-// Структура - Описание категория набора тестов:
-// * ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
-// * Клиентские - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-// * Серверные - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-// * Пропущенные - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
-Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) Экспорт
-
- КатегорииНаборов = Новый Структура();
- КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль);
- КатегорииНаборов.Вставить("Клиентские", Новый Массив());
- КатегорииНаборов.Вставить("Серверные", Новый Массив());
- КатегорииНаборов.Вставить("Пропущенные", Новый Массив());
-
- //@skip-check constructor-function-return-section
- Возврат КатегорииНаборов;
-
-КонецФункции
-
-// Формирует описание проверяемого значения.
-// Используется в утверждения для формирования дружелюбного сообщения об ошибке.
-//
-// Параметры:
-// ПроверяемоеЗначение - Произвольный - Проверяемое значение
-//
-// Возвращаемое значение:
-// Структура - Описание проверяемого значения:
-// * Значение - Произвольный
-// * Представление - Строка - Представление объекта
-// - Неопределено - Если не указано тогда используется платформенное предсталение (`Строка(Значение)`)
-// * ИмяСвойства - Строка, Число, Неопределено - Имя проверяемого реквизита, индекса
-Функция ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение) Экспорт
-
- Описание = Новый Структура();
- Описание.Вставить("Значение", ПроверяемоеЗначение);
- Описание.Вставить("Представление", Неопределено);
- Описание.Вставить("ИмяСвойства", Неопределено);
-
- Возврат Описание;
-
-КонецФункции
-
-// Описание проверки.
-//
-// Параметры:
-// ПроверяемоеЗначение - Произвольный
-//
-// Возвращаемое значение:
-// Структура - Описание проверки:
-// * ОбъектПроверки - см. ОписаниеПроверяемогоЗначения
-// * ПрефиксОшибки - Строка, Неопределено -
-// * ОписаниеПроверки - Строка, Неопределено -
-Функция ОписаниеПроверки(ПроверяемоеЗначение) Экспорт
-
- Описание = Новый Структура();
- Описание.Вставить("ОбъектПроверки", ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение));
- Описание.Вставить("ПрефиксОшибки", Неопределено);
- Описание.Вставить("ОписаниеПроверки", Неопределено);
-
- Возврат Описание;
-
-КонецФункции
-
-// Описание реквизита объекта метаданных
-//
-// Параметры:
-// Реквизит - ОбъектМетаданных
-// ЭтоКлюч - Булево - Это ключевой реквизит (ссылка, измерение)
-//
-// Возвращаемое значение:
-// Структура - Описание реквизита:
-// * Имя - Строка
-// * Тип - ОписаниеТипов
-// * Обязательный - Булево
-// * ЭтоКлюч - Булево
-Функция ОписаниеРеквизита(Знач Реквизит, Знач ЭтоКлюч) Экспорт
-
- Описание = Новый Структура();
- Описание.Вставить("Имя", Реквизит.Имя);
- Описание.Вставить("Тип", Реквизит.Тип);
- Описание.Вставить("Обязательный", Реквизит.ПроверкаЗаполнения = ПроверкаЗаполнения.ВыдаватьОшибку);
- Описание.Вставить("ЭтоКлюч", ЭтоКлюч);
-
- Возврат Описание;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область КонструкторыКонтекстов
-
-// Данные контекста исполнения.
-//
-// Возвращаемое значение:
-// Структура - Данные контекста исполнения:
-// * Уровень - Строка - Возможные значения см. УровниИсполнения
-// * Модуль - Неопределено - Нет исполняемого модуля
-// - см. ОписаниеТестовогоМодуля
-// * Набор - Неопределено - Нет исполняемого тестового набора
-// - см. ОписаниеИсполняемогоНабораТестов
-// * Тест - Неопределено - Нет исполняемого теста
-// - см. ОписаниеИсполняемогоТеста
-Функция НовыйКонтекстИсполнения() Экспорт
-
- Контекст = Новый Структура();
- Контекст.Вставить("Уровень", "");
- Контекст.Вставить("Модуль", Неопределено);
- Контекст.Вставить("Набор", Неопределено);
- Контекст.Вставить("Тест", Неопределено);
-
- Возврат Контекст;
-
-КонецФункции
-
-// Описание результата проверки.
-//
-// Параметры:
-// Успешно - Булево - Успешно
-//
-// Возвращаемое значение:
-// Структура - Описание результата проверки:
-// * Сообщения - Массив из Произвольный
-// * Успешно - Булево
-Функция ОписаниеРезультатаПроверки(Успешно = Истина) Экспорт
-
- Описание = Новый Структура();
- Описание.Вставить("Сообщения", Новый Массив);
- Описание.Вставить("Успешно", Истина);
-
- Возврат Описание;
-
-КонецФункции
-
// Выражение предиката.
-//
+//
// Параметры:
// ВидСравнения - Строка - см. ЮТПредикаты.Выражения
// ИмяРеквизита - Строка - Имя реквизита
// Значение - Произвольный - Значение
-//
+//
// Возвращаемое значение:
// Структура - Выражение предиката:
// * ИмяРеквизита - Неопределено, Строка - Имя проверяемого реквизита
@@ -731,121 +172,43 @@
КонецФункции
-#КонецОбласти
-
-// КонтекстыМодуля
-// Возвращает коллекцию доступных контекстов выполнения модуля
-// Параметры:
-// Модуль - См. ОписаниеМодуля
-//
-// Возвращаемое значение:
-// Массив из Строка - Контексты модуля, возможные значения см. КонтекстыВызова
-Функция КонтекстыМодуля(Модуль) Экспорт
-
- Контексты = КонтекстыВызова();
-
- КонтекстыМодуля = Новый Массив();
-
- Если Модуль.Сервер Тогда
- КонтекстыМодуля.Добавить(Контексты.Сервер);
- КонецЕсли;
-
- Если Модуль.КлиентУправляемоеПриложение Тогда
- КонтекстыМодуля.Добавить(Контексты.КлиентУправляемоеПриложение);
- КонецЕсли;
-
- Если Модуль.КлиентОбычноеПриложение Тогда
- КонтекстыМодуля.Добавить(Контексты.КлиентОбычноеПриложение);
- КонецЕсли;
-
- Возврат КонтекстыМодуля;
-
-КонецФункции
-
-// КонтекстыПриложения
-// Возвращает коллекцию доступных контекстов приложения
+// Доступные параметры (настройки) исполнения тестов
+//
// Возвращаемое значение:
-// Массив из Строка - Контексты приложения, возможные значения см. КонтекстыВызова
-Функция КонтекстыПриложения() Экспорт
-
-#Если НЕ Клиент Тогда
- ВызватьИсключение "Метод получения контекстов приложения должен вызываться с клиента";
-#КонецЕсли
-
- Контексты = КонтекстыВызова();
- КонтекстыПриложения = Новый Массив();
-
- КонтекстыПриложения.Добавить(Контексты.Сервер);
- КонтекстыПриложения.Добавить(Контексты.ВызовСервера);
-
-#Если ТолстыйКлиентОбычноеПриложение Тогда
- КонтекстыПриложения.Добавить(Контексты.КлиентОбычноеПриложение);
-#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Или ТонкийКлиент Тогда
- КонтекстыПриложения.Добавить(Контексты.КлиентУправляемоеПриложение);
-#КонецЕсли
+// ФиксированнаяСтруктура - Параметры исполнения теста:
+// * ВТранзакции - Строка - Тест должен выполняться в транзакции
+// * УдалениеТестовыхДанных - Строка - Тест должен удалить созданные тестовые данные
+// * Перед - Строка - Перед тестом должен выполниться указанный обработчик события вместо основного
+// * После - Строка - После теста должен выполниться указанный обработчик события вместо основного
+Функция ПараметрыИсполненияТеста() Экспорт
- Возврат КонтекстыПриложения;
+ Параметры = Новый Структура();
+ Параметры.Вставить("ВТранзакции", "ВТранзакции");
+ Параметры.Вставить("УдалениеТестовыхДанных", "УдалениеТестовыхДанных");
+ Параметры.Вставить("Перед", "Перед");
+ Параметры.Вставить("После", "После");
-КонецФункции
-
-// КонтекстИсполнения
-// Возвращает контекст исполнения по контексту вызова
-// Параметры:
-// КонтекстВызова - Строка - Контекст вызова, см. ЮТФабрика.КонтекстыВызова
-//
-// Возвращаемое значение:
-// Неопределено, Строка - Контекст исполнения
-Функция КонтекстИсполнения(КонтекстВызова) Экспорт
-
- КонтекстыВызова = КонтекстыВызова();
-
- Если КонтекстВызова = КонтекстыВызова.Сервер Тогда
-
- Возврат КонтекстыИсполнения().Сервер;
-
- ИначеЕсли КонтекстВызова = КонтекстыВызова.КлиентУправляемоеПриложение
- ИЛИ КонтекстВызова = КонтекстыВызова.КлиентОбычноеПриложение
- ИЛИ КонтекстВызова = КонтекстыВызова.ВызовСервера Тогда
-
- Возврат КонтекстыИсполнения().Клиент;
-
- Иначе
-
- Возврат Неопределено;
-
- КонецЕсли;
+ Возврат Новый ФиксированнаяСтруктура(Параметры);
КонецФункции
-// Формирует представление теста
+// Параметры создания объектов, используется при загрузке макетов.
//
// Параметры:
-// Тест - см. ОписаниеТеста
+// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи
+// ФикцияОбязательныхПолей - Булево - Фикция обязательных полей
//
// Возвращаемое значение:
-// Строка - Представление теста
-Функция ПредставлениеТеста(Тест) Экспорт
-
- Если ЗначениеЗаполнено(Тест.Представление) Тогда
- Представление = Тест.Представление;
- ИначеЕсли ЗначениеЗаполнено(Тест.Параметры) Тогда
- ПредставлениеПараметров = СтрСоединить(Тест.Параметры, ", ");
- Представление = СтрШаблон("%1(%2)", Тест.Имя, ПредставлениеПараметров);
- Иначе
- Представление = Тест.Имя;
- КонецЕсли;
-
- Возврат Представление;
-
-КонецФункции
-
+// Структура - Параметры создания объектов:
+// * ФикцияОбязательныхПолей - Булево
+// * ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи
Функция ПараметрыСозданияОбъектов(Знач ПараметрыЗаписи = Неопределено, ФикцияОбязательныхПолей = Ложь) Экспорт
Если ПараметрыЗаписи = Неопределено Тогда
- ПараметрыЗаписи = ПараметрыЗаписи();
+ ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
Иначе
ВходныеПараметрыЗаписи = ПараметрыЗаписи;
- ПараметрыЗаписи = ПараметрыЗаписи();
+ ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ВходныеПараметрыЗаписи);
КонецЕсли;
@@ -853,64 +216,6 @@
КонецФункции
-Функция ПараметрыЗаполненияТаблицыЗначений(Знач ПараметрыСозданияОбъектов = Неопределено) Экспорт
-
- Если ПараметрыСозданияОбъектов = Неопределено Тогда
- ПараметрыСозданияОбъектов = ПараметрыСозданияОбъектов();
- Иначе
- ВходныеПараметрыСозданияОбъектов = ПараметрыСозданияОбъектов;
- ПараметрыСозданияОбъектов = ПараметрыСозданияОбъектов();
- ЗаполнитьЗначенияСвойств(ПараметрыСозданияОбъектов, ВходныеПараметрыСозданияОбъектов);
- КонецЕсли;
-
- Возврат Новый ФиксированнаяСтруктура("СозданиеОбъектовМетаданных", ПараметрыСозданияОбъектов);
-
-КонецФункции
-
-// Параметры генератора отчета.
-// Описывает предоставляемые модулем форматы отчетов
-//
-// Возвращаемое значение:
-// Структура - Параметры генератора отчета:
-// * Форматы - Структура - Форматы отчетов, предоставляемые модулем
-Функция ПараметрыГенератораОтчета() Экспорт
-
- Параметры = Новый Структура();
- Параметры.Вставить("Форматы", Новый Структура);
-
- Возврат Параметры;
-
-КонецФункции
-
-// Описание формата отчета.
-//
-// Параметры:
-// Идентификатор - Строка - Уникальный идентификатор формата отчета
-// Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования
-//
-// Возвращаемое значение:
-// Структура - Описание формата отчета:
-// * Идентификатор - Строка - Уникальный идентификатор формата отчета
-// * Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования
-// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен призак `СамостоятельнаяЗаписьОтчета`
-// * ФильтрВыбораФайла - Строка - Фильтр выбора, используется в форме настроек тестирования
-// * ИмяФайлаПоУмолчанию - Строка - Для отчетов, записываемых в файл, имя файла если в параметрах указан каталог
-// * СамостоятельнаяЗаписьОтчета - Булево - Способ записи отчета в файлы.
-// Истина - Модуль формирования отчета самостоятельно записывает отчет
-// Ложь - Модуль формирования отчета генерирует данные, которые записываются движком
-Функция ОписаниеФорматаОтчета(Идентификатор, Представление) Экспорт
-
- Описание = Новый Структура();
- Описание.Вставить("Идентификатор", Идентификатор);
- Описание.Вставить("Представление", Представление);
- Описание.Вставить("ЗаписьВКаталог", Ложь);
- Описание.Вставить("ФильтрВыбораФайла", "");
- Описание.Вставить("ИмяФайлаПоУмолчанию", "");
- Описание.Вставить("СамостоятельнаяЗаписьОтчета", Ложь);
-
- Возврат Описание;
-
-КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -927,7 +232,7 @@
// - Массив из Строка - Список тестовых наборов
// * paths - Неопределено - Нет фильтрации по путям
// - Массив из Строка - Список путей до тестовых методов, путь может быть не полным.
-// Например:
+// Например:
// + tests - Ищем тесты в расширении tests
// + tests.ОМ_ОбщегоНазначения - Ищем тесты в модуле ОМ_ОбщегоНазначения расширения tests
// + tests.ОМ_ОбщегоНазначения.ПолучитьЗначениеРеквизита - указание конкретного теста
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\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260.mdo"
index d54ed7e29..decc718b5 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\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260.mdo"
@@ -1,5 +1,5 @@
-
+
ЮТФабрика
ru
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"
new file mode 100644
index 000000000..c7d3fb6a5
--- /dev/null
+++ "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"
@@ -0,0 +1,684 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+#Область Перечисления
+
+// Типы ошибок.
+//
+// Возвращаемое значение:
+// ФиксированнаяСтруктура - Типы возможных ошибок:
+// * ТестНеРеализован - Строка
+// * ОшибкаСравнения - Строка
+// * ОшибкаОбработкиСобытия - Строка
+// * Утверждений - Строка
+// * Исполнения - Строка
+// * ЧтенияТестов - Строка
+// * МалоПараметров - Строка
+// * МногоПараметров - Строка
+// * НекорректныйКонтекстИсполнения - Строка
+// * Пропущен - Строка
+Функция ТипыОшибок() Экспорт
+
+ Типы = Новый Структура;
+
+ Для Каждого ТипОшибки Из ПараметрыТиповОшибок() Цикл
+ Типы.Вставить(ТипОшибки.Ключ, ТипОшибки.Ключ);
+ КонецЦикла;
+
+ //@skip-check constructor-function-return-section
+ Возврат Новый ФиксированнаяСтруктура(Типы);
+
+КонецФункции
+
+Функция ПараметрыТиповОшибок(Кешировать = Истина) Экспорт
+
+ Если Кешировать Тогда
+ ЮТСлужебныйПовторногоИспользования.ПараметрыТиповОшибок();
+ КонецЕсли;
+
+ Статусы = ЮТФабрика.СтатусыИсполненияТеста();
+ Реквизиты = "Ключ, Представление, Статус";
+
+ ТипыОшибок = Новый Массив();
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ТестНеРеализован", "Не реализован", Статусы.НеРеализован));
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаСравнения", "Ошибка сравнения", Статусы.Ошибка));
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаОбработкиСобытия", "Ошибка обработки события", Статусы.Сломан));
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Утверждений", "Ошибка утверждений", Статусы.Ошибка));
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Исполнения", "Ошибка исполнения", Статусы.Сломан));
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ЧтенияТестов", "Загрузки тестов", Статусы.Сломан));
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МалоПараметров", "Мало фактических параметров", Статусы.Сломан));
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МногоПараметров", "Много фактических параметров", Статусы.Сломан));
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "НекорректныйКонтекстИсполнения", "Некорректный контекст исполнения", Статусы.Пропущен));
+ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Пропущен", "Пропущен", Статусы.Пропущен));
+
+ Возврат ЮТКоллекции.ВСтруктуру(ТипыОшибок, "Ключ");
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СтруктурыДанных
+
+// Описание тестового модуля.
+//
+// Параметры:
+// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+// НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора
+//
+// Возвращаемое значение:
+// Структура - Описание тестового модуля:
+// * МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+// * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора
+// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки
+// * НастройкиВыполнения- Структура - Настройки исполнения теста
+Функция ОписаниеТестовогоМодуля(МетаданныеМодуля, НаборыТестов) Экспорт
+
+ Описание = Новый Структура;
+ Описание.Вставить("МетаданныеМодуля", МетаданныеМодуля);
+ Описание.Вставить("НаборыТестов", НаборыТестов);
+ Описание.Вставить("Ошибки", Новый Массив);
+ Описание.Вставить("НастройкиВыполнения", Новый Структура());
+
+ Возврат Описание;
+
+КонецФункции
+
+// ОписаниеТестовогоНабора
+// Возвращает описание регистрируемого тестового набора.
+// Эта структура используется на этапе формирования описаний имеющихся тестов
+// Параметры:
+// Имя - Строка - Имя набора
+// ТегиСтрокой - Строка - Теги набора
+//
+// Возвращаемое значение:
+// Структура - Описание тестового набора:
+// * Имя - Строка - Имя набора
+// * Представление - Строка - Представление, краткое описание
+// * Теги - Массив из Строка - Коллекция тегов набора
+// * Тесты - Массив из см. ОписаниеТеста - Коллекция тестов набора, см. ОписаниеТеста
+// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок регистрации тестов
+// * НастройкиВыполнения- Структура - Настройки исполнения теста
+Функция ОписаниеТестовогоНабора(Имя, ТегиСтрокой = "") Экспорт
+
+ Описание = Новый Структура;
+ Описание.Вставить("Имя", Строка(Имя));
+ Описание.Вставить("Представление", Строка(Имя));
+ Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь));
+ Описание.Вставить("Тесты", Новый Массив);
+ Описание.Вставить("Ошибки", Новый Массив);
+ Описание.Вставить("НастройкиВыполнения", Новый Структура());
+
+ Возврат Описание;
+
+КонецФункции
+
+// ОписаниеТеста
+// Возвращает описание регистрируемого теста.
+// Эта структура используется на этапе формирования описаний имеющихся тестов
+// Параметры:
+// Имя - Строка - Имя тестового метода
+// Представление - Строка - Представление, краткое описание теста
+// КонтекстыВызова - Массив из Строка - Контексты исполнения теста, см. ЮТФабрика.КонтекстыВызова
+// ТегиСтрокой - Строка - Теги теста
+//
+// Возвращаемое значение:
+// Структура - Описание теста:
+// * Имя - Строка - Имя теста (тестового метода)
+// * Представление - Строка - Представление теста
+// * Теги - Массив из Строка - Теги теста
+// * КонтекстВызова - Массив из Строка - Контексты исполнения теста
+// * НастройкиВыполнения- Структура - Настройки исполнения теста
+// * Параметры - Неопределено, Массив из Произвольный - Параметры теста
+// * НомерВНаборе - Число - Порядковый номер теста в наборе
+Функция ОписаниеТеста(Имя, Представление, КонтекстыВызова, Знач ТегиСтрокой = "") Экспорт
+
+ Если ТегиСтрокой = Неопределено Тогда
+ ТегиСтрокой = "";
+ КонецЕсли;
+
+ Описание = Новый Структура();
+ Описание.Вставить("Имя", Строка(Имя));
+ Описание.Вставить("Представление", Строка(Представление));
+ Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь));
+ Описание.Вставить("КонтекстВызова", КонтекстыВызова);
+ Описание.Вставить("НастройкиВыполнения", Новый Структура());
+ Описание.Вставить("Параметры", Неопределено);
+ Описание.Вставить("НомерВНаборе", 0);
+
+ Возврат Описание;
+
+КонецФункции
+
+// Описание исполняемого тестового модуля.
+// Содержит всю необходимую информацию для прогона тестов, а также данные результата
+// Параметры:
+// ТестовыйМодуль - см. ОписаниеТестовогоМодуля
+//
+// Возвращаемое значение:
+// Структура - Описание тестового модуля:
+// * МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+// * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки
+// * НастройкиВыполнения- Структура - Настройки исполнения теста
+Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт
+
+ Описание = Новый Структура;
+
+ Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
+ Описание.Вставить("НаборыТестов", Новый Массив);
+ Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(ТестовыйМодуль.Ошибки));
+ Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения));
+
+ Возврат Описание;
+
+КонецФункции
+
+// ОписаниеИсполняемогоНабораТестов
+// Возвращает описание исполняемого тестового набора.
+// Содержит данные необходимые для выполнения прогона тестов
+// Параметры:
+// НаборТестов - См. ОписаниеТестовогоНабора
+// ТестовыйМодуль - См. ОписаниеТестовогоМодуля
+//
+// Возвращаемое значение:
+// Структура - Описание исполняемого набора тестов:
+// * Имя - Строка - Имя набора
+// * Представление - Строка - Представление набора
+// * Теги - Массив из Строка - Тэги набора
+// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста
+// * Режим - Строка - Режим исполнения набора, см. ЮТФабрика.КонтекстыВызова
+// * МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+// * Тесты - Массив из см. ОписаниеИсполняемогоТеста - Тесты набора, структуру тестов см. ОписаниеИсполняемогоТеста
+// * Выполнять - Булево - Признак, что можно выполнить прогон набора (нет ошибок блокирующих запуск)
+// * ДатаСтарта - Число - Дата запуска набора
+// * Длительность - Число - Продолжительность выполнения набора
+// * НастройкиВыполнения - Структура - Настройки исполнения теста
+// * ТестовыйМодуль - См. ОписаниеТестовогоМодуля
+Функция ОписаниеИсполняемогоНабораТестов(НаборТестов, ТестовыйМодуль) Экспорт
+
+ Описание = Новый Структура();
+
+ Описание.Вставить("Имя", НаборТестов.Имя);
+ Описание.Вставить("Представление", НаборТестов.Представление);
+ Описание.Вставить("Теги", НаборТестов.Теги);
+ Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(НаборТестов.Ошибки));
+ Описание.Вставить("Режим", "");
+ Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль);
+ Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
+ Описание.Вставить("Тесты", Новый Массив);
+ Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0);
+ Описание.Вставить("ДатаСтарта", 0);
+ Описание.Вставить("Длительность", 0);
+ Описание.Вставить("НастройкиВыполнения", НаборТестов.НастройкиВыполнения);
+
+ Возврат Описание;
+
+КонецФункции
+
+// ОписаниеИсполняемогоТеста
+// Возвращает описание исполняемого теста
+// Содержит данные необходимые для выполнения прогона тестов
+//
+// Параметры:
+// Тест - См. ОписаниеТеста
+// Режим - См. ЮТФабрика.КонтекстыВызова
+// ТестовыйМодуль - См. ОписаниеТестовогоМодуля
+//
+// Возвращаемое значение:
+// Структура - Описание исполняемого теста:
+// * Имя - Строка - Имя/представление теста
+// * Метод - Строка - Имя тестового метода
+// * ПолноеИмяМетода - Строка - Полное имя тестового метода, ИмяМодуля.ИмяМетода
+// * Теги - Массив из Строка - Теги теста
+// * Режим - Строка - Режим исполнения теста, см. ЮТФабрика.КонтекстыВызова
+// * ДатаСтарта - Число - Дата запуска теста
+// * Длительность - Число - Продолжительность выполнения теста
+// * Статус - Строка - Статус выполнения теста, см. ЮТФабрика.СтатусыИсполненияТеста
+// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста, см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки
+// * НастройкиВыполнения- Структура - Настройки исполнения теста
+// * Параметры - Неопределено, Массив из Произвольный - Набор параметров теста
+// * НомерВНаборе - Число - Порядковый номер теста в наборе
+Функция ОписаниеИсполняемогоТеста(Тест, Режим, ТестовыйМодуль) Экспорт
+
+ ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.МетаданныеМодуля.Имя, Тест.Имя);
+ Представление = ПредставлениеТеста(Тест);
+
+ ОписаниеТеста = Новый Структура;
+ ОписаниеТеста.Вставить("Имя", Представление);
+ ОписаниеТеста.Вставить("Метод", Тест.Имя);
+ ОписаниеТеста.Вставить("ПолноеИмяМетода", ПолноеИмяМетода);
+ ОписаниеТеста.Вставить("Теги", Тест.Теги);
+ ОписаниеТеста.Вставить("Режим", Режим);
+ ОписаниеТеста.Вставить("ДатаСтарта", 0);
+ ОписаниеТеста.Вставить("Длительность", 0);
+ ОписаниеТеста.Вставить("Статус", ЮТФабрика.СтатусыИсполненияТеста().Ожидание);
+ ОписаниеТеста.Вставить("Ошибки", Новый Массив);
+ ОписаниеТеста.Вставить("НастройкиВыполнения", Тест.НастройкиВыполнения);
+ ОписаниеТеста.Вставить("Параметры", Тест.Параметры);
+ ОписаниеТеста.Вставить("НомерВНаборе", Тест.НомерВНаборе);
+
+ //@skip-check constructor-function-return-section
+ Возврат ОписаниеТеста;
+
+КонецФункции
+
+// ОписаниеМодуля
+// Возвращает структуру описания модуля
+// Возвращаемое значение:
+// Структура - Описание модуля:
+// * Имя - Строка - Имя модуля
+// * ПолноеИмя - Строка - Полное имя модуля
+// * Расширение - Строка - Имя расширения, владельца модуля
+// * КлиентУправляемоеПриложение - Булево - Доступность контекста
+// * КлиентОбычноеПриложение - Булево - Доступность контекста
+// * Сервер - Булево - Доступность контекста
+// * ВызовСервера - Булево - Доступность контекста
+// * Глобальный - Булево - Доступность контекста
+Функция ОписаниеМодуля() Экспорт
+
+ Описание = Новый Структура;
+ Описание.Вставить("Имя", "");
+ Описание.Вставить("ПолноеИмя", "");
+ Описание.Вставить("Расширение", "");
+ Описание.Вставить("КлиентУправляемоеПриложение", Ложь);
+ Описание.Вставить("КлиентОбычноеПриложение", Ложь);
+ Описание.Вставить("Сервер", Ложь);
+ Описание.Вставить("ВызовСервера", Ложь);
+ Описание.Вставить("Глобальный", Ложь);
+
+ Возврат Описание;
+
+КонецФункции
+
+// ОписаниеВозникшейОшибки
+// Возвращает базовую структуру ошибки
+//
+// Параметры:
+// Сообщение - Строка - Описание ошибки
+//
+// Возвращаемое значение:
+// Структура - Описание возникшей ошибки:
+// * Сообщение - Строка - Описание возникшей ошибки
+// * Стек - Строка - Стек возникшей ошибки
+// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрикаСлужебный.ТипыОшибок
+// * Лог - Массив из Строка
+Функция ОписаниеВозникшейОшибки(Сообщение) Экспорт
+
+ Описание = Новый Структура("Стек, ТипОшибки", "", "");
+ Описание.Вставить("Сообщение", Сообщение);
+ Описание.Вставить("Лог", Новый Массив);
+
+ Возврат Описание;
+
+КонецФункции
+
+// Возвращает базовую структуру ошибки проверки факта и ожидания
+//
+// Параметры:
+// Сообщение - Строка
+//
+// Возвращаемое значение:
+// Структура - Описание возникшей ошибки:
+// * Сообщение - Строка - Описание возникшей ошибки
+// * Стек - Строка - Стек возникшей ошибки
+// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения см. ЮТФабрикаСлужебный.ТипыОшибок
+// * ПроверяемоеЗначение - Произвольный - Проверяемое, фактическое значение
+// * ОжидаемоеЗначение - Произвольный - Ожидаемое значение
+Функция ОписаниеОшибкиСравнения(Сообщение) Экспорт
+
+ Описание = ОписаниеВозникшейОшибки(Сообщение);
+ Описание.ТипОшибки = ТипыОшибок().Утверждений;
+ Описание.Вставить("ПроверяемоеЗначение");
+ Описание.Вставить("ОжидаемоеЗначение");
+
+ //@skip-check constructor-function-return-section
+ Возврат Описание;
+
+КонецФункции
+
+// Возвращает базовую структуру ошибки пропуска теста
+//
+// Параметры:
+// Сообщение - Строка
+//
+// Возвращаемое значение:
+// Структура - Описание возникшей ошибки:
+// * Сообщение - Строка - Описание возникшей ошибки
+// * Стек - Строка - Стек возникшей ошибки
+// * ТипОшибки - Строка - Тип возникшей ошибки. Доступные значения
+// См. ЮТФабрикаСлужебный.ТипыОшибок
+Функция ОписаниеОшибкиПропуска(Сообщение) Экспорт
+
+ Описание = ОписаниеВозникшейОшибки(Сообщение);
+ Описание.ТипОшибки = ТипыОшибок().Пропущен;
+
+ Возврат Описание;
+
+КонецФункции
+
+// Описание события исполнения тестов.
+//
+// Параметры:
+// Модуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
+// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
+//
+// Возвращаемое значение:
+// Структура - Описание события исполнения тестов:
+// * Модуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
+// * Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+// * Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста
+Функция ОписаниеСобытияИсполненияТестов(Модуль, Набор = Неопределено, Тест = Неопределено) Экспорт
+
+ Описание = Новый Структура();
+ Описание.Вставить("Модуль", Модуль);
+ Описание.Вставить("Набор", Набор);
+ Описание.Вставить("Тест", Тест);
+
+ //@skip-check constructor-function-return-section
+ Возврат Описание;
+
+КонецФункции
+
+// Описание категория набора тестов.
+//
+// Параметры:
+// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
+//
+// Возвращаемое значение:
+// Структура - Описание категория набора тестов:
+// * ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
+// * Клиентские - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+// * Серверные - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+// * Пропущенные - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
+Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) Экспорт
+
+ КатегорииНаборов = Новый Структура();
+ КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль);
+ КатегорииНаборов.Вставить("Клиентские", Новый Массив());
+ КатегорииНаборов.Вставить("Серверные", Новый Массив());
+ КатегорииНаборов.Вставить("Пропущенные", Новый Массив());
+
+ //@skip-check constructor-function-return-section
+ Возврат КатегорииНаборов;
+
+КонецФункции
+
+// Формирует описание проверяемого значения.
+// Используется в утверждения для формирования дружелюбного сообщения об ошибке.
+//
+// Параметры:
+// ПроверяемоеЗначение - Произвольный - Проверяемое значение
+//
+// Возвращаемое значение:
+// Структура - Описание проверяемого значения:
+// * Значение - Произвольный
+// * Представление - Строка - Представление объекта
+// - Неопределено - Если не указано тогда используется платформенное предсталение (`Строка(Значение)`)
+// * ИмяСвойства - Строка, Число, Неопределено - Имя проверяемого реквизита, индекса
+Функция ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение) Экспорт
+
+ Описание = Новый Структура();
+ Описание.Вставить("Значение", ПроверяемоеЗначение);
+ Описание.Вставить("Представление", Неопределено);
+ Описание.Вставить("ИмяСвойства", Неопределено);
+
+ Возврат Описание;
+
+КонецФункции
+
+// Описание проверки.
+//
+// Параметры:
+// ПроверяемоеЗначение - Произвольный
+//
+// Возвращаемое значение:
+// Структура - Описание проверки:
+// * ОбъектПроверки - см. ОписаниеПроверяемогоЗначения
+// * ПрефиксОшибки - Строка, Неопределено -
+// * ОписаниеПроверки - Строка, Неопределено -
+Функция ОписаниеПроверки(ПроверяемоеЗначение) Экспорт
+
+ Описание = Новый Структура();
+ Описание.Вставить("ОбъектПроверки", ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение));
+ Описание.Вставить("ПрефиксОшибки", Неопределено);
+ Описание.Вставить("ОписаниеПроверки", Неопределено);
+
+ Возврат Описание;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область КонструкторыКонтекстов
+
+// Данные контекста исполнения.
+//
+// Возвращаемое значение:
+// Структура - Данные контекста исполнения:
+// * Уровень - Строка - Возможные значения см. ЮТФабрика.УровниИсполнения
+// * Модуль - Неопределено - Нет исполняемого модуля
+// - см. ОписаниеТестовогоМодуля
+// * Набор - Неопределено - Нет исполняемого тестового набора
+// - см. ОписаниеИсполняемогоНабораТестов
+// * Тест - Неопределено - Нет исполняемого теста
+// - см. ОписаниеИсполняемогоТеста
+Функция НовыйКонтекстИсполнения() Экспорт
+
+ Контекст = Новый Структура();
+ Контекст.Вставить("Уровень", "");
+ Контекст.Вставить("Модуль", Неопределено);
+ Контекст.Вставить("Набор", Неопределено);
+ Контекст.Вставить("Тест", Неопределено);
+
+ Возврат Контекст;
+
+КонецФункции
+
+// Описание результата проверки.
+//
+// Параметры:
+// Успешно - Булево - Успешно
+//
+// Возвращаемое значение:
+// Структура - Описание результата проверки:
+// * Сообщения - Массив из Произвольный
+// * Успешно - Булево
+Функция ОписаниеРезультатаПроверки(Успешно = Истина) Экспорт
+
+ Описание = Новый Структура();
+ Описание.Вставить("Сообщения", Новый Массив);
+ Описание.Вставить("Успешно", Истина);
+
+ Возврат Описание;
+
+КонецФункции
+
+#КонецОбласти
+
+// КонтекстыМодуля
+// Возвращает коллекцию доступных контекстов выполнения модуля
+// Параметры:
+// Модуль - См. ОписаниеМодуля
+//
+// Возвращаемое значение:
+// Массив из Строка - Контексты модуля, возможные значения см. ЮТФабрика.КонтекстыВызова
+Функция КонтекстыМодуля(Модуль) Экспорт
+
+ Контексты = ЮТФабрика.КонтекстыВызова();
+
+ КонтекстыМодуля = Новый Массив();
+
+ Если Модуль.Сервер Тогда
+ КонтекстыМодуля.Добавить(Контексты.Сервер);
+ КонецЕсли;
+
+ Если Модуль.КлиентУправляемоеПриложение Тогда
+ КонтекстыМодуля.Добавить(Контексты.КлиентУправляемоеПриложение);
+ КонецЕсли;
+
+ Если Модуль.КлиентОбычноеПриложение Тогда
+ КонтекстыМодуля.Добавить(Контексты.КлиентОбычноеПриложение);
+ КонецЕсли;
+
+ Возврат КонтекстыМодуля;
+
+КонецФункции
+
+// КонтекстыПриложения
+// Возвращает коллекцию доступных контекстов приложения
+// Возвращаемое значение:
+// Массив из Строка - Контексты приложения, возможные значения см. ЮТФабрика.КонтекстыВызова
+Функция КонтекстыПриложения() Экспорт
+
+#Если НЕ Клиент Тогда
+ ВызватьИсключение "Метод получения контекстов приложения должен вызываться с клиента";
+#КонецЕсли
+
+ Контексты = ЮТФабрика.КонтекстыВызова();
+ КонтекстыПриложения = Новый Массив();
+
+ КонтекстыПриложения.Добавить(Контексты.Сервер);
+ КонтекстыПриложения.Добавить(Контексты.ВызовСервера);
+
+#Если ТолстыйКлиентОбычноеПриложение Тогда
+ КонтекстыПриложения.Добавить(Контексты.КлиентОбычноеПриложение);
+#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Или ТонкийКлиент Тогда
+ КонтекстыПриложения.Добавить(Контексты.КлиентУправляемоеПриложение);
+#КонецЕсли
+
+ Возврат КонтекстыПриложения;
+
+КонецФункции
+
+// КонтекстИсполнения
+// Возвращает контекст исполнения по контексту вызова
+// Параметры:
+// КонтекстВызова - Строка - Контекст вызова, см. ЮТФабрика.КонтекстыВызова
+//
+// Возвращаемое значение:
+// Неопределено, Строка - Контекст исполнения
+Функция КонтекстИсполнения(КонтекстВызова) Экспорт
+
+ КонтекстыВызова = ЮТФабрика.КонтекстыВызова();
+
+ Если КонтекстВызова = КонтекстыВызова.Сервер Тогда
+
+ Возврат ЮТФабрика.КонтекстыИсполнения().Сервер;
+
+ ИначеЕсли КонтекстВызова = КонтекстыВызова.КлиентУправляемоеПриложение
+ ИЛИ КонтекстВызова = КонтекстыВызова.КлиентОбычноеПриложение
+ ИЛИ КонтекстВызова = КонтекстыВызова.ВызовСервера Тогда
+
+ Возврат ЮТФабрика.КонтекстыИсполнения().Клиент;
+
+ Иначе
+
+ Возврат Неопределено;
+
+ КонецЕсли;
+
+КонецФункции
+
+// Формирует представление теста
+//
+// Параметры:
+// Тест - см. ОписаниеТеста
+//
+// Возвращаемое значение:
+// Строка - Представление теста
+Функция ПредставлениеТеста(Тест) Экспорт
+
+ Если ЗначениеЗаполнено(Тест.Представление) Тогда
+ Представление = Тест.Представление;
+ ИначеЕсли ЗначениеЗаполнено(Тест.Параметры) Тогда
+ ПредставлениеПараметров = СтрСоединить(Тест.Параметры, ", ");
+ Представление = СтрШаблон("%1(%2)", Тест.Имя, ПредставлениеПараметров);
+ Иначе
+ Представление = Тест.Имя;
+ КонецЕсли;
+
+ Возврат Представление;
+
+КонецФункции
+
+Функция ПараметрыЗаполненияТаблицыЗначений(Знач ПараметрыСозданияОбъектов = Неопределено) Экспорт
+
+ Если ПараметрыСозданияОбъектов = Неопределено Тогда
+ ПараметрыСозданияОбъектов = ЮТФабрика.ПараметрыСозданияОбъектов();
+ Иначе
+ ВходныеПараметрыСозданияОбъектов = ПараметрыСозданияОбъектов;
+ ПараметрыСозданияОбъектов = ЮТФабрика.ПараметрыСозданияОбъектов();
+ ЗаполнитьЗначенияСвойств(ПараметрыСозданияОбъектов, ВходныеПараметрыСозданияОбъектов);
+ КонецЕсли;
+
+ Возврат Новый ФиксированнаяСтруктура("СозданиеОбъектовМетаданных", ПараметрыСозданияОбъектов);
+
+КонецФункции
+
+// Параметры генератора отчета.
+// Описывает предоставляемые модулем форматы отчетов
+//
+// Возвращаемое значение:
+// Структура - Параметры генератора отчета:
+// * Форматы - Структура - Форматы отчетов, предоставляемые модулем
+Функция ПараметрыГенератораОтчета() Экспорт
+
+ Параметры = Новый Структура();
+ Параметры.Вставить("Форматы", Новый Структура);
+
+ Возврат Параметры;
+
+КонецФункции
+
+// Описание формата отчета.
+//
+// Параметры:
+// Идентификатор - Строка - Уникальный идентификатор формата отчета
+// Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования
+//
+// Возвращаемое значение:
+// Структура - Описание формата отчета:
+// * Идентификатор - Строка - Уникальный идентификатор формата отчета
+// * Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования
+// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен призак `СамостоятельнаяЗаписьОтчета`
+// * ФильтрВыбораФайла - Строка - Фильтр выбора, используется в форме настроек тестирования
+// * ИмяФайлаПоУмолчанию - Строка - Для отчетов, записываемых в файл, имя файла если в параметрах указан каталог
+// * СамостоятельнаяЗаписьОтчета - Булево - Способ записи отчета в файлы.
+// Истина - Модуль формирования отчета самостоятельно записывает отчет
+// Ложь - Модуль формирования отчета генерирует данные, которые записываются движком
+Функция ОписаниеФорматаОтчета(Идентификатор, Представление) Экспорт
+
+ Описание = Новый Структура();
+ Описание.Вставить("Идентификатор", Идентификатор);
+ Описание.Вставить("Представление", Представление);
+ Описание.Вставить("ЗаписьВКаталог", Ложь);
+ Описание.Вставить("ФильтрВыбораФайла", "");
+ Описание.Вставить("ИмяФайлаПоУмолчанию", "");
+ Описание.Вставить("СамостоятельнаяЗаписьОтчета", Ложь);
+
+ Возврат Описание;
+
+КонецФункции
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#КонецОбласти
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/\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.mdo" "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/\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.mdo"
new file mode 100644
index 000000000..33ad68834
--- /dev/null
+++ "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/\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.mdo"
@@ -0,0 +1,11 @@
+
+
+ ЮТФабрикаСлужебный
+
+ ru
+ Фабрика
+
+ true
+ true
+ true
+
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 1daedbb4d..caab4a5e4 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"
@@ -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.
@@ -136,7 +136,7 @@
КонецЕсли;
Исключение
- Ошибки.Добавить(ЮТРегистрацияОшибок.ПредставлениеОшибки("Удаление файла " + УдаляемыйФайл, ИнформацияОбОшибке()));
+ Ошибки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление файла " + УдаляемыйФайл, ИнформацияОбОшибке()));
КонецПопытки;
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
similarity index 84%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\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 e9ee85d40..54d6fbce5 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\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.
@@ -20,7 +20,7 @@
Функция ЭтоПодходящееРасширение(ИмяРасширения) Экспорт
- Контекст = ЮТКонтекст.КонтекстЧитателя();
+ Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя();
НормализованноеИмяРасширения = УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(ИмяРасширения);
@@ -30,7 +30,7 @@
Функция ЭтоПодходящийМодуль(ОписаниеМодуля) Экспорт
- Контекст = ЮТКонтекст.КонтекстЧитателя();
+ Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя();
Возврат ЗначениеЗаполнено(ОписаниеМодуля.Расширение)
И (НЕ Контекст.Фильтр.ЕстьФильтрМодулей ИЛИ Контекст.Фильтр.Модули.Свойство(ОписаниеМодуля.Имя))
@@ -39,16 +39,16 @@
КонецФункции
// Отфильтровать тестовые наборы.
-//
+//
// Параметры:
-// ТестовыеНаборы - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Тестовые наборы
-// ОписаниеМодуля - Структура - Описание модуля, которому принадлежат наборы, см. ЮТФабрика.ОписаниеМодуля
-//
+// ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы
+// ОписаниеМодуля - Структура - Описание модуля, которому принадлежат наборы, см. ЮТФабрикаСлужебный.ОписаниеМодуля
+//
// Возвращаемое значение:
-// Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Отфильтрованные наборы
+// Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Отфильтрованные наборы
Функция ОтфильтроватьТестовыеНаборы(ТестовыеНаборы, ОписаниеМодуля) Экспорт
- Контекст = ЮТКонтекст.КонтекстЧитателя();
+ Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя();
Если НЕ Контекст.Фильтр.ЕстьФильтрТестов И НЕ Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда
Возврат ТестовыеНаборы;
@@ -69,7 +69,7 @@
Если СохраненноеОписаниеИмени = Неопределено И ОписаниеИмениТеста.Контекст = Неопределено Тогда
ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста);
ИначеЕсли СохраненноеОписаниеИмени = Неопределено Тогда
- ОписаниеИмениТеста.Контекст = ЮТОбщий.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст);
+ ОписаниеИмениТеста.Контекст = ЮТКоллекции.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст);
ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста);
ИначеЕсли ОписаниеИмениТеста.Контекст = Неопределено Тогда
СохраненноеОписаниеИмени.Контекст = Неопределено; // Без фильтрации контекста теста, возьмом из самого теста контексты
@@ -79,14 +79,14 @@
// Если было имя теста без контекста, то будет вызов во всех контекстах
КонецЕсли;
КонецЕсли;
-
+
КонецЦикла;
КонецЕсли;
Для Каждого Набор Из ТестовыеНаборы Цикл
- ОтфильтрованныйНабор = ЮТФабрика.ОписаниеТестовогоНабора(Набор.Имя);
+ ОтфильтрованныйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Набор.Имя);
ЗаполнитьЗначенияСвойств(ОтфильтрованныйНабор, Набор, , "Тесты");
Для Каждого Тест Из Набор.Тесты Цикл
@@ -109,7 +109,7 @@
КонецЕсли;
Если Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда
- КонтекстыТеста = ЮТОбщий.ПересечениеМассивов(КонтекстыТеста, Контекст.Фильтр.Контексты);
+ КонтекстыТеста = ЮТКоллекции.ПересечениеМассивов(КонтекстыТеста, Контекст.Фильтр.Контексты);
КонецЕсли;
Если КонтекстыТеста.Количество() = 0 Тогда
@@ -117,7 +117,7 @@
Продолжить;
КонецЕсли;
- ОтфильтрованныйТест = ЮТФабрика.ОписаниеТеста(Тест.Имя, "", "");
+ ОтфильтрованныйТест = ЮТФабрикаСлужебный.ОписаниеТеста(Тест.Имя, "", "");
ЗаполнитьЗначенияСвойств(ОтфильтрованныйТест, Тест, , "КонтекстВызова");
ОтфильтрованныйТест.КонтекстВызова = КонтекстыТеста;
@@ -136,11 +136,11 @@
КонецФункции
// Фильтр
-// Конструктур фильтра поиска тестовых методов
-//
+// Конструктур фильтра поиска тестовых методов
+//
// Возвращаемое значение:
// Структура - Фильтр:
-// * Расширения - Структура - Имена расширений
+// * Расширения - Структура - Имена расширений
// * Модули - Структура - Имена модулей
// * Наборы - Массив из Строка - Имена тестовых наборов
// * Теги - Массив из Строка
@@ -167,17 +167,17 @@
Процедура УстановитьКонтекст(ПараметрыЗапускаТестов) Экспорт
- Расширения = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "extensions", Новый Массив);
- Модули = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "modules", Новый Массив);
- Контексты = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "contexts");
- Тесты = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tests", Новый Массив);
+ Расширения = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "extensions", Новый Массив);
+ Модули = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "modules", Новый Массив);
+ Контексты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "contexts");
+ Тесты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tests", Новый Массив);
- Теги = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tags", Новый Массив);
+ Теги = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tags", Новый Массив);
// TODO: Подумать в каком формате задать наборы - ИмяМодуля.Набор, Набор или другой вариант
- Наборы = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "suites", Новый Массив);
+ Наборы = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "suites", Новый Массив);
// TODO: Обработка путей в формате: Модуль.ИмяТеста, ИмяТеста - метод, параметры, контекст
// ОМ_ЮТУтверждения.Что[0: 1].Сервер, ОМ_ЮТУтверждения.Что[1: Структура].Сервер
- Пути = ЮТОбщий.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "paths", Новый Массив);
+ Пути = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "paths", Новый Массив);
Фильтр = Фильтр();
@@ -185,7 +185,7 @@
Фильтр.Модули = МассивВСтруктуру(Модули);
Если Контексты = Неопределено Тогда
- Фильтр.Контексты = ЮТФабрика.КонтекстыПриложения();
+ Фильтр.Контексты = ЮТФабрикаСлужебный.КонтекстыПриложения();
Иначе
Фильтр.Контексты = Контексты;
КонецЕсли;
@@ -235,7 +235,7 @@
Фильтр.Вставить("ЕстьФильтрТестов", Фильтр.Тесты.Количество());
Фильтр.Вставить("ЕстьФильтрКонтекстов", ЗначениеЗаполнено(Фильтр.Контексты));
- ЮТКонтекст.УстановитьКонтекстЧитателя(Новый Структура("Фильтр", Фильтр));
+ ЮТКонтекстСлужебный.УстановитьКонтекстЧитателя(Новый Структура("Фильтр", Фильтр));
КонецПроцедуры
@@ -255,7 +255,7 @@
НормализованноеЗначение = УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(Значение);
Результат.Вставить(НормализованноеЗначение);
-
+
КонецЦикла;
Возврат Результат;
diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\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\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
similarity index 87%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo"
rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\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\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
index b3bff6707..14f0c245b 100644
--- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo"
+++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\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\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
@@ -1,6 +1,6 @@
- ЮТФильтрация
+ ЮТФильтрацияСлужебный
ru
Фильтрация
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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress" "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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress"
deleted file mode 100644
index 2fab39597..000000000
--- "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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.suppress"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
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/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"
similarity index 65%
rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214/Module.bsl"
rename to "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 5a1d74f7e..e8c93a339 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/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"
@@ -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.
@@ -22,14 +22,14 @@
// Читает наборы тестов (тестовые модули) из расширений
// Параметры:
// ПараметрыЗапускаТестов - см. ЮТФабрика.ПараметрыЗапуска
-//
+//
// Возвращаемое значение:
-// Массив из см. ЮТФабрика.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
+// Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
Функция ЗагрузитьТесты(ПараметрыЗапускаТестов) Экспорт
Результат = Новый Массив;
- ЮТФильтрация.УстановитьКонтекст(ПараметрыЗапускаТестов);
+ ЮТФильтрацияСлужебный.УстановитьКонтекст(ПараметрыЗапускаТестов);
Для Каждого МетаданныеМодуля Из ТестовыеМодули() Цикл
@@ -48,33 +48,33 @@
КонецФункции
// ПрочитатьНаборТестов
-// Читает набор тестов из модуля
+// Читает набор тестов из модуля
// Параметры:
-// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
-//
+// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
+//
// Возвращаемое значение:
// - Неопределено - Если это не тестовый модуль
-// - см. ЮТФабрика.ОписаниеТестовогоМодуля
+// - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
Функция ИсполняемыеСценарииМодуля(Знач МетаданныеМодуля) Экспорт
ЭтоТестовыйМодуль = Истина;
- ОписаниеТестовогоМодуля = ЮТФабрика.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив);
+ ОписаниеТестовогоМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив);
- ЮТТесты.ПередЧтениемСценариевМодуля(МетаданныеМодуля);
+ ЮТТестыСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля);
ПолноеИмяМетода = МетаданныеМодуля.Имя + "." + ИмяМетодаСценариев();
- Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода);
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода);
Если Ошибка <> Неопределено Тогда
- ТипыОшибок = ЮТФабрика.ТипыОшибок();
- ТипОшибки = ЮТРегистрацияОшибок.ТипОшибки(Ошибка, ПолноеИмяМетода);
+ ТипыОшибок = ЮТФабрикаСлужебный.ТипыОшибок();
+ ТипОшибки = ЮТРегистрацияОшибокСлужебный.ТипОшибки(Ошибка, ПолноеИмяМетода);
Если ТипОшибки = ТипыОшибок.ТестНеРеализован Тогда
ЭтоТестовыйМодуль = Ложь;
Ошибка = Неопределено;
ИначеЕсли ТипОшибки = ТипыОшибок.МалоПараметров Тогда
- Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ЮТОбщий.ЗначениеВМассиве(Неопределено));
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ЮТКоллекции.ЗначениеВМассиве(Неопределено));
ЮТОбщий.СообщитьПользователю("Используется устаревшая сигнатура метода `ИсполняемыеСценарии`, метод не должен принимать параметров.");
КонецЕсли;
@@ -82,18 +82,18 @@
Если Ошибка <> Неопределено Тогда
- НаборПоУмолчанию = ЮТФабрика.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
- ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуЧтенияТестов(НаборПоУмолчанию, "Ошибка формирования списка тестовых методов", Ошибка);
+ НаборПоУмолчанию = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
+ ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуЧтенияТестов(НаборПоУмолчанию, "Ошибка формирования списка тестовых методов", Ошибка);
ОписаниеТестовогоМодуля.НаборыТестов.Добавить(НаборПоУмолчанию);
ИначеЕсли ЭтоТестовыйМодуль Тогда
- ЮТТесты.ПослеЧтенияСценариевМодуля();
- Сценарии = ЮТТесты.СценарииМодуля();
+ ЮТТестыСлужебный.ПослеЧтенияСценариевМодуля();
+ Сценарии = ЮТТестыСлужебный.СценарииМодуля();
УдалитьНастройкиМодуляИзПервогоНабора(Сценарии); // TODO Нужен рефакторинг
- ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля);
+ ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля);
ОписаниеТестовогоМодуля.НастройкиВыполнения = Сценарии.НастройкиВыполнения;
Иначе
@@ -109,35 +109,35 @@
// ЭтоТестовыйМодуль
// Проверяет, является ли модуль модулем с тестами
// Параметры:
-// МетаданныеМодуля - Структура - Описание метаданных модуля, см. ЮТФабрика.ОписаниеМодуля
-//
+// МетаданныеМодуля - Структура - Описание метаданных модуля, см. ЮТФабрикаСлужебный.ОписаниеМодуля
+//
// Возвращаемое значение:
// Булево - Этот модуль содержит тесты
Функция ЭтоТестовыйМодуль(МетаданныеМодуля) Экспорт
-
+
Если МетаданныеМодуля.Глобальный Тогда
Возврат Ложь;
КонецЕсли;
-
+
#Если Сервер Тогда
- Возврат ЮТОбщий.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев());
+ Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев());
#КонецЕсли
#Если ТолстыйКлиентУправляемоеПриложение ИЛИ ТонкийКлиент Тогда
Если МетаданныеМодуля.КлиентУправляемоеПриложение Тогда
- Возврат ЮТОбщий.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев());
+ Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев());
КонецЕсли;
#КонецЕсли
#Если ТолстыйКлиентОбычноеПриложение Тогда
Если МетаданныеМодуля.КлиентОбычноеПриложение Тогда
- Возврат ЮТОбщий.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев());
+ Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев());
КонецЕсли;
#КонецЕсли
Если МетаданныеМодуля.Сервер Тогда
//@skip-check unknown-method-property
- Возврат ЮТЧитательСервер.ЭтоТестовыйМодуль(МетаданныеМодуля);
+ Возврат ЮТЧитательСлужебныйВызовСервера.ЭтоТестовыйМодуль(МетаданныеМодуля);
Иначе
Возврат Ложь;
КонецЕсли;
@@ -157,17 +157,17 @@
// ТестовыеМодули
// Возвращает описания модулей, содержащих тесты
// Возвращаемое значение:
-// Массив из см. ЮТМетаданныеСервер.МетаданныеМодуля - Тестовые модули
+// Массив из см. ЮТМетаданныеСлужебныйВызовСервера.МетаданныеМодуля - Тестовые модули
Функция ТестовыеМодули()
ТестовыеМодули = Новый Массив;
//@skip-check unknown-method-property
- МодулиРасширения = ЮТМетаданныеСервер.МодулиРасширений();
+ МодулиРасширения = ЮТМетаданныеСлужебныйВызовСервера.МодулиРасширений();
Для Каждого ОписаниеМодуля Из МодулиРасширения Цикл
- Если ЮТФильтрация.ЭтоПодходящийМодуль(ОписаниеМодуля) И ЭтоТестовыйМодуль(ОписаниеМодуля) Тогда
+ Если ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля) И ЭтоТестовыйМодуль(ОписаниеМодуля) Тогда
ТестовыеМодули.Добавить(ОписаниеМодуля);
@@ -191,8 +191,8 @@
ИначеЕсли МетаданныеМодуля.Сервер Тогда
- ОписаниеМодуля = ЮТЧитательСервер.ИсполняемыеСценарииМодуля(МетаданныеМодуля);
- ЮТЛогирование.ВывестиСерверныеСообщения();
+ ОписаниеМодуля = ЮТЧитательСлужебныйВызовСервера.ИсполняемыеСценарииМодуля(МетаданныеМодуля);
+ ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения();
КонецЕсли;
#ИначеЕсли Сервер Тогда
@@ -212,8 +212,8 @@
ИначеЕсли МетаданныеМодуля.Сервер Тогда
- ОписаниеМодуля = ЮТЧитательСервер.ИсполняемыеСценарииМодуля(МетаданныеМодуля);
- ЮТЛогирование.ВывестиСерверныеСообщения();
+ ОписаниеМодуля = ЮТЧитательСлужебныйВызовСервера.ИсполняемыеСценарииМодуля(МетаданныеМодуля);
+ ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения();
КонецЕсли;
#КонецЕсли
@@ -224,7 +224,7 @@
Процедура УдалитьНастройкиМодуляИзПервогоНабора(СценарииМодуля)
- НастройкиВыполнения = ЮТОбщий.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения);
+ НастройкиВыполнения = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения);
СценарииМодуля.НастройкиВыполнения.Очистить();
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\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" "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/\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.mdo"
similarity index 88%
rename from "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\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo"
rename to "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/\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.mdo"
index df2cbf74d..857da215e 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\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ЮТЧитатель
+ ЮТЧитательСлужебный
ru
Загрузчик тестов
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\265\321\200\320\262\320\265\321\200/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\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"
similarity index 72%
rename from "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\265\321\200\320\262\320\265\321\200/Module.bsl"
rename to "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\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 adc856ce0..5e08cb6f7 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\265\321\200\320\262\320\265\321\200/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\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"
@@ -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.
@@ -18,16 +18,16 @@
#Область СлужебныйПрограммныйИнтерфейс
-// См. ЮТЧитатель.ИсполняемыеСценарииМодуля
+// См. ЮТЧитательСлужебный.ИсполняемыеСценарииМодуля
Функция ИсполняемыеСценарииМодуля(Знач МетаданныеМодуля) Экспорт
- Возврат ЮТЧитатель.ИсполняемыеСценарииМодуля(МетаданныеМодуля);
+ Возврат ЮТЧитательСлужебный.ИсполняемыеСценарииМодуля(МетаданныеМодуля);
КонецФункции
Функция ЭтоТестовыйМодуль(МетаданныеМодуля) Экспорт
- Возврат ЮТЧитатель.ЭтоТестовыйМодуль(МетаданныеМодуля);
+ Возврат ЮТЧитательСлужебный.ЭтоТестовыйМодуль(МетаданныеМодуля);
КонецФункции
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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "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\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\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\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"
similarity index 81%
rename from "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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "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\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\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\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"
index 0150accfb..f3b1d1653 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\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "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\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\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\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"
@@ -1,6 +1,6 @@
- ЮТЧитательСервер
+ ЮТЧитательСлужебныйВызовСервера
ru
Загрузчик тестов (сервер)
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 b67c7b473..2f63ffd29 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"
@@ -108,7 +108,7 @@
// Сообщение - Строка, Неопределено - Сообщение
Процедура Пропустить(Сообщение = Неопределено) Экспорт
- ЮТРегистрацияОшибок.Пропустить(Сообщение);
+ ЮТРегистрацияОшибокСлужебный.Пропустить(Сообщение);
КонецПроцедуры
@@ -123,7 +123,7 @@
Функция КонтекстТеста() Экспорт
//@skip-check constructor-function-return-section
- Возврат ЮТКонтекст.КонтекстТеста();
+ Возврат ЮТКонтекстСлужебный.КонтекстТеста();
КонецФункции
@@ -143,7 +143,7 @@
Функция КонтекстТестовогоНабора() Экспорт
//@skip-check constructor-function-return-section
- Возврат ЮТКонтекст.КонтекстНабора();
+ Возврат ЮТКонтекстСлужебный.КонтекстНабора();
КонецФункции
@@ -159,7 +159,7 @@
Функция КонтекстМодуля() Экспорт
//@skip-check constructor-function-return-section
- Возврат ЮТКонтекст.КонтекстМодуля();
+ Возврат ЮТКонтекстСлужебный.КонтекстМодуля();
КонецФункции
@@ -183,4 +183,24 @@
КонецПроцедуры
+// Добавляет сообщение в лог исполнения теста.
+//
+// Параметры:
+// ТекстСообщения - Строка - Текст сообщения
+Процедура ДобавитьСообщение(ТекстСообщения) Экспорт
+
+ ЮТЛогИсполненияТестаСлужебный.ДобавитьСообщение(ТекстСообщения);
+
+КонецПроцедуры
+
+// Добавляет предупреждение в лог исполнения теста.
+//
+// Параметры:
+// ТекстПредупреждения - Строка - Текст предупреждения
+Процедура ДобавитьПредупреждение(ТекстПредупреждения) Экспорт
+
+ ЮТЛогИсполненияТестаСлужебный.ДобавитьПредупреждение(ТекстПредупреждения);
+
+КонецПроцедуры
+
#КонецОбласти
diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.svg"
new file mode 100644
index 000000000..2f6dafbbd
--- /dev/null
+++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.svg"
@@ -0,0 +1,4 @@
+
+
diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214.mdo" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214.mdo"
new file mode 100644
index 000000000..6862fc789
--- /dev/null
+++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214.mdo"
@@ -0,0 +1,8 @@
+
+
+ ЮТЗапустить
+
+ ru
+ Запустить
+
+
diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.svg"
index d125eddd8..6c4094ecb 100644
--- "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.svg"
+++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.svg"
@@ -1,12 +1,4 @@
-
-
-
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 e5f7de340..311c0a5f3 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"
@@ -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.
@@ -21,15 +21,11 @@
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты
- .ДобавитьТест("ДобавитьСтроку")
- .ДобавитьТест("ОбъединитьВСтруктуру")
- .ДобавитьТест("СформироватьСтрокуСимволов")
- .ДобавитьТест("ДанныеСовпадают")
.ДобавитьТест("Пауза")
.ДобавитьТест("ВывестиВКонсоль")
.ДобавитьСерверныйТест("Менеджер")
.ДобавитьТест("ЗначениеСвойства")
- ;
+ ;
КонецПроцедуры
@@ -42,7 +38,7 @@
Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало;
ЮТест.ОжидаетЧто(Дельта)
- .МеждуИсключаяГраницы(3000, 3200);
+ .МеждуИсключаяГраницы(3000, 3999);
КонецПроцедуры
@@ -52,88 +48,6 @@
КонецПроцедуры
-Процедура ДобавитьСтроку() Экспорт
-
- Варианты = ЮТест.Варианты("Исходная, Дополнение, Разделитель, Результат")
- .Добавить("1", "2", "+", "1+2")
- .Добавить("", "2", "+", "2")
- .Добавить("1", "", "+", "1")
- .Добавить(Неопределено, "2", "+", "2")
- .Добавить("1", "2", Неопределено, "12")
- .СписокВариантов();
-
- Для Каждого Вариант Из Варианты Цикл
-
- Результат = ЮТОбщий.ДобавитьСтроку(Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель);
-
- Сообщение = СтрШаблон("ДобавитьСтроку(%1, %2, %3)", Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель);
- ЮТест.ОжидаетЧто(Результат, Сообщение).Равно(Вариант.Результат);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ОбъединитьВСтруктуру() Экспорт
-
- Варианты = ЮТест.Варианты("Описание, Исходная, Добавляемая, Результат")
- .Добавить("Структуры без пересечения", "Строка, Число", "Дата", "Строка, Число, Дата")
- .Добавить("Структуры с пересечением", "Строка, Число", "Дата, Число", "Строка, Число, Дата")
- .Добавить("Добавление пустой структуры", "Строка, Число", "", "Строка, Число")
- .Добавить("Добавление в пустую структуру", "", "Строка, Число", "Строка, Число")
- .СписокВариантов();
-
- Для Каждого Вариант Из Варианты Цикл
-
- Для Режим = 1 По 3 Цикл
-
- ИсходнаяЭтоСоответствие = Режим = 1 ИЛИ Режим = 3;
- ДобавляемаяЭтоСоответствие = Режим = 2 ИЛИ Режим = 3;
-
- Исходная = СтруктураДляОбъединения(Вариант.Исходная, ИсходнаяЭтоСоответствие);
- Добавляемая = СтруктураДляОбъединения(Вариант.Добавляемая, ДобавляемаяЭтоСоответствие);
-
- Результат = ЮТОбщий.ОбъединитьВСтруктуру(Исходная, Добавляемая);
-
- ЮТест.ОжидаетЧто(Результат, Вариант.Описание)
- .Заполнено()
- .ИмеетТип("Структура");
-
- Для Каждого Ключ Из СтрРазделить(Вариант.Результат, ", ", Ложь) Цикл
-
- ЕстьКлюч = ДобавляемаяЭтоСоответствие И Добавляемая[Ключ] <> Неопределено
- ИЛИ НЕ ДобавляемаяЭтоСоответствие И Добавляемая.Свойство(Ключ);
- Если ЕстьКлюч Тогда
- ЮТУтверждения.Свойство(Ключ).Равно(Добавляемая[Ключ]);
- Иначе
- ЮТУтверждения.Свойство(Ключ).Равно(Исходная[Ключ]);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЦикла;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура СформироватьСтрокуСимволов() Экспорт
-
- Варианты = ЮТест.Варианты("Символ, Количество, Результат")
- .Добавить("1", 1, "1")
- .Добавить("12", 0, "")
- .Добавить("12", 2, "1212")
- .СписокВариантов();
-
- Для Каждого Вариант Из Варианты Цикл
-
- Результат = ЮТОбщий.СформироватьСтрокуСимволов(Вариант.Символ, Вариант.Количество);
- ЮТест.ОжидаетЧто(Результат, СтрШаблон("%1 * %2", Вариант.Символ, Вариант.Количество))
- .Равно(Вариант.Результат);
-
- КонецЦикла;
-
-КонецПроцедуры
-
#Если Сервер Тогда
Процедура Менеджер() Экспорт
@@ -146,7 +60,7 @@
.Добавить(Тип("СправочникСсылка.Товары"), Справочники.Товары)
.Добавить(ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Товары"), Справочники.Товары)
.Добавить("РегистрыНакопления.Взаиморасчеты", РегистрыНакопления.Взаиморасчеты)
- ;
+ ;
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
@@ -161,7 +75,7 @@
Процедура ЗначениеСвойства() Экспорт
- Массив = ЮТОбщий.ЗначениеВМассиве(1, 2, 3);
+ Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3);
Структура = Новый Структура("Число, Массив", 1, Массив);
Варианты = ЮТест.Варианты("Значение, Свойство, Результат")
@@ -171,7 +85,7 @@
.Добавить(Массив, 1, 2)
.Добавить(Структура, "Число", 1)
.Добавить(Структура, "Массив[0]", 1)
- ;
+ ;
КонецПроцедуры
@@ -179,63 +93,4 @@
#Область СлужебныеПроцедурыИФункции
-Функция СтруктураДляОбъединения(КлючиСтрокой, Соответствие)
-
- Ключи = СтрРазделить(КлючиСтрокой, ", ", Ложь);
-
- Если Соответствие Тогда
- Результат = Новый Соответствие();
- Иначе
- Результат = Новый Структура();
- КонецЕсли;
-
- Для Каждого Ключ Из Ключи Цикл
-
- Если СтрСравнить(Ключ, "Число") Тогда
- Значение = ЮТест.Данные().СлучайноеЧисло();
- ИначеЕсли СтрСравнить(Ключ, "Дата") Тогда
- Значение = ЮТест.Данные().СлучайнаяДата();
- Иначе
- Значение = ЮТест.Данные().СлучайнаяСтрока();
- КонецЕсли;
-
- Результат.Вставить(Ключ, Значение);
-
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
-Процедура ДанныеСовпадают() Экспорт
-
- Массив = ЮТОбщий.ЗначениеВМассиве(1, 2, "3");
- Структура = Новый Структура("Строка, Число, Массив", "1", 1, Массив);
- Соответствие = Новый Соответствие();
- Соответствие.Вставить("Строка", "1");
- Соответствие.Вставить(2, "Число");
- Соответствие.Вставить("Массив", Массив);
-
- Варианты = ЮТест.Варианты("Значение")
- .Добавить(Массив)
- .Добавить(Структура)
- .Добавить(Соответствие)
- .Добавить(Новый ФиксированныйМассив(Массив))
- .Добавить(Новый ФиксированнаяСтруктура(Структура))
- .Добавить(Новый ФиксированноеСоответствие(Соответствие))
- .СписокВариантов();
-
- Для Каждого Вариант Из Варианты Цикл
-
- Описание = Строка(ТипЗнч(Вариант.Значение));
-
- ЮТест.ОжидаетЧто(
- ЮТОбщий.ДанныеСовпадают(Вариант.Значение, Вариант.Значение),
- Описание)
- .ЭтоИстина();
-
- КонецЦикла;
-
-КонецПроцедуры
-
#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo"
index 9215cba58..4fe6752c0 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo"
@@ -3,7 +3,7 @@
ОМ_Общий
ru
- О м общий
+ Общий
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 0be077783..e5bc450b1 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"
@@ -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.
@@ -31,6 +31,7 @@
.ДобавитьТест("ЗначенияРеквизитовЗаписи")
.ДобавитьТест("ЗначениеРеквизитаЗаписи")
.ДобавитьТест("ДвиженияДокумента")
+ .ДобавитьТест("Записи_Условие_ВСписке")
;
КонецПроцедуры
@@ -117,23 +118,19 @@
Процедура РезультатЗапроса() Экспорт
- Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары")
- .Фикция("Наименование")
- .Фикция("Поставщик");
- Ссылка = Конструктор.Записать();
- ДанныеСправочника = Конструктор.ДанныеОбъекта();
+ Товар = НовыйТовар();
ОписаниеЗапроса = ЮТЗапросы.ОписаниеЗапроса();
ОписаниеЗапроса.ИмяТаблицы = "Справочник.Товары";
ОписаниеЗапроса.Условия.Добавить("Ссылка = &Ссылка");
ОписаниеЗапроса.Условия.Добавить("НЕ ПометкаУдаления");
- ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Ссылка);
- ОписаниеЗапроса.ВыбираемыеПоля.Добавить("Наименование");
+ ОписаниеЗапроса.ЗначенияПараметров.Вставить("Ссылка", Товар);
+ ОписаниеЗапроса.ВыбираемыеПоля.Добавить("Ссылка");
ОписаниеЗапроса.ВыбираемыеПоля.Добавить("1+1 КАК Число");
ЮТест.ОжидаетЧто(ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса))
.ИмеетДлину(1)
- .Свойство("[0].Наименование").Равно(ДанныеСправочника.Наименование)
+ .Свойство("[0].Ссылка").Равно(Товар)
.Свойство("[0].Число").Равно(2);
КонецПроцедуры
@@ -395,4 +392,49 @@
КонецПроцедуры
+Процедура Записи_Условие_ВСписке() Экспорт
+
+ ИмяТаблицы = "Справочник.Товары";
+ ВидТовар = ПредопределенноеЗначение("Перечисление.ВидыТоваров.Товар");
+ ВидУслуга = ПредопределенноеЗначение("Перечисление.ВидыТоваров.Услуга");
+ Товар = НовыйТовар(ВидТовар);
+ Услуга = НовыйТовар(ВидУслуга);
+
+ Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат()
+ .Свойство("Вид").ВСписке(ЮТКоллекции.ЗначениеВМассиве(ВидТовар, ВидУслуга)));
+
+ ЮТест.ОжидаетЧто(Результат)
+ .ИмеетДлину(2)
+ .ЛюбойЭлементСодержитСвойствоСоЗначением("Ссылка", Товар)
+ .ЛюбойЭлементСодержитСвойствоСоЗначением("Ссылка", Услуга);
+
+ Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат()
+ .Свойство("Вид").ВСписке(ЮТКоллекции.ЗначениеВМассиве(ВидТовар)));
+
+ ЮТест.ОжидаетЧто(Результат)
+ .ИмеетДлину(1)
+ .Свойство("[0].Ссылка", Товар);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция НовыйТовар(ВидТовара = Неопределено)
+
+ Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары")
+ .Фикция("Наименование")
+ .Фикция("Поставщик");
+
+ Если ЗначениеЗаполнено(ВидТовара) Тогда
+ Конструктор.Установить("Вид", ВидТовара);
+ Иначе
+ Конструктор.Фикция("Вид");
+ КонецЕсли;
+
+ Возврат Конструктор.Записать();
+
+КонецФункции
+
#КонецОбласти
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/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213.mdo" "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/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213.mdo"
index 47e37a97c..f645b9a02 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/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213.mdo"
+++ "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/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213.mdo"
@@ -3,7 +3,7 @@
ОМ_ЮТЗапросы
ru
- О м ЮТЗапросы
+ ЮТЗапросы
true
true
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\232\320\273\320\270\320\265\320\275\321\202/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/Module.bsl"
similarity index 86%
rename from "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\232\320\273\320\270\320\265\320\275\321\202/Module.bsl"
rename to "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/Module.bsl"
index 7d3217afc..f38dbaa4a 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\232\320\273\320\270\320\265\320\275\321\202/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/Module.bsl"
@@ -30,12 +30,12 @@
ФайлРезультата = ЮТест.Данные().НовоеИмяВременногоФайла("txt");
ДополнительныеПараметры = ДополнительныеПараметрыТестирования(ФайлРезультата, МассивОшибок());
- ЮТИсполнительКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры);
+ ЮТИсполнительСлужебныйКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры);
ПроверитьРезультатВыполнения(ФайлРезультата, "0");
ДополнительныеПараметры = ДополнительныеПараметрыТестирования(ФайлРезультата, МассивОшибок(Истина));
- ЮТИсполнительКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры);
+ ЮТИсполнительСлужебныйКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры);
ПроверитьРезультатВыполнения(ФайлРезультата, "1");
КонецПроцедуры
@@ -49,7 +49,7 @@
НаборыТестов = НаборыТестов(Тесты);
ОписаниеРезультата = ОписаниеРезультатаТестирования(НаборыТестов);
- ДополнительныеПараметры = ЮТИсполнительКлиент.ПараметрыИсполнения();
+ ДополнительныеПараметры = ЮТИсполнительСлужебныйКлиент.ПараметрыИсполнения();
ДополнительныеПараметры.Цепочка.Добавить(ЮТАсинхроннаяОбработкаСлужебныйКлиент.НовыйПустойОбработчик(2));
ДополнительныеПараметры.АргументыЗапуска = "";
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = Новый Массив;
@@ -66,13 +66,13 @@
Функция МассивОшибок(ДобавлятьУпавшийТест = Ложь)
Ошибки = Новый Массив;
- ОписаниеОшибки = ЮТФабрика.ОписаниеВозникшейОшибки("Метод пропущен");
- ОписаниеОшибки.ТипОшибки = ЮТФабрика.ТипыОшибок().Пропущен;
+ ОписаниеОшибки = ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки("Метод пропущен");
+ ОписаниеОшибки.ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().Пропущен;
Ошибки.Добавить(ОписаниеОшибки);
Если ДобавлятьУпавшийТест Тогда
- ОписаниеОшибки = ЮТФабрика.ОписаниеВозникшейОшибки("Ошибка исполнения");
- ОписаниеОшибки.ТипОшибки = ЮТФабрика.ТипыОшибок().Исполнения;
+ ОписаниеОшибки = ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки("Ошибка исполнения");
+ ОписаниеОшибки.ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().Исполнения;
Ошибки.Добавить(ОписаниеОшибки);
КонецЕсли;
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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo" "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\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.mdo"
similarity index 84%
rename from "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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo"
rename to "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\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.mdo"
index bdaaeafe1..17d1edf3e 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\232\320\273\320\270\320\265\320\275\321\202/\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\232\320\273\320\270\320\265\320\275\321\202.mdo"
+++ "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\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.mdo"
@@ -1,6 +1,6 @@
- ОМ_ЮТИсполнительКлиент
+ ОМ_ЮТИсполнительСлужебныйКлиент
ru
ЮТИсполнительКлиент
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\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"
similarity index 90%
rename from "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\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"
rename to "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 c93d5f06c..073c741ee 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\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"
@@ -31,7 +31,7 @@
Процедура ЛомающийКонтекстТест() Экспорт
- ЮТест.ОжидаетЧто(ЮТКонтекст.ДанныеКонтекста())
+ ЮТест.ОжидаетЧто(ЮТКонтекстСлужебный.ДанныеКонтекста())
.ЭтоНеНеопределено();
НачатьТранзакцию();
@@ -40,7 +40,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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "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/\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.mdo"
similarity index 78%
rename from "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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "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/\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.mdo"
index 3d91f1e88..9b2b68dad 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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ОМ_ЮТИсполнительКлиентСервер
+ ОМ_ЮТИсполнительСлужебныйКлиентСервер
ru
ЮТИсполнитель клиент сервер
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl"
new file mode 100644
index 000000000..8b626e5d9
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl"
@@ -0,0 +1,451 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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 По 3 Цикл
+
+ ИсходнаяЭтоСоответствие = Режим = 1 ИЛИ Режим = 3;
+ ДобавляемаяЭтоСоответствие = Режим = 2 ИЛИ Режим = 3;
+
+ Исходная = СтруктураДляОбъединения(Вариант.Исходная, ИсходнаяЭтоСоответствие);
+ Добавляемая = СтруктураДляОбъединения(Вариант.Добавляемая, ДобавляемаяЭтоСоответствие);
+
+ ЮТКоллекции.ДополнитьСтруктуру(Исходная, Добавляемая);
+
+ Ожидание = ЮТест.ОжидаетЧто(Исходная, Вариант.Описание)
+ .Заполнено();
+
+ Для Каждого Ключ Из СтрРазделить(Вариант.Результат, ", ", Ложь) Цикл
+
+ ЕстьКлюч = ДобавляемаяЭтоСоответствие И Добавляемая[Ключ] <> Неопределено
+ ИЛИ НЕ ДобавляемаяЭтоСоответствие И Добавляемая.Свойство(Ключ);
+ Если ЕстьКлюч Тогда
+ Ожидание.Свойство(Ключ).Равно(Добавляемая[Ключ]);
+ Иначе
+ Ожидание.Свойство(Ключ).Равно(Исходная[Ключ]);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура ЗначениеСтруктуры() Экспорт
+
+ ИсходнаяСтруктура = Новый Структура;
+ ИсходнаяСтруктура.Вставить("Поле1", "Значение1");
+ ИсходнаяСтруктура.Вставить("Поле2", 4242);
+
+ Результат = ЮТКоллекции.ЗначениеСтруктуры(ИсходнаяСтруктура, "Поле1", "ЗначениеПоУмолчанию");
+ ЮТест.ОжидаетЧто(Результат, "Проверка существующего поля").Равно("Значение1");
+
+ Результат = ЮТКоллекции.ЗначениеСтруктуры(ИсходнаяСтруктура, "Поле2", "ЗначениеПоУмолчанию");
+ ЮТест.ОжидаетЧто(Результат, "Проверка числового поля").Равно(4242);
+
+ Результат = ЮТКоллекции.ЗначениеСтруктуры(ИсходнаяСтруктура, "Поле3", "ЗначениеПоУмолчанию");
+ ЮТест.ОжидаетЧто(Результат, "Проверка несуществующего поля").Равно("ЗначениеПоУмолчанию");
+
+ Результат = ЮТКоллекции.ЗначениеСтруктуры(Неопределено, "Поле", "ЗначениеПоУмолчанию");
+ ЮТест.ОжидаетЧто(Результат, "Проверка вызова функции со значение Неопределено").Равно("ЗначениеПоУмолчанию");
+
+КонецПроцедуры
+
+Процедура ДополнитьМассив() Экспорт
+
+ Приемник = Новый Массив;
+ Источник = Новый Массив;
+
+ // Генерируем случайные значения для источника
+ Для Счетчик = 1 По ЮТест.Данные().СлучайноеЧисло( , 10) Цикл
+ Источник.Добавить(ЮТест.Данные().СлучайноеЧисло( , 100));
+ КонецЦикла;
+
+ ЮТКоллекции.ДополнитьМассив(Приемник, Источник);
+
+ // Проверяем, что все элементы источника были добавлены в приемник
+ ЮТест.ОжидаетЧто(Приемник).ИмеетДлину(Источник.Количество());
+ Для Каждого Элемент Из Источник Цикл
+ ЮТест.ОжидаетЧто(Приемник).Содержит(Элемент);
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура СкопироватьРекурсивно() Экспорт
+
+ // Генерируем случайные значения для источника
+ Источник = Новый Структура;
+ Источник.Вставить("Число", ЮТест.Данные().СлучайноеЧисло(100));
+ Источник.Вставить("Строка", ЮТест.Данные().СлучайнаяСтрока());
+ Источник.Вставить("Дата", ЮТест.Данные().СлучайнаяДата());
+
+ // Сохраняем копию источника для последующей проверки
+ ИсточникКопия = Новый ФиксированнаяСтруктура(Источник);
+
+ Приемник = ЮТКоллекции.СкопироватьРекурсивно(Источник);
+
+ // Проверяем, что все элементы источника были скопированы в приемник
+ ЮТест.ОжидаетЧто(Приемник).ИмеетТип("Структура");
+ Для Каждого Элемент Из ИсточникКопия Цикл
+ ЮТест.ОжидаетЧто(Приемник).Свойство(Элемент.Ключ).Равно(Элемент.Значение);
+ КонецЦикла;
+
+ // Проверяем, что приемник и источник не ссылаются на один и тот же объект
+ Источник.Вставить("НовоеЗначение", ЮТест.Данные().СлучайнаяСтрока());
+ ЮТест.ОжидаетЧто(Приемник).НеСодержит("НовоеЗначение");
+
+ // Проверяем работу функции с массивами
+ ИсточникМассив = Новый Массив;
+ Для Счетчик = 1 По ЮТест.Данные().СлучайноеЧисло(, 10) Цикл
+ ИсточникМассив.Добавить(ЮТест.Данные().СлучайноеЧисло(100));
+ КонецЦикла;
+ ПриемникМассив = ЮТКоллекции.СкопироватьРекурсивно(ИсточникМассив);
+ ЮТест.ОжидаетЧто(ПриемникМассив).ИмеетТип("Массив");
+ Для Каждого Элемент Из ИсточникМассив Цикл
+ ЮТест.ОжидаетЧто(ПриемникМассив).Содержит(Элемент);
+ КонецЦикла;
+
+ // Проверяем, что приемник и источник не ссылаются на один и тот же объект
+ ИсточникМассив.Добавить(ЮТест.Данные().СлучайноеЧисло(100));
+ ЮТест.ОжидаетЧто(ПриемникМассив).НеСодержит(ИсточникМассив[ИсточникМассив.Количество() - 1]);КонецПроцедуры
+
+Процедура СкопироватьСтруктуру() Экспорт
+
+ // Генерируем случайные значения для источника
+ Источник = Новый Структура;
+ Источник.Вставить("Число", ЮТест.Данные().СлучайноеЧисло(100));
+ Источник.Вставить("Строка", ЮТест.Данные().СлучайнаяСтрока());
+ Источник.Вставить("Дата", ЮТест.Данные().СлучайнаяДата());
+
+ // Сохраняем копию источника для последующей проверки
+ ИсточникКопия = Новый ФиксированнаяСтруктура(Источник);
+
+ Приемник = ЮТКоллекции.СкопироватьСтруктуру(Источник);
+
+ // Проверяем, что все элементы источника были скопированы в приемник
+ ЮТест.ОжидаетЧто(Приемник).ИмеетТип("Структура");
+ Для Каждого Элемент Из ИсточникКопия Цикл
+ ЮТест.ОжидаетЧто(Приемник).Свойство(Элемент.Ключ).Равно(Элемент.Значение);
+ КонецЦикла;
+
+ // Проверяем, что источник не изменился после вызова функции
+ ЮТест.ОжидаетЧто(Источник).ИмеетТип("Структура");
+ Для Каждого Элемент Из ИсточникКопия Цикл
+ ЮТест.ОжидаетЧто(Источник).Свойство(Элемент.Ключ).Равно(Элемент.Значение);
+ КонецЦикла;
+
+ // Проверяем, что приемник и источник не ссылаются на один и тот же объект
+ Источник.Вставить("НовоеЗначение", ЮТест.Данные().СлучайнаяСтрока());
+ ЮТест.ОжидаетЧто(Приемник).НеСодержит("НовоеЗначение");
+
+ // Проверяем работу функции со вложенными структурами
+ ВложеннаяСтруктура = Новый Структура;
+ ВложеннаяСтруктура.Вставить("ВложенноеЧисло", ЮТест.Данные().СлучайноеЧисло(100));
+ Источник.Вставить("ВложеннаяСтруктура", ВложеннаяСтруктура);
+
+ Приемник = ЮТКоллекции.СкопироватьСтруктуру(Источник);
+
+ ЮТест.ОжидаетЧто(Приемник).Свойство("ВложеннаяСтруктура").ИмеетТип("Структура");
+ ЮТест.ОжидаетЧто(Приемник.ВложеннаяСтруктура).Свойство("ВложенноеЧисло").Равно(ВложеннаяСтруктура.ВложенноеЧисло);
+
+ // Проверяем, что приемник и источник не ссылаются на один и тот же объект
+ ВложеннаяСтруктура.Вставить("НовоеВложенноеЗначение", ЮТест.Данные().СлучайнаяСтрока());
+ ЮТест.ОжидаетЧто(Приемник.ВложеннаяСтруктура).НеСодержит("НовоеВложенноеЗначение");
+
+КонецПроцедуры
+
+Процедура СкопироватьСоответствие() Экспорт
+
+ Источник = Новый Соответствие;
+ Источник.Вставить(ЮТест.Данные().СлучайнаяСтрока(), ЮТест.Данные().СлучайнаяСтрока());
+ Источник.Вставить(ЮТест.Данные().СлучайнаяСтрока(), ЮТест.Данные().СлучайнаяСтрока());
+ Источник.Вставить(ЮТест.Данные().СлучайнаяСтрока(), ЮТест.Данные().СлучайнаяСтрока());
+
+ Результат = ЮТКоллекции.СкопироватьСоответствие(Источник);
+
+ ЮТест.ОжидаетЧто(Результат)
+ .Равно(Источник)
+ .ИмеетТип("Соответствие")
+ .ИмеетДлину(3);
+КонецПроцедуры
+
+Процедура СкопироватьМассив() Экспорт
+
+ Источник = Новый Массив;
+ Источник.Добавить(ЮТест.Данные().СлучайнаяСтрока());
+ Источник.Добавить(ЮТест.Данные().СлучайноеЧисло());
+ Источник.Добавить(ЮТест.Данные().СлучайнаяДата());
+
+ Результат = ЮТКоллекции.СкопироватьМассив(Источник);
+
+ ЮТест.ОжидаетЧто(Результат)
+ .Равно(Источник)
+ .ИмеетТип("Массив")
+ .ИмеетДлину(Источник.Количество());
+
+КонецПроцедуры
+
+Процедура СкопироватьСписокЗначений() Экспорт
+
+ Источник = Новый СписокЗначений;
+ Источник.Добавить(ЮТест.Данные().СлучайнаяСтрока(), "Представление Строка");
+ Источник.Добавить(ЮТест.Данные().СлучайноеЧисло(), "Представление Число");
+ Источник.Добавить(ЮТест.Данные().СлучайнаяДата(), "Представление Дата");
+
+ Результат = ЮТКоллекции.СкопироватьСписокЗначений(Источник);
+
+ ЮТест.ОжидаетЧто(Результат, "Список значений после копирования")
+ .Равно(Источник)
+ .ИмеетТип("СписокЗначений")
+ .ИмеетДлину(Источник.Количество());
+
+ Для Инд = 0 По Результат.Количество() - 1 Цикл
+ ЮТест.ОжидаетЧто(Результат[Инд], "Элемент списка значений после копирования")
+ .Свойство("Значение").Равно(Источник[Инд].Значение)
+ .Свойство("Представление").Заполнено();
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура ВыгрузитьЗначения() Экспорт
+
+ Коллекция = Новый Массив;
+ Коллекция.Добавить(Новый Структура("ИмяРеквизита", ЮТест.Данные().СлучайнаяСтрока()));
+ Коллекция.Добавить(Новый Структура("ИмяРеквизита", ЮТест.Данные().СлучайнаяСтрока()));
+ Коллекция.Добавить(Новый Структура("ИмяРеквизита", ЮТест.Данные().СлучайнаяСтрока()));
+
+ Результат = ЮТКоллекции.ВыгрузитьЗначения(Коллекция, "ИмяРеквизита");
+
+ ЮТест.ОжидаетЧто(Результат, "Массив значений после выгрузки")
+ .ИмеетТип("Массив")
+ .ИмеетДлину(Коллекция.Количество());
+
+ Для Инд = 0 По Результат.Количество() - 1 Цикл
+ ЮТест.ОжидаетЧто(Результат).Элемент(Инд).Равно(Коллекция[Инд].ИмяРеквизита);
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура ПересечениеМассивов() Экспорт
+
+ Коллекция1 = Новый Массив;
+ Коллекция1.Добавить(ЮТест.Данные().СлучайнаяСтрока());
+ Коллекция1.Добавить(ЮТест.Данные().СлучайнаяСтрока());
+ Коллекция1.Добавить(ЮТест.Данные().СлучайнаяСтрока());
+
+ Коллекция2 = Новый Массив;
+ Коллекция2.Добавить(Коллекция1[0]);
+ Коллекция2.Добавить(ЮТест.Данные().СлучайнаяСтрока());
+ Коллекция2.Добавить(ЮТест.Данные().СлучайнаяСтрока());
+
+ Результат = ЮТКоллекции.ПересечениеМассивов(Коллекция1, Коллекция2);
+
+ ЮТест.ОжидаетЧто(Результат, "Массив значений после пересечения")
+ .ИмеетТип("Массив")
+ .ИмеетДлину(1)
+ .Элемент(0).Равно(Коллекция1[0]);
+КонецПроцедуры
+
+Процедура ЗначениеВМассиве() Экспорт
+
+ Значение1 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение2 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение3 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение4 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение5 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение6 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение7 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение8 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение9 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение10 = ЮТест.Данные().СлучайнаяСтрока();
+
+ Результат = ЮТКоллекции.ЗначениеВМассиве(Значение1, Значение2, Значение3, Значение4, Значение5, Значение6, Значение7, Значение8, Значение9, Значение10);
+
+ ЮТест.ОжидаетЧто(Результат, "Массив значений после добавления")
+ .ИмеетТип("Массив")
+ .ИмеетДлину(10)
+ .Элемент(0).Равно(Значение1)
+ .Элемент(1).Равно(Значение2)
+ .Элемент(2).Равно(Значение3)
+ .Элемент(3).Равно(Значение4)
+ .Элемент(4).Равно(Значение5)
+ .Элемент(5).Равно(Значение6)
+ .Элемент(6).Равно(Значение7)
+ .Элемент(7).Равно(Значение8)
+ .Элемент(8).Равно(Значение9)
+ .Элемент(9).Равно(Значение10);
+
+КонецПроцедуры
+
+Процедура ВСоответствие() Экспорт
+
+ Коллекция = Новый Массив;
+ Ключ1 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение1 = ЮТест.Данные().СлучайнаяСтрока();
+ Ключ2 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение2 = ЮТест.Данные().СлучайнаяСтрока();
+ Ключ3 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение3 = ЮТест.Данные().СлучайнаяСтрока();
+
+ Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ1, Значение1));
+ Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ2, Значение2));
+ Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ3, Значение3));
+
+ Результат = ЮТКоллекции.ВСоответствие(Коллекция, "Ключ", "Значение");
+
+ ЮТест.ОжидаетЧто(Результат, "Соответствие после преобразования")
+ .ИмеетТип("Соответствие")
+ .ИмеетДлину(Коллекция.Количество())
+ .Элемент(Ключ1).Равно(Значение1)
+ .Элемент(Ключ2).Равно(Значение2)
+ .Элемент(Ключ3).Равно(Значение3);
+
+ // Проверка когда последний параметр не указан
+ Результат = ЮТКоллекции.ВСоответствие(Коллекция, "Ключ");
+ ЮТест.ОжидаетЧто(Результат, "Соответствие после преобразования без указания последнего параметра")
+ .ИмеетТип("Соответствие")
+ .ИмеетДлину(Коллекция.Количество())
+ .Элемент(Ключ1).Равно(Коллекция[0])
+ .Элемент(Ключ2).Равно(Коллекция[1])
+ .Элемент(Ключ3).Равно(Коллекция[2]);
+
+КонецПроцедуры
+
+Процедура ВСтруктуру() Экспорт
+
+ Коллекция = Новый Массив;
+ Ключ1 = ЮТест.Данные().СлучайныйИдентификатор();
+ Значение1 = ЮТест.Данные().СлучайнаяСтрока();
+ Ключ2 = ЮТест.Данные().СлучайныйИдентификатор();
+ Значение2 = ЮТест.Данные().СлучайнаяСтрока();
+ Ключ3 = ЮТест.Данные().СлучайныйИдентификатор();
+ Значение3 = ЮТест.Данные().СлучайнаяСтрока();
+
+ Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ1, Значение1));
+ Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ2, Значение2));
+ Коллекция.Добавить(Новый Структура("Ключ, Значение", Ключ3, Значение3));
+
+ Результат = ЮТКоллекции.ВСтруктуру(Коллекция, "Ключ", "Значение");
+
+ ЮТест.ОжидаетЧто(Результат, "Структура после преобразования")
+ .ИмеетТип("Структура")
+ .ИмеетДлину(Коллекция.Количество())
+ .Свойство(Ключ1).Равно(Значение1)
+ .Свойство(Ключ2).Равно(Значение2)
+ .Свойство(Ключ3).Равно(Значение3);
+
+ // Проверка когда последний параметр не указан
+ Результат = ЮТКоллекции.ВСтруктуру(Коллекция, "Ключ");
+
+ ЮТест.ОжидаетЧто(Результат, "Структура после преобразования без указания последнего параметра")
+ .ИмеетТип("Структура")
+ .ИмеетДлину(Коллекция.Количество())
+ .Свойство(Ключ1).Равно(Коллекция[0])
+ .Свойство(Ключ2).Равно(Коллекция[1])
+ .Свойство(Ключ3).Равно(Коллекция[2]);
+
+КонецПроцедуры
+
+Процедура ПредставлениеМассива() Экспорт
+
+ Данные = Новый Массив;
+ Значение1 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение2 = ЮТест.Данные().СлучайнаяСтрока();
+ Значение3 = ЮТест.Данные().СлучайнаяСтрока();
+
+ Данные.Добавить(Значение1);
+ Данные.Добавить(Значение2);
+ Данные.Добавить(Значение3);
+
+ Результат = ЮТКоллекции.ПредставлениеМассива(Данные);
+
+ ОжидаемоеПредставление = СтрШаблон("[%1, %2, %3]", Значение1, Значение2, Значение3);
+
+ ЮТест.ОжидаетЧто(Результат, "Представление массива")
+ .Равно(ОжидаемоеПредставление);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция СтруктураДляОбъединения(КлючиСтрокой, Соответствие)
+
+ Ключи = СтрРазделить(КлючиСтрокой, ", ", Ложь);
+
+ Если Соответствие Тогда
+ Результат = Новый Соответствие();
+ Иначе
+ Результат = Новый Структура();
+ КонецЕсли;
+
+ Для Каждого Ключ Из Ключи Цикл
+
+ Если СтрСравнить(Ключ, "Число") Тогда
+ Значение = ЮТест.Данные().СлучайноеЧисло();
+ ИначеЕсли СтрСравнить(Ключ, "Дата") Тогда
+ Значение = ЮТест.Данные().СлучайнаяДата();
+ Иначе
+ Значение = ЮТест.Данные().СлучайнаяСтрока();
+ КонецЕсли;
+
+ Результат.Вставить(Ключ, Значение);
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo"
new file mode 100644
index 000000000..81d68da77
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270.mdo"
@@ -0,0 +1,7 @@
+
+
+ ОМ_ЮТКоллекции
+ true
+ true
+ true
+
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 b06a342ed..500243aee 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"
@@ -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.
@@ -24,11 +24,14 @@
.ДобавитьТест("ЗаполнитьСправочник")
.ДобавитьТест("ЗаполнитьДокумент")
.ДобавитьТест("СоздатьЗаписьРегистраСведений")
+ .ДобавитьТест("СоздатьЗаписьРегистраСведений_ОбменДанными")
.ДобавитьТест("Фикция")
.ДобавитьТест("Фикция_Типизированная")
+ .ДобавитьТест("Фикция_ОбщийРеквизит")
.ДобавитьТест("ФикцияОбязательныхПолей")
.ДобавитьТест("СоздатьГруппу")
- ;
+ .ДобавитьТест("УстановитьРеквизиты")
+ ;
КонецПроцедуры
@@ -96,7 +99,6 @@
.Объект()
.Фикция("Валюта")
.Фикция("Организация")
-
.Провести();
#Если НЕ Клиент Тогда
@@ -109,18 +111,18 @@
.Свойство("Валюта").Заполнено()
.Свойство("Организация").Заполнено()
.Свойство("Товары").ИмеетДлину(2)
- .Свойство("Товары[0].Товар").Заполнено()
- .Свойство("Товары[0].Цена").Заполнено()
- .Свойство("Товары[0].Количество").Заполнено()
- .Свойство("Товары[0].Сумма").Заполнено()
- .Свойство("Товары[1].Товар").Заполнено()
- .Свойство("Товары[1].Цена").Заполнено()
- .Свойство("Товары[1].Количество").Заполнено()
- .Свойство("Товары[1].Сумма").Заполнено()
+ .Свойство("Товары[0].Товар").Заполнено()
+ .Свойство("Товары[0].Цена").Заполнено()
+ .Свойство("Товары[0].Количество").Заполнено()
+ .Свойство("Товары[0].Сумма").Заполнено()
+ .Свойство("Товары[1].Товар").Заполнено()
+ .Свойство("Товары[1].Цена").Заполнено()
+ .Свойство("Товары[1].Количество").Заполнено()
+ .Свойство("Товары[1].Сумма").Заполнено()
.Свойство("Проведен").ЭтоИстина()
- ;
+ ;
#КонецЕсли
-
+
КонецПроцедуры
Процедура СоздатьЗаписьРегистраСведений() Экспорт
@@ -137,6 +139,29 @@
КонецПроцедуры
+Процедура СоздатьЗаписьРегистраСведений_ОбменДанными() Экспорт
+
+ Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрСведений.ЦеныТоваров")
+ .Фикция("Период")
+ .Фикция("Товар")
+ .Фикция("ВидЦен")
+ .Установить("Цена", -1);
+
+ ДанныеОбъекта = Конструктор.ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Конструктор)
+ .Метод("Записать").Параметр(Ложь).Параметр(Истина)
+ .НеВыбрасываетИсключение();
+
+ ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.ЦеныТоваров")
+ .СодержитЗаписи(ЮТест.Предикат(ДанныеОбъекта));
+
+ ЮТест.ОжидаетЧто(Конструктор)
+ .Метод("Записать")
+ .ВыбрасываетИсключение("Цена товара не может быть отрицательной");
+
+КонецПроцедуры
+
Процедура Фикция() Экспорт
Поставщик = Ютест.Данные().СоздатьЭлемент("Справочники.Контрагенты");
@@ -175,7 +200,7 @@
.Добавить(Тип, Тип, "По типу")
.Добавить(Новый ОписаниеТипов(ИмяТипа), Тип, "По описаниею типов")
.Добавить("Строка", Тип("Строка"), "Другой тип")
- ;
+ ;
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
@@ -188,25 +213,36 @@
.ИмеетТип(Вариант.ОжилаемыйТип);
КонецЦикла;
-//
+ //
Варианты = ЮТест.Варианты("Тип, Описание")
.Добавить("Дата", "Неподходящий тип")
.Добавить(Новый ОписаниеТипов("Число, Дата"), "Неподходящее описание типов")
.Добавить("Неопределено", "Неопределено")
.Добавить(Тип("Неопределено"), "Тип Неопределено")
- ;
+ ;
Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочник.МобильныеУстройства");
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
- ЮТест.ОжидаетЧто(Конструктор, Вариант.Описание).Метод("Фикция", ЮТОбщий.ЗначениеВМассиве("Подписчик", Неопределено, Вариант.Тип))
+ ЮТест.ОжидаетЧто(Конструктор, Вариант.Описание).Метод("Фикция", ЮТКоллекции.ЗначениеВМассиве("Подписчик", Неопределено, Вариант.Тип))
.ВыбрасываетИсключение("Исправьте ограничение типов для реквизита `Подписчик`");
КонецЦикла;
КонецПроцедуры
+Процедура Фикция_ОбщийРеквизит() Экспорт
+
+ Склад = ЮТест.Данные().КонструкторОбъекта("Справочник.Склады")
+ .Фикция("Организация")
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Склад)
+ .Свойство("Организация").Заполнено();
+
+КонецПроцедуры
+
Процедура ФикцияОбязательныхПолей() Экспорт
Данные = ЮТест.Данные().КонструкторОбъекта("Справочники.Контрагенты")
@@ -257,4 +293,32 @@
КонецПроцедуры
+Процедура УстановитьРеквизиты() Экспорт
+
+ Поставщик = ЮТест.Данные().СоздатьЭлемент("Справочник.Контрагенты");
+ Склад = ЮТест.Данные().СоздатьЭлемент("Справочник.Склады");
+ Товар = ЮТест.Данные().СоздатьЭлемент("Справочник.Товары");
+ Цена = ЮТест.Данные().СлучайноеЧисло(99, 2);
+
+ Реквизиты = Новый Структура("Поставщик, Склад", Поставщик, Склад);
+ РеквизитыСтроки = Новый Структура("Товар, Цена", Товар, Цена);
+
+ Данные = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара")
+ .УстановитьРеквизиты(Реквизиты)
+ .ТабличнаяЧасть("Товары")
+ .ДобавитьСтроку()
+ .УстановитьРеквизиты(РеквизитыСтроки)
+ .ДобавитьСтроку(РеквизитыСтроки)
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Данные)
+ .Свойство("Поставщик").Равно(Поставщик)
+ .Свойство("Склад").Равно(Склад)
+ .Свойство("Товары[0].Товар").Равно(Товар)
+ .Свойство("Товары[0].Цена").Равно(Цена)
+ .Свойство("Товары[1].Товар").Равно(Товар)
+ .Свойство("Товары[1].Цена").Равно(Цена);
+
+КонецПроцедуры
+
#КонецОбласти
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/\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.mdo" "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/\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.mdo"
index e16b5f1d9..df43c27e6 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/\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.mdo"
+++ "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/\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.mdo"
@@ -3,7 +3,7 @@
ОМ_ЮТКонструкторТестовыхДанных
ru
- О м конструктор тестовых данных
+ Конструктор тестовых данных
true
true
diff --git "a/tests/src/CommonModules/\320\236\320\234_\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/tests/src/CommonModules/\320\236\320\234_\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 4b994aeaf..dea98a664 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\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/tests/src/CommonModules/\320\236\320\234_\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"
@@ -24,8 +24,8 @@
.ДобавитьТест("ОписаниеОбъектаМетаданных")
.ДобавитьТест("РегистрыДвиженийДокумента")
.ДобавитьТест("НормализованноеИмяТаблицы")
- ;
-
+ ;
+
КонецПроцедуры
Процедура ОписаниеОбъектаМетаданных() Экспорт
@@ -46,6 +46,11 @@
КонецЦикла;
+ Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Склады");
+ ЮТест.ОжидаетЧто(Описание, "Проверка на общий реквизит")
+ .Свойство("Реквизиты")
+ .ИмеетСвойство("Организация");
+
КонецПроцедуры
Процедура РегистрыДвиженийДокумента() Экспорт
@@ -74,7 +79,7 @@
Процедура НормализованноеИмяТаблицы() Экспорт
- Варианты = ЮТОбщий.ЗначениеВМассиве("Справочник.Банки", "Справочники.Банки", ПредопределенноеЗначение("Справочник.Банки.ПустаяСсылка"));
+ Варианты = ЮТКоллекции.ЗначениеВМассиве("Справочник.Банки", "Справочники.Банки", ПредопределенноеЗначение("Справочник.Банки.ПустаяСсылка"));
#Если Сервер Тогда
Варианты.Добавить(Справочники.Банки);
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\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"
similarity index 84%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl"
rename to "tests/src/CommonModules/\320\236\320\234_\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 7e544b26d..401f31ba9 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\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"
@@ -30,7 +30,7 @@
Процедура ПараметрыГенерацииОтчета() Экспорт
- Параметры = ЮТОтчетAllure.ПараметрыГенерацииОтчета();
+ Параметры = ЮТОтчетAllureСлужебный.ПараметрыГенерацииОтчета();
ЮТест.ОжидаетЧто(Параметры)
.Свойство("Форматы")
@@ -44,8 +44,8 @@
РезультатТестирования = ТестовыеДанные.РезультатТестирования();
Каталог = ЮТест.Данные().НовоеИмяВременногоФайла();
СоздатьКаталог(Каталог);
- Формат = ЮТОтчетAllure.ПараметрыГенерацииОтчета().Форматы.allure;
- ЮТОтчетAllure.ЗаписатьОтчет(РезультатТестирования, Каталог, Формат, Неопределено);
+ Формат = ЮТОтчетAllureСлужебный.ПараметрыГенерацииОтчета().Форматы.allure;
+ ЮТОтчетAllureСлужебный.ЗаписатьОтчет(РезультатТестирования, Каталог, Формат, Неопределено);
КонецПроцедуры
@@ -55,7 +55,7 @@
Набор = ТестовыеДанные.ОписаниеТестовогоНабора(Модуль);
Тест = ТестовыеДанные.ОписаниеТеста(Набор);
- ОписаниеТеста = ЮТОтчетAllure.ОписаниеТеста(Тест, Набор, Модуль);
+ ОписаниеТеста = ЮТОтчетAllureСлужебный.ОписаниеТеста(Тест, Набор, Модуль);
ЮТест.ОжидаетЧто(ОписаниеТеста)
.ИмеетТип("Структура")
.Заполнено()
@@ -67,7 +67,7 @@
СодержитМетку(ОписаниеТеста, "subSuite", ИмяВложенногоНабора);
Набор.Представление = Модуль.МетаданныеМодуля.Имя;
- ОписаниеТеста = ЮТОтчетAllure.ОписаниеТеста(Тест, Набор, Модуль);
+ ОписаниеТеста = ЮТОтчетAllureСлужебный.ОписаниеТеста(Тест, Набор, Модуль);
СодержитМетку(ОписаниеТеста, "suite", ИмяТестовогоНабора);
ЮТест.ОжидаетЧто(ОписаниеТеста)
.Свойство("labels")
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo" "b/tests/src/CommonModules/\320\236\320\234_\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/\320\236\320\234_\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.mdo"
similarity index 83%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo"
rename to "tests/src/CommonModules/\320\236\320\234_\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/\320\236\320\234_\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.mdo"
index 295f00018..74f3095ab 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure.mdo"
+++ "b/tests/src/CommonModules/\320\236\320\234_\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/\320\236\320\234_\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.mdo"
@@ -1,6 +1,6 @@
- ОМ_ЮТОтчетAllure
+ ОМ_ЮТОтчетAllureСлужебный
true
true
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\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"
similarity index 91%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl"
rename to "tests/src/CommonModules/\320\236\320\234_\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 970068c39..1dc11fa09 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\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"
@@ -35,7 +35,7 @@
ПараметрыЗапуска = Новый Структура();
ПараметрыЗапуска.Вставить("reportPath", Каталог);
ПараметрыЗапуска.Вставить("reportFormat", "allure");
- ЮТОтчет.СформироватьОтчет(РезультатТестирования, ПараметрыЗапуска, Неопределено);
+ ЮТОтчетСлужебный.СформироватьОтчет(РезультатТестирования, ПараметрыЗапуска, Неопределено);
КонецПроцедуры
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo" "b/tests/src/CommonModules/\320\236\320\234_\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/\320\236\320\234_\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.mdo"
similarity index 85%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo"
rename to "tests/src/CommonModules/\320\236\320\234_\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/\320\236\320\234_\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.mdo"
index 5cd63fd08..7cd8bdf26 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202.mdo"
+++ "b/tests/src/CommonModules/\320\236\320\234_\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/\320\236\320\234_\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.mdo"
@@ -1,6 +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/\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.mdo" "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/\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.mdo"
index c1dd5b3b9..2cd86f36a 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/\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.mdo"
+++ "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/\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.mdo"
@@ -3,7 +3,7 @@
ОМ_ЮТПодражатель_Банки
ru
- О м ЮТПодражатель банки
+ Подражатель банки
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\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/\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.mdo" "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/\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.mdo"
index 178684980..a22664513 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/\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.mdo"
+++ "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/\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.mdo"
@@ -3,7 +3,7 @@
ОМ_ЮТПодражатель_Компании
ru
- О м ЮТПодражатель компании
+ Подражатель компании
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\233\321\216\320\264\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\233\321\216\320\264\320\270/Module.bsl"
index 1ce8676a3..8de1011d3 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\233\321\216\320\264\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\233\321\216\320\264\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.
@@ -19,7 +19,7 @@
#Область СлужебныйПрограммныйИнтерфейс
Процедура ИсполняемыеСценарии() Экспорт
-
+
ЮТТесты
.ДобавитьТестовыйНабор("ИменаЛюдей")
.ДобавитьТест("Имя")
@@ -34,36 +34,16 @@
.ДобавитьТестовыйНабор("Некорректные параметры")
.ДобавитьТест("НереализованныйПолЧеловека")
;
-
-КонецПроцедуры
-
-#Область События
-
-Процедура ПередВсемиТестами() Экспорт
-
-КонецПроцедуры
-
-Процедура ПередКаждымТестом() Экспорт
-
-КонецПроцедуры
-
-Процедура ПослеКаждогоТеста() Экспорт
-
+
КонецПроцедуры
-Процедура ПослеВсехТестов() Экспорт
-
-КонецПроцедуры
-
-#КонецОбласти
-
Процедура Имя() Экспорт
Имя = ЮТест.Данные().Подражатель().Люди().Имя();
ЮТест.ОжидаетЧто(Имя)
.ИмеетТип("Строка")
.Заполнено()
;
-
+
ЮТест.ОжидаетЧто(СтрДлина(Имя))
.Больше(1)
;
@@ -75,7 +55,7 @@
.ИмеетТип("Строка")
.Заполнено()
;
-
+
ЮТест.ОжидаетЧто(СтрДлина(Фамилия))
.Больше(1)
;
@@ -87,7 +67,7 @@
.ИмеетТип("Строка")
.Заполнено()
;
-
+
ЮТест.ОжидаетЧто(СтрДлина(Отчество))
.Больше(1)
;
@@ -99,7 +79,7 @@
.ИмеетТип("Строка")
.Заполнено()
;
-
+
ЮТест.ОжидаетЧто(СтрРазделить(ФИО, " "))
.ИмеетДлину(3)
;
@@ -124,17 +104,17 @@
КонецПроцедуры
Процедура УстановкаЛокализации() Экспорт
-
+
Подражатель = ЮТест.Данные().Подражатель();
ЮТест.ОжидаетЧто(Подражатель.Локализация())
.Равно("ru")
;
Подражатель.УстановитьЛокализацию("en");
-
+
ЮТест.ОжидаетЧто(Подражатель.Локализация())
.Равно("en")
;
-
+
КонецПроцедуры
Процедура НесуществующийСловарьПоЛокализации() Экспорт
@@ -149,7 +129,7 @@
Процедура НереализованныйПолЧеловека() Экспорт
Подражатель = ЮТест.Данные().Подражатель();
Ютест.ОжидаетЧто(ЮТПодражатель_Люди)
- .Метод("Имя", ЮТОбщий.ЗначениеВМассиве("ТрансгендернаяДевушкаОлень"))
+ .Метод("Имя", ЮТКоллекции.ЗначениеВМассиве("ТрансгендернаяДевушкаОлень"))
.ВыбрасываетИсключение("Отсутствует реализация словаря")
;
КонецПроцедуры
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\233\321\216\320\264\320\270/\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\233\321\216\320\264\320\270.mdo" "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\233\321\216\320\264\320\270/\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\233\321\216\320\264\320\270.mdo"
index 452461f4b..c75e0f57e 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\233\321\216\320\264\320\270/\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\233\321\216\320\264\320\270.mdo"
+++ "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\233\321\216\320\264\320\270/\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\233\321\216\320\264\320\270.mdo"
@@ -3,7 +3,7 @@
ОМ_ЮТПодражатель_Люди
ru
- О м ЮТПодражатель люди
+ Подражатель люди
true
true
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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"
similarity index 89%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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"
rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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 959556a76..990d59a09 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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"
@@ -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.
@@ -34,14 +34,14 @@
Процедура ПроверитьПредикаты() Экспорт
- Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(1, ЮТест.Предикат().ИмеетТип("Число").Больше(0).Меньше(2).Равно(1));
+ Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(1, ЮТест.Предикат().ИмеетТип("Число").Больше(0).Меньше(2).Равно(1));
ЮТест.ОжидаетЧто(Результат).Свойство("Успешно").ЭтоИстина();
КонецПроцедуры
Процедура ЭтоПредикат() Экспорт
- СтруктураПредикат = ЮтФабрика.ВыражениеПредиката(ЮТПредикаты.Выражения().Равно);
+ СтруктураПредикат = ЮТФабрика.ВыражениеПредиката(ЮТПредикаты.Выражения().Равно);
ЮТОбщий.УказатьТипСтруктуры(СтруктураПредикат, "Предикат");
Варианты = ЮТест.Варианты("Предикаты, ОжидаемоеЗначение")
@@ -53,7 +53,7 @@
.Добавить(Мокито.МассивПараметров(1, 2, 3), Ложь);
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
- ЮТест.ОжидаетЧто(ЮТПредикатыКлиентСервер.ЭтоПредикат(Вариант.Предикаты)).Равно(Вариант.ОжидаемоеЗначение);
+ ЮТест.ОжидаетЧто(ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(Вариант.Предикаты)).Равно(Вариант.ОжидаемоеЗначение);
КонецЦикла;
КонецПроцедуры
@@ -105,8 +105,8 @@
Процедура ПроверитьСообщениеОбработкиПредиката(ПроверяемоеЗначение, Предикат, Сообщение)
- ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке();
- РезультатПроверки = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(ПроверяемоеЗначение, Предикат, ПараметрыСообщенийОбОшибке);
+ ПараметрыСообщенийОбОшибке = ЮТПредикатыСлужебныйКлиентСервер.ПараметрыСообщенийОбОшибке();
+ РезультатПроверки = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(ПроверяемоеЗначение, Предикат, ПараметрыСообщенийОбОшибке);
Описание = СтрШаблон("Проверка предиката %1 `%2` %3", Предикат.ИмяРеквизита, Предикат.ВидСравнения, Предикат.Значение);
ОжидаемоеСообщение = СтрШаблон("Ожидали, что проверяемое значение %1 %2, но это не так.", ЮТСообщенияСлужебный.ПредставлениеЗначения(ПроверяемоеЗначение), Сообщение);
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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.mdo"
similarity index 69%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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.mdo"
index d226ed546..09e27a418 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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/\320\236\320\234_\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\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.mdo"
@@ -1,9 +1,9 @@
- ОМ_ЮТПредикатыКлиентСервер
+ ОМ_ЮТПредикатыСлужебныйКлиентСервер
ru
- О м ЮТПредикаты клиент сервер
+ Предикаты служебный клиент сервер
true
true
diff --git "a/tests/src/CommonModules/\320\236\320\234_\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/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\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/Module.bsl"
new file mode 100644
index 000000000..79cbda8de
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\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/Module.bsl"
@@ -0,0 +1,87 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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");
+ ЮТест.ДобавитьСообщение("Сообщение 2");
+ ЮТест.ДобавитьПредупреждение("Предупреждение 1");
+
+ Ошибка = ОшибкаВыполнения();
+
+ ЮТест.ОжидаетЧто(Ошибка)
+ .Заполнено()
+ .Свойство("Лог")
+ .Заполнено()
+ .ИмеетДлину(3)
+ .Содержит("[INF] Сообщение 1")
+ .Содержит("[INF] Сообщение 2")
+ .Содержит("[WRN] Предупреждение 1");
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция ИмяКонтекстаОшибки()
+
+ Возврат "ДанныеОшибки";
+
+КонецФункции
+
+Функция ОшибкаВыполнения()
+
+ Попытка
+ //@skip-check module-unused-local-variable
+ Результат = 1/0;
+ Исключение
+ Ошибка = ИнформацияОбОшибке();
+ КонецПопытки;
+
+ Тест = Новый Структура("Ошибки, ПолноеИмяМетода", Новый Массив(), "Тест");
+ ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка);
+ Возврат Тест.Ошибки[0];
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\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\236\320\234_\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.mdo" "b/tests/src/CommonModules/\320\236\320\234_\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\236\320\234_\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.mdo"
new file mode 100644
index 000000000..10b655835
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\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\236\320\234_\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.mdo"
@@ -0,0 +1,7 @@
+
+
+ ОМ_ЮТРегистрацияОшибок
+ true
+ true
+ true
+
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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"
similarity index 77%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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"
rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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 177006956..3b781bb09 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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"
@@ -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.
@@ -17,14 +17,14 @@
//©///////////////////////////////////////////////////////////////////////////©//
/////////////////////////////////////////////////////////////////////////////////
-// Экспортные процедуры и функции, предназначенные для использования другими
+// Экспортные процедуры и функции, предназначенные для использования другими
// объектами конфигурации или другими программами
-/////////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
Процедура ИсполняемыеСценарии() Экспорт
- Массив = ЮТОбщий.ЗначениеВМассиве(1, 2, "3");
+ Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, "3");
Структура = Новый Структура("Строка, Число, Массив", "1", 1, Массив);
Соответствие = Новый Соответствие();
Соответствие.Вставить("Строка", "1");
@@ -76,6 +76,7 @@
.СПараметрами(Новый ФиксированноеСоответствие(Соответствие))
.СПараметрами(Новый ФиксированныйМассив(Массив))
.ДобавитьТест("ЗначенияРавны_ТабличныйДокумент")
+ .ДобавитьТест("ДанныеСовпадают")
;
КонецПроцедуры
@@ -85,7 +86,7 @@
Описание = Строка(ТипЗнч(Значение));
Копия = СоздатьКопию(Значение);
- Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Значение, Копия);
+ Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Значение, Копия);
ЮТест.ОжидаетЧто(Результат, Описание)
.ЭтоИстина();
@@ -95,11 +96,11 @@
Описание = Строка(ТипЗнч(Значение1));
- Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Значение1, Значение2);
+ Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Значение1, Значение2);
ЮТест.ОжидаетЧто(Результат, Описание)
.ЭтоЛожь();
- Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Значение2, Значение1);
+ Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Значение2, Значение1);
ЮТест.ОжидаетЧто(Результат, Описание + ". Перемена мест")
.ЭтоЛожь();
@@ -113,9 +114,8 @@
Копия = СоздатьКопию(Значение);
Алгоритм = Новый СжатиеДанных(1);
- Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(
- Новый ХранилищеЗначения(Значение, Алгоритм),
- Новый ХранилищеЗначения(Копия, Алгоритм));
+ Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Новый ХранилищеЗначения(Значение, Алгоритм),
+ Новый ХранилищеЗначения(Копия, Алгоритм));
ЮТест.ОжидаетЧто(Результат, Описание)
.ЭтоИстина();
@@ -145,13 +145,14 @@
КонецЦикла;
КонецЦикла;
+
Варианты.Добавить(СоздатьКопию(Таблица), "Заполненная таблица");
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
Копия = СоздатьКопию(Вариант.Значение);
- Результат = ЮТСравнениеКлиентСервер.ЗначенияРавны(Вариант.Значение, Копия);
+ Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Вариант.Значение, Копия);
ЮТест.ОжидаетЧто(Результат, Вариант.Описание)
.ЭтоИстина();
@@ -177,6 +178,35 @@
КонецПроцедуры
+Процедура ДанныеСовпадают() Экспорт
+
+ Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, "3");
+ Структура = Новый Структура("Строка, Число, Массив", "1", 1, Массив);
+ Соответствие = Новый Соответствие();
+ Соответствие.Вставить("Строка", "1");
+ Соответствие.Вставить(2, "Число");
+ Соответствие.Вставить("Массив", Массив);
+
+ Варианты = ЮТест.Варианты("Значение")
+ .Добавить(Массив)
+ .Добавить(Структура)
+ .Добавить(Соответствие)
+ .Добавить(Новый ФиксированныйМассив(Массив))
+ .Добавить(Новый ФиксированнаяСтруктура(Структура))
+ .Добавить(Новый ФиксированноеСоответствие(Соответствие))
+ .СписокВариантов();
+
+ Для Каждого Вариант Из Варианты Цикл
+
+ Описание = Строка(ТипЗнч(Вариант.Значение));
+
+ ЮТест.ОжидаетЧто(ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Вариант.Значение, Вариант.Значение), Описание)
+ .ЭтоИстина();
+
+ КонецЦикла;
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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.mdo"
similarity index 83%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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.mdo"
index 5cd2ebf3e..4eb5b28dd 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\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.mdo"
@@ -1,6 +1,6 @@
- ОМ_ЮТСравнениеКлиентСервер
+ ОМ_ЮТСравнениеСлужебныйКлиентСервер
ru
Сравнение клиент сервер
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl"
new file mode 100644
index 000000000..28e5e21ca
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/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.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Процедура ИсполняемыеСценарии() Экспорт
+
+ ЮТТесты
+ .ДобавитьТест("ДобавитьСтроку")
+ .ДобавитьТест("СтрокаСимволов")
+ .ДобавитьТест("СравнитьВерсии")
+ ;
+
+КонецПроцедуры
+
+Процедура ДобавитьСтроку() Экспорт
+
+ Варианты = ЮТест.Варианты("Исходная, Дополнение, Разделитель, Результат")
+ .Добавить("1", "2", "+", "1+2")
+ .Добавить("", "2", "+", "2")
+ .Добавить("1", "", "+", "1")
+ .Добавить(Неопределено, "2", "+", "2")
+ .Добавить("1", "2", Неопределено, "12")
+ .СписокВариантов();
+
+ Для Каждого Вариант Из Варианты Цикл
+
+ Результат = ЮТСтроки.ДобавитьСтроку(Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель);
+
+ Сообщение = СтрШаблон("ДобавитьСтроку(%1, %2, %3)", Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель);
+ ЮТест.ОжидаетЧто(Результат, Сообщение).Равно(Вариант.Результат);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура СтрокаСимволов() Экспорт
+
+ Варианты = ЮТест.Варианты("Символ, Количество, Результат")
+ .Добавить("1", 1, "1")
+ .Добавить("12", 0, "")
+ .Добавить("12", 2, "1212")
+ .СписокВариантов();
+
+ Для Каждого Вариант Из Варианты Цикл
+
+ Результат = ЮТСтроки.СтрокаСимволов(Вариант.Символ, Вариант.Количество);
+ ЮТест.ОжидаетЧто(Результат, СтрШаблон("%1 * %2", Вариант.Символ, Вариант.Количество))
+ .Равно(Вариант.Результат);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура СравнитьВерсии() Экспорт
+
+ Варианты = ЮТест.Варианты("Версия1, Версия2, Результат")
+ .Добавить("1", "1", 0)
+ .Добавить("1.2.3.4", "1.3", -1)
+ .Добавить("1.2.3", "1.2", 1)
+ .Добавить("1.2.3.999", "1.2.3.1", 1)
+ .Добавить("1.2.3.1", "1.2.3.999", -1)
+ .СписокВариантов();
+
+ Для Каждого Вариант Из Варианты Цикл
+
+ Результат = ЮТСтроки.СравнитьВерсии(Вариант.Версия1, Вариант.Версия2);
+ ЮТест.ОжидаетЧто(Результат, СтрШаблон("%1 и %2", Вариант.Версия1, Вариант.Версия2))
+ .Равно(Вариант.Результат);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270.mdo"
new file mode 100644
index 000000000..e11fc26fb
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270.mdo"
@@ -0,0 +1,7 @@
+
+
+ ОМ_ЮТСтроки
+ true
+ true
+ true
+
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 b867b0357..897b0ee02 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"
@@ -48,8 +48,12 @@
.СПараметрами(Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(3, 1, ДопустимыйЗнак.Неотрицательный)))
.СПараметрами(Новый ОписаниеТипов("СправочникСсылка.Банки, ДокументСсылка.Заказ"))
.ДобавитьТест("СлучайноеПредопределенноеЗначение")
+ .ДобавитьТест("СлучайнаяДата")
+ .ДобавитьТест("СлучайноеВремя")
+ .ДобавитьТест("СлучайнаяДатаПосле")
+ .ДобавитьТест("СлучайнаяДатаДо")
;
-
+
КонецПроцедуры
Процедура Удалить() Экспорт
@@ -57,11 +61,7 @@
Ссылки = Новый Массив;
Ссылки.Добавить(ЮТест.Данные().СоздатьЭлемент("Справочники.Банки"));
Ссылки.Добавить(ЮТест.Данные().СоздатьДокумент("Документы.ПриходТовара"));
- Ссылки.Добавить(
- ЮТест.Данные()
- .КонструкторОбъекта("Документы.ПриходТовара")
- .Провести()
- );
+ Ссылки.Добавить(ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара").Провести());
Для Каждого Ссылка Из Ссылки Цикл
@@ -85,7 +85,7 @@
Ключи = "Числа, Строки";
БазоваяСтруктура = Новый Структура(Ключи);
- Значения = Новый Структура(Ключи, ЮТОбщий.ЗначениеВМассиве(1, 2), ЮТОбщий.ЗначениеВМассиве("1", "2"));
+ Значения = Новый Структура(Ключи, ЮТКоллекции.ЗначениеВМассиве(1, 2), ЮТКоллекции.ЗначениеВМассиве("1", "2"));
Результат = ЮТест.Данные().ВариантыПараметров(БазоваяСтруктура, Значения);
@@ -145,9 +145,9 @@
ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи();
ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина;
ПараметрыЗаписи.ДополнительныеСвойства.Вставить(СлучайноеСвойство, СлучайноеЗначение);
-
- ПараметрыМетода = ЮТОбщий.ЗначениеВМассиве(
- ТестируемыйМенеджер, Неопределено, ПараметрыЗаписи);
+
+ ПараметрыМетода = ЮТКоллекции.ЗначениеВМассиве(
+ ТестируемыйМенеджер, Неопределено, ПараметрыЗаписи);
Если НЕ ЭтоСозданиеДокумента Тогда
ПараметрыМетода.Вставить(1, "Тестовое наименование");
@@ -173,7 +173,7 @@
ЮТест.ОжидаетЧто(Проверка)
.Метод("Вставить").Параметр(Идентификатор)
- .НеВыбрасываетИсключение(, "Сформирован не валидный идентификатор: " + Идентификатор);
+ .НеВыбрасываетИсключение( , "Сформирован не валидный идентификатор: " + Идентификатор);
КонецЦикла;
@@ -197,10 +197,9 @@
ЗаменяемыеЗначения.Вставить("Поставщик 1", Поставщик);
ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C11",
- ОписанияТипов,
- КэшЗначений,
- ЗаменяемыеЗначения
- );
+ ОписанияТипов,
+ КэшЗначений,
+ ЗаменяемыеЗначения);
// Проверка поведения и результатов
@@ -226,7 +225,7 @@
.Свойство("[2].Товар.Описание").Заполнено()
.Свойство("[2].Количество").Равно(1)
.Свойство("[2].Цена").Равно(1000000)
- ;
+ ;
#Иначе
Ютест.ОжидаетЧто(ТаблицаРезультатов)
.ИмеетТип("Массив")
@@ -243,7 +242,7 @@
.Свойство("[1].Цена").Равно(1500.2)
.Свойство("[2].Количество").Равно(1)
.Свойство("[2].Цена").Равно(1000000)
- ;
+ ;
#КонецЕсли
КонецПроцедуры
@@ -257,7 +256,7 @@
.Добавить(ИмяМакета, "По имени макета")
.Добавить(Макет, "Из текстового документа")
.Добавить(Макет.ПолучитьТекст(), "Из строки")
- ;
+ ;
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
@@ -269,10 +268,7 @@
// Вызов тестируемого сценария
- ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета(
- Вариант.Данные,
- ОписанияТипов
- );
+ ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета(Вариант.Данные, ОписанияТипов);
// Проверка поведения и результатов
@@ -327,8 +323,8 @@
Ютест.ОжидаетЧто(ТаблицаРезультатов)
.ИмеетДлину(3)
.Свойство("Колонки").ИмеетДлину(2)
- .Содержит("Период")
- .Содержит("Количество")
+ .Содержит("Период")
+ .Содержит("Количество")
;
#Иначе
Ютест.ОжидаетЧто(ТаблицаРезультатов)
@@ -337,8 +333,7 @@
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.ИмеетДлину(2)
.ИмеетСвойство("Период")
- .ИмеетСвойство("Количество")
- )
+ .ИмеетСвойство("Количество"))
;
#КонецЕсли
КонецПроцедуры
@@ -358,7 +353,9 @@
.ВыбрасываетИсключение("Укажите описание загружаемых колонок (ОписанияТипов)");
ОжидаемоеСообщение = СтрШаблон("Некорректный тип параметра `ОписанияТипов` метода `ЮТТестовыеДанные.ЗагрузитьИзМакета`. Метод принимает `%1, %2`, а получили `%3` (1)",
- Тип("Соответствие"), Тип("Структура"), Тип("Число"));
+ Тип("Соответствие"),
+ Тип("Структура"),
+ Тип("Число"));
ЮТест.ОжидаетЧто(ЮТест.Данные())
.Метод("ЗагрузитьИзМакета")
.Параметр("ОбщийМакет.ЮТ_ТестовыеДанныеMarkdown")
@@ -388,7 +385,7 @@
.Метод("ЗагрузитьИзМакета")
.Параметр("ОбщийМакет.ЮТ_МакетТестовыхДанных.ОсновнаяТаблица")
.Параметр(Новый Структура("Цена", Новый ОписаниеТипов("Дата")))
- .ВыбрасываетИсключение(ОжидаемоеСообщение+ ": ОсновнаяТаблица");
+ .ВыбрасываетИсключение(ОжидаемоеСообщение + ": ОсновнаяТаблица");
КонецПроцедуры
@@ -403,9 +400,8 @@
КэшЗначений = Неопределено;
ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C11",
- ОписанияТипов,
- КэшЗначений
- );
+ ОписанияТипов,
+ КэшЗначений);
ОписанияТипов = Новый Соответствие;
ОписанияТипов.Вставить("Период", Новый ОписаниеТипов("Дата"));
@@ -416,9 +412,8 @@
ОписанияТипов.Вставить("Сумма", Новый ОписаниеТипов("Число"));
ОжидаемыеЗначения = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R8C1:R11C6",
- ОписанияТипов,
- КэшЗначений
- );
+ ОписанияТипов,
+ КэшЗначений);
ЮТест.ОжидаетЧто(КэшЗначений).НеРавно(Неопределено);
@@ -438,7 +433,7 @@
ПараметрыСозданияОбъектов = ЮТФабрика.ПараметрыСозданияОбъектов();
ПараметрыСозданияОбъектов.ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина;
- Параметры = ЮТОбщий.ЗначениеВМассиве("ОбщийМакет.ЮТ_МакетТестовыхДанных.R14C1:R16C3", ОписанияТипов, Неопределено, Неопределено, ПараметрыСозданияОбъектов);
+ Параметры = ЮТКоллекции.ЗначениеВМассиве("ОбщийМакет.ЮТ_МакетТестовыхДанных.R14C1:R16C3", ОписанияТипов, Неопределено, Неопределено, ПараметрыСозданияОбъектов);
ЮТест.ОжидаетЧто(ЮТест.Данные())
.Метод("ЗагрузитьИзМакета", Параметры)
.НеВыбрасываетИсключение();
@@ -497,13 +492,13 @@
ЮТест.ОжидаетЧто(ЮТест.Данные().СлучайныйНомерТелефона())
.ИмеетТип("Строка")
.ИмеетДлину(16)
- ;
+ ;
ЮТест.ОжидаетЧто(ЮТест.Данные().СлучайныйНомерТелефона("997"))
.ИмеетТип("Строка")
.ИмеетДлину(18)
.НачинаетсяС("+997")
- ;
+ ;
КонецПроцедуры
@@ -531,4 +526,81 @@
КонецПроцедуры
+Процедура СлучайнаяДата() Экспорт
+
+ Варианты = ЮТест.Варианты("Начало, Окончание")
+ .Добавить('20000101', '20000101')
+ .Добавить('20000101', '20000102')
+ .Добавить('20000101', '20000101235959')
+ .Добавить('20000101', '20000101010000')
+ .Добавить('20000101', '20000101000001');
+
+ Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
+
+ Результат = ЮТТестовыеДанные.СлучайнаяДата(Вариант.Начало, Вариант.Окончание);
+
+ ЮТест.ОжидаетЧто(Результат)
+ .ИмеетТип("Дата")
+ .МеждуВключаяГраницы(Вариант.Начало, Вариант.Окончание);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура СлучайноеВремя() Экспорт
+
+ Для Инд = 1 По 50 Цикл
+
+ Результат = ЮТТестовыеДанные.СлучайноеВремя();
+
+ ЮТест.ОжидаетЧто(Результат)
+ .ИмеетТип("Дата")
+ .МеждуВключаяГраницы('00010101000000', '00010101235959');
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура СлучайнаяДатаПосле() Экспорт
+
+ Варианты = ЮТест.Варианты("Начало, Интервал, ТипИнтервала, Максимум")
+ .Добавить('20000101', 1, "час", '20000101010000')
+ .Добавить('20000101', 7, "дней", '20000108')
+ .Добавить('20000101', 12, "месяцев", '20010101')
+ .Добавить('20000101', 3, "секунды", '20000101000003')
+ .Добавить('20000101', Неопределено, Неопределено, '39991231');
+
+ Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
+
+ Результат = ЮТТестовыеДанные.СлучайнаяДатаПосле(Вариант.Начало, Вариант.Интервал, Вариант.ТипИнтервала);
+
+ ЮТест.ОжидаетЧто(Результат)
+ .ИмеетТип("Дата")
+ .МеждуВключаяОкончаниеГраницы(Вариант.Начало, Вариант.Максимум);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура СлучайнаяДатаДо() Экспорт
+
+ Варианты = ЮТест.Варианты("Дата, Интервал, ТипИнтервала, Минимум")
+ .Добавить('20010101', 1, "час", '20001231230000')
+ .Добавить('20010101', 7, "дней", '20001225')
+ .Добавить('20010101', 12, "месяцев", '20000101')
+ .Добавить('20010101', 3, "секунды", '20001231235957')
+ .Добавить('20010101', Неопределено, Неопределено, '00010101');
+
+ Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
+
+ Результат = ЮТТестовыеДанные.СлучайнаяДатаДо(Вариант.Дата, Вариант.Интервал, Вариант.ТипИнтервала);
+
+ ЮТест.ОжидаетЧто(Результат)
+ .ИмеетТип("Дата")
+ .МеждуВключаяНачалоГраницы(Вариант.Минимум, Вариант.Дата);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
#КонецОбласти
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\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.mdo" "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\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.mdo"
index e97e61ef0..819366972 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\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.mdo"
+++ "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\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.mdo"
@@ -3,7 +3,7 @@
ОМ_ЮТТестовыеДанные
ru
- О м тестовые данные
+ Тестовые данные
true
true
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/\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.mdo" "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/\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.mdo"
index a28f43198..b5bcfd85e 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/\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.mdo"
+++ "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/\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.mdo"
@@ -3,7 +3,7 @@
ОМ_ЮТТестовыеДанныеСлужебный
ru
- О м тестовые данные служебный
+ Тестовые данные служебный
true
true
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl"
index ff7f461dc..dae584987 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/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.
@@ -22,14 +22,21 @@
ЮТТесты
.ДобавитьТест("СПараметрами")
+ .ДобавитьТест("Представление")
+ .ДобавитьТест("СПараметрамиНаКлиенте")
+ .ДобавитьТест("СПараметрамиНаСервере")
;
КонецПроцедуры
Процедура ПередКаждымТестом() Экспорт
- ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля();
- ЮТТесты.ПередЧтениемСценариевМодуля(ОписаниеМодуля);
+ ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля();
+ ОписаниеМодуля.КлиентУправляемоеПриложение = Истина;
+ ОписаниеМодуля.КлиентОбычноеПриложение = Истина;
+ ОписаниеМодуля.Сервер = Истина;
+
+ ЮТТестыСлужебный.ПередЧтениемСценариевМодуля(ОписаниеМодуля);
КонецПроцедуры
@@ -44,7 +51,7 @@
.СПараметрами(3)
;
- ЮТест.ОжидаетЧто(Контекст().ТекущийНабор.Тесты)
+ ЮТест.ОжидаетЧто(ТестыТекущегоНабора())
.ИмеетДлину(5)
.Свойство("[0].Параметры").ЭтоНеопределено()
.Свойство("[1].Параметры").ИмеетДлину(3)
@@ -58,13 +65,89 @@
КонецПроцедуры
+Процедура Представление() Экспорт
+
+ ЮТТесты
+ .ДобавитьТестовыйНабор("Набор1").Представление("Представление набора")
+ .ДобавитьТест("Тест1").Представление("Представление теста")
+ .ДобавитьТест("Тест2")
+ .СПараметрами(1).Представление("Представление теста 2", Истина)
+ .СПараметрами(2).Представление("Представление теста 3")
+ ;
+
+ ЮТест.ОжидаетЧто(ТекущийНабор())
+ .Свойство("Представление").Равно("Представление набора")
+ .Свойство("Тесты[0].Представление").Равно("Представление теста")
+ .Свойство("Тесты[1].Представление").Равно("Тест2. Представление теста 2")
+ .Свойство("Тесты[2].Представление").Равно("Представление теста 3");
+
+КонецПроцедуры
+
+Процедура СПараметрамиНаКлиенте() Экспорт
+
+ КонтекстыВызова = ЮТФабрика.КонтекстыВызова();
+ ЮТТесты
+ .ДобавитьКлиентскийТест("Тест1")
+ .СПараметрамиНаКлиенте(1)
+ .ДобавитьТест("Тест2")
+ .СПараметрамиНаКлиенте(1, 2, 3)
+ .СПараметрами(2)
+ ;
+
+ ЮТест.ОжидаетЧто(ТестыТекущегоНабора())
+ .ИмеетДлину(3)
+ .Свойство("[0].Параметры").ИмеетДлину(1)
+ .Свойство("[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(КонтекстыВызова.КлиентУправляемоеПриложение, КонтекстыВызова.КлиентОбычноеПриложение))
+ .Свойство("[1].Параметры").ИмеетДлину(3)
+ .Свойство("[1].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(КонтекстыВызова.КлиентУправляемоеПриложение, КонтекстыВызова.КлиентОбычноеПриложение))
+ .Свойство("[2].КонтекстВызова").ИмеетДлину(3)
+ ;
+
+ ЮТест.ОжидаетЧто(ЮТТесты.ДобавитьСерверныйТест("Тест3"))
+ .Метод("СПараметрамиНаКлиенте").Параметр(1)
+ .ВыбрасываетИсключение("Не пересекаются контексты базового теста [Сервер] и устанавливаемые [КлиентУправляемоеПриложение, КлиентОбычноеПриложение]");
+
+КонецПроцедуры
+
+Процедура СПараметрамиНаСервере() Экспорт
+
+ КонтекстыВызова = ЮТФабрика.КонтекстыВызова();
+ ЮТТесты
+ .ДобавитьСерверныйТест("Тест1")
+ .СПараметрамиНаСервере(1)
+ .ДобавитьТест("Тест2")
+ .СПараметрамиНаСервере(1, 2, 3)
+ .СПараметрами(2)
+ ;
+
+ ЮТест.ОжидаетЧто(ТестыТекущегоНабора())
+ .ИмеетДлину(3)
+ .Свойство("[0].Параметры").ИмеетДлину(1)
+ .Свойство("[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(КонтекстыВызова.Сервер))
+ .Свойство("[1].Параметры").ИмеетДлину(3)
+ .Свойство("[1].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(КонтекстыВызова.Сервер))
+ .Свойство("[2].КонтекстВызова").ИмеетДлину(3)
+ ;
+
+ ЮТест.ОжидаетЧто(ЮТТесты.ДобавитьКлиентскийТест("Тест3"))
+ .Метод("СПараметрамиНаСервере").Параметр(1)
+ .ВыбрасываетИсключение("Не пересекаются контексты базового теста [КлиентУправляемоеПриложение, КлиентОбычноеПриложение] и устанавливаемые [Сервер]");
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
-Функция Контекст()
+Функция ТекущийНабор()
+
+ Возврат ЮТТестыСлужебный.Контекст().ТекущийНабор;
+
+КонецФункции
+
+Функция ТестыТекущегоНабора()
- Возврат ЮТКонтекст.ЗначениеКонтекста("КонтекстРегистрацияТестов");
+ Возврат ТекущийНабор().Тесты;
КонецФункции
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213.mdo"
index 68ed1e0c4..d49636f94 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213.mdo"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\321\213.mdo"
@@ -3,7 +3,7 @@
ОМ_ЮТТесты
ru
- О м ЮТТесты
+ Тесты
true
true
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\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/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\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 33cd91d17..256023aa8 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\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/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\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"
@@ -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.
@@ -37,8 +37,8 @@
.СПараметрами(Новый ОписаниеТипов("Число, Дата"), Истина)
.СПараметрами(Новый ОписаниеТипов("Число, ПеречислениеСсылка.PushУведомления, Дата"), Ложь)
.ДобавитьТест("ЭтоКоллекцияПримитивныхТипов")
- .СПараметрами(ЮТОбщий.ЗначениеВМассиве(Тип("Строка"), Тип("Дата")), Истина)
- .СПараметрами(ЮТОбщий.ЗначениеВМассиве(Тип("Строка"), Тип("Дата"), Тип("ПеречислениеСсылка.PushУведомления")), Ложь)
+ .СПараметрами(ЮТКоллекции.ЗначениеВМассиве(Тип("Строка"), Тип("Дата")), Истина)
+ .СПараметрами(ЮТКоллекции.ЗначениеВМассиве(Тип("Строка"), Тип("Дата"), Тип("ПеречислениеСсылка.PushУведомления")), Ложь)
.ДобавитьТест("ИдентификаторТипа")
.СПараметрами("Дата")
.СПараметрами("Строка")
@@ -59,7 +59,7 @@
.СПараметрами("ОбъектXDTO")
.СПараметрами("ОбъектМетаданных")
;
-
+
КонецПроцедуры
Процедура ЭтоСистемноеПеречисление(Тип, ОжидаемыйРезультат) Экспорт
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 de1400e60..a6403d1e4 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"
@@ -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.
@@ -77,7 +77,15 @@
.ДобавитьТест("ЛюбойЭлементСоответствуетПредикату")
.ДобавитьТест("СодержитПредикат")
.ДобавитьТест("НеСодержитПредикат")
- .ДобавитьТест("ФорматированныеСтроки")
+ .ДобавитьТест("ФорматированныеСтроки");
+
+ Массив = ЮТКоллекции.ЗначениеВМассиве(0, 1, "2");
+ Список = Новый СписокЗначений();
+ Список.ЗагрузитьЗначения(Массив);
+
+ ЮТТесты.ДобавитьТест("ВСписке")
+ .СПараметрами(Массив)
+ .СПараметрами(Список)
;
КонецПроцедуры
@@ -86,12 +94,12 @@
ЮТУтверждения.Что(1, "Проверяемый контекст");
- ДанныеКонтекста = ЮТКонтекст.КонтекстПроверки();
+ ДанныеКонтекста = ЮТКонтекстСлужебный.КонтекстПроверки();
ЮТУтверждения.Что(ДанныеКонтекста, "Контекст утверждений")
.Свойство("ПрефиксОшибки").Равно("Проверяемый контекст")
.Свойство("ИмяМетода").Равно("");
-
+
КонецПроцедуры
Процедура Свойство() Экспорт
@@ -101,22 +109,22 @@
ЮТУтверждения.Что(Объект)
.ИмеетТип("Структура");
-
- ДанныеКонтекста = ЮТКонтекст.КонтекстПроверки();
+
+ ДанныеКонтекста = ЮТКонтекстСлужебный.КонтекстПроверки();
ЮТУтверждения.Что(ДанныеКонтекста, "Свойство не установлено")
.Свойство("ОбъектПроверки.ИмяСвойства").Равно(Неопределено);
ЮТУтверждения.Что(Объект)
.Свойство("Примитив");
- ДанныеКонтекста = ЮТКонтекст.КонтекстПроверки();
+ ДанныеКонтекста = ЮТКонтекстСлужебный.КонтекстПроверки();
ЮТУтверждения.Что(ДанныеКонтекста, "Свойство установлено")
.Свойство("ОбъектПроверки.ИмяСвойства").Равно("Примитив");
ЮТУтверждения.Что(Объект)
.Свойство("Объект.Первый");
- ДанныеКонтекста = ЮТКонтекст.КонтекстПроверки();
+ ДанныеКонтекста = ЮТКонтекстСлужебный.КонтекстПроверки();
ЮТУтверждения.Что(ДанныеКонтекста, "Составное свойство")
.Свойство("ОбъектПроверки.ИмяСвойства").Равно("Объект.Первый");
@@ -179,7 +187,7 @@
КонецПопытки;
ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `Структура` содержит свойство `Объект.Нулевой`, но это не так");
- Объект = ЮТОбщий.ЗначениеВМассиве("1", "2", "3");
+ Объект = ЮТКоллекции.ЗначениеВМассиве("1", "2", "3");
ЮТУтверждения.Что(Объект, "Проверка элементов массива")
.Элемент(0).Равно("1")
.Элемент(1).Равно("2")
@@ -189,13 +197,13 @@
.Свойство("[-1]").Равно("3")
.НетСвойства(3)
.НетСвойства("[3]");
-
- Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2)));
+
+ Объект.Добавить(Новый Структура("Первый, Второй", 1, ЮТКоллекции.ЗначениеВМассиве(2)));
ЮТУтверждения.Что(Объект, "Проверка свойства элемента массива")
.Свойство("[3].Первый").Равно(1)
.Свойство("[3].Второй[-1]").Равно(2)
.Свойство("[3].Второй[0]").Равно(2);
-
+
Ссылка = Ютест.Данные().СоздатьЭлемент("Справочники.Товары");
Объект = Новый Соответствие();
Объект.Вставить(Ссылка, 1);
@@ -217,7 +225,7 @@
.Свойство("Структура").Равно(ВложеннаяСтруктура)
.НетСвойства("Число")
.Равно(Объект);
-
+
Попытка
Ошибка = Неопределено;
ЮТест.ОжидаетЧто(Объект)
@@ -231,7 +239,7 @@
Процедура ИмеетСвойство() Экспорт
- Объект = Новый Структура("Примитив, Объект", 1, Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2, 3)));
+ Объект = Новый Структура("Примитив, Объект", 1, Новый Структура("Первый, Второй", 1, ЮТКоллекции.ЗначениеВМассиве(2, 3)));
ЮТУтверждения.Что(Объект)
.ИмеетСвойство("Примитив")
@@ -243,7 +251,7 @@
.ИмеетСвойство("Первый")
.ИмеетСвойство("Второй[0]")
.ИмеетСвойство("Второй[1]")
- ;
+ ;
Попытка
Ошибка = Неопределено;
@@ -258,7 +266,7 @@
Процедура НеИмеетСвойства() Экспорт
- Объект = Новый Структура("Примитив, Объект", 1, Новый Структура("Первый, Второй", 1, ЮТОбщий.ЗначениеВМассиве(2, 3)));
+ Объект = Новый Структура("Примитив, Объект", 1, Новый Структура("Первый, Второй", 1, ЮТКоллекции.ЗначениеВМассиве(2, 3)));
ЮТУтверждения.Что(Объект)
.НеИмеетСвойства("Первый")
@@ -282,7 +290,7 @@
ЮТУтверждения.Что(ОМ_ЮТУтверждения, "Контекст метода")
.Метод("МетодБезИсключение");
- Контекст = ЮТКонтекст.КонтекстПроверки();
+ Контекст = ЮТКонтекстСлужебный.КонтекстПроверки();
ЮТУтверждения.Что(Контекст)
.Свойство("ПрефиксОшибки").Равно("Контекст метода")
.Свойство("ИмяМетода").Равно("МетодБезИсключение")
@@ -291,7 +299,7 @@
ЮТУтверждения.Что(ОМ_ЮТУтверждения, "Контекст метода с параметрами")
.Метод("МетодБезИсключение", Новый Массив(1));
- Контекст = ЮТКонтекст.КонтекстПроверки();
+ Контекст = ЮТКонтекстСлужебный.КонтекстПроверки();
ЮТУтверждения.Что(Контекст)
.Свойство("ПрефиксОшибки").Равно("Контекст метода с параметрами")
.Свойство("ИмяМетода").Равно("МетодБезИсключение")
@@ -515,7 +523,7 @@
// Негативные тесты
Попытка
- ЮТУтверждения.Что(1=1)
+ ЮТУтверждения.Что(1 = 1)
.НеРавно(Истина);
Ошибка = Неопределено;
Исключение
@@ -547,11 +555,11 @@
.Больше("")
.Больше("Слов")
.Больше("А");
-
+
ЮТУтверждения.Что(ТекущаяДата())
.Больше('20200101')
.Больше('00010101');
-
+
// Негативные тесты
Попытка
Ошибка = Неопределено;
@@ -634,16 +642,16 @@
.БольшеИлиРавно("")
.БольшеИлиРавно("Слов")
.БольшеИлиРавно("Слово");
-
+
ЮТУтверждения.Что('20200102')
.БольшеИлиРавно('20200102')
.БольшеИлиРавно('20200101')
.БольшеИлиРавно('00010101');
-
+
// Негативные тесты
Попытка
Ошибка = Неопределено;
- ЮТУтверждения.Что(10)
+ ЮТУтверждения.Что(10)
.БольшеИлиРавно(100)
Исключение
Ошибка = ИнформацияОбОшибке();
@@ -740,8 +748,8 @@
Попытка
Ошибка = Неопределено;
- ЮТУтверждения.Что("Б")
- .Меньше("Б")
+ ЮТУтверждения.Что("Б")
+ .Меньше("Б")
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
@@ -749,8 +757,8 @@
Попытка
Ошибка = Неопределено;
- ЮТУтверждения.Что("В")
- .Меньше("Б")
+ ЮТУтверждения.Что("В")
+ .Меньше("Б")
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
@@ -758,8 +766,8 @@
Попытка
Ошибка = Неопределено;
- ЮТУтверждения.Что('20200101')
- .Меньше('20200101')
+ ЮТУтверждения.Что('20200101')
+ .Меньше('20200101')
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
@@ -767,8 +775,8 @@
Попытка
Ошибка = Неопределено;
- ЮТУтверждения.Что('20200102')
- .Меньше('20200101')
+ ЮТУтверждения.Что('20200102')
+ .Меньше('20200101')
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
@@ -1045,7 +1053,7 @@
КонецПопытки;
ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `<Пустое значение, Тип: Null>` является неопределено, но это не так");
ПроверитьДанныеОшибкиСравнения(Null, Неопределено);
-
+
Попытка
Ошибка = Неопределено;
ЮТУтверждения.Что("", "Пустая строка")
@@ -1133,7 +1141,7 @@
КонецПопытки;
ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `<Пустое значение, Тип: Null>` не является null, но это не так");
ПроверитьДанныеОшибкиСравнения(Null, Null);
-
+
КонецПроцедуры
Процедура ИмеетТип() Экспорт
@@ -1222,10 +1230,10 @@
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Не верный тип ожидаемого значения (`%1`), должен быть `%2, %3, %4`",
- Тип("Неопределено"),
- Тип("Строка"),
- Тип("Тип"),
- Тип("ОписаниеТипов")));
+ Тип("Неопределено"),
+ Тип("Строка"),
+ Тип("Тип"),
+ Тип("ОписаниеТипов")));
Попытка
Ошибка = Неопределено;
@@ -1247,9 +1255,9 @@
.Содержит(123)
.Содержит("1")
.Содержит("21");
- ЮТУтверждения.Что(ЮТОбщий.ЗначениеВМассиве("1", "2"))
+ ЮТУтверждения.Что(ЮТКоллекции.ЗначениеВМассиве("1", "2"))
.Содержит("1");
- ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТОбщий.ЗначениеВМассиве("1", "2")))
+ ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТКоллекции.ЗначениеВМассиве("1", "2")))
.Содержит("1")
.Содержит("2");
ЮТУтверждения.Что(Новый Структура("Ключ", "1"))
@@ -1263,7 +1271,7 @@
.Содержит("1");
ЮТУтверждения.Что(Новый ФиксированноеСоответствие(Соответствие))
.Содержит("1");
-
+
Список = Новый СписокЗначений();
Список.Добавить("1", "2");
ЮТУтверждения.Что(Список)
@@ -1284,7 +1292,7 @@
Попытка
Ошибка = Неопределено;
- ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТОбщий.ЗначениеВМассиве("1", "2")))
+ ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТКоллекции.ЗначениеВМассиве("1", "2")))
.Содержит("1+1");
Исключение
Ошибка = ИнформацияОбОшибке();
@@ -1326,10 +1334,10 @@
ЮТУтверждения.Что("123321", "Строка")
.НеСодержит("0")
.НеСодержит(Новый Структура);
- ЮТУтверждения.Что(ЮТОбщий.ЗначениеВМассиве("1", "2"), "Массив")
+ ЮТУтверждения.Что(ЮТКоллекции.ЗначениеВМассиве("1", "2"), "Массив")
.НеСодержит(1)
.НеСодержит("3");
- ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТОбщий.ЗначениеВМассиве("1", "2")), "ФиксированныйМассив")
+ ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТКоллекции.ЗначениеВМассиве("1", "2")), "ФиксированныйМассив")
.НеСодержит(1)
.НеСодержит("3");
ЮТУтверждения.Что(Новый Структура("Ключ", "1"), "Структура")
@@ -1347,7 +1355,7 @@
ЮТУтверждения.Что(Новый ФиксированноеСоответствие(Соответствие))
.НеСодержит(1)
.НеСодержит("2");
-
+
Список = Новый СписокЗначений();
Список.Добавить("1", "2");
ЮТУтверждения.Что(Список)
@@ -1376,7 +1384,7 @@
Попытка
Ошибка = Неопределено;
- ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТОбщий.ЗначениеВМассиве("1", "2")))
+ ЮТУтверждения.Что(Новый ФиксированныйМассив(ЮТКоллекции.ЗначениеВМассиве("1", "2")))
.НеСодержит("1");
Исключение
Ошибка = ИнформацияОбОшибке();
@@ -1400,7 +1408,7 @@
ЮТУтверждения.Что("123321")
.СодержитСтрокуПоШаблону("\d{3}")
.СодержитСтрокуПоШаблону(".{6}")
- ;
+ ;
// Негативные тесты
Попытка
@@ -1416,12 +1424,12 @@
КонецПроцедуры
Процедура НеСодержитСтрокуПоШаблону() Экспорт
-
+
// Позитивные тесты
ЮТУтверждения.Что("123321")
.НеСодержитСтрокуПоШаблону("\D{3}")
.НеСодержитСтрокуПоШаблону(".{7}")
- ;
+ ;
// Негативные тесты
Попытка
@@ -1581,7 +1589,7 @@
МалоПараметров = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Not enough actual parameters", "Недостаточно фактических параметров");
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение", 2))
+ .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение", 2))
.ВыбрасываетИсключение(МногоПараметров);
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
@@ -1593,7 +1601,7 @@
.ВыбрасываетИсключение(МетодНеОбнаружен);
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
+ .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение"))
.ВыбрасываетИсключение("Исключение");
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
@@ -1650,19 +1658,19 @@
// Позитивные тесты
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
+ .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение"))
.НеВыбрасываетИсключение()
.НеВыбрасываетИсключение("Ожидаемое исключение");
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
+ .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение"))
.НеВыбрасываетИсключение("Ожидаемое исключение");
// Негативные тесты
Попытка
Ошибка = Неопределено;
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодИсключение", ЮТОбщий.ЗначениеВМассиве("Ожидаемое исключение"))
+ .Метод("МетодИсключение", ЮТКоллекции.ЗначениеВМассиве("Ожидаемое исключение"))
.НеВыбрасываетИсключение("исключение");
Исключение
Ошибка = ИнформацияОбОшибке();
@@ -1697,14 +1705,14 @@
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
ПроверитьОшибкуИсполнения(Ошибка, "ИмяМетода не заполнено в контексте. Воспользуйтесь предварительно методом интерфейса `Метод(ИмяМетода)`");
-
+
КонецПроцедуры
Процедура ИмеетМетод() Экспорт
ЮТест.ОжидаетЧто(ОМ_ЮТУтверждения)
.ИмеетМетод("МетодИсключение");
-
+
Попытка
Ошибка = Неопределено;
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
@@ -1728,7 +1736,7 @@
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
.Метод("ЗаписатьОбъект").Параметр(Объект)
- .НеВыбрасываетИсключение(, , Истина);
+ .НеВыбрасываетИсключение( , , Истина);
ЮТест.ОжидаетЧто(Объект)
.Свойство("Ссылка").НеЗаполнено();
@@ -1782,7 +1790,7 @@
Процедура СравнениеСложныхОбъектов() Экспорт
Варианты = Новый Массив();
- МассивЗначений = ЮТОбщий.ЗначениеВМассиве(1, "2");
+ МассивЗначений = ЮТКоллекции.ЗначениеВМассиве(1, "2");
Варианты.Добавить(Новый Структура("Значение, Описание", Новый Структура("Поле1, Поле2, Коллекция", 1, "2", МассивЗначений), "Структура с массивом"));
Варианты.Добавить(Новый Структура("Значение, Описание", Новый Структура("Поле1, Поле2", 1, "2"), "Структура примитивов"));
Варианты.Добавить(Новый Структура("Значение, Описание", МассивЗначений, "Массив примитивов"));
@@ -1805,8 +1813,8 @@
Попытка
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
- .НеВыбрасываетИсключение(, , Истина)
+ .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение"))
+ .НеВыбрасываетИсключение( , , Истина)
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
@@ -1815,8 +1823,8 @@
Попытка
ЮТУтверждения.Что(ОМ_ЮТУтверждения)
- .Метод("МетодБезИсключение", ЮТОбщий.ЗначениеВМассиве("Исключение"))
- .ВыбрасываетИсключение(, , Истина)
+ .Метод("МетодБезИсключение", ЮТКоллекции.ЗначениеВМассиве("Исключение"))
+ .ВыбрасываетИсключение( , , Истина)
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
@@ -2088,13 +2096,13 @@
Ключи = "Строка, Число, Дата, Коллекция";
Эталон = Новый Структура(Ключи, ЮТест.Данные().СлучайнаяСтрока(), ЮТест.Данные().СлучайноеЧисло(), ЮТест.Данные().СлучайнаяДата());
- Эталон.Коллекция = ЮТОбщий.ЗначениеВМассиве(1, 2, 3);
+ Эталон.Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3);
Объект = Новый Структура(Ключи);
ЗаполнитьЗначенияСвойств(Объект, Эталон);
ЮТУтверждения.Что(Объект).ИмеетСвойстваРавные(Эталон, "Копия");
- Объект.Коллекция = ЮТОбщий.ЗначениеВМассиве(1, 2, 3);
+ Объект.Коллекция = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3);
ЮТУтверждения.Что(Объект).ИмеетСвойстваРавные(Эталон, "Переопределен массив");
Объект.Коллекция.Добавить(4);
@@ -2130,7 +2138,7 @@
КонецПопытки;
ПроверитьОшибкуУтверждения(Ошибка, "проверяемое значение `Запрос` не содержат свойство 'Результат'");
#КонецЕсли
-
+
КонецПроцедуры
Процедура КаждыйЭлементСодержитСвойство() Экспорт
@@ -2225,7 +2233,7 @@
Объект.Вставить("Число", 1);
Объект.Вставить("Строка", "1");
Объект.Вставить("Дата", Дата);
- Объект.Вставить("Массив", ЮТОбщий.ЗначениеВМассиве(1, "1"));
+ Объект.Вставить("Массив", ЮТКоллекции.ЗначениеВМассиве(1, "1"));
ПроверкаЧисла = ЮТест.Предикат().Реквизит("Число").ИмеетТип(Тип("Число")).БольшеИлиРавно(1).МеньшеИлиРавно(10).Получить();
ПроверкаДаты = ЮТест.Предикат().Реквизит("Дата").ИмеетТип(Новый ОписаниеТипов("Дата")).Равно(Дата).Получить();
@@ -2236,7 +2244,7 @@
.ИмеетТип("Структура"))
.СоответствуетПредикату(ПроверкаЧисла)
.СоответствуетПредикату(ПроверкаДаты)
- ;
+ ;
Попытка
Ошибка = Неопределено;
@@ -2271,11 +2279,11 @@
Объект.Вставить("Число", 1);
Объект.Вставить("Строка", "1");
Объект.Вставить("Дата", Дата);
- Объект.Вставить("Массив", ЮТОбщий.ЗначениеВМассиве(1, "1"));
+ Объект.Вставить("Массив", ЮТКоллекции.ЗначениеВМассиве(1, "1"));
Объект2 = ПомощникТестированияВызовСервера.СоздатьКопию(Объект);
- Коллекция = ЮТОбщий.ЗначениеВМассиве(Объект, Объект2);
+ Коллекция = ЮТКоллекции.ЗначениеВМассиве(Объект, Объект2);
Предикаты = ЮТест.Предикат()
.ИмеетТип("Структура")
@@ -2288,8 +2296,8 @@
.Реквизит("Дата").Равно(Дата)
.Реквизит("Массив").ИмеетТип("Массив")
.Реквизит("Массив").ИмеетДлину(2)
- ;
-
+ ;
+
ЮТест.ОжидаетЧто(Коллекция).КаждыйЭлементСоответствуетПредикату(Предикаты);
Попытка
@@ -2307,9 +2315,9 @@
Процедура ЛюбойЭлементСоответствуетПредикату() Экспорт
Дата = '20200220130001';
- Объект = Новый Структура("Число, Строка, Дата, Массив", 1, "2", Дата, ЮТОбщий.ЗначениеВМассиве(3, "1"));
- Объект2 = Новый Структура("Число, Строка, Дата, Массив", 2, "1", Дата, ЮТОбщий.ЗначениеВМассиве(1, "3"));
- Коллекция = ЮТОбщий.ЗначениеВМассиве(Объект, Объект2);
+ Объект = Новый Структура("Число, Строка, Дата, Массив", 1, "2", Дата, ЮТКоллекции.ЗначениеВМассиве(3, "1"));
+ Объект2 = Новый Структура("Число, Строка, Дата, Массив", 2, "1", Дата, ЮТКоллекции.ЗначениеВМассиве(1, "3"));
+ Коллекция = ЮТКоллекции.ЗначениеВМассиве(Объект, Объект2);
ЮТест.ОжидаетЧто(Коллекция).ЛюбойЭлементСоответствуетПредикату(Ютест.Предикат().Реквизит("Число").Равно(2));
ЮТест.ОжидаетЧто(Коллекция).ЛюбойЭлементСоответствуетПредикату(Ютест.Предикат().Реквизит("Число").Равно(1));
@@ -2337,13 +2345,13 @@
Процедура СодержитПредикат() Экспорт
Структура = Новый Структура("Свойство, Свойство2", 1, 2);
- Коллекция = ЮТОбщий.ЗначениеВМассиве("1", 1, Структура);
+ Коллекция = ЮТКоллекции.ЗначениеВМассиве("1", 1, Структура);
ЮТест.ОжидаетЧто(Коллекция)
.Содержит(ЮТест.Предикат().Равно(1), "Предикат из общего модуля")
.Содержит(ЮТест.Предикат().Равно(1).Получить(), "Сохраненный предикат")
.Содержит(ЮТест.Предикат().Реквизит("Свойство").Равно(1), "Проверка свойства")
- ;
+ ;
Ошибка = ОшибкаУтверждения(Коллекция, "Содержит", ЮТест.Предикат().Равно(2));
ПроверитьОшибкуУтверждения(Ошибка, "проверяемое значение `Массив` содержит элемент, значение которого равно `2`");
@@ -2362,19 +2370,29 @@
Процедура НеСодержитПредикат() Экспорт
Структура = Новый Структура("Свойство, Свойство2", 1, 2);
- Коллекция = ЮТОбщий.ЗначениеВМассиве("1", 1, Структура);
+ Коллекция = ЮТКоллекции.ЗначениеВМассиве("1", 1, Структура);
ЮТест.ОжидаетЧто(Коллекция)
.НеСодержит(ЮТест.Предикат().Равно(2), "Предикат из общего модуля")
.НеСодержит(ЮТест.Предикат().Равно(2).Получить(), "Сохраненный предикат")
.НеСодержит(ЮТест.Предикат().Реквизит("Свойство").Равно(2), "Проверка свойства")
- ;
+ ;
Ошибка = ОшибкаУтверждения(Коллекция, "НеСодержит", ЮТест.Предикат().Равно(1));
ПроверитьОшибкуУтверждения(Ошибка, "проверяемое значение `Массив` не содержит элемент, значение которого равно `1`");
КонецПроцедуры
+Процедура ВСписке(Коллекция) Экспорт
+
+ ЮТест.ОжидаетЧто(0)
+ .ВСписке(Коллекция);
+
+ Ошибка = ОшибкаУтверждения(-1, "ВСписке", Коллекция);
+ ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("проверяемое значение `-1` в списке `%1`, но это не так.", Коллекция));
+
+КонецПроцедуры
+
Процедура ФорматированныеСтроки() Экспорт
Строка = Новый ФорматированнаяСтрока("Тестовая строка");
@@ -2388,7 +2406,7 @@
.НеСодержит("число")
.СодержитСтрокуПоШаблону("[\w\W]+")
.НеСодержитСтрокуПоШаблону("\d+")
- ;
+ ;
КонецПроцедуры
@@ -2398,10 +2416,10 @@
Функция ОшибкаУтверждения(ПроверяемоеЗначение, Утверждение, Параметр)
- Параметры = ЮТОбщий.ЗначениеВМассиве(Параметр);
-
+ Параметры = ЮТКоллекции.ЗначениеВМассиве(Параметр);
ЮТест.ОжидаетЧто(ПроверяемоеЗначение);
- Ошибка = ЮТОбщий.ВыполнитьМетод("ЮТУтверждения." + Утверждение, Параметры);
+ Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод("ЮТУтверждения." + Утверждение, Параметры);
+
Возврат Ошибка;
КонецФункции
@@ -2411,22 +2429,22 @@
Если ИнформацияОбОшибке = Неопределено Тогда
Сообщение = СтрШаблон("Ожидали, что возникнет ошибка утверждений [%1]", ОжидаемоеОписание);
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения("", ОжидаемоеОписание);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения("", ОжидаемоеОписание);
ИначеЕсли НЕ СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "[Failed]") Тогда
Сообщение = СтрШаблон("Ожидали поймать ошибку утверждений [%1], а получили ошибку исполнения [%2]", ОжидаемоеОписание, ИнформацияОбОшибке.Описание);
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание);
ИначеЕсли СтрНайти(ИнформацияОбОшибке.Описание, ОжидаемоеОписание) = 0 Тогда
Сообщение = СтрШаблон("Ожидали поймать ошибку [%1], а получили [%2]", ОжидаемоеОписание, ИнформацияОбОшибке.Описание);
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание);
КонецЕсли;
Если ЗначениеЗаполнено(Сообщение) Тогда
- ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(Сообщение);
+ ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(Сообщение);
КонецЕсли;
КонецПроцедуры
@@ -2436,22 +2454,22 @@
Если ИнформацияОбОшибке = Неопределено Тогда
Сообщение = СтрШаблон("Ожидали, что возникнет ошибка исполнения [%1]", ОжидаемоеОписание);
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения("", ОжидаемоеОписание);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения("", ОжидаемоеОписание);
ИначеЕсли НЕ СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "[Broken]") Тогда
Сообщение = СтрШаблон("Ожидали поймать ошибку исполнения [%1], а получили ошибку без модификатора [%2]", ОжидаемоеОписание, ИнформацияОбОшибке.Описание);
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание);
ИначеЕсли СтрНайти(ИнформацияОбОшибке.Описание, ОжидаемоеОписание) = 0 Тогда
Сообщение = СтрШаблон("Ожидали поймать ошибку [%1], а получили [%2]", ОжидаемоеОписание, ИнформацияОбОшибке.Описание);
- ЮТРегистрацияОшибок.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание);
+ ЮТРегистрацияОшибокСлужебный.УстановитьДанныеОшибкиСравнения(ИнформацияОбОшибке.Описание, ОжидаемоеОписание);
КонецЕсли;
Если ЗначениеЗаполнено(Сообщение) Тогда
- ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(Сообщение);
+ ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(Сообщение);
КонецЕсли;
КонецПроцедуры
@@ -2467,7 +2485,7 @@
ОжидаемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ОжидаемоеЗначение);
ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение);
- ДанныеОшибки = ЮТКонтекст.КонтекстОшибки();
+ ДанныеОшибки = ЮТРегистрацияОшибокСлужебный.КонтекстОшибки();
Сообщение = Неопределено;
@@ -2484,7 +2502,7 @@
КонецЕсли;
Если ЗначениеЗаполнено(Сообщение) Тогда
- ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(Сообщение);
+ ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(Сообщение);
КонецЕсли;
КонецПроцедуры
@@ -2492,7 +2510,7 @@
Процедура ПроверитьДанныеОшибкиУтверждения(Знач ПроверяемоеЗначение)
ПроверяемоеЗначение = ЮТОбщий.ПредставлениеЗначения(ПроверяемоеЗначение);
- ДанныеОшибки = ЮТКонтекст.КонтекстОшибки();
+ ДанныеОшибки = ЮТРегистрацияОшибокСлужебный.КонтекстОшибки();
Сообщение = Неопределено;
@@ -2507,7 +2525,7 @@
КонецЕсли;
Если ЗначениеЗаполнено(Сообщение) Тогда
- ЮТРегистрацияОшибок.ВызватьОшибкуПроверки(Сообщение);
+ ЮТРегистрацияОшибокСлужебный.ВызватьОшибкуПроверки(Сообщение);
КонецЕсли;
КонецПроцедуры
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl"
similarity index 68%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl"
rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\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 13a7921b5..cc1127ed4 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/Module.bsl"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\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.
@@ -24,7 +24,7 @@
.ДобавитьТест("ЭтоПодходящееРасширение")
.ДобавитьТест("ЭтоПодходящийМодуль")
.ДобавитьТест("ОтфильтроватьТестовыеНаборы")
- ;
+ ;
КонецПроцедуры
@@ -33,7 +33,7 @@
Варианты = Новый Массив();
Ключи = "ИмяРасширения, Параметры, Результат, Описание";
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве("test", "тесты");
+ Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test", "тесты");
Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс"));
Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр"));
Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второе расширение"));
@@ -44,14 +44,14 @@
Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Без фильтр по расширениям 2"));
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("test.method");
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("test.method");
Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Фильтр по пути"));
Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Фильтр по пути, отпустствующее расширение"));
Для Каждого Вариант Из Варианты Цикл
- ЮТФильтрация.УстановитьКонтекст(Вариант.Параметры);
- Результат = ЮТФильтрация.ЭтоПодходящееРасширение(Вариант.ИмяРасширения);
+ ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры);
+ Результат = ЮТФильтрацияСлужебный.ЭтоПодходящееРасширение(Вариант.ИмяРасширения);
ЮТест.ОжидаетЧто(Результат, Вариант.Описание).Равно(Вариант.Результат);
КонецЦикла;
@@ -65,7 +65,7 @@
РасширениеПоУмолчанию = "__тесты___";
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("test", "тесты");
+ Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты");
Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс"));
Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр"));
Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль"));
@@ -76,48 +76,48 @@
Варианты.Добавить(Новый Структура(Ключи, "_module", Параметры, Истина, "Без фильтр по `_module`"));
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("module");
- Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве(РасширениеПоУмолчанию);
+ Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module");
+ Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию);
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по модулю и по расширению с пересечением"));
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("module");
- Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве("тесты");
+ Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module");
+ Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("тесты");
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по модулю и по расширению без пересечения"));
// Фильтрация по именам тестовых методов
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method");
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста"));
Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Фильтр по имени теста, отсутствующему модулю"));
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method");
- Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве(РасширениеПоУмолчанию);
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
+ Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию);
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по расширению с пересечением"));
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method");
- Параметры.filter.extensions = ЮТОбщий.ЗначениеВМассиве("test");
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
+ Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test");
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по расширению без пересечения"));
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method");
- Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("module");
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
+ Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module");
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по модулю с пересечением"));
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("module.method");
- Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("test");
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
+ Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test");
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по модулю без пересечения"));
Для Каждого Вариант Из Варианты Цикл
- ЮТФильтрация.УстановитьКонтекст(Вариант.Параметры);
- ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля();
+ ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры);
+ ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля();
ОписаниеМодуля.Имя = Вариант.ИмяМодуля;
ОписаниеМодуля.Расширение = РасширениеПоУмолчанию;
- Результат = ЮТФильтрация.ЭтоПодходящийМодуль(ОписаниеМодуля);
+ Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля);
ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат);
КонецЦикла;
@@ -131,7 +131,7 @@
РасширениеПоУмолчанию = "__тесты___";
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.modules = ЮТОбщий.ЗначениеВМассиве("test", "тесты");
+ Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты");
Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс"));
Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр"));
Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль"));
@@ -139,11 +139,11 @@
Для Каждого Вариант Из Варианты Цикл
- ЮТФильтрация.УстановитьКонтекст(Вариант.Параметры);
- ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля();
+ ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры);
+ ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля();
ОписаниеМодуля.Имя = Вариант.ИмяМодуля;
ОписаниеМодуля.Расширение = РасширениеПоУмолчанию;
- Результат = ЮТФильтрация.ЭтоПодходящийМодуль(ОписаниеМодуля);
+ Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля);
ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат);
КонецЦикла;
@@ -155,23 +155,23 @@
// 1
Контексты = ЮТФабрика.КонтекстыВызова();
- ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля();
+ ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля();
ОписаниеМодуля.Имя = "ТестовыйМодуль";
ОписаниеМодуля.Расширение = "ТестовоеРасширение";
ОписаниеМодуля.Сервер = Истина;
ОписаниеМодуля.КлиентУправляемоеПриложение = Истина;
Наборы = Новый Массив();
- Набор = ЮТФабрика.ОписаниеТестовогоНабора("Тесты");
- Тест = ЮТФабрика.ОписаниеТеста("Тест1", "Тест 1", ЮТОбщий.ЗначениеВМассиве(Контексты.Сервер, Контексты.КлиентУправляемоеПриложение));
+ Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора("Тесты");
+ Тест = ЮТФабрикаСлужебный.ОписаниеТеста("Тест1", "Тест 1", ЮТКоллекции.ЗначениеВМассиве(Контексты.Сервер, Контексты.КлиентУправляемоеПриложение));
Набор.Тесты.Добавить(Тест);
Наборы.Добавить(Набор);
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("ТестовыйМодуль.Тест1");
- ЮТФильтрация.УстановитьКонтекст(Параметры);
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1");
+ ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры);
- Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
+ Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
ЮТест.ОжидаетЧто(Результат, "Результат фильтрации")
.Заполнено()
.ИмеетТип("Массив");
@@ -188,10 +188,10 @@
// 2
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер");
- ЮТФильтрация.УстановитьКонтекст(Параметры);
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер");
+ ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры);
- Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
+ Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
ТестРезультата = Результат[0].Тесты[0];
ЮТест.ОжидаетЧто(ТестРезультата, "Тест с указанием контекста")
.Свойство("Имя").Равно(Тест.Имя)
@@ -199,24 +199,23 @@
// 3
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("ТестовыйМодуль.Тест1.ВызовСервера");
- ЮТФильтрация.УстановитьКонтекст(Параметры);
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.ВызовСервера");
+ ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры);
- Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
+ Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
ЮТест.ОжидаетЧто(Результат, "Тест с указаниме недоступного контекста")
.ИмеетДлину(1);
// 4
Параметры = ЮТФабрика.ПараметрыЗапуска();
- Параметры.filter.tests = ЮТОбщий.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер");
- Параметры.filter.contexts = ЮТОбщий.ЗначениеВМассиве(Контексты.КлиентУправляемоеПриложение);
- ЮТФильтрация.УстановитьКонтекст(Параметры);
+ Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер");
+ Параметры.filter.contexts = ЮТКоллекции.ЗначениеВМассиве(Контексты.КлиентУправляемоеПриложение);
+ ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры);
- Результат = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
+ Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
ЮТест.ОжидаетЧто(Результат, "Тест с указаниме контекста и фильтра контекстов")
.ИмеетДлину(0);
КонецПроцедуры
#КонецОбласти
-
diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\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\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
similarity index 77%
rename from "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo"
rename to "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\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\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo"
index e21a7d239..1abc0c707 100644
--- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217.mdo"
+++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\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\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\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/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/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"
similarity index 72%
rename from "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/Module.bsl"
rename to "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 efab0269e..62c3449ec 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/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"
@@ -20,8 +20,8 @@
Процедура ИсполняемыеСценарии() Экспорт
- Контекст = ЮТКонтекст.ДанныеКонтекста();
- Если ЮТОбщий.ЗначениеСтруктуры(Контекст, ИмяРеквизитаПроверки(), Ложь) Тогда
+ Контекст = ЮТКонтекстСлужебный.ДанныеКонтекста();
+ Если ЮТКоллекции.ЗначениеСтруктуры(Контекст, ИмяРеквизитаПроверки(), Ложь) Тогда
ВызватьИсключение "Проверка чтения состава тестов";
КонецЕсли;
@@ -29,10 +29,10 @@
.ДобавитьТест("ИсполняемыеСценарииМодуля")
.ДобавитьТестовыйНабор("ЭтоТестовыйМодуль", "Параметризированный, 1,2")
.ДобавитьТест("ЭтоТестовыйМодуль")
- .СПараметрами("ОМ_ЮТЧитатель", Истина)
+ .СПараметрами("ОМ_ЮТЧитательСлужебный", Истина)
.СПараметрами("ОМ_ЮТУтверждения", Истина)
.СПараметрами("ОМ_Мокито", Истина)
- .СПараметрами("ЮТЧитатель", Ложь)
+ .СПараметрами("ЮТЧитательСлужебный", Ложь)
.ДобавитьТестовыйНабор("ЗагрузкаТестов")
.ДобавитьКлиентскийТест("ЗагрузитьТесты")
.ДобавитьТестовыйНабор("ИсполняемыеСценарииМодуляСОшибкойЧтения")
@@ -45,16 +45,16 @@
ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска();
ПараметрыЗапуска.filter.extensions = Неопределено;
- ПараметрыЗапуска.filter.modules = ЮТОбщий.ЗначениеВМассиве("ОМ_ЮТЧитатель");
+ ПараметрыЗапуска.filter.modules = ЮТКоллекции.ЗначениеВМассиве("ОМ_ЮТЧитательСлужебный");
- Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска);
+ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска);
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы")
.ИмеетТип("Массив")
.ИмеетДлину(1);
НаборМодуля = Наборы[0];
- ЮТест.ОжидаетЧто(НаборМодуля, "Набор тестов ОМ_ЮТЧитатель")
+ ЮТест.ОжидаетЧто(НаборМодуля, "Набор тестов ОМ_ЮТЧитательСлужебный")
.ИмеетТип("Структура")
.Свойство("МетаданныеМодуля").ИмеетТип("Структура")
.Свойство("НаборыТестов").ИмеетТип("Массив");
@@ -63,11 +63,11 @@
ЮТест.ОжидаетЧто(МетаданныеМодуля, "Метаданные модуля")
.Заполнено()
.ИмеетТип("Структура")
- .Свойство("Имя").Равно("ОМ_ЮТЧитатель")
+ .Свойство("Имя").Равно("ОМ_ЮТЧитательСлужебный")
.Свойство("КлиентОбычноеПриложение").Равно(Истина)
.Свойство("КлиентУправляемоеПриложение").Равно(Истина)
.Свойство("ВызовСервера").Равно(Ложь)
- .Свойство("ПолноеИмя").Равно("tests.ОМ_ЮТЧитатель")
+ .Свойство("ПолноеИмя").Равно("tests.ОМ_ЮТЧитательСлужебный")
.Свойство("Сервер").Равно(Ложь);
НаборыТестов = НаборМодуля.НаборыТестов;
@@ -78,8 +78,8 @@
ЮТест.ОжидаетЧто(НаборыТестов[0], "Набор тестов по умолчанию")
.ИмеетТип("Структура")
- .Свойство("Имя").Равно("ОМ_ЮТЧитатель")
- .Свойство("Представление").Равно("ОМ_ЮТЧитатель")
+ .Свойство("Имя").Равно("ОМ_ЮТЧитательСлужебный")
+ .Свойство("Представление").Равно("ОМ_ЮТЧитательСлужебный")
.Свойство("Ошибки").ИмеетТип("Массив").НеЗаполнено()
.Свойство("Теги").ИмеетТип("Массив").НеЗаполнено()
.Свойство("Тесты").ИмеетТип("Массив").ИмеетДлину(1);
@@ -93,29 +93,29 @@
.Свойство("Имя").Равно("ИсполняемыеСценарииМодуля")
.Свойство("Представление").НеЗаполнено()
.Свойство("Теги").Равно(Новый Массив())
- .Свойство("КонтекстВызова").Равно(ЮТОбщий.ЗначениеВМассиве("КлиентУправляемоеПриложение"));
+ .Свойство("КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("КлиентУправляемоеПриложение"));
ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска();
- ПараметрыЗапуска.filter.extensions = ЮТОбщий.ЗначениеВМассиве("tests");
+ ПараметрыЗапуска.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("tests");
- Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска);
+ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска);
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests")
- .ИмеетДлину(29);
+ .ИмеетДлину(33);
КонецПроцедуры
Процедура ИсполняемыеСценарииМодуля() Экспорт
МетаданныеМодуля = Новый Структура;
- МетаданныеМодуля.Вставить("Имя", "ОМ_ЮТЧитатель");
+ МетаданныеМодуля.Вставить("Имя", "ОМ_ЮТЧитательСлужебный");
МетаданныеМодуля.Вставить("КлиентУправляемоеПриложение", Истина);
МетаданныеМодуля.Вставить("КлиентОбычноеПриложение", Истина);
МетаданныеМодуля.Вставить("Клиент", Ложь);
МетаданныеМодуля.Вставить("Сервер", Истина);
МетаданныеМодуля.Вставить("ВызовСервера", Ложь);
- ЮТФильтрация.УстановитьКонтекст(Новый Структура("filter", Новый Структура));
- ОписаниеМодуля = ЮТЧитатель.ИсполняемыеСценарииМодуля(МетаданныеМодуля);
+ ЮТФильтрацияСлужебный.УстановитьКонтекст(Новый Структура("filter", Новый Структура));
+ ОписаниеМодуля = ЮТЧитательСлужебный.ИсполняемыеСценарииМодуля(МетаданныеМодуля);
ЮТест.ОжидаетЧто(ОписаниеМодуля, "ОписаниеМодуля")
.ИмеетТип("Структура")
@@ -132,61 +132,58 @@
НаборЗагрузкаТестов = Сценарии[2];
ЮТест.ОжидаетЧто(НаборПоУмолчанию, "Набор по умолчанию")
- .Свойство("Имя").Равно("ОМ_ЮТЧитатель")
- .Свойство("Представление").Равно("ОМ_ЮТЧитатель")
+ .Свойство("Имя").Равно("ОМ_ЮТЧитательСлужебный")
+ .Свойство("Представление").Равно("ОМ_ЮТЧитательСлужебный")
.Свойство("Теги").ИмеетДлину(0)
.Свойство("Тесты").ИмеетДлину(1)
.Свойство("Тесты[0].Имя").Равно("ИсполняемыеСценарииМодуля")
.Свойство("Тесты[0].Представление").НеЗаполнено()
.Свойство("Тесты[0].Теги").ИмеетДлину(0)
- .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТОбщий.ЗначениеВМассиве("Сервер", "КлиентУправляемоеПриложение"))
+ .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("Сервер", "КлиентУправляемоеПриложение"))
;
ЮТест.ОжидаетЧто(НаборЗагрузкаТестов, "Набор 'ЗагрузкаТестов'")
.Свойство("Имя").Равно("ЗагрузкаТестов")
.Свойство("Тесты").ИмеетДлину(1)
.Свойство("Тесты[0].Имя").Равно("ЗагрузитьТесты")
- .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТОбщий.ЗначениеВМассиве("КлиентУправляемоеПриложение"))
+ .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("КлиентУправляемоеПриложение"))
;
ЮТест.ОжидаетЧто(НаборЭтоТестовыйМодуль, "Набор 'ЭтоТестовыйМодуль'")
.Свойство("Имя").Равно("ЭтоТестовыйМодуль")
.Свойство("Тесты").ИмеетДлину(4)
.Свойство("Теги").ИмеетДлину(3)
- ;
+ ;
КонецПроцедуры
Процедура ИсполняемыеСценарииМодуляСОшибкойЧтения() Экспорт
- ОписаниеМодуля = ЮТФабрика.ОписаниеМодуля();
+ ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля();
ОписаниеМодуля.Имя = "ОМ_ЮТЧитатель";
ОписаниеМодуля.ПолноеИмя = "tests.ОМ_ЮТЧитатель";
ОписаниеМодуля.Расширение = "tests";
- #Если Клиент Тогда
- ОписаниеМодуля.КлиентУправляемоеПриложение = Истина;
- ОписаниеМодуля.КлиентОбычноеПриложение = Истина;
- #Иначе
- ОписаниеМодуля.Сервер = Истина;
- #КонецЕсли
+#Если Клиент Тогда
+ ОписаниеМодуля.КлиентУправляемоеПриложение = Истина;
+ ОписаниеМодуля.КлиентОбычноеПриложение = Истина;
+#Иначе
+ ОписаниеМодуля.Сервер = Истина;
+#КонецЕсли
- ЮТКонтекст.УстановитьЗначениеКонтекста(ИмяРеквизитаПроверки(), Истина);
+ ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяРеквизитаПроверки(), Истина);
- Результат = ЮТЧитатель.ИсполняемыеСценарииМодуля(ОписаниеМодуля);
+ Результат = ЮТЧитательСлужебный.ИсполняемыеСценарииМодуля(ОписаниеМодуля);
ЮТест.ОжидаетЧто(Результат)
.ИмеетТип("Структура")
- .Свойство("НаборыТестов")
- .ИмеетДлину(1)
- .Свойство("НаборыТестов[0].Ошибки")
- .ИмеетДлину(1)
- .Свойство("НаборыТестов[0].Ошибки[0].ТипОшибки")
- .Равно(ЮТФабрика.ТипыОшибок().ЧтенияТестов)
+ .Свойство("НаборыТестов").ИмеетДлину(1)
+ .Свойство("НаборыТестов[0].Ошибки").ИмеетДлину(1)
+ .Свойство("НаборыТестов[0].Ошибки[0].ТипОшибки").Равно(ЮТФабрикаСлужебный.ТипыОшибок().ЧтенияТестов)
;
КонецПроцедуры
Процедура ЭтоТестовыйМодуль(ИмяМодуля, ЭтоТестовый) Экспорт
- ОписаниеМодуля = ЮТМетаданныеСервер.МетаданныеМодуля(ИмяМодуля);
- ЮТест.ОжидаетЧто(ЮТЧитатель.ЭтоТестовыйМодуль(ОписаниеМодуля), "Проверка модуля " + ИмяМодуля)
+ ОписаниеМодуля = ЮТМетаданныеСлужебныйВызовСервера.МетаданныеМодуля(ИмяМодуля);
+ ЮТест.ОжидаетЧто(ЮТЧитательСлужебный.ЭтоТестовыйМодуль(ОписаниеМодуля), "Проверка модуля " + ИмяМодуля)
.Равно(ЭтоТестовый);
КонецПроцедуры
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\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo" "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/\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.mdo"
similarity index 86%
rename from "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\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo"
rename to "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/\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.mdo"
index a64df8a18..5c0293bac 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\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214.mdo"
+++ "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/\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.mdo"
@@ -1,6 +1,6 @@
- ОМ_ЮТЧитатель
+ ОМ_ЮТЧитательСлужебный
ru
Читатель
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 205b96ba4..6e625f3f6 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"
@@ -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.
@@ -77,7 +77,7 @@
Процедура Пропустить() Экспорт
- ЮТест.Пропустить();
+ ЮТест.Пропустить("Тест пропущен");
ВызватьИсключение "Не отработал пропуск теста";
КонецПроцедуры
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 0a1bd0726..d47a7acf9 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"
@@ -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,8 +23,8 @@
ЮТТесты
.ДобавитьТест("Конструктор")
.ДобавитьТест("УстановитьТело")
- ;
-
+ ;
+
КонецПроцедуры
Процедура Конструктор() Экспорт
@@ -52,7 +52,7 @@
.Метод("ПолучитьТелоКакДвоичныеДанные").НеВыбрасываетИсключение()
.Метод("ПолучитьТелоКакПоток").НеВыбрасываетИсключение()
.Метод("ПолучитьТелоКакСтроку").НеВыбрасываетИсключение()
- .Метод("ПолучитьТелоКакСтроку", ЮТОбщий.ЗначениеВМассиве(КодировкаТекста.UTF8)).НеВыбрасываетИсключение();
+ .Метод("ПолучитьТелоКакСтроку", ЮТКоллекции.ЗначениеВМассиве(КодировкаТекста.UTF8)).НеВыбрасываетИсключение();
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку()).Равно("");
Тело = "Тело";
@@ -61,7 +61,7 @@
Описание = "Тело установлено из двоичных данных";
Запрос = ЮТест.Данные().HTTPСервисЗапрос()
.УстановитьТелоКакДвоичныеДанные(ДвоичныеДанные);
-
+
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакДвоичныеДанные(), Описание + ". Получение двоичных данных").Равно(ДвоичныеДанные);
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку(), Описание + ". Получение строки").Равно(Тело);
ЮТест.ОжидаетЧто(Запрос.ПолучитьТелоКакСтроку("UTF-8"), Описание + ". Получение строки UTF-8").Равно(Тело);
@@ -84,4 +84,3 @@
КонецПроцедуры
#КонецОбласти
-
diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\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_\320\234\320\236/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\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_\320\234\320\236/Module.bsl"
new file mode 100644
index 000000000..34414c2fd
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\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_\320\234\320\236/Module.bsl"
@@ -0,0 +1,179 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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.
+//
+//©///////////////////////////////////////////////////////////////////////////©//
+
+#Область СлужебныйПрограммныйИнтерфейс
+
+Процедура ИсполняемыеСценарии() Экспорт
+
+ ЮТТесты
+ .ДобавитьТест("Установить")
+ .ДобавитьТест("УстановитьРеквизиты")
+ .ДобавитьТест("Фикция")
+ .ДобавитьТест("ФикцияОбязательныхПолей")
+ .ДобавитьТест("ФикцияНезаполненных")
+ .ДобавитьТест("ДобавитьНовый")
+ .ДобавитьТест("ПерейтиКВладельцу")
+ ;
+
+КонецПроцедуры
+
+Процедура Установить() Экспорт
+
+ Номер = ЮТест.Данные().СлучайнаяСтрока(9);
+ Сумма = ЮТест.Данные().СлучайноеЧисло();
+ Покупатель = ЮТест.Данные().СоздатьЭлемент(Справочники.Контрагенты);
+
+ Объект = НовыйКонструктор()
+ .Установить("Number", Номер)
+ .Установить("Сумма", Сумма)
+ .Установить("Покупатель", Покупатель)
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Объект)
+ .ИмеетТип(Тип("ОбъектXDTO"))
+ .Свойство("Number").Равно(Номер)
+ .Свойство("Сумма").Равно(Сумма)
+ .Свойство("Покупатель").Равно(Покупатель)
+ ;
+
+КонецПроцедуры
+
+Процедура УстановитьРеквизиты() Экспорт
+
+ Номер = ЮТест.Данные().СлучайнаяСтрока(9);
+ Сумма = ЮТест.Данные().СлучайноеЧисло();
+ Реквизиты = Новый Структура("Number, Сумма", Номер, Сумма);
+
+ Объект = НовыйКонструктор()
+ .УстановитьРеквизиты(Реквизиты)
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Объект)
+ .ИмеетТип(Тип("ОбъектXDTO"))
+ .Свойство("Number").Равно(Номер)
+ .Свойство("Сумма").Равно(Сумма);
+
+КонецПроцедуры
+
+Процедура Фикция() Экспорт
+
+ Объект = НовыйКонструктор()
+ .Фикция("Number")
+ .Фикция("Сумма")
+ .Фикция("Покупатель")
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Объект)
+ .ИмеетТип(Тип("ОбъектXDTO"))
+ .Свойство("Number").Заполнено()
+ .Свойство("Сумма").Заполнено()
+ .Свойство("Покупатель").Заполнено()
+ ;
+
+КонецПроцедуры
+
+Процедура ФикцияОбязательныхПолей() Экспорт
+
+ Дата = ЮТест.Данные().СлучайнаяДата();
+
+ Объект = НовыйКонструктор()
+ .Установить("Date", Дата)
+ .ФикцияОбязательныхПолей()
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Объект)
+ .ИмеетТип(Тип("ОбъектXDTO"))
+ .Свойство("Number").Заполнено()
+ .Свойство("Date").Равно(Дата)
+ .Свойство("Сумма").Заполнено()
+ .Свойство("Покупатель").Заполнено()
+ .Свойство("Товары").Заполнено()
+ ;
+
+КонецПроцедуры
+
+Процедура ФикцияНезаполненных() Экспорт
+
+ Дата = ЮТест.Данные().СлучайнаяДата();
+
+ Объект = НовыйКонструктор()
+ .Установить("Date", Дата)
+ .ФикцияНезаполненных()
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Объект)
+ .ИмеетТип(Тип("ОбъектXDTO"))
+ .Свойство("Number").Заполнено()
+ .Свойство("Date").Равно(Дата)
+ .Свойство("Сумма").Заполнено()
+ .Свойство("Покупатель").Заполнено()
+ .Свойство("Товары").Заполнено()
+ ;
+
+КонецПроцедуры
+
+Процедура ДобавитьНовый() Экспорт
+
+ Объект = НовыйКонструктор()
+ .ДобавитьНовый("Товары")
+ .Фикция("Цена")
+ .Фикция("Количество")
+ .ПерейтиКВладельцу()
+ .ДобавитьНовый("Товары")
+ .Фикция("Цена")
+ .Фикция("Количество")
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Объект)
+ .ИмеетТип(Тип("ОбъектXDTO"))
+ .Свойство("Товары").ИмеетДлину(2)
+ .Свойство("Товары[0].Цена").Заполнено()
+ .Свойство("Товары[0].Сумма").НеЗаполнено();
+
+КонецПроцедуры
+
+Процедура ПерейтиКВладельцу() Экспорт
+
+ Объект = НовыйКонструктор()
+ .ДобавитьНовый("Товары")
+ .ПерейтиКВладельцу()
+ .Фикция("Сумма")
+ .ДанныеОбъекта();
+
+ ЮТест.ОжидаетЧто(Объект)
+ .ИмеетТип(Тип("ОбъектXDTO"))
+ .Свойство("Товары").ИмеетДлину(1)
+ .Свойство("Товары[0].Сумма").НеЗаполнено()
+ .Свойство("Сумма").Заполнено()
+ ;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция НовыйКонструктор()
+
+ Тип = СериализаторXDTO.XMLТип(Тип("ДокументОбъект.Заказ"));
+
+ Возврат ЮТест.Данные().КонструкторОбъектаXDTO(Тип.ИмяТипа, Тип.URIПространстваИмен);
+
+КонецФункции
+
+#КонецОбласти
diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\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_\320\234\320\236/\320\236\320\261\321\200_\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_\320\234\320\236.mdo" "b/tests/src/CommonModules/\320\236\320\261\321\200_\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_\320\234\320\236/\320\236\320\261\321\200_\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_\320\234\320\236.mdo"
new file mode 100644
index 000000000..663eab4e3
--- /dev/null
+++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\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_\320\234\320\236/\320\236\320\261\321\200_\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_\320\234\320\236.mdo"
@@ -0,0 +1,5 @@
+
+
+ Обр_ЮТКонструкторОбъектаXDTO_МО
+ true
+
diff --git "a/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl"
index 6597ddbaa..5ab296940 100644
--- "a/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl"
+++ "b/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Module.bsl"
@@ -1,3 +1,20 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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_ПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
@@ -7,7 +24,7 @@
// Отправляем данные на анализ
ПрерватьВыполнение = Ложь;
- Результат = Мокито.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюДокумента", ПараметрыМетода, ПрерватьВыполнение);
+ МокитоПерехват.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюДокумента", ПараметрыМетода, ПрерватьВыполнение);
// Обрабатываем результат анализа
Если НЕ ПрерватьВыполнение Тогда
@@ -24,7 +41,7 @@
// Отправляем данные на анализ
ПрерватьВыполнение = Ложь;
- Результат = Мокито.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюСправочника", ПараметрыМетода, ПрерватьВыполнение);
+ МокитоПерехват.АнализВызова(ПодпискиНаСобытия, "ПередЗаписьюСправочника", ПараметрыМетода, ПрерватьВыполнение);
// Обрабатываем результат анализа
Если НЕ ПрерватьВыполнение Тогда
diff --git "a/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Module.bsl" "b/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Module.bsl"
index 7e24fe427..fba4de1bf 100644
--- "a/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Module.bsl"
+++ "b/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\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.
@@ -20,7 +20,7 @@
Процедура Расш1_ОпределитьТекущегоПользователя() Экспорт
ПрерватьВыполнение = Ложь;
- Результат = Мокито.АнализВызова(Пользователи, "ОпределитьТекущегоПользователя", Новый Массив, ПрерватьВыполнение);
+ МокитоПерехват.АнализВызова(Пользователи, "ОпределитьТекущегоПользователя", Новый Массив, ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
ПродолжитьВызов();
diff --git "a/tests/src/CommonModules/\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\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 012fea530..8e2bcd7db 100644
--- "a/tests/src/CommonModules/\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\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"
@@ -35,7 +35,7 @@
Функция ОписаниеТестовогоМодуля(ИмяМодуля = Неопределено) Экспорт
Описание = Новый Структура();
- Описание.Вставить("МетаданныеМодуля", ЮТФабрика.ОписаниеМодуля());
+ Описание.Вставить("МетаданныеМодуля", ЮТФабрикаСлужебный.ОписаниеМодуля());
Описание.Вставить("НаборыТестов", Новый Массив);
Описание.Вставить("Ошибки", Новый Массив);
Описание.Вставить("НастройкиВыполнения", Новый Структура);
diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo
index c4a17479b..c233f203e 100644
--- a/tests/src/Configuration/Configuration.mdo
+++ b/tests/src/Configuration/Configuration.mdo
@@ -27,6 +27,7 @@
CommonModule.Интеграция
CommonModule.Обр_ЮТHTTPСервисЗапрос
CommonModule.Обр_ЮТRecordSet_МО
+ CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО
CommonModule.ОМ_Мокито
CommonModule.ОМ_МокитоОбучение
CommonModule.ОМ_МокитоСлужебный
@@ -35,25 +36,28 @@
CommonModule.ОМ_ЮТест
CommonModule.ОМ_ЮТестПереопределяемый
CommonModule.ОМ_ЮТЗапросы
- CommonModule.ОМ_ЮТИсполнительКлиент
- CommonModule.ОМ_ЮТИсполнительКлиентСервер
+ CommonModule.ОМ_ЮТИсполнительСлужебныйКлиент
+ CommonModule.ОМ_ЮТИсполнительСлужебныйКлиентСервер
+ CommonModule.ОМ_ЮТКоллекции
CommonModule.ОМ_ЮТКонструкторТестовыхДанных
CommonModule.ОМ_ЮТМетаданные
- CommonModule.ОМ_ЮТОтчет
- CommonModule.ОМ_ЮТОтчетAllure
+ CommonModule.ОМ_ЮТОтчетAllureСлужебный
+ CommonModule.ОМ_ЮТОтчетСлужебный
CommonModule.ОМ_ЮТПодражатель_Банки
CommonModule.ОМ_ЮТПодражатель_Компании
CommonModule.ОМ_ЮТПодражатель_Люди
- CommonModule.ОМ_ЮТПредикатыКлиентСервер
- CommonModule.ОМ_ЮТСравнениеКлиентСервер
+ CommonModule.ОМ_ЮТПредикатыСлужебныйКлиентСервер
+ CommonModule.ОМ_ЮТРегистрацияОшибок
+ CommonModule.ОМ_ЮТСравнениеСлужебныйКлиентСервер
+ CommonModule.ОМ_ЮТСтроки
CommonModule.ОМ_ЮТТестовыеДанные
CommonModule.ОМ_ЮТТестовыеДанныеСлужебный
CommonModule.ОМ_ЮТТесты
CommonModule.ОМ_ЮТТипыДанныхСлужебный
CommonModule.ОМ_ЮТУтверждения
CommonModule.ОМ_ЮТУтвержденияИБ
- CommonModule.ОМ_ЮТФильтрация
- CommonModule.ОМ_ЮТЧитатель
+ CommonModule.ОМ_ЮТФильтрацияСлужебный
+ CommonModule.ОМ_ЮТЧитательСлужебный
CommonModule.ПодпискиНаСобытия
CommonModule.Пользователи
CommonModule.ПомощникТестированияВызовСервера
diff --git "a/tests/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl" "b/tests/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl"
index 3336a3f0f..94aa58f90 100644
--- "a/tests/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl"
+++ "b/tests/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/ObjectModule.bsl"
@@ -1,3 +1,20 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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_ЗаполнитьСписок() Экспорт
@@ -5,7 +22,7 @@
ПараметрыМетода = Новый Массив();;
ПрерватьВыполнение = Ложь;
- Мокито.АнализВызова(ЭтотОбъект, "ЗаполнитьСписок", ПараметрыМетода, ПрерватьВыполнение);
+ МокитоПерехват.АнализВызова(ЭтотОбъект, "ЗаполнитьСписок", ПараметрыМетода, ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
ПродолжитьВызов();
diff --git "a/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl" "b/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl"
index a8507e276..5db6d642a 100644
--- "a/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.bsl"
+++ "b/tests/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/ObjectModule.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.
@@ -22,7 +22,7 @@
ПараметрыМетода = Мокито.МассивПараметров(Отказ, Режим);
ПрерватьВыполнение = Ложь;
- Мокито.АнализВызова(ЭтотОбъект, "ОбработкаПроведения", ПараметрыМетода, ПрерватьВыполнение);
+ МокитоПерехват.АнализВызова(ЭтотОбъект, "ОбработкаПроведения", ПараметрыМетода, ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
ПродолжитьВызов(Отказ, Режим);
diff --git "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl" "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl"
index 1377c3499..ca4460b4f 100644
--- "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl"
+++ "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/ManagerModule.bsl"
@@ -1,3 +1,20 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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_ЗаполненоКорректно(НаборЗаписей) Экспорт
@@ -5,7 +22,7 @@
ПараметрыМетода = Мокито.МассивПараметров(НаборЗаписей);
ПрерватьВыполнение = Ложь;
- Мокито.АнализВызова(РегистрыСведений.ЦеныТоваров, "ЗаполненоКорректно", ПараметрыМетода, ПрерватьВыполнение);
+ МокитоПерехват.АнализВызова(РегистрыСведений.ЦеныТоваров, "ЗаполненоКорректно", ПараметрыМетода, ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
ПродолжитьВызов(НаборЗаписей);
diff --git "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl" "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl"
index 1da418081..c4786acf4 100644
--- "a/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl"
+++ "b/tests/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/RecordSetModule.bsl"
@@ -1,3 +1,20 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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_ПередЗаписью(Отказ, Замещение)
@@ -5,7 +22,7 @@
ПараметрыМетода = Мокито.МассивПараметров(Отказ, Замещение);
ПрерватьВыполнение = Ложь;
- Мокито.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение);
+ МокитоПерехват.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
ПродолжитьВызов(Отказ, Замещение);
@@ -19,11 +36,10 @@
ПараметрыМетода = Мокито.МассивПараметров(Отказ, ПроверяемыеРеквизиты);
ПрерватьВыполнение = Ложь;
- Мокито.АнализВызова(ЭтотОбъект, "ОбработкаПроверкиЗаполнения", ПараметрыМетода, ПрерватьВыполнение);
+ МокитоПерехват.АнализВызова(ЭтотОбъект, "ОбработкаПроверкиЗаполнения", ПараметрыМетода, ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
ПродолжитьВызов(Отказ, ПроверяемыеРеквизиты);
КонецЕсли;
КонецПроцедуры
-