From e14615ae28cd777f52eeaa4eea5dadf63bf7c57e Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 16 Sep 2024 15:47:00 +0300 Subject: [PATCH 01/56] use 1CDevFlow/workflows/sonar/analysis-with-openbsl --- .github/workflows/sonar-qube-analysis.yml | 65 ++--------------------- 1 file changed, 5 insertions(+), 60 deletions(-) diff --git a/.github/workflows/sonar-qube-analysis.yml b/.github/workflows/sonar-qube-analysis.yml index 08ec0c26f..c8b3acc2d 100644 --- a/.github/workflows/sonar-qube-analysis.yml +++ b/.github/workflows/sonar-qube-analysis.yml @@ -6,64 +6,9 @@ on: jobs: SonarQualityGate: - runs-on: ubuntu-latest - steps: - - name: Извлечение исходников PR - if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request' - uses: actions/checkout@v4 - with: - ref: refs/pull/${{ github.event.number }}/merge # Для поддержки pull_request и pull_request_target - fetch-depth: 0 # Получение полной истории (все тэги и ветки) - - - name: Извлечение исходников ветки ${{ github.ref_name }} - if: github.event_name == 'push' - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Получение полной истории (все тэги и ветки) - - - name: Извлечение версии проекта - uses: ./.github/actions/extract-version - with: - path: ./exts/yaxunit/src - id: extract_version - - # Анализ проекта в SonarQube (ветка) - - name: Анализ в SonarQube (${{ github.ref_name }}) - if: github.event_name == 'push' - uses: sonarsource/sonarqube-scan-action@v2.3.0 - env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - LC_ALL: "ru_RU.UTF-8" - with: - args: > - -Dsonar.host.url=https://sonar.openbsl.ru - -Dsonar.branch.name=${{ github.ref_name }} - -Dsonar.projectVersion=${{ steps.extract_version.outputs.version }} - -Dsonar.qualitygate.wait=true - -Dsonar.qualitygate.timeout=300 - - # Анализ проекта в SonarQube (PR) - # https://docs.sonarqube.org/latest/analysis/pull-request/ - - name: Анализ в SonarQube (pull-request ${{ github.event.number }}) - if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request' - uses: sonarsource/sonarqube-scan-action@v2.3.0 - env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - with: - args: > - -Dsonar.host.url=https://sonar.openbsl.ru - -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} - -Dsonar.pullrequest.branch=${{ github.event.pull_request.head.ref }} - -Dsonar.pullrequest.base=${{ github.event.pull_request.base.ref }} - -Dsonar.scm.revision=${{ github.event.pull_request.head.sha }} - -Dsonar.qualitygate.wait=true - -Dsonar.qualitygate.timeout=300 - - - name: Публикация результата проверки PR - if: github.event_name != 'push' && (success()||failure()) - uses: 1CDevFlow/sonar-review-action@main - with: - sonar_branch_plugin: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: "1CDevFlow/workflows/.github/workflows/sonar-analysis-with-openbsl.yml@main" + with: + root-project-path: ./exts/yaxunit/src + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} From e38058b8c4667afe335654e96a00bedf961c2a7b Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 31 May 2024 16:36:37 +0300 Subject: [PATCH 02/56] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B9=20SQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 9 +++++-- .../Module.bsl" | 2 +- .../Module.bsl" | 4 +++ .../Module.bsl" | 2 +- .../Module.bsl" | 14 +++++----- .../Module.bsl" | 3 ++- .../Module.bsl" | 26 +++++++++---------- 7 files changed, 35 insertions(+), 25 deletions(-) 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/Module.bsl" "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/Module.bsl" index 40376e580..610375d9e 100644 --- "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/Module.bsl" +++ "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/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. @@ -137,7 +137,12 @@ // Указывает, что при соблюдении условий (см. Когда) метод должен выполняться. // Используется для случаев, когда необходимо задать исключения для другого правила на этом методе. // -// TODO: Нужны примеры +// Пример: +// Мокито.Обучение(Документы.ПКО) +// // По умолчанию метод выбрасывает исключение +// .Когда("СформироватьПроводки").ВыброситьИсключение("Упал") +// // При вызове для конкретного документа исключение не будет выброшено и выполняется метод конфигурации +// .Когда("СформироватьПроводки", Мокито.МассивПараметров(Ссылка)).ВыполнитьМетод() // // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания 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 ac1125fd0..d2c1eb288 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" @@ -385,7 +385,7 @@ // Возвращаемое значение: // Структура - Описание параметров перехвата объекта: // * Объект - Произвольный -// * Методы - Структура +// * Методы - Структура Функция ОписаниеПараметровПерехватаОбъекта(Объект) Экспорт Возврат Новый Структура("Объект, Методы", Объект, Новый Структура); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\320\260\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\320\260\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\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 77f682dbc..d83da490e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\320\260\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\320\260\321\217\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\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" @@ -78,6 +78,8 @@ КонецФункции +// BSLLS:MissingParameterDescription-off + //@skip-check module-empty-method //@skip-check doc-comment-parameter-section Процедура ПустойОбработчик1(Параметр1) Экспорт @@ -96,4 +98,6 @@ КонецПроцедуры +// BSLLS:MissingParameterDescription-on + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\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" index 819c69956..bd0d58365 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\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" @@ -150,7 +150,7 @@ #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции(); Если ВТранзакции Тогда - НачатьТранзакцию(); + НачатьТранзакцию(); // Отмена транзакции в см. ПослеКаждогоТеста КонецЕсли; #КонецЕсли 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" index a6dc69d7d..45f6fd7e9 100644 --- "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" @@ -320,13 +320,13 @@ // // Параметры: // Значение1 - Произвольный -// Значение2 - Произвольный -// Значение3 - Произвольный -// Значение4 - Произвольный -// Значение5 - Произвольный -// Значение6 - Произвольный -// Значение7 - Произвольный -// Значение8 - Произвольный +// Значение2 - Произвольный +// Значение3 - Произвольный +// Значение4 - Произвольный +// Значение5 - Произвольный +// Значение6 - Произвольный +// Значение7 - Произвольный +// Значение8 - Произвольный // Значение9 - Произвольный // Значение10 - Произвольный // 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 5d0c8f033..1dd3575ae 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" @@ -76,7 +76,8 @@ // ИмяНастройки - Строка - Имя настройки, см. ЮТФабрика.ПараметрыИсполненияТеста // ЗначениеПоУмолчанию - Произвольный - Значение по умолчанию // СтрогийУровеньИсполнения - Булево - Признак, стоит ли проверять наличие настройки у родительских элементов. -// Ложь - По умолчанию, будет выполнен поиск и получение значения для родителей (набор, модуль), если значения для текущего элемента не установлено. +// Ложь - По умолчанию, будет выполнен поиск и получение значения для родителей (набор, модуль), +// если значения для текущего элемента не установлено. // Истина - Получение настройки только для текущего элемента. // // Возвращаемое значение: 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 3283e9819..218679b17 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" @@ -273,24 +273,24 @@ // // Возвращаемое значение: // Структура - Описание окружения: -// * Конфигурация - Строка - -// * ВерсияКонфигурации - Строка - -// * ВерсияПлатформы - Строка - -// * ИнформационнаяСреда - Строка - -// * ТестовыйДвижок - Строка - -// * ВерсияТестовогоДвижка - Строка - -// * ЛокальПлатформы - Строка - -// * ЛокальИнтерфейса - Строка - +// * Конфигурация - Строка - +// * ВерсияКонфигурации - Строка - +// * ВерсияПлатформы - Строка - +// * ИнформационнаяСреда - Строка - +// * ТестовыйДвижок - Строка - +// * ВерсияТестовогоДвижка - Строка - +// * ЛокальПлатформы - Строка - +// * ЛокальИнтерфейса - Строка - // * ОперационнаяСистемаКлиент - Строка - Возможные значения: Linux, Windows, MacOS // * АрхитектураКлиент - Строка - Возможные значения: x86_64, i386 // * ОперационнаяСистемаСервер - Строка - Возможные значения: Linux, Windows, MacOS // * АрхитектураСервер - Строка - Возможные значения: x86_64, i386 // * ВстроенныйЯзык - Строка - Возможные значения: ru, en -// * ФайловаяБаза - Булево - -// * ОбычноеПриложение - Булево - -// * ВебКлиент - Булево - -// * ТолстыйКлиент - Булево - -// * ВремяЗапуска - Дата - +// * ФайловаяБаза - Булево - +// * ОбычноеПриложение - Булево - +// * ВебКлиент - Булево - +// * ТолстыйКлиент - Булево - +// * ВремяЗапуска - Дата - Функция НовоеОписаниеОкружения() Экспорт Окружение = Новый Структура; From 0dbd7a5b5d54bffa76abc8a5c7fa1794502582bd Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 18 Sep 2024 00:26:27 +0300 Subject: [PATCH 03/56] =?UTF-8?q?fix(sonar):=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 7 ------- .../Module.bsl" | 6 ------ .../Module.bsl" | 3 ++- .../Module.bsl" | 2 +- 4 files changed, 3 insertions(+), 15 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 0549d2dfa..00edf3a87 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -50,13 +50,6 @@ КонецФункции -// Служебный метод, используется только в модуле см. ЮТЗависимости. -// -// Параметры: -// ОписаниеЗависимости - см. ЮТФабрика.НовоеОписаниеЗависимости -// -// Возвращаемое значение: -// CommonModule.ЮТТесты Функция ДобавитьЗависимостьПриРегистрации(ОписаниеЗависимости) Экспорт Если ЮТКонтекстСлужебный.ТекущийЭтапПрогона() <> ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов Тогда 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 2a24499ef..a75a66ac1 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" @@ -200,12 +200,6 @@ КонецФункции -Функция НовыйОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля) Экспорт - - Возврат ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, ПредикатыУсловия, ВыбираемыеПоля); - -КонецФункции - // Функция получает список движений по указанному документу и регистру. // Если документ не делает движений по указанному регистру, функция вызывает исключение. // Результатом работы функции является список записей регистра, отсортированных по номеру строки. 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\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\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 0fc92afcc..93d3c7f7a 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\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\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" @@ -53,11 +53,12 @@ // Возвращаемое значение: // - Структура Из Произвольный - Значения реквизитов ссылки при получении значений множества реквизитов // - Произвольный - Значение реквизита ссылки при получении значения одного реквизита +// - Неопределено - Запрос вернул пустой результат Функция ЗначенияРеквизитов(Знач Ссылка, Знач ИменаРеквизитов, Знач ОдинРеквизит) Экспорт ИмяТаблицы = Ссылка.Метаданные().ПолноеИмя(); - ТекстЗапроса = СтрШаблон("ВЫБРАТЬ ПЕРВЫЕ 1 %1 ИЗ %2 ГДЕ Ссылка = &Ссылка", ИменаРеквизитов, ИмяТаблицы); + ТекстЗапроса = СтрШаблон("ВЫБРАТЬ ПЕРВЫЕ 1 %1 ИЗ %2 ГДЕ Ссылка = &Ссылка", ИменаРеквизитов, ИмяТаблицы); // BSLLS:QueryParseError-off Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", Ссылка); 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" index ab781986a..115755394 100644 --- "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" @@ -28,7 +28,7 @@ // Строка - Текст исключения Функция НекорректныеПараметрыМетода(ИмяМетода, Пояснение = Неопределено) Экспорт - Сообщение = СтрШаблон("Некорректные параметры метода `%1`"); + Сообщение = СтрШаблон("Некорректные параметры метода `%1`", ИмяМетода); Возврат ЮТСтроки.ДобавитьСтроку(Сообщение, Пояснение, ", "); КонецФункции From a9f334e960ae7afc795abf3197603563cac99b79 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 18 Sep 2024 01:55:12 +0300 Subject: [PATCH 04/56] ci: use 1CDevFlow --- .github/workflows/build-release.yml | 2 +- .github/workflows/step-build-artifacts-windows.yml | 2 +- .github/workflows/step-export-xml.yml | 2 +- .github/workflows/step-run-tests.yml | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 7b9142fc2..a20d1494b 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -28,7 +28,7 @@ jobs: steps: - name: Установка 1С:Предприятие 8.3.21.1895 - uses: alkoleft/onec-setup-build-env-action@develop + uses: 1CDevFlow/onec-setup-action@main with: type: onec onec_version: 8.3.21.1895 diff --git a/.github/workflows/step-build-artifacts-windows.yml b/.github/workflows/step-build-artifacts-windows.yml index 74532cd91..f6d69e35a 100644 --- a/.github/workflows/step-build-artifacts-windows.yml +++ b/.github/workflows/step-build-artifacts-windows.yml @@ -30,7 +30,7 @@ jobs: steps: - name: Установка 1С:Предприятие - uses: alkoleft/onec-setup-build-env-action@develop + uses: 1CDevFlow/onec-setup-action@main with: type: onec onec_version: ${{ inputs.v8_version }} diff --git a/.github/workflows/step-export-xml.yml b/.github/workflows/step-export-xml.yml index 70466c5f3..aaa6d3b24 100644 --- a/.github/workflows/step-export-xml.yml +++ b/.github/workflows/step-export-xml.yml @@ -58,7 +58,7 @@ jobs: id: extract_smoke_version - name: Установка 1C:EDT - uses: alkoleft/onec-setup-build-env-action@develop + uses: 1CDevFlow/onec-setup-action@main with: type: edt edt_version: ${{ inputs.edt_version }} diff --git a/.github/workflows/step-run-tests.yml b/.github/workflows/step-run-tests.yml index f65bf720a..f4b817661 100644 --- a/.github/workflows/step-run-tests.yml +++ b/.github/workflows/step-run-tests.yml @@ -62,7 +62,7 @@ jobs: Write-Output "substring=$('${{ inputs.locale }}'.Substring(0, 2))" >> $Env:GITHUB_OUTPUT - name: Установка 1С:Предприятие - uses: alkoleft/onec-setup-build-env-action@develop + uses: 1CDevFlow/onec-setup-action@main with: type: onec onec_version: ${{ inputs.v8_version }} @@ -79,19 +79,19 @@ jobs: timeout-minutes: 5 - name: Загрузка расширения c тестами - uses: alkoleft/yaxunit/.github/actions/load-extension@develop + uses: 1CDevFlow/workflows/actions/load-extension@main with: name: tests path: binary/tests.cfe - name: Загрузка расширения c дымовыми тестами - uses: alkoleft/yaxunit/.github/actions/load-extension@develop + uses: 1CDevFlow/workflows/actions/load-extension@main with: name: Smoke path: binary/smoke.cfe - name: Загрузка расширения YAxUnit - uses: alkoleft/yaxunit/.github/actions/load-extension@develop + uses: 1CDevFlow/workflows/actions/load-extension@main with: name: YAXUNIT path: binary/yaxunit.cfe From e634f775b9829e95a66b834ec31422c0d758209f Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 19 Sep 2024 22:31:03 +0300 Subject: [PATCH 05/56] =?UTF-8?q?fix(sonar):=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.settings/ManagedEnvironments.prefs | 2 +- .../Module.bsl" | 8 +++ .../Module.bsl" | 21 ++++-- .../Module.bsl" | 2 +- .../Module.bsl" | 8 ++- .../Module.bsl" | 2 +- .../Module.bsl" | 2 +- .../Module.bsl" | 32 ++++++--- .../Module.bsl" | 72 +++++++++++++------ .../Module.bsl" | 16 +++-- .../ObjectModule.bsl" | 18 +++-- .../Module.bsl" | 3 +- .../ObjectModule.bsl" | 3 +- .../Module.bsl" | 5 +- 14 files changed, 138 insertions(+), 56 deletions(-) diff --git a/exts/yaxunit/.settings/ManagedEnvironments.prefs b/exts/yaxunit/.settings/ManagedEnvironments.prefs index 5bcbfaaff..266f39796 100644 --- a/exts/yaxunit/.settings/ManagedEnvironments.prefs +++ b/exts/yaxunit/.settings/ManagedEnvironments.prefs @@ -1,4 +1,4 @@ -CLIENT=false +CLIENT=true EXTERNAL_CONN=false MNG_CLIENT=true MOBILE_AUTONOMOUS_SERVER=false diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\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" index bd0d58365..c56fa2019 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\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" @@ -150,7 +150,11 @@ #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции(); Если ВТранзакции Тогда + // BSLLS:PairingBrokenTransaction-off + // BSLLS:BeginTransactionBeforeTryCatch-off НачатьТранзакцию(); // Отмена транзакции в см. ПослеКаждогоТеста + // BSLLS:PairingBrokenTransaction-on + // BSLLS:BeginTransactionBeforeTryCatch-on КонецЕсли; #КонецЕсли @@ -188,6 +192,8 @@ Процедура ОтменитьТранзакциюТеста(Тест, ВТранзакции) #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда + // BSLLS:PairingBrokenTransaction-off + // BSLLS:WrongUseOfRollbackTransactionMethod-off Если ВТранзакции Тогда Если ТранзакцияАктивна() Тогда ОтменитьТранзакцию(); @@ -200,6 +206,8 @@ ОтменитьТранзакцию(); ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружена незакрытая транзакция"); КонецЦикла; + // BSLLS:PairingBrokenTransaction-on + // BSLLS:WrongUseOfRollbackTransactionMethod-on #КонецЕсли КонецПроцедуры 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" index 57e1b4df0..ba9b7a2e5 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\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" @@ -148,7 +148,7 @@ // Обработка события "ПослеЧтенияСценариев" // Параметры: -// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах +// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей. Процедура ПослеЧтенияСценариев(Сценарии) Экспорт ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев завершена. %1 сценариев.", Сценарии.Количество())); @@ -174,7 +174,7 @@ КонецЦикла; - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".ОбщееКоличествоТестов", Количество, Истина); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекстаОбщееКоличествоТестов(), Количество, Истина); КонецПроцедуры @@ -187,7 +187,7 @@ #Если Клиент Тогда Контекст = Контекст(); ПрогрессКлиент = Контекст.КоличествоВыполненныхТестов; - ПрогрессСервер = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Истина); + ПрогрессСервер = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекстаКоличествоВыполненныхТестов(), Истина); Если ПрогрессКлиент < ПрогрессСервер Тогда Контекст.КоличествоВыполненныхТестов = ПрогрессСервер; @@ -255,7 +255,7 @@ Возврат; КонецЕсли; #Если Клиент Тогда - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов", Контекст.КоличествоВыполненныхТестов, Истина); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекстаКоличествоВыполненныхТестов(), Контекст.КоличествоВыполненныхТестов, Истина); #КонецЕсли МетаданныеМодуля = ОписаниеСобытия.Модуль.Метаданные; @@ -351,6 +351,7 @@ // см. НовыйДанныеКонтекста Функция Контекст() + //@skip-check constructor-function-return-section Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаЛогирования()); КонецФункции @@ -361,6 +362,18 @@ КонецФункции +Функция КлючКонтекстаОбщееКоличествоТестов() + + Возврат ИмяКонтекстаЛогирования() + ".ОбщееКоличествоТестов"; + +КонецФункции + +Функция КлючКонтекстаКоличествоВыполненныхТестов() + + Возврат ИмяКонтекстаЛогирования() + ".КоличествоВыполненныхТестов"; + +КонецФункции + // Новый данные контекста. // // Возвращаемое значение: 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 1dd3575ae..b105f0d0f 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" @@ -76,7 +76,7 @@ // ИмяНастройки - Строка - Имя настройки, см. ЮТФабрика.ПараметрыИсполненияТеста // ЗначениеПоУмолчанию - Произвольный - Значение по умолчанию // СтрогийУровеньИсполнения - Булево - Признак, стоит ли проверять наличие настройки у родительских элементов. -// Ложь - По умолчанию, будет выполнен поиск и получение значения для родителей (набор, модуль), +// Ложь - По умолчанию, будет выполнен поиск и получение значения для родителей (набор, модуль), // если значения для текущего элемента не установлено. // Истина - Получение настройки только для текущего элемента. // diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index edc65b829..97b0f8f6a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -116,9 +116,13 @@ Результат.Успешно = РезультатПередачиФайлов <> Неопределено; Если Результат.Успешно Тогда - Результат.СохраняемыйКонтекстКлиент = Новый Структура("РабочийКаталог, ПолноеИмя", ЮТНастройкиВыполнения.КаталогПроекта(), Параметры.ПолныйПуть); + Результат.СохраняемыйКонтекстКлиент = Новый Структура("РабочийКаталог, ПолноеИмя", + ЮТНастройкиВыполнения.КаталогПроекта(), + Параметры.ПолныйПуть); + + ПолноеИмяСервер = ЮТФайлы.ОбъединитьПути(Результат.СохраняемыйКонтекстСервер.РабочийКаталог, Параметры.ПутьКФайлуПроекта); Результат.СохраняемыйКонтекстСервер = РезультатПередачиФайлов; - Результат.СохраняемыйКонтекстСервер.Вставить("ПолноеИмя", ЮТФайлы.ОбъединитьПути(Результат.СохраняемыйКонтекстСервер.РабочийКаталог, Параметры.ПутьКФайлуПроекта)); + Результат.СохраняемыйКонтекстСервер.Вставить("ПолноеИмя", ПолноеИмяСервер); КонецЕсли; ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(Параметры, Результат); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index df5ffa9df..8248e8146 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -48,7 +48,7 @@ // Регистрирует ошибку загрузки тестов // // Параметры: -// Объект - Структура - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля или см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора или см. ЮТФабрикаСлужебный.ОписаниеТеста +// Объект - Структура - Описание регистрируемого модуля, набора или теста // Описание - Строка - Описания ошибки, места возникновения // Ошибка - ИнформацияОбОшибке Процедура ЗарегистрироватьОшибкуЧтенияТестов(Объект, Описание, Ошибка) Экспорт diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index d90f6f410..3f0552528 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -226,7 +226,7 @@ // Вызов события "ПослеЧтенияСценариев" // Параметры: -// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах +// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей Процедура ПослеЧтенияСценариев(Сценарии) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(Сценарии); 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 118bcc14f..8f4c98a26 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" @@ -26,10 +26,13 @@ // Параметры: // ИсходнаяСтрока - Строка - Строка, к которой будет добавлена дополнительная строка. // ДополнительнаяСтрока - Строка - Строка, которую нужно добавить к исходной строке. -// Разделитель - Строка - Символ или набор символов, используемых для разделения исходной и дополнительной строк. По умолчанию используется точка с запятой (";"). +// Разделитель - Строка - Символ или набор символов, используемых для разделения исходной и дополнительной строк. +// По умолчанию используется точка с запятой (";"). // // Возвращаемое значение: -// Строка - Новая строка, образованная объединением исходной и дополнительной строк с помощью указанного разделителя. Если дополнительная строка пустая, то возвращается исходная строка. Если исходная строка пустая, а дополнительная нет, то возвращается дополнительная строка. +// Строка - Новая строка, образованная объединением исходной и дополнительной строк с помощью указанного разделителя. +// Если дополнительная строка пустая, то возвращается исходная строка. +// Если исходная строка пустая, а дополнительная нет, то возвращается дополнительная строка. // // Пример: // ИсходнаяСтрока = "Привет"; @@ -57,14 +60,16 @@ // Ограничения: // - Метод не изменяет исходную строку, а создает новый массив строк на ее основе. // - В отличие от СтрРазделить, в качестве разделителя используется вся переданная строка, а не любой из символов, входящих в нее. -// - Отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке. +// - Отсекает незначащие символы, стоящие слева от первого значащего символа в строке, +// и пробелы, стоящие справа от последнего значащего символа в строке. // // Параметры: // Значение - Строка - Строка, которую нужно разделить на подстроки. // Разделитель - Строка - Символ или набор символов, используемых для разделения строки на подстроки. По умолчанию используется точка с запятой (";"). // // Возвращаемое значение: -// Массив из Строка - Массив строк, содержащий подстроки, полученные в результате разделения исходной строки. Если исходная строка пустая, то возвращается пустой массив. +// Массив из Строка - Массив строк, содержащий подстроки, полученные в результате разделения исходной строки. +// Если исходная строка пустая, то возвращается пустой массив. // // Пример: // Значение = "Привет; Мир; Как дела?"; @@ -108,11 +113,14 @@ // Возвращает строку, содержащую все русские буквы в указанном регистре. // // Параметры: -// НижнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в нижнем регистре. По умолчанию равно Истина. -// ВерхнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в верхнем регистре. По умолчанию равно Ложь. +// НижнийРегистр - Булево - Если значение равно `Истина`, то в создаваемой строке будут использованы буквы в нижнем регистре. +// По умолчанию равно `Истина`. +// ВерхнийРегистр - Булево - Если значение равно `Истина`, то в создаваемой строке будут использованы буквы в верхнем регистре. +// По умолчанию равно `Ложь`. // // Возвращаемое значение: -// Строка - Новая строка, содержащая все русские буквы в указанном регистре. Если оба параметра НижнийРегистр и ВерхнийРегистр равны Истина, то в создаваемой строке будут использованы буквы в обоих регистрах. +// Строка - Новая строка, содержащая все русские буквы в указанном регистре. +// Если оба параметра НижнийРегистр и ВерхнийРегистр равны ``Истина`, то в создаваемой строке будут использованы буквы в обоих регистрах. // // Пример: // Результат = РусскиеБуквы(Истина, Ложь); // Результат будет равен "абвгдеёжзийклмнопрстуфхцчшщъыьэюя". @@ -127,11 +135,14 @@ // Возвращает строку, содержащую все английские буквы в указанном регистре. // // Параметры: -// НижнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в нижнем регистре. По умолчанию равно Истина. -// ВерхнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в верхнем регистре. По умолчанию равно Ложь. +// НижнийРегистр - Булево - Если значение равно `Истина`, то в создаваемой строке будут использованы буквы в нижнем регистре. +// По умолчанию равно `Истина`. +// ВерхнийРегистр - Булево - Если значение равно `Истина`, то в создаваемой строке будут использованы буквы в верхнем регистре. +// По умолчанию равно `Ложь`. // // Возвращаемое значение: -// Строка - Новая строка, содержащая все английские буквы в указанном регистре. Если оба параметра НижнийРегистр и ВерхнийРегистр равны Истина, то в создаваемой строке будут использованы буквы в обоих регистрах. +// Строка - Новая строка, содержащая все английские буквы в указанном регистре. +// Если оба параметра НижнийРегистр и ВерхнийРегистр равны `Истина`, то в создаваемой строке будут использованы буквы в обоих регистрах. // // Пример: // Результат = АнглийскиеБуквы(Истина, Ложь); // Результат будет равен "abcdefghijklmnopqrstuvwxyz". @@ -320,6 +331,7 @@ // Строка - Локализованное сообщение платформы Функция ЛокализованноеСообщениеПлатформы(СтрокаНаРазныхЯзыках) Экспорт + //@skip-check bsl-nstr-string-literal-format Возврат НСтр(СтрокаНаРазныхЯзыках, ЮТОкружение.ЛокальПлатформы()); КонецФункции 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 ac60a1ea0..6761cb7f1 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" @@ -158,9 +158,10 @@ // Число - Случайное положительное число в указанном диапазоне. // // Пример: -// Результат = СлучайноеПоложительноеЧисло(); // Результат будет содержать случайное целое положительное число от 1 до максимального значения для целых чисел. -// Результат = СлучайноеПоложительноеЧисло(10); // Результат будет содержать случайное целое положительное число от 1 до 10. -// Результат = СлучайноеПоложительноеЧисло(10, 2); // Результат будет содержать случайное положительное число от 1 до 10 с двумя знаками после запятой. +// Результат = СлучайноеПоложительноеЧисло(); // Результат будет содержать случайное целое положительное число в интервал [1, MAX] +// Результат = СлучайноеПоложительноеЧисло(10); // Результат будет содержать случайное целое положительное число в интервал [1, 10]. +// Результат = СлучайноеПоложительноеЧисло(10, 2); // Результат будет содержать случайное положительное число в интервал [1, 10] +// // Точность - два знаками после запятой. Функция СлучайноеПоложительноеЧисло(Максимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт Возврат СлучайноеЧисло(1, Максимум, ЗнаковПослеЗапятой); @@ -180,9 +181,10 @@ // Число - Случайное отрицательное число в указанном диапазоне. // // Пример: -// Результат = СлучайноеОтрицательноеЧисло(); // Результат будет содержать случайное целое отрицательное число от минимального значения для целых чисел до -1. -// Результат = СлучайноеОтрицательноеЧисло(-10); // Результат будет содержать случайное целое отрицательное число от -10 до -1. -// Результат = СлучайноеОтрицательноеЧисло(-10, 2); // Результат будет содержать случайное отрицательное число от -10 до -1 с двумя знаками после запятой. +// Результат = СлучайноеОтрицательноеЧисло(); // Результат будет содержать случайное целое отрицательное число в интервал [MIN, -1] +// Результат = СлучайноеОтрицательноеЧисло(-10); // Результат будет содержать случайное целое отрицательное число в интервал [-10, -1]. +// Результат = СлучайноеОтрицательноеЧисло(-10, 2); // Результат будет содержать случайное отрицательное число в интервал [-10, -1] +// // Точность - два знаками после запятой. Функция СлучайноеОтрицательноеЧисло(Знач Минимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт Если Минимум <> Неопределено Тогда @@ -279,7 +281,8 @@ // Результат = СлучайнаяДата(); // Результат будет содержать случайную дату в диапазоне от 01.01.0001 до 31.12.3999. // Результат = СлучайнаяДата('01.01.2022', '31.12.2022'); // Результат будет содержать случайную дату в диапазоне от 01.01.2022 до 31.12.2022. // Результат = СлучайнаяДата('01.01.2022', '01.01.2022'); // Результат будет содержать дату 01.01.2022. -// Результат = СлучайнаяДата('01.01.2022', '01.01.2021'); // Вызовет исключение "Некорректные параметры метода 'СлучайнаяДата': максимальное значение должно быть больше минимального". +// // Вызовет исключение "Некорректные параметры метода 'СлучайнаяДата': максимальное значение должно быть больше минимального". +// Результат = СлучайнаяДата('01.01.2022', '01.01.2021'); Функция СлучайнаяДата(Знач Минимум = '00010101', Знач Максимум = '39991231') Экспорт Если Минимум = Максимум Тогда @@ -334,14 +337,22 @@ // Дата - Случайная дата в будущем, начиная с текущей даты и с учетом указанного интервала. // // Пример: -// Результат = СлучайнаяДатаВБудущем(30, "дней"); // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 30 дней. -// Результат = СлучайнаяДатаВБудущем(1, "месяца"); // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 1 месяц. -// Результат = СлучайнаяДатаВБудущем(1, "года"); // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 1 год. -// Результат = СлучайнаяДатаВБудущем(); // Результат будет содержать случайную дату в будущем, начиная с текущей даты. +// +// // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 30 дней. +// Результат = СлучайнаяДатаВБудущем(30, "дней"); +// +// // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 1 месяц. +// Результат = СлучайнаяДатаВБудущем(1, "месяца"); +// +// // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 1 год. +// Результат = СлучайнаяДатаВБудущем(1, "года"); +// +// // Результат будет содержать случайную дату в будущем, начиная с текущей даты. +// Результат = СлучайнаяДатаВБудущем(); Функция СлучайнаяДатаВБудущем(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт //@skip-check use-non-recommended-method - Возврат СлучайнаяДатаПосле(ТекущаяДата(), Интервал, ТипИнтервала); + Возврат СлучайнаяДатаПосле(ТекущаяДата(), Интервал, ТипИнтервала); // BSLLS:DeprecatedCurrentDate-off КонецФункции @@ -363,14 +374,22 @@ // Дата - Случайная дата в прошлом, начиная с текущей даты и с учетом указанного интервала. // // Пример: -// Результат = СлучайнаяДатаВПрошлом(30, "дней"); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 30 дней. -// Результат = СлучайнаяДатаВПрошлом(1, "месяца"); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 1 месяц. -// Результат = СлучайнаяДатаВПрошлом(1, "года"); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 1 год. -// Результат = СлучайнаяДатаВПрошлом(); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты. +// +// // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 30 дней. +// Результат = СлучайнаяДатаВПрошлом(30, "дней"); +// +// // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 1 месяц. +// Результат = СлучайнаяДатаВПрошлом(1, "месяца"); +// +// // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 1 год. +// Результат = СлучайнаяДатаВПрошлом(1, "года"); +// +// // Результат будет содержать случайную дату в прошлом, начиная с текущей даты. +// Результат = СлучайнаяДатаВПрошлом(); Функция СлучайнаяДатаВПрошлом(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт //@skip-check use-non-recommended-method - Возврат СлучайнаяДатаДо(ТекущаяДата(), Интервал, ТипИнтервала); + Возврат СлучайнаяДатаДо(ТекущаяДата(), Интервал, ТипИнтервала); // BSLLS:DeprecatedCurrentDate-off КонецФункции @@ -392,10 +411,18 @@ // Дата - Случайная дата после указанной даты и с учетом указанного интервала. // // Пример: -// Результат = СлучайнаяДатаПосле('01.01.2022', 30, "дней"); // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 30 дней. -// Результат = СлучайнаяДатаПосле('01.01.2022', 1, "месяца"); // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 1 месяц. -// Результат = СлучайнаяДатаПосле('01.01.2022', 1, "года"); // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 1 год. -// Результат = СлучайнаяДатаПосле('01.01.2022'); // Результат будет содержать случайную дату после 01.01.2022. +// +// // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 30 дней. +// Результат = СлучайнаяДатаПосле('01.01.2022', 30, "дней"); +// +// // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 1 месяц. +// Результат = СлучайнаяДатаПосле('01.01.2022', 1, "месяца"); +// +// // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 1 год. +// Результат = СлучайнаяДатаПосле('01.01.2022', 1, "года"); +// +// // Результат будет содержать случайную дату после 01.01.2022. +// Результат = СлучайнаяДатаПосле('01.01.2022'); Функция СлучайнаяДатаПосле(Дата, Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт ИнтервалНеУказан = Интервал = Неопределено И ТипИнтервала = Неопределено; @@ -755,7 +782,8 @@ // || --- | --- | // || Значение 1 | Значение 2 | // || Значение 3 | Значение 4 |"; -// Результат = СтруктураMarkDown("Заголовок1", Строки); // Результат будет содержать структуру, содержащую данные из таблицы Markdown, где ключом является значение столбца "Заголовок1". +// // Результат будет содержать структуру, содержащую данные из таблицы Markdown, где ключом является значение столбца "Заголовок1". +// Результат = СтруктураMarkDown("Заголовок1", Строки); Функция СтруктураMarkDown(Ключ, Строки) Экспорт Таблица = ТаблицаMarkDown(Строки); 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 218679b17..2a8b20b9b 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" @@ -147,8 +147,12 @@ // * exitCode - Строка - Путь к файлу, в который будет записан коды выхода // * projectPath - Строка - Путь к каталогу с файлами проекта тестирования, репозиторию // * ПодключатьВнешниеКомпоненты - Булево - Выполнять установку и подключение внешних компонент при старте. -// Если выключено и включен запрет синхронных вызовов, то компоненты не будут доступы в тонком клиенте. -// Если выключено и разрешены синхронные вызовы, то компоненты можно установить вручную и тогда они будут доступны на клиенте. +// Если выключено и включен запрет синхронных вызовов, +// то компоненты не будут доступы в тонком клиенте. +// Если выключено и разрешены синхронные вызовы, +// то компоненты можно установить вручнуюи тогда они будут доступны на клиенте. +// * ДымовыеТесты - Булево - Рубильник использования дымовых тестов +// - Структура - Настройки дымовых тестов Функция ПараметрыЗапуска() Экспорт Параметры = Новый Структура; @@ -458,10 +462,10 @@ // - Массив из Строка - Список тестовых наборов // * paths - Неопределено - Нет фильтрации по путям // - Массив из Строка - Список путей до тестовых методов, путь может быть не полным. -// Например: -// + tests - Ищем тесты в расширении tests -// + tests.ОМ_ОбщегоНазначения - Ищем тесты в модуле ОМ_ОбщегоНазначения расширения tests -// + tests.ОМ_ОбщегоНазначения.ПолучитьЗначениеРеквизита - указание конкретного теста +// Например: +// + tests - Ищем тесты в расширении tests +// + tests.ОМ_ОбщегоНазначения - Ищем тесты в модуле ОМ_ОбщегоНазначения расширения tests +// + tests.ОМ_ОбщегоНазначения.ПолучитьЗначениеРеквизита - указание конкретного теста // * tags - Неопределено - Нет фильтрации по тегам // - Массив из Строка - Список тэгов // * contexts - Неопределено - Нет фильтрации по контекстам diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" index e51812f44..2f18f7ff0 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" @@ -57,12 +57,22 @@ Значение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] = Вычислить("Значение" + Инд); + Для Инд = 0 По Данные.Колонки.Количество() -1 Цикл + Строка[Инд] = Значения[Инд]; КонецЦикла; УстановитьФлаги(); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" index 83d84e198..d80df0f26 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" @@ -78,7 +78,8 @@ // РеквизитыЗаполнения - Структура - Значения реквизитов заполнения создаваемого объекта базы // - Неопределено // ОграничениеТипа - Тип, ОписаниеТипов - Испольуется для ограничения типа составного реквизита, будет сгерерировано значение указанного типа -// - Неопределено - Будет сгенерировано значение, на основании типа реквизита, если реквизит составной, то будет использован случайный тип +// - Неопределено - Будет сгенерировано значение, на основании типа реквизита, +// если реквизит составной, то будет использован случайный тип // // Возвращаемое значение: // ОбщийМодуль - Конструктор diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" index cb7d349be..e62c47339 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" @@ -75,7 +75,8 @@ // РеквизитыЗаполнения - Структура - Значения реквизитов заполнения создаваемого объекта базы // - Неопределено // ОграничениеТипа - Тип, ОписаниеТипов - Испольуется для ограничения типа составного реквизита, будет сгерерировано значение указанного типа -// - Неопределено - Будет сгенерировано значение, на основании типа реквизита, если реквизит составной, то будет использован случайный тип +// - Неопределено - Будет сгенерировано значение, на основании типа реквизита, +// если реквизит составной, то будет использован случайный тип // // Возвращаемое значение: // ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index ed02fc1bd..7d155d97a 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -505,8 +505,9 @@ КонецЦикла; - Возврат СтрШаблон(" + Возврат СтрШаблон(" | %3 |", Сдвиг, Высота + 2, Текст); From eb1ea74c264cc12d8a3e315cc252d8db4936e7ba Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 19 Sep 2024 23:18:39 +0300 Subject: [PATCH 06/56] =?UTF-8?q?fix(sonar):=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 2 +- .../Module.bsl" | 2 +- .../Module.bsl" | 22 +++++----------- .../Module.bsl" | 26 ++++++++++++++----- .../Module.bsl" | 4 +-- .../ObjectModule.bsl" | 15 ++++++++--- .../Module.bsl" | 4 +-- 8 files changed, 45 insertions(+), 32 deletions(-) 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 274b23c9e..335d8fab5 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" @@ -801,7 +801,7 @@ Иначе Представление = Строка(Объект); - ПредставлениеТипа = ПредставлениеТипа(ТипОбъекта); // Для ссылочных + ПредставлениеТипа = ЮТТипыДанныхСлужебный.ПредставлениеТипа(ТипОбъекта); // Для ссылочных КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index af2b406c1..275c6de8e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -144,7 +144,7 @@ Если РезультатТеста.Статус = Статусы.Ожидание Тогда Описание.statusDetails.message = "Тест не был вызван"; Иначе - Описание.statusDetails.message = "Тест не успешен, но нет сообщений об ошибках" + Описание.statusDetails.message = "Тест не успешен, но нет сообщений об ошибках"; КонецЕсли; КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index fb4d5236e..e19ed7835 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -129,7 +129,7 @@ Если Существует Тогда ОбработчикПроверки = Новый ОписаниеОповещения("ПослеПроверкиКаталога", ЭтотОбъект, Параметры); ЮТФайлы.ЭтоКаталог(ПутьКОтчету, ОбработчикПроверки); - Возврат + Возврат; КонецЕсли; Формат = Параметры.ПараметрыФормирования.Формат; 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 45e03d328..1dd8ff6b1 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" @@ -31,17 +31,11 @@ Если ТипЗнч(ОписаниеПроверки.ОбъектПроверки.ИмяСвойства) = Тип("Число") Тогда - ВставкаСвойствоИндекс = СтрШаблон( - " содержит значение по индексу `%1`, которое", - ОписаниеПроверки.ОбъектПроверки.ИмяСвойства - ); + ВставкаСвойствоИндекс = СтрШаблон(" содержит значение по индексу `%1`, которое", ОписаниеПроверки.ОбъектПроверки.ИмяСвойства); ИначеЕсли ЗначениеЗаполнено(ОписаниеПроверки.ОбъектПроверки.ИмяСвойства) Тогда - ВставкаСвойствоИндекс = СтрШаблон( - " содержит свойство `%1`, которое", - ОписаниеПроверки.ОбъектПроверки.ИмяСвойства - ); + ВставкаСвойствоИндекс = СтрШаблон(" содержит свойство `%1`, которое", ОписаниеПроверки.ОбъектПроверки.ИмяСвойства); Иначе ВставкаСвойствоИндекс = ""; @@ -57,13 +51,11 @@ ТекстСообщения = ""; // Тело сообщения - ТекстСообщения = СтрШаблон( - "ожидали, что %1 %2%3 %4, но это не так.", - ОбъектПроверки, - ПредставлениеЗначения, - ВставкаСвойствоИндекс, - ТекстОжидания - ); + ТекстСообщения = СтрШаблон("ожидали, что %1 %2%3 %4, но это не так.", + ОбъектПроверки, + ПредставлениеЗначения, + ВставкаСвойствоИндекс, + ТекстОжидания); Возврат ТекстСообщения; 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 8f4c98a26..73d4564ee 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" @@ -346,12 +346,10 @@ // Булево - Соответствует шаблону Функция СоответствуетШаблону(Строка, Шаблон) Экспорт - Если Шаблон = "" Тогда - Возврат Ложь; - ИначеЕсли Шаблон = "*" Тогда - Возврат ЗначениеЗаполнено(Строка); - ИначеЕсли НЕ СтрНайти(Шаблон, "*") Тогда - Возврат СтрСравнить(Строка, Шаблон) = 0; + Результат = Неопределено; + + Если ЭтоПростойШаблон(Строка, Шаблон, Результат) Тогда + Возврат Результат; КонецЕсли; Длина = СтрДлина(Строка); @@ -411,4 +409,20 @@ КонецФункции +Функция ЭтоПростойШаблон(Строка, Шаблон, Результат) + + Если Шаблон = "" Тогда + Результат = Ложь; + ИначеЕсли Шаблон = "*" Тогда + Результат = ЗначениеЗаполнено(Строка); + ИначеЕсли НЕ СтрНайти(Шаблон, "*") Тогда + Результат = СтрСравнить(Строка, Шаблон) = 0; + Иначе + Возврат Ложь; + КонецЕсли; + + Возврат Истина; + +КонецФункции + #КонецОбласти 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 6761cb7f1..1adebfd10 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" @@ -628,8 +628,8 @@ // Строка - Уникальная строка на основе префикса и уникального идентификатора. // // Пример: -// Результат = УникальнаяСтрока(); // Результат будет содержать уникальную строку на основе уникального идентификатора. -// Результат = УникальнаяСтрока("Префикс_"); // Результат будет содержать уникальную строку на основе префикса "Префикс_" и уникального идентификатора. +// Результат = УникальнаяСтрока(); // Результат будет содержать строку на основе уникального идентификатора. +// Результат = УникальнаяСтрока("Префикс_"); // Результат будет содержать строку на основе префикса "Префикс_" и уникального идентификатора. Функция УникальнаяСтрока(Префикс = "") Экспорт Возврат Префикс + Новый УникальныйИдентификатор(); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" index 2f18f7ff0..b16b6f2bd 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242RecordSet/ObjectModule.bsl" @@ -21,14 +21,18 @@ #Область ОписаниеПеременных //@skip-check object-module-export-variable -Перем Fields Экспорт; +Перем Fields Экспорт; // BSLLS:ExportVariables-off +// ТаблицаЗначений - Хранит данные эмулируемого объекта Перем Данные; #КонецОбласти #Область ПрограммныйИнтерфейс +// BSLLS:NumberOfParams-off +// BSLLS:NumberOfOptionalParams-off + // Добавляет запись в набор данных. Это данные, которые могут быть прочитаны через интерфейс RecordSet // // Параметры: @@ -57,7 +61,8 @@ Значение9 = Неопределено, Значение10 = Неопределено) Экспорт - Значения = Новый Массив(10); + КоличествоПараметров = 10; + Значения = Новый Массив(КоличествоПараметров); Значения[0] = Значение1; Значения[1] = Значение2; Значения[2] = Значение3; @@ -71,7 +76,7 @@ Строка = Данные.Добавить(); - Для Инд = 0 По Данные.Колонки.Количество() -1 Цикл + Для Инд = 0 По Данные.Колонки.Количество() - 1 Цикл Строка[Инд] = Значения[Инд]; КонецЦикла; @@ -80,6 +85,8 @@ Возврат ЭтотОбъект; КонецФункции +// BSLLS:NumberOfParams-on +// BSLLS:NumberOfOptionalParams-on // Переход к первой строке набора Процедура MoveFirst() Экспорт @@ -120,7 +127,7 @@ Если Данные <> Неопределено И Данные.Количество() <> 0 Тогда Значение = Данные[AbsolutePosition][ИндексПоля]; Иначе - Значение = Неопределено + Значение = Неопределено; КонецЕсли; //@skip-check constructor-function-return-section diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index 7d155d97a..70369845c 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -818,7 +818,7 @@ &НаКлиенте Процедура ОбновитьДоступностьСравнения() - Данные = ДанныеТекущейОшибки();; + Данные = ДанныеТекущейОшибки(); Элементы.Сравнить.Доступность = Данные <> Неопределено И (НЕ ПустаяСтрока(Данные.ОжидаемоеЗначение) ИЛИ НЕ ПустаяСтрока(Данные.ФактическоеЗначение)); КонецПроцедуры @@ -942,7 +942,7 @@ КонецФункции &НаКлиенте -Процедура ОтобразитьДанныеОшибки(); +Процедура ОтобразитьДанныеОшибки() ДанныеТеста = Элементы.ДеревоТестов.ТекущиеДанные; Если ДанныеТеста = Неопределено Или НЕ ЗначениеЗаполнено(ДанныеТеста.Ошибки) Тогда From c970efe28a3d5b78078a7204af44c108e3a96554 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 29 Jan 2023 23:46:50 +0300 Subject: [PATCH 07/56] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=81=D1=82=D1=80?= =?UTF-8?q?=D1=83=D0=BA=D1=82=D0=BE=D1=80=20=D0=BA=D0=BE=D0=BB=D0=BB=D0=B5?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 202 ++++++++++++++++++ ...0\265\320\272\321\206\320\270\320\271.mdo" | 9 + .../src/Configuration/Configuration.mdo | 1 + 3 files changed, 212 insertions(+) create mode 100644 "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/Module.bsl" create mode 100644 "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271.mdo" 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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/Module.bsl" new file mode 100644 index 000000000..71b37276d --- /dev/null +++ "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/Module.bsl" @@ -0,0 +1,202 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2022 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +///////////////////////////////////////////////////////////////////////////////// +// Экспортные процедуры и функции для служебного использования внутри подсистемы +///////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Варианты. +// +// Параметры: +// Реквизиты - Строка - Реквизиты +// +// Возвращаемое значение: +// ОбщийМодуль +Функция Инициализировать(Реквизиты) Экспорт + + ОписаниеКоллекции = ОписаниеКоллекции(); + + Ключи = Новый Структура(Реквизиты); + + Для Каждого Элемент Из Ключи Цикл + ДобавитьКолонку(Элемент.Ключ); + КонецЦикла; + + ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), ОписаниеКоллекции); + + Возврат ЮТКонструкторКоллекции; + +КонецФункции + +Функция ДобавитьКолонку(Имя, ТипЗначения = Неопределено, ЗначениеПоУмолчанию = Неопределено) Экспорт + + ОписаниеКоллекции = ОписаниеКоллекции(); + + ОписаниеКолонки = ОписаниеКолонки(Имя, ТипЗначения, ЗначениеПоУмолчанию); + + ОписаниеКоллекции.Колонки.Добавить(ОписаниеКолонки); + ЮТОбщий.Инкремент(ОписаниеКоллекции.КоличествоРеквизитов); + + Возврат ЮТКонструкторКоллекции; + +КонецФункции + +Функция Добавить(Значение, + Значение2 = Неопределено, + Значение3 = Неопределено, + Значение4 = Неопределено, + Значение5 = Неопределено, + Значение6 = Неопределено, + Значение7 = Неопределено, + Значение8 = Неопределено, + Значение9 = Неопределено, + Значение10 = Неопределено) Экспорт + + ОписаниеКоллекции = ОписаниеКоллекции(); + + Запись = Новый Структура(); + Значения = Новый Массив(); + + Если ОписаниеКоллекции.КоличествоРеквизитов > 0 Тогда + Значения.Добавить(Значение); + КонецЕсли; + + Если ОписаниеКоллекции.КоличествоРеквизитов > 1 Тогда + Значения.Добавить(Значение2); + КонецЕсли; + + Если ОписаниеКоллекции.КоличествоРеквизитов > 2 Тогда + Значения.Добавить(Значение3); + КонецЕсли; + + Если ОписаниеКоллекции.КоличествоРеквизитов > 3 Тогда + Значения.Добавить(Значение4); + КонецЕсли; + + Если ОписаниеКоллекции.КоличествоРеквизитов > 4 Тогда + Значения.Добавить(Значение5); + КонецЕсли; + + Если ОписаниеКоллекции.КоличествоРеквизитов > 5 Тогда + Значения.Добавить(Значение6); + КонецЕсли; + + Если ОписаниеКоллекции.КоличествоРеквизитов > 6 Тогда + Значения.Добавить(Значение7); + КонецЕсли; + + Если ОписаниеКоллекции.КоличествоРеквизитов > 7 Тогда + Значения.Добавить(Значение8); + КонецЕсли; + + Если ОписаниеКоллекции.КоличествоРеквизитов > 8 Тогда + Значения.Добавить(Значение9); + КонецЕсли; + + Если ОписаниеКоллекции.КоличествоРеквизитов > 9 Тогда + Значения.Добавить(Значение10); + КонецЕсли; + + Для Инд = 0 По ОписаниеКоллекции.Колонки.ВГраница() Цикл + + ОписаниеКолонки = ОписаниеКоллекции.Колонки[Инд]; + Значение = Значения[Инд]; + + Если Значение = Неопределено Тогда + Значение = ОписаниеКолонки.ЗначениеПоУмолчанию; + КонецЕсли; + + Если ОписаниеКолонки.ТипЗначения <> Неопределено Тогда + Значение = ОписаниеКолонки.ТипЗначения.ПривестиЗначение(Значение); + КонецЕсли; + + Запись.Вставить(ОписаниеКолонки.Имя, Значение); + + КонецЦикла; + + ОписаниеКоллекции.Данные.Добавить(Запись); + + Возврат ЮТКонструкторКоллекции; + +КонецФункции + +// Возвращает данные коллекции +// +// Возвращаемое значение: +// Массив из Структура +Функция Данные() Экспорт + + Возврат ОписаниеКоллекции().Данные; + +КонецФункции + +#КонецОбласти + +///////////////////////////////////////////////////////////////////////////////// +// Процедуры и функции, составляющие внутреннюю реализацию модуля +///////////////////////////////////////////////////////////////////////////////// +#Область СлужебныеПроцедурыИФункции + +// Описание коллекции. +// +// Возвращаемое значение: +// см. НовыйОписаниеКоллекции +Функция ОписаниеКоллекции() + + Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста()); + +КонецФункции + +// Новый описание коллекции. +// +// Возвращаемое значение: +// Структура - Новый описание коллекции: +// * Колонки - Массив из см. ОписаниеКолонки +// * Данные - Массив из Произвольный +// * КоличествоРеквизитов - Число +Функция НовыйОписаниеКоллекции() + + Описание = Новый Структура; + Описание.Вставить("Колонки", Новый Массив); + Описание.Вставить("Данные", Новый Массив); + Описание.Вставить("КоличествоРеквизитов", 0); + + Возврат Описание; + +КонецФункции + +Функция ОписаниеКолонки(Имя, ТипЗначения = Неопределено, ЗначениеПоУмолчанию = Неопределено) + + Описание = Новый Структура("Имя, ТипЗначения, ЗначениеПоУмолчанию"); + Описание.Имя = Имя; + Описание.ТипЗначения = ТипЗначения; + Описание.ЗначениеПоУмолчанию = ЗначениеПоУмолчанию; + + Возврат Описание; + +КонецФункции + +Функция КлючКонтекста() + + Возврат "ВариантыТеста"; + +КонецФункции + +#КонецОбласти 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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271.mdo" "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271.mdo" new file mode 100644 index 000000000..b5603f473 --- /dev/null +++ "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271.mdo" @@ -0,0 +1,9 @@ + + + ЮТКонструкторКоллекций + + ru + Конструктор коллекций + + true + diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 6b0e3ed1c..ca74ec2c2 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -88,6 +88,7 @@ CommonModule.ЮТКомпонентыСлужебныйКлиент CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанныхСлужебный + CommonModule.ЮТКонструкторКоллекций CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер CommonModule.ЮТКонтекстСлужебный CommonModule.ЮТКонтекстСлужебныйВызовСервера From 9bcb1a82649d6220a64265eafa15e4a372993096 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sat, 21 Sep 2024 22:47:55 +0300 Subject: [PATCH 08/56] =?UTF-8?q?feat(data):=20=D0=BA=D0=BE=D0=BD=D1=81?= =?UTF-8?q?=D1=82=D1=80=D1=83=D0=BA=D1=82=D0=BE=D1=80=20=D0=B4=D0=B2=D0=B8?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 12 +- ...0\265\321\200\320\262\320\265\321\200.mdo" | 4 +- .../Module.bsl" | 62 +++++- .../Module.bsl" | 12 ++ .../Module.bsl" | 6 + .../src/Configuration/Configuration.mdo | 3 +- .../ObjectModule.bsl" | 189 ++++++++++++++++++ ...0\266\320\265\320\275\320\270\320\271.mdo" | 13 ++ .../ObjectModule.bsl" | 2 +- .../Module.bsl" | 60 ++++++ ...0\265\321\200\320\262\320\265\321\200.mdo" | 7 + .../Module.bsl" | 104 ++++++++++ ...\275\320\270\320\271_\320\234\320\236.mdo" | 7 + tests/src/Configuration/Configuration.mdo | 2 + 14 files changed, 469 insertions(+), 14 deletions(-) rename "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/Module.bsl" => "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" (92%) rename "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271.mdo" => "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" (58%) create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271.mdo" create mode 100644 "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" create mode 100644 "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" create mode 100644 "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" create mode 100644 "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236.mdo" 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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" similarity index 92% rename from "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/Module.bsl" rename to "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 71b37276d..3ef470e60 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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2022 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. @@ -39,9 +39,9 @@ ДобавитьКолонку(Элемент.Ключ); КонецЦикла; - ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), ОписаниеКоллекции); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), ОписаниеКоллекции); - Возврат ЮТКонструкторКоллекции; + Возврат ЮТКонструкторКоллекцийСлужебныйКлиентСервер; КонецФункции @@ -54,7 +54,7 @@ ОписаниеКоллекции.Колонки.Добавить(ОписаниеКолонки); ЮТОбщий.Инкремент(ОписаниеКоллекции.КоличествоРеквизитов); - Возврат ЮТКонструкторКоллекции; + Возврат ЮТКонструкторКоллекцийСлужебныйКлиентСервер; КонецФункции @@ -133,7 +133,7 @@ ОписаниеКоллекции.Данные.Добавить(Запись); - Возврат ЮТКонструкторКоллекции; + Возврат ЮТКонструкторКоллекцийСлужебныйКлиентСервер; КонецФункции @@ -160,7 +160,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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271.mdo" "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" similarity index 58% rename from "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271.mdo" rename to "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index b5603f473..5a2c5a6e0 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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271.mdo" +++ "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -1,9 +1,11 @@ - ЮТКонструкторКоллекций + ЮТКонструкторКоллекцийСлужебныйКлиентСервер ru Конструктор коллекций + true true + true 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 43663e90d..6dfa3080d 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" @@ -171,7 +171,7 @@ КонецФункции -Функция ДанныеСтроки(Контекст) Экспорт +Функция ДанныеСтрокиТабличнойЧасти(Контекст) Экспорт Если ПустаяСтрока(Контекст.ТекущаяТабличнаяЧасть) Тогда Возврат Неопределено; @@ -187,6 +187,16 @@ КонецФункции +Функция ДанныеСтрокиКоллекции(Контекст) Экспорт + + Если ЗначениеЗаполнено(Контекст.Данные) Тогда + Возврат Контекст.Данные[Контекст.Данные.ВГраница()]; + Иначе + ВызватьИсключение "Сначала необходимо добавить строку"; + КонецЕсли; + +КонецФункции + Функция ДанныеОбъекта(Контекст) Экспорт Возврат Контекст.Данные; @@ -216,6 +226,22 @@ КонецФункции +Функция ИнициализироватьКонструкторДвижений(Документ, ИмяРегистра) Экспорт + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда + Конструктор = Обработки.ЮТКонструкторДвижений.Создать(); +#Иначе + //@skip-check use-non-recommended-method + Конструктор = ПолучитьФорму("Обработка.ЮТКонструкторДвижений.Форма.КлиентскийКонструктор"); // BSLLS:GetFormMethod-off +#КонецЕсли + + //@skip-check unknown-method-property + Конструктор.Инициализировать(Документ, ИмяРегистра); + + Возврат Конструктор; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -249,6 +275,18 @@ КонецФункции +Функция НовыйКонтекстКонструктораДвижений(Документ, ИмяРегистра) Экспорт + + Контекст = Новый Структура(); + Контекст.Вставить("Данные", Новый Массив()); + Контекст.Вставить("Метаданные", ЮТМетаданные.ОписаниеРегистраДвиженийДокумента(Документ, ИмяРегистра)); + Контекст.Вставить("ДополнительныеСвойства", Новый Структура()); + + //@skip-check constructor-function-return-section + Возврат Контекст; + +КонецФункции + Функция ДанныеТабличнойЧасти(Контекст) Возврат Контекст.Данные[Контекст.ТекущаяТабличнаяЧасть]; @@ -292,7 +330,7 @@ Функция Реквизиты(Контекст) - Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда + Если ФокусНаТабличнойЧасти(Контекст) Тогда Возврат Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть]; Иначе Возврат Контекст.Метаданные.Реквизиты; @@ -306,7 +344,7 @@ Если НЕ Реквизиты.Свойство(ИмяРеквизита) Тогда ИмяОсновнойТаблицы = ЮТМетаданные.НормализованноеИмяТаблицы(Контекст.Метаданные); - Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда + Если ФокусНаТабличнойЧасти(Контекст) Тогда Пояснение = СтрШаблон("Табличная часть `%1.%2` не содержит реквизит `%3`", ИмяОсновнойТаблицы, Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита); Иначе Пояснение = СтрШаблон("`%1` не содержит реквизит `%2`", ИмяОсновнойТаблицы, ИмяРеквизита); @@ -321,8 +359,10 @@ Функция ТекущаяЗапись(Контекст) - Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда - Возврат ДанныеСтроки(Контекст); + Если ФокусНаТабличнойЧасти(Контекст) Тогда + Возврат ДанныеСтрокиТабличнойЧасти(Контекст); + ИначеЕсли ЭтоКонструкторКоллекции(Контекст) Тогда + Возврат ДанныеСтрокиКоллекции(Контекст); Иначе Возврат Контекст.Данные; КонецЕсли; @@ -336,4 +376,16 @@ КонецПроцедуры +Функция ФокусНаТабличнойЧасти(Контекст) + + Возврат Контекст.Свойство("ТекущаяТабличнаяЧасть") И ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть); + +КонецФункции + +Функция ЭтоКонструкторКоллекции(Контекст) + + Возврат ЮТТипыДанныхСлужебный.ЭтоМассива(ТипЗнч(Контекст.Данные)); + +КонецФункции + #КонецОбласти 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 b40fd0ec0..60a38c7b7 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" @@ -307,6 +307,18 @@ КонецФункции +Функция ОписаниеРегистраДвиженийДокумента(Документ, ИмяРегистра) Экспорт + + ПолноеИмяРегистра = Неопределено; + + Если НЕ РегистрыДвиженийДокумента(Документ).Свойство(ИмяРегистра, ПолноеИмяРегистра) Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат ОписаниеОбъектаМетаданных(ПолноеИмяРегистра); + +КонецФункции + // Возвращает текущую версию тестового движка (YAxUnit) // // Возвращаемое значение: 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 1adebfd10..cc4fd2a5e 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" @@ -855,6 +855,12 @@ КонецФункции +Функция КонструкторДвижений(Документ, ИмяРегистра) Экспорт + + Возврат ЮТКонструкторТестовыхДанныхСлужебный.ИнициализироватьКонструкторДвижений(Документ, ИмяРегистра); + +КонецФункции + #Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда // Возвращает конструктор создания объекта XDTO. // diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index ca74ec2c2..965eea9ca 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -87,8 +87,8 @@ CommonModule.ЮТКомпонентыСлужебныйВызовСервера CommonModule.ЮТКомпонентыСлужебныйКлиент CommonModule.ЮТКонструкторВариантов + CommonModule.ЮТКонструкторКоллекцийСлужебныйКлиентСервер CommonModule.ЮТКонструкторТестовыхДанныхСлужебный - CommonModule.ЮТКонструкторКоллекций CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер CommonModule.ЮТКонтекстСлужебный CommonModule.ЮТКонтекстСлужебныйВызовСервера @@ -160,6 +160,7 @@ DataProcessor.ЮТHTTPServiceRequest DataProcessor.ЮТHTTPСервисЗапрос DataProcessor.ЮТRecordSet + DataProcessor.ЮТКонструкторДвижений DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных DataProcessor.ЮТЮнитТесты diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" new file mode 100644 index 000000000..b73576fbf --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" @@ -0,0 +1,189 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271.mdo" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271.mdo" new file mode 100644 index 000000000..57cebc20a --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271.mdo" @@ -0,0 +1,13 @@ + + + + + + + ЮТКонструкторДвижений + + ru + Конструктор движений + + true + diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" index e62c47339..2697a6693 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" @@ -271,7 +271,7 @@ // - Неопределено - Если заполняется объект Функция ДанныеСтроки() Экспорт - Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеСтроки(Контекст); + Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеСтрокиТабличнойЧасти(Контекст); КонецФункции 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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\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\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..9317943b7 --- /dev/null +++ "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,60 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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/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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\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\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..e5e10257d --- /dev/null +++ "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,7 @@ + + + ОМ_ЮТКонструкторКоллекцийСлужебныйКлиентСервер + true + true + true + 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" new file mode 100644 index 000000000..58a27fb04 --- /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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" @@ -0,0 +1,104 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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); + +КонецПроцедуры + +Процедура Установить() Экспорт + + Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); + Покупатель = ЮТест.Данные().СоздатьДокумент("Справочники.Контрагенты"); + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи"); + + ЮТест.ОжидаетЧто(Конструктор) + .Метод("Установить", ЮТКоллекции.ЗначениеВМассиве("Покупатель", Покупатель)).ВыбрасываетИсключение("Сначала необходимо добавить строку"); + + Конструктор + .ДобавитьСтроку() + .Установить("Покупатель", Покупатель); + Данные = Конструктор.ДанныеСтроки(); + ЮТест.ОжидаетЧто(Данные) + .Заполнено() + .Свойство("Покупатель").Равно(Покупатель); + +КонецПроцедуры + +Процедура УстановитьРеквизиты() Экспорт + + ВызватьИсключение "Тест не реализован"; + +КонецПроцедуры + +Процедура Фикция() Экспорт + + ВызватьИсключение "Тест не реализован"; + +КонецПроцедуры + +Процедура ФикцияРеквизитов() Экспорт + + ВызватьИсключение "Тест не реализован"; + +КонецПроцедуры + +Процедура ФикцияОбязательныхПолей() Экспорт + + ВызватьИсключение "Тест не реализован"; + +КонецПроцедуры + +Процедура Инициализировать() Экспорт + + ВызватьИсключение "Тест не реализован"; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236.mdo" new file mode 100644 index 000000000..1459b4c1b --- /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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236.mdo" @@ -0,0 +1,7 @@ + + + Обр_ЮТКонструкторДвижений_МО + true + true + true + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index e6bad0eaa..9e120e874 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -30,6 +30,7 @@ CommonModule.НастройкаYAxUnit CommonModule.Обр_ЮТHTTPСервисЗапрос CommonModule.Обр_ЮТRecordSet_МО + CommonModule.Обр_ЮТКонструкторДвижений_МО CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО CommonModule.ОМ_ДТОткрытиеФормСлужебныйВызовСервера CommonModule.ОМ_Мокито @@ -43,6 +44,7 @@ CommonModule.ОМ_ЮТИсполнительСлужебныйКлиент CommonModule.ОМ_ЮТИсполнительСлужебныйКлиентСервер CommonModule.ОМ_ЮТКоллекции + CommonModule.ОМ_ЮТКонструкторКоллекцийСлужебныйКлиентСервер CommonModule.ОМ_ЮТКонструкторТестовыхДанных CommonModule.ОМ_ЮТМетаданные CommonModule.ОМ_ЮТОбщий From ab628526079959f9aec3f16814065880d7b17422 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 23 Sep 2024 01:13:17 +0300 Subject: [PATCH 09/56] =?UTF-8?q?fix:=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20?= =?UTF-8?q?=D0=B8=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 10 +- .../Module.bsl" | 6 +- .../Module.bsl" | 2 +- .../Module.bsl" | 118 +++++++++++++++++- ...\275\320\270\320\271_\320\234\320\236.mdo" | 2 - 6 files changed, 125 insertions(+), 15 deletions(-) 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" index 45f6fd7e9..e01a19e50 100644 --- "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" @@ -146,7 +146,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 6dfa3080d..e04bc5278 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" @@ -277,9 +277,15 @@ Функция НовыйКонтекстКонструктораДвижений(Документ, ИмяРегистра) Экспорт + ОписаниеРегистра = ЮТМетаданные.ОписаниеРегистраДвиженийДокумента(Документ, ИмяРегистра); + + Если ОписаниеРегистра = Неопределено Тогда + ВызватьИсключение СтрШаблон("Документ %1 не делает движений по регистру ""%2""", Документ, ИмяРегистра); + КонецЕсли; + Контекст = Новый Структура(); Контекст.Вставить("Данные", Новый Массив()); - Контекст.Вставить("Метаданные", ЮТМетаданные.ОписаниеРегистраДвиженийДокумента(Документ, ИмяРегистра)); + Контекст.Вставить("Метаданные", ОписаниеРегистра); Контекст.Вставить("ДополнительныеСвойства", Новый Структура()); //@skip-check constructor-function-return-section @@ -384,7 +390,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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/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 0329dc4bb..90329c5ad 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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/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" @@ -59,7 +59,7 @@ Результат = СоответствияРавны(Данные1, Данные2); - ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипЗначения) Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассив(ТипЗначения) Тогда Результат = МассивыРавны(Данные1, Данные2); @@ -362,7 +362,7 @@ ИскомоеЗначениеНайдено = СтрНайти(ПроверяемоеЗначение, ОжидаемоеЗначение) > 0; - ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипПроверяемогоЗначения) Тогда + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассив(ТипПроверяемогоЗначения) Тогда Индекс = ПроверяемоеЗначение.Найти(ОжидаемоеЗначение); ИскомоеЗначениеНайдено = Индекс <> Неопределено; @@ -670,7 +670,7 @@ ТипСписка = ТипЗнч(ОжидаемоеЗначение); - Если ЮТТипыДанныхСлужебный.ЭтоМассива(ТипСписка) Тогда + Если ЮТТипыДанныхСлужебный.ЭтоМассив(ТипСписка) Тогда Возврат ОжидаемоеЗначение.Найти(ПроверяемоеЗначение) <> Неопределено; Иначе Возврат ОжидаемоеЗначение.НайтиПоЗначению(ПроверяемоеЗначение) <> Неопределено; 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 0cacf5e12..f6a7b39eb 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" @@ -232,7 +232,7 @@ КонецФункции -Функция ЭтоМассива(ТипЗначения) Экспорт +Функция ЭтоМассив(ТипЗначения) Экспорт Возврат ТипЗначения = Тип("Массив") Или ТипЗначения = Тип("ФиксированныйМассив"); 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" index 58a27fb04..75fe9907d 100644 --- "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" @@ -51,7 +51,7 @@ Процедура Установить() Экспорт Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); - Покупатель = ЮТест.Данные().СоздатьДокумент("Справочники.Контрагенты"); + Покупатель = ЮТест.Данные().СоздатьЭлемент("Справочники.Контрагенты"); Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи"); ЮТест.ОжидаетЧто(Конструктор) @@ -69,31 +69,137 @@ Процедура УстановитьРеквизиты() Экспорт - ВызватьИсключение "Тест не реализован"; + // Создаем документ и контрагента + Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); + Контрагент = ЮТест.Данные().СоздатьЭлемент("Справочники.Контрагенты"); + + // Инициализируем конструктор движений + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи"); + + // Добавляем строку и устанавливаем реквизиты + ЗначенияРеквизитов = Новый Структура("Покупатель, Сумма", Контрагент, 1000); + Конструктор.ДобавитьСтроку().УстановитьРеквизиты(ЗначенияРеквизитов); + + // Получаем данные строки + Данные = Конструктор.ДанныеСтроки(); + + // Проверяем, что реквизиты установлены корректно + ЮТест.ОжидаетЧто(Данные) + .Заполнено("Данные конструктора должны быть заполнены структурой") + .ИмеетТип("Структура") + .Свойство("Покупатель").Равно(Контрагент, "Контрагент должен совпадать") + .Свойство("Сумма").Равно(1000, "Сумма должна быть равна 1000"); КонецПроцедуры Процедура Фикция() Экспорт - ВызватьИсключение "Тест не реализован"; + // Создаем документ + Документ = ЮТест.Данные().СоздатьДокумент("Документы.ПриходТовара"); + + // Инициализируем конструктор движений + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ТоварныеЗапасы"); + + // Добавляем строку и устанавливаем фиктивное значение реквизита + Конструктор.ДобавитьСтроку().Фикция("Товар"); + + // Получаем данные строки + Данные = Конструктор.ДанныеСтроки(); + + // Проверяем, что реквизит "Номенклатура" заполнен + ЮТест.ОжидаетЧто(Данные, "Данные строки должны быть заполнены") + .Заполнено() + .Свойство("Товар") + .НеРавно(Неопределено, "Номенклатура должна быть заполнена"); + + // Проверяем, что метод выбрасывает исключение + МассивПараметров = ЮТКоллекции.ЗначениеВМассиве("НесуществующийРеквизит"); + ЮТест.ОжидаетЧто(Конструктор) + .Метод("Фикция", МассивПараметров) + .ВыбрасываетИсключение("`РегистрНакопления.ТоварныеЗапасы` не содержит реквизит `НесуществующийРеквизит`"); КонецПроцедуры Процедура ФикцияРеквизитов() Экспорт - ВызватьИсключение "Тест не реализован"; + // Создаем документ + Документ = ЮТест.Данные().СоздатьДокумент("Документы.ПриходТовара"); + + // Инициализируем конструктор движений + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ТоварныеЗапасы"); + + // Добавляем строку и устанавливаем фиктивные значения реквизитов + Конструктор.ДобавитьСтроку().ФикцияРеквизитов("Товар, Склад, Количество"); + + // Получаем данные строки + Данные = Конструктор.ДанныеСтроки(); + + // Проверяем, что все реквизиты заполнены + ЮТест.ОжидаетЧто(Данные, "Данные строки должны быть заполнены") + .Заполнено() + .Свойство("Товар") + .Заполнено("Товар должн быть заполнен") + .Свойство("Склад") + .Заполнено("Склад должен быть заполнен") + .Свойство("Количество") + .Заполнено("Количество должено быть заполнено"); + + // Проверяем, что при указании несуществующих реквизитов выбрасывается исключение + МассивПараметров = ЮТКоллекции.ЗначениеВМассиве("Несуществующий1"); + ЮТест.ОжидаетЧто(Конструктор) + .Метод("ФикцияРеквизитов", МассивПараметров) + .ВыбрасываетИсключение("`РегистрНакопления.ТоварныеЗапасы` не содержит реквизит `Несуществующий1`"); КонецПроцедуры Процедура ФикцияОбязательныхПолей() Экспорт - ВызватьИсключение "Тест не реализован"; + // Создаем документ + Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); + + // Инициализируем конструктор движений + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ТоварныеЗапасы"); + + // Добавляем строку и заполняем обязательные поля фиктивными значениями + Конструктор.ДобавитьСтроку().ФикцияОбязательныхПолей(); + + // Получаем данные строки + Данные = Конструктор.ДанныеСтроки(); + + // Получаем список обязательных полей из метаданных + ОбязательныеПоля = ЮТКоллекции.ЗначениеВМассиве("Товар", "Склад"); + + // Проверяем, что все обязательные поля заполнены + Утверждение = ЮТест.ОжидаетЧто(Данные); + Для Каждого Поле Из ОбязательныеПоля Цикл + Утверждение.Свойство(Поле) + .Заполнено(); + КонецЦикла; КонецПроцедуры Процедура Инициализировать() Экспорт - ВызватьИсключение "Тест не реализован"; + // Создаем документ + Документ = ЮТест.Данные().СоздатьДокумент("Документы.ПриходТовара"); + + Конструктор = Обработки.ЮТКонструкторДвижений.Создать(); + // Инициализируем конструктор движений + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ТоварныеЗапасы"); + + // Проверяем, что конструктор инициализирован + ЮТест.ОжидаетЧто(Конструктор, "Конструктор должен быть инициализирован") + .НеРавно(Неопределено); + + // Проверяем, что данные конструктора пусты + Данные = Конструктор.Данные(); + ЮТест.ОжидаетЧто(Данные, "Данные конструктора должны быть пустым массивом") + .ИмеетТип("Массив") + .Равно(Новый Массив); + + ЮТест.ОжидаетЧто(ЮТест.Данные()) + .Метод("КонструкторДвижений", ЮТКоллекции.ЗначениеВМассиве(Документ, "НесуществующийРегистр")) + .ВыбрасываетИсключение("Документ " + Документ + " не делает движений по регистру ""НесуществующийРегистр"""); КонецПроцедуры 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236.mdo" index 1459b4c1b..9e7e8bd5d 100644 --- "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236.mdo" @@ -1,7 +1,5 @@ Обр_ЮТКонструкторДвижений_МО - true true - true From 0e5b087d318c0e7e3805b787778a82c6430449bf Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 23 Sep 2024 01:17:29 +0300 Subject: [PATCH 10/56] =?UTF-8?q?fix:=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BD=D0=B5=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D1=83=D0=B5=D0=BC=D1=8B=D0=B9=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB?= =?UTF-8?q?=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 202 ------------------ ...0\265\321\200\320\262\320\265\321\200.mdo" | 11 - .../src/Configuration/Configuration.mdo | 1 - 3 files changed, 214 deletions(-) delete mode 100644 "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" delete mode 100644 "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" 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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\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\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" deleted file mode 100644 index 3ef470e60..000000000 --- "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ /dev/null @@ -1,202 +0,0 @@ -//©///////////////////////////////////////////////////////////////////////////©// -// -// 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. -// -//©///////////////////////////////////////////////////////////////////////////©// - -///////////////////////////////////////////////////////////////////////////////// -// Экспортные процедуры и функции для служебного использования внутри подсистемы -///////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Варианты. -// -// Параметры: -// Реквизиты - Строка - Реквизиты -// -// Возвращаемое значение: -// ОбщийМодуль -Функция Инициализировать(Реквизиты) Экспорт - - ОписаниеКоллекции = ОписаниеКоллекции(); - - Ключи = Новый Структура(Реквизиты); - - Для Каждого Элемент Из Ключи Цикл - ДобавитьКолонку(Элемент.Ключ); - КонецЦикла; - - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), ОписаниеКоллекции); - - Возврат ЮТКонструкторКоллекцийСлужебныйКлиентСервер; - -КонецФункции - -Функция ДобавитьКолонку(Имя, ТипЗначения = Неопределено, ЗначениеПоУмолчанию = Неопределено) Экспорт - - ОписаниеКоллекции = ОписаниеКоллекции(); - - ОписаниеКолонки = ОписаниеКолонки(Имя, ТипЗначения, ЗначениеПоУмолчанию); - - ОписаниеКоллекции.Колонки.Добавить(ОписаниеКолонки); - ЮТОбщий.Инкремент(ОписаниеКоллекции.КоличествоРеквизитов); - - Возврат ЮТКонструкторКоллекцийСлужебныйКлиентСервер; - -КонецФункции - -Функция Добавить(Значение, - Значение2 = Неопределено, - Значение3 = Неопределено, - Значение4 = Неопределено, - Значение5 = Неопределено, - Значение6 = Неопределено, - Значение7 = Неопределено, - Значение8 = Неопределено, - Значение9 = Неопределено, - Значение10 = Неопределено) Экспорт - - ОписаниеКоллекции = ОписаниеКоллекции(); - - Запись = Новый Структура(); - Значения = Новый Массив(); - - Если ОписаниеКоллекции.КоличествоРеквизитов > 0 Тогда - Значения.Добавить(Значение); - КонецЕсли; - - Если ОписаниеКоллекции.КоличествоРеквизитов > 1 Тогда - Значения.Добавить(Значение2); - КонецЕсли; - - Если ОписаниеКоллекции.КоличествоРеквизитов > 2 Тогда - Значения.Добавить(Значение3); - КонецЕсли; - - Если ОписаниеКоллекции.КоличествоРеквизитов > 3 Тогда - Значения.Добавить(Значение4); - КонецЕсли; - - Если ОписаниеКоллекции.КоличествоРеквизитов > 4 Тогда - Значения.Добавить(Значение5); - КонецЕсли; - - Если ОписаниеКоллекции.КоличествоРеквизитов > 5 Тогда - Значения.Добавить(Значение6); - КонецЕсли; - - Если ОписаниеКоллекции.КоличествоРеквизитов > 6 Тогда - Значения.Добавить(Значение7); - КонецЕсли; - - Если ОписаниеКоллекции.КоличествоРеквизитов > 7 Тогда - Значения.Добавить(Значение8); - КонецЕсли; - - Если ОписаниеКоллекции.КоличествоРеквизитов > 8 Тогда - Значения.Добавить(Значение9); - КонецЕсли; - - Если ОписаниеКоллекции.КоличествоРеквизитов > 9 Тогда - Значения.Добавить(Значение10); - КонецЕсли; - - Для Инд = 0 По ОписаниеКоллекции.Колонки.ВГраница() Цикл - - ОписаниеКолонки = ОписаниеКоллекции.Колонки[Инд]; - Значение = Значения[Инд]; - - Если Значение = Неопределено Тогда - Значение = ОписаниеКолонки.ЗначениеПоУмолчанию; - КонецЕсли; - - Если ОписаниеКолонки.ТипЗначения <> Неопределено Тогда - Значение = ОписаниеКолонки.ТипЗначения.ПривестиЗначение(Значение); - КонецЕсли; - - Запись.Вставить(ОписаниеКолонки.Имя, Значение); - - КонецЦикла; - - ОписаниеКоллекции.Данные.Добавить(Запись); - - Возврат ЮТКонструкторКоллекцийСлужебныйКлиентСервер; - -КонецФункции - -// Возвращает данные коллекции -// -// Возвращаемое значение: -// Массив из Структура -Функция Данные() Экспорт - - Возврат ОписаниеКоллекции().Данные; - -КонецФункции - -#КонецОбласти - -///////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции, составляющие внутреннюю реализацию модуля -///////////////////////////////////////////////////////////////////////////////// -#Область СлужебныеПроцедурыИФункции - -// Описание коллекции. -// -// Возвращаемое значение: -// см. НовыйОписаниеКоллекции -Функция ОписаниеКоллекции() - - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()); - -КонецФункции - -// Новый описание коллекции. -// -// Возвращаемое значение: -// Структура - Новый описание коллекции: -// * Колонки - Массив из см. ОписаниеКолонки -// * Данные - Массив из Произвольный -// * КоличествоРеквизитов - Число -Функция НовыйОписаниеКоллекции() - - Описание = Новый Структура; - Описание.Вставить("Колонки", Новый Массив); - Описание.Вставить("Данные", Новый Массив); - Описание.Вставить("КоличествоРеквизитов", 0); - - Возврат Описание; - -КонецФункции - -Функция ОписаниеКолонки(Имя, ТипЗначения = Неопределено, ЗначениеПоУмолчанию = Неопределено) - - Описание = Новый Структура("Имя, ТипЗначения, ЗначениеПоУмолчанию"); - Описание.Имя = Имя; - Описание.ТипЗначения = ТипЗначения; - Описание.ЗначениеПоУмолчанию = ЗначениеПоУмолчанию; - - Возврат Описание; - -КонецФункции - -Функция КлючКонтекста() - - Возврат "ВариантыТеста"; - -КонецФункции - -#КонецОбласти 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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\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\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" deleted file mode 100644 index 5a2c5a6e0..000000000 --- "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ /dev/null @@ -1,11 +0,0 @@ - - - ЮТКонструкторКоллекцийСлужебныйКлиентСервер - - ru - Конструктор коллекций - - true - true - true - diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 965eea9ca..19d40b65d 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -87,7 +87,6 @@ CommonModule.ЮТКомпонентыСлужебныйВызовСервера CommonModule.ЮТКомпонентыСлужебныйКлиент CommonModule.ЮТКонструкторВариантов - CommonModule.ЮТКонструкторКоллекцийСлужебныйКлиентСервер CommonModule.ЮТКонструкторТестовыхДанныхСлужебный CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер CommonModule.ЮТКонтекстСлужебный From 6be136ffd3f8c88b0b9c3fe9d93446b456e56690 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 23 Sep 2024 01:34:55 +0300 Subject: [PATCH 11/56] =?UTF-8?q?doc:=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 12 +++++++ .../Module.bsl" | 31 ++++++++++++++++--- 2 files changed, 38 insertions(+), 5 deletions(-) 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 60a38c7b7..9d7f63764 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" @@ -307,6 +307,17 @@ КонецФункции +// Возвращает описание регистра движений документа. +// +// Параметры: +// Документ - ДокументСсылка, ДокументОбъект, ДокументМенеджер - Документ или менеджер +// - ОбъектМетаданных, Тип - Метаданные или тип документа +// - Строка - Полное имя объекта метаданных +// ИмяРегистра - Строка - Имя регистра движений. +// +// Возвращаемое значение: +// Структура - Описание регистра движений документа +// Неопределено - Документ не делает движений по указанному регистру Функция ОписаниеРегистраДвиженийДокумента(Документ, ИмяРегистра) Экспорт ПолноеИмяРегистра = Неопределено; @@ -315,6 +326,7 @@ Возврат Неопределено; КонецЕсли; + //@skip-check constructor-function-return-section Возврат ОписаниеОбъектаМетаданных(ПолноеИмяРегистра); КонецФункции 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 cc4fd2a5e..791dca4d2 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" @@ -838,12 +838,12 @@ // ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор создания тестовых данных для указанного объекта метаданных. // // Пример: -// Конструктор = КонструкторОбъекта("Справочники.Товары"); -// Конструктор.Установить("Наименование", "Товар 1"); -// Конструктор.Установить("Цена", 100); -// Конструктор.Записать(); // Создает товар с наименованием "Товар 1" и ценой 100. +// Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары") // Используя формат текучих выражений +// .Установить("Наименование", "Товар 1") +// .Установить("Цена", 100) +// .Записать(); // Создает товар с наименованием "Товар 1" и ценой 100. // -// Конструктор = КонструкторОбъекта(Документы.ПриходТоваров); +// Конструктор = ЮТест.Данные().(Документы.ПриходТоваров); // Без использования текучих выражений // Конструктор.Установить("Организация", Справочники.Организации.ПустаяСсылка()); // Конструктор.Установить("Склад", Справочники.Склады.ПустаяСсылка()); // Конструктор.Установить("Товар", Справочники.Товары.ПустаяСсылка()); @@ -855,6 +855,27 @@ КонецФункции +// Возвращает конструктор создания движений для указанного документа и регистра. +// +// Конструктор имеет ряд особенностей: +// +// * Создание движений происходит при вызове метода `Записать`, а заполнение реквизитов движений осуществляется через методы установки. +// * При использовании на клиенте все значения должны быть сериализуемыми. +// +// Параметры: +// Документ - ДокументОбъект, ДокументСсылка - Документ, для которого создаются движения. +// ИмяРегистра - Строка - Имя регистра, движения которого необходимо создать. +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор для создания движений по указанному документу и регистру. +// +// Пример: +// Конструктор = КонструкторДвижений(Документы.РеализацияТоваров.СоздатьДокумент(), "Продажи") +// .ДобавитьСтроку() +// .Установить("Номенклатура", Справочники.Номенклатура.НайтиПоНаименованию("Товар 1")) +// .Фикция("Склад") +// .Установить("Количество", 10) +// .Записать(); // Создает движение реализации товаров. Функция КонструкторДвижений(Документ, ИмяРегистра) Экспорт Возврат ЮТКонструкторТестовыхДанныхСлужебный.ИнициализироватьКонструкторДвижений(Документ, ИмяРегистра); From 993f501ad00bb78efa38e2584f86bd1eee496fac Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 23 Sep 2024 02:10:33 +0300 Subject: [PATCH 12/56] =?UTF-8?q?feat:=20=D0=97=D0=B0=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D1=8C=20=D0=BD=D0=B0=D0=B1=D0=BE=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 111 ++++++++++++++---- .../Module.bsl" | 7 ++ .../ObjectModule.bsl" | 18 +++ .../Module.bsl" | 21 +++- 4 files changed, 129 insertions(+), 28 deletions(-) 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 e04bc5278..49dadc0c7 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" @@ -136,19 +136,6 @@ КонецПроцедуры -Функция Записать(Контекст, ВернутьОбъект = Ложь, ОбменДаннымиЗагрузка = Ложь) Экспорт - - ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); - ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; - ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; - ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка; - - Ссылка = ЮТТестовыеДанныеСлужебный.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); - - Возврат Ссылка; - -КонецФункции - Функция НовыйОбъект(Контекст) Экспорт Возврат ЮТТестовыеДанныеСлужебный.НовыйОбъект(Контекст.Менеджер, @@ -158,19 +145,6 @@ КонецФункции -Функция Провести(Контекст, ВернутьОбъект = Ложь) Экспорт - - ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); - ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; - ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; - ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение; - - Ссылка = ЮТТестовыеДанныеСлужебный.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); - - Возврат Ссылка; - -КонецФункции - Функция ДанныеСтрокиТабличнойЧасти(Контекст) Экспорт Если ПустаяСтрока(Контекст.ТекущаяТабличнаяЧасть) Тогда @@ -203,6 +177,71 @@ КонецФункции +#Область Запись + +Функция Записать(Контекст, ВернутьОбъект = Ложь, ОбменДаннымиЗагрузка = Ложь) Экспорт + + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); + ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; + ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; + ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка; + + Ссылка = ЮТТестовыеДанныеСлужебный.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); + + Возврат Ссылка; + +КонецФункции + +Функция Провести(Контекст, ВернутьОбъект = Ложь) Экспорт + + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); + ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; + ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; + ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение; + + Ссылка = ЮТТестовыеДанныеСлужебный.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); + + Возврат Ссылка; + +КонецФункции + +// Записать движения документа. +// +// Параметры: +// Контекст - см. НовыйКонтекстКонструктораДвижений +Процедура ЗаписатьДвиженияДокумента(Контекст) Экспорт + + Документ = Контекст.Документ; + + ЭтоСсылка = ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗнч(Документ)); + + Если ЭтоСсылка Тогда + НаборЗаписей = ЮТОбщий.Менеджер(Контекст.Метаданные).СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.Регистратор.Установить(Документ); + Иначе + НаборЗаписей = Документ.Движения[Контекст.Метаданные.Имя]; + КонецЕсли; + + Для Каждого Строка Из Контекст.Данные Цикл + + Запись = НаборЗаписей.Добавить(); + ЗаполнитьЗначенияСвойств(Запись, Строка); + Если НЕ ЗначениеЗаполнено(Запись.Период) Тогда + Запись.Период = Документ.Дата; + КонецЕсли; + + КонецЦикла; + + Если ЭтоСсылка Тогда + НаборЗаписей.Записать(); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ИнициализацияКонструкторов + // Инициализирует конструктор тестовых данных // // Параметры: @@ -228,6 +267,19 @@ Функция ИнициализироватьКонструкторДвижений(Документ, ИмяРегистра) Экспорт + ЮТПроверкиСлужебный.ПроверитьТипПараметра(ИмяРегистра, + "Строка", + "ЮТест.Данные().КонструкторДвижений", + "ИмяРегистра"); + + Если НЕ ЮТМетаданные.ЭтоДокумент(Документ) Или ЮТТипыДанныхСлужебный.ЭтоМенеджер(ТипЗнч(Документ))Тогда + ТекстОшибки = СтрШаблон("Некорректный тип параметра `Документ` метода `ЮТест.Данные().КонструкторДвижений`. + |Это должен быть документ (ссылка или объект), а получили `%1` (%2)", + ТипЗнч(Документ), + Документ); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + #Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда Конструктор = Обработки.ЮТКонструкторДвижений.Создать(); #Иначе @@ -244,8 +296,12 @@ #КонецОбласти +#КонецОбласти + #Область СлужебныеПроцедурыИФункции +#Область КонструкторыКонтекстов + // Новый контекст конструктора. // // Параметры: @@ -284,6 +340,7 @@ КонецЕсли; Контекст = Новый Структура(); + Контекст.Вставить("Документ", Документ); Контекст.Вставить("Данные", Новый Массив()); Контекст.Вставить("Метаданные", ОписаниеРегистра); Контекст.Вставить("ДополнительныеСвойства", Новый Структура()); @@ -293,6 +350,8 @@ КонецФункции +#КонецОбласти + Функция ДанныеТабличнойЧасти(Контекст) Возврат Контекст.Данные[Контекст.ТекущаяТабличнаяЧасть]; 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 f6a7b39eb..a27fca666 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" @@ -78,6 +78,13 @@ КонецФункции +Функция ЭтоМенеджер(ТипЗначения) Экспорт + + ПредставлениеТипа = ПредставлениеТипа(ТипЗначения); + Возврат СтрНайти(ПредставлениеТипа, "Manager.") > 0; + +КонецФункции + Функция ЭтоМенеджерЗаписи(ТипЗначения) Экспорт ПредставлениеТипа = ПредставлениеТипа(ТипЗначения); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" index b73576fbf..56d902ed5 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" @@ -174,6 +174,24 @@ #КонецОбласти +// Создает новый объект и возвращает его или ссылку. +// +// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов. +// Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор. +// +// Параметры: +// ВернутьОбъект - Булево - Вернуть объект вместо ссылки +// ОбменДаннымиЗагрузка - Булево - Записать объект с признаком `ОбменДанными.Загрузка = Истина` +// +// Возвращаемое значение: +// Произвольный - Созданный объект или ссылка на него +Функция Записать(ОбменДаннымиЗагрузка = Ложь) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.ЗаписатьДвиженияДокумента(Контекст); + Возврат ЭтотОбъект; + +КонецФункции + #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" index 75fe9907d..22e2ca4ba 100644 --- "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" @@ -28,6 +28,7 @@ .ДобавитьТест("ФикцияРеквизитов") .ДобавитьТест("ФикцияОбязательныхПолей") .ДобавитьТест("Инициализировать") + .ДобавитьТест("Записать") ; КонецПроцедуры @@ -186,11 +187,11 @@ Конструктор = Обработки.ЮТКонструкторДвижений.Создать(); // Инициализируем конструктор движений Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ТоварныеЗапасы"); - + // Проверяем, что конструктор инициализирован ЮТест.ОжидаетЧто(Конструктор, "Конструктор должен быть инициализирован") .НеРавно(Неопределено); - + // Проверяем, что данные конструктора пусты Данные = Конструктор.Данные(); ЮТест.ОжидаетЧто(Данные, "Данные конструктора должны быть пустым массивом") @@ -203,6 +204,22 @@ КонецПроцедуры +Процедура Записать() Экспорт + + // Создаем документ + Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); + // Инициализируем конструктор движений + ЮТест.Данные().КонструкторДвижений(Документ, "ТоварныеЗапасы") + .ДобавитьСтроку() + .ФикцияРеквизитов("Товар, Склад, Количество") + .Записать(); + + ЮТест.ОжидаетЧтоТаблицаБазы("РегистрНакопления.ТоварныеЗапасы") + .СодержитЗаписи(ЮТест.Предикат() + .Реквизит("Регистратор").Равно(Документ)); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции From da69d7fcc42238b76e9dcc355d7f5aed60d96c4e Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 23 Sep 2024 02:42:59 +0300 Subject: [PATCH 13/56] =?UTF-8?q?test:=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D1=80=20=D1=81=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B4=D1=87=D0=B8=D0=BD=D0=B5=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Form.form" | 51 -- .../Form.form" | 47 -- ...0\276\320\262\320\275\320\276\320\271.mdo" | 3 +- .../src/Configuration/Configuration.mdo | 1 + .../ObjectModule.bsl" | 36 ++ ...0\272\320\260\320\246\320\265\320\275.mdo" | 83 +++ .../Form.form" | 243 -------- .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 563 ++++++++++++++++++ ...0\262\320\260\321\200\320\276\320\262.mdo" | 9 +- 10 files changed, 706 insertions(+), 347 deletions(-) create mode 100644 "fixtures/demo-configuration/src/Documents/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275/ObjectModule.bsl" create mode 100644 "fixtures/demo-configuration/src/Documents/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275.mdo" delete mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" create mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Form.form" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Form.form" index 1218d2968..94af5ef73 100644 --- "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Form.form" +++ "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Form.form" @@ -162,56 +162,6 @@ true - - ВидДвижения - 35 - true - true - - true - - - НаборЗаписей.RecordType - - - ВидДвиженияРасширеннаяПодсказка - 37 - true - true - - true - - Label - true - true - - Left - - - - ВидДвиженияКонтекстноеМеню - 36 - true - true - - true - - true - - InputField - EnterOnInput - true - Left - true - - true - true - true - true - true - true - - Организация 38 @@ -500,7 +450,6 @@ true Vertical true - false true true true diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 68c8915b6..493f03cc0 100644 --- "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -282,52 +282,6 @@ true - - ВидДвижения - 31 - true - true - - true - - - Список.RecordType - - - ВидДвиженияРасширеннаяПодсказка - 33 - true - true - - true - - Label - true - true - - Left - - - - ВидДвиженияКонтекстноеМеню - 32 - true - true - - true - - true - - LabelField - Enter - true - Left - true - - true - true - - Организация 34 @@ -622,7 +576,6 @@ true Vertical true - false true true true diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" index 1bfb61858..710d09a83 100644 --- "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" +++ "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" @@ -16,6 +16,7 @@ true ChartOfAccounts.Основной + true AccountingRegister.Основной.Form.ФормаСписка Managed true @@ -30,7 +31,6 @@ - DontUse true @@ -48,7 +48,6 @@ - DontUse true diff --git a/fixtures/demo-configuration/src/Configuration/Configuration.mdo b/fixtures/demo-configuration/src/Configuration/Configuration.mdo index 269ee917f..19df01b9d 100644 --- a/fixtures/demo-configuration/src/Configuration/Configuration.mdo +++ b/fixtures/demo-configuration/src/Configuration/Configuration.mdo @@ -232,6 +232,7 @@ Document.ПоступлениеДенег Document.ПриходТовара Document.РасходТовара + Document.УстановкаЦен DocumentJournal.ДокументыПродаж DocumentJournal.ФинансовыеДокументы Enum.PushУведомления diff --git "a/fixtures/demo-configuration/src/Documents/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275/ObjectModule.bsl" "b/fixtures/demo-configuration/src/Documents/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275/ObjectModule.bsl" new file mode 100644 index 000000000..00c5d2ff9 --- /dev/null +++ "b/fixtures/demo-configuration/src/Documents/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275/ObjectModule.bsl" @@ -0,0 +1,36 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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/fixtures/demo-configuration/src/Documents/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275.mdo" "b/fixtures/demo-configuration/src/Documents/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275.mdo" new file mode 100644 index 000000000..bb2206b76 --- /dev/null +++ "b/fixtures/demo-configuration/src/Documents/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\246\320\265\320\275.mdo" @@ -0,0 +1,83 @@ + + + + + + + + + + УстановкаЦен + + ru + Установка цен + + true + Document.УстановкаЦен.StandardAttribute.Number + DontUse + Use + Managed + DontUse + String + 9 + Variable + true + true + InformationRegister.ЦеныТоваров + true + true + + + + + + Цены + + ru + Цены + + + Товар + + ru + Товар + + + CatalogRef.Товары + + + + DontUse + + + ВидЦены + + ru + Вид цены + + + CatalogRef.ВидыЦен + + + + DontUse + + + Цена + + ru + Цена + + + Number + + 10 + 2 + + + + + DontUse + + + diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" deleted file mode 100644 index 2ee5dbbfd..000000000 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" +++ /dev/null @@ -1,243 +0,0 @@ - - - - Период - 13 - true - true - - true - - - Запись.Period - - - ПериодРасширеннаяПодсказка - 3 - true - true - - true - - Label - true - true - - Left - - - - ПериодКонтекстноеМеню - 2 - true - true - - true - - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - - - - Товар - 4 - true - true - - true - - - Запись.Товар - - - ТоварРасширеннаяПодсказка - 6 - true - true - - true - - Label - true - true - - Left - - - - ТоварКонтекстноеМеню - 5 - true - true - - true - - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - - - - ВидЦен - 7 - true - true - - true - - - Запись.ВидЦен - - - ВидЦенРасширеннаяПодсказка - 9 - true - true - - true - - Label - true - true - - Left - - - - ВидЦенКонтекстноеМеню - 8 - true - true - - true - - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - - - - Цена - 10 - true - true - - true - - - Запись.Цена - - - ЦенаРасширеннаяПодсказка - 12 - true - true - - true - - Label - true - true - - Left - - - - ЦенаКонтекстноеМеню - 11 - true - true - - true - - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - - - - ФормаКоманднаяПанель - -1 - true - true - - true - - Left - true - - LockOwnerWindow - true - true - Vertical - true - false - true - true - true - - Запись - 1 - - InformationRegisterRecordManager.ЦеныТоваров - - - true - - - true - -
true
- true -
- - - - - -
diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..b76f10568 --- /dev/null +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + 8450ccec-2746-4ac4-8058-01be7feed729 + + + Normal + 53af573d-5d8e-44c6-a55b-8f7631c4e45e + + + Normal + 7b7e7a34-b35a-4669-9903-b382d64d8e64 + + Normal + 38779193-b7c6-42b1-ba56-93fe0878477b + diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" new file mode 100644 index 000000000..1b22af4eb --- /dev/null +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -0,0 +1,563 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 34 + true + true + + true + + + ru + User settings group + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Период + 16 + true + true + + true + + + Список.Period + + true + + ПериодРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + ПериодКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Регистратор + 19 + true + true + + true + + + Список.Recorder + + + РегистраторРасширеннаяПодсказка + 21 + true + true + + true + + Label + true + true + + Left + + + + РегистраторКонтекстноеМеню + 20 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + НомерСтроки + 22 + true + true + + true + + + Список.LineNumber + + + НомерСтрокиРасширеннаяПодсказка + 24 + true + true + + true + + Label + true + true + + Left + + + + НомерСтрокиКонтекстноеМеню + 23 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Товар + 25 + true + true + + true + + + Список.Товар + + + ТоварРасширеннаяПодсказка + 27 + true + true + + true + + Label + true + true + + Left + + + + ТоварКонтекстноеМеню + 26 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + ВидЦен + 28 + true + true + + true + + + Список.ВидЦен + + + ВидЦенРасширеннаяПодсказка + 30 + true + true + + true + + Label + true + true + + Left + + + + ВидЦенКонтекстноеМеню + 29 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Цена + 31 + true + true + + true + + + Список.Цена + + + ЦенаРасширеннаяПодсказка + 33 + true + true + + true + + Label + true + true + + Left + + + + ЦенаКонтекстноеМеню + 32 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
+ + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
true
+ + InformationRegister.ЦеныТоваров + true + true + true + true + +
+ + + + + +
diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" index e69aaea84..3c26eee6b 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" @@ -18,7 +18,7 @@ Use true InDialog - InformationRegister.ЦеныТоваров.Form.ФормаЗаписи + InformationRegister.ЦеныТоваров.Form.ФормаСписка Use Active @@ -57,6 +57,7 @@ Day + RecorderSubordinate true true @@ -153,11 +154,11 @@ true - - ФормаЗаписи + + ФормаСписка ru - Форма записи + Форма списка PersonalComputer MobileDevice From bb4cc59ab81ad47a3861c327a3587314557ce5b3 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 24 Sep 2024 00:23:22 +0300 Subject: [PATCH 14/56] =?UTF-8?q?feat:=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=20=D0=BA=D0=BE=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B0=20=D0=B4=D0=B2=D0=B8=D0=B6=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=BD=D0=B0=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 32 +-- .../Module.bsl" | 10 + .../Module.bsl" | 6 + .../Module.bsl" | 22 ++ .../Form.form" | 42 ++++ .../Module.bsl" | 215 ++++++++++++++++++ .../ObjectModule.bsl" | 66 +++--- ...0\266\320\265\320\275\320\270\320\271.mdo" | 10 + .../Form.form" | 1 + .../Form.form" | 3 +- .../Module.bsl" | 76 +++++-- ...\275\320\270\320\271_\320\234\320\236.mdo" | 2 + ...0\262\320\260\321\200\320\276\320\262.mdo" | 3 - 13 files changed, 407 insertions(+), 81 deletions(-) create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Form.form" create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" 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 49dadc0c7..1620c414d 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" @@ -211,31 +211,23 @@ // Контекст - см. НовыйКонтекстКонструктораДвижений Процедура ЗаписатьДвиженияДокумента(Контекст) Экспорт - Документ = Контекст.Документ; - - ЭтоСсылка = ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗнч(Документ)); - - Если ЭтоСсылка Тогда - НаборЗаписей = ЮТОбщий.Менеджер(Контекст.Метаданные).СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.Регистратор.Установить(Документ); + Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗнч(Контекст.Документ)) Тогда + СсылкаНаДокумент = Контекст.Документ; + ИначеЕсли ЗначениеЗаполнено(Контекст.Документ.Ссылка) Тогда + СсылкаНаДокумент = Контекст.Документ.Ссылка; Иначе - НаборЗаписей = Документ.Движения[Контекст.Метаданные.Имя]; + ВызватьИсключение "Документ не записан"; КонецЕсли; - Для Каждого Строка Из Контекст.Данные Цикл - - Запись = НаборЗаписей.Добавить(); - ЗаполнитьЗначенияСвойств(Запись, Строка); - Если НЕ ЗначениеЗаполнено(Запись.Период) Тогда - Запись.Период = Документ.Дата; - КонецЕсли; - - КонецЦикла; - - Если ЭтоСсылка Тогда - НаборЗаписей.Записать(); + Если НЕ ЗначениеЗаполнено(СсылкаНаДокумент) Тогда + ВызватьИсключение "Не установлена ссылка на документ, владелец движений"; КонецЕсли; + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); + ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; + + ЮТТестовыеДанныеСлужебный.ЗаписатьДвиженияРегистратора(СсылкаНаДокумент, Контекст.Данные, Контекст.Метаданные, ПараметрыЗаписи); + КонецПроцедуры #КонецОбласти 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 3628e0674..b3f6453b3 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" @@ -174,6 +174,16 @@ КонецФункции +Процедура ЗаписатьДвиженияРегистратора(Регистратор, Данные, Менеджер, ПараметрыЗаписи) Экспорт + +#Если Сервер Тогда + ЮТТестовыеДанныеСлужебныйСервер.ЗаписатьДвиженияРегистратора(Регистратор, Данные, Менеджер, ПараметрыЗаписи); +#Иначе + ЮТТестовыеДанныеСлужебныйВызовСервера.ЗаписатьДвиженияРегистратора(Регистратор, Данные, Менеджер, ПараметрыЗаписи); +#КонецЕсли + +КонецПроцедуры + // Создает новый объект и заполняет его данными // // Параметры: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 784a02a2c..d7b86dfc6 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -24,6 +24,12 @@ КонецФункции +Процедура ЗаписатьДвиженияРегистратора(Знач Регистратор, Знач Данные, Знач Менеджер, Знач ПараметрыЗаписи) Экспорт + + ЮТТестовыеДанныеСлужебныйСервер.ЗаписатьДвиженияРегистратора(Регистратор, Данные, Менеджер, ПараметрыЗаписи); + +КонецПроцедуры + Функция НовыйОбъект(Знач Менеджер, Знач Данные, Знач ДополнительныеСвойства, Знач УникальныйИдентификаторСсылки) Экспорт Возврат ЮТТестовыеДанныеСлужебныйСервер.НовыйОбъект(Менеджер, Данные, ДополнительныеСвойства, УникальныйИдентификаторСсылки); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 2011de772..cc1056730 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -68,6 +68,28 @@ КонецФункции +Процедура ЗаписатьДвиженияРегистратора(Регистратор, Данные, МетаданныеРегистра, ПараметрыЗаписи) Экспорт + + Менеджер = ЮТОбщий.Менеджер(МетаданныеРегистра); + НаборЗаписей = Менеджер.СоздатьНаборЗаписей(); + + ДатаРегистратора = ЮТЗапросы.ЗначениеРеквизита(Регистратор, "Дата"); + НаборЗаписей.Отбор.Регистратор.Установить(Регистратор); + + Для Каждого Строка Из Данные Цикл + + Запись = НаборЗаписей.Добавить(); + ЗаполнитьЗначенияСвойств(Запись, Строка); + Если НЕ ЗначениеЗаполнено(Запись.Период) Тогда + Запись.Период = ДатаРегистратора; + КонецЕсли; + + КонецЦикла; + + НаборЗаписей.Записать(); + +КонецПроцедуры + Функция НовыйОбъект(Знач Менеджер, Данные, ДополнительныеСвойства, УникальныйИдентификаторСсылки) Экспорт ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Form.form" new file mode 100644 index 000000000..2a2b0006b --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Form.form" @@ -0,0 +1,42 @@ + + + None + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + Объект + 1 + + DataProcessorObject.ЮТКонструкторДвижений + + + true + + + true + +
true
+
+ + + + + +
diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" new file mode 100644 index 000000000..3e26d0d56 --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" @@ -0,0 +1,215 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +// BSLLS:NonStandardRegion-off +#Область ОписаниеПеременных + +// см. ЮТКонструкторТестовыхДанныхСлужебный.НовыйКонтекстКонструктора +&НаКлиенте +Перем Контекст; + +#КонецОбласти + +//@skip-check module-structure-top-region +#Область ПрограммныйИнтерфейс + +#Область УстановкаЗначение + +// Добавляет новую запись в набор движений. +// При необходимости можно выполнить установку реквизитов новой записи. +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов новой записи. +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторДвижений - Конструктор +&НаКлиенте +Функция ДобавитьСтроку(ЗначенияРеквизитов = Неопределено) Экспорт + + Контекст.Данные.Добавить(Новый Структура); + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает значение реквизита текущей записи набора. +// +// Параметры: +// ИмяРеквизита - Строка - Имя реквизита объекта или табличной части +// Значение - Произвольный - Значение реквизита объекта или табличной части +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторДвижений - Конструктор +&НаКлиенте +Функция Установить(ИмяРеквизита, Значение) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.Установить(Контекст, ИмяРеквизита, Значение); + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает значения реквизитов текущей записи набора. +// +// Параметры: +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторДвижений - Установить реквизиты +&НаКлиенте +Функция УстановитьРеквизиты(ЗначенияРеквизитов) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.УстановитьРеквизиты(Контекст, ЗначенияРеквизитов); + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает фиктивное значение реквизита текущей записи набора. +// +// На основании менеджера и имени реквизита вычисляется его тип, а по типу генерируется фиктивное значение. +// +// * Для примитивных значение генерируется случайное значение +// * Для ссылочных типов создается новый объект +// * Для перечислений (в том числе системных) выбирается случайно значение перечисления +// +// Параметры: +// ИмяРеквизита - Строка - Имя реквизита объекта или табличной части +// РеквизитыЗаполнения - Структура - Значения реквизитов заполнения создаваемого объекта базы +// - Неопределено +// ОграничениеТипа - Тип, ОписаниеТипов - Испольуется для ограничения типа составного реквизита, будет сгерерировано значение указанного типа +// - Неопределено - Будет сгенерировано значение, на основании типа реквизита, +// если реквизит составной, то будет использован случайный тип +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторДвижений - Конструктор +&НаКлиенте +Функция Фикция(ИмяРеквизита, РеквизитыЗаполнения = Неопределено, ОграничениеТипа = Неопределено) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения, ОграничениеТипа); + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает фиктивные значения реквизитов текущей записи набора. +// +// На основании менеджера и имени реквизита вычисляется его тип, а по типу генерируется фиктивное значение. +// +// * Для примитивных значение генерируется случайное значение +// * Для ссылочных типов создается новый объект +// * Для перечислений (в том числе системных) выбирается случайно значение перечисления +// +// Параметры: +// ИменаРеквизитов - Строка - Имена реквизитов объекта или табличной части разделенные запятыми +// - Массив из Строка - Имена реквизитов объекта или табличной части +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторДвижений - Конструктор +&НаКлиенте +Функция ФикцияРеквизитов(ИменаРеквизитов) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.ФикцияРеквизитов(Контекст, ИменаРеквизитов); + Возврат ЭтотОбъект; + +КонецФункции + +// Заполняет обязательные поля записи набора фиктивными значениями +// +// На основании метаданных определяются обязательные поля (Проверка заполнения = Выдавать ошибку), +// для них генерируются и устанавливаются фиктивные значение. +// +// * Для примитивных значение генерируется случайное значение +// * Для ссылочных типов создается новый объект +// * Для перечислений (в том числе системных) выбирается случайно значение перечисления +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторДвижений - Конструктор +&НаКлиенте +Функция ФикцияОбязательныхПолей() Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.ФикцияОбязательныхПолей(Контекст); + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает дополнительное свойство набора записей. +// +// Параметры: +// ИмяСвойства - Строка - Имя дополнительного свойства +// Значение - Произвольный - Значение дополнительного свойства +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор +&НаКлиенте +Функция УстановитьДополнительноеСвойство(ИмяСвойства, Значение = Неопределено) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение); + Возврат ЭтотОбъект; + +КонецФункции + +#КонецОбласти + +#Область ПолучениеДанных + +// Возвращает данные текущей записи набора. +// +// Возвращаемое значение: +// - Структура - Данные записи +&НаКлиенте +Функция ДанныеСтроки() Экспорт + + Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеСтрокиКоллекции(Контекст); + +КонецФункции + +// Возвращает данные набора записей. +// +// Возвращаемое значение: +// Массив из Структура - Данные набора записей. +&НаКлиенте +Функция Данные() Экспорт + + Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеОбъекта(Контекст); + +КонецФункции + +#КонецОбласти + +// Записывает движения документа. +// +// Параметры: +// ОбменДаннымиЗагрузка - Булево - Записать с признаком `ОбменДанными.Загрузка = Истина` +&НаКлиенте +Процедура Записать(ОбменДаннымиЗагрузка = Ложь) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.ЗаписатьДвиженияДокумента(Контекст); + +КонецПроцедуры + +#КонецОбласти + +//@skip-check module-structure-top-region +#Область СлужебныйПрограммныйИнтерфейс + +&НаКлиенте +Процедура Инициализировать(Документ, ИмяРегистра) Экспорт + + Контекст = ЮТКонструкторТестовыхДанныхСлужебный.НовыйКонтекстКонструктораДвижений(Документ, ИмяРегистра); + +КонецПроцедуры + +#КонецОбласти +// BSLLS:NonStandardRegion-on diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" index 56d902ed5..0322ba56c 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" @@ -29,11 +29,11 @@ #Область УстановкаЗначение -// Добавляет новую строку в набор движений. -// При необходимости можно выполнить установку реквизитов новой строки +// Добавляет новую запись в набор движений. +// При необходимости можно выполнить установку реквизитов новой записи. // // Параметры: -// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов новой строки +// ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов новой записи. // // Возвращаемое значение: // ОбработкаОбъект.ЮТКонструкторДвижений - Конструктор @@ -44,9 +44,7 @@ КонецФункции -// Устанавливает значение реквизита создаваемого объекта. -// -// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части +// Устанавливает значение реквизита текущей записи набора. // // Параметры: // ИмяРеквизита - Строка - Имя реквизита объекта или табличной части @@ -61,9 +59,7 @@ КонецФункции -// Устанавливает значения реквизитов создаваемого объекта. -// -// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части +// Устанавливает значения реквизитов текущей записи набора. // // Параметры: // ЗначенияРеквизитов - Структура - Устанавливаемые значения реквизитов @@ -77,9 +73,7 @@ КонецФункции -// Устанавливает фиктивное значение реквизита создаваемого объекта. -// -// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значение реквизита строки табличной части. +// Устанавливает фиктивное значение реквизита текущей записи набора. // // На основании менеджера и имени реквизита вычисляется его тип, а по типу генерируется фиктивное значение. // @@ -104,9 +98,7 @@ КонецФункции -// Устанавливает фиктивные значения реквизитов создаваемого объекта. -// -// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значения реквизитов строки табличной части. +// Устанавливает фиктивные значения реквизитов текущей записи набора. // // На основании менеджера и имени реквизита вычисляется его тип, а по типу генерируется фиктивное значение. // @@ -127,9 +119,7 @@ КонецФункции -// Заполняет обязательные поля объекта фиктивными значениями -// -// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части. +// Заполняет обязательные поля записи набора фиктивными значениями // // На основании метаданных определяются обязательные поля (Проверка заполнения = Выдавать ошибку), // для них генерируются и устанавливаются фиктивные значение. @@ -147,25 +137,39 @@ КонецФункции +// Устанавливает дополнительное свойство набора записей. +// +// Параметры: +// ИмяСвойства - Строка - Имя дополнительного свойства +// Значение - Произвольный - Значение дополнительного свойства +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор +Функция УстановитьДополнительноеСвойство(ИмяСвойства, Значение = Неопределено) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение); + Возврат ЭтотОбъект; + +КонецФункции + #КонецОбласти #Область ПолучениеДанных -// Возвращает данные текущей строки табличной части объекта. +// Возвращает данные текущей записи набора. // // Возвращаемое значение: -// - Структура - Данные строки -// - Неопределено - Если заполняется объект +// - Структура - Данные записи Функция ДанныеСтроки() Экспорт Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеСтрокиКоллекции(Контекст); КонецФункции -// Возвращает данные создаваемого объекта. +// Возвращает данные набора записей. // // Возвращаемое значение: -// Структура - Данные объекта +// Массив из Структура - Данные набора записей. Функция Данные() Экспорт Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеОбъекта(Контекст); @@ -174,23 +178,15 @@ #КонецОбласти -// Создает новый объект и возвращает его или ссылку. -// -// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов. -// Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор. +// Записывает движения документа. // // Параметры: -// ВернутьОбъект - Булево - Вернуть объект вместо ссылки -// ОбменДаннымиЗагрузка - Булево - Записать объект с признаком `ОбменДанными.Загрузка = Истина` -// -// Возвращаемое значение: -// Произвольный - Созданный объект или ссылка на него -Функция Записать(ОбменДаннымиЗагрузка = Ложь) Экспорт +// ОбменДаннымиЗагрузка - Булево - Записать с признаком `ОбменДанными.Загрузка = Истина` +Процедура Записать(ОбменДаннымиЗагрузка = Ложь) Экспорт ЮТКонструкторТестовыхДанныхСлужебный.ЗаписатьДвиженияДокумента(Контекст); - Возврат ЭтотОбъект; -КонецФункции +КонецПроцедуры #КонецОбласти diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271.mdo" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271.mdo" index 57cebc20a..92f71b683 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271.mdo" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271.mdo" @@ -10,4 +10,14 @@ Конструктор движений true + DataProcessor.ЮТКонструкторДвижений.Form.КлиентскийКонструктор + + КлиентскийКонструктор + + ru + Клиентский конструктор + + PersonalComputer + MobileDevice + diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Form.form" index db37bb044..09f02e2ac 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Form.form" @@ -1,5 +1,6 @@ + None ФормаКоманднаяПанель -1 diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 1b22af4eb..758b6b01a 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -10,7 +10,7 @@ ru - User settings group + Настройки пользователя false @@ -530,7 +530,6 @@ true Vertical true - false true true true 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" index 22e2ca4ba..bafff949e 100644 --- "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" @@ -21,18 +21,42 @@ Процедура ИсполняемыеСценарии() Экспорт ЮТТесты.ВТранзакции() + .ДобавитьТест("Инициализировать") .ДобавитьТест("ДобавитьСтроку") .ДобавитьТест("Установить") .ДобавитьТест("УстановитьРеквизиты") .ДобавитьТест("Фикция") .ДобавитьТест("ФикцияРеквизитов") .ДобавитьТест("ФикцияОбязательныхПолей") - .ДобавитьТест("Инициализировать") .ДобавитьТест("Записать") ; КонецПроцедуры +Процедура Инициализировать() Экспорт + + // Создаем документ + Документ = ЮТест.Данные().СоздатьДокумент("Документы.ПриходТовара"); + + // Инициализируем конструктор движений + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ТоварныеЗапасы"); + + // Проверяем, что конструктор инициализирован + ЮТест.ОжидаетЧто(Конструктор, "Конструктор должен быть инициализирован") + .НеРавно(Неопределено); + + // Проверяем, что данные конструктора пусты + Данные = Конструктор.Данные(); + ЮТест.ОжидаетЧто(Данные, "Данные конструктора должны быть пустым массивом") + .ИмеетТип("Массив") + .Равно(Новый Массив); + + ЮТест.ОжидаетЧто(ЮТест.Данные()) + .Метод("КонструкторДвижений", ЮТКоллекции.ЗначениеВМассиве(Документ, "НесуществующийРегистр")) + .ВыбрасываетИсключение("Документ " + Документ + " не делает движений по регистру ""НесуществующийРегистр"""); + +КонецПроцедуры + Процедура ДобавитьСтроку() Экспорт Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); @@ -179,32 +203,42 @@ КонецПроцедуры -Процедура Инициализировать() Экспорт +Процедура Записать() Экспорт - // Создаем документ - Документ = ЮТест.Данные().СоздатьДокумент("Документы.ПриходТовара"); + // Создаем документ "УстановкаЦен" + Документ = ЮТест.Данные().СоздатьДокумент("Документы.УстановкаЦен"); - Конструктор = Обработки.ЮТКонструкторДвижений.Создать(); - // Инициализируем конструктор движений - Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ТоварныеЗапасы"); + // Инициализируем конструктор движений для регистра сведений "ЦеныТоваров" + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ЦеныТоваров"); - // Проверяем, что конструктор инициализирован - ЮТест.ОжидаетЧто(Конструктор, "Конструктор должен быть инициализирован") - .НеРавно(Неопределено); + // Добавляем строку и заполняем необходимые реквизиты + Конструктор.ДобавитьСтроку().УстановитьРеквизиты(Новый Структура( + "Товар, ВидЦен, Цена", + ЮТест.Данные().СоздатьЭлемент("Справочники.Товары"), + ЮТест.Данные().СоздатьЭлемент("Справочники.ВидыЦен"), + 1000 + )); - // Проверяем, что данные конструктора пусты - Данные = Конструктор.Данные(); - ЮТест.ОжидаетЧто(Данные, "Данные конструктора должны быть пустым массивом") - .ИмеетТип("Массив") - .Равно(Новый Массив); + // Записываем движения + Конструктор.Записать(); - ЮТест.ОжидаетЧто(ЮТест.Данные()) - .Метод("КонструкторДвижений", ЮТКоллекции.ЗначениеВМассиве(Документ, "НесуществующийРегистр")) - .ВыбрасываетИсключение("Документ " + Документ + " не делает движений по регистру ""НесуществующийРегистр"""); + // Проверяем, что движения были записаны в регистр сведений + ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.ЦеныТоваров") + .СодержитЗаписи(ЮТест.Предикат() + .Реквизит("Регистратор").Равно(Документ)); -КонецПроцедуры - -Процедура Записать() Экспорт + // Получаем записи регистра движений документа + ЗаписиРегистра = ЮТЗапросы.ДвиженияДокумента(Документ, "ЦеныТоваров"); + + // Проверяем, что движения были записаны в регистр сведений + ЮТест.ОжидаетЧто(ЗаписиРегистра) + .Заполнено() + .ИмеетДлину(1) + .Свойство("[0].Регистратор").Равно(Документ) + .Свойство("[0].Товар").Заполнено() + .Свойство("[0].ВидЦен").Заполнено() + .Свойство("[0].Цена").Равно(1000) + ; // Создаем документ Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236.mdo" index 9e7e8bd5d..1459b4c1b 100644 --- "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236.mdo" @@ -1,5 +1,7 @@ Обр_ЮТКонструкторДвижений_МО + true true + true 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/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" "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/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" index 140570f24..357389d31 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/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" +++ "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/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" @@ -12,10 +12,7 @@ ЦеныТоваров Adopted - Checked - Checked Extended Extended - Day From 49326ca9a2abd94e2aecd00fdd2f77f5c0416368 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 24 Sep 2024 20:55:39 +0300 Subject: [PATCH 15/56] =?UTF-8?q?fix:=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?=20coderabbit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 47 ++++++++++-- .../Module.bsl" | 9 ++- .../Module.bsl" | 2 +- .../ObjectModule.bsl" | 2 +- .../Module.bsl" | 72 +++++++++++++------ 5 files changed, 101 insertions(+), 31 deletions(-) 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 1620c414d..e47125f22 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" @@ -20,6 +20,8 @@ Процедура Установить(Контекст, ИмяРеквизита, Значение) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + ОписаниеРеквизита(Контекст, ИмяРеквизита); // Проверка наличия реквизита ТекущаяЗапись = ТекущаяЗапись(Контекст); @@ -29,6 +31,8 @@ Процедура УстановитьРеквизиты(Контекст, ЗначенияРеквизитов) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + ТекущаяЗапись = ТекущаяЗапись(Контекст); Для Каждого ЗначениеРеквизита Из ЗначенияРеквизитов Цикл @@ -41,6 +45,8 @@ Процедура Фикция(Контекст, ИмяРеквизита, РеквизитыЗаполнения, Знач ОграничениеТипа) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + ЮТПроверкиСлужебный.ПроверитьТипПараметра(ОграничениеТипа, "Тип, ОписаниеТипов, Строка", "Фикция", "ЮТКонструкторТестовыхДанных", Истина); ТекущаяЗапись = ТекущаяЗапись(Контекст); @@ -60,6 +66,8 @@ Процедура ФикцияОбязательныхПолей(Контекст) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + Реквизиты = Реквизиты(Контекст); ТекущаяЗапись = ТекущаяЗапись(Контекст); @@ -77,6 +85,8 @@ Процедура ФикцияРеквизитов(Контекст, ИменаРеквизитов) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + ТекущаяЗапись = ТекущаяЗапись(Контекст); ОписаниеРеквизитов = Новый Структура; @@ -97,6 +107,8 @@ Процедура ТабличнаяЧасть(Контекст, ИмяТабличнойЧасти) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + Контекст.ТекущаяТабличнаяЧасть = ИмяТабличнойЧасти; Если ИмяТабличнойЧасти <> Неопределено Тогда @@ -107,6 +119,8 @@ Процедура ДобавитьСтроку(Контекст, ЗначенияРеквизитов) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + Запись = Новый Структура(); ДанныеТабличнойЧасти(Контекст).Добавить(Запись); @@ -118,12 +132,16 @@ Процедура УстановитьДополнительноеСвойство(Контекст, ИмяСвойства, Значение = Неопределено) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + Контекст.ДополнительныеСвойства.Вставить(ИмяСвойства, Значение); КонецПроцедуры Процедура УстановитьСсылкуНового(Контекст, Значение) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + Если ТипЗнч(Значение) = Тип("УникальныйИдентификатор") Тогда УникальныйИдентификаторСсылки = Значение; ИначеЕсли ЮТСтроки.ЭтоУникальныйИдентификаторСтрокой(Значение) Тогда @@ -138,6 +156,8 @@ Функция НовыйОбъект(Контекст) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + Возврат ЮТТестовыеДанныеСлужебный.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства, @@ -147,6 +167,8 @@ Функция ДанныеСтрокиТабличнойЧасти(Контекст) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + Если ПустаяСтрока(Контекст.ТекущаяТабличнаяЧасть) Тогда Возврат Неопределено; КонецЕсли; @@ -163,6 +185,8 @@ Функция ДанныеСтрокиКоллекции(Контекст) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + Если ЗначениеЗаполнено(Контекст.Данные) Тогда Возврат Контекст.Данные[Контекст.Данные.ВГраница()]; Иначе @@ -173,6 +197,8 @@ Функция ДанныеОбъекта(Контекст) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + Возврат Контекст.Данные; КонецФункции @@ -181,6 +207,8 @@ Функция Записать(Контекст, ВернутьОбъект = Ложь, ОбменДаннымиЗагрузка = Ложь) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; @@ -194,6 +222,8 @@ Функция Провести(Контекст, ВернутьОбъект = Ложь) Экспорт + ПроверитьИнициализациюКонтекста(Контекст); + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; @@ -205,11 +235,9 @@ КонецФункции -// Записать движения документа. -// -// Параметры: -// Контекст - см. НовыйКонтекстКонструктораДвижений -Процедура ЗаписатьДвиженияДокумента(Контекст) Экспорт +Процедура ЗаписатьДвиженияДокумента(Контекст, ОбменДаннымиЗагрузка) Экспорт + + ПроверитьИнициализациюКонтекста(Контекст); Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗнч(Контекст.Документ)) Тогда СсылкаНаДокумент = Контекст.Документ; @@ -225,6 +253,7 @@ ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; + ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка; ЮТТестовыеДанныеСлужебный.ЗаписатьДвиженияРегистратора(СсылкаНаДокумент, Контекст.Данные, Контекст.Метаданные, ПараметрыЗаписи); @@ -445,4 +474,12 @@ КонецФункции +Процедура ПроверитьИнициализациюКонтекста(Контекст) + + Если Контекст = Неопределено Тогда + ВызватьИсключение "Контекст не инициализирован. Вызовите соответствующий метод конструктор из `ЮТест.Данные()` перед использованием."; + КонецЕсли; + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index cc1056730..bfe86d1e3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -72,6 +72,7 @@ Менеджер = ЮТОбщий.Менеджер(МетаданныеРегистра); НаборЗаписей = Менеджер.СоздатьНаборЗаписей(); + ПредставлениеРегистратора = Строка(Регистратор); ДатаРегистратора = ЮТЗапросы.ЗначениеРеквизита(Регистратор, "Дата"); НаборЗаписей.Отбор.Регистратор.Установить(Регистратор); @@ -86,7 +87,13 @@ КонецЦикла; - НаборЗаписей.Записать(); + Попытка + НаборЗаписей.Записать(); + Исключение + Сообщение = СтрШаблон("Не удалось записать движения `$1` для %2", МетаданныеРегистра.Имя, ПредставлениеРегистратора); + ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(Сообщение); + ВызватьИсключение; + КонецПопытки; КонецПроцедуры diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" index 3e26d0d56..904100dbc 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" @@ -195,7 +195,7 @@ &НаКлиенте Процедура Записать(ОбменДаннымиЗагрузка = Ложь) Экспорт - ЮТКонструкторТестовыхДанныхСлужебный.ЗаписатьДвиженияДокумента(Контекст); + ЮТКонструкторТестовыхДанныхСлужебный.ЗаписатьДвиженияДокумента(Контекст, ОбменДаннымиЗагрузка); КонецПроцедуры diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" index 0322ba56c..fab430778 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271/ObjectModule.bsl" @@ -184,7 +184,7 @@ // ОбменДаннымиЗагрузка - Булево - Записать с признаком `ОбменДанными.Загрузка = Истина` Процедура Записать(ОбменДаннымиЗагрузка = Ложь) Экспорт - ЮТКонструкторТестовыхДанныхСлужебный.ЗаписатьДвиженияДокумента(Контекст); + ЮТКонструкторТестовыхДанныхСлужебный.ЗаписатьДвиженияДокумента(Контекст, ОбменДаннымиЗагрузка); КонецПроцедуры 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" index bafff949e..d46e9d3d9 100644 --- "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" @@ -28,7 +28,8 @@ .ДобавитьТест("Фикция") .ДобавитьТест("ФикцияРеквизитов") .ДобавитьТест("ФикцияОбязательныхПолей") - .ДобавитьТест("Записать") + .ДобавитьТест("Записать_РегистрСведений") + .ДобавитьТест("Записать_РегистрНакопления") ; КонецПроцедуры @@ -69,41 +70,59 @@ ЮТест.ОжидаетЧто(Данные) .Заполнено() .ИмеетТип("Массив") - .ИмеетДлину(1); + .ИмеетДлину(1) + .Свойство(0) + .ИмеетТип("Структура") + .НеЗаполнено(); КонецПроцедуры Процедура Установить() Экспорт + МаксимальноеЧисло = 99999; + Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); Покупатель = ЮТест.Данные().СоздатьЭлемент("Справочники.Контрагенты"); Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи"); + Сумма = ЮТест.Данные().СлучайноеПоложительноеЧисло(МаксимальноеЧисло); ЮТест.ОжидаетЧто(Конструктор) .Метод("Установить", ЮТКоллекции.ЗначениеВМассиве("Покупатель", Покупатель)).ВыбрасываетИсключение("Сначала необходимо добавить строку"); Конструктор .ДобавитьСтроку() - .Установить("Покупатель", Покупатель); + .Установить("Покупатель", Покупатель) + .Установить("Сумма", Сумма); Данные = Конструктор.ДанныеСтроки(); ЮТест.ОжидаетЧто(Данные) .Заполнено() - .Свойство("Покупатель").Равно(Покупатель); + .Свойство("Покупатель").Равно(Покупатель) + .Свойство("Сумма").Равно(Сумма); КонецПроцедуры Процедура УстановитьРеквизиты() Экспорт + МаксимальноеЧисло = 99999; + // Создаем документ и контрагента Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); Контрагент = ЮТест.Данные().СоздатьЭлемент("Справочники.Контрагенты"); + Сумма = ЮТест.Данные().СлучайноеПоложительноеЧисло(МаксимальноеЧисло); + Количество = ЮТест.Данные().СлучайноеПоложительноеЧисло(МаксимальноеЧисло); // Инициализируем конструктор движений - Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи"); + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи") + .ДобавитьСтроку().УстановитьРеквизиты(Новый Структура); + + ЮТест.ОжидаетЧто(Конструктор.ДанныеСтроки()).НеЗаполнено(); // Добавляем строку и устанавливаем реквизиты - ЗначенияРеквизитов = Новый Структура("Покупатель, Сумма", Контрагент, 1000); - Конструктор.ДобавитьСтроку().УстановитьРеквизиты(ЗначенияРеквизитов); + ЗначенияРеквизитов = Новый Структура("Покупатель, Сумма", Контрагент, Сумма); + Конструктор.УстановитьРеквизиты(ЗначенияРеквизитов); + + ЗначенияРеквизитов = Новый Структура("Количество", Количество); + Конструктор.УстановитьРеквизиты(ЗначенияРеквизитов); // Получаем данные строки Данные = Конструктор.ДанныеСтроки(); @@ -113,7 +132,8 @@ .Заполнено("Данные конструктора должны быть заполнены структурой") .ИмеетТип("Структура") .Свойство("Покупатель").Равно(Контрагент, "Контрагент должен совпадать") - .Свойство("Сумма").Равно(1000, "Сумма должна быть равна 1000"); + .Свойство("Сумма").Равно(Сумма, "Сумма должна быть равна " + Сумма) + .Свойство("Количество").Равно(Количество, "Количество должна быть равна " + Количество); КонецПроцедуры @@ -135,7 +155,8 @@ ЮТест.ОжидаетЧто(Данные, "Данные строки должны быть заполнены") .Заполнено() .Свойство("Товар") - .НеРавно(Неопределено, "Номенклатура должна быть заполнена"); + .Заполнено("Номенклатура должна быть заполнена") + .ИмеетТип("СправочникСсылка.Товары"); // Проверяем, что метод выбрасывает исключение МассивПараметров = ЮТКоллекции.ЗначениеВМассиве("НесуществующийРеквизит"); @@ -164,10 +185,13 @@ .Заполнено() .Свойство("Товар") .Заполнено("Товар должн быть заполнен") + .ИмеетТип("СправочникСсылка.Товары") .Свойство("Склад") .Заполнено("Склад должен быть заполнен") + .ИмеетТип("СправочникСсылка.Склады") .Свойство("Количество") - .Заполнено("Количество должено быть заполнено"); + .Заполнено("Количество должено быть заполнено") + .ИмеетТип("Число"); // Проверяем, что при указании несуществующих реквизитов выбрасывается исключение МассивПараметров = ЮТКоллекции.ЗначениеВМассиве("Несуществующий1"); @@ -203,21 +227,21 @@ КонецПроцедуры -Процедура Записать() Экспорт +Процедура Записать_РегистрСведений() Экспорт + + МаксимальноеЧисло = 99999; // Создаем документ "УстановкаЦен" Документ = ЮТест.Данные().СоздатьДокумент("Документы.УстановкаЦен"); + Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары"); + ВидыЦены = ЮТест.Данные().СоздатьЭлемент("Справочники.ВидыЦен"); + Цена = ЮТест.Данные().СлучайноеПоложительноеЧисло(МаксимальноеЧисло); // Инициализируем конструктор движений для регистра сведений "ЦеныТоваров" Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ЦеныТоваров"); // Добавляем строку и заполняем необходимые реквизиты - Конструктор.ДобавитьСтроку().УстановитьРеквизиты(Новый Структура( - "Товар, ВидЦен, Цена", - ЮТест.Данные().СоздатьЭлемент("Справочники.Товары"), - ЮТест.Данные().СоздатьЭлемент("Справочники.ВидыЦен"), - 1000 - )); + Конструктор.ДобавитьСтроку().УстановитьРеквизиты(Новый Структура("Товар, ВидЦен, Цена", Товар, ВидыЦены, Цена)); // Записываем движения Конструктор.Записать(); @@ -235,13 +259,18 @@ .Заполнено() .ИмеетДлину(1) .Свойство("[0].Регистратор").Равно(Документ) - .Свойство("[0].Товар").Заполнено() - .Свойство("[0].ВидЦен").Заполнено() - .Свойство("[0].Цена").Равно(1000) + .Свойство("[0].Товар").Равно(Товар) + .Свойство("[0].ВидЦен").Равно(ВидыЦены) + .Свойство("[0].Цена").Равно(Цена) ; +КонецПроцедуры + +Процедура Записать_РегистрНакопления() Экспорт + // Создаем документ Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); + // Инициализируем конструктор движений ЮТест.Данные().КонструкторДвижений(Документ, "ТоварныеЗапасы") .ДобавитьСтроку() @@ -256,6 +285,3 @@ #КонецОбласти -#Область СлужебныеПроцедурыИФункции - -#КонецОбласти From 2730f8997f65371dd5da72e446ea46db673b5076 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 24 Sep 2024 23:33:25 +0300 Subject: [PATCH 16/56] =?UTF-8?q?doc:=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 2 +- ...0\276\320\262\320\275\320\276\320\271.mdo" | 1 - .../RecordSetModule.bsl" | 41 +++++++++++++ ...0\222\320\260\320\273\321\216\321\202.mdo" | 12 +--- .../Module.bsl" | 5 ++ .../Module.bsl" | 5 +- .../Module.bsl" | 60 ------------------- ...0\265\321\200\320\262\320\265\321\200.mdo" | 7 --- .../Module.bsl" | 16 ++--- .../Module.bsl" | 3 +- .../Module.bsl" | 7 ++- .../Module.bsl" | 6 +- .../Module.bsl" | 2 +- .../Module.bsl" | 40 ++++++++++++- tests/src/Configuration/Configuration.mdo | 1 - 16 files changed, 110 insertions(+), 100 deletions(-) create mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/RecordSetModule.bsl" delete mode 100644 "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" delete mode 100644 "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 97b0f8f6a..e92ca3a95 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -120,8 +120,8 @@ ЮТНастройкиВыполнения.КаталогПроекта(), Параметры.ПолныйПуть); - ПолноеИмяСервер = ЮТФайлы.ОбъединитьПути(Результат.СохраняемыйКонтекстСервер.РабочийКаталог, Параметры.ПутьКФайлуПроекта); Результат.СохраняемыйКонтекстСервер = РезультатПередачиФайлов; + ПолноеИмяСервер = ЮТФайлы.ОбъединитьПути(Результат.СохраняемыйКонтекстСервер.РабочийКаталог, Параметры.ПутьКФайлуПроекта); Результат.СохраняемыйКонтекстСервер.Вставить("ПолноеИмя", ПолноеИмяСервер); КонецЕсли; diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" index d80df0f26..5b2889407 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" @@ -287,7 +287,7 @@ &НаКлиенте Функция ДанныеСтроки() Экспорт - Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеСтроки(Контекст); + Возврат ЮТКонструкторТестовыхДанныхСлужебный.ДанныеСтрокиТабличнойЧасти(Контекст); КонецФункции diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" index 710d09a83..7e9c29363 100644 --- "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" +++ "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" @@ -16,7 +16,6 @@ true ChartOfAccounts.Основной - true AccountingRegister.Основной.Form.ФормаСписка Managed true diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/RecordSetModule.bsl" "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/RecordSetModule.bsl" new file mode 100644 index 000000000..7e2032ca1 --- /dev/null +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/RecordSetModule.bsl" @@ -0,0 +1,41 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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 Тогда + ВызватьИсключение "Курс не может быть отрицательным или нулем"; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202.mdo" "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202.mdo" index 6aa595502..b4311b34b 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202.mdo" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202.mdo" @@ -24,7 +24,6 @@ Active - DontUse @@ -34,7 +33,6 @@ LineNumber - DontUse @@ -44,7 +42,6 @@ Recorder - DontUse @@ -55,7 +52,6 @@ ShowError - DontUse @@ -96,7 +92,6 @@ 10 2 - true @@ -109,13 +104,9 @@ ShowError - DontUse Use - DontUse Use - - 0 - + Валюта @@ -136,7 +127,6 @@ ShowError true - DontUse Use true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index de3ef2aa6..819b8e220 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -313,7 +313,11 @@ .Прогон() ; + Регистратор = ЮТест.Данные().СоздатьДокумент(Документы.УстановкаЦен); + НаборЗаписей = РегистрыСведений.ЦеныТоваров.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.Регистратор.Установить(Регистратор); + ЮТест.ОжидаетЧто(НаборЗаписей) .Метод("ПроверитьЗаполнение") .НеВыбрасываетИсключение() @@ -330,6 +334,7 @@ // Через набор записей Мокито.Сбросить(); НаборЗаписей2 = РегистрыСведений.ЦеныТоваров.СоздатьНаборЗаписей(); + НаборЗаписей2.Отбор.Регистратор.Установить(Регистратор); Мокито.Обучение(НаборЗаписей) .Наблюдать("ПередЗаписью") 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 3c7071cc9..27a97674b 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" @@ -235,10 +235,11 @@ .Свойство("Товар").Равно(ДанныеОбъекта.Товары[0].Товар); // Регистры + Курс = ЮТест.Данные().СлучайноеПоложительноеЧисло(99999); Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрыСведений.КурсыВалют") .Фикция("Период") .Фикция("Валюта") - .Фикция("Курс"); + .Установить("Курс", Курс); Конструктор.Записать(); ДанныеОбъекта = Конструктор.ДанныеОбъекта(); @@ -247,7 +248,7 @@ ЮТест.ОжидаетЧто(ДанныеЗаписи) .Свойство("Валюта").Равно(ДанныеОбъекта.Валюта) - .Свойство("Курс").Равно(ДанныеОбъекта.Курс); + .Свойство("Курс").Равно(Курс); КонецПроцедуры 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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\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\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" deleted file mode 100644 index 9317943b7..000000000 --- "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ /dev/null @@ -1,60 +0,0 @@ -//©///////////////////////////////////////////////////////////////////////////©// -// -// 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/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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\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\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" deleted file mode 100644 index e5e10257d..000000000 --- "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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\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\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ /dev/null @@ -1,7 +0,0 @@ - - - ОМ_ЮТКонструкторКоллекцийСлужебныйКлиентСервер - 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 1831dd41a..fb72c7142 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" @@ -132,9 +132,10 @@ Процедура СоздатьЗаписьРегистраСведений() Экспорт + Курс = ЮТест.Данные().СлучайноеПоложительноеЧисло(99999); Результат = ЮТест.Данные().КонструкторОбъекта("РегистрыСведений.КурсыВалют") .Фикция("Валюта") - .Фикция("Курс") + .Установить("Курс", Курс) .Установить("Период", ТекущаяДата()) .Записать(); @@ -146,11 +147,12 @@ Процедура СоздатьЗаписьРегистраСведений_ОбменДанными() Экспорт - Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрСведений.ЦеныТоваров") + ИмяРегистра = "РегистрСведений.КурсыВалют"; + + Конструктор = ЮТест.Данные().КонструкторОбъекта(ИмяРегистра) .Фикция("Период") - .Фикция("Товар") - .Фикция("ВидЦен") - .Установить("Цена", -1); + .Фикция("Валюта") + .Установить("Курс", -1); ДанныеОбъекта = Конструктор.ДанныеОбъекта(); @@ -158,12 +160,12 @@ .Метод("Записать").Параметр(Ложь).Параметр(Истина) .НеВыбрасываетИсключение(); - ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.ЦеныТоваров") + ЮТест.ОжидаетЧтоТаблицаБазы(ИмяРегистра) .СодержитЗаписи(ЮТест.Предикат(ДанныеОбъекта)); ЮТест.ОжидаетЧто(Конструктор) .Метод("Записать") - .ВыбрасываетИсключение("Цена товара не может быть отрицательной"); + .ВыбрасываетИсключение("Курс не может быть отрицательным или нулем"); КонецПроцедуры 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 f7c33a6e7..8b880900b 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" @@ -628,11 +628,12 @@ Процедура УстановитьФоновуюБлокировку() Экспорт Валюта = ЮТест.Данные().СоздатьЭлемент(Справочники.Валюты); + Курс = ЮТест.Данные().СлучайноеПоложительноеЧисло(99999); Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрСведений.КурсыВалют") .Установить("Валюта", Валюта) .Фикция("Период") - .Фикция("Курс"); + .Установить("Курс", Курс); Блокировка = Новый БлокировкаДанных(); ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КурсыВалют"); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index c94f4c824..e053e37ac 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -88,10 +88,13 @@ Процедура УдалениеТестовыхДанныхРегистрСведений(Период) Экспорт - ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.КурсыВалют").НеСодержитЗаписи(ЮТест.Предикат().Реквизит("Период").Равно(Период)); + ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.КурсыВалют") + .НеСодержитЗаписи(ЮТест.Предикат() + .Реквизит("Период").Равно(Период)); + Курс = ЮТест.Данные().СлучайноеПоложительноеЧисло(99999); ЮТест.Данные().КонструкторОбъекта("РегистрыСведений.КурсыВалют") .Фикция("Валюта") - .Фикция("Курс") + .Установить("Курс", Курс) .Установить("Период", Период) .Записать(); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" index b6383bccc..b3b8daee0 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" @@ -42,16 +42,18 @@ Конструктор.Записать(); ДанныеСправочника = Конструктор.ДанныеОбъекта(); + Курс = ЮТест.Данные().СлучайноеПоложительноеЧисло(99999); Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрыСведений.КурсыВалют") .Фикция("Валюта") .Фикция("Период") - .Фикция("Курс"); + .Установить("Курс", Курс); + ДанныеРегистра = Конструктор.ДанныеОбъекта(); Конструктор.Записать(); Конструктор .Фикция("Период") - .Фикция("Курс") + .Установить("Курс", Курс) .Записать(); ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 941105ade..23e2d5463 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -90,7 +90,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(36); + .ИмеетДлину(37); КонецПроцедуры 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" index d46e9d3d9..edbddf5ec 100644 --- "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" @@ -24,6 +24,7 @@ .ДобавитьТест("Инициализировать") .ДобавитьТест("ДобавитьСтроку") .ДобавитьТест("Установить") + .ДобавитьТест("Установить_Период") .ДобавитьТест("УстановитьРеквизиты") .ДобавитьТест("Фикция") .ДобавитьТест("ФикцияРеквизитов") @@ -83,9 +84,10 @@ Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); Покупатель = ЮТест.Данные().СоздатьЭлемент("Справочники.Контрагенты"); - Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи"); Сумма = ЮТест.Данные().СлучайноеПоложительноеЧисло(МаксимальноеЧисло); + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи"); + ЮТест.ОжидаетЧто(Конструктор) .Метод("Установить", ЮТКоллекции.ЗначениеВМассиве("Покупатель", Покупатель)).ВыбрасываетИсключение("Сначала необходимо добавить строку"); @@ -101,6 +103,35 @@ КонецПроцедуры +Процедура Установить_Период() Экспорт + + Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); + Период = ЮТест.Данные().СлучайнаяДата(); + + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи") + .ДобавитьСтроку() + .ФикцияРеквизитов("Покупатель, Сумма") + .Установить("Период", Период); + + Данные = Конструктор.ДанныеСтроки(); + ЮТест.ОжидаетЧто(Данные, "Проверка данных записи") + .Заполнено() + .Свойство("Покупатель").Заполнено() + .Свойство("Сумма").Заполнено() + .Свойство("Период").Равно(Период); + + Конструктор.Записать(); + ЗаписиРегистра = ЮТЗапросы.ДвиженияДокумента(Документ, "Продажи"); + ЮТест.ОжидаетЧто(ЗаписиРегистра, "Проверка сформированных движений") + .Заполнено() + .ИмеетДлину(1) + .Что(ЗаписиРегистра[0]) + .Свойство("Покупатель").Заполнено() + .Свойство("Сумма").Заполнено() + .Свойство("Период").Равно(Период); + +КонецПроцедуры + Процедура УстановитьРеквизиты() Экспорт МаксимальноеЧисло = 99999; @@ -238,8 +269,11 @@ Цена = ЮТест.Данные().СлучайноеПоложительноеЧисло(МаксимальноеЧисло); // Инициализируем конструктор движений для регистра сведений "ЦеныТоваров" - Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ЦеныТоваров"); - + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ЦеныТоваров") + .ДобавитьСтроку() + .ФикцияРеквизитов("Товар, ВидЦен") + .Установить("Цена", 0) + .Записать(); // Добавляем строку и заполняем необходимые реквизиты Конструктор.ДобавитьСтроку().УстановитьРеквизиты(Новый Структура("Товар, ВидЦен, Цена", Товар, ВидыЦены, Цена)); diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 9e120e874..f11d32b7a 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -44,7 +44,6 @@ CommonModule.ОМ_ЮТИсполнительСлужебныйКлиент CommonModule.ОМ_ЮТИсполнительСлужебныйКлиентСервер CommonModule.ОМ_ЮТКоллекции - CommonModule.ОМ_ЮТКонструкторКоллекцийСлужебныйКлиентСервер CommonModule.ОМ_ЮТКонструкторТестовыхДанных CommonModule.ОМ_ЮТМетаданные CommonModule.ОМ_ЮТОбщий From 420782bb2c564c017ae38d79a31c59262e6e53cf Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 24 Sep 2024 23:59:35 +0300 Subject: [PATCH 17/56] =?UTF-8?q?doc:=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=BD=D1=81=D1=82=D1=80=D1=83?= =?UTF-8?q?=D0=BA=D1=82=D0=BE=D1=80=D0=B0=20=D0=B4=D0=B2=D0=B8=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/test-data/data-generation.md | 153 ++++++++++++------ 1 file changed, 102 insertions(+), 51 deletions(-) diff --git a/documentation/docs/features/test-data/data-generation.md b/documentation/docs/features/test-data/data-generation.md index 030cc3da7..ce713954b 100644 --- a/documentation/docs/features/test-data/data-generation.md +++ b/documentation/docs/features/test-data/data-generation.md @@ -1,6 +1,7 @@ --- tags: [Начало, Тестовые данные] sidebar_position: 1 +toc_max_heading_level: 4 --- # Программное создание тестовых данных @@ -91,68 +92,118 @@ sidebar_position: 1 ### Методы создания данных в информационной базе -* Создание пустышек - примитивных объектов с минимальным заполнения. Полезно использовать когда вам нужна ссылка определенного типа, но не важно ее заполнение - * [`ЮТест.Данные().СоздатьЭлемент`](/api/ЮТТестовыеДанные#создатьэлемент) - Создает новый элемент справочника или плана видов характеристик +#### Создание пустышек - ```bsl - Товар = ЮТест.Данные().СоздатьЭлемент(Справочники.Товары); // На основании менеджера - Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары"); // На основании имени менеджера - - ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); - ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина; - Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары", , , ПараметрыЗаписи); // Запись в режиме ОбменДанными.Загрузка = Истина - ``` +Создание записей в базе с минимальным заполнения (наименование, код, номер, дата). +Полезно использовать когда вам нужна ссылка определенного типа, но не важно ее заполнение. - * [`ЮТест.Данные().СоздатьДокумент`](/api/ЮТТестовыеДанные#создатьдокумент) - Создает новый документ +* [`ЮТест.Данные().СоздатьЭлемент`](/api/ЮТТестовыеДанные#создатьэлемент) - Создает новый элемент справочника или плана видов характеристик - ```bsl - Товар = ЮТест.Данные().СоздатьДокумент(Документ.ПриходТовара); // На основании менеджера - Товар = ЮТест.Данные().СоздатьДокумент("Документ.ПриходТовара"); // На основании имени менеджера - ``` + ```bsl + Товар = ЮТест.Данные().СоздатьЭлемент(Справочники.Товары); // На основании менеджера + Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары"); // На основании имени менеджера + + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); + ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина; + Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары", , , ПараметрыЗаписи); // Запись в режиме ОбменДанными.Загрузка = Истина + ``` - * [`ЮТест.Данные().СоздатьГруппу`](/api/ЮТТестовыеДанные#создатьгруппу) - Создает новую группу справочника или плана видов характеристик +* [`ЮТест.Данные().СоздатьДокумент`](/api/ЮТТестовыеДанные#создатьдокумент) - Создает новый документ - ```bsl - Товар = ЮТест.Данные().СоздатьГруппу(Документ.ПриходТовара); // На основании менеджера - Товар = ЮТест.Данные().СоздатьГруппу("Документ.ПриходТовара"); // На основании имени менеджера - ``` + ```bsl + Товар = ЮТест.Данные().СоздатьДокумент(Документ.ПриходТовара); // На основании менеджера + Товар = ЮТест.Данные().СоздатьДокумент("Документ.ПриходТовара"); // На основании имени менеджера + ``` - * [`ЮТест.Данные().Фикция`](/api/ЮТТестовыеДанные#фикция) - Создает новый объект на основании его типа +* [`ЮТест.Данные().СоздатьГруппу`](/api/ЮТТестовыеДанные#создатьгруппу) - Создает новую группу справочника или плана видов характеристик - ```bsl - Товар = ЮТест.Данные().Фикция(Тип("ДокументСсылка.ПриходТовара")); - Товар = ЮТест.Данные().Фикция(Новый ОписаниеТипов("ДокументСсылка.ПриходТовара")); - Товар = ЮТест.Данные().Фикция(Новый ОписаниеТипов("ДокументСсылка.ПриходТовара, ДокументСсылка.РасходТовара")); // Будет выбран случайный тип - ``` + ```bsl + Товар = ЮТест.Данные().СоздатьГруппу(Документ.ПриходТовара); // На основании менеджера + Товар = ЮТест.Данные().СоздатьГруппу("Документ.ПриходТовара"); // На основании имени менеджера + ``` + +* [`ЮТест.Данные().Фикция`](/api/ЮТТестовыеДанные#фикция) - Создает новый объект на основании его типа -* [`ЮТест.Данные().КонструкторОбъекта`](/api/ЮТТестовыеДанные#конструкторобъекта), с помощью которого вы можете создать объект информационной базы с необходимыми реквизитами. - Конструктор позволяет: - * В более компактной форме заполнять объект - * Имеет методы записи и проведения - * При возникновении ошибки оборачивает их в более понятные человеку описания - * Киллер фича - `Фикция`, `ФикцияРеквизитов` и `ФикцияОбязательныхПолей`. Устанавливает случайно сгенерированные значения реквизитов. Таким образом делается акцент на важных для теста реквизитах и экономит "строки" на генерацию ненужных значений - * Умеет создавать данные с клиента и [удалять их по окончании теста](test-data-deletion.md) - ```bsl - Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара") - .ФикцияРеквизитов("Поставщик, Склад") - .ФикцияОбязательныхПолей() - .ТабличнаяЧасть("Товары") - - ОбщиеДанные = Новый Структура("ВидЦены, Поставщик", Закупочная, Конструктор.ДанныеОбъекта().Поставщик); - - Для Инд = 1 По 3 Цикл - Конструктор.ДобавитьСтроку() - .Фикция("Товар") - .УстановитьРеквизиты(ОбщиеДанные) - .Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2)) - .Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20)) - .Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество) - КонецЦикла; - - Возврат Конструктор.Провести(); + Товар = ЮТест.Данные().Фикция(Тип("ДокументСсылка.ПриходТовара")); + Товар = ЮТест.Данные().Фикция(Новый ОписаниеТипов("ДокументСсылка.ПриходТовара")); + Товар = ЮТест.Данные().Фикция(Новый ОписаниеТипов("ДокументСсылка.ПриходТовара, ДокументСсылка.РасходТовара")); // Будет выбран случайный тип ``` +#### Конструктор объекта + +[`ЮТест.Данные().КонструкторОбъекта`](/api/ЮТТестовыеДанные#конструкторобъекта) - инструмент, с помощью которого вы можете создать объект информационной базы с необходимыми реквизитами. +Конструктор позволяет: + +* В более компактной форме заполнять объект +* Имеет методы записи и проведения +* При возникновении ошибки оборачивает их в более понятные человеку описания +* Киллер фича - `Фикция`, `ФикцияРеквизитов` и `ФикцияОбязательныхПолей`. Устанавливает случайно сгенерированные значения реквизитов. Таким образом делается акцент на важных для теста реквизитах и экономит "строки" на генерацию ненужных значений +* Умеет создавать данные с клиента и [удалять их по окончании теста](test-data-deletion.md) + +```bsl +Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара") + .ФикцияРеквизитов("Поставщик, Склад") + .ФикцияОбязательныхПолей() + .ТабличнаяЧасть("Товары") + +ОбщиеДанные = Новый Структура("ВидЦены, Поставщик", Закупочная, Конструктор.ДанныеОбъекта().Поставщик); + +Для Инд = 1 По 3 Цикл + Конструктор.ДобавитьСтроку() + .Фикция("Товар") + .УстановитьРеквизиты(ОбщиеДанные) + .Установить("Цена", ЮТест.Данные().СлучайноеПоложительноеЧисло(9999, 2)) + .Установить("Количество", ЮТест.Данные().СлучайноеПоложительноеЧисло(20)) + .Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество) +КонецЦикла; + +Возврат Конструктор.Провести(); +``` + +#### Конструктор движения документа + +[`ЮТест.Данные().КонструкторДвижений`](/api/ЮТТестовыеДанные#конструктордвижений) - инструмент, с помощью которого вы можете формировать необходимые для теста движения документа. +С его помощью вы можете сократить время на подготовку данных и упростить логику их создания. + +Конструктор позволяет: + +* В более компактной форме формировать движения объекта. +* При возникновении ошибки оборачивает их в более понятные человеку описания. +* Киллер фича - `Фикция`, `ФикцияРеквизитов` и `ФикцияОбязательныхПолей`. Устанавливает случайно сгенерированные значения реквизитов. + Таким образом делается акцент на важных для теста реквизитах и экономит "строки" на генерацию ненужных значений. +* Умеет создавать данные с клиента и [удалять их по окончании теста](test-data-deletion.md). + +```bsl title="Пример установки движений документа" +// Создание пустышки документа, будет использоваться в качестве регистратора +Документ = ЮТест.Данные().СоздатьДокумент("Документы.УстановкаЦен"); + +// Формирование нужных проводок по регистру ЦеныТоваров +ЮТест.Данные().КонструкторДвижений(Документ, "ЦеныТоваров") // Инициализация конструктора + .ДобавитьСтроку() // Добавление записи в набор + .ФикцияРеквизитов("Товар, ВидЦен") // Заполнение фиктивными данными + .Установить("Цена", 0) // Установка цены + .Записать(); // Сохранение + +// Создание дополнительных данных +Документ = ЮТест.Данные().СоздатьДокумент("Документы.РасходТовара"); +Покупатель = ЮТест.Данные().СоздатьЭлемент("Справочники.Контрагенты"); + +// Инициализация конструктора +Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "Продажи"); + +// Заполнение движений +Для Инд = 1 По 10 Цикл + Конструктор + .ДобавитьСтроку() + .Установить("Покупатель", Покупатель) + .ФикцияРеквизитов("Товар, Сумма"); +КонецЦикла; + +// Сохранение записей в базе +Конструктор.Записать(); +``` + ### Загрузка данных из макетов Работа с макетами описана в отдельной [статье](load-from-templates.md) From 6ea961ce26f5346c387ac1631a2201b618ae89ff Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 25 Sep 2024 00:39:17 +0300 Subject: [PATCH 18/56] =?UTF-8?q?fix:=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 4 ++-- .../RecordSetModule.bsl" | 2 +- .../Module.bsl" | 6 +----- 3 files changed, 4 insertions(+), 8 deletions(-) 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 e47125f22..1ae9dc1df 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" @@ -175,7 +175,7 @@ ДанныеТабличнойЧасти = ДанныеТабличнойЧасти(Контекст); - Если ДанныеТабличнойЧасти.Количество() Тогда + Если ЗначениеЗаполнено(ДанныеТабличнойЧасти) Тогда Возврат ДанныеТабличнойЧасти[ДанныеТабличнойЧасти.ВГраница()]; Иначе ВызватьИсключение "Сначала необходимо добавить строку табличной части"; @@ -293,7 +293,7 @@ "ЮТест.Данные().КонструкторДвижений", "ИмяРегистра"); - Если НЕ ЮТМетаданные.ЭтоДокумент(Документ) Или ЮТТипыДанныхСлужебный.ЭтоМенеджер(ТипЗнч(Документ))Тогда + Если НЕ ЮТМетаданные.ЭтоДокумент(Документ) Или ЮТТипыДанныхСлужебный.ЭтоМенеджер(ТипЗнч(Документ)) Тогда ТекстОшибки = СтрШаблон("Некорректный тип параметра `Документ` метода `ЮТест.Данные().КонструкторДвижений`. |Это должен быть документ (ссылка или объект), а получили `%1` (%2)", ТипЗнч(Документ), diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/RecordSetModule.bsl" "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/RecordSetModule.bsl" index 7e2032ca1..176092a16 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/RecordSetModule.bsl" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/RecordSetModule.bsl" @@ -29,7 +29,7 @@ Для Каждого Строка Из ЭтотОбъект Цикл Если Строка.Курс <= 0 Тогда - ВызватьИсключение "Курс не может быть отрицательным или нулем"; + ВызватьИсключение НСтр("ru='Курс не может быть отрицательным или нулем';en='Exchange rate cannot be negative or zero'"); КонецЕсли; КонецЦикла; 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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" index edbddf5ec..cb5f7fcd9 100644 --- "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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\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\224\320\262\320\270\320\266\320\265\320\275\320\270\320\271_\320\234\320\236/Module.bsl" @@ -269,11 +269,7 @@ Цена = ЮТест.Данные().СлучайноеПоложительноеЧисло(МаксимальноеЧисло); // Инициализируем конструктор движений для регистра сведений "ЦеныТоваров" - Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ЦеныТоваров") - .ДобавитьСтроку() - .ФикцияРеквизитов("Товар, ВидЦен") - .Установить("Цена", 0) - .Записать(); + Конструктор = ЮТест.Данные().КонструкторДвижений(Документ, "ЦеныТоваров"); // Добавляем строку и заполняем необходимые реквизиты Конструктор.ДобавитьСтроку().УстановитьРеквизиты(Новый Структура("Товар, ВидЦен, Цена", Товар, ВидыЦены, Цена)); From 5fb543d0c0c80fc9685b81db1566c807f0a5b617 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 25 Sep 2024 01:00:13 +0300 Subject: [PATCH 19/56] =?UTF-8?q?doc:=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=BB=D0=BE=D0=B3=D0=BE=D1=82=D0=B8=D0=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- documentation/docusaurus.config.js | 4 ++-- documentation/static/img/logo.png | Bin 2018 -> 0 bytes documentation/static/img/logo.svg | 10 ++++++++++ 4 files changed, 13 insertions(+), 3 deletions(-) delete mode 100644 documentation/static/img/logo.png create mode 100644 documentation/static/img/logo.svg diff --git a/README.md b/README.md index db042666b..1e0f9c2d5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ![Logo](documentation/static/img/logo.png) YAxUnit. Расширение для запуска тестов +# ![Logo](documentation/static/img/logo.svg) YAxUnit. Расширение для запуска тестов ---- diff --git a/documentation/docusaurus.config.js b/documentation/docusaurus.config.js index 9b1e84a54..987ccc1db 100644 --- a/documentation/docusaurus.config.js +++ b/documentation/docusaurus.config.js @@ -7,7 +7,7 @@ import {themes as prismThemes} from 'prism-react-renderer'; const config = { title: 'YAx Unit', tagline: 'Модульные тесты для 1С - это не сложно', - favicon: 'img/logo.png', + favicon: 'img/logo.svg', // Set the production url of your site here url: 'https://bia-technologies.github.io/', @@ -96,7 +96,7 @@ const config = { title: 'YAx Unit', logo: { alt: 'YAxUnit Logo', - src: 'img/logo.png', + src: 'img/logo.svg', }, items: [ { diff --git a/documentation/static/img/logo.png b/documentation/static/img/logo.png deleted file mode 100644 index 436ba46460d7658fe27be1b9d69657c714ef60da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2018 zcmV<82Oao{P)EX>4Tx04R}tkv&MmKpe$iQ?;TM2Rn#3WT;LSi;6gE6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfb#YR3krMyc6k5c1aNLh~_a1le0HIc5n$-~nG~G6n z@tBy-tcrnG2)O(glehxvseU#yQ_$foF!yRC1m;L@egpSZQNcFg4;S;;^delrN-R zRyl8R)=CxDyeEHQFsrXDbDice;#kBIB#2N@K@la`h|sE&Vj)TUF%SPx!!MCbAy*NM z91AEzgWT|g|H1EWt=!~eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00p{9L_t(o!=0C3Z(LUu#eeJm8IL_PiJgfvuAQW5;`D(M zQWXeQ1(84?A+_R}C!|We^8qUL0SWPf_ySb@4CSF}8wm-LP^c<3Zdxb>H^y}y|7ZI9tdS2MczoU_+nd+mMp(alC(5FM#6(003VA?+Ipr`w_GQfJAp_2;da(Bj9B4FXa~``<-#iCUc0d(RRXO#EfA6~Yb4W8te>Zrv)@Wc7oudGV zB`|9OH=Oz@XCf{LwTjtk2Qb`6{Xc=*n9U+B0b9W<=Z4vlLICgtm~{<&6FBL`rd+5O zwZ65P3-@DJ{UTDE5D1PUEqnNdy+mxngLc1Sr5?3*kcx;Y)?k zJ4iwxgg`1CjRA`y%&a5np%;;32B*E&mkPO_k0-!g;BUZZYiG*~A6=T*{=vHoV8+F% zDH4fSKlx;L#jjr8Mf2L*JF(Hti3uzOFhg-%!fZ@t-vNFGylB$NzOrh-9gFn`(&)ze z^?B=l z1gs?S4i}S0;`@pmQZ5DV3>=x*O3$^5B z{ilBLMIOHEz)bYJW)oa2+ad6D6oJ$M)~t7`ZTH3BfX-T_l-({TwWhcXd=Iz^ywE$K zG_sq<7JKa|&ij@#GM0SW?IH)D5XkCv^&QOz4W(vL1PXiSYsaInc3Q~aIh`!7mj&ZZW9bYvMrNEz4lQ5> zc$CoVI58lNB7*IxCOb^P*G7^}M9b^?J>VQLigC%isw>{I9e3lWfPnGX527W+mkGeO z8OP(8wJc*OiuT+#b#VT4Fjj!uPH*rVR>he(TgWu?m_OWU;ot!o?HHgQ0%y{cA2*x4 zTCMKk{2%~tzI58aI*1j&j^($bxG%dxk8-=$)0N%>-NZD{>u;|sDrn$;9=~}-WR{X~ z2IGp~8J>2^(}MRcum` + + + + + + + + + From 5d2258e7b8dbfea620fac3d4c1e567044b8c058a Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 25 Sep 2024 01:09:15 +0300 Subject: [PATCH 20/56] =?UTF-8?q?doc:=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20badge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 ++++++------- documentation/src/pages/index.md | 12 ++++++------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 1e0f9c2d5..812ba4743 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,13 @@ ---- -[![Actions Status](https://github.com/bia-technologies/yaxunit/actions/workflows/sq.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions) -[![Download](https://img.shields.io/github/release/bia-technologies/yaxunit.svg?label=download&style=flat)](https://github.com/bia-technologies/yaxunit/releases/latest) -[![GitHub Releases](https://img.shields.io/github/downloads/bia-technologies/yaxunit/latest/total?style=flat-square)](https://github.com/bia-technologies/yaxunit/releases) +[![Проверка Sonar](https://github.com/bia-technologies/yaxunit/actions/workflows/sonar-qube-analysis.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/sonar-qube-analysis.yml) [![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) +[![Maintainability](https://sonar.openbsl.ru/api/project_badges/measure?project=yaxunit&metric=sqale_rating)](https://sonar.openbsl.ru/dashboard?id=yaxunit) +[![Тестирование](https://github.com/bia-technologies/yaxunit/actions/workflows/perform-tests.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/perform-tests.yml) +[![Сборка документации](https://github.com/bia-technologies/yaxunit/actions/workflows/deploy-documentation.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/deploy-documentation.yml) +[![Download](https://img.shields.io/github/release/bia-technologies/yaxunit.svg?label=download&style=flat)](https://github.com/bia-technologies/yaxunit/releases/latest) +[![GitHub Releases](https://img.shields.io/github/downloads/bia-technologies/yaxunit/latest/total?style=flat-square)](https://github.com/bia-technologies/yaxunit/releases) Обсудить в [Telegram чате](https://t.me/BIAOpenTools/12) diff --git a/documentation/src/pages/index.md b/documentation/src/pages/index.md index cc3bdde7a..3c3739f07 100644 --- a/documentation/src/pages/index.md +++ b/documentation/src/pages/index.md @@ -7,13 +7,13 @@ slug: / ---- -[![Actions Status](https://github.com/bia-technologies/yaxunit/actions/workflows/sq.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions) -[![Download](https://img.shields.io/github/release/bia-technologies/yaxunit.svg?label=download&style=flat)](https://github.com/bia-technologies/yaxunit/releases/latest) -[![GitHub Releases](https://img.shields.io/github/downloads/bia-technologies/yaxunit/latest/total?style=flat-square)](https://github.com/bia-technologies/yaxunit/releases) +[![Проверка Sonar](https://github.com/bia-technologies/yaxunit/actions/workflows/sonar-qube-analysis.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/sonar-qube-analysis.yml) [![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) +[![Maintainability](https://sonar.openbsl.ru/api/project_badges/measure?project=yaxunit&metric=sqale_rating)](https://sonar.openbsl.ru/dashboard?id=yaxunit) +[![Тестирование](https://github.com/bia-technologies/yaxunit/actions/workflows/perform-tests.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/perform-tests.yml) +[![Сборка документации](https://github.com/bia-technologies/yaxunit/actions/workflows/deploy-documentation.yml/badge.svg)](https://github.com/bia-technologies/yaxunit/actions/workflows/deploy-documentation.yml) +[![Download](https://img.shields.io/github/release/bia-technologies/yaxunit.svg?label=download&style=flat)](https://github.com/bia-technologies/yaxunit/releases/latest) +[![GitHub Releases](https://img.shields.io/github/downloads/bia-technologies/yaxunit/latest/total?style=flat-square)](https://github.com/bia-technologies/yaxunit/releases) [![Telegram чате](images/telegram.svg)](https://t.me/BIAOpenTools/12) ---- From be1d513c9797e1fed4963a13defab25b17ff2d2e Mon Sep 17 00:00:00 2001 From: Ilya Bushin Date: Thu, 10 Oct 2024 16:07:47 +0300 Subject: [PATCH 21/56] =?UTF-8?q?=D0=9D=D0=B5=20=D1=83=D0=B4=D0=B0=D0=BB?= =?UTF-8?q?=D1=8F=D1=8E=D1=82=D1=81=D1=8F=20=D1=82=D0=B5=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D1=8B=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 73 +++++++++++++++++++ .../Module.bsl" | 10 ++- 2 files changed, 82 insertions(+), 1 deletion(-) 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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\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 bff8c884b..6b3263d01 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\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" @@ -24,4 +24,77 @@ КонецФункции +Функция СсылочныеТипыДобавляемыеРасширениями() Экспорт + + СсылочныеТипы = Новый Массив; + ТипыОбъектовМетаданныхСсылочногоТипа = ТипыОбъектовМетаданныхСсылочногоТипа(); + + ЭтоРазделенныйСеанс = ПараметрыСеанса.ОбластьДанныхИспользование; + + УстановитьПривилегированныйРежим(Истина); + РасширенияСеанса = РасширенияКонфигурации.Получить(, + ИсточникРасширенийКонфигурации.СеансАктивные); + + ОбластьДействияРазделение = ОбластьДействияРасширенияКонфигурации.РазделениеДанных; + Для Каждого Расширение Из РасширенияСеанса Цикл + + Если ЭтоРазделенныйСеанс И + Расширение.ОбластьДействия <> ОбластьДействияРазделение Тогда + Продолжить; + КонецЕсли; + + Если НЕ Расширение.ИзменяетСтруктуруДанных() Тогда + Продолжить; + КонецЕсли; + + ОМДРасширения = Новый ОбъектМетаданныхКонфигурация(Расширение.ПолучитьДанные()); + + Для Каждого ТипОМД Из ТипыОбъектовМетаданныхСсылочногоТипа Цикл + ДополнитьТипы(СсылочныеТипы, ТипОМД, ОМДРасширения); + КонецЦикла; + + КонецЦикла; + + Возврат СсылочныеТипы; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ДополнитьТипы(СсылочныеТипы, ТипОМД, ОМДРасширения) + + ПринадлежностьОбъекта = Метаданные.СвойстваОбъектов.ПринадлежностьОбъекта.Собственный; + + Для Каждого ОМД Из ОМДРасширения[ТипОМД] Цикл + + Если ОМД.ПринадлежностьОбъекта <> ПринадлежностьОбъекта Тогда + Продолжить; + КонецЕсли; + + СсылкаДляОпределенияТипа = ПредопределенноеЗначение(ОМД.ПолноеИмя() + + ".ПустаяСсылка"); + СсылочныеТипы.Добавить(ТипЗнч(СсылкаДляОпределенияТипа)); + + КонецЦикла; + +КонецПроцедуры + +Функция ТипыОбъектовМетаданныхСсылочногоТипа() + + ТипыОбъектовМетаданныхСсылочногоТипа = Новый Массив; + ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("Справочники"); + ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("Документы"); + ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("БизнесПроцессы"); + ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("Задачи"); + ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("ПланыСчетов"); + ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("ПланыОбмена"); + ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("ПланыВидовХарактеристик"); + ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("ПланыВидовРасчета"); + + Возврат ТипыОбъектовМетаданныхСсылочногоТипа; + +КонецФункции + #КонецОбласти 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 a27fca666..df0c7575e 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" @@ -155,7 +155,15 @@ " | cc:AnyRef |"); - Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML); + ОписаниеТипаЛюбаяСсылка = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); + + СсылочныеТипыРасширений = ЮТМетодыСлужебныйВызовСервера.СсылочныеТипыДобавляемыеРасширениями(); + + Если СсылочныеТипыРасширений.Количество() <> 0 Тогда + ОписаниеТипаЛюбаяСсылка = Новый ОписаниеТипов(ОписаниеТипаЛюбаяСсылка, СсылочныеТипыРасширений); + КонецЕсли; + + Возврат ОписаниеТипаЛюбаяСсылка; #КонецЕсли КонецЕсли; From 89f0f2d7a6852d992256ede5e497e29a817966dd Mon Sep 17 00:00:00 2001 From: Ilya Bushin Date: Thu, 10 Oct 2024 16:40:14 +0300 Subject: [PATCH 22/56] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D1=83?= =?UTF-8?q?=D0=BF=D0=BE=D0=BC=D0=B8=D0=BD=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) 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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\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 6b3263d01..1d5706607 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\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" @@ -29,20 +29,12 @@ СсылочныеТипы = Новый Массив; ТипыОбъектовМетаданныхСсылочногоТипа = ТипыОбъектовМетаданныхСсылочногоТипа(); - ЭтоРазделенныйСеанс = ПараметрыСеанса.ОбластьДанныхИспользование; - УстановитьПривилегированныйРежим(Истина); - РасширенияСеанса = РасширенияКонфигурации.Получить(, - ИсточникРасширенийКонфигурации.СеансАктивные); + РасширенияСеанса = РасширенияКонфигурации.Получить(, ИсточникРасширенийКонфигурации.СеансАктивные); ОбластьДействияРазделение = ОбластьДействияРасширенияКонфигурации.РазделениеДанных; Для Каждого Расширение Из РасширенияСеанса Цикл - Если ЭтоРазделенныйСеанс И - Расширение.ОбластьДействия <> ОбластьДействияРазделение Тогда - Продолжить; - КонецЕсли; - Если НЕ Расширение.ИзменяетСтруктуруДанных() Тогда Продолжить; КонецЕсли; @@ -73,8 +65,8 @@ Продолжить; КонецЕсли; - СсылкаДляОпределенияТипа = ПредопределенноеЗначение(ОМД.ПолноеИмя() - + ".ПустаяСсылка"); + ИмяПустойСсылкиТипа = ОМД.ПолноеИмя() + ".ПустаяСсылка"; + СсылкаДляОпределенияТипа = ПредопределенноеЗначение(ИмяПустойСсылкиТипа); СсылочныеТипы.Добавить(ТипЗнч(СсылкаДляОпределенияТипа)); КонецЦикла; From 869ff61da693f9aaf7a307e0b10ff426cb2f7df0 Mon Sep 17 00:00:00 2001 From: Ilya Bushin Date: Thu, 10 Oct 2024 16:48:03 +0300 Subject: [PATCH 23/56] =?UTF-8?q?=D0=9D=D0=B5=20=D0=B2=D1=81=D1=91=20?= =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B5=20=D1=81=20=D1=80=D0=B0=D0=B7=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 1 - 1 file changed, 1 deletion(-) 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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\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 1d5706607..b687f5627 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\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" @@ -32,7 +32,6 @@ УстановитьПривилегированныйРежим(Истина); РасширенияСеанса = РасширенияКонфигурации.Получить(, ИсточникРасширенийКонфигурации.СеансАктивные); - ОбластьДействияРазделение = ОбластьДействияРасширенияКонфигурации.РазделениеДанных; Для Каждого Расширение Из РасширенияСеанса Цикл Если НЕ Расширение.ИзменяетСтруктуруДанных() Тогда From 0b5adaa9841edb48f6b7011fe36bdb6b43318acf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BE=D1=80=D1=8F=D0=BA=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Sun, 27 Oct 2024 14:50:14 +0300 Subject: [PATCH 24/56] =?UTF-8?q?doc:=20=D1=81=D0=BA=D0=BE=D1=80=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=83=D1=82?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 863 +++++++++++++----- 1 file changed, 615 insertions(+), 248 deletions(-) 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 ee8f76c5d..a5667fe96 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" @@ -20,20 +20,21 @@ // Инициализирует модуль для проверки утверждений. // -// * Запоминает проверяемое значение. -// * Запоминает описание. -// * Сбрасывает настройки предыдущих утверждений. -// -// Утверждения формируются методами этого модуля. +// * Устанавливает новый контекст утверждений. +// * Запоминает проверяемое значение и описание проверки. +// * Сбрасывает предыдущие настройки контекста утверждений. // // Параметры: -// ПроверяемоеЗначение - Произвольный - Проверяемое фактическое значение -// Сообщение - Строка - Описание проверки, которое будет выведено при возникновении ошибки +// ПроверяемоеЗначение - Произвольный - Проверяемое фактическое значение. +// Сообщение - Строка - Описание проверки, которое будет выведено при возникновении ошибки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания -// Примеры -// ЮТУтверждения.Что(...).ЭтоИстина(...); +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение, "Проверка значения") +// .ЭтоИстина() +// ; // Функция Что(Знач ПроверяемоеЗначение, Знач Сообщение = "") Экспорт @@ -50,14 +51,22 @@ КонецФункции // Запоминает описание метода (имя и параметры) для последующей проверки. +// Используется для проверки выполнения метода, совместно с методами +// см. ВыбрасываетИсключение и см. НеВыбрасываетИсключение. // // Параметры: -// ИмяМетода - Строка - Наименование метода -// ПараметрыМетода - Массив из Произвольный - Параметры вызываемого метода. -// В качестве конструктора параметров можно использовать см. ЮТМетоды.МассивПараметров +// ИмяМетода - Строка - Наименование метода объекта (или его свойство), указанного при инициализации. +// ПараметрыМетода - Массив из Произвольный - Параметры, с которыми будет вызываться метод. +// Можно использовать конструктор параметров см. ЮТМетоды.МассивПараметров. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Объект) +// .Метод("Записать", ЮТМетоды.МассивПараметров(РежимЗаписиДокумента.Проведение)) +// .ВыбрасываетИсключение("Какая-то ошибка проведения") +// ; Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт Контекст = Контекст(); @@ -73,13 +82,22 @@ КонецФункции -// Добавляет параметр метода для последующего вызова метода и проверки. +// Добавляет параметр метода (см. Метод) для последующего вызова метода и проверки. +// +// * Сохраняет переданное значение как параметр для дальнейшего использования при вызове метода. +// * Позволяет добавлять параметры последовательно. // // Параметры: -// ЗначениеПараметра - Произвольный - Параметр вызываемого метода +// ЗначениеПараметра - Произвольный - Параметр вызываемого метода. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Объект) +// .Метод("Записать").Параметр(РежимЗаписиДокумента.Проведение).Параметр(РежимПроведенияДокумента.Оперативный) +// .ВыбрасываетИсключение("Какая-то ошибка проведения") +// ; Функция Параметр(Знач ЗначениеПараметра) Экспорт Контекст = Контекст(); @@ -98,13 +116,17 @@ КонецФункции -// Устанавливает описание проверяемого объекта. +// Запоминает переданное представление объекта для использования в сообщениях об ошибках. // // Параметры: -// Представление - Строка - Представление +// Представление - Строка - Текстовое представление проверяемого объекта. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДвиженияДокумента).ИмеющееПредставление("Движения документа") +// .Заполнено(); Функция ИмеющееПредставление(Представление) Экспорт Контекст().ОбъектПроверки.Представление = Представление; @@ -112,18 +134,24 @@ КонецФункции -// Проверяет наличие свойства и запоминает его для последующих проверок. +// Проверяет наличие свойства и запоминает его для последующих проверок указанного свойства. // -// Важно, следующие проверки будут относится к этому свойству. +// Важно, что следующие проверки будут относиться к этому свойству. // Для переключения на проверки объекта можно воспользоваться методом см. Объект. // // Параметры: // ИмяСвойства - Строка - Наименование свойства объекта. -// Возможно обращение к вложенным свойствам через точку -// ОписаниеПроверки - Строка - Описание конкретной проверки +// Возможно обращение к вложенным свойствам через точку, а к элементам коллекций по индексу `[0]`. +// ОписаниеПроверки - Строка - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Движения) +// .Свойство("Остатки").Заполнено() +// .Свойство("Остатки[0].Номенклатура").Равно(Номенклатура) +// ; Функция Свойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -144,11 +172,16 @@ // // Параметры: // ИмяСвойства - Строка - Наименование свойства объекта. -// Возможно обращение к вложенным свойствам через точку +// Возможно обращение к вложенным свойствам через точку // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Движения) +// .НетСвойства("Взаиморасчеты") +// ; Функция НетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -165,15 +198,22 @@ // Проверяет наличие элемента с указанным индексом и позиционируется на нем для последующих проверок. // -// Важно, следующие проверки будут относится к этому элементу. +// Важно, что следующие проверки будут относиться к этому элементу. // Для переключения на проверки объекта можно воспользоваться методом см. Объект. // +// Это алиас метода см. Свойство +// // Параметры: -// Индекс - Число - Индекс элемента коллекции -// ОписаниеПроверки - Строка - Описание конкретной проверки +// Индекс - Число - Индекс элемента коллекции. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Движения.Остатки) +// .Элемент(1).Равно(ОжидаемаяСтрокаДвижений) +// ; Функция Элемент(Знач Индекс, Знач ОписаниеПроверки = Неопределено) Экспорт Возврат Свойство(Индекс, ОписаниеПроверки); @@ -182,8 +222,16 @@ // Используется после вызова метода см. Свойство, для переключения с ранее указанного свойства на объект. // +// Этот метод позволяет продолжить проверки на уровне объекта, после того как была выполнена проверка его свойств. +// // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Движения) +// .Свойство("[0]Контрагент").Равно(Контрагент") +// .Объект().ИмеетДлину(1) +// ; Функция Объект() Экспорт Контекст = Контекст(); @@ -195,17 +243,23 @@ #Область УтвержденияПредикатов -// Проверяет установленное значение Контекста (или его свойство) на равенство ожидаемому. +// Проверяет установленное значение (или его свойство) на равенство ожидаемому. // // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. -// Для сериализуемых объектов проверяется равенство по значению. +// Реализовано сравнение не только примитивных значений, но и структур, массивов, таблиц и прочего. +// Для сериализуемых объектов проверяется равенство по сериализованной форме. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) равно этому значению -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение (или его свойство) равно этому значению. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .Равно(5, "Проверка на равенство ожидаемому значению 5") +// ; Функция Равно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина); @@ -214,17 +268,23 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство ожидаемому. +// Проверяет установленное значение (или его свойство) на НЕ равенство ожидаемому. // -// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения -// Для сериализуемых значений проверяется равенство по значению +// При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. +// Реализовано сравнение не только примитивных значений, но и структур, массивов, таблиц и прочего. +// Для сериализуемых объектов проверяется равенство по сериализованной форме // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ равно этому значению -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Произвольный - Ожидается, что установленное значение (или его свойство) НЕ равно этому значению. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .НеРавно(10, "Проверка на неравенство ожидаемому значению 10") +// ; Функция НеРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина); @@ -233,14 +293,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше ожидаемого. +// Проверяет установленное значение (или его свойство), оно должно быть больше ожидаемого. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Произвольный - Ожидается, что установленное значение (или его свойство) больше этого значения. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .Больше(0, "Проверка, что значение больше 0") +// ; Функция Больше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().Больше, ОжидаемоеЗначение, ОписаниеПроверки); @@ -248,14 +313,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство), оно должно быть больше или равно ожидаемому. +// Проверяет установленное значение (или его свойство), оно должно быть больше или равно ожидаемому. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) Больше этого значения или равно ему -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Произвольный - Ожидается, что установленное значение (или его свойство) больше или равно указанному. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .БольшеИлиРавно(10, "Проверка, что значение больше или равно 10") +// ; Функция БольшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().БольшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); @@ -263,14 +333,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше ожидаемого. +// Проверяет установленное значение (или его свойство), оно должно быть меньше ожидаемого. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Произвольный - Ожидается, что установленное значение (или его свойство) меньше этого значения. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .Меньше(100, "Проверка, что значение меньше 100") +// ; Функция Меньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().Меньше, ОжидаемоеЗначение, ОписаниеПроверки); @@ -278,14 +353,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство), оно должно быть меньше или равно ожидаемому. +// Проверяет установленное значение (или его свойство), оно должно быть меньше или равно ожидаемому. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) меньше этого значения или равно ему -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Произвольный - Ожидается, что установленное значение (или его свойство) меньше этого значения или равно ему. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Контекст) +// .МеньшеИлиРавно(50, "Проверка, что значение меньше или равно 50") +// ; Функция МеньшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().МеньшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); @@ -293,13 +373,18 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на "заполненность" (обертка для `ЗначениеЗаполнено`). +// Проверяет установленное значение (или его свойство) на "заполненность" (обертка для `ЗначениеЗаполнено`). // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .Заполнено("Проверка, что значение заполнено") +// ; Функция Заполнено(Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().Заполнено, , ОписаниеПроверки); @@ -307,13 +392,18 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на "не заполненность" (обертка для `ЗначениеЗаполнено`) +// Проверяет установленное значение (или его свойство) на "не заполненность" (обертка для `ЗначениеЗаполнено`). // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .НеЗаполнено("Проверка, что значение не заполнено") +// ; Функция НеЗаполнено(Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеЗаполнено, , ОписаниеПроверки); @@ -321,14 +411,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на соответствие переданному типу. +// Проверяет установленное значение (или его свойство) на соответствие переданному типу. // // Параметры: -// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) имеет данный тип -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение (или его свойство) имеет данный тип. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .ИмеетТип(Тип("Строка"), "Проверка, что значение имеет тип 'Строка'") +// ; Функция ИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().ИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); @@ -336,14 +431,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на несоответствие переданному типу. +// Проверяет установленное значение (или его свойство) на несоответствие переданному типу. // // Параметры: -// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение Контекста (или его свойство) НЕ имеет данный тип -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Строка, Тип, ОписаниеТипов - Ожидается, что значение (или его свойство) НЕ имеет данный тип. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .НеИмеетТип(Тип("Число"), "Проверка, что значение не имеет тип 'Число'") +// ; Функция НеИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); @@ -351,7 +451,7 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого. +// Проверяет установленное значение (или его свойство) на наличие в нем искомого. // // Проверка поддерживается для следующих типов проверяемого значения: // @@ -365,15 +465,27 @@ // - ФиксированноеСоответствие - по наличию равного значения // - Произвольный итерируемый объект для проверки на соответствие предикату // -// При сравнении также проверяется совпадение типов +// При сравнении также проверяется совпадение типов. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) содержит указанное значение +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение (или его свойство) содержит указанное значение. // - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто("Привет, мир!") +// .Содержит(", ", "Проверка на наличие искомого значения") +// ; +// +// Предикат = ЮТест.Предикат(). +// Реквизит("Номенклатура").Равно(Номенклатура) +// .Получить(); +// ЮТест.ОжидаетЧто(Документ.Движения.Остатки) +// .Содержит(Предикат, "Проверка на наличие проводки с нужной номенклатурой") +// ; Функция Содержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда @@ -386,11 +498,11 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на наличие в нем искомого. +// Проверяет установленное значение (или его свойство) на наличие в нем искомого. // // Проверка поддерживается для следующих типов проверяемого значения: // -// - Строка - по отсутствию вхождению +// - Строка - по отсутствию вхождения // - Массив - по отсутствию равного элемента // - Структура - по отсутствию равного значения // - Соответствие - по отсутствию равного значения @@ -400,15 +512,20 @@ // - ФиксированноеСоответствие - по отсутствию равного значения // - Произвольный итерируемый объект для проверки на соответствие предикату // -// При сравнении также проверяется совпадение типов +// При сравнении также проверяется совпадение типов. // // Параметры: -// ОжидаемоеЗначение - Произвольный - Ожидается, что значение Контекста (или его свойство) НЕ содержит указанное +// ОжидаемоеЗначение - Произвольный - Ожидается, что значение (или его свойство) НЕ содержит указанное значение. // - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто("Hello word!") +// .НеСодержит("Привет", "Проверка на отсутствие искомого значения") +// ; Функция НеСодержит(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда @@ -421,14 +538,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на наличие подстроки, соответствующей регулярному выражению +// Проверяет установленное значение (или его свойство) на наличие подстроки, соответствующей регулярному выражению. // // Параметры: -// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку -// ОписаниеПроверки - Строка - Описание конкретной проверки +// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .СодержитСтрокуПоШаблону("^[A-Z]+$", "Проверка, что значение содержит только заглавные английские буквы") +// ; Функция СодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().СодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); @@ -436,14 +558,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на отсутствие подстроки, соответствующей регулярному выражению -// +// Проверяет установленное значение (или его свойство) на отсутствие подстроки, соответствующей заданному регулярному выражению. +// // Параметры: -// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку -// ОписаниеПроверки - Строка - Описание конкретной проверки +// Шаблон - Строка - Регулярное выражение, по которому ищем подстроку. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .НеСодержитСтрокуПоШаблону("[A-Z]", "Проверка, что значение не содержит заглавные буквы") +// ; Функция НеСодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеСодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); @@ -451,15 +578,21 @@ КонецФункции -// Проверяет наличие свойства у объекта/его свойства. -// В отличии от метода см. Свойство не позиционируется на указанное свойство. +// Проверяет наличие свойства у объекта или его свойства. +// В отличие от метода см. Свойство, не позиционируется на указанное свойство. +// // Параметры: // ИмяСвойства - Строка - Наименование свойства объекта. -// Возможно обращение к вложенным свойствам через точку +// Возможно обращение к вложенным свойствам через точку // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект) +// .ИмеетСвойство("Движения", "Движения должны существовать") +// ; Функция ИмеетСвойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().ИмеетСвойство, ИмяСвойства, ОписаниеПроверки); @@ -467,16 +600,21 @@ КонецФункции -// Проверяет отсутствие свойства у объекта/его свойства. -// В отличии от метода см. НетСвойства не сбрасывает позиционирование проверки. +// Проверяет отсутствие свойства у объекта или его свойства. +// В отличие от метода см. НетСвойства, не сбрасывает позиционирование проверки. // // Параметры: // ИмяСвойства - Строка - Наименование свойства объекта. -// Возможно обращение к вложенным свойствам через точку +// Возможно обращение к вложенным свойствам через точку // ОписаниеПроверки - Строка - Описание конкретной проверки // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект) +// .НеИмеетСвойства("НеСуществующееСвойство", "Проверка, что у объекта нет указанного свойства") +// ; Функция НеИмеетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеИмеетСвойство, ИмяСвойства, ОписаниеПроверки); @@ -487,30 +625,44 @@ // Проверяет значение (или его свойство), оно должно входить в указанный список. // // Параметры: -// Значения - Массив из Произвольный - Значения для проверки -// - СписокЗначений из Произвольный - Значения для проверки -// ОписаниеПроверки - Строка - Описание конкретной проверки +// Значения - Массив из Произвольный - Значение для проверки. +// - СписокЗначений из Произвольный - Значения для проверки. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания -Функция ВСписке(Значения, ОписаниеПроверки = Неопределено) Экспорт +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ОжидаемыйСтатус = Новый Массив; +// ОжидаемыйСтатус.Добавить("Активный"); +// ОжидаемыйСтатус.Добавить("Неактивный"); +// +// ЮТест.ОжидаетЧто(ДокументОбъект.Статус) +// .ВСписке(ОжидаемыйСтатус), "Статус должен быть в списке") +// ; +Функция ВСписке(Знач Значения, Знач ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().ВСписке, Значения, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции -// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. +// Проверяет вхождение установленного значения (или его свойства) в заданный интервал. // -// Проверяемое значение может находится на границе интервала. +// Проверяемое значение может находиться на границе интервала. // // Параметры: -// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения -// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения -// ОписаниеПроверки - Строка - Описание конкретной проверки +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения. +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Сумма) +// .МеждуВключаяГраницы(100, 200, "Сумма должна быть в интервале от 100 до 200") +// ; Функция МеждуВключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатМежду(ЮТПредикаты.Выражения().МеждуВключаяГраницы, НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки); @@ -518,17 +670,22 @@ КонецФункции -// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. +// Проверяет вхождение установленного значения (или его свойства) в заданный интервал. // -// Проверяемое значение не может находится на границе интервала. +// Проверяемое значение не может находиться на границе интервала. // // Параметры: -// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения -// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения -// ОписаниеПроверки - Строка - Описание конкретной проверки +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения. +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Цена) +// .МеждуИсключаяГраницы(50, 100, "Цена должна быть в интервале от 50 до 100, не включая границы") +// ; Функция МеждуИсключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатМежду(ЮТПредикаты.Выражения().МеждуИсключаяГраницы, НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки); @@ -536,17 +693,22 @@ КонецФункции -// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. +// Проверяет вхождение установленного значения (или его свойства) в заданный интервал. // -// Проверяемое значение может находится на начальной границе интервала. +// Проверяемое значение может находиться на начальной границе интервала. // // Параметры: -// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения -// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения -// ОписаниеПроверки - Строка - Описание конкретной проверки +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения. +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Количество) +// .МеждуВключаяНачалоГраницы(10, 50, "Количество должно быть в интервале от 10 до 50, включая начальную границу") +// ; Функция МеждуВключаяНачалоГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатМежду(ЮТПредикаты.Выражения().МеждуВключаяНачалоГраницы, НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки); @@ -554,17 +716,22 @@ КонецФункции -// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. +// Проверяет вхождение установленного значения (или его свойства) в заданный интервал. // -// Проверяемое значение может находится на конечной границе интервала. +// Проверяемое значение может находиться на конечной границе интервала. // // Параметры: -// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения -// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения -// ОписаниеПроверки - Строка - Описание конкретной проверки +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения. +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Размер) +// .МеждуВключаяОкончаниеГраницы(20, 100, "Размер должен быть в интервале от 20 до 100, включая конечную границу") +// ; Функция МеждуВключаяОкончаниеГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт ПроверитьПредикатМежду(ЮТПредикаты.Выражения().МеждуВключаяОкончаниеГраницы, НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки); @@ -577,11 +744,16 @@ // Проверяет наличие свойств и их значения у проверяемого объекта (или его свойства). // // Параметры: -// ОжидаемоеЗначение - Структура - Проверяемый объект должен иметь свойства указанные в параметре -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Структура - Проверяемый объект должен иметь свойства, указанные в параметре. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект) +// .ИмеетСвойстваРавные(Новая Структура("Сумма, Статус", 100, "Активный"), "Объект должен иметь заданные свойства с указанными значениями") +// ; Функция ИмеетСвойстваРавные(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -593,14 +765,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на равенство `Истина)`. +// Проверяет установленное значение (или его свойство) на равенство `Истина`. // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Проведен) +// .ЭтоИстина("Документ должен быть проведен") +// ; Функция ЭтоИстина(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -610,14 +787,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство)на НЕ равенство `Истина`. +// Проверяет установленное значение (или его свойство) на НЕ равенство `Истина`. // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Проведен) +// .ЭтоНеИстина("Документ должен быть не проведен") +// ; Функция ЭтоНеИстина(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -627,14 +809,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на равенство `Ложь`. +// Проверяет установленное значение (или его свойство) на равенство `Ложь`. // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Проведен) +// .ЭтоЛожь("Документ должен быть не проведен") +// ; Функция ЭтоЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -644,14 +831,19 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на НЕ равенство `Ложь`. +// Проверяет установленное значение (или его свойство) на НЕ равенство `Ложь`. // При сравнении также проверяется совпадение типов проверяемого и ожидаемого значения. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Проверка) +// .ЭтоНеЛожь("Проверка не должна быть ложной") +// ; Функция ЭтоНеЛожь(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -661,13 +853,18 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на "существование", т.е. отличие от `Null` и `Неопределено`. +// Проверяет установленное значение (или его свойство) на "существование", т.е. отличие от `Null` и `Неопределено`. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Выборка.Поле) +// .Существует("Значение поле должно быть указано") +// ; Функция Существует(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -677,13 +874,18 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на "не существование", т.е. оно равно `Null` или `Неопределено`. +// Проверяет установленное значение (или его свойство) на "не существование", т.е. оно равно `Null` или `Неопределено`. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Выборка.Поле) +// .НеСуществует("Значение поля не должно быть указанно") +// ; Функция НеСуществует(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -693,13 +895,18 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) не равенство `Неопределено`. +// Проверяет установленное значение (или его свойство) на неравенство `Неопределено`. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(СправочникОбъект.Поле) +// .ЭтоНеопределено("Поле должно быть неопределено") +// ; Функция ЭтоНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -709,13 +916,18 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на не равенство `Неопределено`. +// Проверяет установленное значение (или его свойство) на не равенство `Неопределено`. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение.Поле) +// .ЭтоНеНеопределено("Поле не должно быть неопределено") +// ; Функция ЭтоНеНеопределено(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -725,13 +937,18 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на равенство `Null`. +// Проверяет установленное значение (или его свойство) на равенство `Null`. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Поле) +// .ЭтоNull("Поле должно быть равно Null") +// ; Функция ЭтоNull(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -741,13 +958,18 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на не равенство `Null`. +// Проверяет установленное значение (или его свойство) на не равенство `Null`. // // Параметры: -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(ДокументОбъект.Поле) +// .ЭтоНеNull("Поле не должно быть равно Null") +// ; Функция ЭтоНеNull(Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -757,7 +979,7 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции. +// Проверяет установленное значение (или его свойство) на длину или размер коллекции. // // Проверка поддерживается для следующих типов проверяемого значения: // - Строка @@ -768,14 +990,28 @@ // - ФиксированныйМассив // - ФиксированнаяСтруктура // - ФиксированноеСоответствие -// - ТаблицаЗначения +// - ТаблицаЗначений // // Параметры: -// ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) имеет указанную длину или размер -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Число - Ожидается, что значение (или его свойство) имеет указанную длину или размер. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// СтрокаДляПроверки = "Hello"; +// ЮТест.ОжидаетЧто(СтрокаДляПроверки) +// .ИмеетДлину(5, "Проверка на длину строки равную 5") +// ; +// МассивДляПроверки = Новый Массив(3); +// ЮТест.ОжидаетЧто(МассивДляПроверки) +// .ИмеетДлину(3, "Проверка на длину массива равную 3") +// ; +// СтруктураДляПроверки = Новый Структура("Поле1, Поле2", 10, 20); +// ЮТест.ОжидаетЧто(СтруктураДляПроверки) +// .ИмеетДлину(2, "Проверка на количество полей структуры равное 2") +// ; Функция ИмеетДлину(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -791,7 +1027,7 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции. +// Проверяет установленное значение (или его свойство) на длину или размер коллекции и определяет, больше ли эта длина или размер указанного значения. // // Проверка поддерживается для следующих типов проверяемого значения: // - Строка @@ -802,14 +1038,32 @@ // - ФиксированныйМассив // - ФиксированнаяСтруктура // - ФиксированноеСоответствие -// - ТаблицаЗначения +// - ТаблицаЗначений // // Параметры: -// ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) имеет указанную длину или размер -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Число - Ожидается, что значение (или его свойство) имеет длину или размер, превышающий это значение. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// СтрокаДляПроверки = "Hello, World!"; +// ЮТест.ОжидаетЧто(СтрокаДляПроверки) +// .ИмеетДлинуБольше(5, "Проверка, что длина строки больше 5") +// ; +// МассивДляПроверки = Новый Массив(4); +// ЮТест.ОжидаетЧто(МассивДляПроверки) +// .ИмеетДлинуБольше(3, "Проверка, что длина массива больше 3") +// ; +// СоответствиеДляПроверки = Новый Соответствие; +// СоответствиеДляПроверки.Вставить("Ключ1", 1); +// СоответствиеДляПроверки.Вставить("Ключ2", 2); +// ЮТест.ОжидаетЧто(СоответствиеДляПроверки) +// .ИмеетДлинуБольше(1, "Проверка, что количество элементов соответствия больше 1") +// ; +Функция ИмеетДлинуБольше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт + Функция ИмеетДлинуБольше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -825,7 +1079,7 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции. +// Проверяет установленное значение (или его свойство) на длину или размер коллекции и определяет, меньше ли эта длина или размер указанного значения. // // Проверка поддерживается для следующих типов проверяемого значения: // - Строка @@ -836,14 +1090,32 @@ // - ФиксированныйМассив // - ФиксированнаяСтруктура // - ФиксированноеСоответствие -// - ТаблицаЗначения +// - ТаблицаЗначений // // Параметры: -// ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) имеет указанную длину или размер -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Число - Ожидается, что значение (или его свойство) имеет длину или размер, меньшее это значение. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// СтрокаДляПроверки = "Hello"; +// ЮТест.ОжидаетЧто(СтрокаДляПроверки) +// .ИмеетДлинуМеньше(10, "Проверка, что длина строки меньше 10") +// ; +// +// МассивДляПроверки = Новый Массив(2); +// МассивДляПроверки.Добавить(1); +// МассивДляПроверки.Добавить(2); +// ЮТест.ОжидаетЧто(МассивДляПроверки) +// .ИмеетДлинуМеньше(3, "Проверка, что длина массива меньше 3") +// ; +// +// СтруктураДляПроверки = Новый Структура("Поле1", 10); +// ЮТест.ОжидаетЧто(СтруктураДляПроверки) +// .ИмеетДлинуМеньше(2, "Проверка, что количество полей структуры меньше 2") +// ; Функция ИмеетДлинуМеньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -859,7 +1131,7 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство) на длину или размер коллекции, которые не должны совпадать с указанным значением. +// Проверяет установленное значение (или его свойство) на длину или размер коллекции, которые не должны совпадать с указанным значением. // // Проверка поддерживается для следующих типов проверяемого значения: // - Строка @@ -873,11 +1145,27 @@ // - ТаблицаЗначения // // Параметры: -// ОжидаемоеЗначение - Число - Ожидается, что значение Контекста (или его свойство) не имеет указанную дину или размер -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ОжидаемоеЗначение - Число - Ожидается, что значение (или его свойство) не имеет указанную длину или размер. +// ОписаниеПроверки - Строка - Описание конкретной проверки, позволяющее более точно понять, что именно проверяется. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// СтрокаДляПроверки = "Hello"; +// ЮТест.ОжидаетЧто(СтрокаДляПроверки) +// .НеИмеетДлину(15, "Проверка, что длина строки не равна 15") +// ; +// +// МассивДляПроверки = Новый Массив(3); +// ЮТест.ОжидаетЧто(МассивДляПроверки) +// .НеИмеетДлину(4, "Проверка, что длина массива не равна 4") +// ; +// +// СтруктураДляПроверки = Новый Структура("Поле1, Поле2", 10, 20); +// ЮТест.ОжидаетЧто(СтруктураДляПроверки) +// .НеИмеетДлину(12, "Проверка, что количество полей структуры не равно 12") +// ; Функция НеИмеетДлину(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -895,16 +1183,22 @@ #Область ПроверкаМетодов -// Вызывает метод (см. Метод) объекта контекста и проверяет, выбрасывает ли он исключение. -// Проверяет, что метод упадет по исключению, а текст исключения содержит(включает) указанный. +// Вызывает метод (см. Метод) объекта и проверяет, выбрасывает ли он исключение. +// Проверяет, что метод вызывает исключение, а текст исключения содержит (включает) указанный текст. // // Параметры: -// ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке будет содержать(включать) данный текст -// ОписаниеПроверки - Строка - Описание конкретной проверки -// ВТранзакции - Булево - Вызов метода выполняется в транзакции +// ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке будет содержать (включать) данный текст. +// ОписаниеПроверки - Строка - Описание конкретной проверки. +// ВТранзакции - Булево - Указывает, что вызов метода выполняется в транзакции. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Объект) +// .Метод("Записать") +// .ВыбрасываетИсключение("Ошибка: Недостаточно прав") +// ; Функция ВыбрасываетИсключение(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено, ВТранзакции = Ложь) Экспорт Контекст = Контекст(); @@ -933,18 +1227,24 @@ КонецФункции -// Вызывает метод (см. Метод) объекта контекста и проверяет, выбрасывает ли он исключение. -// Проверяет, что метод не упадет по исключению -// или упадет по исключению текст, которого не содержит указанный. +// Вызывает метод (см. Метод) объекта и проверяет, выбрасывает ли он исключение. +// Проверяет, что метод не вызывает исключение, +// или что при его вызове выбрасывается исключение, текст которого не содержит указанный текст. // // Параметры: -// ОжидаемоеЗначение - Строка - Ожидается, что метод выбросит исключение, текст которого НЕ будет содержать (включать) данный текст -// - Неопределено - Ожидается, что метод отработает без выбора исключения -// ОписаниеПроверки - Строка - Описание конкретной проверки -// ВТранзакции - Булево - Вызов метода выполняется в транзакции +// ОжидаемоеЗначение - Строка - Ожидается, что метод выбросит исключение, текст которого НЕ будет содержать (включать) данный текст. +// - Неопределено - Ожидается, что метод отработает без выброса исключения. +// ОписаниеПроверки - Строка - Описание конкретной проверки. +// ВТранзакции - Булево - Указывает, что вызов метода выполняется в транзакции. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Объект) +// .Метод("Записать") +// .НеВыбрасываетИсключение("Ошибка: Недостаточно прав") +// ; Функция НеВыбрасываетИсключение(Знач ОжидаемоеЗначение = Неопределено, Знач ОписаниеПроверки = Неопределено, ВТранзакции = Ложь) Экспорт Контекст = Контекст(); @@ -972,15 +1272,19 @@ КонецФункции -// Проверяет, что установленное значение Контекста (или его свойство) имеет указанный экспортный метод. -// +// Проверяет, что установленное значение (или его свойство) имеет указанный экспортный метод. // // Параметры: -// ИмяМетода - Строка - Имя метода, наличие которого нужно проверить -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ИмяМетода - Строка - Имя метода, наличие которого нужно проверить. +// ОписаниеПроверки - Строка - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .ИмеетМетод("Метод1", "Проверка наличия экспортного метода Метод1") +// ; Функция ИмеетМетод(ИмяМетода, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -998,16 +1302,22 @@ КонецФункции #КонецОбласти -// Проверяет установленное значение Контекста (или его свойство), ожидается что оно начинается на указанное значение. + +// Проверяет, что установленное значение (или его свойство) начинается на указанное значение. // // При этом проверяемое значение должно быть строкой. // // Параметры: -// СтрокаПоиска - Строка - Строка поиска -// ОписаниеПроверки - Строка - Описание конкретной проверки +// СтрокаПоиска - Строка - Ожидается, что значение начинается с этой строки поиска. +// ОписаниеПроверки - Строка - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .НачинаетсяС("Привет", "Проверка, что значение начинается с 'Привет'") +// ; Функция НачинаетсяС(СтрокаПоиска, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -1028,16 +1338,21 @@ КонецФункции -// Проверяет установленное значение Контекста (или его свойство), ожидается что оно заканчивается на указанное значение. +// Проверяет, что установленное значение (или его свойство) заканчивается на указанное значение. // // При этом проверяемое значение должно быть строкой. // // Параметры: -// СтрокаПоиска - Строка - Строка поиска -// ОписаниеПроверки - Строка - Описание конкретной проверки +// СтрокаПоиска - Строка - Ожидается, что значение заканчивается на этой строке поиска. +// ОписаниеПроверки - Строка - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .ЗаканчиваетсяНа("мир", "Проверка, что значение заканчивается на 'мир'") +// ; Функция ЗаканчиваетсяНа(СтрокаПоиска, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -1058,14 +1373,19 @@ КонецФункции -// Проверяет каждый элемент установленного значения (или его свойства), все элементы должны иметь указанное свойство. +// Проверяет каждый элемент установленного значения (или его свойства); все элементы должны иметь указанное свойство. // // Параметры: -// ИмяСвойства - Строка -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ИмяСвойства - Строка - Имя свойства, наличие которого нужно проверить у каждого элемента. +// ОписаниеПроверки - Строка - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Коллекция) +// .КаждыйЭлементСодержитСвойство("Свойство1", "Проверка наличия свойства 'Свойство1' у каждого элемента") +// ; Функция КаждыйЭлементСодержитСвойство(ИмяСвойства, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -1086,16 +1406,21 @@ КонецФункции -// Проверяет каждый элемент установленного значения (или его свойства), +// Проверяет каждый элемент установленного значения (или его свойства); // все элементы должны иметь указанное свойство, которое равно ожидаемому значению. // // Параметры: -// ИмяСвойства - Строка -// ОжидаемоеЗначение - Произвольный - Ожидаемое значение свойства -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ИмяСвойства - Строка - Имя свойства, наличие которого нужно проверить у каждого элемента. +// ОжидаемоеЗначение - Произвольный - Ожидаемое значение свойства для проверки. +// ОписаниеПроверки - Строка - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Движения) +// .КаждыйЭлементСодержитСвойствоСоЗначением("ВидДвижения", Приход, "Проверка, что свойство 'ВидДвижения' равно Приход у каждого элемента") +// ; Функция КаждыйЭлементСодержитСвойствоСоЗначением(ИмяСвойства, ОжидаемоеЗначение, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -1125,14 +1450,20 @@ КонецФункции -// Проверяет элементы установленного значения (или его свойства), хотя бы один из них должен иметь указанное свойство. +// Проверяет элементы установленного значения (или его свойства); +// хотя бы один из них должен иметь указанное свойство. // // Параметры: -// ИмяСвойства - Строка -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ИмяСвойства - Строка - Имя свойства, наличие которого нужно проверить у элементов. +// ОписаниеПроверки - Строка - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Значение) +// .ЛюбойЭлементСодержитСвойство("Свойство1", "Проверка, что хотя бы один элемент содержит свойство 'Свойство1'") +// ; Функция ЛюбойЭлементСодержитСвойство(ИмяСвойства, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -1159,16 +1490,21 @@ КонецФункции -// Проверяет элементы установленного значения (или его свойства), +// Проверяет элементы установленного значения (или его свойства); // хотя бы один из них должен иметь указанное свойство, которое равно ожидаемому значению. // // Параметры: -// ИмяСвойства - Строка -// ОжидаемоеЗначение - Произвольный - Ожидаемое значение свойства -// ОписаниеПроверки - Строка - Описание конкретной проверки +// ИмяСвойства - Строка - Имя свойства, наличие которого нужно проверить у элементов. +// ОжидаемоеЗначение - Произвольный - Ожидаемое значение свойства для проверки. +// ОписаниеПроверки - Строка - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// ЮТест.ОжидаетЧто(Движения) +// .ЛюбойЭлементСодержитСвойствоСоЗначением("Номенклатура", Товар, "Проверка, что есть строка с нужным товаром") +// ; Функция ЛюбойЭлементСодержитСвойствоСоЗначением(ИмяСвойства, ОжидаемоеЗначение, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -1209,16 +1545,25 @@ КонецФункции // Проверяет установленное значение (или его свойства) на соответствие утверждениям предиката. -// см. ЮТест.Предикат +// См. ЮТест.Предикат. // // Параметры: -// Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить -// - см. ЮТФабрика.ВыражениеПредиката -// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат -// ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки +// Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить. +// - См. ЮТФабрика.ВыражениеПредиката. +// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат. +// ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// Предикат = ЮТест.Предикат(). +// Реквизит("Номенклатура").Равно(Номенклатура) +// .Получить(); +// +// ЮТест.ОжидаетЧто(СтрокаТаблицы) +// .СоответствуетПредикату(Предикат, "Проверка на соответствие утверждениям предиката") +// ; Функция СоответствуетПредикату(Предикат, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -1237,18 +1582,27 @@ КонецФункции -// Проверяет каждый элемент установленного значения (или его свойства), +// Проверяет каждый элемент установленного значения (или его свойства); // все элементы должны соответствовать утверждениям предиката. -// см. ЮТест.Предикат +// См. ЮТест.Предикат. // // Параметры: -// Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить -// - см. ЮТФабрика.ВыражениеПредиката -// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат -// ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки +// Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить. +// - См. ЮТФабрика.ВыражениеПредиката. +// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат. +// ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// Предикат = ЮТест.Предикат(). +// Реквизит("Номенклатура").Равно(Номенклатура) +// .Получить(); +// +// ЮТест.ОжидаетЧто(Значение) +// .КаждыйЭлементСоответствуетПредикату(Предикат, "Проверка, что все элементы соответствуют утверждениям предиката") +// ; Функция КаждыйЭлементСоответствуетПредикату(Предикат, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -1270,18 +1624,27 @@ КонецФункции -// Проверяет элементы установленного значения (или его свойства), +// Проверяет элементы установленного значения (или его свойства); // хотя бы один из них должен соответствовать утверждениям предиката. -// см. ЮТест.Предикат +// См. ЮТест.Предикат. // // Параметры: -// Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить -// - см. ЮТФабрика.ВыражениеПредиката -// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат -// ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки +// Предикат - Массив из см. ЮТФабрика.ВыражениеПредиката - Набор утверждений, см. ЮТПредикаты.Получить. +// - См. ЮТФабрика.ВыражениеПредиката. +// - ОбщийМодуль - Модуль настройки предикатов, см. ЮТест.Предикат. +// ОписаниеПроверки - Строка, Неопределено - Описание конкретной проверки. // // Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания +// ЮТУтверждения - Этот модуль для продолжения формирования утверждений. +// +// Пример: +// Предикат = ЮТест.Предикат(). +// Реквизит("Номенклатура").Равно(Номенклатура) +// .Получить(); +// +// ЮТест.ОжидаетЧто(Значение) +// .ЛюбойЭлементСоответствуетПредикату(Предикат, "Проверка, что хотя бы один элемент соответствует утверждениям предиката") +// ; Функция ЛюбойЭлементСоответствуетПредикату(Предикат, ОписаниеПроверки = Неопределено) Экспорт Контекст = Контекст(); @@ -1316,7 +1679,11 @@ #Область СлужебныйПрограммныйИнтерфейс // Сбросить контекст. -// Используется для принудительного сброса контекста утверждения +// Используется для принудительного сброса контекста утверждения. +// Это позволяет очистить состояние текущих проверок и начать новую серию утверждений. +// +// Примечание: После вызова этой процедуры все предыдущие утверждения будут сброшены, +// и новые проверки можно будет выполнять с чистого листа. Процедура СброситьКонтекст() Экспорт ЮТКонтекстСлужебный.УстановитьКонтекстУтверждений(Неопределено); From 7401e054dc7fdf450fada9932d9c5e5cea523a49 Mon Sep 17 00:00:00 2001 From: Ilya Kochetkov Date: Wed, 30 Oct 2024 19:36:31 +0300 Subject: [PATCH 25/56] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D1=81=D0=BB=D0=B8=D1=8F=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?:=20=D0=B4=D1=83=D0=B1=D0=BB=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=8A=D1=8F=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=98=D0=BC=D0=B5=D0=B5=D1=82=D0=94=D0=BB?= =?UTF-8?q?=D0=B8=D0=BD=D1=83=D0=91=D0=BE=D0=BB=D1=8C=D1=88=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 -- 1 file changed, 2 deletions(-) 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 a5667fe96..3adaad046 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" @@ -1064,8 +1064,6 @@ // ; Функция ИмеетДлинуБольше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт -Функция ИмеетДлинуБольше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - Контекст = Контекст(); УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); ПроверитьТипЗначения(Контекст, ОжидаемоеЗначение, "Число"); From 1189797b050610cf73b97e8e9625f60d7be28dff Mon Sep 17 00:00:00 2001 From: Koryakin Aleksey Date: Wed, 6 Nov 2024 23:56:45 +0300 Subject: [PATCH 26/56] =?UTF-8?q?=D0=A8=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=20?= =?UTF-8?q?=D0=B7=D0=B0=D1=8F=D0=B2=D0=BA=D0=B8=20=D0=BD=D0=B0=20=D0=B8?= =?UTF-8?q?=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/doc-feature.yaml | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/doc-feature.yaml diff --git a/.github/ISSUE_TEMPLATE/doc-feature.yaml b/.github/ISSUE_TEMPLATE/doc-feature.yaml new file mode 100644 index 000000000..a1221aa9d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/doc-feature.yaml @@ -0,0 +1,36 @@ +name: '📖 Документация' +description: 'Предложения по доработке документации' +title: '[Doc]: ' +labels: ['documentation'] +body: + - type: textarea + id: description + attributes: + label: '📖 Описание предложения' + description: 'Общее описание необходимых доработок по документации' + validations: + required: true + + - type: input + id: page + attributes: + label: Страница/раздел + description: Ссылка на страницу или наименование раздела + + - type: textarea + id: problems + attributes: + label: 'Неучтенные кейсы документации' + description: | + * Нераскрытые в документации вопросы (можно ссылками на обсуждение). + * Примеры неправильного использования + * Прочие, желательно реальные, примеры проблем связанных с документацией + + - type: textarea + id: tasks + attributes: + label: Перечень необходимых доработок + value: | + - [ ] Описать то-то + - [ ] Исправить опечатку там то + - [ ] Дополнить примерами такой то раздел From e64c7e9c1c820f4c704893d1d1e96bdac4fc78bc Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sat, 16 Nov 2024 02:01:51 +0300 Subject: [PATCH 27/56] =?UTF-8?q?feat:=20=D1=81=D0=BA=D0=BE=D1=80=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=B0?= =?UTF-8?q?=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=D1=85=20=D1=81=D1=81=D1=8B=D0=BB=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 86 +++++++++++++++++++ .../Module.bsl" | 64 -------------- .../Module.bsl" | 26 ++++++ .../Module.bsl" | 42 +++++---- .../Module.bsl" | 21 ++++- 5 files changed, 159 insertions(+), 80 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index ee40d7cbd..30964eca5 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -18,6 +18,8 @@ #Область СлужебныйПрограммныйИнтерфейс +#Область РаботаСРаширениями + // МодулиРасширений // Выполняет чтение метаданных общих модулей, которые предположительно могут являться тестами // @@ -44,6 +46,55 @@ КонецФункции +Функция РасширенияСеанса() Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Возврат РасширенияКонфигурации.Получить(, ИсточникРасширенийКонфигурации.СеансАктивные); + +КонецФункции + +Функция СсылочныеТипыРасширений() Экспорт + + МассивТипов = Новый Массив; + + СсылочныеКоллекции = СсылочныеКоллекции(); + СобственныйОбъект = Метаданные.СвойстваОбъектов.ПринадлежностьОбъекта.Собственный; + + Для Каждого Расширение Из РасширенияСеанса() Цикл + + Если НЕ Расширение.ИзменяетСтруктуруДанных() Тогда + Продолжить; + КонецЕсли; + + УстановитьБезопасныйРежим(Истина); + // Создание через тип не работает, ошибка - конструктор не найден + МетаданныеРасширения = Вычислить("Новый ОбъектМетаданныхКонфигурация(Расширение.ПолучитьДанные())"); + + Для Каждого ИмяКоллекции Из СсылочныеКоллекции Цикл + + Коллекция = МетаданныеРасширения[ИмяКоллекции]; + ИмяЭлемента = ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных()[ИмяКоллекции].Имя; + + Для Каждого ОбъектМетаданных Из Коллекция Цикл + + Если ОбъектМетаданных.ПринадлежностьОбъекта = СобственныйОбъект Тогда + МассивТипов.Добавить(СтрШаблон("%1Ссылка.%2", ИмяЭлемента, ОбъектМетаданных.Имя)); + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + КонецЦикла; + + ОписаниеТипов = Новый ОписаниеТипов(МассивТипов); + Возврат ОписаниеТипов.Типы(); + +КонецФункции + +#КонецОбласти + Функция ИменаМодулейДвижка() Экспорт УстановитьПривилегированныйРежим(Истина); @@ -258,6 +309,28 @@ КонецФункции +Функция ОписаниеТиповЛюбаяСсылкаПоМетаданным() Экспорт + + МассивТипов = Новый Массив; + + СсылочныеКоллекции = СсылочныеКоллекции(); + + Для Каждого ИмяКоллекции Из СсылочныеКоллекции Цикл + + Коллекция = Метаданные[ИмяКоллекции]; + ИмяЭлемента = ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных()[ИмяКоллекции].Имя; + + Для Каждого ОбъектМетаданных Из Коллекция Цикл + + МассивТипов.Добавить(СтрШаблон("%1Ссылка.%2", ИмяЭлемента, ОбъектМетаданных.Имя)); + + КонецЦикла; + + КонецЦикла; + + Возврат Новый ОписаниеТипов(СтрСоединить(МассивТипов, ",")); + +КонецФункции #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -422,4 +495,17 @@ КонецПроцедуры +Функция СсылочныеКоллекции() + + Возврат ЮТКоллекции.ЗначениеВМассиве("Справочники", + "Документы", + "БизнесПроцессы", + "Задачи", + "ПланыСчетов", + "ПланыОбмена", + "ПланыВидовХарактеристик", + "ПланыВидовРасчета"); + +КонецФункции + #КонецОбласти 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\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\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 b687f5627..bff8c884b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\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" @@ -24,68 +24,4 @@ КонецФункции -Функция СсылочныеТипыДобавляемыеРасширениями() Экспорт - - СсылочныеТипы = Новый Массив; - ТипыОбъектовМетаданныхСсылочногоТипа = ТипыОбъектовМетаданныхСсылочногоТипа(); - - УстановитьПривилегированныйРежим(Истина); - РасширенияСеанса = РасширенияКонфигурации.Получить(, ИсточникРасширенийКонфигурации.СеансАктивные); - - Для Каждого Расширение Из РасширенияСеанса Цикл - - Если НЕ Расширение.ИзменяетСтруктуруДанных() Тогда - Продолжить; - КонецЕсли; - - ОМДРасширения = Новый ОбъектМетаданныхКонфигурация(Расширение.ПолучитьДанные()); - - Для Каждого ТипОМД Из ТипыОбъектовМетаданныхСсылочногоТипа Цикл - ДополнитьТипы(СсылочныеТипы, ТипОМД, ОМДРасширения); - КонецЦикла; - - КонецЦикла; - - Возврат СсылочныеТипы; - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура ДополнитьТипы(СсылочныеТипы, ТипОМД, ОМДРасширения) - - ПринадлежностьОбъекта = Метаданные.СвойстваОбъектов.ПринадлежностьОбъекта.Собственный; - - Для Каждого ОМД Из ОМДРасширения[ТипОМД] Цикл - - Если ОМД.ПринадлежностьОбъекта <> ПринадлежностьОбъекта Тогда - Продолжить; - КонецЕсли; - - ИмяПустойСсылкиТипа = ОМД.ПолноеИмя() + ".ПустаяСсылка"; - СсылкаДляОпределенияТипа = ПредопределенноеЗначение(ИмяПустойСсылкиТипа); - СсылочныеТипы.Добавить(ТипЗнч(СсылкаДляОпределенияТипа)); - - КонецЦикла; - -КонецПроцедуры - -Функция ТипыОбъектовМетаданныхСсылочногоТипа() - - ТипыОбъектовМетаданныхСсылочногоТипа = Новый Массив; - ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("Справочники"); - ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("Документы"); - ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("БизнесПроцессы"); - ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("Задачи"); - ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("ПланыСчетов"); - ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("ПланыОбмена"); - ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("ПланыВидовХарактеристик"); - ТипыОбъектовМетаданныхСсылочногоТипа.Добавить("ПланыВидовРасчета"); - - Возврат ТипыОбъектовМетаданныхСсылочногоТипа; - -КонецФункции - #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" index 00e31989c..72bb6a893 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" @@ -39,6 +39,32 @@ КонецФункции +// Проверяет версию платформы (без учета режима совместимости) +// +// Параметры: +// ВерсияДляПроверки - Строка - Версия, с которой необходимо сравнить версию платформы +// +// Возвращаемое значение: +// Булево - Версия платформы больше или равна указанной +Функция ВерсияПлатформыБольшеИлиРавна(ВерсияДляПроверки) Экспорт + + Возврат ЮТСтроки.СравнитьВерсии(ЮТСлужебныйПовторногоИспользования.ВерсияПлатформы(), ВерсияДляПроверки) >= 0; + +КонецФункции + +// Проверяет версию платформы (без учета режима совместимости) +// +// Параметры: +// ВерсияДляПроверки - Строка - Версия, с которой необходимо сравнить версию платформы +// +// Возвращаемое значение: +// Булево - Версия платформы меньше указанной +Функция ВерсияПлатформыМеньше(ВерсияДляПроверки) Экспорт + + Возврат ЮТСтроки.СравнитьВерсии(ЮТСлужебныйПовторногоИспользования.ВерсияПлатформы(), ВерсияДляПроверки) < 0; + +КонецФункции + // Используется английский встроенный язык разработки. // // Возвращаемое значение: 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 df0c7575e..c93c45a95 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" @@ -144,29 +144,28 @@ Если Кешировать Тогда Возврат ЮТСлужебныйПовторногоИспользования.ОписаниеТиповЛюбаяСсылка(); - Иначе + КонецЕсли; + #Если ВебКлиент Или ТонкийКлиент Тогда Параметры = Новый Массив(1); Параметры[0] = Ложь; Возврат ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТТипыДанныхСлужебный", "ОписаниеТиповЛюбаяСсылка", Параметры); #Иначе - ЧтениеXML = Новый ЧтениеXML; - ЧтениеXML.УстановитьСтроку( - " - | cc:AnyRef - |"); - ОписаниеТипаЛюбаяСсылка = СериализаторXDTO.ПрочитатьXML(ЧтениеXML); - - СсылочныеТипыРасширений = ЮТМетодыСлужебныйВызовСервера.СсылочныеТипыДобавляемыеРасширениями(); - Если СсылочныеТипыРасширений.Количество() <> 0 Тогда - ОписаниеТипаЛюбаяСсылка = Новый ОписаниеТипов(ОписаниеТипаЛюбаяСсылка, СсылочныеТипыРасширений); - КонецЕсли; - - Возврат ОписаниеТипаЛюбаяСсылка; -#КонецЕсли + Если ЮТОкружение.ВерсияПлатформыМеньше("8.3.11") Или ЮТОкружение.ВерсияПлатформыБольшеИлиРавна("8.3.20.1549") Тогда + // До 8.3.11 не было возможности добавлять свои ссылочные объекты + // С версии 8.3.20.1549 AnyRef включает в себя типы из расширений + Результат = AnyRef(); +// ИначеЕсли ЮТОкружение.ВерсияПлатформыБольшеИлиРавна("8.3.13") Тогда +// Этот вариант на два порядка медленнее, на конфигурации из проекта 4.485 сек против 0.040 сек (100 итераций, на одной схоже) +// Результат = Новый ОписаниеТипов(AnyRef(), ЮТМетаданныеСлужебныйВызовСервера.СсылочныеТипыРасширений()) + Иначе + Результат = ЮТМетаданныеСлужебныйВызовСервера.ОписаниеТиповЛюбаяСсылкаПоМетаданным(); КонецЕсли; + Возврат Результат; +#КонецЕсли + КонецФункции #Область СистемныеПеречисления @@ -296,4 +295,17 @@ КонецФункции +#Если НЕ ВебКлиент Тогда +Функция AnyRef() Экспорт + + ЧтениеXML = Новый ЧтениеXML; + ЧтениеXML.УстановитьСтроку( + " + | cc:AnyRef + |"); + Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML); + +КонецФункции +#КонецЕсли + #КонецОбласти 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 ec8e1358e..33cc714fa 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" @@ -59,10 +59,28 @@ .СПараметрами("ОбъектXDTO") .СПараметрами("ОбъектМетаданных") .ДобавитьТест("ОписаниеТиповЛюбаяСсылка") + .ДобавитьТест("ОписаниеТиповЛюбаяСсылкаПоМетаданным") + .ДобавитьТест("ОписаниеТиповЛюбаяСсылка_Плюс_ТипыРасширений") ; КонецПроцедуры +Процедура ОписаниеТиповЛюбаяСсылкаПоМетаданным() + + Для Инд = 1 По 1000 Цикл + ЮТМетаданныеСлужебныйВызовСервера.ОписаниеТиповЛюбаяСсылкаПоМетаданным(); + КонецЦикла; + +КонецПроцедуры + +Процедура ОписаниеТиповЛюбаяСсылка_Плюс_ТипыРасширений() + + Для Инд = 1 По 1000 Цикл + Результат = Новый ОписаниеТипов(ЮТТипыДанныхСлужебный.AnyRef(), ЮТМетаданныеСлужебныйВызовСервера.СсылочныеТипыРасширений()) + КонецЦикла; + +КонецПроцедуры + Процедура ЭтоСистемноеПеречисление(Тип, ОжидаемыйРезультат) Экспорт ЮТест.ОжидаетЧто(ЮТТипыДанныхСлужебный.ЭтоСистемноеПеречисление(Тип)) @@ -118,7 +136,8 @@ ЮТест.ОжидаетЧто(ЛюбаяСсылка) .ИмеетТип("ОписаниеТипов") - .Что(ЛюбаяСсылка.СодержитТип(Тип("СправочникСсылка.Банки"))); + .Что(ЛюбаяСсылка.СодержитТип(Тип("СправочникСсылка.Банки")), "Содержит тип из конфигурации") + .Что(ЛюбаяСсылка.СодержитТип(Тип("СправочникСсылка.Расш1_Справочник")), "Содержит тип из расширения"); КонецПроцедуры From 91f0718fcfeef7e44cddbae9d83e3d3becc40296 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sat, 16 Nov 2024 02:27:54 +0300 Subject: [PATCH 28/56] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) 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 33cc714fa..1ebc5fb21 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" @@ -59,28 +59,10 @@ .СПараметрами("ОбъектXDTO") .СПараметрами("ОбъектМетаданных") .ДобавитьТест("ОписаниеТиповЛюбаяСсылка") - .ДобавитьТест("ОписаниеТиповЛюбаяСсылкаПоМетаданным") - .ДобавитьТест("ОписаниеТиповЛюбаяСсылка_Плюс_ТипыРасширений") ; КонецПроцедуры -Процедура ОписаниеТиповЛюбаяСсылкаПоМетаданным() - - Для Инд = 1 По 1000 Цикл - ЮТМетаданныеСлужебныйВызовСервера.ОписаниеТиповЛюбаяСсылкаПоМетаданным(); - КонецЦикла; - -КонецПроцедуры - -Процедура ОписаниеТиповЛюбаяСсылка_Плюс_ТипыРасширений() - - Для Инд = 1 По 1000 Цикл - Результат = Новый ОписаниеТипов(ЮТТипыДанныхСлужебный.AnyRef(), ЮТМетаданныеСлужебныйВызовСервера.СсылочныеТипыРасширений()) - КонецЦикла; - -КонецПроцедуры - Процедура ЭтоСистемноеПеречисление(Тип, ОжидаемыйРезультат) Экспорт ЮТест.ОжидаетЧто(ЮТТипыДанныхСлужебный.ЭтоСистемноеПеречисление(Тип)) @@ -137,7 +119,7 @@ ЮТест.ОжидаетЧто(ЛюбаяСсылка) .ИмеетТип("ОписаниеТипов") .Что(ЛюбаяСсылка.СодержитТип(Тип("СправочникСсылка.Банки")), "Содержит тип из конфигурации") - .Что(ЛюбаяСсылка.СодержитТип(Тип("СправочникСсылка.Расш1_Справочник")), "Содержит тип из расширения"); + ; КонецПроцедуры From ffe6422c35d715e5fded76e6a1cc12760cae0f49 Mon Sep 17 00:00:00 2001 From: Alexandr Yang Date: Fri, 22 Nov 2024 15:38:34 +0500 Subject: [PATCH 29/56] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=B2=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../ObjectModule.bsl" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" index 5b2889407..6250aa5ad 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" @@ -264,7 +264,7 @@ // Создает и проводит новый документ. Возвращает объект или или ссылку на него. // -// Важно, после создания данные не очищаются, поэтому многократный вызов метода создать множество объектов. +// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов. // Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор. // // Параметры: diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" index 2697a6693..998e4be93 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" @@ -250,7 +250,7 @@ // Создает и проводит новый документ. Возвращает объект или или ссылку на него. // -// Важно, после создания данные не очищаются, поэтому многократный вызов метода создать множество объектов. +// Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов. // Если вы хотите создать полностью новый объект, необходимо по-новой инициировать конструктор. // // Параметры: From d70b8be1d757cf524e84daaf131b9dc641f3c21d Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sat, 23 Nov 2024 02:02:53 +0300 Subject: [PATCH 30/56] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D1=84=D0=BE=D1=80=D0=BC=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D0=B0=20=D0=B4=D0=BB=D1=8F=20allure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 275c6de8e..801bf4c1c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -87,7 +87,7 @@ Описание = НовыйОписаниеТеста(); Описание.fullName = ПолноеИмяМетода + ПредставлениеРежима; - Описание.name = РезультатТеста.Метод + ПредставлениеРежима; + Описание.name = РезультатТеста.Имя; Описание.status = СтатусОтчета(РезультатТеста.Статус, Статусы); Описание.testCaseId = ЮТОбщийСлужебный.ХешMD5(ПолныйИдентификаторТеста); Описание.start = ЮниксВремя(РезультатТеста.ДатаСтарта); 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\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\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 c8506c9f3..645d78b92 100644 --- "a/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" +++ "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" @@ -24,6 +24,7 @@ .ДобавитьТест("ПараметрыГенерацииОтчета") .ДобавитьТест("ЗаписатьОтчет") .ДобавитьТест("ОписаниеТеста") + .ДобавитьТест("ОписаниеТеста_Представление") .ДобавитьТест("ОписаниеТеста_Теги") ; @@ -80,6 +81,22 @@ КонецПроцедуры +Процедура ОписаниеТеста_Представление() Экспорт + + Модуль = ТестовыеДанные.ОписаниеТестовогоМодуля(); + Набор = ТестовыеДанные.ОписаниеТестовогоНабора(Модуль); + Тест = ТестовыеДанные.ОписаниеТеста(Модуль, Набор); + Тест.Имя = "Нужное представление"; + + ОписаниеТеста = ЮТОтчетAllureСлужебный.ОписаниеТеста(Тест, Набор, Модуль); + ЮТест.ОжидаетЧто(ОписаниеТеста) + .ИмеетТип("Структура") + .Свойство("name").Равно(Тест.Имя) + .Заполнено() + ; + +КонецПроцедуры + Процедура ОписаниеТеста_Теги() Экспорт Модуль = ТестовыеДанные.ОписаниеТестовогоМодуля(); From c56f4f53e4bfc542ae5cfd60509782f27b7d0cc5 Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Mon, 25 Nov 2024 01:09:02 +0300 Subject: [PATCH 31/56] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=BA=D0=B0=20=D1=82?= =?UTF-8?q?=D0=B8=D0=BF=D0=B0=20=D0=A1=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=D0=A1=D0=B5=D1=80=D0=B2=D0=B8=D1=81=D0=B0=D0=98?= =?UTF-8?q?=D0=BD=D1=82=D0=B5=D0=B3=D1=80=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/features/mocking/mocking.md | 35 +++ .../Module.bsl" | 10 + .../src/Configuration/Configuration.mdo | 1 + .../ObjectModule.bsl" | 259 ++++++++++++++++++ ...1\200\320\260\321\206\320\270\320\270.mdo" | 13 + ...0\262\320\260\320\275\320\270\320\265.mdo" | 1 + ...0\270\321\207\320\275\321\213\320\271.mdo" | 1 + .../Module.bsl" | 93 +++++++ ...1\200\320\260\321\206\320\270\320\270.mdo" | 9 + tests/src/Configuration/Configuration.mdo | 1 + 10 files changed, 423 insertions(+) create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" create mode 100644 "exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" create mode 100644 "tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" diff --git a/documentation/docs/features/mocking/mocking.md b/documentation/docs/features/mocking/mocking.md index d240474ee..ada1e0899 100644 --- a/documentation/docs/features/mocking/mocking.md +++ b/documentation/docs/features/mocking/mocking.md @@ -147,6 +147,41 @@ sequenceDiagram * `ЮТест.Данные().ADORecordSet` - принимает информацию о колонках * `Добавить()` - добавляет новую строку значений +### `СообщениеСервисаИнтеграции` + +При тестировании интеграций с помощью 1С:Шина есть потребность тестировать сбор/разбор сообщений сервисов интеграции. + +У `СообщениеСервисаИнтеграции` отсутствует конструктор, поэтому был добавлен [`ЮТест.Данные().СообщениеСервисаИнтеграции`](/api/ЮТТестовыеДанные#IntegrationServiceMessage) реализующий интерфейс `СообщениеСервисаИнтеграции` + +Возможности: + +* Реализует методы `СообщениеСервисаИнтеграции` + * Свойства + * `ДатаОтправки` \ `SendDate` + * `ДатаУстаревания` \ `ExpirationDate` + * `Идентификатор` \ `ID` + * `ИдентификаторСообщенияЗапроса` \ `CorrelationId` + * `КодОтправителя` \ `SenderCode` + * `КодПолучателя` \ `RecipientCode` + * `Параметры` \ `Parameters` + * `РазмерТела` \ `BodySize` + * Методы + * `ПолучитьТелоКакПоток()` \ `GetBodyAsStream()` +* Имеет методы настройки, реализованные в виде [текучих выражений](/docs/getting-started/fluent-api.md) + * Установка тела + * `УстановитьТелоКакДвоичныеДанные()` + * `УстановитьТелоКакСтроку()` + * `УстановитьТелоКакСтрокуJSON()` + * Методы установки свойств + * `ДобавитьПараметр()` + * `ДатаОтправки()` + * `ДатаУстаревания()` + * `Идентификатор()` + * `ИдентификаторСообщенияЗапроса()` + * `КодОтправителя()` + * `КодПолучателя()` + * `РазмерТела()` + ### Создание своих моков При возникновении подобных ситуаций, когда для тестов вам нужны объекты с какой-то логикой/методами, по аналогии с примерами выше вы без проблем сможете создать нужные вам моки. 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 791dca4d2..dc3af5871 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" @@ -1095,6 +1095,16 @@ КонецФункции +#Если Сервер Тогда +// Возвращает мок для `СообщениеСервисаИнтеграции`. +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция СообщениеСервисаИнтеграции() Экспорт + Возврат Обработки.ЮТСообщениеСервисаИнтеграции.Создать(); +КонецФункции +#КонецЕсли + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 19d40b65d..edd30c12d 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -162,5 +162,6 @@ DataProcessor.ЮТКонструкторДвижений DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных + DataProcessor.ЮТСообщениеСервисаИнтеграции DataProcessor.ЮТЮнитТесты diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" new file mode 100644 index 000000000..d3a3e1721 --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" @@ -0,0 +1,259 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2023 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 object-module-export-variable +Перем ДатаОтправки Экспорт; +//@skip-check object-module-export-variable +Перем ДатаУстаревания Экспорт; +//@skip-check object-module-export-variable +Перем Идентификатор Экспорт; +//@skip-check object-module-export-variable +Перем ИдентификаторСообщенияЗапроса Экспорт; +//@skip-check object-module-export-variable +Перем КодОтправителя Экспорт; +//@skip-check object-module-export-variable +Перем КодПолучателя Экспорт; +//@skip-check object-module-export-variable +Перем Параметры Экспорт; +//@skip-check object-module-export-variable +Перем РазмерТела Экспорт; + +Перем Тело; + +#КонецОбласти + +#Область ПрограммныйИнтерфейс + +// Возвращает тело как поток. +// +// Возвращаемое значение: +// Поток - Тело +Функция ПолучитьТелоКакПоток() Экспорт + + Возврат ПолучитьТелоКакДвоичныеДанные().ОткрытьПотокДляЧтения(); + +КонецФункции + +// Устанавливает тело как двоичные данные. +// При получении тела в другом формате происходит конвертация +// +// Параметры: +// Данные - ДвоичныеДанные +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция УстановитьТелоКакДвоичныеДанные(Данные) Экспорт + + Тело = Данные; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает тело как строку. +// При получении тела в другом формате происходит конвертация +// +// Параметры: +// Строка - Строка +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция УстановитьТелоКакСтроку(Строка) Экспорт + + Тело = Строка; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает тело как строку JSON. +// Сериализует переданный объект в строку JSON и сохраняет в тело +// При получении тела в другом формате происходит конвертация +// +// Параметры: +// Данные - Произвольный +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция УстановитьТелоКакСтрокуJSON(Данные) Экспорт + + ЗаписьJSON = Новый ЗаписьJSON(); + ЗаписьJSON.УстановитьСтроку(); + ЗаписатьJSON(ЗаписьJSON, Данные); + + Тело = ЗаписьJSON.Закрыть(); + + Возврат ЭтотОбъект; + +КонецФункции + +// Добавляет параметр. +// +// Параметры: +// ИмяПараметра - Строка +// Значение - Строка +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция ДобавитьПараметр(ИмяПараметра, Значение) Экспорт + + Параметры.Вставить(ИмяПараметра, Значение); + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает дату отправки. +// +// Параметры: +// Значение - Дата +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция ДатаОтправки(Значение) Экспорт + + ДатаОтправки = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает дату устаревания. +// +// Параметры: +// Значение - Дата +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция ДатаУстаревания(Значение) Экспорт + + ДатаУстаревания = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает идентификатор сообщения. +// +// Параметры: +// Значение - УникальныйИдентификатор +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция Идентификатор(Значение) Экспорт + + Идентификатор = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает идентификатор сообщения запроса. +// +// Параметры: +// Значение - УникальныйИдентификатор +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция ИдентификаторСообщенияЗапроса(Значение) Экспорт + + ИдентификаторСообщенияЗапроса = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает код отправителя. +// +// Параметры: +// Значение - Строка +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция КодОтправителя(Значение) Экспорт + + КодОтправителя = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает код получателя. +// +// Параметры: +// Значение - Строка +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция КодПолучателя(Значение) Экспорт + + КодПолучателя = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +// Устанавливает размер тела +// +// Параметры: +// Значение - Число +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТСообщениеСервисаИнтеграции - Мок +Функция РазмерТела(Значение) Экспорт + + РазмерТела = Значение; + Возврат ЭтотОбъект; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьТелоКакДвоичныеДанные() + + ТипТела = ТипЗнч(Тело); + + Если Тело = Неопределено Тогда + Возврат ПолучитьДвоичныеДанныеИзBase64Строки(""); + ИначеЕсли ТипТела = Тип("ДвоичныеДанные") Тогда + Возврат Тело; + ИначеЕсли ТипТела = Тип("Строка") Тогда + Возврат ПолучитьДвоичныеДанныеИзСтроки(Тело); + КонецЕсли; + +КонецФункции + +Процедура Инициализировать() + + ДатаОтправки = Дата(1, 1, 1); + ДатаУстаревания = Дата(1, 1, 1); + Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); + ИдентификаторСообщенияЗапроса = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); + КодОтправителя = ""; + КодПолучателя = ""; + РазмерТела = 0; + Параметры = Новый Соответствие(); + +КонецПроцедуры + +#КонецОбласти + +#Область Инициализация + +Инициализировать(); + +#КонецОбласти + +#КонецЕсли diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" new file mode 100644 index 000000000..d096b885d --- /dev/null +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" @@ -0,0 +1,13 @@ + + + + + + + ЮТСообщениеСервисаИнтеграции + + ru + Мок для СообщениеCервисаBнтеграции + + true + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" index e65bdd9ec..46fe81219 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" @@ -18,5 +18,6 @@ DataProcessor.ЮТHTTPServiceRequest DataProcessor.ЮТHTTPСервисЗапрос DataProcessor.ЮТRecordSet + DataProcessor.ЮТСообщениеСервисаИнтеграции Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" index 766d0179e..459583da0 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" @@ -51,4 +51,5 @@ DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных DataProcessor.ЮТЮнитТесты + DataProcessor.ЮТСообщениеСервисаИнтеграции diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" new file mode 100644 index 000000000..5db2f3851 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" @@ -0,0 +1,93 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты.Тег("Мокирование") + .ДобавитьТест("Конструктор") + .ДобавитьТест("УстановитьТело") + ; + +КонецПроцедуры + +Процедура Конструктор() Экспорт + + Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000001"); + ИдентификаторСообщенияСообщениеа = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000002"); + + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() + .ДобавитьПараметр("Параметр", "Параметр") + .ДатаОтправки(Дата(1, 1, 1)) + .ДатаУстаревания(Дата(2, 1, 1)) + .Идентификатор(Идентификатор) + .ИдентификаторСообщенияСообщениеа(ИдентификаторСообщенияСообщениеа) + .КодОтправителя("Sender") + .КодПолучателя("Recipient") + .РазмерТела(123); + + ЮТест.ОжидаетЧто(Сообщение) + .Свойство("Параметры.Параметр").Равно("Параметр") + .Свойство("ДатаОтправки").Равно(Дата(1, 1, 1)) + .Свойство("ДатаУстаревания").Равно(Дата(2, 1, 1)) + .Свойство("Идентификатор").Равно(Идентификатор) + .Свойство("ИдентификаторСообщенияСообщениеа").Равно(ИдентификаторСообщенияСообщениеа) + .Свойство("КодОтправителя").Равно("Sender") + .Свойство("КодПолучателя").Равно("Recipient") + .Свойство("РазмерТела").Равно(123); + +КонецПроцедуры + +Процедура УстановитьТело() Экспорт + + Описание = "Тело не установлено"; + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции(); + ЮТест.ОжидаетЧто(Сообщение, Описание) + .Метод("ПолучитьТелоКакПоток").НеВыбрасываетИсключение(); + ПотокПоТелу = Сообщение.ПолучитьТелоКакПоток(); + ЮТест.ОжидаетЧто(ПотокПоТелу, Описание + ". Проверка типа").ИмеетТип("Поток"); + Текст = Новый ЧтениеТекста(ПотокПоТелу, КодировкаТекста.UTF8); + ЮТест.ОжидаетЧто(Текст.ПрочитатьСтроку(), Описание + ". Проверка пустого").ЭтоНеопределено(); + + Описание = "Тело установлено из двоичных данных"; + Тело = "Тело"; + ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(Тело); + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() + .УстановитьТелоКакДвоичныеДанные(ДвоичныеДанные); + Текст = Новый ЧтениеТекста(Сообщение.ПолучитьТелоКакПоток(), КодировкаТекста.UTF8); + ЮТест.ОжидаетЧто(Текст.ПрочитатьСтроку(), Описание) + .Равно(Тело); + + Описание = "Тело установлено из строки"; + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() + .УстановитьТелоКакСтроку(Тело); + Текст = Новый ЧтениеТекста(Сообщение.ПолучитьТелоКакПоток(), КодировкаТекста.UTF8); + ЮТест.ОжидаетЧто(Текст.ПрочитатьСтроку(), Описание) + .Равно(Тело); + + Описание = "Тело установлено из JSON"; + Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() + .УстановитьТелоКакСтрокуJSON(Новый Массив()); + Текст = Новый ЧтениеТекста(Сообщение.ПолучитьТелоКакПоток(), КодировкаТекста.UTF8); + ЮТест.ОжидаетЧто(Текст.ПрочитатьСтроку(), Описание) + .Равно("[]"); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" new file mode 100644 index 000000000..6a653e34c --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.mdo" @@ -0,0 +1,9 @@ + + + Обр_ЮТСообщениеСервисаИнтеграции + + ru + Обр СообщениеСервисаИнтеграции + + true + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index f11d32b7a..47aae0ebf 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -32,6 +32,7 @@ CommonModule.Обр_ЮТRecordSet_МО CommonModule.Обр_ЮТКонструкторДвижений_МО CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО + CommonModule.Обр_ЮТСообщениеСервисаИнтеграции CommonModule.ОМ_ДТОткрытиеФормСлужебныйВызовСервера CommonModule.ОМ_Мокито CommonModule.ОМ_МокитоОбучение From 4f1250e0a35d39c6251bf31ae7ad645ec371afed Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Mon, 25 Nov 2024 01:30:54 +0300 Subject: [PATCH 32/56] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" index 5db2f3851..4367dff49 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Module.bsl" @@ -30,14 +30,14 @@ Процедура Конструктор() Экспорт Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000001"); - ИдентификаторСообщенияСообщениеа = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000002"); + ИдентификаторСообщенияЗапроса = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000002"); Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции() .ДобавитьПараметр("Параметр", "Параметр") .ДатаОтправки(Дата(1, 1, 1)) .ДатаУстаревания(Дата(2, 1, 1)) .Идентификатор(Идентификатор) - .ИдентификаторСообщенияСообщениеа(ИдентификаторСообщенияСообщениеа) + .ИдентификаторСообщенияЗапроса(ИдентификаторСообщенияЗапроса) .КодОтправителя("Sender") .КодПолучателя("Recipient") .РазмерТела(123); @@ -47,7 +47,7 @@ .Свойство("ДатаОтправки").Равно(Дата(1, 1, 1)) .Свойство("ДатаУстаревания").Равно(Дата(2, 1, 1)) .Свойство("Идентификатор").Равно(Идентификатор) - .Свойство("ИдентификаторСообщенияСообщениеа").Равно(ИдентификаторСообщенияСообщениеа) + .Свойство("ИдентификаторСообщенияЗапроса").Равно(ИдентификаторСообщенияЗапроса) .Свойство("КодОтправителя").Равно("Sender") .Свойство("КодПолучателя").Равно("Recipient") .Свойство("РазмерТела").Равно(123); From d54f0d9bfb1b6d7c3bcea3c0c71319874a049023 Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Mon, 25 Nov 2024 23:38:59 +0300 Subject: [PATCH 33/56] =?UTF-8?q?+=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 23e2d5463..992c0f920 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -90,7 +90,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(37); + .ИмеетДлину(38); КонецПроцедуры From fb270365df63c605b8f25aa0702ed1a55650986a Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Tue, 26 Nov 2024 00:04:06 +0300 Subject: [PATCH 34/56] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ObjectModule.bsl" | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" index d3a3e1721..a6b71daf5 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\265\320\241\320\265\321\200\320\262\320\270\321\201\320\260\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/ObjectModule.bsl" @@ -20,6 +20,7 @@ #Область ОписаниеПеременных +// BSLLS:ExportVariables-off //@skip-check object-module-export-variable Перем ДатаОтправки Экспорт; //@skip-check object-module-export-variable @@ -36,8 +37,9 @@ Перем Параметры Экспорт; //@skip-check object-module-export-variable Перем РазмерТела Экспорт; +// BSLLS:ExportVariables-on -Перем Тело; +Перем Тело; // переменная для хранения тела в рамках существования объекта #КонецОбласти @@ -231,6 +233,8 @@ Возврат Тело; ИначеЕсли ТипТела = Тип("Строка") Тогда Возврат ПолучитьДвоичныеДанныеИзСтроки(Тело); + Иначе + ВызватьИсключение СтрШаблон("Установленный тип тела %1 не поддерживается.", ТипТела); КонецЕсли; КонецФункции From 47e92ed3523d529223932d94cd2b091f99a38836 Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Tue, 26 Nov 2024 00:48:30 +0300 Subject: [PATCH 35/56] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BB?= =?UTF-8?q?=D0=B8=D1=88=D0=BD=D0=B5=D0=B5=20=D0=B8=D0=B7=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/features/mocking/mocking.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/documentation/docs/features/mocking/mocking.md b/documentation/docs/features/mocking/mocking.md index ada1e0899..bd9545eaa 100644 --- a/documentation/docs/features/mocking/mocking.md +++ b/documentation/docs/features/mocking/mocking.md @@ -157,16 +157,16 @@ sequenceDiagram * Реализует методы `СообщениеСервисаИнтеграции` * Свойства - * `ДатаОтправки` \ `SendDate` - * `ДатаУстаревания` \ `ExpirationDate` - * `Идентификатор` \ `ID` - * `ИдентификаторСообщенияЗапроса` \ `CorrelationId` - * `КодОтправителя` \ `SenderCode` - * `КодПолучателя` \ `RecipientCode` - * `Параметры` \ `Parameters` - * `РазмерТела` \ `BodySize` + * `ДатаОтправки` + * `ДатаУстаревания` + * `Идентификатор` + * `ИдентификаторСообщенияЗапроса` + * `КодОтправителя` + * `КодПолучателя` + * `Параметры` + * `РазмерТела` * Методы - * `ПолучитьТелоКакПоток()` \ `GetBodyAsStream()` + * `ПолучитьТелоКакПоток()` * Имеет методы настройки, реализованные в виде [текучих выражений](/docs/getting-started/fluent-api.md) * Установка тела * `УстановитьТелоКакДвоичныеДанные()` From b84cd6af5819dc036499d612c01017e4eaa42589 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 26 Nov 2024 03:38:28 +0300 Subject: [PATCH 36/56] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B0=D1=87=D0=B0=D0=BB=D0=B0=20=D0=B2=20allure=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D1=87=D1=82?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 11 ++++++++++- .../Module.bsl" | 6 +++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 57d07ab9d..123430dc0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -396,9 +396,13 @@ КонецЕсли; ИсполняемыйТест = ЮТФабрикаСлужебный.НовоеОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль); + Если Тест.Свойство("Ошибки") И Тест.Ошибки.Количество() > 0 Тогда ИсполняемыйТест.Ошибки = ЮТКоллекции.СкопироватьМассив(Тест.Ошибки); + ИсполняемыйТест.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах(); + ИсполняемыйТест.Длительность = 0; КонецЕсли; + ИсполняемыйНабор.Тесты.Добавить(ИсполняемыйТест); КонецЦикла; @@ -420,28 +424,33 @@ КонецФункции Процедура ОбработатьОшибкиЧтенияНабора(Набор, Модуль) + ТестыНабора = ЮТКоллекции.ЗначениеСтруктуры(Набор, "Тесты", Новый Массив()); Ошибки = ЮТКоллекции.ЗначениеСтруктуры(Набор, "Ошибки", Новый Массив()); Если Ошибки.Количество() > 0 Тогда Для Каждого Ошибка Из Ошибки Цикл + Если Ошибка.ТипОшибки = ЮТФабрикаСлужебный.ТипыОшибок().ЧтенияТестов Тогда Тест = ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка); ТестыНабора.Добавить(Тест); - Прервать; КонецЕсли; + КонецЦикла; КонецЕсли; + КонецПроцедуры Функция ОписаниеТестаСОшибкойЧтения(Модуль, Ошибка) + Контексты = ЮТФабрикаСлужебный.КонтекстыМодуля(Модуль.Метаданные); Тест = ЮТФабрикаСлужебный.ОписаниеТеста("ИсполняемыеСценарии", "ИсполняемыеСценарии", Контексты); Тест.Вставить("Ошибки", Новый Массив); Тест.Ошибки.Добавить(ЮТКоллекции.СкопироватьСтруктуру(Ошибка)); Возврат Тест; + КонецФункции Процедура ПоказатьОтчет(РезультатыТестирования, Параметры) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 801bf4c1c..c8a946d33 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -268,7 +268,11 @@ Функция ЮниксВремя(ДатаВМиллисекундах) - Возврат ДатаВМиллисекундах - 62135596800000; + Если ДатаВМиллисекундах <> 0 Тогда + Возврат ДатаВМиллисекундах - 62135596800000; + Иначе + Возврат 0; + КонецЕсли; КонецФункции From 1a2ad2af8c1c34278c01071dff2f8c3d3ca90a53 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 27 Nov 2024 02:02:32 +0300 Subject: [PATCH 37/56] =?UTF-8?q?fix:=20#436=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=D0=9F=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=BE?= =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D0=BC?= =?UTF-8?q?=D1=8B=D0=B5=D0=97=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20=D0=BA=D0=B0=D0=B6=D0=B4=D1=8B?= =?UTF-8?q?=D0=BC=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 1 + 1 file changed, 1 insertion(+) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\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" index c56fa2019..38af274fe 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\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" @@ -146,6 +146,7 @@ Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции) + ОбновитьПовторноИспользуемыеЗначения(); ЮТКонтекстИсполненияСлужебныйКлиентСервер.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест); #Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции(); From 1c9c487eec9734ec634647417acdd77030cfa57a Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 2 Dec 2024 22:24:09 +0300 Subject: [PATCH 38/56] =?UTF-8?q?feat:=20=D0=BD=D0=B0=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B9=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=B4=D1=81=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" | 6 ++++++ ...265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" | 1 + 2 files changed, 7 insertions(+) diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" index 8bd8c0c51..52afa2a56 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" @@ -31,6 +31,7 @@ CommonModule.ЮТМетаданныеСлужебныйПовтИсп CommonModule.ЮТМетоды CommonModule.ЮТМетодыСлужебный + CommonModule.ЮТМетодыСлужебныйВызовСервера CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщий CommonModule.ЮТОбщийСлужебный @@ -50,18 +51,23 @@ CommonModule.ЮТСлужебныйПовторногоИспользования CommonModule.ЮТСобытияСлужебный CommonModule.ЮТСообщенияСлужебный + CommonModule.ЮТСравнениеСлужебныйСервер CommonModule.ЮТСтроки CommonModule.ЮТТипыДанныхСлужебный CommonModule.ЮТФабрика CommonModule.ЮТФабрикаСлужебный CommonModule.ЮТФайлы CommonPicture.ЮТЗапустить + CommonPicture.ЮТИмпорт + CommonPicture.ЮТНастройки CommonPicture.ЮТНеизвестный CommonPicture.ЮТОшибка CommonPicture.ЮТПерезапуститьУпавшие CommonPicture.ЮТПодсистема CommonPicture.ЮТПропущен + CommonPicture.ЮТРедактировать CommonPicture.ЮТСравнить + CommonPicture.ЮТСтруктура CommonPicture.ЮТУпал CommonPicture.ЮТУспешно CommonPicture.ЮТЭлементыТестов diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" index 798f93f73..5d5b93f16 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" @@ -19,6 +19,7 @@ CommonModule.ЮТТестовыеДанныеСлужебный CommonModule.ЮТТестовыеДанныеСлужебныйВызовСервера CommonModule.ЮТТестовыеДанныеСлужебныйСервер + DataProcessor.ЮТКонструкторДвижений DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных ЮТПодражатель From f65eb9207436ade89cb2d4106fcfd71e7efee2c7 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 3 Dec 2024 03:53:05 +0300 Subject: [PATCH 39/56] =?UTF-8?q?feat:=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=B4=D0=B5=D1=82=D0=B0=D0=BB=D0=B5=D0=B9=20=D1=81=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=82=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D1=86=20=D0=B8=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=87?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 22 +++- .../Module.bsl" | 3 + .../Module.bsl" | 8 +- .../Module.bsl" | 85 ++++++++++--- .../Module.bsl" | 74 ++++++++--- .../Module.bsl" | 4 +- .../Module.bsl" | 115 ++++++++++++++++++ ...0\265\321\200\320\262\320\265\321\200.mdo" | 6 + .../Module.bsl" | 31 +++-- tests/src/Configuration/Configuration.mdo | 1 + 10 files changed, 296 insertions(+), 53 deletions(-) create mode 100644 "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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" create mode 100644 "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\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\241\320\265\321\200\320\262\320\265\321\200.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 8248e8146..09d21fdae 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -463,7 +463,7 @@ #Область КонструкторыОписанийОшибки -Функция ДанныеОшибки(Ошибка, Знач Сообщение, ТипОшибки) +Функция ДеталиОшибки() #Если Сервер Тогда Детали = КонтекстДеталиОшибки(Истина); @@ -486,8 +486,19 @@ Если ЗначениеЗаполнено(Детали) Тогда ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаДеталиОшибки(), Неопределено); - Детали.Добавить(Сообщение); - Сообщение = СтрСоединить(Детали, Символы.ПС); + Возврат СтрСоединить(Детали, Символы.ПС); + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +Функция ДанныеОшибки(Ошибка, Знач Сообщение, ТипОшибки) + + ДеталиОшибки = ДеталиОшибки(); + + Если ДеталиОшибки <> Неопределено Тогда + Сообщение = ДеталиОшибки + Символы.ПС + Сообщение; КонецЕсли; ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиПропуска(ТипОшибки + ": " + Сообщение); @@ -508,6 +519,11 @@ Описание = ИзвлечьТекстОшибки(Ошибка, ПрефиксОшибкиУтверждений()); + ДеталиОшибки = ДеталиОшибки(); + Если ДеталиОшибки <> Неопределено Тогда + Описание = Описание + Символы.ПС + ДеталиОшибки; + КонецЕсли; + ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиСравнения(Описание); ДанныеОшибки.Стек = СтекОшибки(Ошибка); 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 1dd8ff6b1..b8bef53a0 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" @@ -95,14 +95,17 @@ // Возвращаемое значение: // Строка - Представление значения Функция ПредставлениеЗначения(Значение) Экспорт + ЗначениеСтрокой = Строка(Значение); ТипЗначения = ТипЗнч(Значение); + Если ПустаяСтрока(ЗначениеСтрокой) Тогда Тип = Строка(ТипЗначения); Возврат СтрШаблон("`<Пустое значение, Тип: %1>`", Тип); Иначе Возврат СтрШаблон("`%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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\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 eb730142b..68262a8a5 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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\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" @@ -18,15 +18,15 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция ТаблицыРавны(Знач Данные1, Знач Данные2) Экспорт +Функция ТабличныеДокументыРавны(Знач ПроверяемыйТабличныйДокумент, Знач ОжидаемыйТабличныйДокумент, Знач ПараметрыСравнения) Экспорт - Возврат ЮТСравнениеСлужебныйСервер.ТаблицыРавны(Данные1, Данные2); + Возврат ЮТСравнениеСлужебныйСервер.ТабличныеДокументыРавны(ПроверяемыйТабличныйДокумент, ОжидаемыйТабличныйДокумент, ПараметрыСравнения); КонецФункции -Функция ТабличныеДокументыРавны(Знач ТабличныйДокумент1, Знач ТабличныйДокумент2) Экспорт +Функция РазличияТабличныхДокументов(Знач ПроверяемыйТабличныйДокумент, Знач ОжидаемыйТабличныйДокумент, Знач ПараметрыСравнения) Экспорт - Возврат ЮТСравнениеСлужебныйСервер.ТабличныеДокументыРавны(ТабличныйДокумент1, ТабличныйДокумент2); + Возврат ЮТСравнениеСлужебныйСервер.РазличияТабличныхДокументов(ПроверяемыйТабличныйДокумент, ОжидаемыйТабличныйДокумент, ПараметрыСравнения); КонецФункции 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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/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 90329c5ad..a6b426544 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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/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" @@ -53,37 +53,34 @@ Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипЗначения) Тогда - Результат = СтруктурыРавны(Данные1, Данные2); + Результат = СтруктурыРавны(Данные1, Данные2, ПараметрыСравнения); ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения) Тогда - Результат = СоответствияРавны(Данные1, Данные2); + Результат = СоответствияРавны(Данные1, Данные2, ПараметрыСравнения); ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассив(ТипЗначения) Тогда - Результат = МассивыРавны(Данные1, Данные2); + Результат = МассивыРавны(Данные1, Данные2, ПараметрыСравнения); ИначеЕсли ТипЗначения = Тип("ТабличныйДокумент") Тогда -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда - Результат = ЮТСравнениеСлужебныйСервер.ТабличныеДокументыРавны(Данные1, Данные2); -#Иначе - Результат = ЮТСравнениеСлужебныйВызовСервера.ТабличныеДокументыРавны(Данные1, Данные2); -#КонецЕсли + Результат = ТабличныеДокументыРавны(Данные1, Данные2, ПараметрыСравнения); ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда // Возвращаем ложь, так как для этих типов должно сработать обычное равенство Результат = Ложь; + КонецЕсли; // BSLLS:IfElseIfEndsWithElse-off -#Если Сервер Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда Если ТипЗначения = Тип("ТаблицаЗначений") Тогда - Результат = ЮТСравнениеСлужебныйСервер.ТаблицыРавны(Данные1, Данные2); + Результат = ТаблицыРавны(Данные1, Данные2, ПараметрыСравнения); ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда - Результат = ЗначенияРавны(Данные1.Получить(), Данные2.Получить()); + Результат = ЗначенияРавны(Данные1.Получить(), Данные2.Получить(), ПараметрыСравнения); КонецЕсли; // BSLLS:IfElseIfEndsWithElse-off #КонецЕсли @@ -158,7 +155,7 @@ #Область Сравнения -Функция СтруктурыРавны(Данные1, Данные2) +Функция СтруктурыРавны(Данные1, Данные2, ПараметрыСравнения) Если Данные1.Количество() <> Данные2.Количество() Тогда Возврат Ложь; @@ -168,7 +165,7 @@ СтароеЗначение = Неопределено; Если НЕ Данные2.Свойство(КлючИЗначение.Ключ, СтароеЗначение) - ИЛИ НЕ ЗначенияРавны(КлючИЗначение.Значение, СтароеЗначение) Тогда + ИЛИ НЕ ЗначенияРавны(КлючИЗначение.Значение, СтароеЗначение, ПараметрыСравнения) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; @@ -177,7 +174,7 @@ КонецФункции -Функция СоответствияРавны(Данные1, Данные2) +Функция СоответствияРавны(Данные1, Данные2, ПараметрыСравнения) Если Данные1.Количество() <> Данные2.Количество() Тогда Возврат Ложь; @@ -189,7 +186,7 @@ КлючиНовогоСоответствия.Вставить(КлючИЗначение.Ключ, Истина); СтароеЗначение = Данные2.Получить(КлючИЗначение.Ключ); - Если НЕ ЗначенияРавны(КлючИЗначение.Значение, СтароеЗначение) Тогда + Если НЕ ЗначенияРавны(КлючИЗначение.Значение, СтароеЗначение, ПараметрыСравнения) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; @@ -204,14 +201,14 @@ КонецФункции -Функция МассивыРавны(Данные1, Данные2) +Функция МассивыРавны(Данные1, Данные2, ПараметрыСравнения) Если Данные1.Количество() <> Данные2.Количество() Тогда Возврат Ложь; КонецЕсли; Для Индекс = 0 По Данные1.ВГраница() Цикл - Если НЕ ЗначенияРавны(Данные1[Индекс], Данные2[Индекс]) Тогда + Если НЕ ЗначенияРавны(Данные1[Индекс], Данные2[Индекс], ПараметрыСравнения) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; @@ -612,7 +609,7 @@ ФактическаяДлина = ДлинаЗначения(ПроверяемоеЗначение); Если ФактическаяДлина = Неопределено Тогда - ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение)); + ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не может быть проверен на длинну значения", ТипЗнч(ПроверяемоеЗначение)); ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки); Возврат; КонецЕсли; @@ -632,7 +629,7 @@ Результат = НайтиЗначение(ПроверяемоеЗначение, ОжидаемоеЗначение); Если Результат = Неопределено Тогда - ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение)); + ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не может быть проверен на содержание ожидаемого значения", ТипЗнч(ПроверяемоеЗначение)); ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки); КонецЕсли; @@ -652,7 +649,7 @@ СоответствуетШаблону = СоответствуетШаблону(ПроверяемоеЗначение, ОжидаемоеЗначение); Если СоответствуетШаблону = Неопределено Тогда - ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение)); + ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не может быть проверен на соответствие шаблону", ТипЗнч(ПроверяемоеЗначение)); ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуКРезультатуПроверки(РезультатПроверки, ТекстОшибки, ПараметрыПроверки); КонецЕсли; @@ -720,4 +717,52 @@ #КонецОбласти +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда +Функция ТаблицыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения) + + Утверждение = ПараметрыСравнения = Неопределено ИЛИ НЕ ЮТКоллекции.ЗначениеСтруктуры(ПараметрыСравнения, "Утверждение", Ложь); + Если Утверждение Тогда + Возврат ЮТСравнениеСлужебныйСервер.ТаблицыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); + КонецЕсли; + + Различия = ЮТСравнениеСлужебныйСервер.РазличияТаблиц(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); + + ЗафиксироватьРазличия(Различия); + Возврат НЕ ЗначениеЗаполнено(Различия); + +КонецФункции +#КонецЕсли + +Функция ТабличныеДокументыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения) + + Утверждение = ПараметрыСравнения = Неопределено ИЛИ НЕ ЮТКоллекции.ЗначениеСтруктуры(ПараметрыСравнения, "Утверждение", Ложь); + + Если НЕ Утверждение Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда + Возврат ЮТСравнениеСлужебныйСервер.ТабличныеДокументыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); +#Иначе + //@skip-check bsl-legacy-check-expression-type + Возврат ЮТСравнениеСлужебныйВызовСервера.ТабличныеДокументыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); +#КонецЕсли + КонецЕсли; + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда + Различия = ЮТСравнениеСлужебныйСервер.РазличияТабличныхДокументов(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); +#Иначе + //@skip-check bsl-legacy-check-expression-type + Различия = ЮТСравнениеСлужебныйВызовСервера.РазличияТабличныхДокументов(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); +#КонецЕсли + + ЗафиксироватьРазличия(Различия); + Возврат НЕ ЗначениеЗаполнено(Различия); + +КонецФункции + +Процедура ЗафиксироватьРазличия(Различия) + + Для Каждого Различие Из Различия Цикл + ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(Различие); + КонецЦикла; + +КонецПроцедуры #КонецОбласти 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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 8f7ea391f..f00163026 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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -18,40 +18,82 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция ТаблицыРавны(Знач Данные1, Знач Данные2) Экспорт +Функция ТаблицыРавны(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения) Экспорт - Если Данные1.Количество() <> Данные2.Количество() Тогда - Возврат Ложь; + Различия = РазличияТаблиц(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); + Возврат НЕ ЗначениеЗаполнено(Различия); + +КонецФункции + +Функция РазличияТаблиц(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения) Экспорт + + Различия = Новый Массив; + + Если ПроверяемоеЗначение.Количество() = 0 И ОжидаемоеЗначение.Количество() = 0 Тогда + // Нечего сравнивать + Возврат Различия; + КонецЕсли; + + Если ПроверяемоеЗначение.Количество() <> ОжидаемоеЗначение.Количество() Тогда + Сообщение = СтрШаблон("Разное количество строк. Ожидали `%1`, а получили `%2`", + ОжидаемоеЗначение.Количество(), + ПроверяемоеЗначение.Количество()); + Различия.Добавить(Сообщение); + Возврат Различия; КонецЕсли; - Если Данные1.Колонки.Количество() <> Данные2.Колонки.Количество() Тогда - Возврат Ложь; + Если ПроверяемоеЗначение.Колонки.Количество() <> ОжидаемоеЗначение.Колонки.Количество() Тогда + Сообщение = СтрШаблон("Разное количество колонок. Ожидали `%1`, а получили `%2`", + ОжидаемоеЗначение.Колонки.Количество(), + ПроверяемоеЗначение.Колонки.Количество()); + Различия.Добавить(Сообщение); + Возврат Различия; КонецЕсли; - Для Каждого Колонка Из Данные1.Колонки Цикл - Если Данные2.Колонки.Найти(Колонка.Имя) = Неопределено Тогда - Возврат Ложь; + Для Каждого Колонка Из ОжидаемоеЗначение.Колонки Цикл + + Если ПроверяемоеЗначение.Колонки.Найти(Колонка.Имя) = Неопределено Тогда + Сообщение = СтрШаблон("Проверяемая таблица не содержит колонку '%1'",Колонка.Имя); + Различия.Добавить(Сообщение); + Продолжить; КонецЕсли; - Индекс = Данные1.Количество() - 1; + Индекс = ПроверяемоеЗначение.Количество() - 1; + Пока Индекс >= 0 Цикл - Если НЕ ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Данные1[Индекс][Колонка.Имя], Данные2[Индекс][Колонка.Имя]) Тогда - Возврат Ложь; + + Если НЕ ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(ПроверяемоеЗначение[Индекс][Колонка.Имя], ОжидаемоеЗначение[Индекс][Колонка.Имя], ПараметрыСравнения) Тогда + Сообщение = СтрШаблон("Строка № %1; колонка '%2'; ожидали %3, а получили %4", + Индекс + 1, + Колонка.Имя, + ЮТСообщенияСлужебный.ПредставлениеЗначения(ОжидаемоеЗначение[Индекс][Колонка.Имя]), + ЮТСообщенияСлужебный.ПредставлениеЗначения(ПроверяемоеЗначение[Индекс][Колонка.Имя])); + Различия.Добавить(Сообщение); КонецЕсли; + Индекс = Индекс - 1; + КонецЦикла; + КонецЦикла; - Возврат Истина; + Возврат Различия; КонецФункции -Функция ТабличныеДокументыРавны(Знач ТабличныйДокумент1, Знач ТабличныйДокумент2) Экспорт +Функция РазличияТабличныхДокументов(ПроверяемыйТабличныйДокумент, ОжидаемыйТабличныйДокумент, ПараметрыСравнения) Экспорт + + ПроверяемоеЗначение = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ПроверяемыйТабличныйДокумент); + ОжидаемоеЗначение = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ОжидаемыйТабличныйДокумент); - Данные1 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент1); - Данные2 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент2); + Возврат РазличияТаблиц(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); + +КонецФункции + +Функция ТабличныеДокументыРавны(ПроверяемыйТабличныйДокумент, ОжидаемыйТабличныйДокумент, ПараметрыСравнения) Экспорт - Возврат ТаблицыРавны(Данные1, Данные2); + Различия = РазличияТабличныхДокументов(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); + Возврат НЕ ЗначениеЗаполнено(Различия); КонецФункции 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 3adaad046..6b5ccc8f6 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" @@ -262,7 +262,7 @@ // ; Функция Равно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина); + ПараметрыСравнения = Новый Структура("ГлубокийАнализ, Утверждение", Истина, Истина); ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().Равно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения); Возврат ЮТУтверждения; @@ -2071,7 +2071,7 @@ КонецПопытки; Если ФактическаяДлина = Неопределено Тогда - ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", ТипЗнч(ПроверяемоеЗначение)); + ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не может быть проверен на длинну значения", ТипЗнч(ПроверяемоеЗначение)); ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); КонецЕсли; 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\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..1aab3ff8b --- /dev/null +++ "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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,115 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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`, а получили `1`") + ; + +КонецПроцедуры + +Процедура РазличияТаблиц_РазноеКоличествоСтрок() Экспорт + + ПроверяемоеЗначение = НоваяТаблица(1); + ОжидаемоеЗначение = НоваяТаблица(1); + + ПроверяемоеЗначение.Добавить(); + + Различия = ЮТСравнениеСлужебныйСервер.РазличияТаблиц(ПроверяемоеЗначение, ОжидаемоеЗначение, Неопределено); + + ЮТест.ОжидаетЧто(Различия, "Различия таблиц") + .ИмеетДлину(1) + .Содержит("Разное количество строк. Ожидали `0`, а получили `1`") + ; + +КонецПроцедуры + +Процедура РазличияТаблиц_РазныеКолонки() Экспорт + + ПроверяемоеЗначение = НоваяТаблица(1); + ОжидаемоеЗначение = НоваяТаблица(1); + ОжидаемоеЗначение.Колонки[0].Имя = "НенайденнаяКолонка"; + + ПроверяемоеЗначение.Добавить(); + ОжидаемоеЗначение.Добавить(); + + Различия = ЮТСравнениеСлужебныйСервер.РазличияТаблиц(ПроверяемоеЗначение, ОжидаемоеЗначение, Неопределено); + + ЮТест.ОжидаетЧто(Различия, "Различия таблиц") + .ИмеетДлину(1) + .Содержит("Проверяемая таблица не содержит колонку 'НенайденнаяКолонка'") + ; +КонецПроцедуры + +Процедура РазличияТаблиц_РазныеЗначения() Экспорт + + ПроверяемоеЗначение = НоваяТаблица(1); + ОжидаемоеЗначение = НоваяТаблица(1); + + ПроверяемоеЗначение.Добавить().Значение1 = 1; + ОжидаемоеЗначение.Добавить().Значение1 = "1"; + + Различия = ЮТСравнениеСлужебныйСервер.РазличияТаблиц(ПроверяемоеЗначение, ОжидаемоеЗначение, Неопределено); + + ЮТест.ОжидаетЧто(Различия, "Различия таблиц") + .ИмеетДлину(1) + .Содержит("Строка № 1; колонка 'Значение1'; ожидали `1`, а получили `1`") + ; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция НоваяТаблица(КоличествоКолонок = 1) + + Таблица = Новый ТаблицаЗначений(); + + Для Инд = 1 По КоличествоКолонок Цикл + Таблица.Колонки.Добавить("Значение" + Инд); + КонецЦикла; + + Возврат Таблица; + +КонецФункции + +#КонецОбласти 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\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\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\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\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\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..a37491576 --- /dev/null +++ "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\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\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,6 @@ + + + ОМ_ЮТСравнениеСлужебныйСервер + true + true + 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 4f0dd9baf..67e502a91 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" @@ -32,6 +32,8 @@ .ДобавитьТест("ЭтоЛожь") .ДобавитьТест("ЭтоНеЛожь") .ДобавитьТест("Равно") + .ДобавитьТест("Равно_ТекстОшибки") + .ДобавитьСерверныйТест("Равно_СравнениеСложныхОбъектов") .ДобавитьТест("НеРавно") .ДобавитьТест("Больше") .ДобавитьТест("БольшеИлиРавно") @@ -52,14 +54,15 @@ .ДобавитьТест("СодержитСтрокуПоШаблону") .ДобавитьТест("НеСодержитСтрокуПоШаблону") .ДобавитьТест("ИмеетДлину") + .ДобавитьТест("ИмеетДлину_ТекстОшибки") .ДобавитьТест("НеИмеетДлину") + .ДобавитьТест("НеИмеетДлину_ТекстОшибки") .ДобавитьТест("ВыбрасываетИсключение") .ДобавитьТест("НеВыбрасываетИсключение") .ДобавитьТест("УказаниеПараметровПоУмолчанию") .ДобавитьТест("ИмеетМетод") .ДобавитьСерверныйТест("ПроверкаМетодаВТранзакции").ВТранзакции(Ложь) .ДобавитьТест("ПроверкаМетодаВТранзакцииНаКлиенте", , , "КлиентУправляемоеПриложение").ВТранзакции(Ложь) - .ДобавитьСерверныйТест("СравнениеСложныхОбъектов") .ДобавитьТест("ФормированиеСообщения") .ДобавитьТест("НачинаетсяС") .ДобавитьТест("ЗаканчиваетсяНа") @@ -489,6 +492,10 @@ .Равно(Неопределено); // Негативные тесты +КонецПроцедуры + +Процедура Равно_ТекстОшибки() Экспорт + Попытка ЮТУтверждения.Что(1) .Равно("1"); @@ -1334,7 +1341,8 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", Тип("Неопределено"))); + ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Тип проверяемого значения `%1` не может быть проверен на содержание ожидаемого значения", + Тип("Неопределено"))); Попытка Ошибка = Неопределено; @@ -1426,7 +1434,8 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Тип проверяемого значения `%1` не обрабатывается утверждением", Тип("Неопределено"))); + ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Тип проверяемого значения `%1` не может быть проверен на содержание ожидаемого значения", + Тип("Неопределено"))); КонецПроцедуры @@ -1499,7 +1508,10 @@ ЮТУтверждения.Что(Список, "СписокЗначений") .ИмеетДлину(13); - // Негативные тесты +КонецПроцедуры + +Процедура ИмеетДлину_ТекстОшибки() Экспорт + Попытка Ошибка = Неопределено; ЮТУтверждения.Что("123") @@ -1528,7 +1540,7 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не обрабатывается утверждением", Тип("Дата"))); + ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не может быть проверен на длинну значения", Тип("Дата"))); Попытка Ошибка = Неопределено; @@ -1567,7 +1579,9 @@ ЮТУтверждения.Что(Список, "СписокЗначений") .НеИмеетДлину(3); - // Негативные тесты +КонецПроцедуры + +Процедура НеИмеетДлину_ТекстОшибки() Экспорт Попытка Ошибка = Неопределено; @@ -1597,7 +1611,7 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не обрабатывается утверждением", Тип("Дата"))); + ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не может быть проверен на длинну значения>", Тип("Дата"))); Попытка Ошибка = Неопределено; @@ -1825,7 +1839,7 @@ КонецПроцедуры -Процедура СравнениеСложныхОбъектов() Экспорт +Процедура Равно_СравнениеСложныхОбъектов() Экспорт Варианты = Новый Массив(); МассивЗначений = ЮТКоллекции.ЗначениеВМассиве(1, "2"); @@ -1843,6 +1857,7 @@ КонецЦикла; КонецПроцедуры + #КонецЕсли Процедура ПроверкаМетодаВТранзакцииНаКлиенте() Экспорт diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 47aae0ebf..701bf8a0c 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -57,6 +57,7 @@ CommonModule.ОМ_ЮТПредикатыСлужебныйКлиентСервер CommonModule.ОМ_ЮТРегистрацияОшибок CommonModule.ОМ_ЮТСравнениеСлужебныйКлиентСервер + CommonModule.ОМ_ЮТСравнениеСлужебныйСервер CommonModule.ОМ_ЮТСтроки CommonModule.ОМ_ЮТТестовыеДанные CommonModule.ОМ_ЮТТестовыеДанныеСлужебный From 2ff943c8c8e5aad2a7824117b074abd553a5fde3 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 3 Dec 2024 22:01:58 +0300 Subject: [PATCH 40/56] =?UTF-8?q?fis:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 4 ++-- .../Module.bsl" | 2 +- .../Module.bsl" | 9 ++++++--- .../Module.bsl" | 2 +- .../Module.bsl" | 4 ++-- .../Module.bsl" | 2 +- 6 files changed, 13 insertions(+), 10 deletions(-) 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\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\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 93d3c7f7a..591f022d1 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\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\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" @@ -283,7 +283,7 @@ КонецЕсли; Если Выражение = ВыраженияПредикатов.Равно Тогда - Если ЭтоСтрокаНеограниченнойДлинны(ТипРеквизита) Тогда + Если ЭтоСтрокаНеограниченнойДлины(ТипРеквизита) Тогда Шаблон = СтрШаблон("ВЫРАЗИТЬ(%%1 КАК Строка(%1)) = &%%2", XMLСтрока(СтрДлина(ВыражениеПредиката.Значение) + 1)); Иначе Шаблон = "%1 = &%2"; @@ -362,7 +362,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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/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 a6b426544..9d1d770d3 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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/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" @@ -609,7 +609,7 @@ ФактическаяДлина = ДлинаЗначения(ПроверяемоеЗначение); Если ФактическаяДлина = Неопределено Тогда - ТекстОшибки = СтрШаблон("тип проверяемого значения `%1` не может быть проверен на длинну значения", ТипЗнч(ПроверяемоеЗначение)); + ТекстОшибки = СтрШаблон("тип проверяемого значения `%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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index f00163026..402d0f8aa 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\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\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\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -53,7 +53,7 @@ Для Каждого Колонка Из ОжидаемоеЗначение.Колонки Цикл Если ПроверяемоеЗначение.Колонки.Найти(Колонка.Имя) = Неопределено Тогда - Сообщение = СтрШаблон("Проверяемая таблица не содержит колонку '%1'",Колонка.Имя); + Сообщение = СтрШаблон("Проверяемая таблица не содержит колонку '%1'", Колонка.Имя); Различия.Добавить(Сообщение); Продолжить; КонецЕсли; @@ -62,7 +62,10 @@ Пока Индекс >= 0 Цикл - Если НЕ ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(ПроверяемоеЗначение[Индекс][Колонка.Имя], ОжидаемоеЗначение[Индекс][Колонка.Имя], ПараметрыСравнения) Тогда + ЗначенияРавны = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(ПроверяемоеЗначение[Индекс][Колонка.Имя], + ОжидаемоеЗначение[Индекс][Колонка.Имя], + ПараметрыСравнения); + Если НЕ ЗначенияРавны Тогда Сообщение = СтрШаблон("Строка № %1; колонка '%2'; ожидали %3, а получили %4", Индекс + 1, Колонка.Имя, @@ -92,7 +95,7 @@ Функция ТабличныеДокументыРавны(ПроверяемыйТабличныйДокумент, ОжидаемыйТабличныйДокумент, ПараметрыСравнения) Экспорт - Различия = РазличияТабличныхДокументов(ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыСравнения); + Различия = РазличияТабличныхДокументов(ПроверяемыйТабличныйДокумент, ОжидаемыйТабличныйДокумент, ПараметрыСравнения); Возврат НЕ ЗначениеЗаполнено(Различия); КонецФункции 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 6b5ccc8f6..323f8e916 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" @@ -2071,7 +2071,7 @@ КонецПопытки; Если ФактическаяДлина = Неопределено Тогда - ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не может быть проверен на длинну значения", ТипЗнч(ПроверяемоеЗначение)); + ТекстОшибки = СтрШаблон("Тип проверяемого значения `%1` не может быть проверен на длину значения", ТипЗнч(ПроверяемоеЗначение)); ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); КонецЕсли; 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 67e502a91..74c31556c 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" @@ -1540,7 +1540,7 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не может быть проверен на длинну значения", Тип("Дата"))); + ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не может быть проверен на длину значения", Тип("Дата"))); Попытка Ошибка = Неопределено; @@ -1611,7 +1611,7 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не может быть проверен на длинну значения>", Тип("Дата"))); + ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не может быть проверен на длину значения>", Тип("Дата"))); Попытка Ошибка = Неопределено; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 992c0f920..252ed4c1e 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -90,7 +90,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(38); + .ИмеетДлину(39); КонецПроцедуры From 243d597a504f6f4602cb92179227b6531818cb8a Mon Sep 17 00:00:00 2001 From: Alexandr Yang Date: Thu, 5 Dec 2024 15:25:30 +0500 Subject: [PATCH 41/56] =?UTF-8?q?#451=20=D0=98=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=80=D0=B0=D0=B7=D0=B1=D0=BE=D1=80=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 25 +++++++++++++++++++ .../Module.bsl" | 15 +++++------ .../Module.bsl" | 21 ++++++++++++++++ 3 files changed, 54 insertions(+), 7 deletions(-) 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" index e01a19e50..b34fb2359 100644 --- "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" @@ -43,6 +43,31 @@ КонецФункции +// Возвращает требуемое значение сответствия по ключу. В случае отсутствия ключа возвращает значение по умолчанию +// +// Параметры: +// ИсходноеСоответствие - Соответствие - Исходное соответствие +// Ключ - Произвольный - Ключ поиска +// ЗначениеПоУмолчанию - Произвольный - Значение, которое будет возвращено, если ключа в соответствии нет +// +// Возвращаемое значение: +// Произвольный - Значение ключа соответствия +Функция ЗначениеСоответствия(ИсходноеСоответствие, Ключ, ЗначениеПоУмолчанию = Неопределено) Экспорт + + Если НЕ ЗначениеЗаполнено(ИсходноеСоответствие) ИЛИ ПустаяСтрока(Ключ) Тогда + Возврат ЗначениеПоУмолчанию; + КонецЕсли; + + Значение = ИсходноеСоответствие.Получить(Ключ); + + Если Значение = Неопределено Тогда + Возврат ЗначениеПоУмолчанию; + КонецЕсли; + + Возврат Значение; + +КонецФункции + // Добавляет в приемник данные из источника, при совпадении ключей значения заменяются // // Параметры: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index a9e278438..b87f11eef 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -60,13 +60,14 @@ КонецЕсли; ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрЗапуска); - Возврат ПараметрыЗапускаПредприятия.Свойство(КлючЗапуска()); + Возврат ПараметрыЗапускаПредприятия.Получить(КлючЗапуска()) <> Неопределено; КонецФункции Функция ПараметрыЗапускаИзФайла(ИмяФайла, Обработчик) Экспорт - Параметры = Новый Структура(КлючЗапуска(), ИмяФайла); + Параметры = Новый Соответствие; + Параметры.Вставить(КлючЗапуска(), ИмяФайла); Возврат ПрочитатьПараметрыЗапуска(Параметры, Обработчик); КонецФункции @@ -74,7 +75,7 @@ Функция ФайлПараметровЗапускаТестирования() Экспорт ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрЗапуска); - ИмяФайла = ПараметрыЗапускаПредприятия.Свойство(КлючЗапуска()); + ИмяФайла = ПараметрыЗапускаПредприятия.Получить(КлючЗапуска()); Если ЗначениеЗаполнено(ИмяФайла) И ТипЗнч(ИмяФайла) = Тип("Строка") Тогда Возврат ИмяФайла; @@ -91,8 +92,8 @@ // ПрочитатьПараметрыЗапуска // Читает параметры из строки запуска // Параметры: -// ПараметрыЗапускаПредприятия - Структура - Структура параметров запуска предприятия полученная из `ПараметрЗапуска` -// Обработчик - ОписаниеОповещения +// ПараметрыЗапускаПредприятия - Соответствие - Соответствие параметров запуска предприятия полученные из `ПараметрЗапуска` +// Обработчик - ОписаниеОповещения // // Возвращаемое значение: // см. ЮТФабрика.ПараметрыЗапуска @@ -115,7 +116,7 @@ Функция ПереданныеПараметрыТестирования(ПараметрыЗапускаПредприятия) - ПараметрЗапускаТестов = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаПредприятия, КлючЗапуска(), Ложь); + ПараметрЗапускаТестов = ЮТКоллекции.ЗначениеСоответствия(ПараметрыЗапускаПредприятия, КлючЗапуска(), Ложь); ТипПараметра = ТипЗнч(ПараметрЗапускаТестов); @@ -145,7 +146,7 @@ ПарыКлючЗначение = ЮТСтроки.РазделитьСтроку(ПараметрыЗапускаСтрокой, ";"); - ПараметрыЗапускаПредприятия = Новый Структура; + ПараметрыЗапускаПредприятия = Новый Соответствие; Для Каждого Пара Из ПарыКлючЗначение Цикл 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" index af59c3952..c39ede26a 100644 --- "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" @@ -23,6 +23,7 @@ ЮТТесты .ДобавитьТест("ДополнитьСтруктуру") .ДобавитьТест("ЗначениеСтруктуры") + .ДобавитьТест("ЗначениеСоответствия") .ДобавитьТест("ДополнитьМассив") .ДобавитьТест("СкопироватьРекурсивно") .ДобавитьТест("СкопироватьСтруктуру") @@ -105,6 +106,26 @@ КонецПроцедуры +Процедура ЗначениеСоответствия() Экспорт + + ИсходноеСоответствие = Новый Соответствие; + ИсходноеСоответствие.Вставить("Поле1", "Значение1"); + ИсходноеСоответствие.Вставить(42, 24); + + Результат = ЮТКоллекции.ЗначениеСоответствия(ИсходноеСоответствие, "Поле1", "ЗначениеПоУмолчанию"); + ЮТест.ОжидаетЧто(Результат, "Проверка существующего поля").Равно("Значение1"); + + Результат = ЮТКоллекции.ЗначениеСоответствия(ИсходноеСоответствие, 42, "ЗначениеПоУмолчанию"); + ЮТест.ОжидаетЧто(Результат, "Проверка числового поля").Равно(24); + + Результат = ЮТКоллекции.ЗначениеСоответствия(ИсходноеСоответствие, "Поле3", "ЗначениеПоУмолчанию"); + ЮТест.ОжидаетЧто(Результат, "Проверка несуществующего поля").Равно("ЗначениеПоУмолчанию"); + + Результат = ЮТКоллекции.ЗначениеСоответствия(Неопределено, "Поле", "ЗначениеПоУмолчанию"); + ЮТест.ОжидаетЧто(Результат, "Проверка вызова функции со значение Неопределено").Равно("ЗначениеПоУмолчанию"); + +КонецПроцедуры + Процедура ДополнитьМассив() Экспорт Приемник = Новый Массив; From 604f56db5ef3fd9e051ac2cbbf975fe1c062b371 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Thu, 28 Nov 2024 23:03:40 +0300 Subject: [PATCH 42/56] =?UTF-8?q?ci:=20=D1=81=D0=BE=D0=BA=D1=80=D0=B0?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=20=D1=81?= =?UTF-8?q?=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D0=BE=D0=B2=20=D0=BB=D0=BE=D0=BA?= =?UTF-8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/local-test/scripts/lib/prepare-db.sh | 12 +++++------ tools/local-test/scripts/lib/run-tests.sh | 2 +- .../scripts/steps/build-artifacts.sh | 8 +++---- .../scripts/steps/run-filedb-test.sh | 4 ++-- .../scripts/steps/run-serverdb-test.sh | 4 ++-- tools/local-test/scripts/test-it.sh | 21 +++++++++++++++++++ 6 files changed, 36 insertions(+), 15 deletions(-) diff --git a/tools/local-test/scripts/lib/prepare-db.sh b/tools/local-test/scripts/lib/prepare-db.sh index e850f87df..ba75b064a 100755 --- a/tools/local-test/scripts/lib/prepare-db.sh +++ b/tools/local-test/scripts/lib/prepare-db.sh @@ -5,26 +5,26 @@ BASE_ARGUMENTS="$CONNECTION_STRING /DisableStartupDialogs /DisableStartupMessage DESIGNER_COMMAND="$ONEC_PATH/1cv8 DESIGNER $BASE_ARGUMENTS" echo "=========== Загрузка конфигурации ($JOB_NAME)" -$DESIGNER_COMMAND /LoadCfg $BINARY_PATH/configuration.cf /UpdateDBCfg +$DESIGNER_COMMAND /LoadCfg $BINARY_PATH/configuration.cf /UpdateDBCfg >&- 2>&- SUCCESS=$? -cat $TMP_PATH/$JOB_NAME.log +# cat $TMP_PATH/$JOB_NAME.log EXTENSIONS_SET=("smoke" "tests" "yaxunit") for key in "${EXTENSIONS_SET[@]}";do if [[ $SUCCESS -eq 0 ]]; then echo "=========== Загрузка расширения $key ($JOB_NAME)" - $DESIGNER_COMMAND /LoadCfg $BINARY_PATH/$key.cfe -Extension $key /UpdateDBCfg + $DESIGNER_COMMAND /LoadCfg $BINARY_PATH/$key.cfe -Extension $key /UpdateDBCfg >&- 2>&- SUCCESS=$? - cat $TMP_PATH/$JOB_NAME.log + # cat $TMP_PATH/$JOB_NAME.log fi done if [[ $SUCCESS -eq 0 ]]; then echo "=========== Снятие безопасного режима ($JOB_NAME)" - $ONEC_PATH/1cv8 ENTERPRISE $BASE_ARGUMENTS /Execute $LIB_PATH/DisableSafeMode.epf + $ONEC_PATH/1cv8 ENTERPRISE $BASE_ARGUMENTS /Execute $LIB_PATH/DisableSafeMode.epf >&- 2>&- SUCCESS=$? - cat $TMP_PATH/$JOB_NAME.log + # cat $TMP_PATH/$JOB_NAME.log fi exit $SUCCESS \ No newline at end of file diff --git a/tools/local-test/scripts/lib/run-tests.sh b/tools/local-test/scripts/lib/run-tests.sh index 3455ba143..cadeb912d 100755 --- a/tools/local-test/scripts/lib/run-tests.sh +++ b/tools/local-test/scripts/lib/run-tests.sh @@ -26,7 +26,7 @@ cat >$CONFIG < /dev/null RESULT=$(head -n 1 $RESULT_PATH/exit-code-$JOB_NAME.txt) RESULT=${RESULT:1:1} diff --git a/tools/local-test/scripts/steps/build-artifacts.sh b/tools/local-test/scripts/steps/build-artifacts.sh index cbe8d8716..9978364e7 100755 --- a/tools/local-test/scripts/steps/build-artifacts.sh +++ b/tools/local-test/scripts/steps/build-artifacts.sh @@ -23,16 +23,16 @@ if [[ ${#extensions_set[@]} -eq 0 && $configuration_exists -eq 1 ]]; then fi echo " Создание информационной базы" -$ONEC_PATH/ibcmd infobase create --db-path=$TEMP_DB_PATH --import=$EXPORT_PATH/configuration --apply --force +$ONEC_PATH/ibcmd infobase create --db-path=$TEMP_DB_PATH --import=$EXPORT_PATH/configuration --apply --force > /dev/null if [[ $configuration_exists -eq 0 ]]; then echo " Сохрание тестовой конфигурации" - $ONEC_PATH/ibcmd infobase config save --db-path=$TEMP_DB_PATH $BINARY_PATH/configuration.cf + $ONEC_PATH/ibcmd infobase config save --db-path=$TEMP_DB_PATH $BINARY_PATH/configuration.cf > /dev/null fi for key in "${extensions_set[@]}";do echo " Импорт расширения $key" - $ONEC_PATH/ibcmd infobase config import --db-path=$TEMP_DB_PATH --extension=$key $EXPORT_PATH/$key + $ONEC_PATH/ibcmd infobase config import --db-path=$TEMP_DB_PATH --extension=$key $EXPORT_PATH/$key > /dev/null echo " Сохрание расширения $key" - $ONEC_PATH/ibcmd infobase config save --db-path=$TEMP_DB_PATH --extension=$key $BINARY_PATH/$key.cfe + $ONEC_PATH/ibcmd infobase config save --db-path=$TEMP_DB_PATH --extension=$key $BINARY_PATH/$key.cfe > /dev/null done \ No newline at end of file diff --git a/tools/local-test/scripts/steps/run-filedb-test.sh b/tools/local-test/scripts/steps/run-filedb-test.sh index 121945315..c6f0fa829 100755 --- a/tools/local-test/scripts/steps/run-filedb-test.sh +++ b/tools/local-test/scripts/steps/run-filedb-test.sh @@ -6,8 +6,8 @@ CONNECTION_STRING=/F$TEST_DB_PATH rm -rf $TEST_DB_PATH echo "=========== Создание информационной базы ($JOB_NAME)" -$ONEC_PATH/1cv8 CREATEINFOBASE File=$TEST_DB_PATH /DisableStartupDialogs /DisableStartupMessages /Out $TMP_PATH/$JOB_NAME.log -cat $TMP_PATH/$JOB_NAME.log +$ONEC_PATH/1cv8 CREATEINFOBASE File=$TEST_DB_PATH /DisableStartupDialogs /DisableStartupMessages /Out $TMP_PATH/$JOB_NAME.log >&- 2>&- +# cat $TMP_PATH/$JOB_NAME.log if $LIB_PATH/prepare-db.sh $CONNECTION_STRING $JOB_NAME; then $LIB_PATH/run-tests.sh $MODE $CONNECTION_STRING $JOB_NAME diff --git a/tools/local-test/scripts/steps/run-serverdb-test.sh b/tools/local-test/scripts/steps/run-serverdb-test.sh index 629275e97..de7f01550 100755 --- a/tools/local-test/scripts/steps/run-serverdb-test.sh +++ b/tools/local-test/scripts/steps/run-serverdb-test.sh @@ -4,8 +4,8 @@ DB_NAME=DB_${MODE}Application CONNECTION_STRING=/S\"localhost\\$DB_NAME\" echo "=========== Создание информационной базы ($JOB_NAME)" -$ONEC_PATH/1cv8 CREATEINFOBASE Srvr=localhost\;Ref=$DB_NAME\;DBMS=PostgreSQL\;DBSrvr=localhost\;DB=$DB_NAME\;DBUID=postgres\;CrSQLDB=Y\;SchJobDn=Y /DisableStartupDialogs /DisableStartupMessages /Out $TMP_PATH/$JOB_NAME.log -cat $TMP_PATH/$JOB_NAME.log +$ONEC_PATH/1cv8 CREATEINFOBASE Srvr=localhost\;Ref=$DB_NAME\;DBMS=PostgreSQL\;DBSrvr=localhost\;DB=$DB_NAME\;DBUID=postgres\;CrSQLDB=Y\;SchJobDn=Y /DisableStartupDialogs /DisableStartupMessages /Out $TMP_PATH/$JOB_NAME.log >&- 2>&- +# cat $TMP_PATH/$JOB_NAME.log if $LIB_PATH/prepare-db.sh $CONNECTION_STRING $JOB_NAME; then $LIB_PATH/run-tests.sh $MODE $CONNECTION_STRING $JOB_NAME diff --git a/tools/local-test/scripts/test-it.sh b/tools/local-test/scripts/test-it.sh index 458030683..5ebbd0fc8 100755 --- a/tools/local-test/scripts/test-it.sh +++ b/tools/local-test/scripts/test-it.sh @@ -4,9 +4,30 @@ export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" source $SCRIPTPATH/../.env +if [[ -z "${EDT_VERSION}" ]]; then + >&2 echo 'Не установлена переменная $EDT_VERSION' + exit 1 +fi + +if [[ -z "$ONEC_VERSION" ]]; then + >&2 echo 'Не установлена переменная $ONEC_VERSION' + exit 1 +fi + + export EDT_PATH=/opt/1C/1CE/components/1c-edt-$EDT_VERSION-x86_64 export ONEC_PATH=/opt/1cv8/x86_64/$ONEC_VERSION +if [[ ! -d "${EDT_PATH}" ]]; then + >&2 echo "Не найдена инсталяция ${EDT_PATH}" + exit 1 +fi + +if [[ ! -d "$ONEC_PATH" ]]; then + >&2 echo "Не найдена инсталяция ${ONEC_PATH}" + exit 1 +fi + export WORK_PATH=$(realpath $SCRIPTPATH/../workpath) export ROOT_PATH=$(realpath $SCRIPTPATH/../../../) export STEPS_PATH=$(realpath $SCRIPTPATH/steps) From 18070898ca8d661a20d90b3085713dde2d2b53cd Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 8 Dec 2024 00:11:32 +0300 Subject: [PATCH 43/56] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=B3?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=B1=D0=B8=D0=BD=D0=B0=D1=86=D0=B8=D0=B9=20=D0=B2=D0=B0?= =?UTF-8?q?=D1=80=D0=B8=D0=B0=D0=BD=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 92 ++++++++- .../Module.bsl" | 187 ++++++++++++++++++ ...0\260\320\275\321\202\320\276\320\262.mdo" | 7 + .../Module.bsl" | 2 +- tests/src/Configuration/Configuration.mdo | 1 + 5 files changed, 278 insertions(+), 11 deletions(-) create mode 100644 "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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" create mode 100644 "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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/\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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262.mdo" 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 973ef484e..c1216633f 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" @@ -27,9 +27,17 @@ // ОбщийМодуль - Этот же модуль, для замыкания Функция Варианты(Реквизиты) Экспорт - Варианты = Новый Структура("Реквизиты, Варианты, КоличествоРеквизитов", Реквизиты, Новый Массив()); - Вариант = Новый Структура(Реквизиты); - Варианты.КоличествоРеквизитов = Вариант.Количество(); + Попытка + //@skip-check module-unused-local-variable + Проверка = Новый Структура(Реквизиты); + Исключение + ВызватьИсключение "Некорректные имена реквизитов вариантов: " + Реквизиты; + КонецПопытки; + + Варианты = Новый Структура("СтрокаРеквизиты, Варианты, КоличествоРеквизитов", Реквизиты, Новый Массив()); + Варианты.Вставить("Реквизиты", СтрРазделить(Реквизиты, ", ", Ложь)); + + Варианты.КоличествоРеквизитов = Варианты.Реквизиты.Количество(); ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), Варианты); @@ -63,19 +71,19 @@ Варианты = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()); Если Варианты.КоличествоРеквизитов = 1 Тогда - Вариант = Новый Структура(Варианты.Реквизиты, Параметр1); + Вариант = Новый Структура(Варианты.СтрокаРеквизиты, Параметр1); ИначеЕсли Варианты.КоличествоРеквизитов = 2 Тогда - Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2); + Вариант = Новый Структура(Варианты.СтрокаРеквизиты, Параметр1, Параметр2); ИначеЕсли Варианты.КоличествоРеквизитов = 3 Тогда - Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2, Параметр3); + Вариант = Новый Структура(Варианты.СтрокаРеквизиты, Параметр1, Параметр2, Параметр3); ИначеЕсли Варианты.КоличествоРеквизитов = 4 Тогда - Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2, Параметр3, Параметр4); + Вариант = Новый Структура(Варианты.СтрокаРеквизиты, Параметр1, Параметр2, Параметр3, Параметр4); ИначеЕсли Варианты.КоличествоРеквизитов = 5 Тогда - Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5); + Вариант = Новый Структура(Варианты.СтрокаРеквизиты, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5); ИначеЕсли Варианты.КоличествоРеквизитов = 6 Тогда - Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6); + Вариант = Новый Структура(Варианты.СтрокаРеквизиты, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6); ИначеЕсли Варианты.КоличествоРеквизитов = 7 Тогда - Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7); + Вариант = Новый Структура(Варианты.СтрокаРеквизиты, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7); КонецЕсли; // BSLLS:NumberOfValuesInStructureConstructor-on // BSLLS:MagicNumber-on @@ -85,6 +93,50 @@ КонецФункции +// Добавляет новый вариант +// +// Параметры: +// Параметр1 - Массив из Произвольный +// Параметр2 - Массив из Произвольный +// Параметр3 - Массив из Произвольный +// Параметр4 - Массив из Произвольный +// Параметр5 - Массив из Произвольный +// Параметр6 - Массив из Произвольный +// Параметр7 - Массив из Произвольный +// +// Возвращаемое значение: +// ОбщийМодуль - Этот же модуль, для замыкания +//@skip-check method-too-many-params +Функция ДобавитьКомбинации(Параметр1, + Параметр2 = Неопределено, + Параметр3 = Неопределено, + Параметр4 = Неопределено, + Параметр5 = Неопределено, + Параметр6 = Неопределено, + Параметр7 = Неопределено) Экспорт + + ВсеПараметры = Новый Массив(7); + ВсеПараметры[0] = Параметр1; + ВсеПараметры[1] = Параметр2; + ВсеПараметры[2] = Параметр3; + ВсеПараметры[3] = Параметр4; + ВсеПараметры[4] = Параметр5; + ВсеПараметры[5] = Параметр6; + ВсеПараметры[6] = Параметр7; + + ПараметрыВариантов = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()); + ЗначенияПараметров = Новый Массив(ПараметрыВариантов.КоличествоРеквизитов); + + Для Инд = 0 По ПараметрыВариантов.КоличествоРеквизитов - 1 Цикл + ЗначенияПараметров[Инд] = ВсеПараметры[Инд]; + КонецЦикла; + + ДобавитьВарианты(ПараметрыВариантов.Варианты, ЗначенияПараметров, ПараметрыВариантов.Реквизиты, 0, Новый Структура(ПараметрыВариантов.СтрокаРеквизиты)); + + Возврат ЮТКонструкторВариантов; + +КонецФункции + // Список вариантов. // // Возвращаемое значение: @@ -105,4 +157,24 @@ КонецФункции +Процедура ДобавитьВарианты(Варианты, ЗначенияПараметров, Ключи, Инд, БазоваяСтруктура) + + ПоследняяИтерация = Инд = Ключи.ВГраница(); + Ключ = Ключи[Инд]; + + Для Каждого Значение Из ЗначенияПараметров[Инд] Цикл + + БазоваяСтруктура[Ключ] = Значение; + + Если ПоследняяИтерация Тогда + Вариант = ЮТКоллекции.СкопироватьСтруктуру(БазоваяСтруктура); + Варианты.Добавить(Вариант); + Иначе + ДобавитьВарианты(Варианты, ЗначенияПараметров, Ключи, Инд + 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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" new file mode 100644 index 000000000..31315dc13 --- /dev/null +++ "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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" @@ -0,0 +1,187 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("Варианты") + .ДобавитьТест("ДобавитьКомбинации_2х3").Представление("Комбинация двух реквизитов по 3 значения") + .ДобавитьТест("ДобавитьКомбинации_3х2").Представление("Комбинация трех реквизитов по 2 значения") + .ДобавитьТест("ДобавитьКомбинации_1х1").Представление("Комбинация из одного реквизита ") + .ДобавитьТест("ДобавитьКомбинации_РазнаяРазмерность").Представление("Комбинация трех реквизитов с разным количество значений") + .ДобавитьТест("Добавить") + .ДобавитьТест("СписокВариантов") + ; + +КонецПроцедуры + +Процедура Варианты() Экспорт + + ЮТКонструкторВариантов.Варианты("Р1, Р2, Р3"); + + КонтекстВариантов = ЮТКонтекстСлужебный.ЗначениеКонтекста("ВариантыТеста"); + ЮТест.ОжидаетЧто(КонтекстВариантов) + .Заполнено() + .ИмеетТип("Структура") + .Свойство("СтрокаРеквизиты") + .Равно("Р1, Р2, Р3") + .Свойство("Реквизиты") + .Равно(ЮТКоллекции.ЗначениеВМассиве("Р1", "Р2", "Р3")) + .Свойство("Варианты") + .ИмеетТип("Массив") + .НеЗаполнено() + .Свойство("КоличествоРеквизитов") + .Равно(3) + ; + +КонецПроцедуры + +Процедура ДобавитьКомбинации_2х3() Экспорт + + ЗначенияРеквизита1 = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); + ЗначенияРеквизита2 = ЮТКоллекции.ЗначениеВМассиве(11, 12, 13); + + ОжидаемыйРезультат = Новый Массив(9); + ОжидаемыйРезультат[0] = Новый Структура("Р1, Р2", 1, 11); + ОжидаемыйРезультат[1] = Новый Структура("Р1, Р2", 1, 12); + ОжидаемыйРезультат[2] = Новый Структура("Р1, Р2", 1, 13); + ОжидаемыйРезультат[3] = Новый Структура("Р1, Р2", 2, 11); + ОжидаемыйРезультат[4] = Новый Структура("Р1, Р2", 2, 12); + ОжидаемыйРезультат[5] = Новый Структура("Р1, Р2", 2, 13); + ОжидаемыйРезультат[6] = Новый Структура("Р1, Р2", 3, 11); + ОжидаемыйРезультат[7] = Новый Структура("Р1, Р2", 3, 12); + ОжидаемыйРезультат[8] = Новый Структура("Р1, Р2", 3, 13); + + Варианты = ЮТКонструкторВариантов.Варианты("Р1, Р2") + .ДобавитьКомбинации(ЗначенияРеквизита1, ЗначенияРеквизита2) + .СписокВариантов(); + + ЮТест.ОжидаетЧто(Варианты) + .ИмеетТип("Массив") + .ИмеетДлину(9) + .Равно(ОжидаемыйРезультат) + ; + +КонецПроцедуры + +Процедура ДобавитьКомбинации_3х2() Экспорт + + ЗначенияРеквизита1 = ЮТКоллекции.ЗначениеВМассиве(1, 2); + ЗначенияРеквизита2 = ЮТКоллекции.ЗначениеВМассиве(11, 12); + ЗначенияРеквизита3 = ЮТКоллекции.ЗначениеВМассиве(21, 22); + + ОжидаемыйРезультат = Новый Массив(8); + ОжидаемыйРезультат[0] = Новый Структура("Р1, Р2, Р3", 1, 11, 21); + ОжидаемыйРезультат[1] = Новый Структура("Р1, Р2, Р3", 1, 11, 22); + ОжидаемыйРезультат[2] = Новый Структура("Р1, Р2, Р3", 1, 12, 21); + ОжидаемыйРезультат[3] = Новый Структура("Р1, Р2, Р3", 1, 12, 22); + ОжидаемыйРезультат[4] = Новый Структура("Р1, Р2, Р3", 2, 11, 21); + ОжидаемыйРезультат[5] = Новый Структура("Р1, Р2, Р3", 2, 11, 22); + ОжидаемыйРезультат[6] = Новый Структура("Р1, Р2, Р3", 2, 12, 21); + ОжидаемыйРезультат[7] = Новый Структура("Р1, Р2, Р3", 2, 12, 22); + + Варианты = ЮТКонструкторВариантов.Варианты("Р1, Р2, Р3") + .ДобавитьКомбинации(ЗначенияРеквизита1, ЗначенияРеквизита2, ЗначенияРеквизита3) + .СписокВариантов(); + + ЮТест.ОжидаетЧто(Варианты) + .ИмеетТип("Массив") + .ИмеетДлину(8) + .Равно(ОжидаемыйРезультат) + ; + +КонецПроцедуры + +Процедура ДобавитьКомбинации_1х1() Экспорт + + ЗначенияРеквизита1 = ЮТКоллекции.ЗначениеВМассиве(1); + + ОжидаемыйРезультат = Новый Массив(1); + ОжидаемыйРезультат[0] = Новый Структура("Р1", 1); + + Варианты = ЮТКонструкторВариантов.Варианты("Р1") + .ДобавитьКомбинации(ЗначенияРеквизита1) + .СписокВариантов(); + + ЮТест.ОжидаетЧто(Варианты) + .ИмеетТип("Массив") + .ИмеетДлину(1) + .Равно(ОжидаемыйРезультат) + ; + +КонецПроцедуры + +Процедура ДобавитьКомбинации_РазнаяРазмерность() Экспорт + + ЗначенияРеквизита1 = ЮТКоллекции.ЗначениеВМассиве(1); + ЗначенияРеквизита2 = ЮТКоллекции.ЗначениеВМассиве(11, 12); + ЗначенияРеквизита3 = ЮТКоллекции.ЗначениеВМассиве(21, 22, 23); + + ОжидаемыйРезультат = Новый Массив(6); + ОжидаемыйРезультат[0] = Новый Структура("Р1, Р2, Р3", 1, 11, 21); + ОжидаемыйРезультат[1] = Новый Структура("Р1, Р2, Р3", 1, 11, 22); + ОжидаемыйРезультат[2] = Новый Структура("Р1, Р2, Р3", 1, 11, 23); + ОжидаемыйРезультат[3] = Новый Структура("Р1, Р2, Р3", 1, 12, 21); + ОжидаемыйРезультат[4] = Новый Структура("Р1, Р2, Р3", 1, 12, 22); + ОжидаемыйРезультат[5] = Новый Структура("Р1, Р2, Р3", 1, 12, 23); + + Варианты = ЮТКонструкторВариантов.Варианты("Р1, Р2, Р3") + .ДобавитьКомбинации(ЗначенияРеквизита1, ЗначенияРеквизита2, ЗначенияРеквизита3) + .СписокВариантов(); + + ЮТест.ОжидаетЧто(Варианты) + .ИмеетТип("Массив") + .ИмеетДлину(6) + .Равно(ОжидаемыйРезультат) + ; + +КонецПроцедуры + +Процедура Добавить() Экспорт + + Варианты = ЮТКонструкторВариантов.Варианты("Р1, Р2, Р3") + .Добавить(1, , 3, 4) + .СписокВариантов(); + + ЮТест.ОжидаетЧто(Варианты) + .ИмеетТип("Массив") + .ИмеетДлину(1) + .Равно(ЮТКоллекции.ЗначениеВМассиве(Новый Структура("Р1, Р2, Р3", 1, Неопределено, 3))) + ; + +КонецПроцедуры + +Процедура СписокВариантов() Экспорт + + Варианты = ЮТКонструкторВариантов.Варианты("Р1, Р2, Р3") + .СписокВариантов(); + + ЮТест.ОжидаетЧто(Варианты) + .ИмеетТип("Массив") + .ИмеетДлину(0) + ; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти 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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/\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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262.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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/\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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..711a46ffc --- /dev/null +++ "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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/\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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262.mdo" @@ -0,0 +1,7 @@ + + + ОМ_ЮТКонструкторВариантов + true + 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\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 252ed4c1e..8765edcc7 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -90,7 +90,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(39); + .ИмеетДлину(40); КонецПроцедуры diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 701bf8a0c..31d75a8a2 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -45,6 +45,7 @@ CommonModule.ОМ_ЮТИсполнительСлужебныйКлиент CommonModule.ОМ_ЮТИсполнительСлужебныйКлиентСервер CommonModule.ОМ_ЮТКоллекции + CommonModule.ОМ_ЮТКонструкторВариантов CommonModule.ОМ_ЮТКонструкторТестовыхДанных CommonModule.ОМ_ЮТМетаданные CommonModule.ОМ_ЮТОбщий From 2859702867be23686b7a7a950fa7d432f4343c03 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 9 Dec 2024 01:01:21 +0300 Subject: [PATCH 44/56] =?UTF-8?q?fix:=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 46 ++++++++++++++----- 1 file changed, 34 insertions(+), 12 deletions(-) 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 c1216633f..09fbcb8f6 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" @@ -59,7 +59,7 @@ // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания //@skip-check method-too-many-params -Функция Добавить(Параметр1, +Функция Добавить(Параметр1, // BSLLS:NumberOfOptionalParams-off Параметр2 = Неопределено, Параметр3 = Неопределено, Параметр4 = Неопределено, @@ -93,21 +93,37 @@ КонецФункции -// Добавляет новый вариант +// Добавляет варианты всех возможных значений, указанных в параметрах. // // Параметры: -// Параметр1 - Массив из Произвольный -// Параметр2 - Массив из Произвольный -// Параметр3 - Массив из Произвольный -// Параметр4 - Массив из Произвольный -// Параметр5 - Массив из Произвольный -// Параметр6 - Массив из Произвольный -// Параметр7 - Массив из Произвольный +// Параметр1 - Массив из Произвольный - Доступные значения для первого параметры +// Параметр2 - Массив из Произвольный - Доступные значения для второго параметры +// Параметр3 - Массив из Произвольный - Доступные значения для третьего параметры +// Параметр4 - Массив из Произвольный - Доступные значения для четвертого параметры +// Параметр5 - Массив из Произвольный - Доступные значения для пятого параметры +// Параметр6 - Массив из Произвольный - Доступные значения для шестого параметры +// Параметр7 - Массив из Произвольный - Доступные значения для седьмого параметры // // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания +// Примеры: +// ЗначенияРеквизита1 = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); +// ЗначенияРеквизита2 = ЮТКоллекции.ЗначениеВМассиве(11, 12, 13); +// Варианты = ЮТКонструкторВариантов.Варианты("Р1, Р2") +// .ДобавитьКомбинации(ЗначенияРеквизита1, ЗначенияРеквизита2) +// .СписокВариантов(); +// // В результате получим такой массив вариантов: +// [{ "Р1: 1, Р2": 11 }, +// { "Р1: 1, Р2": 12 }, +// { "Р1: 1, Р2": 13 }, +// { "Р1: 2, Р2": 11 }, +// { "Р1: 2, Р2": 12 }, +// { "Р1: 2, Р2": 13 }, +// { "Р1: 3, Р2": 11 }, +// { "Р1: 3, Р2": 12 }, +// { "Р1: 3, Р2": 13 }] //@skip-check method-too-many-params -Функция ДобавитьКомбинации(Параметр1, +Функция ДобавитьКомбинации(Параметр1, // BSLLS:NumberOfOptionalParams-off Параметр2 = Неопределено, Параметр3 = Неопределено, Параметр4 = Неопределено, @@ -115,7 +131,9 @@ Параметр6 = Неопределено, Параметр7 = Неопределено) Экспорт - ВсеПараметры = Новый Массив(7); + КоличествоПараметров = 7; + + ВсеПараметры = Новый Массив(КоличествоПараметров); ВсеПараметры[0] = Параметр1; ВсеПараметры[1] = Параметр2; ВсеПараметры[2] = Параметр3; @@ -131,7 +149,11 @@ ЗначенияПараметров[Инд] = ВсеПараметры[Инд]; КонецЦикла; - ДобавитьВарианты(ПараметрыВариантов.Варианты, ЗначенияПараметров, ПараметрыВариантов.Реквизиты, 0, Новый Структура(ПараметрыВариантов.СтрокаРеквизиты)); + ДобавитьВарианты(ПараметрыВариантов.Варианты, + ЗначенияПараметров, + ПараметрыВариантов.Реквизиты, + 0, + Новый Структура(ПараметрыВариантов.СтрокаРеквизиты)); Возврат ЮТКонструкторВариантов; From ca282f0eda4f51c6b57a69d2dc78214fee3fa1bc Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 9 Dec 2024 01:59:34 +0300 Subject: [PATCH 45/56] =?UTF-8?q?doc:=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D0=B2=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/features/variants.md | 167 ++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 documentation/docs/features/variants.md diff --git a/documentation/docs/features/variants.md b/documentation/docs/features/variants.md new file mode 100644 index 000000000..7705bc05e --- /dev/null +++ b/documentation/docs/features/variants.md @@ -0,0 +1,167 @@ +# Вариативность выполнения тестов + +Вариативность выполнения тестов — это мощная возможность, которая позволяет выполнять один и тот же тест (алгоритм проверки) с различными наборами входных данных. Это упрощает написание и поддержку тестов, а также повышает их эффективность за счет автоматизации проверки различных сценариев. + +## Параметризированные тесты + +Параметризированные тесты позволяют разработчикам определять тестовые сценарии, которые будут выполняться с разными наборами параметров. +Это особенно полезно для проверки функциональности, которая зависит от входных данных, таких как различные типы значений, структуры данных, справочники и другие объекты. + +### Синтаксис и использование + +Для создания параметризированного теста необходимо: + +1. **Определить тестовый сценарий**: Создать процедуру, которая будет выполнять тест. Эта процедура должна принимать параметры, которые будут передаваться при каждом вызове теста. +2. **Добавить тест в список исполняемых сценариев**: Использовать метод [`.ДобавитьТест()`](/api/ЮТТесты#добавитьтест) для добавления тестового сценария в список исполняемых тестов. +3. **Указать параметры для каждого вызова теста**: Использовать метод [`.СПараметрами()`](/api/ЮТТесты#спараметрами) для передачи набора параметров, с которыми будет выполняться тест. + +### Пример использования + +```bsl +Процедура ИсполняемыеСценарии() Экспорт + + Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, "3"); + Структура = Новый Структура("Строка, Число, Массив", "1", 1, Массив); + + ЮТТесты + .ДобавитьТест("ЗначенияРавны") + .СПараметрами(1, 1, Истина) + .СПараметрами("1", 1, Ложь) + .СПараметрами("1", 1, Ложь) + .СПараметрами(Массив, Массив, Истина) + .СПараметрами(Массив, ЮТКоллекции.ЗначениеВМассиве(1, 2, 3), Ложь) + .СПараметрами(Структура, Структура, Истина) + .СПараметрами(Структура, Новый Структура("Строка, Число, Массив", "1", 1, "Массив"), Ложь) + ; + +КонецПроцедуры + +Процедура ЗначенияРавны(Значение1, Значение2, ОжидаемыйРезультат) Экспорт + + Результат = ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Значение1, Значение2); + ЮТест.ОжидаетЧто(Результат) + .Равно(ОжидаемыйРезультат); + +КонецПроцедуры +``` + +#### Пояснение к примеру + +1. **Процедура `ИсполняемыеСценарии`**: + * В этой процедуре создаются массив и структура, которые будут использоваться в качестве параметров для тестов. + * Тестовый сценарий `ЗначенияРавны` добавляется в список исполняемых тестов с помощью метода [`.ДобавитьТест()`](/api/ЮТТесты#добавитьтест). + * Для каждого вызова теста указываются различные параметры с помощью метода [`.СПараметрами()`](/api/ЮТТесты#спараметрами). Каждый набор параметров включает два значения для сравнения и ожидаемый результат сравнения. + +2. **Процедура `ЗначенияРавны`**: + * Это тестовый сценарий, который принимает три параметра: `Значение1`, `Значение2` и `ОжидаемыйРезультат`. + * Внутри процедуры проверяется, равны ли `Значение1` и `Значение2`, используя метод `ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны()`. + * Результат сравнения передается в метод `ЮТест.ОжидаетЧто()`, который проверяет, что результат сравнения соответствует `ОжидаемыйРезультат`. + +## Варианты выполнения тестов + +**Варианты выполнения тестов** позволяют динамически формировать различные сценарии выполнения внутри одного теста. Это упрощает создание и поддержку тестов, а также повышает их эффективность за счет проверки различных вариантов входных данных и условий. + +### Возможности + +* **Определение вариантов:** + * Варианты выполнения могут быть определены с помощью метода [`ЮТест.Варианты()`](/api/ЮТКонструкторВариантов), который принимает строку с именами параметров и результатов. + * Для каждого варианта можно добавить набор значений параметров и ожидаемых результатов с помощью метода [`.Добавить()`](/api/ЮТКонструкторВариантов#добавить). + * Можно добавить варианты всех возможных значений используя метод [`ДобавитьКомбинации()`](/api/ЮТКонструкторВариантов#добавитькомбинации). Он автоматически создает все возможные комбинации значений для указанных параметров, упрощая проверку различных сценариев входных данных. Для каждой комбинации значений создается отдельный вариант выполнения теста. + * Поддерживаются различные типы данных параметров и результатов: строки, числа, даты, булевы значения, ссылки на объекты метаданных, типы данных и т.д. + +### Пример использования вариантов выполнения + +```bsl +Процедура Менеджер() Экспорт + + Варианты = ЮТест.Варианты("Параметр, Результат") + .Добавить("Справочник.Товары", Справочники.Товары) + .Добавить("Справочники.Товары", Справочники.Товары) + .Добавить(Справочники.Товары, Справочники.Товары) + .Добавить(Справочники.Товары.ПустаяСсылка(), Справочники.Товары) + .Добавить(Тип("СправочникМенеджер.Товары"), Справочники.Товары) + .Добавить(Тип("СправочникСсылка.Товары"), Справочники.Товары) + .Добавить(ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Товары"), Справочники.Товары) + .Добавить("РегистрыНакопления.Взаиморасчеты", РегистрыНакопления.Взаиморасчеты) + ; + + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл + + Описание = СтрШаблон("%1 (%2)", Вариант.Параметр, ТипЗнч(Вариант.Параметр)); + ЮТест.ОжидаетЧто(ЮТОбщий.Менеджер(Вариант.Параметр), Описание) + .Равно(Вариант.Результат); + + КонецЦикла; + +КонецПроцедуры +``` + +#### Пояснение к примеру использования вариантов выполнения + +1. **Определение вариантов:** + * Создается объект `Варианты` с помощью метода [`ЮТест.Варианты()`](/api/ЮТКонструкторВариантов), который определяет два параметра: `Параметр` и `Результат`. + * Для каждого варианта выполнения добавляется набор значений параметров и ожидаемых результатов с помощью метода [`.Добавить()`](/api/ЮТКонструкторВариантов#добавить). +2. **Использование вариантов в тесте:** + * В цикле `Для Каждого Вариант Из Варианты.СписокВариантов() Цикл` происходит перебор всех вариантов выполнения. + * Для каждого варианта формируется описание с помощью функции `СтрШаблон()`, которое будет использоваться при возникновении ошибки. + * Вызывается метод `ЮТОбщий.Менеджер()` с параметром `Вариант.Параметр` и проверяется, что результат равен `Вариант.Результат` с помощью метода `ЮТест.ОжидаетЧто().Равно()`. + +### Пример использования комбинаций значений параметров + +```bsl +Процедура ФормированиеДокумента() Экспорт + + // Получаем все значения перечислений для видов операций и видов контрагентов + ВидыОпераций = ЗначенияПеречисления(Перечисление.ВидыОперацийДокумента); + ВидыКонтрагентов = ЗначенияПеречисления(Перечисление.ВидыКонтрагентов); + + // Создаем варианты выполнения, добавляя все возможные комбинации значений + Варианты = ЮТест.Варианты("ВидОперации, ВидКонтрагента") + .ДобавитьКомбинации(ВидыОпераций, ВидыКонтрагентов); + + // Перебираем все варианты выполнения + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл + + // Формируем описание текущего варианта + Описание = СтрШаблон("Вид операции: %1; вид контрагента: %2", Вариант.ВидОперации, Вариант.ВидКонтрагента); + + // Выполняем проверку документа с текущими значениями параметров + Результат = ПроверитьДокумент(Вариант.ВидОперации, Вариант.ВидКонтрагента); + + // Проверяем, что результат проверки является истиной + ЮТест.ОжидаетЧто(Результат, Описание) + .ЭтоИстина(); + + КонецЦикла; + +КонецПроцедуры +``` + +#### Пояснение к примеру использования комбинаций значений параметров + +1. **Получение значений перечислений:** + * Создаются массивы значений для двух перечислений: `ВидыОпераций` и `ВидыКонтрагентов`. +2. **Генерация комбинаций значений параметров:** + * Метод [`ДобавитьКомбинации()`](/api/ЮТКонструкторВариантов#добавитькомбинации) добавляет все возможные комбинации значений этих перечислений в объект `Варианты`. +3. **Перебор вариантов выполнения:** + * В цикле `Для Каждого Вариант Из Варианты.СписокВариантов() Цикл` происходит перебор всех сгенерированных комбинаций. +4. **Формирование описания и проверка результата:** + * Для каждого варианта формируется описание с помощью функции `СтрШаблон()`. + * Вызывается функция `ПроверитьДокумент()` с параметрами `Вариант.ВидОперации` и `Вариант.ВидКонтрагента`, и проверяется, что результат является истиной с помощью метода `ЮТест.ОжидаетЧто().ЭтоИстина()`. + +## Различия в подходах и кейсах использования + +* Параметризированные тесты являются предпочитаемым вариантом + * Для каждой комбинации значений параметров формируется отдельная запись отчет, в котором указываются использованные значения параметров и результаты проверки. + * Падения теста на одном из вариантов не влияет на другие. + * Каждая комбинация выполняется как полноценный отдельный тест. + +## Преимущества использования вариативности в тестах + +* **Универсальность**: Один тест может проверять множество различных сценариев, что уменьшает количество кода и упрощает поддержку. +* **Гибкость**: Легко добавлять новые сценарии, просто передавая новые параметры. +* **Повторяемость**: Тесты могут быть легко повторены с разными наборами данных, что улучшает покрытие тестами. + +## Заключение + +Параметризированные тесты и варианты — это мощные инструменты для автоматизации и упрощения процесса модульного тестирования в 1С:Предприятии. Использование этих возможностей позволяет разработчикам создавать более гибкие и надежные тесты, которые могут быть легко адаптированы к различным сценариям и условиям. From fba49ce41d4fff5638ea3dfd0174f16273f030b4 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 9 Dec 2024 02:08:06 +0300 Subject: [PATCH 46/56] =?UTF-8?q?feat:=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BA=D0=B0=20=D0=B2=D1=85=D0=BE=D0=B4=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20`=D0=94=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=82=D1=8C=D0=9A=D0=BE=D0=BC=D0=B1=D0=B8?= =?UTF-8?q?=D0=BD=D0=B0=D1=86=D0=B8=D0=B8`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 43 ++++++++++--------- .../Module.bsl" | 12 ++++++ 2 files changed, 34 insertions(+), 21 deletions(-) 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 09fbcb8f6..c2c0d1acd 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" @@ -96,13 +96,13 @@ // Добавляет варианты всех возможных значений, указанных в параметрах. // // Параметры: -// Параметр1 - Массив из Произвольный - Доступные значения для первого параметры -// Параметр2 - Массив из Произвольный - Доступные значения для второго параметры -// Параметр3 - Массив из Произвольный - Доступные значения для третьего параметры -// Параметр4 - Массив из Произвольный - Доступные значения для четвертого параметры -// Параметр5 - Массив из Произвольный - Доступные значения для пятого параметры -// Параметр6 - Массив из Произвольный - Доступные значения для шестого параметры -// Параметр7 - Массив из Произвольный - Доступные значения для седьмого параметры +// ЗначенияПараметра1 - Массив из Произвольный - Доступные значения для первого параметры +// ЗначенияПараметра2 - Массив из Произвольный - Доступные значения для второго параметры +// ЗначенияПараметра3 - Массив из Произвольный - Доступные значения для третьего параметры +// ЗначенияПараметра4 - Массив из Произвольный - Доступные значения для четвертого параметры +// ЗначенияПараметра5 - Массив из Произвольный - Доступные значения для пятого параметры +// ЗначенияПараметра6 - Массив из Произвольный - Доступные значения для шестого параметры +// ЗначенияПараметра7 - Массив из Произвольный - Доступные значения для седьмого параметры // // Возвращаемое значение: // ОбщийМодуль - Этот же модуль, для замыкания @@ -123,29 +123,30 @@ // { "Р1: 3, Р2": 12 }, // { "Р1: 3, Р2": 13 }] //@skip-check method-too-many-params -Функция ДобавитьКомбинации(Параметр1, // BSLLS:NumberOfOptionalParams-off - Параметр2 = Неопределено, - Параметр3 = Неопределено, - Параметр4 = Неопределено, - Параметр5 = Неопределено, - Параметр6 = Неопределено, - Параметр7 = Неопределено) Экспорт +Функция ДобавитьКомбинации(ЗначенияПараметра1, // BSLLS:NumberOfOptionalParams-off + ЗначенияПараметра2 = Неопределено, + ЗначенияПараметра3 = Неопределено, + ЗначенияПараметра4 = Неопределено, + ЗначенияПараметра5 = Неопределено, + ЗначенияПараметра6 = Неопределено, + ЗначенияПараметра7 = Неопределено) Экспорт КоличествоПараметров = 7; ВсеПараметры = Новый Массив(КоличествоПараметров); - ВсеПараметры[0] = Параметр1; - ВсеПараметры[1] = Параметр2; - ВсеПараметры[2] = Параметр3; - ВсеПараметры[3] = Параметр4; - ВсеПараметры[4] = Параметр5; - ВсеПараметры[5] = Параметр6; - ВсеПараметры[6] = Параметр7; + ВсеПараметры[0] = ЗначенияПараметра1; + ВсеПараметры[1] = ЗначенияПараметра2; + ВсеПараметры[2] = ЗначенияПараметра3; + ВсеПараметры[3] = ЗначенияПараметра4; + ВсеПараметры[4] = ЗначенияПараметра5; + ВсеПараметры[5] = ЗначенияПараметра6; + ВсеПараметры[6] = ЗначенияПараметра7; ПараметрыВариантов = ЮТКонтекстСлужебный.ЗначениеКонтекста(КлючКонтекста()); ЗначенияПараметров = Новый Массив(ПараметрыВариантов.КоличествоРеквизитов); Для Инд = 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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" index 31315dc13..396bf34c2 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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" @@ -26,6 +26,7 @@ .ДобавитьТест("ДобавитьКомбинации_3х2").Представление("Комбинация трех реквизитов по 2 значения") .ДобавитьТест("ДобавитьКомбинации_1х1").Представление("Комбинация из одного реквизита ") .ДобавитьТест("ДобавитьКомбинации_РазнаяРазмерность").Представление("Комбинация трех реквизитов с разным количество значений") + .ДобавитьТест("ДобавитьКомбинации_ПроверкаТипаПараметра") .ДобавитьТест("Добавить") .ДобавитьТест("СписокВариантов") ; @@ -180,6 +181,17 @@ КонецПроцедуры +Процедура ДобавитьКомбинации_ПроверкаТипаПараметра() Экспорт + + Варианты = ЮТКонструкторВариантов.Варианты("Р1, Р2, Р3"); + + ЮТест.ОжидаетЧто(Варианты) + .Метод("ДобавитьКомбинации", ЮТКоллекции.ЗначениеВМассиве(Новый Массив, 2, 3)) + .ВыбрасываетИсключение("Некорректный тип параметра `ЗначенияПараметра2` метода `ДобавитьКомбинации`. Метод принимает `Массив`, а получили `Число`") + ; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции From e990cf8e50cfa8ce500c5c3a523fa6f9e6db5f6e Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 9 Dec 2024 16:08:59 +0300 Subject: [PATCH 47/56] =?UTF-8?q?fix:=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B8?= =?UTF-8?q?=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B8=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20=D0=B8=D0=B7=20=D0=BE=D1=81?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BC=D0=BE=D0=B4?= =?UTF-8?q?=D1=83=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 15 +++++ .../Module.bsl" | 66 ++++++++++++++++++- 2 files changed, 80 insertions(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 123430dc0..5b4be64ba 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -59,6 +59,21 @@ КонецПроцедуры +Процедура ВыполнитьТестовыеМодули(ПараметрыЗапуска, ИсполняемыеМодули, ОбработчикЗавершения) Экспорт + + ПараметрыИсполнения = ПараметрыИсполнения(); + ПараметрыИсполнения.ПараметрыЗапуска = ПараметрыЗапуска; + ПараметрыИсполнения.ИсполняемыеТестовыеМодули = ИсполняемыеМодули; + + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикИнициализация"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРазрешитьЗависимости"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование"); + ПараметрыИсполнения.Цепочка.Добавить(ОбработчикЗавершения); + + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения); + +КонецПроцедуры + Процедура ЗагрузитьЗарегистрированныеТесты(ПараметрыЗапуска, ОбработчикЗавершения) Экспорт ПараметрыИсполнения = ПараметрыИсполнения(); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index 70369845c..bc9536b07 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -159,7 +159,23 @@ Процедура ЗапуститьВыделенныеТесты(Команда) Модули = ВыделенныеТестовыеМодули(); - ВыполнитьТестовыеМодули(Модули); + Отказ = Ложь; + + ПередВыполнениемТестов(Модули, Отказ); + + Если Отказ Тогда + Возврат; + КонецЕсли; + + Обработчик = Новый ОписаниеОповещения("ПослеВыполненияВыделенныхМодулей", ЭтотОбъект); + ЮТИсполнительСлужебныйКлиент.ВыполнитьТестовыеМодули(ПараметрыЗапускаТестирования, Модули, Обработчик); + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеВыполненияВыделенныхМодулей(Результат, ПараметрыИсполнения) Экспорт + + ПослеВыполненияТестов(Результат); КонецПроцедуры @@ -602,6 +618,54 @@ #Область ЗапускТестов +&НаКлиенте +Процедура ПередВыполнениемТестов(Модули, Отказ) + + Если Модули.Количество() = 0 Тогда + ПоказатьПредупреждение( , "Нет тестов для запуска"); + Отказ = Истина; + Возврат; + КонецЕсли; + + ОповещениеПользователю("Прогон тестов", "Запушено выполнение тестов"); + + Для Каждого Модуль Из Модули Цикл + СброситьСостояниеТестирования(Модуль); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеВыполненияТестов(Модули) + + Для Каждого Модуль Из Модули Цикл + + Для Каждого Набор Из Модуль.НаборыТестов Цикл + + Для Каждого Тест Из Набор.Тесты Цикл + + Строка = ДеревоТестов.НайтиПоИдентификатору(Тест.Идентификатор); + ОтобразитьРезультатТеста(Строка, Тест, Набор); + + КонецЦикла; + + Строка = ДеревоТестов.НайтиПоИдентификатору(Набор.Идентификатор); + ЗаполнитьОшибки(Строка, Набор); + ОбновитьСтатистикуНабора(Строка); + + КонецЦикла; + + КонецЦикла; + + ОбновитьОбщуюСтатистику(Ложь); + + ЮТКонтекстСлужебный.УдалитьКонтекст(); + + ПриИзмененииТекущегоЭлементаДереваТестов(); + ОповещениеПользователю("Прогон тестов завершен", "Завершено выполнение тестов"); + +КонецПроцедуры + &НаКлиенте Процедура ВыполнитьТестовыеМодули(Модули) From 32639f115776b75497a9ad6678b33af12de08911 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 9 Dec 2024 16:41:23 +0300 Subject: [PATCH 48/56] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D0=BF=D0=BE=20=D1=83=D0=BC?= =?UTF-8?q?=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8E,=20=D1=81=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=BE=D0=B9=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 9 +++++++++ .../Module.bsl" | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index a9e278438..5315de782 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -47,6 +47,15 @@ КонецФункции +Функция ПараметрыТестированияПоУмолчанию() Экспорт + + ПараметрыТестирования = ЮТФабрика.ПараметрыЗапуска(); + ЮТСобытияСлужебный.УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыТестирования); + + Возврат ПараметрыТестирования; + +КонецФункции + Функция КлючЗапуска() Экспорт Возврат "RunUnitTests"; diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index bc9536b07..434a8b029 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -555,7 +555,7 @@ Процедура ЗагрузитьТесты() Если ПараметрыЗапускаТестирования = Неопределено Тогда - ПараметрыЗапускаТестирования = ЮТФабрика.ПараметрыЗапуска(); + ПараметрыЗапускаТестирования = ЮТПараметрыЗапускаСлужебный.ПараметрыТестированияПоУмолчанию(); КонецЕсли; Обработчик = Новый ОписаниеОповещения("ПослеЗагрузкиТестов", ЭтотОбъект, ПараметрыЗапускаТестирования); @@ -868,7 +868,7 @@ &НаКлиенте Функция ПараметрыЗапуска() - ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска(); + ПараметрыЗапуска = ЮТПараметрыЗапускаСлужебный.ПараметрыТестированияПоУмолчанию(); ПараметрыЗапуска.closeAfterTests = Ложь; ПараметрыЗапуска.showReport = Ложь; ПараметрыЗапуска.ВыполнятьМодульноеТестирование = Истина; From 4f277460211f89d5c1eede0e734b5e05cbb9933f Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 9 Dec 2024 18:13:40 +0300 Subject: [PATCH 49/56] =?UTF-8?q?feat:=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2=20=D0=BF=D0=BE?= =?UTF-8?q?=20=D1=83=D0=BC=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index ee05da949..35af5861a 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -37,19 +37,13 @@ Элементы.УровеньЛога.СписокВыбора.Добавить(УровеньЛог.Значение, УровеньЛог.Ключ); КонецЦикла; - Конфигурация = ЮТФабрика.ПараметрыЗапуска(); - ФорматОтчета = Конфигурация.reportFormat; - УровеньЛога = Конфигурация.logging.level; - ОтобразитьОтчет = Конфигурация.showReport; - ЗакрытьПослеТестирования = Конфигурация.closeAfterTests; - КаталогПроекта = Конфигурация.projectPath; - ЛогированиеВКонсоль = Конфигурация.logging.console; - КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) + УстановитьПараметрыПоУмолчанию(); + Обработчик = Новый ОписаниеОповещения("ОтобразитьДеревоТестов", ЭтотОбъект); ЮТИсполнительСлужебныйКлиент.ЗагрузитьЗарегистрированныеТесты(ЮТФабрика.ПараметрыЗапуска(), Обработчик); @@ -443,7 +437,7 @@ #Если ВебКлиент Тогда ВызватьИсключение "Сохранение конфигурации из веб-клиента не поддерживается"; #Иначе - Конфигурация = ЮТФабрика.ПараметрыЗапуска(); + Конфигурация = ЮТПараметрыЗапускаСлужебный.ПараметрыТестированияПоУмолчанию(); Конфигурация.Удалить("ВыполнятьМодульноеТестирование"); Конфигурация.showReport = ОтобразитьОтчет; @@ -579,4 +573,17 @@ КонецПроцедуры +&НаКлиенте +Процедура УстановитьПараметрыПоУмолчанию() + + Конфигурация = ЮТПараметрыЗапускаСлужебный.ПараметрыТестированияПоУмолчанию(); + ФорматОтчета = Конфигурация.reportFormat; + УровеньЛога = Конфигурация.logging.level; + ОтобразитьОтчет = Конфигурация.showReport; + ЗакрытьПослеТестирования = Конфигурация.closeAfterTests; + КаталогПроекта = Конфигурация.projectPath; + ЛогированиеВКонсоль = Конфигурация.logging.console; + +КонецПроцедуры + #КонецОбласти From 7db6de0ccbed1bb24d8ac2db0919b3420ab6484e Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 9 Dec 2024 18:13:57 +0300 Subject: [PATCH 50/56] =?UTF-8?q?test:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D1=82=D0=B5=D1=81=D1=82=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B0=D0=BD=D0=B3=D0=BB=20=D0=BB=D0=BE=D0=BA?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" index 396bf34c2..1050d0732 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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/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\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262/Module.bsl" @@ -185,9 +185,12 @@ Варианты = ЮТКонструкторВариантов.Варианты("Р1, Р2, Р3"); + ТекстИсключения = СтрШаблон("Некорректный тип параметра `ЗначенияПараметра2` метода `ДобавитьКомбинации`. Метод принимает `%1`, а получили `%2`", + Тип("Массив"), + Тип("Число")); ЮТест.ОжидаетЧто(Варианты) .Метод("ДобавитьКомбинации", ЮТКоллекции.ЗначениеВМассиве(Новый Массив, 2, 3)) - .ВыбрасываетИсключение("Некорректный тип параметра `ЗначенияПараметра2` метода `ДобавитьКомбинации`. Метод принимает `Массив`, а получили `Число`") + .ВыбрасываетИсключение(ТекстИсключения) ; КонецПроцедуры From 86ff5df43e4f164b41503bec98fc1360ea78913a Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 9 Dec 2024 14:11:06 +0300 Subject: [PATCH 51/56] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 30 +++++++++++++++++++ .../Module.bsl" | 13 ++++++++ 2 files changed, 43 insertions(+) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index e92ca3a95..f9d63b2d8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -39,6 +39,7 @@ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПроверкиСуществования"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПроверкиКаталога"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРезультатовПоиска"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПереместитьФайлы"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПеремещения"); ПараметрыИсполнения.Цепочка.Добавить(Обработчик); @@ -83,6 +84,13 @@ Возврат; КонецЕсли; + ПараметрыПроверки = Новый Структура("Файлы, Индекс, Параметры", НайденныеФайлы, НайденныеФайлы.ВГраница(), Параметры); + ИсключитьКаталоги(Неопределено, ПараметрыПроверки); + +КонецПроцедуры + +Процедура ОбработчикПереместитьФайлы(НайденныеФайлы, Параметры) Экспорт + ФайлыДляПеремещения = Новый Массив(); Для Каждого Файл Из НайденныеФайлы Цикл @@ -94,6 +102,28 @@ КонецПроцедуры +Процедура ИсключитьКаталоги(ЭтоКаталог, ПараметрыПроверки) Экспорт + + Если ЭтоКаталог <> Неопределено Тогда + + Если ЭтоКаталог Тогда + ПараметрыПроверки.Файлы.Удалить(ПараметрыПроверки.Индекс); + КонецЕсли; + ПараметрыПроверки.Индекс = ПараметрыПроверки.Индекс - 1; + + КонецЕсли; + + Если ПараметрыПроверки.Индекс < 0 Тогда + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыПроверки.Параметры, ПараметрыПроверки.Файлы); + Возврат; + КонецЕсли; + + Файл = ПараметрыПроверки.Файлы[ПараметрыПроверки.Индекс]; + Обработчик = Новый ОписаниеОповещения("ИсключитьКаталоги", ЭтотОбъект, ПараметрыПроверки); + ЮТФайлы.ЭтоКаталог(Файл.ПолноеИмя, Обработчик); + +КонецПроцедуры + Процедура ОбработчикПеремещения(ПомещенныеФайлы, Параметры) Экспорт Если НЕ ЗначениеЗаполнено(ПомещенныеФайлы) Тогда diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index de62d74f8..b3bad67c6 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -25,6 +25,7 @@ .ДобавитьТест("ДанныеЗависимости").ЗависитОт().ФайлыПроекта(".gitignore") .ДобавитьТест("ДанныеЗависимости_Каталог").ЗависитОт().ФайлыПроекта(".github") .ДобавитьТест("ДанныеЗависимости_НеизвестныйФайл").ЗависитОт().ФайлыПроекта("НеизвестныйФайл") + .ДобавитьТест("ДанныеЗависимости_ВложенныеКаталоги").ЗависитОт().ФайлыПроекта("fixtures/ВложенныеКаталоги") .ДобавитьСерверныйТест("ФабрикаJUnit").ЗависитОт().ФабрикаXDTO("fixtures/junit") ; @@ -89,6 +90,18 @@ КонецПроцедуры +Процедура ДанныеЗависимости_ВложенныеКаталоги() Экспорт + + ПолноеИмя = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта("fixtures/ВложенныеКаталоги")).ПолноеИмя; + ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмя), "Каталог проекта не доступен: " + ПолноеИмя) + .ЭтоИстина(); + + ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ЮТФайлы.ОбъединитьПути(ПолноеИмя, "1.txt")), "Не найден файл 1.txt") + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ЮТФайлы.ОбъединитьПути(ПолноеИмя, "Каталог", "2.txt")), "Не найден файл 2.txt") + .ЭтоИстина(); +КонецПроцедуры + Процедура ФабрикаJUnit() Экспорт Фабрика = ЮТест.Зависимость(ЮТЗависимости.ФабрикаXDTO("fixtures/junit")).Фабрика; From 6d18814b551b0507d4d7ed7e1dda0c09217597fd Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 9 Dec 2024 15:01:26 +0300 Subject: [PATCH 52/56] =?UTF-8?q?feat:=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B0=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC?= =?UTF-8?q?=20=D1=84=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 3 ++- .../Module.bsl" | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 00edf3a87..358a7300b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -70,7 +70,8 @@ Идентификатор = ВРег(ОписаниеЗависимости.Идентификатор); Если ЗначениеЗаполнено(ОписаниеЗависимости.Параметры) Тогда - Возврат ЮТОбщий.СтрокаJSON(Новый Структура("Идентификатор, Параметры", Идентификатор, ОписаниеЗависимости.Параметры)); + ДанныеКлюча = Новый Структура("Идентификатор, Параметры", Идентификатор, ОписаниеЗависимости.Параметры); + Возврат ЮТОбщий.СтрокаJSON(ДанныеКлюча, , Истина); Иначе Возврат Идентификатор; КонецЕсли; 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 335d8fab5..4d771bec1 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" @@ -229,13 +229,20 @@ КонецПроцедуры -Функция СтрокаJSON(Значение, ИспользоватьСериализатор = Истина) Экспорт +Функция СтрокаJSON(Значение, ИспользоватьСериализатор = Истина, Однострочный = Ложь) Экспорт #Если ВебКлиент Тогда ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.СтрокаJSON"); #Иначе ЗаписьJSON = Новый ЗаписьJSON(); - ЗаписьJSON.УстановитьСтроку(); + + ПараметрыЗаписи = Неопределено; + + Если Однострочный Тогда + ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет); + КонецЕсли; + + ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписи); Если ИспользоватьСериализатор Тогда //@skip-check undefined-variable СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Значение); From bf60ac3fb0d36782b8825942bdaa5eaf827aa8bb Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 9 Dec 2024 18:59:14 +0300 Subject: [PATCH 53/56] =?UTF-8?q?feat:=20#381=20=D1=83=D0=BD=D0=B8=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 142 +++++++++--------- .../Module.bsl" | 60 +------- 2 files changed, 78 insertions(+), 124 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 5b4be64ba..923febbfe 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -101,6 +101,10 @@ КонецПроцедуры +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция ПараметрыИсполнения() Экспорт Параметры = ЮТАсинхроннаяОбработкаСлужебныйКлиент.ЦепочкаАсинхроннойОбработки(); @@ -113,77 +117,6 @@ КонецФункции -Функция ВыполнитьТестыМодуля(ТестовыйМодуль) Экспорт - - Результаты = Новый Массив(); - - КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения(); - - КлиентскиеНаборы = Новый Массив(); - СерверныеНаборы = Новый Массив(); - ПропущенныеНаборы = Новый Массив(); - - ТестовыйМодульОблегченный = ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль); - ТестовыйМодульОблегченный.НаборыТестов = Новый Массив(); - - Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл - - Если НЕ Набор.Выполнять Тогда - ПропущенныеНаборы.Добавить(Набор); - Продолжить; - КонецЕсли; - - РежимИсполнения = ЮТФабрикаСлужебный.КонтекстИсполнения(Набор.Режим); - - Если РежимИсполнения = КонтекстыИсполнения.Клиент Тогда - КлиентскиеНаборы.Добавить(Набор); - ИначеЕсли РежимИсполнения = КонтекстыИсполнения.Сервер Тогда - ИдентификаторТестовогоНабора = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(ТестовыйМодуль, Набор); - СерверныеНаборы.Добавить(ИдентификаторТестовогоНабора); - Иначе - ПропущенныеНаборы.Добавить(Набор); - КонецЕсли; - - КонецЦикла; - - Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда - Результаты = ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный); - КонецЕсли; - - Если ЗначениеЗаполнено(СерверныеНаборы) Тогда - ИдентификаторТестовогоМодуля = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(ТестовыйМодуль); - Результат = ЮТИсполнительСлужебныйВызовСервера.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ИдентификаторТестовогоМодуля); - ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); - ЮТКоллекции.ДополнитьМассив(Результаты, Результат); - КонецЕсли; - - ЮТКоллекции.ДополнитьМассив(Результаты, ПропущенныеНаборы); - - ТестовыйМодульОблегченный.НаборыТестов = Результаты; - - Возврат ТестовыйМодульОблегченный; - -КонецФункции - -Процедура ОбработкаОшибки(ТекстОшибки) Экспорт - ВызватьИсключение ТекстОшибки; -КонецПроцедуры - -Процедура ВыполнитьИнициализацию(ПараметрыЗапуска) Экспорт - - ЮТЛогирование.Информация("Инициализация"); - ЮТКонтекстСлужебный.ИнициализироватьКонтекст(ПараметрыЗапуска); - ЮТСобытияСлужебный.Инициализация(ПараметрыЗапуска); - - // Повторно сохраним для передачи на сервер - ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения()); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - #Область ОбработчикиЦепочкиДействий Процедура ОбработчикОшибки(ИнформацияОбОшибке, СтандартнаяОбработка, ДополнительныеПараметры) Экспорт @@ -340,6 +273,10 @@ КонецПроцедуры +Процедура ОбработкаОшибки(ТекстОшибки) Экспорт + ВызватьИсключение ТекстОшибки; +КонецПроцедуры + #КонецОбласти Процедура ДобавитьОбработчикЦепочки(ПараметрыИсполнения, ИмяМетода) @@ -549,4 +486,67 @@ Возврат Результат; КонецФункции +Процедура ВыполнитьИнициализацию(ПараметрыЗапуска) + + ЮТЛогирование.Информация("Инициализация"); + ЮТКонтекстСлужебный.ИнициализироватьКонтекст(ПараметрыЗапуска); + ЮТСобытияСлужебный.Инициализация(ПараметрыЗапуска); + + // Повторно сохраним для передачи на сервер + ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения()); + +КонецПроцедуры + +Функция ВыполнитьТестыМодуля(ТестовыйМодуль) + + Результаты = Новый Массив(); + + КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения(); + + КлиентскиеНаборы = Новый Массив(); + СерверныеНаборы = Новый Массив(); + ПропущенныеНаборы = Новый Массив(); + + ТестовыйМодульОблегченный = ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль); + ТестовыйМодульОблегченный.НаборыТестов = Новый Массив(); + + Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл + + Если НЕ Набор.Выполнять Тогда + ПропущенныеНаборы.Добавить(Набор); + Продолжить; + КонецЕсли; + + РежимИсполнения = ЮТФабрикаСлужебный.КонтекстИсполнения(Набор.Режим); + + Если РежимИсполнения = КонтекстыИсполнения.Клиент Тогда + КлиентскиеНаборы.Добавить(Набор); + ИначеЕсли РежимИсполнения = КонтекстыИсполнения.Сервер Тогда + ИдентификаторТестовогоНабора = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(ТестовыйМодуль, Набор); + СерверныеНаборы.Добавить(ИдентификаторТестовогоНабора); + Иначе + ПропущенныеНаборы.Добавить(Набор); + КонецЕсли; + + КонецЦикла; + + Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда + Результаты = ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный); + КонецЕсли; + + Если ЗначениеЗаполнено(СерверныеНаборы) Тогда + ИдентификаторТестовогоМодуля = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(ТестовыйМодуль); + Результат = ЮТИсполнительСлужебныйВызовСервера.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ИдентификаторТестовогоМодуля); + ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); + ЮТКоллекции.ДополнитьМассив(Результаты, Результат); + КонецЕсли; + + ЮТКоллекции.ДополнитьМассив(Результаты, ПропущенныеНаборы); + + ТестовыйМодульОблегченный.НаборыТестов = Результаты; + + Возврат ТестовыйМодульОблегченный; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index 434a8b029..cd1a43de5 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -159,16 +159,7 @@ Процедура ЗапуститьВыделенныеТесты(Команда) Модули = ВыделенныеТестовыеМодули(); - Отказ = Ложь; - - ПередВыполнениемТестов(Модули, Отказ); - - Если Отказ Тогда - Возврат; - КонецЕсли; - - Обработчик = Новый ОписаниеОповещения("ПослеВыполненияВыделенныхМодулей", ЭтотОбъект); - ЮТИсполнительСлужебныйКлиент.ВыполнитьТестовыеМодули(ПараметрыЗапускаТестирования, Модули, Обработчик); + ВыполнитьТестовыеМодули(Модули); КонецПроцедуры @@ -669,53 +660,16 @@ &НаКлиенте Процедура ВыполнитьТестовыеМодули(Модули) - Если Модули.Количество() = 0 Тогда - ПоказатьПредупреждение( , "Нет тестов для запуска"); - Возврат; - КонецЕсли; - - ОповещениеПользователю("Прогон тестов", "Запушено выполнение тестов"); - - ЮТИсполнительСлужебныйКлиент.ВыполнитьИнициализацию(ПараметрыЗапускаТестирования); - ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(Модули); - ЮТИсполнительСлужебныйВызовСервера.СохранитьИнформациюОТестовыхСценариях(Модули); - Отказ = Ложь; - ЮТСобытияСлужебный.ПередВыполнениемТестов(Модули, Отказ); - - Если НЕ Отказ Тогда - - Для Каждого Модуль Из Модули Цикл - - СброситьСостояниеТестирования(Модуль); - - Результат = ЮТИсполнительСлужебныйКлиент.ВыполнитьТестыМодуля(Модуль); - - Для Каждого Набор Из Результат.НаборыТестов Цикл - - Для Каждого Тест Из Набор.Тесты Цикл - - Строка = ДеревоТестов.НайтиПоИдентификатору(Тест.Идентификатор); - ОтобразитьРезультатТеста(Строка, Тест, Набор); - - КонецЦикла; - - Строка = ДеревоТестов.НайтиПоИдентификатору(Набор.Идентификатор); - ЗаполнитьОшибки(Строка, Набор); - ОбновитьСтатистикуНабора(Строка); - - КонецЦикла; - - КонецЦикла; - - КонецЕсли; - ОбновитьОбщуюСтатистику(Ложь); + ПередВыполнениемТестов(Модули, Отказ); - ЮТКонтекстСлужебный.УдалитьКонтекст(); + Если Отказ Тогда + Возврат; + КонецЕсли; - ПриИзмененииТекущегоЭлементаДереваТестов(); - ОповещениеПользователю("Прогон тестов завершен", "Завершено выполнение тестов"); + Обработчик = Новый ОписаниеОповещения("ПослеВыполненияВыделенныхМодулей", ЭтотОбъект); + ЮТИсполнительСлужебныйКлиент.ВыполнитьТестовыеМодули(ПараметрыЗапускаТестирования, Модули, Обработчик); КонецПроцедуры From a05456313f69a8328d24ee501b3f15e1f96fb807 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 9 Dec 2024 19:23:14 +0300 Subject: [PATCH 54/56] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B5=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 59 ++++++++++++------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 923febbfe..b57fc011f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -499,7 +499,44 @@ Функция ВыполнитьТестыМодуля(ТестовыйМодуль) - Результаты = Новый Массив(); + Наборы = НаборыТестовПоКонтекстам(ТестовыйМодуль); + ТестовыйМодульОблегченный = ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль); + ТестовыйМодульОблегченный.НаборыТестов = Новый Массив(); + + РезультатыКлиентскихТестов = Неопределено; + РезультатыСерверныхТестов = Неопределено; + + Если ЗначениеЗаполнено(Наборы.Клиентские) Тогда + РезультатыКлиентскихТестов = ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы.Клиентские, + ТестовыйМодульОблегченный); + КонецЕсли; + + Если ЗначениеЗаполнено(Наборы.Серверные) Тогда + ИдентификаторТестовогоМодуля = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(ТестовыйМодуль); + РезультатыСерверныхТестов = ЮТИсполнительСлужебныйВызовСервера.ВыполнитьГруппуНаборовТестов(Наборы.Серверные, + ИдентификаторТестовогоМодуля); + ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); + КонецЕсли; + + Если ЗначениеЗаполнено(РезультатыКлиентскихТестов) Тогда + Результаты = РезультатыКлиентскихТестов; + Иначе + Результаты = Новый Массив(); + КонецЕсли; + + Если ЗначениеЗаполнено(РезультатыСерверныхТестов) Тогда + ЮТКоллекции.ДополнитьМассив(Результаты, РезультатыСерверныхТестов); + КонецЕсли; + + ЮТКоллекции.ДополнитьМассив(Результаты, Наборы.Пропущенные); + + ТестовыйМодульОблегченный.НаборыТестов = Результаты; + + Возврат ТестовыйМодульОблегченный; + +КонецФункции + +Функция НаборыТестовПоКонтекстам(ТестовыйМодуль) КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения(); @@ -507,9 +544,6 @@ СерверныеНаборы = Новый Массив(); ПропущенныеНаборы = Новый Массив(); - ТестовыйМодульОблегченный = ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль); - ТестовыйМодульОблегченный.НаборыТестов = Новый Массив(); - Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл Если НЕ Набор.Выполнять Тогда @@ -530,22 +564,7 @@ КонецЦикла; - Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда - Результаты = ЮТИсполнительСлужебныйКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный); - КонецЕсли; - - Если ЗначениеЗаполнено(СерверныеНаборы) Тогда - ИдентификаторТестовогоМодуля = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(ТестовыйМодуль); - Результат = ЮТИсполнительСлужебныйВызовСервера.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ИдентификаторТестовогоМодуля); - ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); - ЮТКоллекции.ДополнитьМассив(Результаты, Результат); - КонецЕсли; - - ЮТКоллекции.ДополнитьМассив(Результаты, ПропущенныеНаборы); - - ТестовыйМодульОблегченный.НаборыТестов = Результаты; - - Возврат ТестовыйМодульОблегченный; + Возврат Новый Структура("Серверные, Клиентские, Пропущенные", СерверныеНаборы, КлиентскиеНаборы, ПропущенныеНаборы); КонецФункции From 666eb7822f28853051d73820a67e685ef796b53e Mon Sep 17 00:00:00 2001 From: Alexandr Yang Date: Mon, 9 Dec 2024 21:59:23 +0500 Subject: [PATCH 55/56] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D0=BF=D1=80=D0=B8=D0=B2=D0=B5=D0=B4=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=B9=20?= =?UTF-8?q?=D0=BA=20=D0=BD=D0=B8=D0=B6=D0=BD=D0=B5=D0=BC=D1=83=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index b87f11eef..c1def6563 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -60,14 +60,14 @@ КонецЕсли; ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрЗапуска); - Возврат ПараметрыЗапускаПредприятия.Получить(КлючЗапуска()) <> Неопределено; + Возврат ПараметрыЗапускаПредприятия.Получить(КлючЗапускаНРег()) <> Неопределено; КонецФункции Функция ПараметрыЗапускаИзФайла(ИмяФайла, Обработчик) Экспорт Параметры = Новый Соответствие; - Параметры.Вставить(КлючЗапуска(), ИмяФайла); + Параметры.Вставить(КлючЗапускаНРег(), ИмяФайла); Возврат ПрочитатьПараметрыЗапуска(Параметры, Обработчик); КонецФункции @@ -75,7 +75,7 @@ Функция ФайлПараметровЗапускаТестирования() Экспорт ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрЗапуска); - ИмяФайла = ПараметрыЗапускаПредприятия.Получить(КлючЗапуска()); + ИмяФайла = ПараметрыЗапускаПредприятия.Получить(КлючЗапускаНРег()); Если ЗначениеЗаполнено(ИмяФайла) И ТипЗнч(ИмяФайла) = Тип("Строка") Тогда Возврат ИмяФайла; @@ -116,7 +116,7 @@ Функция ПереданныеПараметрыТестирования(ПараметрыЗапускаПредприятия) - ПараметрЗапускаТестов = ЮТКоллекции.ЗначениеСоответствия(ПараметрыЗапускаПредприятия, КлючЗапуска(), Ложь); + ПараметрЗапускаТестов = ЮТКоллекции.ЗначениеСоответствия(ПараметрыЗапускаПредприятия, КлючЗапускаНРег(), Ложь); ТипПараметра = ТипЗнч(ПараметрЗапускаТестов); @@ -155,11 +155,12 @@ КонецЕсли; КлючЗначение = ЮТСтроки.РазделитьСтроку(Пара, "="); + Ключ = НРег(КлючЗначение[0]); Если КлючЗначение.Количество() = 1 Тогда - ПараметрыЗапускаПредприятия.Вставить(КлючЗначение[0], Истина); + ПараметрыЗапускаПредприятия.Вставить(Ключ, Истина); Иначе - ПараметрыЗапускаПредприятия.Вставить(КлючЗначение[0], КлючЗначение[1]); + ПараметрыЗапускаПредприятия.Вставить(Ключ, КлючЗначение[1]); КонецЕсли; КонецЦикла; @@ -215,4 +216,10 @@ КонецПроцедуры +Функция КлючЗапускаНРег() + + Возврат НРег(КлючЗапуска()); + +КонецФункции + #КонецОбласти From 8b12403918a66daaea771e4c6f811da35cc2601f Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 9 Dec 2024 22:33:04 +0300 Subject: [PATCH 56/56] bump version --- exts/yaxunit/src/Configuration/Configuration.mdo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index edd30c12d..6ce6f36df 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -20,7 +20,7 @@ 8.3.10 AddOn Russian - 24.08.1 + 24.12 Русский Adopted