From 149385864bfbd73fa96388a6232fe01ebe5ea1f6 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Tue, 17 Dec 2019 09:35:07 +0300 Subject: [PATCH 01/60] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D1=81=D0=B8?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D0=BA=D1=81-=D0=BF=D1=80=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BA=D1=83=20+=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20=D0=B2=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=D0=B5=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 86 +++++++++++++++++++++++++++------------ examples/example.env.json | 14 +++++++ 2 files changed, 73 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 38fad04c..f5ebc48a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ Автоматизация повседневных операций 1С разработчика == - -[![Gitter](https://badges.gitter.im/silverbulleters/vanessa-runner.svg)](https://gitter.im/silverbulleters/vanessa-runner?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Build Status](http://ci.silverbulleters.org/buildStatus/icon?job=Vanessa-runner/master)](http://ci.silverbulleters.org/job/Vanessa-runner/job/master/) -[![SonarQube Tech Debt](https://img.shields.io/sonar/https/sonar.silverbulleters.org/vanessa-runner/tech_debt.svg)](https://sonar.silverbulleters.org/dashboard?id=vanessa-runner) -Описание +[![Gitter](https://badges.gitter.im/silverbulleters/vanessa-vrunner.svg)](https://gitter.im/silverbulleters/vanessa-vrunner?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Build Status](http://ci.silverbulleters.org/buildStatus/icon?job=Vanessa-vrunner/master)](http://ci.silverbulleters.org/job/Vanessa-vrunner/job/master/) +[![SonarQube Tech Debt](https://img.shields.io/sonar/https/sonar.silverbulleters.org/vanessa-vrunner/tech_debt.svg)](https://sonar.silverbulleters.org/dashboard?id=vanessa-vrunner) + +Описание === Консольное приложение проекта `oscript.io` для автоматизации различных операции для работы с `cf/cfe/epf` файлами, а также автоматизация запуска сценариев поведения (BDD) и тестов из фреймворка [Vanessa-ADD](https://github.com/silverbulleters/add). @@ -20,12 +20,12 @@ используйте пакетный менеджер `opm` из стандартной поставки дистрибутива `oscript.io` ```cmd -opm install vanessa-runner +opm install vanessa-vrunner ``` -при установке будет создан исполняемый файл `runner` в каталоге `bin` интерпретатора `oscript`. +при установке будет создан исполняемый файл `vrunner` в каталоге `bin` интерпретатора `oscript`. -После чего доступно выполнение команд через командную строку `runner <имя команды>` +После чего доступно выполнение команд через командную строку `vrunner <имя команды>` Использование @@ -34,12 +34,12 @@ opm install vanessa-runner Ключ `help` покажет справку по параметрам. ```cmd -runner help +vrunner help ``` или внутри батника (**ВАЖНО**) через `call` ```cmd -call runner help +call vrunner help ``` Основной принцип - запустили bat файл с настроенными командами и получили результат. @@ -52,7 +52,7 @@ call runner help В командной строке нужно перейти в каталог с проектом и выполнить ```tools\compile_epf.bat```, по окончанию в каталоге build\epf должны появиться обработки. Вся разработка в конфигураторе делается в каталоге build, по окончанию доработок запускаем ```tools\decompile_epf.bat``` -Обязательно наличие установленного v8unpack версии не ниже 3.0.38 в переменной PATH. +Обязательно наличие установленного v8unpack версии не ниже 3.0.38 в переменной PATH. - Установку можно взять в релизах утилиты - https://github.com/e8tools/v8unpack/releases - Подробнее про утилиту v8unpack - https://github.com/e8tools/v8unpack @@ -63,7 +63,8 @@ call runner help `1с-init.cmd` : -```cmd + +```bat @rem Полная инициализация из репозитария, обновление в режиме Предприятия и начальное заполнение ИБ ./build/ibservice @rem Пример запуска 1с-init.cmd storage-user storage-password @@ -72,21 +73,21 @@ call runner help @set RUNNER_IBNAME=/F./build/ibservice -@call runner init-dev --storage --storage-name http:/repo-1c --storage-user %1 --storage-pwd %2 +@call vrunner init-dev --storage --storage-name http:/repo-1c --storage-user %1 --storage-pwd %2 -@call runner run --command "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы;" --execute $runnerRoot\epf\ЗакрытьПредприятие.epf +@call vrunner run --command "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы;" --execute $runnerRoot\epf\ЗакрытьПредприятие.epf -@call runner vanessa --settings tools/vrunner.first.json +@call vrunner vanessa --settings tools/vrunner.first.json @rem Если убрать комментарий из последней строки, тогда можно выполнять полный прогон bdd-фич -@rem @call runner vanessa --settings tools/vrunner.json +@rem @call vrunner vanessa --settings tools/vrunner.json ``` ### 2. Вызов проверки поведения через Vanessa-ADD -+ запуск `runner vanessa --settings tools/vrunner.json` - + или внутри батника - + `call runner vanessa --settings tools/vrunner.json` ++ запуск `vrunner vanessa --settings tools/vrunner.json` + + или внутри батника + + `call vrunner vanessa --settings tools/vrunner.json` + vrunner.json: @@ -135,10 +136,10 @@ call runner help ### 3. Переопределение аргументов запуска -В случае необходимости переопределения параметров запуска используется схема приоритетов. +В случае необходимости переопределения параметров запуска используется схема приоритетов. Приоритет в порядке возрастания (от минимального до максимального приоритета) -+ `env.json (в корне проекта)` ++ `env.json (в корне проекта)` + `--settings ../env.json (указание файла настроек вручную)` + `RUNNER_* (из переменных окружения)` + `--* (ключи командной строки)` @@ -157,15 +158,15 @@ call runner help ```json "--db-user":"Администратор" ``` - а нам для определенного случая надо переопределить имя пользователя, + а нам для определенного случая надо переопределить имя пользователя, тогда можно установить переменную: ```set RUNNER_DBUSER=Иванов``` и в данный параметр будет передано значение `Иванов` - 2. Очистка значения после установки + 2. Очистка значения после установки ```cmd set RUNNER_DBUSER=Иванов set RUNNER_DBUSER= ``` - в данном случае установлено полностью пустое значение и имя пользователя будет взято из tools/vrunner.json, если оно там есть. + в данном случае установлено полностью пустое значение и имя пользователя будет взято из tools/vrunner.json, если оно там есть. 3. Установка пустого значения: ```cmd @@ -173,9 +174,9 @@ call runner help set RUNNER_DBUSER='' ``` - Если необходимо установить в поле пустое значение, тогда указываем кавычки и в параметр `--db-user` будет установлена пустая строка. + Если необходимо установить в поле пустое значение, тогда указываем кавычки и в параметр `--db-user` будет установлена пустая строка. - 4. Переопределение через параметры командной строки. + 4. Переопределение через параметры командной строки. Любое указание параметра в командной строке имеет наивысший приоритет. @@ -185,7 +186,7 @@ call runner help Список таких переменных: + workspaceRoot - означает каталог текущего проекта -+ runnerRoot - означает каталог установки vanessa-runner ++ runnerRoot - означает каталог установки vanessa-vrunner + addRoot - означает каталог установки библиотеки ADD Вывод отладочной информации @@ -193,7 +194,7 @@ call runner help Управление выводом логов выполняется с помощью типовой для oscript-library настройки логирования через пакет logos. -Основной лог vanessa-runner имеет название ``oscript.app.vanessa-runner``. +Основной лог vanessa-vrunner имеет название ``oscript.app.vanessa-vrunner``. ## Примеры @@ -226,3 +227,34 @@ call vrunner <параметры запуска> + **ЗагрузитьРасширение** позволяет подключать расширение в режиме предприятия и получать результат ошибки. Предназначено для подключения в конфигурациях, основанных на БСП. В параметрах /C передается путь к расширению и путь к файлу лога подключения. + **ЗагрузитьВнешниеОбработки** позволяет загрузить все внешние обработки и подключить в справочник "Дополнительные отчеты и обработки", т.к. их очень много то первым параметром идет каталог, вторым параметром путь к файлу лога. Все обработки обновляются согласно версиям. + +## Дополнительная настройка различных команд + +### Настройка синтаксической проверки + +Для управления режима синтаксической проверки рекомендуется использовать json-файл настройки. +Для его использования нужно +- установить путь к нему в параметре `VRUNNER_CONF` +- внутри json-файла нужно добавить секцию `syntax-check` +- список всех используемых параметров можно уточнить, выполнив команду `vrunner help syntax-check` +- ссылка на подготовленный файл [examples\example.env.json](./examples/example.env.json) + +Пример настройки +```json +{ + "syntax-check": { + "--groupbymetadata":true, + "--exception-file":"", + "--mode": [ + "-ExtendedModulesCheck", + "-ThinClient", + "-WebClient", + "-Server", + "-ExternalConnection", + "-ThickClientOrdinaryApplication" + ] + // "-Extension" : "ИмяРасширения", + // "-AllExtensions" : true + } +} +``` diff --git a/examples/example.env.json b/examples/example.env.json index 7df01db1..f8aac01a 100644 --- a/examples/example.env.json +++ b/examples/example.env.json @@ -16,6 +16,20 @@ "--pathvanessa":"d:/git/vanessa/build/out/epf/vanessa-behavior.epf", "--additional":"/DisplayAllFunctions /L uk" }, + "syntax-check": { + "--groupbymetadata":true, + "--exception-file":"", + "--mode": [ + "-ExtendedModulesCheck", + "-ThinClient", + "-WebClient", + "-Server", + "-ExternalConnection", + "-ThickClientOrdinaryApplication" + ] + // "-Extension" : "ИмяРасширения", + // "-AllExtensions" : true + }, "compile":{ "inputPath":"./cf", "outputPath":"./build/1Cv8.cf" From a8a3c531d18bc5ecef607da53db6585589d9da21 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Tue, 17 Dec 2019 11:01:08 +0300 Subject: [PATCH 02/60] =?UTF-8?q?=D0=9A=D0=BB=D1=8E=D1=87=D0=B8=20-v1=20?= =?UTF-8?q?=D0=B8=20-v2=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D0=BD=D0=B4=D1=8B=20init-dev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\320\265\320\275\320\270\321\217.feature" | 23 ++-- ...20\266\320\265\320\275\320\270\321\217.os" | 104 +++++++++++------- ...21\206\320\270\320\270\320\221\320\224.os" | 22 +--- ...20\265\321\202\320\276\320\264\321\213.os" | 31 ++++++ 4 files changed, 111 insertions(+), 69 deletions(-) diff --git "a/features/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" "b/features/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" index 19fbff05..b058c4fd 100644 --- "a/features/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" +++ "b/features/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" @@ -78,11 +78,18 @@ И В списке баз есть база по пути "<РабочийКаталог>/./build/ib" И В списке баз нахожу базу для проекта "<РабочийКаталог>" - Сценарий: Инициализация рабочей базы по умолчанию с en языком в ./build/ib - Когда Я сохраняю каталог проекта в контекст - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language en" - И Я сообщаю вывод команды "oscript" - Тогда Вывод команды "oscript" содержит "Database configuration successfully updated" - И Код возврата команды "oscript" равен 0 - И Файл "build/ib/1Cv8.1CD" существует - И Файл "build/ibservice/1Cv8.1CD" не существует +Сценарий: Инициализация рабочей базы по умолчанию с en языком в ./build/ib + Когда Я сохраняю каталог проекта в контекст + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language en" + И Я сообщаю вывод команды "oscript" + Тогда Вывод команды "oscript" содержит "Database configuration successfully updated" + И Код возврата команды "oscript" равен 0 + И Файл "build/ib/1Cv8.1CD" существует + И Файл "build/ibservice/1Cv8.1CD" не существует + +Сценарий: Обновление dev-базы ./build/ibservice на сервере в режиме реструктуризации -v2 + Когда Я сохраняю каталог проекта в контекст + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --dev --v2" + И Я сообщаю вывод команды "oscript" + Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" + И Код возврата команды "oscript" равен 0 diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index aec4727b..c526a8d6 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -2,7 +2,7 @@ // // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////// @@ -19,11 +19,11 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Инициализация базы данных для выполнения необходимых тестов."; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); - + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src", "Путь к папке исходников | |Схема работы: @@ -31,21 +31,26 @@ | указываем версию платформы, которую хотим использовать, | и получаем по пути build\ib готовую базу для тестирования."); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--dt", "Путь к файлу с dt выгрузкой"); - Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev", + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev", "Признак dev режима, создаем и загружаем автоматом структуру конфигурации"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--storage", "Признак обновления из хранилища"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-name", "Строка подключения к хранилищу"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-ver", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-ver", "Номер версии, по умолчанию берем последнюю"); - + + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--v1", + "Поддержка режима реструктуризации -v1 на сервере"); + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--v2", + "Поддержка режима реструктуризации -v2 на сервере"); + Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -57,29 +62,47 @@ ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; - ИнициализироватьБазуДанных(ПараметрыКоманды["--src"], ПараметрыКоманды["--dt"], - ДанныеПодключения.ПутьБазы, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, - ПараметрыКоманды["--uccode"], - ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], ПараметрыКоманды["--storage"], - ПараметрыКоманды["--storage-name"], ПараметрыКоманды["--storage-user"], ПараметрыКоманды["--storage-pwd"], - ПараметрыКоманды["--storage-ver"], ПараметрыКоманды["--nocacheuse"], ДанныеПодключения.КодЯзыка); + ПараметрыХранилища = Новый Структура; + + ПараметрыХранилища.Вставить("СтрокаПодключения", ПараметрыКоманды["--storage-name"]); + ПараметрыХранилища.Вставить("Пользователь", ПараметрыКоманды["--storage-user"]); + ПараметрыХранилища.Вставить("Пароль", ПараметрыКоманды["--storage-pwd"]); + ПараметрыХранилища.Вставить("Версия", ПараметрыКоманды["--storage-ver"]); + ПараметрыХранилища.Вставить("РежимОбновления", ПараметрыКоманды["--storage"]); + + РежимыРеструктуризации = Новый Структура; + РежимыРеструктуризации.Вставить("Первый", ПараметрыКоманды["--v1"]); + РежимыРеструктуризации.Вставить("Второй", ПараметрыКоманды["--v2"]); + + ИнициализироватьБазуДанных(РежимыРеструктуризации, ПараметрыКоманды["--src"], ПараметрыКоманды["--dt"], + ДанныеПодключения, ПараметрыКоманды["--uccode"], + ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], + ПараметрыХранилища, + ПараметрыКоманды["--nocacheuse"], ДанныеПодключения.КодЯзыка); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду -Процедура ИнициализироватьБазуДанных(Знач ПутьКSRC="", Знач ПутьКDT="", Знач СтрокаПодключения="", - Знач Пользователь="", Знач Пароль="", - Знач КлючРазрешенияЗапуска = "", Знач ВерсияПлатформы="", Знач РежимРазработчика = Ложь, - Знач РежимОбновленияХранилища = Ложь, Знач СтрокаПодключенияХранилище = "", - Знач ПользовательХранилища="", Знач ПарольХранилища="", - Знач ВерсияХранилища="", Знач НеДобавлятьВСписокБаз = Ложь, Знач КодЯзыка = "") +Процедура ИнициализироватьБазуДанных(РежимыРеструктуризации, Знач ПутьКSRC, Знач ПутьКDT, Знач ДанныеПодключения, + Знач КлючРазрешенияЗапуска, Знач ВерсияПлатформы, Знач РежимРазработчика, + Знач ПараметрыХранилища, Знач НеДобавлятьВСписокБаз, Знач КодЯзыка) Перем БазуСоздавали; - БазуСоздавали = Ложь; + БазуСоздавали = Ложь; ТекущаяПроцедура = "Запускаем инициализацию"; + СтрокаПодключения = ДанныеПодключения.ПутьБазы; + Пользователь = ДанныеПодключения.Пользователь; + Пароль = ДанныеПодключения.Пароль; + + СтрокаПодключенияХранилище = ПараметрыХранилища.СтрокаПодключения; + ПользовательХранилища = ПараметрыХранилища.Пользователь; + ПарольХранилища = ПараметрыХранилища.Пароль; + ВерсияХранилища = ПараметрыХранилища.Версия; + РежимОбновленияХранилища = ПараметрыХранилища.РежимОбновления; + МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - + Логирование.ПолучитьЛог("oscript.lib.v8runner").УстановитьУровень(Лог.Уровень()); Если ПустаяСтрока(СтрокаПодключения) Тогда @@ -95,7 +118,7 @@ Лог.Отладка("Нашли каталог базы для удаления <%1> ", КаталогБазы); ФайлБазы = Новый Файл(КаталогБазы); - Если ФайлБазы.Существует() Тогда + Если ФайлБазы.Существует() Тогда Лог.Отладка("Удаляем файл "+ФайлБазы.ПолноеИмя); УдалитьФайлы(ФайлБазы.ПолноеИмя, ПолучитьМаскуВсеФайлы()); КонецЕсли; @@ -105,7 +128,7 @@ ВерсияПлатформы, КлючРазрешенияЗапуска, КодЯзыка ); - + Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором(); СоздатьФайловуюБазу(Конфигуратор, ФайлБазы.ПолноеИмя); БазуСоздавали = Истина; @@ -118,14 +141,14 @@ ВерсияПлатформы, КлючРазрешенияЗапуска, КодЯзыка ); - + Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором(); Конфигуратор.УстановитьИмяФайлаСообщенийПлатформы(ПолучитьИмяВременногоФайла("log")); Если Не ПустаяСтрока(ПутьКDT) Тогда ПутьКDT = Новый Файл(ОбъединитьПути(КорневойПутьПроекта, ПутьКDT)).ПолноеИмя; Лог.Информация("Загружаем dt "+ ПутьКDT); - Если БазуСоздавали = Истина Тогда - Попытка + Если БазуСоздавали = Истина Тогда + Попытка Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); Исключение Лог.Ошибка("Не удалось загрузить:"+ОписаниеОшибки()); @@ -133,7 +156,7 @@ Иначе Попытка Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); - Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); + Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); Исключение Лог.Ошибка("Не удалось загрузить:"+ОписаниеОшибки()); КонецПопытки; @@ -148,7 +171,7 @@ Иначе Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); КонецЕсли; - + Если Не ПустаяСтрока(ПутьКSRC) Тогда Лог.Информация("Запускаю загрузку конфигурации из исходников"); @@ -163,12 +186,13 @@ Если РежимОбновленияХранилища = Истина Тогда Лог.Информация("Обновляем из хранилища"); МенеджерКонфигуратора.ЗапуститьОбновлениеИзХранилища( - СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, + СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, ВерсияХранилища); КонецЕсли; - Если РежимРазработчика = Ложь Тогда - МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанных(); + Если РежимРазработчика = Ложь Или РежимыРеструктуризации.Первый Или РежимыРеструктуризации.Второй Тогда + ОбщиеМетоды.ОбновитьКонфигурациюБД(МенеджерКонфигуратора, + РежимыРеструктуризации.Первый, РежимыРеструктуризации.Второй); КонецЕсли; Исключение МенеджерКонфигуратора.Деструктор(); @@ -182,7 +206,7 @@ ДопДанныеСпискаБаз = Новый Структура; ДопДанныеСпискаБаз.Вставить("RootPath", КорневойПутьПроекта); Попытка - Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда + Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда ДопДанныеСпискаБаз.Вставить("Version", ВерсияПлатформы); КонецЕсли; МенеджерСпискаБаз.ДобавитьБазуВСписокБаз(СтрокаПодключения, @@ -195,7 +219,7 @@ КонецЕсли; Лог.Информация("Инициализация завершена"); - + КонецПроцедуры //ИнициализироватьБазуДанных Процедура СоздатьФайловуюБазу(Конфигуратор, Знач КаталогБазы, Знач ПутьКШаблону="", @@ -212,7 +236,7 @@ Если ЗначениеЗаполнено(КодЯзыка) Тогда ПараметрыЗапуска.Добавить("/L"+СокрЛП(КодЯзыка)); КонецЕсли; - + Если ИмяБазыВСписке <> "" Тогда ПараметрыЗапуска.Добавить("/AddInList"""+ ИмяБазыВСписке + """"); КонецЕсли; @@ -227,21 +251,21 @@ Приложение = ""; Приложение = Конфигуратор.ПутьКПлатформе1С(); - Если Найти(Приложение, " ") > 0 Тогда + Если Найти(Приложение, " ") > 0 Тогда Приложение = ОбщиеМетоды.ОбернутьПутьВКавычки(Приложение); КонецЕсли; Приложение = Приложение + " "+СтрокаЗапуска; Попытка - ОбщиеМетоды.ЗапуститьПроцесс(Приложение); + ОбщиеМетоды.ЗапуститьПроцесс(Приложение); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; РезультатСообщение = ОбщиеМетоды.ПрочитатьФайлИнформации(Конфигуратор.ФайлИнформации()); - Если НЕ (СтрНайти(РезультатСообщение, "успешно завершено") = 0 + Если НЕ (СтрНайти(РезультатСообщение, "успешно завершено") = 0 ИЛИ СтрНайти(РезультатСообщение, "completed successfully") = 0) Тогда - ВызватьИсключение "Результат работы не успешен: " + Символы.ПС + РезультатСообщение; - + ВызватьИсключение "Результат работы не успешен: " + Символы.ПС + РезультатСообщение; + КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\224.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\224.os" index 5aabc7ad..0484cbb8 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\224.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\224.os" @@ -52,27 +52,7 @@ РежимРеструктуризации_В1 = ПараметрыКоманды["--v1"]; РежимРеструктуризации_В2 = ПараметрыКоманды["--v2"]; - РеструктуризацияНаСервере = РежимРеструктуризации_В1 Или РежимРеструктуризации_В2; - - Попытка - Если РеструктуризацияНаСервере Тогда - РежимРеструктуризации = Неопределено; - УправлениеКонфигуратором = Новый УправлениеКонфигуратором(); - РежимыРеструктуризации = УправлениеКонфигуратором.РежимыРеструктуризации(); - - Если РежимРеструктуризации_В2 Тогда - РежимРеструктуризации = РежимыРеструктуризации.Второй; - ИначеЕсли РежимРеструктуризации_В1 Тогда - РежимРеструктуризации = РежимыРеструктуризации.Первый; - КонецЕсли; - МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанныхНаСервере(РежимРеструктуризации); - Иначе - МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанных(); - КонецЕсли; - Исключение - МенеджерКонфигуратора.Деструктор(); - ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; + ОбщиеМетоды.ОбновитьКонфигурациюБД(МенеджерКонфигуратора, РежимРеструктуризации_В1, РежимРеструктуризации_В2); МенеджерКонфигуратора.Деструктор(); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index 7769ec61..62d187b6 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -403,5 +403,36 @@ КонецЕсли; КонецПроцедуры +// Обновить конфигурацию БД с учетом различных режимов реструктуризации +// +// Параметры: +// МенеджерКонфигуратора - МенеджерКонфигуратора - +// Первый - Булево - включен или нет +// Второй - Булево - включен или нет +// +Процедура ОбновитьКонфигурациюБД(МенеджерКонфигуратора, Первый, Второй) Экспорт + РеструктуризацияНаСервере = Первый Или Второй; + + Попытка + Если РеструктуризацияНаСервере Тогда + РежимРеструктуризации = Неопределено; + УправлениеКонфигуратором = Новый УправлениеКонфигуратором(); + РежимыРеструктуризации = УправлениеКонфигуратором.РежимыРеструктуризации(); + + Если Второй Тогда + РежимРеструктуризации = РежимыРеструктуризации.Второй; + ИначеЕсли Первый Тогда + РежимРеструктуризации = РежимыРеструктуризации.Первый; + КонецЕсли; + МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанныхНаСервере(РежимРеструктуризации); + Иначе + МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанных(); + КонецЕсли; + Исключение + МенеджерКонфигуратора.Деструктор(); + ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + +КонецПроцедуры // из-за особенностей загрузки модуль ОбщиеМетоды грузится раньше ПараметрыСистемы, //поэтому сразу в конце кода модуля использовать ПараметрыСистемы нельзя From 2204d208f6b5d0936a46b1d86d42b22d72aed43c Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Tue, 17 Dec 2019 11:08:28 +0300 Subject: [PATCH 03/60] =?UTF-8?q?=D0=9A=D0=BB=D1=8E=D1=87=D0=B8=20-v1=20?= =?UTF-8?q?=D0=B8=20-v2=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D0=BD=D0=B4=D1=8B=20update-dev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\320\265\320\275\320\270\321\217.feature" | 12 ++- ...20\266\320\265\320\275\320\270\321\217.os" | 1 - ...20\266\320\265\320\275\320\270\321\217.os" | 78 +++++++++++++------ 3 files changed, 67 insertions(+), 24 deletions(-) diff --git "a/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" "b/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" index f121432c..8b0d8fcd 100644 --- "a/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" +++ "b/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" @@ -17,7 +17,7 @@ И Я установил рабочий каталог как текущий каталог -Сценарий: Инициализация рабочей базы по умолчанию в ./build/ib +Сценарий: Инициализация и обновление рабочей базы по умолчанию в ./build/ib Когда Я сохраняю каталог проекта в контекст Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" И Я очищаю параметры команды "oscript" в контексте @@ -27,6 +27,16 @@ Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" И Код возврата команды "oscript" равен 0 +Сценарий: Инициализация и обновление рабочей базы на сервере в режиме реструктуризации -v2 + Когда Я сохраняю каталог проекта в контекст + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" + И Я очищаю параметры команды "oscript" в контексте + + Тогда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os update-dev --src ./cf --nocacheuse --v2" + И Я сообщаю вывод команды "oscript" + Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" + И Код возврата команды "oscript" равен 0 + # TODO Сценарий: Инициализация сервисной базы по умолчанию в ./build/ibservice # TODO Сценарий: Инициализация рабочей базы в отдельном каталоге # TODO Сценарий: Инициализация сервисной базы в отдельном каталоге diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index c526a8d6..d49f97a5 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -63,7 +63,6 @@ ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; ПараметрыХранилища = Новый Структура; - ПараметрыХранилища.Вставить("СтрокаПодключения", ПараметрыКоманды["--storage-name"]); ПараметрыХранилища.Вставить("Пользователь", ПараметрыКоманды["--storage-user"]); ПараметрыХранилища.Вставить("Пароль", ПараметрыКоманды["--storage-pwd"]); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index 864a6226..6405d740 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -37,6 +37,11 @@ Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-ver", "Номер версии, по умолчанию берем последнюю"); + + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--v1", + "Поддержка режима реструктуризации -v1 на сервере"); + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--v2", + "Поддержка режима реструктуризации -v2 на сервере"); Парсер.ДобавитьКоманду(ОписаниеКоманды); @@ -54,30 +59,49 @@ КорневойПутьПроекта = ПараметрыСистемы.КорневойПутьПроекта; ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; + + ПараметрыХранилища = Новый Структура; + ПараметрыХранилища.Вставить("СтрокаПодключения", ПараметрыКоманды["--storage-name"]); + ПараметрыХранилища.Вставить("Пользователь", ПараметрыКоманды["--storage-user"]); + ПараметрыХранилища.Вставить("Пароль", ПараметрыКоманды["--storage-pwd"]); + ПараметрыХранилища.Вставить("Версия", ПараметрыКоманды["--storage-ver"]); + ПараметрыХранилища.Вставить("РежимОбновления", ПараметрыКоманды["--storage"]); + + РежимыРеструктуризации = Новый Структура; + РежимыРеструктуризации.Вставить("Первый", ПараметрыКоманды["--v1"]); + РежимыРеструктуризации.Вставить("Второй", ПараметрыКоманды["--v2"]); ОбновитьБазуДанных(ПараметрыКоманды["--src"], ПараметрыКоманды["--dt"], - ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, + ДанныеПодключения, ПараметрыКоманды["--uccode"], - ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], ПараметрыКоманды["--storage"], - ПараметрыКоманды["--storage-name"], ПараметрыКоманды["--storage-user"], - ПараметрыКоманды["--storage-pwd"], ПараметрыКоманды["--storage-ver"], - ДанныеПодключения.КодЯзыка); + ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], + ПараметрыХранилища, + ДанныеПодключения.КодЯзыка, РежимыРеструктуризации); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду -Процедура ОбновитьБазуДанных(Знач ПутьКSRC="", Знач ПутьКDT="", Знач СтрокаПодключения="", - Знач Пользователь="", Знач Пароль="", - Знач КлючРазрешенияЗапуска = "", Знач ВерсияПлатформы="", Знач РежимРазработчика = Ложь, - Знач РежимОбновленияХранилища = Ложь, Знач СтрокаПодключенияХранилище = "", - Знач ПользовательХранилища="", Знач ПарольХранилища="", - Знач ВерсияХранилища="", Знач КодЯзыка = "") +Процедура ОбновитьБазуДанных(Знач ПутьКSRC, Знач ПутьКDT, + Знач ДанныеПодключения, + Знач КлючРазрешенияЗапуска, Знач ВерсияПлатформы, Знач РежимРазработчика, + Знач ПараметрыХранилища, + Знач КодЯзыка, РежимыРеструктуризации) Перем БазуСоздавали; БазуСоздавали = Ложь; ТекущаяПроцедура = "Запускаем обновление"; + СтрокаПодключения = ДанныеПодключения.ПутьБазы; + Пользователь = ДанныеПодключения.Пользователь; + Пароль = ДанныеПодключения.Пароль; + + СтрокаПодключенияХранилище = ПараметрыХранилища.СтрокаПодключения; + ПользовательХранилища = ПараметрыХранилища.Пользователь; + ПарольХранилища = ПараметрыХранилища.Пароль; + ВерсияХранилища = ПараметрыХранилища.Версия; + РежимОбновленияХранилища = ПараметрыХранилища.РежимОбновления; + Логирование.ПолучитьЛог("oscript.lib.v8runner").УстановитьУровень(Лог.Уровень()); Если РежимРазработчика = Истина Тогда @@ -132,16 +156,26 @@ ПутьКSRC, СписокФайлов, Ложь); КонецЕсли; - Если РежимОбновленияХранилища = Истина Тогда - Лог.Информация("Обновляем из хранилища"); - - МенеджерКонфигуратора.ЗапуститьОбновлениеИзХранилища( - СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, - ВерсияХранилища); - КонецЕсли; + Попытка + + Если РежимОбновленияХранилища = Истина Тогда + Лог.Информация("Обновляем из хранилища"); + + МенеджерКонфигуратора.ЗапуститьОбновлениеИзХранилища( + СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, + ВерсияХранилища); + КонецЕсли; + + Если РежимРазработчика = Ложь Или РежимыРеструктуризации.Первый Или РежимыРеструктуризации.Второй Тогда + ОбщиеМетоды.ОбновитьКонфигурациюБД(МенеджерКонфигуратора, + РежимыРеструктуризации.Первый, РежимыРеструктуризации.Второй); + КонецЕсли; + + Исключение + МенеджерКонфигуратора.Деструктор(); + ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + КонецПопытки; + + МенеджерКонфигуратора.Деструктор(); - Если РежимРазработчика = Ложь Тогда - МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанных(); - КонецЕсли; - КонецПроцедуры //ОбновитьБазуДанных From 5a0037e35aec172e0d25e45463fb1e3fa52fca02 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Tue, 17 Dec 2019 11:11:15 +0300 Subject: [PATCH 04/60] =?UTF-8?q?=D0=9E=D0=B3=D0=BB=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20+=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=D0=BE=D0=B2?= =?UTF-8?q?=20=D1=80=D0=B5=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 124 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 95 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index f5ebc48a..21f53bda 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,34 @@ -Автоматизация повседневных операций 1С разработчика -== + +# Автоматизация повседневных операций 1С разработчика [![Gitter](https://badges.gitter.im/silverbulleters/vanessa-vrunner.svg)](https://gitter.im/silverbulleters/vanessa-vrunner?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Build Status](http://ci.silverbulleters.org/buildStatus/icon?job=Vanessa-vrunner/master)](http://ci.silverbulleters.org/job/Vanessa-vrunner/job/master/) [![SonarQube Tech Debt](https://img.shields.io/sonar/https/sonar.silverbulleters.org/vanessa-vrunner/tech_debt.svg)](https://sonar.silverbulleters.org/dashboard?id=vanessa-vrunner) -Описание -=== + + +- [Автоматизация повседневных операций 1С разработчика](#автоматизация-повседневных-операций-1с-разработчика) + - [Описание](#описание) + - [Установка](#установка) + - [Использование](#использование) + - [Сборка обработок и конфигураций](#сборка-обработок-и-конфигураций) + - [Примеры настройки и вызова](#примеры-настройки-и-вызова) + - [1. Создание ИБ из последней конфигурации хранилища 1С, обновление в режиме Предприятия и первоначальное заполнение ИБ](#1-создание-иб-из-последней-конфигурации-хранилища-1с-обновление-в-режиме-предприятия-и-первоначальное-заполнение-иб) + - [2. Вызов проверки поведения через Vanessa-ADD](#2-вызов-проверки-поведения-через-vanessa-add) + - [3. Переопределение аргументов запуска](#3-переопределение-аргументов-запуска) + - [Переопределение переменной окружения](#переопределение-переменной-окружения) + - [Установка значения](#установка-значения) + - [Шаблонные переменные](#шаблонные-переменные) + - [Вывод отладочной информации](#вывод-отладочной-информации) + - [Примеры](#примеры) + - [Дополнительные обработки для режима 1С:Предприятие](#дополнительные-обработки-для-режима-1спредприятие) + - [Дополнительная настройка различных команд](#дополнительная-настройка-различных-команд) + - [Настройка синтаксической проверки](#настройка-синтаксической-проверки) + - [Настройка режимов реструктуризации при обновлении конфигурации БД](#настройка-режимов-реструктуризации-при-обновлении-конфигурации-бд) + + + + +## Описание Консольное приложение проекта `oscript.io` для автоматизации различных операции для работы с `cf/cfe/epf` файлами, а также автоматизация запуска сценариев поведения (BDD) и тестов из фреймворка [Vanessa-ADD](https://github.com/silverbulleters/add). @@ -13,9 +36,8 @@ Позволяет обеспечить единообразный запуск команд "локально" и на серверах сборки `CI-CD` - -Установка -=== + +## Установка используйте пакетный менеджер `opm` из стандартной поставки дистрибутива `oscript.io` @@ -27,9 +49,8 @@ opm install vanessa-vrunner После чего доступно выполнение команд через командную строку `vrunner <имя команды>` - -Использование -=== + +## Использование Ключ `help` покажет справку по параметрам. @@ -44,8 +65,8 @@ call vrunner help Основной принцип - запустили bat файл с настроенными командами и получили результат. -Сборка обработок и конфигураций -=== + +### Сборка обработок и конфигураций Для сборки обработок необходимо иметь установленный oscript в переменной PATH и платформу выше 8.3.8 @@ -56,10 +77,11 @@ call vrunner help - Установку можно взять в релизах утилиты - https://github.com/e8tools/v8unpack/releases - Подробнее про утилиту v8unpack - https://github.com/e8tools/v8unpack -Примеры настройки и вызова -=== + +### Примеры настройки и вызова -### 1. Создание ИБ из последней конфигурации хранилища 1С, обновление в режиме Предприятия и первоначальное заполнение ИБ + +#### 1. Создание ИБ из последней конфигурации хранилища 1С, обновление в режиме Предприятия и первоначальное заполнение ИБ `1с-init.cmd` : @@ -83,7 +105,8 @@ call vrunner help @rem @call vrunner vanessa --settings tools/vrunner.json ``` -### 2. Вызов проверки поведения через Vanessa-ADD + +#### 2. Вызов проверки поведения через Vanessa-ADD + запуск `vrunner vanessa --settings tools/vrunner.json` + или внутри батника @@ -134,7 +157,8 @@ call vrunner help } ``` -### 3. Переопределение аргументов запуска + +#### 3. Переопределение аргументов запуска В случае необходимости переопределения параметров запуска используется схема приоритетов. @@ -150,9 +174,12 @@ call vrunner help + Если же настройка есть, как в файле json, так и в переменной окружения и непосредственно в командной строке, то берем настройку из командной строки. Например: - ### Переопределение переменной окружения: - #### Установка значения. + +#### Переопределение переменной окружения + + +##### Установка значения 1. Допустим, в файле vrunner.json указана настройка ```json @@ -180,7 +207,8 @@ call vrunner help Любое указание параметра в командной строке имеет наивысший приоритет. - ### Шаблонные переменные + +#### Шаблонные переменные При указании значений параметров внутри строки с параметром можно использовать шаблонные переменные. Список таких переменных: @@ -189,14 +217,15 @@ call vrunner help + runnerRoot - означает каталог установки vanessa-vrunner + addRoot - означает каталог установки библиотеки ADD -Вывод отладочной информации -=== + +### Вывод отладочной информации Управление выводом логов выполняется с помощью типовой для oscript-library настройки логирования через пакет logos. Основной лог vanessa-vrunner имеет название ``oscript.app.vanessa-vrunner``. -## Примеры + +#### Примеры Включение всех отладочных логов: @@ -207,7 +236,7 @@ set LOGOS_CONFIG=logger.rootLogger=DEBUG call vrunner <параметры запуска> ``` -Если пишет, что неправильные параметры командной строки: +Если выводится сообщение про неправильные параметры командной строки: ```bat set LOGOS_CONFIG=logger.oscript.lib.cmdline=DEBUG @@ -216,8 +245,8 @@ call vrunner <параметры запуска> Включит отладочный лог только для библиотеки cmdline, которая анализирует параметры командной строки. -Дополнительные обработки для режима 1С:Предприятие -=== + +### Дополнительные обработки для режима 1С:Предприятие В папке epf есть несколько обработок, позволяющих упростить развертывание/тестирование для конфигураций, основанных на БСП. @@ -228,9 +257,11 @@ call vrunner <параметры запуска> + **ЗагрузитьРасширение** позволяет подключать расширение в режиме предприятия и получать результат ошибки. Предназначено для подключения в конфигурациях, основанных на БСП. В параметрах /C передается путь к расширению и путь к файлу лога подключения. + **ЗагрузитьВнешниеОбработки** позволяет загрузить все внешние обработки и подключить в справочник "Дополнительные отчеты и обработки", т.к. их очень много то первым параметром идет каталог, вторым параметром путь к файлу лога. Все обработки обновляются согласно версиям. -## Дополнительная настройка различных команд + +### Дополнительная настройка различных команд -### Настройка синтаксической проверки + +#### Настройка синтаксической проверки Для управления режима синтаксической проверки рекомендуется использовать json-файл настройки. Для его использования нужно @@ -238,8 +269,11 @@ call vrunner <параметры запуска> - внутри json-файла нужно добавить секцию `syntax-check` - список всех используемых параметров можно уточнить, выполнив команду `vrunner help syntax-check` - ссылка на подготовленный файл [examples\example.env.json](./examples/example.env.json) +- также можно передавать параметры синтакс-проверки через командную строку + - в этом случае режимы проверки должны быть указаны **последним** параметров ком.строки последовательно, через пробел + - например, `vrunner syntax-check --groupbymetadata --mode -ExtendedModulesCheck -Server -ThinClient -ExternalConnection` -Пример настройки +Пример настройки в файле ```json { "syntax-check": { @@ -258,3 +292,35 @@ call vrunner <параметры запуска> } } ``` + + +#### Настройка режимов реструктуризации при обновлении конфигурации БД + +Возможно использование специальных режимов реструктуризации `-v1` и `-v2`. + +- В режиме командной строки + - указываются ключи `--v1` и `--v2`. Важно: указать двойной знак `--`, а не одиночный! + - 3 команды поддерживают эти ключи + - `init-dev` + - `update-dev` + - `updatedb` + - например, `vrunner updatedb --ibconnection /F./build/ibservice --uccode test --v2` +- в json-файле настройки + - например, + +```json +{ + "updatedb": { + "--v2": true, + "--uccode": "test" + }, + "init-dev": { + "--v2": true + } + }, + "update-dev": { + "--v2": true + } +} +``` + \ No newline at end of file From 575b2bdad16298e1c81a522b8c2f44deb1a0709e Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Tue, 14 Jan 2020 11:25:58 +0300 Subject: [PATCH 05/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D0=BF=D0=B5=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 21f53bda..b6da8fe5 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ используйте пакетный менеджер `opm` из стандартной поставки дистрибутива `oscript.io` ```cmd -opm install vanessa-vrunner +opm install vanessa-runner ``` при установке будет создан исполняемый файл `vrunner` в каталоге `bin` интерпретатора `oscript`. @@ -323,4 +323,4 @@ call vrunner <параметры запуска> } } ``` - \ No newline at end of file + From baecbd21ee94d51097778d80f7ce4cea08190ab0 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 16 Jan 2020 10:00:38 +0300 Subject: [PATCH 06/60] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= =?UTF-8?q?=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81=20=D0=B2=D1=80?= =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=BC=D0=B8=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.os | 1 + ...20\266\320\265\320\275\320\270\321\217.os" | 71 ++-- ...20\266\320\265\320\275\320\270\321\217.os" | 58 ++-- ...276\320\265\320\272\321\202\320\260EDT.os" | 252 +++++++------- ...20\275\320\270\320\272\320\276\320\262.os" | 29 +- ...20\260\321\202\320\276\321\200\320\260.os" | 310 +++++++++--------- ...20\261\320\276\321\202\320\276\320\272.os" | 194 +++++------ 7 files changed, 459 insertions(+), 456 deletions(-) diff --git a/src/main.os b/src/main.os index 5ae3f25e..d0980aea 100644 --- a/src/main.os +++ b/src/main.os @@ -278,6 +278,7 @@ Если ЗначенияПараметров["--debuglogfile"] <> Неопределено Тогда ПутьФайлаВывода = ЗначенияПараметров["--debuglogfile"]; ИначеЕсли ЗначенияПараметров["--debuglog"] <> Неопределено Тогда + // специально не через ВременныеФайлы для возмножности сохранения файла после завершения ПутьФайлаВывода = ПолучитьИмяВременногоФайла(".log"); ФайлВывода = Новый Файл(ПутьФайлаВывода); ПутьФайлаВывода = ОбъединитьПути(ФайлВывода.Путь, "vrunner-" + ФайлВывода.Имя); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index aec4727b..b4c3b489 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -2,7 +2,7 @@ // // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////// @@ -19,11 +19,11 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Инициализация базы данных для выполнения необходимых тестов."; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); - + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src", "Путь к папке исходников | |Схема работы: @@ -31,21 +31,21 @@ | указываем версию платформы, которую хотим использовать, | и получаем по пути build\ib готовую базу для тестирования."); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--dt", "Путь к файлу с dt выгрузкой"); - Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev", + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev", "Признак dev режима, создаем и загружаем автоматом структуру конфигурации"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--storage", "Признак обновления из хранилища"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-name", "Строка подключения к хранилищу"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-ver", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-ver", "Номер версии, по умолчанию берем последнюю"); - + Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -58,28 +58,28 @@ ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; ИнициализироватьБазуДанных(ПараметрыКоманды["--src"], ПараметрыКоманды["--dt"], - ДанныеПодключения.ПутьБазы, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, - ПараметрыКоманды["--uccode"], - ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], ПараметрыКоманды["--storage"], + ДанныеПодключения.ПутьБазы, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, + ПараметрыКоманды["--uccode"], + ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], ПараметрыКоманды["--storage"], ПараметрыКоманды["--storage-name"], ПараметрыКоманды["--storage-user"], ПараметрыКоманды["--storage-pwd"], ПараметрыКоманды["--storage-ver"], ПараметрыКоманды["--nocacheuse"], ДанныеПодключения.КодЯзыка); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду -Процедура ИнициализироватьБазуДанных(Знач ПутьКSRC="", Знач ПутьКDT="", Знач СтрокаПодключения="", +Процедура ИнициализироватьБазуДанных(Знач ПутьКSRC="", Знач ПутьКDT="", Знач СтрокаПодключения="", Знач Пользователь="", Знач Пароль="", - Знач КлючРазрешенияЗапуска = "", Знач ВерсияПлатформы="", Знач РежимРазработчика = Ложь, - Знач РежимОбновленияХранилища = Ложь, Знач СтрокаПодключенияХранилище = "", + Знач КлючРазрешенияЗапуска = "", Знач ВерсияПлатформы="", Знач РежимРазработчика = Ложь, + Знач РежимОбновленияХранилища = Ложь, Знач СтрокаПодключенияХранилище = "", Знач ПользовательХранилища="", Знач ПарольХранилища="", - Знач ВерсияХранилища="", Знач НеДобавлятьВСписокБаз = Ложь, Знач КодЯзыка = "") + Знач ВерсияХранилища="", Знач НеДобавлятьВСписокБаз = Ложь, Знач КодЯзыка = "") Перем БазуСоздавали; - БазуСоздавали = Ложь; + БазуСоздавали = Ложь; ТекущаяПроцедура = "Запускаем инициализацию"; МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - + Логирование.ПолучитьЛог("oscript.lib.v8runner").УстановитьУровень(Лог.Уровень()); Если ПустаяСтрока(СтрокаПодключения) Тогда @@ -95,7 +95,7 @@ Лог.Отладка("Нашли каталог базы для удаления <%1> ", КаталогБазы); ФайлБазы = Новый Файл(КаталогБазы); - Если ФайлБазы.Существует() Тогда + Если ФайлБазы.Существует() Тогда Лог.Отладка("Удаляем файл "+ФайлБазы.ПолноеИмя); УдалитьФайлы(ФайлБазы.ПолноеИмя, ПолучитьМаскуВсеФайлы()); КонецЕсли; @@ -105,7 +105,7 @@ ВерсияПлатформы, КлючРазрешенияЗапуска, КодЯзыка ); - + Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором(); СоздатьФайловуюБазу(Конфигуратор, ФайлБазы.ПолноеИмя); БазуСоздавали = Истина; @@ -118,14 +118,15 @@ ВерсияПлатформы, КлючРазрешенияЗапуска, КодЯзыка ); - + Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором(); - Конфигуратор.УстановитьИмяФайлаСообщенийПлатформы(ПолучитьИмяВременногоФайла("log")); + Конфигуратор.УстановитьИмяФайлаСообщенийПлатформы(ВременныеФайлы.НовоеИмяФайла("log")); + Если Не ПустаяСтрока(ПутьКDT) Тогда ПутьКDT = Новый Файл(ОбъединитьПути(КорневойПутьПроекта, ПутьКDT)).ПолноеИмя; Лог.Информация("Загружаем dt "+ ПутьКDT); - Если БазуСоздавали = Истина Тогда - Попытка + Если БазуСоздавали = Истина Тогда + Попытка Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); Исключение Лог.Ошибка("Не удалось загрузить:"+ОписаниеОшибки()); @@ -133,7 +134,7 @@ Иначе Попытка Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); - Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); + Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); Исключение Лог.Ошибка("Не удалось загрузить:"+ОписаниеОшибки()); КонецПопытки; @@ -148,7 +149,7 @@ Иначе Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); КонецЕсли; - + Если Не ПустаяСтрока(ПутьКSRC) Тогда Лог.Информация("Запускаю загрузку конфигурации из исходников"); @@ -163,11 +164,11 @@ Если РежимОбновленияХранилища = Истина Тогда Лог.Информация("Обновляем из хранилища"); МенеджерКонфигуратора.ЗапуститьОбновлениеИзХранилища( - СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, + СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, ВерсияХранилища); КонецЕсли; - Если РежимРазработчика = Ложь Тогда + Если РежимРазработчика = Ложь Тогда МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанных(); КонецЕсли; Исключение @@ -182,7 +183,7 @@ ДопДанныеСпискаБаз = Новый Структура; ДопДанныеСпискаБаз.Вставить("RootPath", КорневойПутьПроекта); Попытка - Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда + Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда ДопДанныеСпискаБаз.Вставить("Version", ВерсияПлатформы); КонецЕсли; МенеджерСпискаБаз.ДобавитьБазуВСписокБаз(СтрокаПодключения, @@ -195,7 +196,7 @@ КонецЕсли; Лог.Информация("Инициализация завершена"); - + КонецПроцедуры //ИнициализироватьБазуДанных Процедура СоздатьФайловуюБазу(Конфигуратор, Знач КаталогБазы, Знач ПутьКШаблону="", @@ -212,7 +213,7 @@ Если ЗначениеЗаполнено(КодЯзыка) Тогда ПараметрыЗапуска.Добавить("/L"+СокрЛП(КодЯзыка)); КонецЕсли; - + Если ИмяБазыВСписке <> "" Тогда ПараметрыЗапуска.Добавить("/AddInList"""+ ИмяБазыВСписке + """"); КонецЕсли; @@ -227,21 +228,21 @@ Приложение = ""; Приложение = Конфигуратор.ПутьКПлатформе1С(); - Если Найти(Приложение, " ") > 0 Тогда + Если Найти(Приложение, " ") > 0 Тогда Приложение = ОбщиеМетоды.ОбернутьПутьВКавычки(Приложение); КонецЕсли; Приложение = Приложение + " "+СтрокаЗапуска; Попытка - ОбщиеМетоды.ЗапуститьПроцесс(Приложение); + ОбщиеМетоды.ЗапуститьПроцесс(Приложение); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; РезультатСообщение = ОбщиеМетоды.ПрочитатьФайлИнформации(Конфигуратор.ФайлИнформации()); - Если НЕ (СтрНайти(РезультатСообщение, "успешно завершено") = 0 + Если НЕ (СтрНайти(РезультатСообщение, "успешно завершено") = 0 ИЛИ СтрНайти(РезультатСообщение, "completed successfully") = 0) Тогда - ВызватьИсключение "Результат работы не успешен: " + Символы.ПС + РезультатСообщение; - + ВызватьИсключение "Результат работы не успешен: " + Символы.ПС + РезультатСообщение; + КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index 864a6226..896f4f68 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -2,7 +2,7 @@ // // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////// @@ -15,7 +15,7 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Обновление базы данных для выполнения необходимых тестов. |"; @@ -27,23 +27,23 @@ | Указываем путь к исходникам с конфигурацией, | указываем версию платформы, которую хотим использовать, | и получаем по пути build\ib готовую базу для тестирования."); - + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--dt", "Путь к файлу с dt выгрузкой"); - Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev", + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev", "Признак dev режима, создаем и загружаем автоматом структуру конфигурации"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--storage", "Признак обновления из хранилища"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-name", "Строка подключения к хранилищу"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-ver", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-ver", "Номер версии, по умолчанию берем последнюю"); - + Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -54,33 +54,33 @@ КорневойПутьПроекта = ПараметрыСистемы.КорневойПутьПроекта; ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; - + ОбновитьБазуДанных(ПараметрыКоманды["--src"], ПараметрыКоманды["--dt"], ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, - ПараметрыКоманды["--uccode"], - ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], ПараметрыКоманды["--storage"], - ПараметрыКоманды["--storage-name"], ПараметрыКоманды["--storage-user"], + ПараметрыКоманды["--uccode"], + ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], ПараметрыКоманды["--storage"], + ПараметрыКоманды["--storage-name"], ПараметрыКоманды["--storage-user"], ПараметрыКоманды["--storage-pwd"], ПараметрыКоманды["--storage-ver"], ДанныеПодключения.КодЯзыка); - + Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду -Процедура ОбновитьБазуДанных(Знач ПутьКSRC="", Знач ПутьКDT="", Знач СтрокаПодключения="", +Процедура ОбновитьБазуДанных(Знач ПутьКSRC="", Знач ПутьКDT="", Знач СтрокаПодключения="", Знач Пользователь="", Знач Пароль="", - Знач КлючРазрешенияЗапуска = "", Знач ВерсияПлатформы="", Знач РежимРазработчика = Ложь, - Знач РежимОбновленияХранилища = Ложь, Знач СтрокаПодключенияХранилище = "", + Знач КлючРазрешенияЗапуска = "", Знач ВерсияПлатформы="", Знач РежимРазработчика = Ложь, + Знач РежимОбновленияХранилища = Ложь, Знач СтрокаПодключенияХранилище = "", Знач ПользовательХранилища="", Знач ПарольХранилища="", - Знач ВерсияХранилища="", Знач КодЯзыка = "") - + Знач ВерсияХранилища="", Знач КодЯзыка = "") + Перем БазуСоздавали; - БазуСоздавали = Ложь; + БазуСоздавали = Ложь; ТекущаяПроцедура = "Запускаем обновление"; Логирование.ПолучитьЛог("oscript.lib.v8runner").УстановитьУровень(Лог.Уровень()); - Если РежимРазработчика = Истина Тогда + Если РежимРазработчика = Истина Тогда КаталогБазы = ОбъединитьПути(КорневойПутьПроекта, "./build/ibservice"); СтрокаПодключения = "/F""" + КаталогБазы + """"; КонецЕсли; @@ -105,18 +105,18 @@ ВерсияПлатформы, КлючРазрешенияЗапуска, КодЯзыка ); - + Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором(); - - Конфигуратор.УстановитьИмяФайлаСообщенийПлатформы(ПолучитьИмяВременногоФайла("log")); - + + Конфигуратор.УстановитьИмяФайлаСообщенийПлатформы(ВременныеФайлы.НовоеИмяФайла("log")); + Конфигуратор.УстановитьКонтекст(СтрокаПодключения, "", ""); Если Не ПустаяСтрока(ПутьКDT) Тогда ПутьКDT = Новый Файл(ОбъединитьПути(КорневойПутьПроекта, ПутьКDT)).ПолноеИмя; Лог.Информация("Загружаем dt "+ ПутьКDT); Попытка Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); - Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); + Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); Исключение Лог.Ошибка("Не удалось загрузить:"+ОписаниеОшибки()); КонецПопытки; @@ -134,14 +134,14 @@ Если РежимОбновленияХранилища = Истина Тогда Лог.Информация("Обновляем из хранилища"); - + МенеджерКонфигуратора.ЗапуститьОбновлениеИзХранилища( - СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, + СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, ВерсияХранилища); КонецЕсли; - Если РежимРазработчика = Ложь Тогда + Если РежимРазработчика = Ложь Тогда МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанных(); КонецЕсли; - + КонецПроцедуры //ОбновитьБазуДанных diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\276\320\265\320\272\321\202\320\260EDT.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\276\320\265\320\272\321\202\320\260EDT.os" index 38bef28d..8a6626fe 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\276\320\265\320\272\321\202\320\260EDT.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\276\320\265\320\272\321\202\320\260EDT.os" @@ -8,7 +8,7 @@ // Прикладной интерфейс Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, " Проверка проекта EDT."); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--junitpath", "Путь отчета в формате JUnit"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--allure-results", "Путь к каталогу сохранения результатов тестирования в формате Allure (xml)"); @@ -34,10 +34,10 @@ | Необходима, если зарегистрировано одновременно несколько версий. | Узнать доступные версии можно командой ""ring help"" | Пример: --EDTversion 1.9.1"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--workspace-location", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--workspace-location", "Расположение рабочей области. Необязательный аргумент. | Если не указан, то проверка выполнятся не будет. Актуально для создания отчетов по существующему файлу результатов."); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--project-list", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--project-list", "Список папок, откуда загрузить проекты в формате EDT для проверки. Необязательный аргумент. | Одновременно можно использовать только один агрумент: project-list или project-name-list"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--project-name-list", @@ -57,26 +57,26 @@ | ВНИМАНИЕ! Параметры, которые перечислены далее, не используются. | |"); - + Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - (необязательно) дополнительные параметры // Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт - + Лог = ДополнительныеПараметры.Лог; - + ПутьОтчетаВФорматеJUnitxml = ПараметрыКоманды["--junitpath"]; Если ПутьОтчетаВФорматеJUnitxml = Неопределено Тогда ПутьОтчетаВФорматеJUnitxml = ""; КонецЕсли; - + ПутьОтчетаВФорматеAllure = ПараметрыКоманды["--allure-results"]; Если ПутьОтчетаВФорматеAllure = Неопределено Тогда ПутьОтчетаВФорматеAllure = ""; @@ -86,193 +86,193 @@ Если ПутьОтчетаВФорматеAllure2 = Неопределено Тогда ПутьОтчетаВФорматеAllure2 = ""; КонецЕсли; - - СохранятьОтчетВФайл = ЗначениеЗаполнено(ПутьОтчетаВФорматеJUnitxml) + + СохранятьОтчетВФайл = ЗначениеЗаполнено(ПутьОтчетаВФорматеJUnitxml) ИЛИ ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure) ИЛИ ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure2); - + ВерсияEDT = ПараметрыКоманды["--EDTversion"]; РабочаяОбласть = ПараметрыКоманды["--workspace-location"]; СписокПапокСПроектами = ПараметрыКоманды["--project-list"]; СписокИменПроектов = ПараметрыКоманды["--project-name-list"]; ПутьКФайламПроекта = ПараметрыКоманды["--project-url"]; - + ИмяФайлаРезультата = ПараметрыКоманды["--validation-result"]; УдалятьФайлРезультата = Ложь; - + Если ИмяФайлаРезультата = Неопределено Тогда - - ИмяФайлаРезультата = ПолучитьИмяВременногоФайла("out"); + + ИмяФайлаРезультата = ВременныеФайлы.НовоеИмяФайла("out"); УдалятьФайлРезультата = Истина; - + КонецЕсли; - + ИмяФайлаИсключенийОшибок = ПараметрыКоманды["--exception-file"]; ИмяПредыдущегоФайлаРезультата = ПараметрыКоманды["--prev-validation-result"]; - + ДатаНачала = ТекущаяДата(); Успешно = ВыполнитьПроверкуEDT(РабочаяОбласть, ИмяФайлаРезультата, СписокПапокСПроектами, СписокИменПроектов, ВерсияEDT); - + Если СохранятьОтчетВФайл Тогда - + РезультатТестирования = ОбработатьЛогОшибок(ДатаНачала, ИмяФайлаРезультата, ИмяФайлаИсключенийОшибок, ИмяПредыдущегоФайлаРезультата); ОшибокНет = РезультатТестирования.Количество() = 0; Если ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure) Тогда - + Лог.Информация("Генерация отчета Allure"); ГенерацияОтчетов.СформироватьОтчетВФорматеAllure(ОшибокНет, РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure, "EDT"); - + КонецЕсли; Если ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure2) Тогда - + Лог.Информация("Генерация отчета Allure2"); ГенерацияОтчетов.СформироватьОтчетВФорматеAllure2(ОшибокНет, РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure2, "EDT", ПутьКФайламПроекта); - + КонецЕсли; - + Если ЗначениеЗаполнено(ПутьОтчетаВФорматеJUnitxml) Тогда - + Лог.Информация("Генерация отчета JUnit"); ГенерацияОтчетов.СформироватьОтчетВФорматеJUnit(ОшибокНет, РезультатТестирования, ПутьОтчетаВФорматеJUnitxml, "edt"); - + КонецЕсли; - + КонецЕсли; - + Если УдалятьФайлРезультата Тогда - + ОбщиеМетоды.УдалитьФайлЕслиОнСуществует(ИмяФайлаРезультата); - + КонецЕсли; РезультатыКоманд = МенеджерКомандПриложения.РезультатыКоманд(); Возврат ?(Успешно, РезультатыКоманд.Успех, РезультатыКоманд.ОшибкаВремениВыполнения); - + КонецФункции /////////////////////////////////////////////////////////////////////////////////////////////////// Функция ВыполнитьПроверкуEDT(Знач РабочаяОбласть, ИмяФайлаРезультата, СписокПапокСПроектами, СписокИменПроектов, ВерсияEDT) - + Если Не ЗначениеЗаполнено(РабочаяОбласть) Тогда - + Лог.Информация("Рабочая область (--workspace-location) не указана. Проверка проекта пропущена."); Возврат Истина; - + КонецЕсли; - + ФайлРабочаяОбласть = Новый Файл(РабочаяОбласть); РабочаяОбласть = ФайлРабочаяОбласть.ПолноеИмя; - - Если Не ЗначениеЗаполнено(СписокПапокСПроектами) + + Если Не ЗначениеЗаполнено(СписокПапокСПроектами) И Не ЗначениеЗаполнено(СписокИменПроектов) Тогда - + Лог.Информация("Проекты к проверке (--project-list или project-name-list) не указаны. Проверка проекта пропущена."); - + Возврат Истина; - + КонецЕсли; - + Попытка - + // Для EDT критично, чтобы файла не существовало ОбщиеМетоды.УдалитьФайлЕслиОнСуществует(ИмяФайлаРезультата); - + Команда = Новый Команда; Команда.УстановитьСтрокуЗапуска(СтрШаблон("ring edt%1 workspace validate", ?(ПустаяСтрока(ВерсияEDT), "", "@" + ВерсияEDT))); Команда.УстановитьКодировкуВывода(КодировкаТекста.ANSI); Команда.ДобавитьПараметр("--workspace-location " + ОбщиеМетоды.ОбернутьПутьВКавычки(РабочаяОбласть)); Команда.ДобавитьПараметр("--file " + ОбщиеМетоды.ОбернутьПутьВКавычки(ИмяФайлаРезультата)); - + Если ЗначениеЗаполнено(СписокПапокСПроектами) Тогда Команда.ДобавитьПараметр("--project-list " + ОбщиеМетоды.ОбернутьПутьВКавычки(СписокПапокСПроектами)); КонецЕсли; - + Если ЗначениеЗаполнено(СписокИменПроектов) Тогда Команда.ДобавитьПараметр("--project-name-list " + ОбщиеМетоды.ОбернутьПутьВКавычки(СписокИменПроектов)); КонецЕсли; - + Лог.Информация("Начало проверки EDT-проекта"); НачалоЗамера = ТекущаяДата(); - + КодВозврата = Команда.Исполнить(); - + Лог.Информация("Проверка EDT-проекта завершена за %1с", Окр(ТекущаяДата() - НачалоЗамера)); - + Исключение - + ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - + КонецПопытки; - + Возврат КодВозврата = 0; - + КонецФункции Функция ОбработатьЛогОшибок(ДатаНачала, ПутьКФайлуЛогаОшибок, ИмяФайлаИсключенийОшибок, ИмяПредыдущегоФайлаРезультата) - + РезультатТестирования = Новый Структура; РезультатТестирования.Вставить("Ошибки", Новый Соответствие); - РезультатТестирования.Вставить("ВсеОшибки", ""); - РезультатТестирования.Вставить("ДатаНачала", ДатаНачала); - РезультатТестирования.Вставить("КоличествоПроверок", 0); - РезультатТестирования.Вставить("КоличествоПропущено", 0); - РезультатТестирования.Вставить("КоличествоУпало", 0); - + РезультатТестирования.Вставить("ВсеОшибки", ""); + РезультатТестирования.Вставить("ДатаНачала", ДатаНачала); + РезультатТестирования.Вставить("КоличествоПроверок", 0); + РезультатТестирования.Вставить("КоличествоПропущено", 0); + РезультатТестирования.Вставить("КоличествоУпало", 0); + Файл = Новый Файл(ПутьКФайлуЛогаОшибок); Если Не Файл.Существует() Тогда - + // Файла может не быть если // 1) Нет ошибок (EDT просто не создает файл результата) // 2) EDT вернул ошибку // 3) Проверка EDT не запускалась, выполняется только построение отчета Аллюр - + Возврат РезультатТестирования; - + КонецЕсли; ФайлЛога = Новый ТекстовыйДокумент(); ФайлЛога.Прочитать(ПутьКФайлуЛогаОшибок, КодировкаТекста.UTF8); - + ЛогПроверкиИзКонфигуратора = ФайлЛога.ПолучитьТекст(); - - // Определяем строки для исключения из ошибок + + // Определяем строки для исключения из ошибок // См. стандарт "Обработчики событий модуля формы, подключаемые из кода" // https://its.1c.ru/db/v8std#content:-2145783155:hdoc МассивСтрокИсключений = Новый Массив(); МассивСтрокИсключений.Добавить(Нрег("Неиспользуемый метод ""Подключаемый_")); МассивСтрокИсключений.Добавить(Нрег("Пустой обработчик: ""Подключаемый_")); МассивСтрокИсключений.Добавить(Нрег("Empty handler: ""Attachable_")); - + ПропускаемыеОшибки = СодержимоеФайлаИсключенийОшибок(ИмяФайлаИсключенийОшибок); СтарыеОшибки = СодержимоеПрошлогоОтчетаОбОшибках(ИмяПредыдущегоФайлаРезультата); - + Для Каждого ТекСтрока Из СтрРазделить(ЛогПроверкиИзКонфигуратора, Символы.ПС) Цикл - + СтарыеОшибки.Удалить(ТекСтрока); // оставим только разницу Если ИсключитьСтроку(ТекСтрока, МассивСтрокИсключений) Тогда Продолжить; КонецЕсли; - + РезультатТестирования.ВсеОшибки = РезультатТестирования.ВсеОшибки + ТекСтрока + Символы.ПС; ОписаниеОшибки = ПолучитьОписаниеОшибки(ТекСтрока); ДополнитьРезультатТекстомОшибки(РезультатТестирования, ОписаниеОшибки, ПропускаемыеОшибки, ТекСтрока); - + КонецЦикла; // старые ошибки пометим как исправленные Для Каждого ТекСтрока Из СтарыеОшибки Цикл - + Если ИсключитьСтроку(ТекСтрока.Ключ, МассивСтрокИсключений) Тогда Продолжить; КонецЕсли; - + ОписаниеОшибки = ПолучитьОписаниеОшибки(ТекСтрока.Ключ, "Исправлено"); ДополнитьРезультатТекстомОшибки(РезультатТестирования, ОписаниеОшибки); - + КонецЦикла; Возврат РезультатТестирования; @@ -280,129 +280,129 @@ КонецФункции Функция ИсключитьСтроку(Знач ПроверяемаяСтрока, Знач МассивСтрокИсключений) - + Если ПустаяСтрока(ПроверяемаяСтрока) Тогда - + Возврат Истина; - + КонецЕсли; Для Каждого СтрИсключения Из МассивСтрокИсключений Цикл - + Если СтрНайти(Нрег(ПроверяемаяСтрока), СтрИсключения) > 0 Тогда - + Возврат Истина; - + КонецЕсли; - + КонецЦикла; - + Возврат Ложь; - + КонецФункции Функция ПолучитьОписаниеОшибки(Знач СтрокаЛога, Знач ТипОшибки = "") - + АнализируемаяСтрока = СокрЛП(СтрокаЛога); ЭлементыСтроки = СтрРазделить(АнализируемаяСтрока, Символы.Таб); Если Не ЗначениеЗаполнено(ТипОшибки) Тогда ТипОшибки = ЭлементыСтроки.Получить(1); КонецЕсли; - + ИмяГруппы = ЭлементыСтроки.Получить(3); НомерСтроки = СокрЛП(СтрЗаменить(ЭлементыСтроки.Получить(4), "строка", "")); - Для Ит = 0 По 4 Цикл - + Для Ит = 0 По 4 Цикл + ЭлементыСтроки.Удалить(0); - + КонецЦикла; ТекстОшибки = СокрЛП(СтрСоединить(ЭлементыСтроки, Символы.Таб)); Возврат ШаблонОписанияОшибки(ИмяГруппы, ТекстОшибки, НомерСтроки, ТипОшибки); - + КонецФункции Функция ШаблонОписанияОшибки(ИмяПоУмолчанию = "", ТекстОшибки = "", НомерСтроки = 0, ТипОшибки = "Ошибка") - + Возврат Новый Структура("ТекстОшибки, ИмяГруппы, НомерСтроки, ТипОшибки", ТекстОшибки, ИмяПоУмолчанию, НомерСтроки, ТипОшибки); - + КонецФункции Процедура ДополнитьРезультатТекстомОшибки(Результат, ОписаниеОшибки, Знач ПропускаемыеОшибки = Неопределено, СтрокаЛога = "") - + Если СледуетПропуститьОшибку(СтрокаЛога, ПропускаемыеОшибки) Тогда - + ОписаниеОшибки.ТипОшибки = "Пропущено"; - + КонецЕсли; ОшибкиГруппы = Результат.Ошибки.Получить(ОписаниеОшибки.ИмяГруппы); - + Если ОшибкиГруппы = Неопределено Тогда - + ОшибкиГруппы = Новый Соответствие(); - + КонецЕсли; - + ОшибкиПоТипу = ОшибкиГруппы.Получить(ОписаниеОшибки.ТипОшибки); Если ОшибкиПоТипу = Неопределено Тогда - + Результат.КоличествоПроверок = Результат.КоличествоПроверок + 1; Если ОписаниеОшибки.ТипОшибки = "Ошибка" Тогда Результат.КоличествоУпало = Результат.КоличествоУпало + 1; Иначе Результат.КоличествоПропущено = Результат.КоличествоПропущено + 1; КонецЕсли; - + ОшибкиПоТипу = Новый Массив(); - + КонецЕсли; - + ОшибкиПоТипу.Добавить(ОписаниеОшибки); ОшибкиГруппы.Вставить(ОписаниеОшибки.ТипОшибки, ОшибкиПоТипу); Результат.Ошибки.Вставить(ОписаниеОшибки.ИмяГруппы, ОшибкиГруппы); - + КонецПроцедуры Функция СледуетПропуститьОшибку(Знач СтрокаСОшибкой, Знач ПропускаемыеОшибки) - + Если НЕ ЗначениеЗаполнено(ПропускаемыеОшибки) ИЛИ НЕ ЗначениеЗаполнено(СтрокаСОшибкой) Тогда - + Возврат Ложь; - + КонецЕсли; Для Каждого ТекИсключение Из ПропускаемыеОшибки Цикл Если СтрНайти(НормализованныйТекстОшибки(СтрокаСОшибкой), ТекИсключение) > 0 Тогда - + Возврат Истина; - + КонецЕсли; КонецЦикла; - + Возврат Ложь; - + КонецФункции Функция НормализованныйТекстОшибки(Знач ТекстОшибки) - + Возврат СокрЛП(НРег(ТекстОшибки)); - + КонецФункции Функция СодержимоеФайлаИсключенийОшибок(Знач ИмяФайлаПропускаемыхОшибок) - + Результат = Новый Массив; - + Если Не ЗначениеЗаполнено(ИмяФайлаПропускаемыхОшибок) Тогда Возврат Результат; КонецЕсли; - + Файл = Новый Файл(ИмяФайлаПропускаемыхОшибок); Если Не Файл.Существует() Тогда Возврат Результат; КонецЕсли; - + ЧтениеТекста = Новый ЧтениеТекста(ИмяФайлаПропускаемыхОшибок, КодировкаТекста.UTF8); ПрочитаннаяСтрока = ЧтениеТекста.ПрочитатьСтроку(); Пока ПрочитаннаяСтрока <> Неопределено Цикл @@ -411,33 +411,33 @@ КонецЕсли; ПрочитаннаяСтрока = ЧтениеТекста.ПрочитатьСтроку(); КонецЦикла; - + ЧтениеТекста.Закрыть(); Возврат Результат; - + КонецФункции Функция СодержимоеПрошлогоОтчетаОбОшибках(Знач ИмяФайла) - + Результат = Новый Соответствие(); - + Если Не ЗначениеЗаполнено(ИмяФайла) Тогда Возврат Результат; КонецЕсли; - + Файл = Новый Файл(ИмяФайла); Если Не Файл.Существует() Тогда Возврат Результат; КонецЕсли; - + ЧтениеТекста = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8); ПрочитаннаяСтрока = ЧтениеТекста.ПрочитатьСтроку(); Пока ПрочитаннаяСтрока <> Неопределено Цикл Результат.Вставить(ПрочитаннаяСтрока, "1"); ПрочитаннаяСтрока = ЧтениеТекста.ПрочитатьСтроку(); КонецЦикла; - + ЧтениеТекста.Закрыть(); Возврат Результат; - + КонецФункции diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.os" index 6c63f779..36defedf 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.os" @@ -3,10 +3,10 @@ // Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров // // TODO добавить фичи для проверки команды -// +// // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -22,18 +22,18 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Сборка cf-файла из исходников."; - ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src", "Путь к каталогу с исходниками, пример: --src=./cf"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-s", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-s", "Краткая команда 'путь к исходникам --src', пример: -s ./cf"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--out", "Путь к файлу cf (*.cf), --out=./1Cv8.cf"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-o", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-o", "Краткая команда 'Путь к файлу cf --out', пример: -o ./1Cv8.cf"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--current", "Флаг загрузки в указанную базу или -с"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-c", "Флаг загрузки в указанную базу, кратка форма от --current"); @@ -42,11 +42,11 @@ Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--noupdate", "Флаг обновление СonfigDumpInfo.xml"); Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -69,11 +69,11 @@ ОбновлятьДамп = НЕ ПараметрыКоманды["--noupdate"]; МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - + Попытка ВТекущуюКонфигурацию = ОбщиеМетоды.ПолучитьПараметры(ПараметрыКоманды, "-c", "--current"); Если ТипЗнч(ВТекущуюКонфигурацию) = Тип("Булево") И ВТекущуюКонфигурацию Тогда - МенеджерКонфигуратора.Инициализация(ДанныеПодключения.СтрокаПодключения, + МенеджерКонфигуратора.Инициализация(ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, ВерсияПлатформы, ПараметрыКоманды["--uccode"], ДанныеПодключения.КодЯзыка); @@ -87,13 +87,13 @@ МенеджерКонфигуратора.Деструктор(); ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; - + МенеджерКонфигуратора.Деструктор(); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду -Процедура СобратьИзИсходниковФайлКонфигурации(ПутьВходящий, ПутьИсходящий, ДанныеПодключения, +Процедура СобратьИзИсходниковФайлКонфигурации(ПутьВходящий, ПутьИсходящий, ДанныеПодключения, ВерсияПлатформы, ОбновлятьФайлВерсий) КаталогВременнойБазы = ВременныеФайлы.СоздатьКаталог(); @@ -106,5 +106,6 @@ МенеджерКонфигуратора.СобратьИзИсходниковТекущуюКонфигурацию(ПутьВходящий, , , ОбновлятьФайлВерсий); МенеджерКонфигуратора.ВыгрузитьКонфигурациюВФайл(ПутьИсходящий); -КонецПроцедуры + ВременныеФайлы.УдалитьФайл(КаталогВременнойИБ); +КонецПроцедуры diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index b1daefc8..6885c0f5 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -7,29 +7,29 @@ Перем КаталогВременнойИБ; Функция УправлениеКонфигуратором() Экспорт - Возврат УправлениеКонфигуратором; + Возврат УправлениеКонфигуратором; КонецФункции Процедура Инициализация(Знач СтрокаПодключения, Знач Пользователь="", Знач Пароль="", - Знач ВерсияПлатформы="", Знач КлючРазрешенияЗапуска = "", + Знач ВерсияПлатформы="", Знач КлючРазрешенияЗапуска = "", Знач КодЯзыка = "", Знач КодЯзыкаСеанса = "") Экспорт ТекущаяПроцедура = "Инициализация"; - Ожидаем.Что(СтрокаПодключения, ТекущаяПроцедура+": не задана строка подключения").Заполнено(); - + Ожидаем.Что(СтрокаПодключения, ТекущаяПроцедура+": не задана строка подключения").Заполнено(); + УправлениеКонфигуратором = Новый УправлениеКонфигуратором(); КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); УправлениеКонфигуратором.КаталогСборки(КаталогВременнойИБ); - + УправлениеКонфигуратором.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); Если НЕ ПустаяСтрока(ВерсияПлатформы) Тогда УправлениеКонфигуратором.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); КонецЕсли; - + Если Не ПустаяСтрока(КлючРазрешенияЗапуска) Тогда УправлениеКонфигуратором.УстановитьКлючРазрешенияЗапуска(КлючРазрешенияЗапуска); - КонецЕсли; + КонецЕсли; Если ЗначениеЗаполнено(КодЯзыка) Тогда УправлениеКонфигуратором.УстановитьКодЯзыка(КодЯзыка); @@ -48,7 +48,7 @@ КонецЕсли; Исключение КонецПопытки; - + КаталогВременнойИБ = Неопределено; КонецПроцедуры @@ -58,11 +58,11 @@ // ДополнительныеКлючиЗапуска - <Тип.Вид> - <описание параметра> // Процедура ОбновитьКонфигурациюБазыДанных(Знач ДополнительныеКлючиЗапуска = "") Экспорт - + Лог.Информация("Запускаю обновление конфигурации БД"); ТекущаяПроцедура = "ОбновитьКонфигурациюБазыДанных"; - + Если Не ПустаяСтрока(ДополнительныеКлючиЗапуска) Тогда КонецЕсли; @@ -85,13 +85,13 @@ // Обновить конфигурацию БД на сервере // // Параметры: -// РежимРеструктуризации - Строка, Неопределено - рекомендуем использовать значения из РежимыРеструктуризации(). +// РежимРеструктуризации - Строка, Неопределено - рекомендуем использовать значения из РежимыРеструктуризации(). // Например, РежимыРеструктуризации().Второй // Необязательно. По Умолчанию - Неопределено. т.е. использовать режим 1С по умолчанию // ИмяРасширения - Строка - имя расширения. Необязательно. // Процедура ОбновитьКонфигурациюБазыДанныхНаСервере( - Знач РежимРеструктуризации = Неопределено, + Знач РежимРеструктуризации = Неопределено, Знач ИмяРасширения = "") Экспорт Лог.Информация("Запускаю обновление конфигурации БД"); @@ -153,7 +153,7 @@ Лог.Информация("Список расширений конфигурации:%2%1", ПолучитьСписокВсехРасширений(), Символы.ПС); КонецПроцедуры -// Выполнить команду/действие в режиме 1С:Предприятия +// Выполнить команду/действие в режиме 1С:Предприятия // проверкой статус-файла выполнения и возможностью ожидания выполнения и чтением лог-файла // // Параметры: @@ -169,7 +169,7 @@ Процедура ЗапуститьВРежимеПредприятияСПроверкойВыполнения( Знач ПредставлениеКоманды, Знач ПараметрЗапуска, - Знач ОбработкаДляЗапуска, + Знач ОбработкаДляЗапуска, Знач ТолстыйКлиент, Знач ДополнительныеКлючиЗапуска, Знач ОжидатьЗавершения, @@ -179,7 +179,7 @@ Если Не ОжидатьЗавершения И ЗначениеЗаполнено(ПутьЛогаВыполненияСценариев) Тогда ВызватьИсключение "Нельзя получать лог выполнения без включенного признака ожидания выполнения 1С"; - КонецЕсли; + КонецЕсли; Если ЗначениеЗаполнено(ПутьКФайлуСтатусаВыполнения) Тогда ОбщиеМетоды.УдалитьФайлЕслиОнСуществует(ПутьКФайлуСтатусаВыполнения); @@ -187,16 +187,16 @@ Если ЗначениеЗаполнено(ПутьЛогаВыполненияСценариев) Тогда ОбщиеМетоды.УдалитьФайлЕслиОнСуществует(ПутьЛогаВыполненияСценариев); КонецЕсли; - + Попытка Если ОжидатьЗавершения Тогда ЗапуститьВРежимеПредприятияСЛогФайлом( - ПараметрЗапуска, ОбработкаДляЗапуска, + ПараметрЗапуска, ОбработкаДляЗапуска, ПутьЛогаВыполненияСценариев, ТолстыйКлиент, ДополнительныеКлючиЗапуска); - Иначе + Иначе ЗапуститьВРежимеПредприятия( - ПараметрЗапуска, ОбработкаДляЗапуска, + ПараметрЗапуска, ОбработкаДляЗапуска, ТолстыйКлиент, ДополнительныеКлючиЗапуска, Ложь); КонецЕсли; @@ -230,12 +230,12 @@ Лог.Информация("Выполняю команду/действие в режиме 1С:Предприятие"); ТекущаяПроцедура = "ЗапуститьВРежимеПредприятия"; - + Если ТолстыйКлиент=Ложь Тогда ТонкийКлиент1С = УправлениеКонфигуратором.ПутьКТонкомуКлиенту1С(УправлениеКонфигуратором.ПутьКПлатформе1С()); УправлениеКонфигуратором.ПутьКПлатформе1С(ТонкийКлиент1С); КонецЕсли; - + УправлениеКонфигуратором.УстановитьПризнакОжиданияВыполненияПрограммы(ОжидатьЗавершения); Если Не ОжидатьЗавершения Тогда @@ -246,13 +246,13 @@ Если Не ПустаяСтрока(ОбработкаДляЗапуска) Тогда ДополнительныеКлючи = "" + ДополнительныеКлючи + " /Execute"+ОбщиеМетоды.ОбернутьПутьВКавычки(ОбработкаДляЗапуска); КонецЕсли; - + Лог.Отладка("ДополнительныеКлючи:"+ДополнительныеКлючи); Лог.Отладка("ПараметрЗапуска:"+ПараметрЗапуска); - + Попытка - УправлениеКонфигуратором.ЗапуститьВРежимеПредприятия(ПараметрЗапуска, - ?(ТипЗнч(ТолстыйКлиент)=Тип("Булево"), Не ТолстыйКлиент, ТолстыйКлиент), + УправлениеКонфигуратором.ЗапуститьВРежимеПредприятия(ПараметрЗапуска, + ?(ТипЗнч(ТолстыйКлиент)=Тип("Булево"), Не ТолстыйКлиент, ТолстыйКлиент), ДополнительныеКлючи ); Текст = УправлениеКонфигуратором.ВыводКоманды(); @@ -279,7 +279,7 @@ // ДополнительныеКлючиЗапуска - <Строка> - <описание параметра> // Процедура ЗапуститьВРежимеПредприятияСЛогФайлом(Знач ПараметрЗапуска, - Знач ОбработкаДляЗапуска, + Знач ОбработкаДляЗапуска, Знач ПутьЛогаВыполненияСценариев, Знач ТолстыйКлиент = Ложь, Знач ДополнительныеКлючиЗапуска = "") Экспорт @@ -287,7 +287,7 @@ Лог.Информация("Выполняю команду/действие в режиме 1С:Предприятие"); ТекущаяПроцедура = "ЗапуститьВРежимеПредприятияСЛогФайлом"; - + УправлениеКонфигуратором.УстановитьПризнакОжиданияВыполненияПрограммы(Истина); ПутьДамп = ВременныеФайлы.НовоеИмяФайла(); @@ -297,7 +297,7 @@ Если Не ПустаяСтрока(ОбработкаДляЗапуска) Тогда ДополнительныеКлючи = "" + ДополнительныеКлючи + " /Execute"+ОбщиеМетоды.ОбернутьПутьВКавычки(ОбработкаДляЗапуска); КонецЕсли; - + Лог.Отладка("ДополнительныеКлючи:"+ДополнительныеКлючи); Лог.Отладка("ПараметрЗапуска:"+ПараметрЗапуска); @@ -326,7 +326,7 @@ Приложение = УправлениеКонфигуратором.ПутьКПлатформе1С(); КонецЕсли; - Если Найти(Приложение, " ") > 0 Тогда + Если Найти(Приложение, " ") > 0 Тогда Приложение = ОбщиеМетоды.ОбернутьПутьВКавычки(Приложение); КонецЕсли; Приложение = Приложение + " " + СтрокаЗапуска; @@ -367,7 +367,7 @@ Процедура ЗапуститьПроцесс1С(Знач СтрокаЗапуска, Знач ПутьКФайлуЛога) ПериодОпросаВМиллисекундах = 1000; - + НадоЧитатьЛог = Истина; КолСтрокЛогаПрочитано = 0; @@ -384,55 +384,55 @@ Если НадоЧитатьЛог Тогда ВывестиНовыеСообщения(ПутьКФайлуЛога, КолСтрокЛогаПрочитано); - КонецЕсли; - + КонецЕсли; + КонецЦикла; - + КонецПроцедуры //ЗапуститьПроцесс1С Процедура ВывестиНовыеСообщения(ИмяФайлаЛога, КолСтрокЛогаПрочитано) - Попытка + Попытка МассивСтрок = ПолучитьНовыеСтрокиЛога(ИмяФайлаЛога, КолСтрокЛогаПрочитано); Для Каждого Стр Из МассивСтрок Цикл Если СокрЛП(Стр) = "" Тогда Продолжить; - КонецЕсли; + КонецЕсли; Лог.Информация(СокрЛП(Стр)); КонецЦикла; Исключение Лог.Ошибка(ОписаниеОшибки()); КонецПопытки; - + КонецПроцедуры Функция ПолучитьНовыеСтрокиЛога(Знач ИмяФайла, КолСтрокЛогаПрочитано) Файл = Новый Файл(ИмяФайла); Если Не Файл.Существует() Тогда Возврат Новый Массив; - КонецЕсли; - + КонецЕсли; + Текст = Новый ЧтениеТекста; Текст.Открыть(ИмяФайла, "UTF-8",,, Ложь); - + ВесьТекст = Текст.Прочитать(); - + Текст.Закрыть(); - + Массив = Новый Массив(); - + МассивСтрок = СтрРазделить(ВесьТекст, Символы.ПС, Истина); Если МассивСтрок[МассивСтрок.Количество() - 1] = "" Тогда МассивСтрок.Удалить(МассивСтрок.Количество() - 1); КонецЕсли; - + Для Ккк = (КолСтрокЛогаПрочитано + 1) По МассивСтрок.Количество() Цикл Массив.Добавить(МассивСтрок[Ккк-1]); - КонецЦикла; - + КонецЦикла; + КолСтрокЛогаПрочитано = МассивСтрок.Количество(); - + Возврат Массив; -КонецФункции //ПолучитьНовыеСтрокиЛога +КонецФункции //ПолучитьНовыеСтрокиЛога // <Описание процедуры> // @@ -453,7 +453,7 @@ Ожидаем.Что(СтрокаПодключенияХранилище, ТекущаяПроцедура+" не задана строка подключения к хранилищу").Заполнено(); Ожидаем.Что(ПользовательХранилища, ТекущаяПроцедура+" не задан пользователь хранилища").Заполнено(); - + Параметры = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаПодключенияХранилище+""""); @@ -463,12 +463,12 @@ Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); КонецЕсли; - Параметры.Добавить("/ConfigurationRepositoryUpdateCfg"); + Параметры.Добавить("/ConfigurationRepositoryUpdateCfg"); Параметры.Добавить("-force"); Если Не ПустаяСтрока(ВерсияХранилища) Тогда Параметры.Добавить("-v" + ВерсияХранилища); КонецЕсли; - + Если Не ПустаяСтрока(ДополнительныеКлючиЗапуска) Тогда Параметры.Добавить(ДополнительныеКлючиЗапуска); КонецЕсли; @@ -498,7 +498,7 @@ Процедура СоздатьХранилище(Знач ПутьХранилища, Знач ЛогинАдминистратора, Знач ПарольАдминистратора) Экспорт Лог.Информация("Выполняю создание хранилища конфигурации"); - + ТекущаяПроцедура = "СоздатьХранилище"; Ожидаем.Что(ПутьХранилища, ТекущаяПроцедура+" не задана строка подключения к хранилищу").Заполнено(); @@ -519,7 +519,7 @@ Попытка ХранилищеКонфигурации.СоздатьХранилищеКонфигурации(ПутьХранилища); - + Лог.Информация("Создание хранилища конфигурации завершено"); Исключение Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); @@ -527,7 +527,7 @@ ВызватьИсключение ТекущаяПроцедура + " |" + Сообщение; КонецПопытки; - + КонецПроцедуры // Создать хранилище 1С @@ -542,7 +542,7 @@ Знач ЗаменитьКонфигурациюБД = Истина) Экспорт Лог.Информация("Выполняю подключение к хранилищу конфигурации"); - + ТекущаяПроцедура = "ПодключитьсяКХранилищу"; // Ожидаем.Что(ПутьХранилища, ТекущаяПроцедура+" не задана строка подключения к хранилищу").Заполнено(); @@ -563,7 +563,7 @@ Попытка ХранилищеКонфигурации.ПодключитьсяКХранилищу(ИгнорироватьНаличиеПодключеннойБД, ЗаменитьКонфигурациюБД); - + Лог.Информация("Подключение к хранилищу конфигурации завершено"); Исключение Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); @@ -571,7 +571,7 @@ ВызватьИсключение ТекущаяПроцедура + " |" + Сообщение; КонецПопытки; - + КонецПроцедуры // Отлючить конфигурацию от хранилища @@ -583,12 +583,12 @@ ТекущаяПроцедура = "ОтключитьсяОтХранилища"; Лог.Информация("Выполняю отключение от хранилища конфигурации"); - + Параметры = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); - Параметры.Добавить("/ConfigurationRepositoryUnbindCfg"); + Параметры.Добавить("/ConfigurationRepositoryUnbindCfg"); Параметры.Добавить("-force"); - + Если Не ПустаяСтрока(ДополнительныеКлючиЗапуска) Тогда Параметры.Добавить(ДополнительныеКлючиЗапуска); КонецЕсли; @@ -605,7 +605,7 @@ Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды()); ВызватьИсключение ТекущаяПроцедура; КонецПопытки; - + КонецПроцедуры // Создать пользователя хранилища 1С @@ -619,11 +619,11 @@ // РольПользователя - <Строка> - <описание параметра> // Процедура СоздатьПользователяХранилища(Знач ПутьХранилища, Знач Логин, Знач Пароль, - Знач ЛогинПользователя, Знач ПарольПользователя, + Знач ЛогинПользователя, Знач ПарольПользователя, Знач РольПользователя) Экспорт Лог.Информация("Выполняю создание пользователя хранилища конфигурации"); - + ТекущаяПроцедура = "СоздатьПользователяХранилища"; УправлениеКонфигуратором.СоздатьФайловуюБазу(КаталогВременнойИБ); @@ -637,7 +637,7 @@ Попытка ХранилищеКонфигурации.ДобавитьПользователяВХранилище(ЛогинПользователя, ПарольПользователя, РольПользователя); - + Лог.Информация("Создание пользователя хранилища конфигурации завершено"); Исключение Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); @@ -645,7 +645,7 @@ ВызватьИсключение ТекущаяПроцедура + " |" + Сообщение; КонецПопытки; - + КонецПроцедуры Процедура КопироватьПользователейИзХранилища(Знач ПутьХранилища, Знач Логин, Знач Пароль, @@ -653,7 +653,7 @@ Знач ВосстановитьУдаленного = Ложь) Экспорт Лог.Информация("Выполняю копирование пользователей из хранилища конфигурации"); - + ТекущаяПроцедура = "КопироватьПользователейИзХранилища"; УправлениеКонфигуратором.СоздатьФайловуюБазу(КаталогВременнойИБ); @@ -671,7 +671,7 @@ ЛогинКопия, ПарольКопия, ВосстановитьУдаленного); - + Лог.Информация("Копирование пользователей из хранилища конфигурации завершено"); Исключение Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); @@ -693,26 +693,26 @@ // Процедура СохранитьВерсиюХранилищаВФайл(Знач ПутьХранилища, Знач ЛогинАдминистратора, Знач ПарольАдминистратора, Знач ВерсияХранилища, Знач ПутьКФайлу) Экспорт - + Лог.Информация("Выполняю выгрузку версии конфигурации из хранилища"); - + ТекущаяПроцедура = "ВыгрузитьВерсиюХранилищаВФайл"; - + Ожидаем.Что(ПутьХранилища, ТекущаяПроцедура+" не задана строка подключения к хранилищу").Заполнено(); Ожидаем.Что(ЛогинАдминистратора, ТекущаяПроцедура+" не задан пользователь хранилища").Заполнено(); - + УправлениеКонфигуратором.СоздатьФайловуюБазу(КаталогВременнойИБ); УправлениеКонфигуратором.УстановитьКонтекст("/F " + КаталогВременнойИБ, "", ""); - + ХранилищеКонфигурации = Новый МенеджерХранилищаКонфигурации(); ХранилищеКонфигурации.УстановитьУправлениеКонфигуратором(УправлениеКонфигуратором); ХранилищеКонфигурации.УстановитьПараметрыАвторизации(ЛогинАдминистратора, ПарольАдминистратора); - + ХранилищеКонфигурации.УстановитьПутьКХранилищу(ПутьХранилища); - + Попытка ХранилищеКонфигурации.СохранитьВерсиюКонфигурацииВФайл(ВерсияХранилища, ПутьКФайлу); - + Лог.Информация("Выгрузка конфигурации из хранилища завершена"); Исключение Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); @@ -720,7 +720,7 @@ ВызватьИсключение ТекущаяПроцедура + " |" + Сообщение; КонецПопытки; - + КонецПроцедуры // Захват объектов для редактирования в хранилище конфигурации @@ -739,33 +739,33 @@ Процедура ЗахватитьОбъектыВХранилище(Знач ПутьХранилища, Знач Логин, Знач Пароль, Знач ПутьКФайлуСоСпискомОбъектов = "", Знач ПолучатьЗахваченныеОбъекты = Ложь) Экспорт - + Лог.Информация("Выполняю захват объектов в хранилище"); - + ТекущаяПроцедура = "ЗахватитьОбъектыВХранилище"; - + Ожидаем.Что( ПутьХранилища, ТекущаяПроцедура + " не задана строка подключения к хранилищу").Заполнено(); Ожидаем.Что( Логин, ТекущаяПроцедура + " не задан пользователь хранилища").Заполнено(); - + ХранилищеКонфигурации = Новый МенеджерХранилищаКонфигурации(); ХранилищеКонфигурации.УстановитьУправлениеКонфигуратором(УправлениеКонфигуратором); ХранилищеКонфигурации.УстановитьПараметрыАвторизации(Логин, Пароль); - + ХранилищеКонфигурации.УстановитьПутьКХранилищу(ПутьХранилища); - + Попытка ХранилищеКонфигурации.ЗахватитьОбъектыВХранилище(ПутьКФайлуСоСпискомОбъектов, ПолучатьЗахваченныеОбъекты); - + Лог.Информация("Захват объектов завершен"); - + Исключение Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды()); ВызватьИсключение ТекущаяПроцедура + " |" + Сообщение; КонецПопытки; - + КонецПроцедуры // Помещение изменений объектов в хранилище конфигурации @@ -789,33 +789,33 @@ Знач Комментарий = "", Знач ОставитьОбъектыЗахваченными = Ложь, Знач ИгнорироватьУдаленные = Ложь) Экспорт - + Лог.Информация("Выполняю помещение объектов в хранилище"); - + ТекущаяПроцедура = "ПоместитьИзмененияОбъектовВХранилище"; - + Ожидаем.Что( ПутьХранилища, ТекущаяПроцедура + " не задана строка подключения к хранилищу").Заполнено(); Ожидаем.Что( Логин, ТекущаяПроцедура + " не задан пользователь хранилища").Заполнено(); - + ХранилищеКонфигурации = Новый МенеджерХранилищаКонфигурации(); ХранилищеКонфигурации.УстановитьУправлениеКонфигуратором(УправлениеКонфигуратором); ХранилищеКонфигурации.УстановитьПараметрыАвторизации(Логин, Пароль); - + ХранилищеКонфигурации.УстановитьПутьКХранилищу(ПутьХранилища); - + Попытка ХранилищеКонфигурации.ПоместитьИзмененияОбъектовВХранилище(ПутьКФайлуСоСпискомОбъектов, Комментарий, ОставитьОбъектыЗахваченными, ИгнорироватьУдаленные); - + Лог.Информация("Помещение объектов завершено"); - + Исключение Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды()); ВызватьИсключение ТекущаяПроцедура + " |" + Сообщение; КонецПопытки; - + КонецПроцедуры // Выгружает файл конфигурации из ИБ @@ -827,7 +827,7 @@ Лог.Информация("Запускаю выгрузку конфигурации в файл"); ТекущаяПроцедура = "ВыгрузитьКонфигурациюВФайл"; - + Попытка УправлениеКонфигуратором.ВыгрузитьКонфигурациюВФайл(ПутьКНужномуФайлуКонфигурации); Текст = УправлениеКонфигуратором.ВыводКоманды(); @@ -856,13 +856,13 @@ Знач ИспользоватьПереименования = Ложь) Экспорт КаталогРаспаковки = ?(ИспользоватьПереименования, ВременныеФайлы.СоздатьКаталог(), КаталогВыгрузки); - + ФайлОбъект = Новый Файл(ФайлВерсии); ТолькоИзмененные = (ТолькоИзмененные И ФайлОбъект.Существует()); ИспользоватьПереименования = ?(ТолькоИзмененные, Ложь, ИспользоватьПереименования); УправлениеКонфигуратором.ВыгрузитьКонфигурациюВФайлы(КаталогРаспаковки, , ТолькоИзмененные, ФайлВерсии); Если ИспользоватьПереименования Тогда - РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогРаспаковки, КаталогВыгрузки, ""); + РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогРаспаковки, КаталогВыгрузки, ""); КонецЕсли; Лог.Информация("Выгрузка в исходники завершена."); @@ -871,7 +871,7 @@ // Выполняет перенос файлов из каталога плоской выгрузки в каталог с иерархической структурой метаданных. // -Процедура РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(Знач КаталогПлоскойВыгрузки, +Процедура РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(Знач КаталогПлоскойВыгрузки, Знач КаталогИерархическойВыгрузки, Знач Формат) Лог.Отладка("Раскладываем модули по папкам согласно иерархии метаданных"); @@ -928,7 +928,7 @@ ФайлКаталога = Новый Файл(КаталогФормы); Если ФайлКаталога.Существует() Тогда УдалитьФайлы(ФайлКаталога.ПолноеИмя, ПолучитьМаскуВсеФайлы()); - КонецЕсли; + КонецЕсли; СоздатьКаталог(КаталогФормы); УпаковщикМетаданных.РаспаковатьКонтейнерМетаданных(НовыйФайл.ПолноеИмя, КаталогФормы); КонецЕсли; @@ -961,12 +961,12 @@ // ФайлВерсии - Строка - Путь к файлу версии // ИспользоватьПереименования - Булево - Переименовывать файлы в удобные имена и раскладывать по папкам согласно иерархии метаданных // -Процедура ВыгрузитьКонфигурациюВИсходники(Знач ФайлКонфигурации, Знач ВыходнойКаталог, +Процедура ВыгрузитьКонфигурациюВИсходники(Знач ФайлКонфигурации, Знач ВыходнойКаталог, Знач ФайлВерсии = "", Знач ИспользоватьПереименования = Ложь) Экспорт Лог.Информация("Запускаю выгрузку конфигурации в исходники"); ТекущаяПроцедура = "ВыгрузитьКонфигурациюВИсходники"; - ОбъектФайл = Новый Файл(ФайлКонфигурации); + ОбъектФайл = Новый Файл(ФайлКонфигурации); Если ОбъектФайл.Существует() = Ложь Тогда ВызватьИсключение СтроковыеФункции.ПодставитьПараметрыВСтроку("Файл cf %1 не найден", ФайлКонфигурации); КонецЕсли; @@ -974,7 +974,7 @@ ТолькоИзмененные = (ЗначениеЗаполнено(ФайлВерсии) И Новый Файл(ФайлВерсии).Существует()); КаталогПлоскойВыгрузки = ВременныеФайлы.СоздатьКаталог(); - КаталогВыгрузки = Новый Файл(ВыходнойКаталог); + КаталогВыгрузки = Новый Файл(ВыходнойКаталог); Если КаталогВыгрузки.Существует() = Ложь Тогда СоздатьКаталог(ВыходнойКаталог); КонецЕсли; @@ -995,10 +995,10 @@ // ИмяРасширения - Строка - Имя расширения // Процедура ВыгрузитьРасширениеВФайл(Знач ПутьКНужномуФайлуРасширения, Знач ИмяРасширения) Экспорт - + Лог.Информация("Запускаю выгрузку расширения в файл"); ТекущаяПроцедура = "ВыгрузитьРасширенияВФайл"; - + Попытка ПараметрыЗапуска = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); @@ -1006,7 +1006,7 @@ ПараметрыЗапуска.Добавить(ОбщиеМетоды.ПолныйПуть(ПутьКНужномуФайлуРасширения)); ПараметрыЗапуска.Добавить("-Extension """ + ИмяРасширения + """"); УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска); - + Текст = УправлениеКонфигуратором.ВыводКоманды(); Если Не ПустаяСтрока(Текст) Тогда Лог.Информация(Текст); @@ -1017,7 +1017,7 @@ КонецПопытки; Лог.Информация("Выгрузка в файл завершена."); - + КонецПроцедуры //ВыгрузитьКонфигурациюВФайл // Собирает из исходников расширение с указанным имененм @@ -1038,10 +1038,10 @@ ПараметрыЗапуска.Добавить("-Extension """ + ИмяРасширения + """"); Если Обновить Тогда - ПараметрыЗапуска.Добавить("/UpdateDBCfg"); + ПараметрыЗапуска.Добавить("/UpdateDBCfg"); КонецЕсли; - Конфигуратор.ВыполнитьКоманду(ПараметрыЗапуска); + Конфигуратор.ВыполнитьКоманду(ПараметрыЗапуска); Лог.Информация("Сборка/загрузка расширения %1 завершена", ИмяРасширения); @@ -1060,10 +1060,10 @@ // ПутьКВыгружаемомуФайлуСДанными - Строка - Путь к результату - выгружаемому файлу с данными (*.dt) // Процедура ВыгрузитьИнфобазуВФайл(Знач ПутьКВыгружаемомуФайлуСДанными) Экспорт - + Лог.Информация("Запускаю выгрузку информационной базы в файл"); ТекущаяПроцедура = "ВыгрузитьИнфобазуВФайл"; - + Попытка УправлениеКонфигуратором.ВыгрузитьИнформационнуюБазу(ПутьКВыгружаемомуФайлуСДанными); Текст = УправлениеКонфигуратором.ВыводКоманды(); @@ -1074,13 +1074,13 @@ Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды()); ВызватьИсключение ТекущаяПроцедура; КонецПопытки; - + Лог.Информация("Выгрузка в файл завершена."); - + КонецПроцедуры //ВыгрузитьИнфобазуВФайл Функция ВыполнитьСинтаксическийКонтроль(Знач КоллекцияПроверок, - РезультатПроверки, + РезультатПроверки, Знач СтрокаПодключенияХранилище = "", Знач ПользовательХранилища = "", Знач ПарольХранилища = "") Экспорт @@ -1097,28 +1097,28 @@ Лог.Информация("Результат синтакс-контроля: %1", РезультатПроверки); Возврат Успешно; - + КонецФункции -Процедура СобратьИзИсходниковТекущуюКонфигурацию(Знач ВходнойКаталог, +Процедура СобратьИзИсходниковТекущуюКонфигурацию(Знач ВходнойКаталог, Знач СписокФайловДляЗагрузки = "", СниматьСПоддержки = Ложь, ОбновитьФайлВерсий = Истина) Экспорт Перем НеобходимоОбновлять, ИмяВременногоФайла; Лог.Информация("Загрузка конфигурации из файлов " + ВходнойКаталог); НеобходимоОбновлять = Ложь; - КаталогВыгрузки = Новый Файл(ВходнойКаталог); + КаталогВыгрузки = Новый Файл(ВходнойКаталог); Если КаталогВыгрузки.Существует() = Ложь Тогда ВызватьИсключение СтроковыеФункции.ПодставитьПараметрыВСтроку("Каталог исходников %1 не найден", КаталогВыгрузки.ПолноеИмя); КонецЕсли; ФайлПереименований = Новый Файл(ОбъединитьПути(ВходнойКаталог, "renames.txt")); - Если ФайлПереименованийВалиден(ФайлПереименований) Тогда + Если ФайлПереименованийВалиден(ФайлПереименований) Тогда КаталогЗагрузки = ПодготовитьКаталогЗагрузкиПоФайлуПереименований(ВходнойКаталог, ФайлПереименований.ПолноеИмя); Иначе КаталогЗагрузки = ВходнойКаталог; КонецЕсли; Конфигуратор = УправлениеКонфигуратором(); - + Если СниматьСПоддержки = Истина Тогда ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска(); ПараметрыЗапуска.Добавить("/ConfigurationRepositoryUnbindCfg -force"); @@ -1145,8 +1145,8 @@ Элемент = ОбщиеМетоды.ПолныйПуть(Элемент); КонецЦикла; ТекстДляЗаписи = СтрСоединить(МассивСтрок, Символы.ПС); - - ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); + + ИмяВременногоФайла = ВременныеФайлы.НовоеИмяФайла("txt"); Запись = Новый ЗаписьТекста(ИмяВременногоФайла); Запись.Записать(ТекстДляЗаписи); Запись.Закрыть(); @@ -1157,9 +1157,9 @@ Если НеобходимоОбновлять Тогда Конфигуратор.ОбновитьКонфигурациюБазыДанных(Ложь, Истина); КонецЕсли; - + Лог.Информация("Загрузка конфигурации из файлов успешно завершена!"); - + КонецПроцедуры //СобратьИзИсходниковТекущуюКонфигурацию // Загружает файл конфигурации в текущую базу данных. @@ -1172,10 +1172,10 @@ Лог.Информация("Загружаем файл конфигурации %1", ПутьКФайлу); ФайлЗагрузки = Новый Файл(ПутьКФайлу); - Ожидаем.Что(ФайлЗагрузки.Существует(), "Путь к файлу загрузки не существует "+ФайлЗагрузки.ПолноеИмя).ЕстьИстина(); - + Ожидаем.Что(ФайлЗагрузки.Существует(), "Путь к файлу загрузки не существует "+ФайлЗагрузки.ПолноеИмя).ЕстьИстина(); + Конфигуратор = УправлениеКонфигуратором(); - + Если ТипЗнч(СниматьСПоддержки) = Тип("Булево") И СниматьСПоддержки Тогда ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска(); ПараметрыЗапуска.Добавить("/ConfigurationRepositoryUnbindCfg -force"); @@ -1190,7 +1190,7 @@ Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлЗагрузки.ПолноеИмя); Лог.Информация("Загрузка конфигурации из файла cf успешно завершена!"); - + КонецПроцедуры // Загружает файл расширения в текущую базу данных. @@ -1202,23 +1202,23 @@ Лог.Информация("Загружаю файл расширения %1", ПутьКФайлу); ФайлЗагрузки = Новый Файл(ПутьКФайлу); - Ожидаем.Что(ФайлЗагрузки.Существует(), "Путь к файлу загрузки не существует "+ФайлЗагрузки.ПолноеИмя).ЕстьИстина(); - + Ожидаем.Что(ФайлЗагрузки.Существует(), "Путь к файлу загрузки не существует "+ФайлЗагрузки.ПолноеИмя).ЕстьИстина(); + Конфигуратор = УправлениеКонфигуратором(); Конфигуратор.ЗагрузитьРасширениеИзФайла(ФайлЗагрузки.ПолноеИмя, ИмяРасширения); Лог.Информация("Загрузка расширения из cfe-файла успешно завершена!"); - + КонецПроцедуры -// { приватная часть +// { приватная часть Функция ПолучитьРезультатыСинтаксическогоКонтроля(Знач Конфигуратор, Знач КоллекцияПроверок, ЛогПроверкиИзКонфигуратора, Знач СтрокаПодключенияХранилище, Знач ПользовательХранилища, Знач ПарольХранилища) - + Ключи = ПолучитьКлючиПроверкиКонфигурации(КоллекцияПроверок); Успешно = Истина; @@ -1230,15 +1230,15 @@ ЛогПроверкиИзКонфигуратора = Конфигуратор.ВыводКоманды(); Исключение ЛогПроверкиИзКонфигуратора = Конфигуратор.ВыводКоманды(); - Успешно = Ложь; + Успешно = Ложь; КонецПопытки; - + Возврат Успешно; - + КонецФункции Функция ПолучитьКлючиПроверкиКонфигурации(Знач КоллекцияПроверок) - + Ключи = Новый Соответствие; Если КоллекцияПроверок = Неопределено Тогда Ключи.Вставить("-ThinClient", Истина); @@ -1250,20 +1250,20 @@ Для каждого Ключ Из КоллекцияПроверок Цикл Если Ключ = "--mode" Тогда Продолжить; - КонецЕсли; + КонецЕсли; Ключи.Вставить(Ключ, Истина); КонецЦикла; КонецЕсли; Возврат Ключи; - + КонецФункции Функция ПолучитьЛог() Если Лог = Неопределено Тогда Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы()); КонецЕсли; - Возврат Лог; + Возврат Лог; КонецФункции Функция ПодготовитьКаталогЗагрузкиПоФайлуПереименований(ВходнойКаталог, ФайлПереименований) @@ -1274,16 +1274,16 @@ БылаОшибка = Ложь; Стр = Текст.ПрочитатьСтроку(); Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки - Если ПараметрыСистемы.ЭтоWindows = Ложь Тогда + Если ПараметрыСистемы.ЭтоWindows = Ложь Тогда Стр = СтрЗаменить(Стр, "\", "/"); КонецЕсли; - + Индекс = Найти(Стр, "-->"); Если Индекс > 0 Тогда ИмяНовогоФайла = ОбъединитьПути(КаталогВременнойСтруктуры, Лев(Стр, Индекс-1)); - ФайлНовый = Новый Файл(ИмяНовогоФайла); + ФайлНовый = Новый Файл(ИмяНовогоФайла); КаталогНовый = Новый Файл(ФайлНовый.Путь); - Если НЕ КаталогНовый.Существует() Тогда + Если НЕ КаталогНовый.Существует() Тогда СоздатьКаталог(ФайлНовый.Путь); КонецЕсли; ПутьФайлСтарый = ОбъединитьПути(ВходнойКаталог, Сред(Стр, Индекс+3)); @@ -1297,38 +1297,38 @@ СоздатьКаталог(КаталогФормыНовый); МассивФайлов = НайтиФайлы(КаталогФормыСтарый, ПолучитьМаскуВсеФайлы()); Для Каждого Элемент из МассивФайлов Цикл - Лог.Отладка("Копируем "+Элемент.ПолноеИмя + "--> "+ОбъединитьПути(КаталогФормыНовый, Элемент.Имя)); + Лог.Отладка("Копируем "+Элемент.ПолноеИмя + "--> "+ОбъединитьПути(КаталогФормыНовый, Элемент.Имя)); КопироватьФайл(Элемент.ПолноеИмя, ОбъединитьПути(КаталогФормыНовый, Элемент.Имя)); КонецЦикла; - + УпаковщикМетаданных.УпаковатьКонтейнерМетаданных(КаталогФормыНовый, ФайлНовый.ПолноеИмя); КонецЕсли; Иначе - БылаОшибка = Истина; + БылаОшибка = Истина; КонецЕсли; КонецЕсли; - + Стр = Текст.ПрочитатьСтроку(); - + КонецЦикла; Если БылаОшибка = Истина Тогда МассивФайлов = НайтиФайлы(ВходнойКаталог, ПолучитьМаскуВсеФайлы(), Истина); - Для Каждого Элемент из МассивФайлов Цикл - Если СоответствиеФайлов.Получить(Элемент.ПолноеИмя) = Неопределено Тогда + Для Каждого Элемент из МассивФайлов Цикл + Если СоответствиеФайлов.Получить(Элемент.ПолноеИмя) = Неопределено Тогда ИмяНовогоФайла = ОбъединитьПути(КаталогВременнойСтруктуры, Сред(Элемент.ПолноеИмя, СтрДлина(ВходнойКаталог))); ФайлНовый = Новый Файл(ИмяНовогоФайла); КаталогНовый = Новый Файл(ФайлНовый.Путь); - Если НЕ КаталогНовый.Существует() Тогда + Если НЕ КаталогНовый.Существует() Тогда СоздатьКаталог(ФайлНовый.Путь); КонецЕсли; КопироватьФайл(Элемент.ПолноеИмя, ИмяНовогоФайла); КонецЕсли; КонецЦикла; КонецЕсли; - + Возврат КаталогВременнойСтруктуры; - + КонецФункции Функция ФайлПереименованийВалиден(Знач ФайлПереименований) @@ -1339,15 +1339,15 @@ Если ФайлКонфигурации.ПолучитьВремяИзменения() <= ФайлПереименований.ПолучитьВремяИзменения() Тогда Рез = Истина; - Лог.Отладка("Файл конфигурации %1 создан не позже файла переименований %2", + Лог.Отладка("Файл конфигурации %1 создан не позже файла переименований %2", ФайлКонфигурации.Имя, ФайлПереименований.Имя); Лог.Отладка("Данные о переименованиях использовать можно."); Иначе - Лог.Отладка("Файл конфигурации %1 создан позже файла переименований %2", + Лог.Отладка("Файл конфигурации %1 создан позже файла переименований %2", ФайлКонфигурации.Имя, ФайлПереименований.Имя); - Лог.Отладка(" Дата/время файла конфигурации %1 - %2", + Лог.Отладка(" Дата/время файла конфигурации %1 - %2", ФайлКонфигурации.Имя, ФайлКонфигурации.ПолучитьВремяИзменения()); - Лог.Отладка(" Дата/время файла переименований %1 - %2", + Лог.Отладка(" Дата/время файла переименований %1 - %2", ФайлПереименований.Имя, ФайлПереименований.ПолучитьВремяИзменения()); Лог.Отладка("Файл переименований использовать нельзя, использую только штатную загрузку через Конфигуратор."); КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" index d2a28d7f..0ebc7243 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" @@ -15,7 +15,7 @@ Лог = ПарамЛог; КонецПроцедуры -Процедура Разобрать(Знач Путь, Знач КаталогВыгрузки, +Процедура Разобрать(Знач Путь, Знач КаталогВыгрузки, Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы = "", Знач КлючКэша = Неопределено) Экспорт Перем КаталогВременнойИБ; @@ -24,7 +24,7 @@ Файл = Новый Файл(Путь); КорневойПутьВыходной = Файл.ПолноеИмя; - + КлючКэша = ?(КлючКэша = Неопределено ИЛИ Не ЗначениеЗаполнено(КлючКэша), "compileepfrunner", КлючКэша); НастройкиИзФайла = ОбщиеМетоды.ПрочитатьНастройкиФайлJSON(ПараметрыСистемы.КорневойПутьПроекта, "./build/cache.json", "./build/cache.json"); @@ -65,9 +65,9 @@ ПапкаИсходников = Новый Файл(ПутьКИсходникам); - Если ПустаяСтрока(СтрокаПодключения) Тогда + Если ПустаяСтрока(СтрокаПодключения) Тогда Конфигуратор = Новый УправлениеКонфигуратором(); - КаталогВременнойИБ = ПолучитьИмяВременногоФайла("tmp"); + КаталогВременнойИБ = ПолучитьИмяВременногоФайла("tmp");//TODO нужно ли удалять временный файл? СоздатьКаталог(КаталогВременнойИБ); Конфигуратор.СоздатьФайловуюБазу(КаталогВременнойИБ); @@ -127,28 +127,28 @@ ВерсияПлатформы = Значение.Получить("version"); ИмяПравила = Значение.Получить("name"); АвтоОбновление = Значение.Получить("autoupdate"); - Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда + Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда Ключ = ИмяПравила; КонецЕсли; - Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда + Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда Возврат; КонецЕсли; ФайлВходящий = Новый Файл(КаталогВходящий); - Если НЕ ФайлВходящий.Существует() Тогда + Если НЕ ФайлВходящий.Существует() Тогда Возврат; КонецЕсли; РежимОдногоКаталога = (ОбщиеМетоды.ПолныйПуть(КаталогВходящий) = ОбщиеМетоды.ПолныйПуть(КаталогИсходящий)); - - Если ФайлВходящий.ЭтоКаталог() Тогда + + Если ФайлВходящий.ЭтоКаталог() Тогда СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); - Иначе + Иначе СписокФайлов = Новый Массив; СписокФайлов.Добавить(ФайлВходящий); КонецЕсли; - + Кэш = КэшПутей.Получить(Ключ); Если Кэш = Неопределено Тогда Лог.Информация("Начало epf to src " + Ключ); @@ -163,14 +163,14 @@ Лог.Отладка("Проверяем изменения epf " + Строка(КаталогВходящий) + "->" + Строка(КаталогИсходящий)); КэшОбновляемый = Новый Соответствие(); - + КоличествоФайлов = СписокФайлов.Количество(); СписокОбработанных = Новый Соответствие(); ПоследнийВыведенныйПроцент = 0; СписокПропущенных = Новый Соответствие(); Для каждого Файл из СписокФайлов Цикл Лог.Отладка("Проверяю на изменение файл <%1>", Файл.ПолноеИмя); - Если Файл.ЭтоКаталог() Тогда + Если Файл.ЭтоКаталог() Тогда Продолжить; КонецЕсли; @@ -188,7 +188,7 @@ ДанныеФайла = Новый Структура("Хеш, Время", "", ""); КонецЕсли; Если ДанныеФайла["Хеш"] <> ДанныеФайлаТекущее["Хеш"] Тогда - //Если СокрЛП(Строка(ДанныеФайла)) <> СокрЛП(Строка(ВремяТекущее)) Тогда + //Если СокрЛП(Строка(ДанныеФайла)) <> СокрЛП(Строка(ВремяТекущее)) Тогда Изменен = Истина; Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " время старое:" + Строка(ДанныеФайла["Время"]) + " новое:" + ДанныеФайлаТекущее["Время"]); Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " хеш старый старое:" + Строка(ДанныеФайла["Хеш"]) + " новое:" + ДанныеФайлаТекущее["Хеш"]); @@ -210,7 +210,7 @@ ОтносительныйПутьФайла = ПолучитьОтносительныйПутьФайла(КаталогВходящийДляРазбора, ИмяФайлаНазначения); ПутьФайлаНазначения = ОбъединитьПути(КаталогИсходящий, ОтносительныйПутьФайла); - + ЕстьИзменения = Истина; Если НЕ ЭтоБинарныйОбъект1С И НЕ РежимОдногоКаталога Тогда @@ -234,12 +234,12 @@ КэшОбновляемый.Вставить(ФайлНовый.ПолноеИмя, Кэш.Получить(ФайлНовый.ПолноеИмя)); Лог.Отладка(СтрШаблон("Завершено копирование файла %1 в каталог %2", Файл.Имя, ФайлНовый.ПолноеИмя)); Продолжить; - ИначеЕсли НЕ ЭтоБинарныйОбъект1С И РежимОдногоКаталога Тогда + ИначеЕсли НЕ ЭтоБинарныйОбъект1С И РежимОдногоКаталога Тогда Продолжить; КонецЕсли; - + Лог.Отладка("Анализируем внешнюю обработку/отчет %1", Файл.ПолноеИмя); - + Лог.Отладка(" относительный путь :%1", ОтносительныйПутьФайла); Лог.Отладка(" источник :%1", КаталогВходящийДляРазбора); Лог.Отладка(" назначение :%1", КаталогИсходящий); @@ -257,12 +257,12 @@ КэшОбновляемый.Вставить(ФайлНовыйКэша.ПолноеИмя, ДанныеФайлаНовый); КонецЕсли; КонецЦикла; - + Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(ФайлНовыйКэша)); СписокОбработанных.Вставить(Файл.ПолноеИмя, Истина); КонецЦикла; - Для каждого Элемент ИЗ СписокОбработанных Цикл + Для каждого Элемент ИЗ СписокОбработанных Цикл Файл = Новый Файл(Элемент.Ключ); Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(Файл)); КонецЦикла; @@ -285,7 +285,7 @@ ОбновитьЗависимыйКэш(АвтоОбновление, КэшПутей, КэшОбновляемый); -КонецПроцедуры +КонецПроцедуры Процедура СледитьЗаИзменениямиФайловВРепозиторииИсходников(Значение, КэшПутей, Фильтр = "", ЕстьИзменения = Ложь) Ключ = Строка(Значение.Получить("inDir")) + "" + Строка(Значение.Получить("outDir")); @@ -302,16 +302,16 @@ ТолькоКопировать = Ложь; КонецЕсли; - Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда + Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда Ключ = ИмяПравила; КонецЕсли; - Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда + Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда Возврат; КонецЕсли; РежимОдногоКаталога = (ОбщиеМетоды.ПолныйПуть(КаталогВходящий) = ОбщиеМетоды.ПолныйПуть(КаталогИсходящий)); - + Кэш = КэшПутей.Получить(Ключ); Если Кэш = Неопределено Тогда Лог.Информация("Начало src to epf:" + Ключ); @@ -332,7 +332,7 @@ КоличествоФайлов = СписокФайлов.Количество(); ПоследнийВыведенныйПроцент = 0; Для каждого Файл из СписокФайлов Цикл - Если Файл.ЭтоКаталог() Тогда + Если Файл.ЭтоКаталог() Тогда Продолжить; КонецЕсли; @@ -369,7 +369,7 @@ Если Файл.Расширение = ".png" Или Файл.Расширение = ".ico" Тогда МаксСчетчикЦикла = 7; //\vanessa\Forms\УправляемаяФорма\Ext\Form\Items\ИмяКартинки\Picture.png КонецЕсли; - + Если НЕ ТолькоКопировать Тогда Для Счетчик = 0 По МаксСчетчикЦикла Цикл ФайлПутьКИсходникамОбработки = Новый Файл(ПутьКИсходникамОбработки); @@ -395,9 +395,9 @@ Лог.Отладка("2 %1 %2", Счетчик, ФайлПутьКИсходникамОбработки.ПолноеИмя); КонецЦикла; КонецЕсли; - + НеобходимоПрервать = Ложь; - Для каждого Элемент из СписокОбработанных Цикл + Для каждого Элемент из СписокОбработанных Цикл Если СтрНайти(Файл.ПолноеИмя, Элемент.Ключ) > 0 Тогда НеобходимоПрервать = Истина; Прервать; @@ -406,7 +406,7 @@ Если НеобходимоПрервать Тогда Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(Файл)); - КонецЕсли; + КонецЕсли; Если ОбработкуНашли = Истина И СписокОбработанных.Получить(ПапкаИсходников) <> Неопределено Тогда Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(Файл)); @@ -416,12 +416,12 @@ КаталогВыгрузкиОбработки = Новый Файл(ОбъединитьПути(КаталогИсходящий, ПолучитьОтносительныйПутьФайла(ОбщиеМетоды.ПолныйПуть(КаталогВходящий), ПапкаИсходников), ПутьОтносительно)).ПолноеИмя; ФС.ОбеспечитьКаталог(КаталогВыгрузкиОбработки); ИмяФайлаОбъекта = СобратьФайлВнешнейОбработки(ПапкаИсходников, КаталогВыгрузкиОбработки, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); - + КаталогФайл = Новый Файл(ПапкаИсходников); КаталогВходящийПолныйПуть = Новый Файл(КаталогВходящий).ПолноеИмя; Лог.Информация("Собирали: %1 изменен %2", КаталогФайл.Имя, СтрЗаменить(КаталогВыгрузкиОбработки, КаталогВходящийПолныйПуть, "")); СписокСобранныхОбработок = НайтиФайлы(КаталогВыгрузкиОбработки, "" + КаталогФайл.Имя + "*"); - + Для каждого ЭлементОбработки из СписокСобранныхОбработок Цикл ДанныеФайлаОбработки = ХэшФайла(ЭлементОбработки); Кэш.Вставить(ЭлементОбработки.ПолноеИмя, ДанныеФайлаОбработки); @@ -440,7 +440,7 @@ КонецЕсли; КопироватьФайл(Файл.ПолноеИмя, НовыйПутьВыгрузки); КонецЕсли; - + ФайлСобранный = Новый Файл(НовыйПутьВыгрузки); ДанныеФайлаСобранный = ХэшФайла(ФайлСобранный); Кэш.Вставить(ФайлСобранный.ПолноеИмя, ДанныеФайлаСобранный); @@ -451,7 +451,7 @@ КонецЕсли; КонецЦикла; - Для каждого Элемент ИЗ СписокОбработанных Цикл + Для каждого Элемент ИЗ СписокОбработанных Цикл Файл = Новый Файл(Элемент.Ключ); Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(Файл)); КонецЦикла; @@ -473,10 +473,10 @@ КонецЕсли; ОбновитьЗависимыйКэш(АвтоОбновление, КэшПутей, КэшОбновляемый); - + КонецПроцедуры -Процедура РазобратьКаталог(Знач ОбъектКаталога, Знач КаталогВыгрузки, Знач КаталогКорень, +Процедура РазобратьКаталог(Знач ОбъектКаталога, Знач КаталогВыгрузки, Знач КаталогКорень, Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы="") Экспорт ПутьКаталога = ОбъектКаталога.ПолноеИмя; @@ -487,11 +487,11 @@ ОтносительныйПутьКаталогаПоТекущемуКаталогу = ФС.ОтносительныйПуть(ТекущийКаталог(), ПутьКаталога); ОтносительныйПутьКаталогаВыгрузкиПоТекущемуКаталогу = ФС.ОтносительныйПуть(ТекущийКаталог(), КаталогВыгрузки); - Лог.Информация("Разбираю внешние обработки из каталога %1 на исходники в каталог %2, корень %3", + Лог.Информация("Разбираю внешние обработки из каталога %1 на исходники в каталог %2, корень %3", ОтносительныйПутьКаталогаПоТекущемуКаталогу, ОтносительныйПутьКаталогаВыгрузкиПоТекущемуКаталогу, ТекущийКаталог()); - + ИмяКаталогаВыгрузки = Новый Файл(КаталогВыгрузки).Имя; - + Файлы = НайтиФайлы(ПутьКаталога, ПолучитьМаскуВсеФайлы()); Если Файлы.Количество() = 0 Тогда @@ -502,25 +502,25 @@ Если Лев(Файл.Имя,4) = ".git" Или Врег(Файл.Имя) = Врег("build") Или Врег(Файл.Имя) = Врег("cache.txt") Тогда Продолжить; КонецЕсли; - + Если Файл.ЭтоКаталог() Тогда Если Лев(Файл.Имя,4) = ".git" Тогда Продолжить; КонецЕсли; - - Если Файл.ЭтоКаталог() И + + Если Файл.ЭтоКаталог() И ОбъединитьПути(Новый Файл(Файл.ПолноеИмя).ПолноеИмя, "./") = ОбъединитьПути(Новый Файл(КаталогВыгрузки).ПолноеИмя, "./") Тогда - + Продолжить; КонецЕсли; ФайлНовый = Новый Файл(Файл.ПолноеИмя); ФайлКаталогВВыгрузке = Новый Файл(ОбъединитьПути(КаталогВыгрузки, ОтносительныйПутьКаталога)); - Если НЕ ФайлКаталогВВыгрузке.Существует() Тогда + Если НЕ ФайлКаталогВВыгрузке.Существует() Тогда Лог.Отладка(СтрШаблон("Создаем новый каталог %1", ФайлКаталогВВыгрузке.ПолноеИмя)); СоздатьКаталог(ФайлКаталогВВыгрузке.ПолноеИмя); КонецЕсли; - + РазобратьКаталог(ФайлНовый, КаталогВыгрузки, КаталогКорень, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); ИначеЕсли ОбщиеМетоды.ТипФайлаПоддерживается(Файл) Тогда @@ -529,36 +529,36 @@ СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); Лог.Отладка(СтрШаблон("Завершена выгрузка файла %1 в каталог %2", Файл.Имя, ИмяКаталогаВыгрузки)); Иначе - + ОтносительныйПутьКаталогаФайла = ФС.ОтносительныйПуть(КаталогКорень, Файл.ПолноеИмя); Лог.Отладка("ОтносительныйПутьКаталогаФайла <" + ОтносительныйПутьКаталогаФайла + ">"); ПутьФайлаИсходников = ОбъединитьПути(КаталогВыгрузки, ОтносительныйПутьКаталогаФайла); Лог.Отладка("ПутьФайлаИсходников <" + ПутьФайлаИсходников + ">"); - + ФайлНовый = Новый Файл(ПутьФайлаИсходников); КаталогНовый = Новый Файл(ФайлНовый.Путь); - Если НЕ КаталогНовый.Существует() Тогда + Если НЕ КаталогНовый.Существует() Тогда СоздатьКаталог(КаталогНовый.ПолноеИмя); КонецЕсли; - + Если ФайлНовый.Существует() = Истина Тогда - + Лог.Отладка(СтрШаблон("Удаляем файл %1", ПутьФайлаИсходников)); Попытка УдалитьФайлы(ФайлНовый.Путь, ФайлНовый.Имя); Исключение Лог.Ошибка("Ошибка удаления файла "+ ПутьФайлаИсходников + ":" + ОписаниеОшибки()); КонецПопытки; - + КонецЕсли; - + КопироватьФайл(Файл.ПолноеИмя, ФайлНовый.ПолноеИмя); - + Лог.Отладка(СтрШаблон("Завершено копирование файла %1 в каталог %2", Файл.Имя, ФайлНовый.ПолноеИмя)); КонецЕсли; КонецЦикла; - - Лог.Информация("Завершена выгрузка каталога %1 в каталог %2, корень %3", + + Лог.Информация("Завершена выгрузка каталога %1 в каталог %2, корень %3", ОтносительныйПутьКаталогаПоТекущемуКаталогу, ОтносительныйПутьКаталогаВыгрузкиПоТекущемуКаталогу, ТекущийКаталог()); КонецПроцедуры @@ -566,71 +566,71 @@ ПутьФайла = Файл.ПолноеИмя; Лог.Отладка(СтрШаблон("Проверка необходимости выгрузки файла %1 в каталог %2, корень %3", ПутьФайла, КаталогВыгрузки, КаталогКорень)); - Попытка + Попытка КаталогИсходников = РазобратьФайлВнутрВнешняяОбработка(Файл, КаталогВыгрузки, КаталогКорень, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); Исключение Лог.Ошибка(ОписаниеОшибки()); РезультатыОбработкиВнешнихОбработок.Вставить(ПутьФайла, ОписаниеОшибки()); КонецПопытки; - + Лог.Отладка(СтрШаблон("Завершена проверка необходимости выгрузки файла %1 в каталог %2, корень %3", ПутьФайла, КаталогВыгрузки, КаталогКорень)); - + Возврат КаталогИсходников; - + КонецФункции Функция РазобратьФайлВнутрВнешняяОбработка(Знач Файл, Знач КаталогВыгрузки, Знач КаталогКорень, Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы="") - + ПутьФайла = Файл.ПолноеИмя; Если Не ТипФайлаПоддерживается(Файл) Тогда ВызватьИсключение "Тип файла """ + Файл.Расширение + """ не поддерживается"; КонецЕсли; - + Ожидаем.Что(Файл.Существует(), "Файл " + ПутьФайла + " должен существовать").ЭтоИстина(); - + ОтносительныйПутьКаталогаФайла = ПолучитьОтносительныйПутьФайла(КаталогКорень, ОбъединитьПути(Файл.Путь, Файл.ИмяБезРасширения)); Лог.Отладка("ОтносительныйПутьКаталогаФайла <" + ОтносительныйПутьКаталогаФайла + ">"); - + ПутьКаталогаИсходников = ОбъединитьПути(КаталогВыгрузки, ОтносительныйПутьКаталогаФайла); Лог.Отладка("ПутьКаталогаИсходников <" + ПутьКаталогаИсходников + ">"); ПапкаИсходников = Новый Файл(ПутьКаталогаИсходников); ОбщиеМетоды.ОбеспечитьПустойКаталог(ПапкаИсходников); ЗапуститьРаспаковкуВнешнихОбработок(Файл, ПапкаИсходников, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); - + Возврат ПапкаИсходников.ПолноеИмя; - + КонецФункции Процедура ЗапуститьРаспаковкуВнешнихОбработок(Знач Файл, Знач ПапкаИсходников, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы) - + Лог.Отладка("Запускаем распаковку файла"); - + ВременныйКаталог = ВременныеФайлы.СоздатьКаталог(); Конфигуратор = Новый УправлениеКонфигуратором(); КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); Конфигуратор.КаталогСборки(КаталогВременнойИБ); - + Если НЕ ПустаяСтрока(СтрокаПодключения) Тогда Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); КонецЕсли; - + Если НЕ ПустаяСтрока(ВерсияПлатформы) Тогда Лог.Отладка(ВерсияПлатформы); Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); КонецЕсли; - + ЛогКонфигуратора = Логирование.ПолучитьЛог("oscript.lib.v8runner"); ЛогКонфигуратора.УстановитьУровень(Лог.Уровень()); - + Параметры = Конфигуратор.ПолучитьПараметрыЗапуска(); Параметры.Добавить("/DumpExternalDataProcessorOrReportToFiles"); Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(ВременныйКаталог)); Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(Файл.ПолноеИмя)); - + Конфигуратор.ВыполнитьКоманду(Параметры); Лог.Отладка("Вывод 1С:Предприятия - " + Конфигуратор.ВыводКоманды()); @@ -652,7 +652,7 @@ НайденныеФайлы = НайтиФайлы(ВременныйКаталог, "*"); Лог.Отладка("Нашли файлов для переименования: " + НайденныеФайлы.Количество()); Для Каждого НайденныйФайл Из НайденныеФайлы Цикл - + Если НормализованноеИмяФайла(НайденныйФайл.Имя) = НормализованноеИмяФайла(Файл.ИмяБезРасширения) Тогда Прервать; КонецЕсли; @@ -666,16 +666,16 @@ УдалитьФайлы(НайденныйФайл.ПолноеИмя); КонецЕсли; КонецЦикла; - + ФС.КопироватьСодержимоеКаталога(ВременныйКаталог, ПапкаИсходников.ПолноеИмя); - + КонецПроцедуры Функция ЗаписатьФайлJSON(ИмяФайла, Значение) Лог.Отладка(ИмяФайла); ФайлСуществующий = Новый Файл(ИмяФайла); - + ПарсерJSON = Новый ПарсерJSON(); JsonСтрока = ПарсерJSON.ЗаписатьJSON(Значение); Запись = Новый ЗаписьТекста(ИмяФайла); @@ -695,14 +695,14 @@ СоответствиеПутей = Новый Соответствие; СоответствиеПутей.Вставить("autoupdate", АвтоОбновление); МассивКешейДляАвтообновления.Добавить(СоответствиеПутей); - ИначеЕсли ТипЗнч(АвтоОбновление) = Тип("Массив") Тогда + ИначеЕсли ТипЗнч(АвтоОбновление) = Тип("Массив") Тогда МассивКешейДляАвтообновления = АвтоОбновление; КонецЕсли; КонецЕсли; - + Для каждого ЭлементМассива Из МассивКешейДляАвтообновления Цикл - + Попытка Кэш = КэшПутей.Получить(ЭлементМассива.Получить("autoupdate")); Для каждого Элемент Из КэшОбновляемый Цикл @@ -717,21 +717,21 @@ Функция СобратьФайлВнешнейОбработки(Знач ПутьКИсходникам, Знач КаталогВыгрузки, Знач СтрокаПодключения, Знач Пользователь, Знач Пароль, Знач ВерсияПлатформы) - + Лог.Отладка("Собираю исходники <" + ПутьКИсходникам + ">"); ПапкаИсходников = Новый Файл(ПутьКИсходникам); ИмяПапки = ПапкаИсходников.Имя; - + НайденныйФайл = НайтиФайлы(ПутьКИсходникам, "*.xml"); Ожидаем.Что(НайденныйФайл.Количество(), "Базовый файл xml <" + ПутьКИсходникам + ">*.xml должен существовать").Больше(0); - + ИмяФайлаОбъекта = КаталогВыгрузки; // ОбъединитьПути(ТекущийКаталог(), КаталогВыгрузки); Лог.Отладка("Собираю исходники ИмяФайлаОбъекта <" + ИмяФайлаОбъекта + ">"); - + СобратьФайлВнешнейОбработкиИзИсходников(НайденныйФайл[0], ИмяФайлаОбъекта, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); Лог.Отладка("Успешно собран файл " + ИмяФайлаОбъекта); - + Возврат ИмяФайлаОбъекта; КонецФункции @@ -742,25 +742,25 @@ Конфигуратор = Новый УправлениеКонфигуратором(); КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); Конфигуратор.КаталогСборки(КаталогВременнойИБ); - + Если НЕ ПустаяСтрока(СтрокаПодключения) Тогда Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); КонецЕсли; - + Если НЕ ПустаяСтрока(ВерсияПлатформы) Тогда Лог.Отладка(ВерсияПлатформы); Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); КонецЕсли; - + ЛогКонфигуратора = Логирование.ПолучитьЛог("oscript.lib.v8runner"); ЛогКонфигуратора.УстановитьУровень(Лог.Уровень()); - + Параметры = Конфигуратор.ПолучитьПараметрыЗапуска(); Параметры.Добавить("/LoadExternalDataProcessorOrReportFromFiles"); Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(ПапкаИсходников.ПолноеИмя)); Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(ИмяФайлаОбъекта)); - + Конфигуратор.ВыполнитьКоманду(Параметры); Лог.Отладка("Вывод 1С:Предприятия - " + Конфигуратор.ВыводКоманды()); Лог.Отладка("Очищаем каталог временной ИБ"); @@ -772,7 +772,7 @@ Если КаталогРаспаковки = "" тогда КаталогРаспаковки = ВременныеФайлы.СоздатьКаталог(); КонецЕсли; - + ЧтениеФайла8 = Новый ЧтениеФайла8(ФайлДляРаспаковки.ПолноеИмя); Для Каждого Элемент Из ЧтениеФайла8.Элементы Цикл ЧтениеФайла8.Извлечь(Элемент, КаталогРаспаковки, Истина); @@ -781,7 +781,7 @@ ВыполнитьСборкуМусора(); ФайлМодуля = Новый Файл(ОбъединитьПути(КаталогРаспаковки, "module")); - Если ФайлМодуля.Существует() Тогда + Если ФайлМодуля.Существует() Тогда ФайлКуда = Новый Файл(ОбъединитьПути(ФайлМодуля.Путь, "Module.bsl")); Лог.Отладка("Перемещаю файл <%1> в <%2>", ФайлМодуля.ПолноеИмя, ФайлКуда.ПолноеИмя); Если ФайлКуда.Существует() Тогда @@ -804,7 +804,7 @@ КопироватьФайл(ФайлМодуля.ПолноеИмя, ОбъединитьПути(ФайлМодуля.Путь, "module") ); КонецЕсли; СтрокаЗапуска = """" + ФайлПрограммыРаспаковки + """ -build -nopack """ + КаталогРаспаковки + """ """ + ФайлДляРаспаковки.ПолноеИмя + """"; - Если НЕ ПараметрыСистемы.ЭтоWindows Тогда + Если НЕ ПараметрыСистемы.ЭтоWindows Тогда СтрокаЗапуска = "sh -c '" + СтрокаЗапуска + "'"; КонецЕсли; Лог.Отладка(СтрокаЗапуска); @@ -814,9 +814,9 @@ КонецПроцедуры Функция ЭтоПутьКИсходнымКодамОбработок(ПутьКПапке) - + Результат = Ложь; - + МассивИмен = НайтиФайлы(ПутьКПапке, "*.xml", Ложь); Для Каждого Элемент из МассивИмен Цикл ЧтениеТекста = Новый ЧтениеТекста(Элемент.ПолноеИмя); @@ -852,17 +852,17 @@ Если ПустаяСтрока(Файл.Расширение) Тогда Возврат Ложь; КонецЕсли; - + Поз = Найти(".epf,.erf,", Файл.Расширение + ","); Возврат Поз > 0; - + КонецФункции Функция ПолучитьОтносительныйПутьФайла(КаталогКорень, ВнутреннийКаталог) - Если ПустаяСтрока(КаталогКорень) Тогда + Если ПустаяСтрока(КаталогКорень) Тогда Возврат ""; КонецЕсли; - + ФайлКорень = Новый Файл(КаталогКорень); ФайлВнутреннийКаталог = Новый Файл(ВнутреннийКаталог); Рез = СтрЗаменить(ФайлВнутреннийКаталог.ПолноеИмя, ФайлКорень.ПолноеИмя, ""); From 79a96e06ca4c8a7227cf42c143a2b2d1d3c98fe6 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 16 Jan 2020 10:38:01 +0300 Subject: [PATCH 07/60] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B1=D0=B5=D0=BB?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index b1daefc8..fb21ca63 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -252,7 +252,7 @@ Попытка УправлениеКонфигуратором.ЗапуститьВРежимеПредприятия(ПараметрЗапуска, - ?(ТипЗнч(ТолстыйКлиент)=Тип("Булево"), Не ТолстыйКлиент, ТолстыйКлиент), + ?(ТипЗнч(ТолстыйКлиент) = Тип("Булево"), Не ТолстыйКлиент, ТолстыйКлиент), ДополнительныеКлючи ); Текст = УправлениеКонфигуратором.ВыводКоманды(); From aa6ffcf7c3edbf8e992054fa5a6936445bbc0a4e Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 16 Jan 2020 10:42:57 +0300 Subject: [PATCH 08/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=BD=D0=B5=D1=81=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=B0=D1=8F=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\320\276\320\264\320\275\320\270\320\272\320\276\320\262.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.os" index 36defedf..430af9d8 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.os" @@ -106,6 +106,6 @@ МенеджерКонфигуратора.СобратьИзИсходниковТекущуюКонфигурацию(ПутьВходящий, , , ОбновлятьФайлВерсий); МенеджерКонфигуратора.ВыгрузитьКонфигурациюВФайл(ПутьИсходящий); - ВременныеФайлы.УдалитьФайл(КаталогВременнойИБ); + ВременныеФайлы.УдалитьФайл(КаталогВременнойБазы); КонецПроцедуры From 12e7741a954177173602cea104cc7714d2c1fbad Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 16 Jan 2020 19:35:00 +0300 Subject: [PATCH 09/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=B2=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D1=81=D0=BA=D0=B0=D0=B7=D0=BA=D0=B0=D1=85=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\200\320\260\321\206\320\270\320\270.os" | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" index 06d2f377..c3c03a42 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" @@ -2,7 +2,7 @@ // // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////// @@ -16,31 +16,31 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Разборка конфигурации в исходники."; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--out", - "Путь к каталогу с исходниками, пример: --src=./cf"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-o", - "Краткая команда 'путь к исходникам --src', пример: -s ./cf"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--in", "Путь к файлу cf (*.cf), --out=./1Cv8.cf"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-i", - "Краткая команда 'Путь к файлу cf --out', пример: -o ./1Cv8.cf"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--out", + "Путь к каталогу с исходниками, пример: --out=./cf"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-o", + "Краткая команда 'путь к исходникам --out', пример: -o ./cf"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--in", "Путь к файлу cf (*.cf), --in=./1Cv8.cf"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-i", + "Краткая команда 'Путь к файлу cf --in', пример: -i ./1Cv8.cf"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--current", "Флаг выгрузки из текущей базы или -с"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-c", "Флаг выгрузки из текущей базы, кратка форма от --current"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--userenames", "Использовать файл переименований renames"); - + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-v", "Путь к файлу версии, краткая от --versions"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--versions", "Путь к файлу версии или -v"); - + Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -63,21 +63,21 @@ ИспользоватьПереименования = ПараметрыКоманды["--userenames"]; МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - + Попытка ИзТекущейКонфигурации = ОбщиеМетоды.ПолучитьПараметры(ПараметрыКоманды, "-c", "--current"); - ИзТекущейКонфигурации = ?(ИзТекущейКонфигурации, ИзТекущейКонфигурации, + ИзТекущейКонфигурации = ?(ИзТекущейКонфигурации, ИзТекущейКонфигурации, НЕ (ЗначениеЗаполнено(ПутьВходящий) И Новый Файл(ПутьВходящий).Существует())); - ТолькоИзмененные = ?(ИспользоватьПереименования, Ложь, Истина); + ТолькоИзмененные = ?(ИспользоватьПереименования, Ложь, Истина); Если ИзТекущейКонфигурации Тогда Лог.Информация("Запускаю выгрузку конфигурации в исходники"); - МенеджерКонфигуратора.Инициализация(ДанныеПодключения.СтрокаПодключения, + МенеджерКонфигуратора.Инициализация(ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, ВерсияПлатформы, ПараметрыКоманды["--uccode"], ДанныеПодключения.КодЯзыка); - МенеджерКонфигуратора.РазобратьНаИсходникиТекущуюКонфигурацию(ПутьИсходящий, ФайлВерсии, + МенеджерКонфигуратора.РазобратьНаИсходникиТекущуюКонфигурацию(ПутьИсходящий, ФайлВерсии, ТолькоИзмененные, ИспользоватьПереименования); Иначе @@ -87,8 +87,8 @@ МенеджерКонфигуратора.Инициализация(СтрокаПодключения, , , ВерсияПлатформы, ПараметрыКоманды["--uccode"], ДанныеПодключения.КодЯзыка); МенеджерКонфигуратора.УправлениеКонфигуратором().СоздатьФайловуюБазу(КаталогВременнойИБ); - - МенеджерКонфигуратора.ВыгрузитьКонфигурациюВИсходники(ПутьВходящий, ПутьИсходящий, ФайлВерсии, + + МенеджерКонфигуратора.ВыгрузитьКонфигурациюВИсходники(ПутьВходящий, ПутьИсходящий, ФайлВерсии, ИспользоватьПереименования); ВременныеФайлы.УдалитьФайл(КаталогВременнойИБ); @@ -99,7 +99,7 @@ ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); Возврат МенеджерКомандПриложения.РезультатыКоманд().ОшибкаВремениВыполнения; КонецПопытки; - + МенеджерКонфигуратора.Деструктор(); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; From 58ab670d809dbb2e7c85cabc7a4b7272d1e2f959 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 16 Jan 2020 19:35:21 +0300 Subject: [PATCH 10/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=B2=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D1=81=D0=BA=D0=B0=D0=B7=D0=BA=D0=B0=D1=85=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\261\320\276\321\202\320\276\320\272.os" | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" index b2416265..8a4c974f 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" @@ -2,7 +2,7 @@ // // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////// @@ -12,7 +12,7 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Сборка внешних обработок из исходников штатно через выгрузку 1С 8.3."; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); @@ -20,22 +20,21 @@ Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "inputPath", "Путь к каталогу или внешней обработке | |Схема работы: - | В каталоге выгрузки создается отдельный подкаталог для каждой внешней обработки - | Сохраняется структура подкаталогов, если выгружается каталог. + | В каталоге загрузки создается отдельный подкаталог для каждой внешней обработки + | Сохраняется структура подкаталогов, если загружается каталог. |"); Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "outputPath", "Путь бинарников"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--cachekey", "Ключ кэшированных значений файлов, default: compileepfrunner"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--onlycopy", "Флаг, только копировать. Без сборки обработки, даже если выглядит как обработка"); - Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -46,11 +45,11 @@ УпаковщикВнешнихОбработок.УстановитьЛог(ДополнительныеПараметры.Лог); ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; - + УпаковщикВнешнихОбработок.Собрать( - ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["inputPath"]), + ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["inputPath"]), ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["outputPath"]), - ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, + ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, ПараметрыКоманды["--v8version"], ПараметрыКоманды["--onlycopy"], ПараметрыКоманды["--cachekey"]); From dd913d76bf544b974747e47ca071d9492985fa4f Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 16 Jan 2020 19:35:42 +0300 Subject: [PATCH 11/60] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D1=8F=D1=8E=20?= =?UTF-8?q?=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=B9=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\260\320\261\320\276\321\202\320\276\320\272.os" | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" index 0ebc7243..3f4f205d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" @@ -66,12 +66,12 @@ ПапкаИсходников = Новый Файл(ПутьКИсходникам); Если ПустаяСтрока(СтрокаПодключения) Тогда - Конфигуратор = Новый УправлениеКонфигуратором(); - КаталогВременнойИБ = ПолучитьИмяВременногоФайла("tmp");//TODO нужно ли удалять временный файл? - СоздатьКаталог(КаталогВременнойИБ); + Конфигуратор = Новый УправлениеКонфигуратором(); + КаталогВременнойИБ = ВременныеФайлы.НовоеИмяФайла("tmp"); + СоздатьКаталог(КаталогВременнойИБ); - Конфигуратор.СоздатьФайловуюБазу(КаталогВременнойИБ); - СтрокаПодключения = "/F""" + КаталогВременнойИБ + """"; + Конфигуратор.СоздатьФайловуюБазу(КаталогВременнойИБ); + СтрокаПодключения = "/F""" + КаталогВременнойИБ + """"; КонецЕсли; Ожидаем.Что(ПапкаИсходников.Существует(), "Папка " + ПутьКИсходникам + " должна существовать").ЭтоИстина(); From 5ee375e466897a46feae57318ca0e72500bb73d9 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 17 Jan 2020 10:42:53 +0300 Subject: [PATCH 12/60] =?UTF-8?q?=D0=B2=D1=8B=D0=B2=D0=BE=D0=B6=D1=83=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=81=D1=82=D0=BE=D0=B5=20=D1=81=D0=BE=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=20=D0=BE?= =?UTF-8?q?=D1=82=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=B0=D0=BA=D0=B5=D1=82=D0=B0=20Vanessa-ADD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.os | 5 ++-- ...260\320\275\320\270\320\265_xUnitFor1C.os" | 5 +++- ...20\264\320\265\320\275\320\270\321\217.os" | 7 ++++-- ...20\265\321\202\320\276\320\264\321\213.os" | 24 +++++++++++++++---- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/main.os b/src/main.os index d0980aea..a746927a 100644 --- a/src/main.os +++ b/src/main.os @@ -82,6 +82,7 @@ КонецФункции // ПолучитьПарсерКоманднойСтроки Функция ВыполнениеКоманды() + ВывестиВерсию(); ПараметрыЗапуска = РазобратьАргументыКоманднойСтроки(); @@ -119,8 +120,8 @@ КонецЕсли; - Если Команда <> ПараметрыСистемы.ИмяКомандыВерсия() Тогда - ВывестиВерсию(); + Если Команда = ПараметрыСистемы.ИмяКомандыВерсия() Тогда + Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецЕсли; ДополнитьЗначенияПараметров(Команда, ЗначенияПараметров); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" index e7871c72..9faef79c 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" @@ -26,7 +26,10 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ВанессаАДД = ОбщиеМетоды.ЗагрузитьВанессаАДД(); + ВанессаАДД = ОбщиеМетоды.ЗагрузитьВанессаАДД("Команда тестирования xunit недоступна!"); + Если ВанессаАДД = Неопределено Тогда + Возврат; + КонецЕсли; НастройкиДля1С.ДобавитьШаблоннуюПеременную("addRoot", ВанессаАДД.КаталогИнструментов()); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" index ce63a69a..625504ca 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" @@ -23,7 +23,10 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ВанессаАДД = ОбщиеМетоды.ЗагрузитьВанессаАДД(); + ВанессаАДД = ОбщиеМетоды.ЗагрузитьВанессаАДД("Команда проверки поведения vanessa недоступна!"); + Если ВанессаАДД = Неопределено Тогда + Возврат; + КонецЕсли; НастройкиДля1С.ДобавитьШаблоннуюПеременную("addRoot", ВанессаАДД.КаталогИнструментов()); @@ -158,7 +161,7 @@ Настройки = НастройкиДля1С.ПрочитатьНастройки(ПутьКНастройкам); - ПутьКФайлуСтатусаВыполнения = НастройкиДля1С.ПолучитьНастройку(Настройки, + ПутьКФайлуСтатусаВыполнения = НастройкиДля1С.ПолучитьНастройку(Настройки, "ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев", "./build/buildstatus.log", РабочийКаталогПроекта, "путь к файлу статуса выполнения"); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index 62d187b6..ed519926 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -355,10 +355,24 @@ // Загрузить библиотеку для использования Ванесса-АДД // // Возвращаемое значение: -// Сценарий - oscript-библиотека из Ванесса-АДД +// Сценарий, Неопределено - oscript-библиотека из пакета Ванесса-АДД или Неопределено, если пакет не установлен // -Функция ЗагрузитьВанессаАДД() Экспорт - Возврат ЗагрузитьСценарий(ПутьВанессаАДД()); +Функция ЗагрузитьВанессаАДД(ДопТекст) Экспорт + Попытка + Возврат ЗагрузитьСценарий(ПутьВанессаАДД()); + Исключение + ТекстОшибки = ОписаниеОшибки(); + Если Найти(ТекстОшибки, "System.IO.DirectoryNotFoundException") <> 0 + Или Найти(ТекстОшибки, "System.IO.FileNotFoundException") <> 0 Тогда + ТекстПредупреждения = "Не установлен пакет Vanessa-ADD. + |ВАЖНО - %1 + | + |Установите пакет, выполнив команду opm install add"; + ПолучитьЛог().Предупреждение(ТекстПредупреждения, ДопТекст); + КонецЕсли; + КонецПопытки; + + Возврат Неопределено; КонецФункции Функция ПутьВанессаАДД() @@ -431,8 +445,8 @@ Исключение МенеджерКонфигуратора.Деструктор(); ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; - + КонецПопытки; + КонецПроцедуры // из-за особенностей загрузки модуль ОбщиеМетоды грузится раньше ПараметрыСистемы, //поэтому сразу в конце кода модуля использовать ПараметрыСистемы нельзя From 68d627b72e4566c2d7095cda3fb9f09f95875124 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 17 Jan 2020 19:31:26 +0300 Subject: [PATCH 13/60] =?UTF-8?q?=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B0=D1=8E=20=D0=B4=D1=83=D0=B1=D0=BB=D0=B8=20=D1=81=D0=BE?= =?UTF-8?q?=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=BE=D0=B1=20?= =?UTF-8?q?=D0=BE=D1=82=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=B0=20Vanessa-ADD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.os | 8 +++++++ ...260\320\275\320\270\320\265_xUnitFor1C.os" | 2 +- ...20\264\320\265\320\275\320\270\321\217.os" | 2 +- ...20\265\321\202\320\276\320\264\321\213.os" | 21 +++++++++++-------- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main.os b/src/main.os index a746927a..fdbf040f 100644 --- a/src/main.os +++ b/src/main.os @@ -84,6 +84,8 @@ Функция ВыполнениеКоманды() ВывестиВерсию(); + ПроверитьПодключениеВанессаАДД(); + ПараметрыЗапуска = РазобратьАргументыКоманднойСтроки(); Если ПараметрыЗапуска = Неопределено ИЛИ ПараметрыЗапуска.Количество() = 0 Тогда @@ -132,6 +134,12 @@ КонецФункции // ВыполнениеКоманды() +Процедура ПроверитьПодключениеВанессаАДД() + ДопТекстОшибки = "Команда тестирования xunit недоступна + |Команда проверки поведения vanessa недоступна"; + ВанессаАДД = ОбщиеМетоды.ЗагрузитьВанессаАДД(ДопТекстОшибки); +КонецПроцедуры + Процедура ДополнитьЗначенияПараметров(Знач Команда, ЗначенияПараметров) Перем ЗначениеПараметраФайлНастроек, ПутьКФайлуНастроекПоУмолчанию, ФайлОбщихНастроек; Перем ЗначенияПараметровНизкийПриоритет, СоответствиеПеременных, НастройкиИзФайла; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" index 9faef79c..1bfaaad4 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" @@ -26,7 +26,7 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ВанессаАДД = ОбщиеМетоды.ЗагрузитьВанессаАДД("Команда тестирования xunit недоступна!"); + ВанессаАДД = ОбщиеМетоды.ЗагрузитьВанессаАДД(); Если ВанессаАДД = Неопределено Тогда Возврат; КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" index 625504ca..79ec7a74 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" @@ -23,7 +23,7 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ВанессаАДД = ОбщиеМетоды.ЗагрузитьВанессаАДД("Команда проверки поведения vanessa недоступна!"); + ВанессаАДД = ОбщиеМетоды.ЗагрузитьВанессаАДД(); Если ВанессаАДД = Неопределено Тогда Возврат; КонецЕсли; diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index ed519926..27a9dbf9 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -357,18 +357,21 @@ // Возвращаемое значение: // Сценарий, Неопределено - oscript-библиотека из пакета Ванесса-АДД или Неопределено, если пакет не установлен // -Функция ЗагрузитьВанессаАДД(ДопТекст) Экспорт +Функция ЗагрузитьВанессаАДД(Знач ДопТекст = Неопределено) Экспорт Попытка Возврат ЗагрузитьСценарий(ПутьВанессаАДД()); Исключение - ТекстОшибки = ОписаниеОшибки(); - Если Найти(ТекстОшибки, "System.IO.DirectoryNotFoundException") <> 0 - Или Найти(ТекстОшибки, "System.IO.FileNotFoundException") <> 0 Тогда - ТекстПредупреждения = "Не установлен пакет Vanessa-ADD. - |ВАЖНО - %1 - | - |Установите пакет, выполнив команду opm install add"; - ПолучитьЛог().Предупреждение(ТекстПредупреждения, ДопТекст); + Если ЗначениеЗаполнено(ДопТекст) Тогда + ТекстОшибки = ОписаниеОшибки(); + Если Найти(ТекстОшибки, "System.IO.DirectoryNotFoundException") <> 0 + Или Найти(ТекстОшибки, "System.IO.FileNotFoundException") <> 0 Тогда + ТекстПредупреждения = "Не установлен пакет Vanessa-ADD. + |ВАЖНО - %1 + | + |Установите пакет, выполнив команду opm install add + |"; + ПолучитьЛог().Предупреждение(ТекстПредупреждения, ДопТекст); + КонецЕсли; КонецЕсли; КонецПопытки; From aab117cacd742817b6c21dbc2c7e4452b241fa94 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 8 Feb 2020 22:06:10 +0300 Subject: [PATCH 14/60] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80=D0=B8=D0=B9?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=B4=D0=B5=D0=BC=D0=BE=D0=BD=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B8=20#341?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1\320\276\321\202\320\276\320\272.feature" | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git "a/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" "b/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" index 873d154a..2ee2e5c4 100644 --- "a/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" +++ "b/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" @@ -7,23 +7,40 @@ Контекст: Допустим я подготовил репозиторий и рабочий каталог проекта - + И Я копирую каталог "fixture-epf" из каталога "tests/fixtures" проекта в подкаталог "build/out" рабочего каталога И Я копирую файл "file.txt" из каталога "tests/fixtures" проекта в подкаталог "build/out" рабочего каталога - + Допустим файл "fixture.epf" не существует - И Я очищаю параметры команды "oscript" в контексте + И Я очищаю параметры команды "oscript" в контексте Сценарий: Сборка каталога внешних обработок - + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf ." И Вывод команды "oscript" содержит "Собирали: fixture изменен" Тогда Код возврата команды "oscript" равен 0 И файл "Тест1.epf" существует И файл "file.txt" не существует +Сценарий: Сборка внешней обработки в отдельном каталоге + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf build/out" + И Вывод команды "oscript" содержит "Собирали: fixture изменен" + Тогда Код возврата команды "oscript" равен 0 + И файл "build/out/Тест1.epf" существует + И файл "file.txt" не существует + +Сценарий: Сборка внешней обработки с явным указанием каталога исходников обработки в отдельном каталоге + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf/fixture build/out" + И Вывод команды "oscript" содержит "Собирали: fixture изменен" + Тогда Код возврата команды "oscript" равен 0 + И файл "build/Тест1.epf" не существует + И файл "build/out/Тест1.epf" существует + И файл "file.txt" не существует + Сценарий: Сборка каталога внешних обработок в том же каталоге, где исходники - + Допустим Я установил подкаталог "build/out" рабочего каталога как текущий каталог И Я копирую файл "file.txt" из каталога "tests/fixtures" проекта в подкаталог "build/out" рабочего каталога Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf fixture-epf fixture-epf" From f0e0422b158680f8a92d89b3b35f25e7833195df Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 8 Feb 2020 22:07:07 +0300 Subject: [PATCH 15/60] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=81=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=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=20=D0=B1=D0=B0=D0=B3=D0=B0,=20=D1=83=D1=82=D0=BE?= =?UTF-8?q?=D1=87=D0=BD=D1=8F=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D0=B8=D0=B7=20#342?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\320\261\320\276\321\202\320\276\320\272.os" | 9 ++++++++- ...4\320\265\321\202\320\276\320\264\321\213.os" | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" index 3f4f205d..8b350970 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" @@ -412,7 +412,14 @@ Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(Файл)); СписокОбработанных.Вставить(Файл.ПолноеИмя, Истина); ИначеЕсли ОбработкуНашли = Истина Тогда - ПутьОтносительно = ?(ОбщиеМетоды.ПолныйПуть(КаталогВходящий) = ПапкаИсходников, "./", "../"); + Если ОбщиеМетоды.ДополнитьРазделителемПути(ОбщиеМетоды.ПолныйПуть(КаталогВходящий)) + = ОбщиеМетоды.ДополнитьРазделителемПути(ПапкаИсходников) Тогда + + ПутьОтносительно = "./"; + Иначе + ПутьОтносительно = "../"; + КонецЕсли; + КаталогВыгрузкиОбработки = Новый Файл(ОбъединитьПути(КаталогИсходящий, ПолучитьОтносительныйПутьФайла(ОбщиеМетоды.ПолныйПуть(КаталогВходящий), ПапкаИсходников), ПутьОтносительно)).ПолноеИмя; ФС.ОбеспечитьКаталог(КаталогВыгрузкиОбработки); ИмяФайлаОбъекта = СобратьФайлВнешнейОбработки(ПапкаИсходников, КаталогВыгрузкиОбработки, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index 27a9dbf9..7433b411 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -451,5 +451,21 @@ КонецПопытки; КонецПроцедуры + +// Дополнить разделителем пути +// +// Параметры: +// Путь - Строка - путь файла или каталога +// +// Возвращаемое значение: +// Строка - путь с разделителем пути в конце строки, если его там не было, иначе сам путь +// +Функция ДополнитьРазделителемПути(Знач Путь) Экспорт + Если Прав(Путь, 1) <> ПолучитьРазделительПути() Тогда + Возврат Путь + ПолучитьРазделительПути(); + КонецЕсли; + Возврат Путь; +КонецФункции + // из-за особенностей загрузки модуль ОбщиеМетоды грузится раньше ПараметрыСистемы, //поэтому сразу в конце кода модуля использовать ПараметрыСистемы нельзя From 97632cdf1a61dd535bcc0fa7d13a1f0505f01bb8 Mon Sep 17 00:00:00 2001 From: Valentin Yusov <011184@mail.ru> Date: Sat, 8 Feb 2020 22:10:43 +0300 Subject: [PATCH 16/60] =?UTF-8?q?#341.=20=D0=98=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=20(=D0=BD=D0=B5=D0=BA=D0=BE=D1=80=D1=80=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D0=BD=D1=8B=D0=B9=20=D0=BF=D1=83=D1=82=D1=8C=20?= =?UTF-8?q?=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=85=D0=B0=D0=BD=D0=B8=D0=B7=D0=BC=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=B8=D1=81=D0=B7=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B8=20compileepf)=20(#342)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" index 3f4f205d..b9b50ed1 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" @@ -412,7 +412,7 @@ Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(Файл)); СписокОбработанных.Вставить(Файл.ПолноеИмя, Истина); ИначеЕсли ОбработкуНашли = Истина Тогда - ПутьОтносительно = ?(ОбщиеМетоды.ПолныйПуть(КаталогВходящий) = ПапкаИсходников, "./", "../"); + ПутьОтносительно = ?(ОбщиеМетоды.ПолныйПуть(КаталогВходящий) + ПолучитьРазделительПути() = ПапкаИсходников, "./", "../"); КаталогВыгрузкиОбработки = Новый Файл(ОбъединитьПути(КаталогИсходящий, ПолучитьОтносительныйПутьФайла(ОбщиеМетоды.ПолныйПуть(КаталогВходящий), ПапкаИсходников), ПутьОтносительно)).ПолноеИмя; ФС.ОбеспечитьКаталог(КаталогВыгрузкиОбработки); ИмяФайлаОбъекта = СобратьФайлВнешнейОбработки(ПапкаИсходников, КаталогВыгрузкиОбработки, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); From d0f0ef11c1ec5f7d44f0db8a25ec4b6ace0700a3 Mon Sep 17 00:00:00 2001 From: Ruslan Zhdanov <26283990+TheDemonCat@users.noreply.github.com> Date: Sun, 9 Feb 2020 01:35:21 +0600 Subject: [PATCH 17/60] =?UTF-8?q?=D0=9E=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20"?= =?UTF-8?q?=D0=9D=D0=B5=D1=82=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA"=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D1=83=D1=81=D0=BF=D0=B5=D1=88=D0=BD=D0=BE?= =?UTF-8?q?=D0=BC=20=D0=BF=D1=80=D0=BE=D1=85=D0=BE=D0=B6=D0=B4=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B8=20=D1=81=D0=B8=D0=BD=D1=82=D0=B0=D0=BA=D1=81=D0=B8?= =?UTF-8?q?=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=BB=D1=8F=20(#335)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Изменено описание параметров конфигурационных файлов * Обеспечиваем существование каталога при формировании отчета #194 * Текст "Ошибок не обнаружено" не является ошибкой проверки синтаксиса #334 * Поправил описание параметров * убрал ненужный комментарий * удалил запятую * Добавил английское No syntax errors found * Использую ФС.ОбеспечитьПустойКаталог вместо собственного велосипеда * избавился от каталога отчета junit * Еще одно английское сообщение No errors found Co-authored-by: Artur Ayukhanov --- ...260\320\272\321\201\320\270\321\201\320\260.os" | 5 +++++ ...265\320\264\320\265\320\275\320\270\321\217.os" | 2 +- ...202\321\207\320\265\321\202\320\276\320\262.os" | 14 ++------------ ...270\321\201\321\202\320\265\320\274\321\213.os" | 2 +- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" index 4e463947..dec120c3 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" @@ -238,6 +238,11 @@ МассивСтрокИсключений.Добавить(Нрег("No links to procedure found: ""Attachable_")); МассивСтрокИсключений.Добавить(Нрег("Empty handler: ""Attachable_")); + // Исключам из ошибок статус усшешного завершения тестирования + МассивСтрокИсключений.Добавить(Нрег("Ошибок не обнаружено")); + МассивСтрокИсключений.Добавить(Нрег("No syntax errors found")); + МассивСтрокИсключений.Добавить(Нрег("No errors found")); + МассивСтрокОшибок = СтрРазделить(ОбработанныйЛог, Символы.ПС); Для Ит = 0 По МассивСтрокОшибок.Количество() - 1 Цикл diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" index 79ec7a74..f007252f 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" @@ -45,7 +45,7 @@ | или переменная окружения RUNNER_PATHVANESSA"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--vanessasettings", - "[env RUNNER_VANESSASETTINGS] путь к файлу настроек"); + "[env RUNNER_VANESSASETTINGS] путь к файлу настроек фреймворка тестирования"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--workspace", "[env RUNNER_WORKSPACE] путь к папке, относительно которой будут определятся макросы $workspace. | по умолчанию текущий."); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" index 074eb08a..a60db4e8 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" @@ -148,12 +148,7 @@ КонецЕсли; - ФайлКаталога = Новый Файл(КаталогОтчетовAllure); - Если НЕ ФайлКаталога.Существует() Тогда - - СоздатьКаталог(ФайлКаталога.ПолноеИмя); - - КонецЕсли; + ФС.ОбеспечитьПустойКаталог(КаталогОтчетовAllure); ВремяСтарта = РезультатТестирования.ДатаНачала; ВремяОкончания = ТекущаяДата(); @@ -301,12 +296,7 @@ КонецЕсли; - ФайлКаталога = Новый Файл(КаталогОтчетовAllure); - Если НЕ ФайлКаталога.Существует() Тогда - - СоздатьКаталог(ФайлКаталога.ПолноеИмя); - - КонецЕсли; + ФС.ОбеспечитьПустойКаталог(КаталогОтчетовAllure); ВремяСтарта = РезультатТестирования.ДатаНачала; ВремяОкончания = ТекущаяДата(); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" index d52c13f2..7f29ca15 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" @@ -201,7 +201,7 @@ КаталогСценария = (Новый Файл(ТекущийСценарий().Источник)).Путь; ОбщиеМетоды1 = ЗагрузитьСценарий(ОбъединитьПути(КаталогСценария, "ОбщиеМетоды.os")); - Парсер.ДобавитьИменованныйПараметр("--settings", "Путь к файлу настроек, в формате json. По умолчанию имя файла " + + Парсер.ДобавитьИменованныйПараметр("--settings", "Путь к файлу настроек Vanessa-runner в формате json. По умолчанию имя файла " + ОбщиеМетоды1.ИмяФайлаНастроек(), Истина); Парсер.ДобавитьИменованныйПараметр("--debuglogfile", "Вывод отладочных файлов в указанный лог-файл", Истина); From 65275f81aee0a8354b1a2dcb49c4b3a67c82be9d Mon Sep 17 00:00:00 2001 From: Ruslan Zhdanov <26283990+TheDemonCat@users.noreply.github.com> Date: Fri, 14 Feb 2020 21:51:32 +0600 Subject: [PATCH 18/60] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=BF=D1=83=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B1=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE=D1=82?= =?UTF-8?q?=D0=B5=D0=BA=D0=B0=20=D0=A4=D0=A1=20(#348)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Изменено описание параметров конфигурационных файлов * Обеспечиваем существование каталога при формировании отчета #194 * Текст "Ошибок не обнаружено" не является ошибкой проверки синтаксиса #334 * Поправил описание параметров * убрал ненужный комментарий * удалил запятую * Добавил английское No syntax errors found * Использую ФС.ОбеспечитьПустойКаталог вместо собственного велосипеда * избавился от каталога отчета junit * Еще одно английское сообщение No errors found * добавил недостающую библиотеку #347 Co-authored-by: Artur Ayukhanov --- ...7\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" | 1 + 1 file changed, 1 insertion(+) diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" index a60db4e8..f73221e6 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" @@ -1,5 +1,6 @@ #Использовать json +#Использовать fs Перем КэшМетаданных; From 7d5b1cf1283b965d08f3ec472aae5d10b8fe4fa6 Mon Sep 17 00:00:00 2001 From: Ruslan Zhdanov <26283990+TheDemonCat@users.noreply.github.com> Date: Fri, 14 Feb 2020 21:58:05 +0600 Subject: [PATCH 19/60] =?UTF-8?q?=D0=90=D0=BB=D1=8C=D1=82=D0=B5=D1=80?= =?UTF-8?q?=D0=BD=D0=B0=D1=82=D0=B8=D0=B2=D0=BD=D1=8B=D0=B5=20=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D1=81=D1=80=D0=B5=D0=B4=D1=8B=20(#346)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Изменено описание параметров конфигурационных файлов * Обеспечиваем существование каталога при формировании отчета #194 * Текст "Ошибок не обнаружено" не является ошибкой проверки синтаксиса #334 * Поправил описание параметров * убрал ненужный комментарий * удалил запятую * Добавил английское No syntax errors found * Использую ФС.ОбеспечитьПустойКаталог вместо собственного велосипеда * избавился от каталога отчета junit * Еще одно английское сообщение No errors found * Добавил альтернативные параметры #343 * Исправил ошибку RUNNER_UCCODE вместо RUNNER_UCODE * Исправил на RUNNER_STORAGE_PWD вместо RUNNER_STORAGE_PSW Co-authored-by: Artur Ayukhanov --- src/main.os | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main.os b/src/main.os index fdbf040f..3d99f653 100644 --- a/src/main.os +++ b/src/main.os @@ -50,6 +50,15 @@ СоответствиеПеременных.Вставить("RUNNER_LOCALE", "--locale"); СоответствиеПеременных.Вставить("RUNNER_LANGUAGE", "--language"); + СоответствиеПеременных.Вставить("RUNNER_V8VERSION", "--v8version"); + СоответствиеПеременных.Вставить("RUNNER_UCCODE", "--uccode"); + СоответствиеПеременных.Вставить("RUNNER_COMMAND", "--command"); + СоответствиеПеременных.Вставить("RUNNER_EXECUTE", "--execute"); + СоответствиеПеременных.Вставить("RUNNER_STORAGE_NAME", "--storage-name"); + СоответствиеПеременных.Вставить("RUNNER_STORAGE_USER", "--storage-user"); + СоответствиеПеременных.Вставить("RUNNER_STORAGE_PWD", "--storage-pwd"); + СоответствиеПеременных.Вставить("RUNNER_STORAGE_VER", "--storage-ver"); + Возврат Новый ФиксированноеСоответствие(СоответствиеПеременных); КонецФункции From c906124a3287a24aa592846eb58921f60311a9c6 Mon Sep 17 00:00:00 2001 From: Max A Mazin Date: Fri, 21 Feb 2020 12:22:35 +0300 Subject: [PATCH 20/60] Feature/fix 350 (#351) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Добавлена возможность сборки внешней обработки в файл с указанным именем --- ...1\320\276\321\202\320\276\320\272.feature" | 20 +++++++++++++ ...20\261\320\276\321\202\320\276\320\272.os" | 30 ++++++++++++++----- 2 files changed, 43 insertions(+), 7 deletions(-) diff --git "a/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" "b/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" index 2ee2e5c4..b2a7bd64 100644 --- "a/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" +++ "b/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" @@ -48,6 +48,26 @@ Тогда Код возврата команды "oscript" равен 0 И файл "fixture-epf/fixture/Тест1.epf" не существует +Сценарий: Сборка внешней обработки в отдельном каталоге с явным указанием имени результирующего файла + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf build/out/extdp.epf" + И Вывод команды "oscript" содержит "Собирали: fixture изменен" + Тогда Код возврата команды "oscript" равен 0 + И файл "build/out/Тест1.epf" не существует + И файл "build/out/extdp.epf" существует + И файл "file.txt" не существует + +Сценарий: Сборка внешней обработки с явным указанием исходников обработки в отдельном каталоге и имени результирующего файла + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf/fixture build/out/extdp.epf" + И Вывод команды "oscript" содержит "Собирали: fixture изменен" + Тогда Код возврата команды "oscript" равен 0 + И файл "build/Тест1.epf" не существует + И файл "build/extdp.epf" не существует + И файл "build/out/Тест1.epf" не существует + И файл "build/out/extdp.epf" существует + И файл "file.txt" не существует + # Сценарий: Сборка одной внешней обработки # Когда TODO diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" index 8b350970..bf426249 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" @@ -412,16 +412,32 @@ Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(Файл)); СписокОбработанных.Вставить(Файл.ПолноеИмя, Истина); ИначеЕсли ОбработкуНашли = Истина Тогда - Если ОбщиеМетоды.ДополнитьРазделителемПути(ОбщиеМетоды.ПолныйПуть(КаталогВходящий)) - = ОбщиеМетоды.ДополнитьРазделителемПути(ПапкаИсходников) Тогда + РежимВыгрузки = "Каталог"; + Если Не ПустаяСтрока(КаталогИсходящий) Тогда + Расширение = Прав(СокрЛП(КаталогИсходящий), 4); + Если НРег(Расширение) = ".epf" ИЛИ НРег(Расширение) = ".erf" Тогда + ФайлКаталогВыгрузки = Новый Файл(КаталогИсходящий); + Если НЕ (ФайлКаталогВыгрузки.Существует() И ФайлКаталогВыгрузки.ЭтоКаталог()) Тогда + РежимВыгрузки = "Файл"; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Если РежимВыгрузки = "Каталог" Тогда + Если ОбщиеМетоды.ДополнитьРазделителемПути(ОбщиеМетоды.ПолныйПуть(КаталогВходящий)) + = ОбщиеМетоды.ДополнитьРазделителемПути(ПапкаИсходников) Тогда + + ПутьОтносительно = "./"; + Иначе + ПутьОтносительно = "../"; + КонецЕсли; - ПутьОтносительно = "./"; + КаталогВыгрузкиОбработки = Новый Файл(ОбъединитьПути(КаталогИсходящий, ПолучитьОтносительныйПутьФайла(ОбщиеМетоды.ПолныйПуть(КаталогВходящий), ПапкаИсходников), ПутьОтносительно)).ПолноеИмя; + ФС.ОбеспечитьКаталог(КаталогВыгрузкиОбработки); Иначе - ПутьОтносительно = "../"; + КаталогВыгрузкиОбработки = КаталогИсходящий; КонецЕсли; - - КаталогВыгрузкиОбработки = Новый Файл(ОбъединитьПути(КаталогИсходящий, ПолучитьОтносительныйПутьФайла(ОбщиеМетоды.ПолныйПуть(КаталогВходящий), ПапкаИсходников), ПутьОтносительно)).ПолноеИмя; - ФС.ОбеспечитьКаталог(КаталогВыгрузкиОбработки); + ИмяФайлаОбъекта = СобратьФайлВнешнейОбработки(ПапкаИсходников, КаталогВыгрузкиОбработки, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); КаталогФайл = Новый Файл(ПапкаИсходников); From 3941d6a2cc6a6f401df81b1d7e2396c5a9894045 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Thu, 27 Feb 2020 19:10:43 +0300 Subject: [PATCH 21/60] =?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=BE=20=D0=BD=D0=B5=D0=BE=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=BD=D1=84?= =?UTF-8?q?=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D0=98=D0=91?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B8=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20=D1=80=D0=B0?= =?UTF-8?q?=D1=81=D1=88=D0=B8=D1=80=D0=B5=D0=BD=D0=B8=D1=8F=20(#352)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index 81cc4ccd..fc0c5ae9 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -1206,7 +1206,7 @@ Конфигуратор = УправлениеКонфигуратором(); - Конфигуратор.ЗагрузитьРасширениеИзФайла(ФайлЗагрузки.ПолноеИмя, ИмяРасширения); + Конфигуратор.ЗагрузитьРасширениеИзФайла(ФайлЗагрузки.ПолноеИмя, ИмяРасширения, ОбновитьКонфигурациюИБ); Лог.Информация("Загрузка расширения из cfe-файла успешно завершена!"); From d23e2fd889948ee90dc77b4cbaec321e0d357fdd Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 27 Feb 2020 22:00:03 +0300 Subject: [PATCH 22/60] =?UTF-8?q?=D0=B2=20=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BA=D0=B5=20=D0=BE=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=D0=B0=D1=85=20=D1=80=D1=8F=D0=B4=D0=BE=D0=BC=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BA=D0=B0=D0=B7=D1=8B=D0=B2=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B?= =?UTF-8?q?,=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D1=81=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\222\320\244\320\260\320\271\320\273.os" | 20 +++++++------- ...20\222\320\244\320\260\320\271\320\273.os" | 21 +++++++-------- ...21\200\320\265\320\275\320\270\321\217.os" | 26 +++++++++---------- ...21\201\321\202\320\265\320\274\321\213.os" | 14 +++++----- 4 files changed, 39 insertions(+), 42 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\230\320\275\321\204\320\276\320\261\320\260\320\267\321\203\320\222\320\244\320\260\320\271\320\273.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\230\320\275\321\204\320\276\320\261\320\260\320\267\321\203\320\222\320\244\320\260\320\271\320\273.os" index 1365f918..3b970e88 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\230\320\275\321\204\320\276\320\261\320\260\320\267\321\203\320\222\320\244\320\260\320\271\320\273.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\230\320\275\321\204\320\276\320\261\320\260\320\267\321\203\320\222\320\244\320\260\320\271\320\273.os" @@ -3,10 +3,10 @@ // Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров // // TODO добавить фичи для проверки команды -// +// // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -21,21 +21,22 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = - " Выгрузка информационной базы в файл."; + ТекстОписания = + " Выгрузка информационной базы в файл. + |"; - ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); - Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "dtpath", + Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "dtpath", "Путь к результату - выгружаемому файлу с данными (*.dt)"); Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -55,7 +56,7 @@ Попытка МенеджерКонфигуратора.ВыгрузитьИнфобазуВФайл( - ПараметрыКоманды["dtpath"]); + ПараметрыКоманды["dtpath"]); Исключение МенеджерКонфигуратора.Деструктор(); ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); @@ -65,4 +66,3 @@ Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду - diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\222\320\244\320\260\320\271\320\273.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\222\320\244\320\260\320\271\320\273.os" index 13501356..a26b5b02 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\222\320\244\320\260\320\271\320\273.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\222\320\244\320\260\320\271\320\273.os" @@ -1,12 +1,10 @@ /////////////////////////////////////////////////////////////////////////////////////////////////// // -// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров +// Выгрузка файла расширения из ИБ // -// TODO добавить фичи для проверки команды -// // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -21,23 +19,23 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Выгрузка файла расширения из ИБ."; - ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); - Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "cfepath", + Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "cfepath", "Путь к результату - выгружаемому файлу расширения (*.cfe)"); Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "extname", "Имя расширения"); - + Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -63,9 +61,8 @@ МенеджерКонфигуратора.Деструктор(); ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; - + МенеджерКонфигуратора.Деструктор(); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду - diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262\320\244\320\260\320\271\320\273\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262\320\244\320\260\320\271\320\273\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.os" index 7cdb851d..d5100594 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262\320\244\320\260\320\271\320\273\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262\320\244\320\260\320\271\320\273\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.os" @@ -1,12 +1,12 @@ /////////////////////////////////////////////////////////////////////////////////////////////////// // -// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров +// Сборка cfe-файла из исходников // // TODO добавить фичи для проверки команды -// +// // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -22,19 +22,19 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Сборка cfe-файла из исходников. |"; - ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src", "Путь к каталогу с исходниками, пример: --src=./cfe"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-s", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-s", "Краткая команда 'путь к исходникам --src', пример: -s ./cfe"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--out", "Путь к файлу cf (*.cf), --out=./Extension.cfe"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-o", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-o", "Краткая команда 'Путь к файлу cf --out', пример: -o ./Extension.cfe"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--current", "Флаг загрузки в указанную базу или -с"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-c", "Флаг загрузки в указанную базу, кратка форма от --current"); @@ -42,11 +42,11 @@ Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--noupdate", "Флаг обновление СonfigDumpInfo.xml"); Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -68,7 +68,7 @@ ОбновлятьДамп = НЕ ПараметрыКоманды["--noupdate"]; МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - + ИмяРасширения = СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", ""); Попытка ВТекущуюКонфигурацию = ОбщиеМетоды.ПолучитьПараметры(ПараметрыКоманды, "-c", "--current"); @@ -80,7 +80,7 @@ СтрокаПодключения = "/F""" + КаталогВременнойБазы + """"; МенеджерКонфигуратора.Инициализация(СтрокаПодключения, "", "", ВерсияПлатформы, , ДанныеПодключения.КодЯзыка); Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором(); - + Конфигуратор.СоздатьФайловуюБазу(КаталогВременнойБазы); КонецЕсли; @@ -93,7 +93,7 @@ МенеджерКонфигуратора.Деструктор(); ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; - + МенеджерКонфигуратора.Деструктор(); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" index 7f29ca15..45a37ef5 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" @@ -117,6 +117,8 @@ КлассыРеализацииКоманд[ВозможныеКоманды().ОбновлениеРасширений] = "КомандаОбновлениеРасширений"; КлассыРеализацииКоманд[ВозможныеКоманды().ЗагрузитьРасширениеИзФайла] = "КомандаЗагрузитьРасширениеИзФайла"; КлассыРеализацииКоманд[ВозможныеКоманды().РазборкаРасширений] = "КомандаРазборкаРасширений"; + КлассыРеализацииКоманд[ВозможныеКоманды().СобратьИзИсходниковФайлРасширения] = + "КомандаСобратьИзИсходниковФайлРасширения"; КлассыРеализацииКоманд[ВозможныеКоманды().СборкаВнешнихОбработок] = "КомандаСборкаВнешнихОбработок"; КлассыРеализацииКоманд[ВозможныеКоманды().РазборкаВнешнихОбработок] = "КомандаРазборкаВнешнихОбработок"; @@ -127,19 +129,16 @@ КлассыРеализацииКоманд[ВозможныеКоманды().ОбновитьКонфигурациюБазыДанных] = "КомандаОбновлениеКонфигурацииБД"; КлассыРеализацииКоманд[ВозможныеКоманды().ВыгрузитьКонфигурациюВФайл] = "КомандаВыгрузитьКонфигурациюВФайл"; КлассыРеализацииКоманд[ВозможныеКоманды().ВыгрузитьРасширениеВФайл] = "КомандаВыгрузитьРасширениеВФайл"; - КлассыРеализацииКоманд[ВозможныеКоманды().СобратьИзИсходниковФайлРасширения] = - "КомандаСобратьИзИсходниковФайлРасширения"; КлассыРеализацииКоманд[ВозможныеКоманды().ВыгрузитьИнфобазуВФайл] = "КомандаВыгрузитьИнфобазуВФайл"; - КлассыРеализацииКоманд[ВозможныеКоманды().ПроверкаСинтаксиса] = "КомандаПроверкаСинтаксиса"; КлассыРеализацииКоманд[ВозможныеКоманды().ОбновитьИзХранилища] = "КомандаОбновитьИзХранилища"; КлассыРеализацииКоманд[ВозможныеКоманды().СоздатьХранилище] = "КомандаСоздатьХранилище"; КлассыРеализацииКоманд[ВозможныеКоманды().ПодключитьсяКХранилищу] = "КомандаПодключитьсяКХранилищу"; - КлассыРеализацииКоманд[ВозможныеКоманды().СоздатьПользователейХранилища] = + КлассыРеализацииКоманд[ВозможныеКоманды().СоздатьПользователейХранилища] = "КомандаСоздатьПользователейХранилища"; - КлассыРеализацииКоманд[ВозможныеКоманды().КопироватьПользователейХранилища] = + КлассыРеализацииКоманд[ВозможныеКоманды().КопироватьПользователейХранилища] = "КомандаКопироватьПользователейХранилища"; - КлассыРеализацииКоманд[ВозможныеКоманды().СохранитьВерсиюХранилищаВФайл] = + КлассыРеализацииКоманд[ВозможныеКоманды().СохранитьВерсиюХранилищаВФайл] = "КомандаСохранитьВерсиюХранилищаВФайл"; КлассыРеализацииКоманд[ВозможныеКоманды().ЗахватитьВХранилище] = "КомандаЗахватитьВХранилище"; КлассыРеализацииКоманд[ВозможныеКоманды().ПоместитьВХранилище] = "КомандаПоместитьВХранилище"; @@ -155,6 +154,7 @@ КлассыРеализацииКоманд[ВозможныеКоманды().УправлениеРегламентнымиЗаданиями] = "КомандаУправлениеСеансами"; КлассыРеализацииКоманд[ВозможныеКоманды().ЗапроситьПараметрыБД] = "КомандаУправлениеСеансами"; + КлассыРеализацииКоманд[ВозможныеКоманды().ПроверкаСинтаксиса] = "КомандаПроверкаСинтаксиса"; КлассыРеализацииКоманд[ВозможныеКоманды().ПроверкаПроектаEDT] = "КомандаПроверкаПроектаEDT"; //... //КлассыРеализацииКоманд["<имя команды>"] = "<КлассРеализации>"; @@ -205,6 +205,6 @@ ОбщиеМетоды1.ИмяФайлаНастроек(), Истина); Парсер.ДобавитьИменованныйПараметр("--debuglogfile", "Вывод отладочных файлов в указанный лог-файл", Истина); - Парсер.ДобавитьПараметрФлаг("--debuglog", + Парсер.ДобавитьПараметрФлаг("--debuglog", "Вывод отладочных файлов в лог-файл 'vrunner-XXX.log' во временном каталоге пользователя. ", Истина); КонецПроцедуры From d9bda9fa25d2f1883e9ce2676cc060c59fdc37a8 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 27 Feb 2020 22:09:07 +0300 Subject: [PATCH 23/60] =?UTF-8?q?=D0=B5=D1=89=D0=B5=20=D1=83=D1=82=D0=BE?= =?UTF-8?q?=D1=87=D0=BD=D0=B8=D0=BB=20=D0=BF=D0=BE=D1=80=D1=8F=D0=B4=D0=BE?= =?UTF-8?q?=D0=BA=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=D0=B0=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=B0=D0=BD=D0=B4=20=D0=B2=20=D0=BE=D0=B1=D1=89=D0=B5?= =?UTF-8?q?=D0=B9=20=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\222\320\244\320\260\320\271\320\273.os" | 3 ++- ...20\244\320\260\320\271\320\273\320\260.os" | 26 +++++++++---------- ...20\270\321\217\321\202\320\270\321\217.os" | 5 ++-- ...21\200\320\265\320\275\320\270\321\217.os" | 3 +-- ...20\264\320\265\320\275\320\270\321\217.os" | 3 +-- ...21\201\321\202\320\265\320\274\321\213.os" | 14 +++++----- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\222\320\244\320\260\320\271\320\273.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\222\320\244\320\260\320\271\320\273.os" index a26b5b02..a259247b 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\222\320\244\320\260\320\271\320\273.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\222\320\244\320\260\320\271\320\273.os" @@ -20,7 +20,8 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт ТекстОписания = - " Выгрузка файла расширения из ИБ."; + " Выгрузка файла расширения из ИБ. + |"; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\230\320\267\320\244\320\260\320\271\320\273\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\230\320\267\320\244\320\260\320\271\320\273\320\260.os" index 4956fde7..ef2df21d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\230\320\267\320\244\320\260\320\271\320\273\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\230\320\267\320\244\320\260\320\271\320\273\320\260.os" @@ -4,7 +4,7 @@ // // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -20,24 +20,24 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = - " Загрузка расширения из cfe-файла в конфигурацию."; + ТекстОписания = + " Загрузка расширения в конфигурацию из cfe-файла."; - ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--file", "Путь к cfe-файлу расширения, например: --file=./1Cv8.cfe"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-f", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-f", "Краткая команда 'путь к cfe --file', пример: -f ./1Cv8.cfe"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--extension", "Имя расширения"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--updatedb", "Признак обновления расширения"); - + Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -53,14 +53,14 @@ ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; ПутьВходящий = ОбщиеМетоды.ПолныйПуть(ОбщиеМетоды.ПолучитьПараметры(ПараметрыКоманды, "-f", "--file")); - + ВерсияПлатформы = ПараметрыКоманды["--v8version"]; СтрокаПодключения = ДанныеПодключения.СтрокаПодключения; - + МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - + Попытка - МенеджерКонфигуратора.Инициализация(ДанныеПодключения.СтрокаПодключения, + МенеджерКонфигуратора.Инициализация(ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, ВерсияПлатформы, ПараметрыКоманды["--uccode"], ДанныеПодключения.КодЯзыка); @@ -70,7 +70,7 @@ МенеджерКонфигуратора.Деструктор(); ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; - + МенеджерКонфигуратора.Деструктор(); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" index 8bb24f25..502359de 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" @@ -28,12 +28,13 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт ТекстОписания = - " Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров."; + " Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров. + |"; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--command", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--command", "Строка, передаваемая в ПараметрыЗапуска /C''"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--execute", "Путь внешней обработки 1С для запуска в предприятии"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262\320\244\320\260\320\271\320\273\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262\320\244\320\260\320\271\320\273\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.os" index d5100594..6f5e37cf 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262\320\244\320\260\320\271\320\273\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262\320\244\320\260\320\271\320\273\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217.os" @@ -23,8 +23,7 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт ТекстОписания = - " Сборка cfe-файла из исходников. - |"; + " Сборка cfe-файла из исходников."; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" index f007252f..d520fbde 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" @@ -31,8 +31,7 @@ НастройкиДля1С.ДобавитьШаблоннуюПеременную("addRoot", ВанессаАДД.КаталогИнструментов()); ТекстОписания = - " Запуск проверки поведения (BDD) через фреймворк Vanessa-ADD (Vanessa Automation Driven Development). - |"; + " Запуск проверки поведения (BDD) через фреймворк Vanessa-ADD (Vanessa Automation Driven Development)."; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" index 45a37ef5..95a8bf2d 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" @@ -113,22 +113,22 @@ КлассыРеализацииКоманд[ВозможныеКоманды().ИнициализацияОкружения] = "КомандаИнициализацияОкружения"; КлассыРеализацииКоманд[ВозможныеКоманды().ОбновлениеОкружения] = "КомандаОбновлениеОкружения"; + КлассыРеализацииКоманд[ВозможныеКоманды().Тестирование_xUnitFor1C] = "КомандаТестирование_xUnitFor1C"; + КлассыРеализацииКоманд[ВозможныеКоманды().ТестироватьПоведение] = "КомандаТестированиеПоведения"; + КлассыРеализацииКоманд[ВозможныеКоманды().ЗапуститьВРежимеПредприятия] = "КомандаЗапуститьВРежимеПредприятия"; + КлассыРеализацииКоманд[ВозможныеКоманды().СборкаРасширений] = "КомандаСборкаРасширений"; - КлассыРеализацииКоманд[ВозможныеКоманды().ОбновлениеРасширений] = "КомандаОбновлениеРасширений"; КлассыРеализацииКоманд[ВозможныеКоманды().ЗагрузитьРасширениеИзФайла] = "КомандаЗагрузитьРасширениеИзФайла"; - КлассыРеализацииКоманд[ВозможныеКоманды().РазборкаРасширений] = "КомандаРазборкаРасширений"; + КлассыРеализацииКоманд[ВозможныеКоманды().ОбновлениеРасширений] = "КомандаОбновлениеРасширений"; КлассыРеализацииКоманд[ВозможныеКоманды().СобратьИзИсходниковФайлРасширения] = "КомандаСобратьИзИсходниковФайлРасширения"; + КлассыРеализацииКоманд[ВозможныеКоманды().РазборкаРасширений] = "КомандаРазборкаРасширений"; + КлассыРеализацииКоманд[ВозможныеКоманды().ВыгрузитьРасширениеВФайл] = "КомандаВыгрузитьРасширениеВФайл"; КлассыРеализацииКоманд[ВозможныеКоманды().СборкаВнешнихОбработок] = "КомандаСборкаВнешнихОбработок"; КлассыРеализацииКоманд[ВозможныеКоманды().РазборкаВнешнихОбработок] = "КомандаРазборкаВнешнихОбработок"; - КлассыРеализацииКоманд[ВозможныеКоманды().Тестирование_xUnitFor1C] = "КомандаТестирование_xUnitFor1C"; - КлассыРеализацииКоманд[ВозможныеКоманды().ТестироватьПоведение] = "КомандаТестированиеПоведения"; - - КлассыРеализацииКоманд[ВозможныеКоманды().ЗапуститьВРежимеПредприятия] = "КомандаЗапуститьВРежимеПредприятия"; КлассыРеализацииКоманд[ВозможныеКоманды().ОбновитьКонфигурациюБазыДанных] = "КомандаОбновлениеКонфигурацииБД"; КлассыРеализацииКоманд[ВозможныеКоманды().ВыгрузитьКонфигурациюВФайл] = "КомандаВыгрузитьКонфигурациюВФайл"; - КлассыРеализацииКоманд[ВозможныеКоманды().ВыгрузитьРасширениеВФайл] = "КомандаВыгрузитьРасширениеВФайл"; КлассыРеализацииКоманд[ВозможныеКоманды().ВыгрузитьИнфобазуВФайл] = "КомандаВыгрузитьИнфобазуВФайл"; КлассыРеализацииКоманд[ВозможныеКоманды().ОбновитьИзХранилища] = "КомандаОбновитьИзХранилища"; From 6e2ba7a4499429d242086b7ad0cbe6e0ab8b68cb Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 29 Feb 2020 10:25:32 +0300 Subject: [PATCH 24/60] =?UTF-8?q?=D0=A1=D1=86=D0=B5=D0=BD=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=B0=D0=B4=D0=B0=D1=8E=D1=89=D0=B5=D0=B3=D0=BE=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\321\201\321\202\320\276\320\262.feature" | 70 +++++++++++++++++-- tests/fixtures/xUnitParams.json | 7 ++ 2 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 tests/fixtures/xUnitParams.json diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" index cfc9bf12..c24a2d1b 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" @@ -10,22 +10,82 @@ И я подготовил рабочую базу проекта "./build/ib" по умолчанию И Я копирую каталог "xdd_test" из каталога "tests/fixtures" проекта в подкаталог "build" рабочего каталога - И Я очищаю параметры команды "oscript" в контексте - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build/xdd_test.epf" - И Я очищаю параметры команды "oscript" в контексте + # И Я очищаю параметры команды "oscript" в контексте + # Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build/xdd_test.epf" + # И Я очищаю параметры команды "oscript" в контексте И Я копирую каталог "feature" из каталога "tests/fixtures" проекта в подкаталог "build" рабочего каталога + И Я копирую файл "xUnitParams.json" из каталога "tests/fixtures" проекта в подкаталог "build" рабочего каталога Сценарий: Запуск тестирования xunit - + + Дано файл "build/xdd_test.epf" не существует + Дано Я очищаю параметры команды "oscript" в контексте + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build" + И Я очищаю параметры команды "oscript" в контексте + Дано файл "build/xdd_test.epf" существует + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os xunit" для команды "oscript" И Я добавляю параметр "build/xdd_test.epf" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" И Я добавляю параметр "--workspace ./build" для команды "oscript" + И Я добавляю параметр "--xddConfig build/xUnitParams.json" для команды "oscript" + И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript" Когда Я выполняю команду "oscript" + И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит | Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) | | Выполнение тестов завершено | И Код возврата команды "oscript" равен 0 - + +Сценарий: Падающий тест xunit + + Тогда Файл "build/xdd_test/xdd_test/Ext/ObjectModule.bsl" содержит + """ + Перем КонтекстЯдра; + Перем Ожидаем; + Перем Утверждения; + """ + + Дано Я создаю файл "build/xdd_test/xdd_test/Ext/ObjectModule.bsl" с текстом + """ + Перем КонтекстЯдра; + + Процедура Инициализация(КонтекстЯдраПараметр) Экспорт + КонтекстЯдра = КонтекстЯдраПараметр; + КонецПроцедуры + + Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт + НаборТестов.Добавить("ТестДолжен_Упасть"); + КонецПроцедуры + + Процедура ТестДолжен_Упасть() Экспорт + ВызватьИсключение "Падаю внутри теста ТестДолжен_Упасть"; + КонецПроцедуры + + """ + И файл "build/xdd_test.epf" не существует + Дано Я очищаю параметры команды "oscript" в контексте + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build" + # И я вижу в консоли вывод "159" + # И Я сообщаю вывод команды "oscript" + И файл "build/xdd_test.epf" существует + И Код возврата команды "oscript" равен 0 + И Я очищаю параметры команды "oscript" в контексте + + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os xunit" для команды "oscript" + И Я добавляю параметр "build/xdd_test.epf" для команды "oscript" + И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--workspace ./build" для команды "oscript" + И Я добавляю параметр "--xddConfig build/xUnitParams.json" для команды "oscript" + И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript" + Когда Я выполняю команду "oscript" + И Я сообщаю вывод команды "oscript" + # И я вижу в консоли вывод "159" + Тогда Вывод команды "oscript" содержит + | -->> тест ТестДолжен_Упасть | + | Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) | + | Результат работы не равен 0 или 2, а равен 1 | + + И Код возврата команды "oscript" равен 1 diff --git a/tests/fixtures/xUnitParams.json b/tests/fixtures/xUnitParams.json new file mode 100644 index 00000000..069dfbc7 --- /dev/null +++ b/tests/fixtures/xUnitParams.json @@ -0,0 +1,7 @@ +{ + "$schema":"https://raw.githubusercontent.com/silverbulleters/vanessa-runner/develop/xunit-schema.json", + "Отладка":false, + "ДобавлятьИмяПользователяВПредставлениеТеста":true, + "ДелатьЛогВыполненияСценариевВТекстовыйФайл":true, + "ИмяФайлаЛогВыполненияСценариев": "$workspaceRoot/build/log-xunit.txt" +} From c327cdb58070f89600fb5ed7c205ed29fcda714c Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 29 Feb 2020 10:25:44 +0300 Subject: [PATCH 25/60] =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=BA=D0=B0=20=D0=BF=D0=BB=D0=B0=D1=82=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D1=8B=208.3.10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/fixtures/xdd_test/xdd_test.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fixtures/xdd_test/xdd_test.xml b/tests/fixtures/xdd_test/xdd_test.xml index 88a148f2..eab24621 100644 --- a/tests/fixtures/xdd_test/xdd_test.xml +++ b/tests/fixtures/xdd_test/xdd_test.xml @@ -1,5 +1,5 @@  - + From d5771d39c54764b476f5ccdba7c787b6a4c86bf1 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 29 Feb 2020 13:49:18 +0300 Subject: [PATCH 26/60] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B2=D1=8B=D0=B4=D0=B0=D1=87=D0=B0=20=D1=81?= =?UTF-8?q?=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2,=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B5=20=D0=BF=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=D0=B8=D1=8F,=20=D0=B7=D0=B0=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D0=BA=D0=B5=201=D0=A1:=D0=9F=D1=80=D0=B5=D0=B4=D1=80?= =?UTF-8?q?=D0=B8=D1=8F=D1=82=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit упрощен текст, убраны служебные логи библиотеки из текста ошибки --- ...5\320\265\321\201\321\201\320\260.feature" | 9 +++-- ...5\321\201\321\202\320\276\320\262.feature" | 4 +- ...20\270\321\217\321\202\320\270\321\217.os" | 11 +++++- ...260\320\275\320\270\320\265_xUnitFor1C.os" | 10 ++++- ...20\264\320\265\320\275\320\270\321\217.os" | 11 +++++- ...20\260\321\202\320\276\321\200\320\260.os" | 38 ++++++++++++++----- 6 files changed, 63 insertions(+), 20 deletions(-) diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" index e648aa66..6a268436 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" @@ -15,10 +15,10 @@ Допустим файл "build/env.json" существует И файл "build/vb-conf.json" существует И файл "./build/feature/пауза.feature" существует - И Я очищаю параметры команды "oscript" в контексте + И Я очищаю параметры команды "oscript" в контексте Сценарий: Запуск тестирования vanessa с паузой. - + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os vanessa" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" И Я добавляю параметр "--vanessasettings ./vb-conf.json" для команды "oscript" @@ -26,9 +26,10 @@ Когда Я выполняю команду "oscript" # И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит - | build\feature\пауза.feature | + # | build\feature\пауза.feature | | Сценарий: Пауза | + | Выполнение сценариев закончено. Ошибок не было | + | Все фичи/сценарии выполнены! | | Тестирование поведения завершено | И Код возврата команды "oscript" равен 0 - diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" index c24a2d1b..824190a2 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" @@ -35,6 +35,8 @@ И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит | Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) | + | -->> тест ТестДолжен_ЧтоТоСделать | + | ИНФОРМАЦИЯ - Все тесты выполнены! | | Выполнение тестов завершено | И Код возврата команды "oscript" равен 0 @@ -86,6 +88,6 @@ Тогда Вывод команды "oscript" содержит | -->> тест ТестДолжен_Упасть | | Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) | - | Результат работы не равен 0 или 2, а равен 1 | + | ОШИБКА - Часть тестов упала! | И Код возврата команды "oscript" равен 1 diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" index 502359de..ed3046ce 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" @@ -86,9 +86,16 @@ КонецЕсли; ПутьЛогаВыполнения = ПараметрыКоманды["--online-file"]; + + ДопСообщения = МенеджерКонфигуратора.НовыеДопСообщенияДляЗапускаПредприятия(); + ДопСообщения.Ключ = "ЗапускВРежимеПредприятия"; + ДопСообщения.СообщениеВСлучаеУспеха = "Выполнение в режиме 1С:Предприятие завершено"; + ДопСообщения.СообщениеВСлучаеПадения = "Возникла ошибка при выполнении в режиме 1С:Предприятие!"; + ДопСообщения.СообщениеВСлучаеПропуска = "Возникла ошибка с кодом 2 при выполнении в режиме 1С:Предприятие!!"; + Попытка МенеджерКонфигуратора.ЗапуститьВРежимеПредприятияСПроверкойВыполнения( - "ЗапускВРежимеПредприятия", + ДопСообщения, КомандаЗапуска, ПутьОбработки1С, ЗапускатьТолстыйКлиент, ПараметрыКоманды["--additional"], ОжидатьЗавершения, @@ -96,7 +103,7 @@ ); Исключение МенеджерКонфигуратора.Деструктор(); - ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ВызватьИсключение; КонецПопытки; МенеджерКонфигуратора.Деструктор(); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" index 1bfaaad4..a1b43e65 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" @@ -145,7 +145,7 @@ ); Исключение МенеджерКонфигуратора.Деструктор(); - ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ВызватьИсключение; КонецПопытки; МенеджерКонфигуратора.Деструктор(); @@ -249,8 +249,14 @@ ДополнительныеКлючи = " /TESTMANAGER " + ДопПараметры; + ДопСообщения = МенеджерКонфигуратора.НовыеДопСообщенияДляЗапускаПредприятия(); + ДопСообщения.Ключ = "ЗапуститьТестироватьЮнит"; + ДопСообщения.СообщениеВСлучаеУспеха = "Все тесты выполнены!"; + ДопСообщения.СообщениеВСлучаеПадения = "Часть тестов упала!"; + ДопСообщения.СообщениеВСлучаеПропуска = "Ошибок при тестировании не найдено, но часть тестов еще не реализована!"; + МенеджерКонфигуратора.ЗапуститьВРежимеПредприятияСПроверкойВыполнения( - "ЗапуститьТестироватьЮнит", + ДопСообщения, КлючЗапуска, ПутьКИнструментам, ТолстыйКлиент, ДополнительныеКлючи, ОжидатьЗавершения, ПутьЛогаВыполненияСценариев, ПутьФайлаСтатусаТестирования); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" index d520fbde..be768784 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" @@ -104,7 +104,7 @@ Исключение МенеджерКонфигуратора.Деструктор(); - ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ВызватьИсключение; КонецПопытки; МенеджерКонфигуратора.Деструктор(); @@ -172,8 +172,15 @@ ДополнительныеКлючи = " /TESTMANAGER " + ДопПараметры; + ДопСообщения = МенеджерКонфигуратора.НовыеДопСообщенияДляЗапускаПредприятия(); + ДопСообщения.Ключ = "ЗапуститьТестироватьПоведение"; + ДопСообщения.СообщениеВСлучаеУспеха = "Все фичи/сценарии выполнены!"; + ДопСообщения.СообщениеВСлучаеПадения = "Часть фич/сценариев упала!"; + ДопСообщения.СообщениеВСлучаеПропуска = + "Ошибок при проверке поведения не найдено, но часть сценариев еще не реализована!"; + МенеджерКонфигуратора.ЗапуститьВРежимеПредприятияСПроверкойВыполнения( - "ЗапуститьТестироватьПоведение", + ДопСообщения, КлючЗапуска, ПутьКИнструментам, ТолстыйКлиент, ДополнительныеКлючи, ОжидатьЗавершения, ПутьЛогаВыполненияСценариев, ПутьКФайлуСтатусаВыполнения); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index fc0c5ae9..a299f1f7 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -153,11 +153,21 @@ Лог.Информация("Список расширений конфигурации:%2%1", ПолучитьСписокВсехРасширений(), Символы.ПС); КонецПроцедуры +// Создать структуру для дополнительных сообщений запуска 1С в режиме Предприятия +// +// Возвращаемое значение: +// Структура - ключи Ключ,СообщениеВСлучаеУспеха,СообщениеВСлучаеПадения,СообщениеВСлучаеПропуска с пустыми строками +// +Функция НовыеДопСообщенияДляЗапускаПредприятия() Экспорт + Возврат Новый Структура("Ключ,СообщениеВСлучаеУспеха,СообщениеВСлучаеПадения,СообщениеВСлучаеПропуска", + "", "", "", ""); +КонецФункции + // Выполнить команду/действие в режиме 1С:Предприятия // проверкой статус-файла выполнения и возможностью ожидания выполнения и чтением лог-файла // // Параметры: -// ПредставлениеКоманды - <Строка> - <описание параметра> +// ДопСообщения - Структура - из метода НовыеДопСообщенияДляЗапускаПредприятия // ПараметрЗапуска - <Строка> - <описание параметра> // ОбработкаДляЗапуска - <Строка> - <описание параметра> // ТолстыйКлиент - <Булево> - признак запуска толстого клиента @@ -167,7 +177,7 @@ // ПутьКФайлуСтатусаВыполнения - Строка - путь файла статуса (внутри файла должно быть 1 или 0) // Процедура ЗапуститьВРежимеПредприятияСПроверкойВыполнения( - Знач ПредставлениеКоманды, + Знач ДопСообщения, Знач ПараметрЗапуска, Знач ОбработкаДляЗапуска, Знач ТолстыйКлиент, @@ -176,6 +186,7 @@ Знач ПутьЛогаВыполненияСценариев = Неопределено, Знач ПутьКФайлуСтатусаВыполнения = Неопределено) Экспорт + ПредставлениеКоманды = ДопСообщения.Ключ; Если Не ОжидатьЗавершения И ЗначениеЗаполнено(ПутьЛогаВыполненияСценариев) Тогда ВызватьИсключение "Нельзя получать лог выполнения без включенного признака ожидания выполнения 1С"; @@ -201,15 +212,24 @@ КонецЕсли; Если ЗначениеЗаполнено(ПутьКФайлуСтатусаВыполнения) Тогда - Результат = ОбщиеМетоды.ПрочитатьФайлИнформации(ПутьКФайлуСтатусаВыполнения); - Если СокрЛП(Результат) <> "0" И СокрЛП(Результат) <> "2" Тогда - ВызватьИсключение "Результат работы не равен 0 или 2, а равен "+ Результат; + Результат = СокрЛП(ОбщиеМетоды.ПрочитатьФайлИнформации(ПутьКФайлуСтатусаВыполнения)); + Лог.Отладка("Код возврата %1", Результат); + Если Результат = "0" Тогда + Лог.Информация(ДопСообщения.СообщениеВСлучаеУспеха); + ИначеЕсли Результат = "1" Тогда + Лог.Ошибка(ДопСообщения.СообщениеВСлучаеПадения); + ВызватьИсключение " + |Vanessa-ADD или 1С:Предприятие вернуло код возврата 1"; + ИначеЕсли Результат = "2" Тогда + Лог.Предупреждение(ДопСообщения.СообщениеВСлучаеПропуска); + Иначе + ВызватьИсключение "Получен неожиданный/неверный результат работы - "+ Результат; КонецЕсли; КонецЕсли; Исключение - Лог.Ошибка("Ошибка:" + ОписаниеОшибки()); - ВызватьИсключение ПредставлениеКоманды; + Лог.Ошибка("Причина ошибки:" + ИнформацияОбОшибке().Описание); + ВызватьИсключение; КонецПопытки; КонецПроцедуры @@ -251,8 +271,8 @@ Лог.Отладка("ПараметрЗапуска:"+ПараметрЗапуска); Попытка - УправлениеКонфигуратором.ЗапуститьВРежимеПредприятия(ПараметрЗапуска, - ?(ТипЗнч(ТолстыйКлиент) = Тип("Булево"), Не ТолстыйКлиент, ТолстыйКлиент), + УправлениеКонфигуратором.ЗапуститьВРежимеПредприятия(ПараметрЗапуска, + ?(ТипЗнч(ТолстыйКлиент) = Тип("Булево"), Не ТолстыйКлиент, ТолстыйКлиент), ДополнительныеКлючи ); Текст = УправлениеКонфигуратором.ВыводКоманды(); From 96a2268f479c0d1d02d02feb7787346c2a40857e Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 29 Feb 2020 16:46:18 +0300 Subject: [PATCH 27/60] =?UTF-8?q?=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=BD=D0=B0=20=D0=BE=D1=82=D1=81=D1=83=D1=82?= =?UTF-8?q?=D1=81=D1=82=D0=B2=D0=B8=D0=B5=20=D1=88=D0=B0=D0=B3=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=B8=D0=BB=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?+=20=D1=83=D0=BF=D1=80=D0=BE=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BE=D1=82=20=D0=BD=D0=B5=D0=BD=D1=83=D0=B6=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D1=85=20=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D1=81=D1=82=D1=83=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\320\265\321\201\321\201\320\260.feature" | 43 ++++++++++++-- ...5\321\201\321\202\320\276\320\262.feature" | 57 ++++++++++++++++--- ...7\320\260\321\203\320\267\320\260.feature" | 11 ---- 3 files changed, 87 insertions(+), 24 deletions(-) delete mode 100644 "tests/fixtures/feature/\320\277\320\260\321\203\320\267\320\260.feature" diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" index 6a268436..e87a862c 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" @@ -6,30 +6,63 @@ Чтобы удостовериться в качестве подготовленной конфигурации Контекст: - Допустим я подготовил репозиторий и рабочий каталог проекта + Дано я подготовил репозиторий и рабочий каталог проекта И я подготовил рабочую базу проекта "./build/ib" по умолчанию И Я копирую каталог "feature" из каталога "tests/fixtures" проекта в подкаталог "build" рабочего каталога - И Я копирую файл "пауза.feature" из каталога "tests/fixtures/feature" проекта в подкаталог "./build/feature" рабочего каталога + И Я создаю каталог "build/feature" в рабочем каталоге И Я копирую файл "vb-conf.json" из каталога "tests/fixtures/feature" проекта в подкаталог "build/" рабочего каталога И Я копирую файл "env.json" из каталога "tests/fixtures/feature" проекта в подкаталог "build/" рабочего каталога Допустим файл "build/env.json" существует И файл "build/vb-conf.json" существует - И файл "./build/feature/пауза.feature" существует И Я очищаю параметры команды "oscript" в контексте -Сценарий: Запуск тестирования vanessa с паузой. +Сценарий: Запуск проверки поведения с паузой + И Я создаю файл "build/feature/пауза.feature" с текстом + """ + # language: ru + Функционал: Сделать паузу в указанное число секунд + + Сценарий: Пауза + Когда Пауза 1 + """ Когда Я добавляю параметр "<КаталогПроекта>/src/main.os vanessa" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" И Я добавляю параметр "--vanessasettings ./vb-conf.json" для команды "oscript" И Я добавляю параметр "--workspace ./build" для команды "oscript" + И Я добавляю параметр "--path build/feature" для команды "oscript" Когда Я выполняю команду "oscript" # И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит - # | build\feature\пауза.feature | | Сценарий: Пауза | | Выполнение сценариев закончено. Ошибок не было | | Все фичи/сценарии выполнены! | | Тестирование поведения завершено | И Код возврата команды "oscript" равен 0 + +Сценарий: Запуск тестирования сценария с нереализованным шагом + И Я создаю файл "build/feature/Сценарий с нереализованным шагом.feature" с текстом + """ + # language: ru + Функционал: Выполнение несуществующего шага + + Сценарий: Выполнение несуществующего шага + Когда я выполняю несуществующий шаг + """ + + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os vanessa" для команды "oscript" + И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--vanessasettings ./vb-conf.json" для команды "oscript" + И Я добавляю параметр "--workspace ./build" для команды "oscript" + И Я добавляю параметр "--path build/feature" для команды "oscript" + Когда Я выполняю команду "oscript" + Тогда Вывод команды "oscript" содержит + | Сценарий: Выполнение несуществующего шага | + | Пустой адрес снипета у шага: Когда я выполняю несуществующий шаг | + | Выполнение сценариев закончено. Ошибок не было | + | Все фичи/сценарии выполнены! | + | Тестирование поведения завершено | + + И Код возврата команды "oscript" равен 0 + # И Код возврата команды "oscript" равен 2 diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" index 824190a2..a53fc804 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" @@ -10,10 +10,6 @@ И я подготовил рабочую базу проекта "./build/ib" по умолчанию И Я копирую каталог "xdd_test" из каталога "tests/fixtures" проекта в подкаталог "build" рабочего каталога - # И Я очищаю параметры команды "oscript" в контексте - # Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build/xdd_test.epf" - # И Я очищаю параметры команды "oscript" в контексте - И Я копирую каталог "feature" из каталога "tests/fixtures" проекта в подкаталог "build" рабочего каталога И Я копирую файл "xUnitParams.json" из каталога "tests/fixtures" проекта в подкаталог "build" рабочего каталога @@ -70,8 +66,6 @@ И файл "build/xdd_test.epf" не существует Дано Я очищаю параметры команды "oscript" в контексте Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build" - # И я вижу в консоли вывод "159" - # И Я сообщаю вывод команды "oscript" И файл "build/xdd_test.epf" существует И Код возврата команды "oscript" равен 0 И Я очищаю параметры команды "oscript" в контексте @@ -83,11 +77,58 @@ И Я добавляю параметр "--xddConfig build/xUnitParams.json" для команды "oscript" И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript" Когда Я выполняю команду "oscript" - И Я сообщаю вывод команды "oscript" - # И я вижу в консоли вывод "159" Тогда Вывод команды "oscript" содержит | -->> тест ТестДолжен_Упасть | | Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) | | ОШИБКА - Часть тестов упала! | И Код возврата команды "oscript" равен 1 + +Сценарий: Отсутствующий тест xunit + + Тогда Файл "build/xdd_test/xdd_test/Ext/ObjectModule.bsl" содержит + """ + Перем КонтекстЯдра; + Перем Ожидаем; + Перем Утверждения; + """ + + Дано Я создаю файл "build/xdd_test/xdd_test/Ext/ObjectModule.bsl" с текстом + """ + Перем КонтекстЯдра; + + Процедура Инициализация(КонтекстЯдраПараметр) Экспорт + КонтекстЯдра = КонтекстЯдраПараметр; + КонецПроцедуры + + Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт + НаборТестов.Добавить("ТестДолжен_БытьПропущен"); + КонецПроцедуры + + Процедура ТестДолжен_БытьПропущен() //Экспорт специально отключен + КонецПроцедуры + + """ + И файл "build/xdd_test.epf" не существует + Дано Я очищаю параметры команды "oscript" в контексте + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build" + И файл "build/xdd_test.epf" существует + И Код возврата команды "oscript" равен 0 + И Я очищаю параметры команды "oscript" в контексте + + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os xunit" для команды "oscript" + И Я добавляю параметр "build/xdd_test.epf" для команды "oscript" + И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--workspace ./build" для команды "oscript" + И Я добавляю параметр "--xddConfig build/xUnitParams.json" для команды "oscript" + И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript" + Когда Я выполняю команду "oscript" + Тогда Вывод команды "oscript" содержит + | -->> тест ТестДолжен_БытьПропущен | + | Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) | + | ИНФОРМАЦИЯ - Все тесты выполнены! | + | Выполнение тестов завершено | + # | ПРЕДУПРЕЖДЕНИЕ - Ошибок при тестировании не найдено, но часть тестов еще не реализована! | + + И Код возврата команды "oscript" равен 0 + # И Код возврата команды "oscript" равен 2 diff --git "a/tests/fixtures/feature/\320\277\320\260\321\203\320\267\320\260.feature" "b/tests/fixtures/feature/\320\277\320\260\321\203\320\267\320\260.feature" deleted file mode 100644 index 83736ef5..00000000 --- "a/tests/fixtures/feature/\320\277\320\260\321\203\320\267\320\260.feature" +++ /dev/null @@ -1,11 +0,0 @@ -# language: ru - -Функционал: Сделать паузу в указанное число секунд - Как Разработчик - Я Хочу чтобы чтобы у меня была возможность сделать паузу при выполнении шагов с заданным числом секунд - Чтобы я мог дать нужным элементам управления отобразиться на экране - - -Сценарий: Пауза - Когда Я делаю паузу 1 секунды - И Пауза 1 From 740e08e19c39d9b3d89feb436d24ff29cb949f4e Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 29 Feb 2020 16:47:11 +0300 Subject: [PATCH 28/60] =?UTF-8?q?=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=81=D0=BB=D1=83=D0=B6=D0=B5=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D0=B2=20=D1=81=D0=BB=D1=83=D1=87=D0=B0=D0=B5=20=D0=BD=D0=B5?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=D0=B0=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81?= =?UTF-8?q?=D0=B0=20#339?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index a299f1f7..6783e49e 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -223,7 +223,8 @@ ИначеЕсли Результат = "2" Тогда Лог.Предупреждение(ДопСообщения.СообщениеВСлучаеПропуска); Иначе - ВызватьИсключение "Получен неожиданный/неверный результат работы - "+ Результат; + ВызватьИсключение СтрШаблон("Получен неожиданный/неверный результат работы - %1 + |Возможна, работа 1С:Предприятие завершилась некорректно.", Результат); КонецЕсли; КонецЕсли; From 480f960a434c6970d289c509480ea94dfd01c6d3 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 29 Feb 2020 19:30:55 +0300 Subject: [PATCH 29/60] =?UTF-8?q?=D0=94=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD=D0=B4=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20=D0=B8=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BB=D1=83=D0=B6=D0=B5?= =?UTF-8?q?=D0=B1=D0=BD=D1=8B=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F,=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=B2=D1=8B=D0=B4=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20?= =?UTF-8?q?=D0=B2=20=D1=84=D0=BE=D1=80=D0=BC=D0=B5=201=D0=A1=20=D0=B2=20?= =?UTF-8?q?=D0=BE=D0=BA=D0=BD=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9,=20=D0=BF=D0=BE=20=D1=83=D0=BC=D0=BE=D0=BB?= =?UTF-8?q?=D1=87=D0=B0=D0=BD=D0=B8=D1=8E=20=D1=81=D0=BA=D1=80=D1=8B=D0=B2?= =?UTF-8?q?=D0=B0=D1=8E=D1=82=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit и показываются только в режиме отладки или если была ошибка --- ...5\320\265\321\201\321\201\320\260.feature" | 12 +++- ...260\320\275\320\270\320\265_xUnitFor1C.os" | 1 + ...20\264\320\265\320\275\320\270\321\217.os" | 1 + ...20\260\321\202\320\276\321\200\320\260.os" | 64 +++++++++++-------- 4 files changed, 47 insertions(+), 31 deletions(-) diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" index e87a862c..07b64b23 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" @@ -32,12 +32,15 @@ И Я добавляю параметр "--workspace ./build" для команды "oscript" И Я добавляю параметр "--path build/feature" для команды "oscript" Когда Я выполняю команду "oscript" - # И Я сообщаю вывод команды "oscript" + И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит | Сценарий: Пауза | - | Выполнение сценариев закончено. Ошибок не было | | Все фичи/сценарии выполнены! | | Тестирование поведения завершено | + И Вывод команды "oscript" не содержит + | Фичи загружены | + | Работаю по сценарию: | + | Выполнение сценариев закончено. Ошибок не было | И Код возврата команды "oscript" равен 0 @@ -60,9 +63,12 @@ Тогда Вывод команды "oscript" содержит | Сценарий: Выполнение несуществующего шага | | Пустой адрес снипета у шага: Когда я выполняю несуществующий шаг | - | Выполнение сценариев закончено. Ошибок не было | | Все фичи/сценарии выполнены! | | Тестирование поведения завершено | + И Вывод команды "oscript" не содержит + | Фичи загружены | + | Работаю по сценарию: | + | Выполнение сценариев закончено. Ошибок не было | И Код возврата команды "oscript" равен 0 # И Код возврата команды "oscript" равен 2 diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" index a1b43e65..b5df35cc 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" @@ -251,6 +251,7 @@ ДопСообщения = МенеджерКонфигуратора.НовыеДопСообщенияДляЗапускаПредприятия(); ДопСообщения.Ключ = "ЗапуститьТестироватьЮнит"; + ДопСообщения.ПоказыватьДополнительноЛогПредприятия = Ложь; ДопСообщения.СообщениеВСлучаеУспеха = "Все тесты выполнены!"; ДопСообщения.СообщениеВСлучаеПадения = "Часть тестов упала!"; ДопСообщения.СообщениеВСлучаеПропуска = "Ошибок при тестировании не найдено, но часть тестов еще не реализована!"; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" index be768784..6ce7c28a 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" @@ -174,6 +174,7 @@ ДопСообщения = МенеджерКонфигуратора.НовыеДопСообщенияДляЗапускаПредприятия(); ДопСообщения.Ключ = "ЗапуститьТестироватьПоведение"; + ДопСообщения.ПоказыватьДополнительноЛогПредприятия = Ложь; ДопСообщения.СообщениеВСлучаеУспеха = "Все фичи/сценарии выполнены!"; ДопСообщения.СообщениеВСлучаеПадения = "Часть фич/сценариев упала!"; ДопСообщения.СообщениеВСлучаеПропуска = diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index 6783e49e..912ded97 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -159,8 +159,11 @@ // Структура - ключи Ключ,СообщениеВСлучаеУспеха,СообщениеВСлучаеПадения,СообщениеВСлучаеПропуска с пустыми строками // Функция НовыеДопСообщенияДляЗапускаПредприятия() Экспорт - Возврат Новый Структура("Ключ,СообщениеВСлучаеУспеха,СообщениеВСлучаеПадения,СообщениеВСлучаеПропуска", - "", "", "", ""); + Результат = Новый Структура("Ключ,СообщениеВСлучаеУспеха,СообщениеВСлучаеПадения", + "", "", ""); + Результат.Вставить("СообщениеВСлучаеПропуска", ""); + Результат.Вставить("ПоказыватьДополнительноЛогПредприятия", Истина); + Возврат Результат; КонецФункции // Выполнить команду/действие в режиме 1С:Предприятия @@ -204,11 +207,11 @@ ЗапуститьВРежимеПредприятияСЛогФайлом( ПараметрЗапуска, ОбработкаДляЗапуска, ПутьЛогаВыполненияСценариев, - ТолстыйКлиент, ДополнительныеКлючиЗапуска); + ТолстыйКлиент, ДополнительныеКлючиЗапуска, ДопСообщения); Иначе ЗапуститьВРежимеПредприятия( ПараметрЗапуска, ОбработкаДляЗапуска, - ТолстыйКлиент, ДополнительныеКлючиЗапуска, Ложь); + ТолстыйКлиент, ДополнительныеКлючиЗапуска, Ложь, ДопСообщения); КонецЕсли; Если ЗначениеЗаполнено(ПутьКФайлуСтатусаВыполнения) Тогда @@ -243,10 +246,10 @@ // ДополнительныеКлючиЗапуска - <Строка> - <описание параметра> // ОжидатьЗавершения - Булево - по умолчанию Истина, Ложь - запускает и завершает свой процесс. // -Процедура ЗапуститьВРежимеПредприятия(Знач ПараметрЗапуска="", - Знач ОбработкаДляЗапуска="", Знач ТолстыйКлиент = Ложь, - Знач ДополнительныеКлючиЗапуска = "", - Знач ОжидатьЗавершения = Истина) Экспорт +Процедура ЗапуститьВРежимеПредприятия(Знач ПараметрЗапуска, + Знач ОбработкаДляЗапуска, Знач ТолстыйКлиент, + Знач ДополнительныеКлючиЗапуска, + Знач ОжидатьЗавершения, Знач ДопСообщения) Лог.Информация("Выполняю команду/действие в режиме 1С:Предприятие"); @@ -302,8 +305,9 @@ Процедура ЗапуститьВРежимеПредприятияСЛогФайлом(Знач ПараметрЗапуска, Знач ОбработкаДляЗапуска, Знач ПутьЛогаВыполненияСценариев, - Знач ТолстыйКлиент = Ложь, - Знач ДополнительныеКлючиЗапуска = "") Экспорт + Знач ТолстыйКлиент, + Знач ДополнительныеКлючиЗапуска, + Знач ДопСообщения) Лог.Информация("Выполняю команду/действие в режиме 1С:Предприятие"); @@ -355,28 +359,12 @@ Попытка ЗапуститьПроцесс1С(Приложение, ПутьЛогаВыполненияСценариев ); - Если ФС.Существует(ПутьДамп) Тогда - Текст = ОбщиеМетоды.ПрочитатьФайл(ПутьДамп, КодировкаТекста.ANSI); - Иначе - Лог.Отладка("Не существует файл вывода от 1С - %1", ПутьДамп); - КонецЕсли; - - Если Не ПустаяСтрока(Текст) Тогда - Лог.Информация(Текст); - КонецЕсли; + ПоказатьЛогПредприятия(ПутьДамп, ДопСообщения.ПоказыватьДополнительноЛогПредприятия); Исключение ОписаниеОшибки = ОписаниеОшибки(); - Если ФС.Существует(ПутьДамп) Тогда - Текст = ОбщиеМетоды.ПрочитатьФайл(ПутьДамп, КодировкаТекста.ANSI); - - Если Не ПустаяСтрока(Текст) Тогда - Лог.Информация(Текст); - КонецЕсли; - Иначе - Лог.Информация("Не существует файл вывода от 1С - %1", ПутьДамп); - КонецЕсли; + ПоказатьЛогПредприятия(ПутьДамп, Истина); Лог.Ошибка(ОписаниеОшибки); ВызватьИсключение ТекущаяПроцедура; @@ -455,6 +443,26 @@ Возврат Массив; КонецФункции //ПолучитьНовыеСтрокиЛога +Процедура ПоказатьЛогПредприятия(Знач ПутьДамп, Знач ПоказыватьДополнительноЛогПредприятия) + Если ФС.Существует(ПутьДамп) Тогда + Текст = ОбщиеМетоды.ПрочитатьФайл(ПутьДамп, КодировкаТекста.ANSI); + + Если Не ПустаяСтрока(Текст) Тогда + Сообщение = СтрШаблон("Дополнительный лог выполнения 1С:Предприятие + | + |%1", Текст); + Если ПоказыватьДополнительноЛогПредприятия Тогда + Лог.Информация(Сообщение); + Иначе + Лог.Отладка(Сообщение); + КонецЕсли; + КонецЕсли; + Иначе + Лог.Отладка("Не существует файл вывода от 1С - %1", ПутьДамп); + КонецЕсли; + +КонецПроцедуры + // <Описание процедуры> // // Параметры: From 6a83ec82efa6cc33fb36883b8e7ca6ed5a0f5017 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 29 Feb 2020 23:41:07 +0300 Subject: [PATCH 30/60] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D0=B0=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B0=20designer=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D0=B0=D0=BA=D1=82=D0=B8?= =?UTF-8?q?=D0=B2=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B8=20=D0=B0=D0=B2=D1=82?= =?UTF-8?q?=D0=BE=D0=BC=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B0=20=D1=81=20=D0=BF=D1=80=D0=BE=D0=B8=D0=B7?= =?UTF-8?q?=D0=B2=D0=BE=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD=D0=B4=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\320\260\321\202\320\276\321\200.feature" | 44 +++++++ ...21\200\320\260\321\202\320\276\321\200.os" | 120 ++++++++++++++++++ ...20\260\321\202\320\276\321\200\320\260.os" | 76 +++++++++++ ...21\201\321\202\320\265\320\274\321\213.os" | 2 + 4 files changed, 242 insertions(+) create mode 100644 "features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" create mode 100644 "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" diff --git "a/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" "b/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" new file mode 100644 index 00000000..9dca9f2b --- /dev/null +++ "b/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" @@ -0,0 +1,44 @@ +# language: ru + +Функционал: Запуск Конфигуратора 1С + Как разработчик + Я хочу иметь возможность запускать Конфигуратор интерактивно и автоматически из командной строки + Чтобы выполнять коллективную разработку проекта 1С + +Сценарий: Подготовка ИБ + Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" + Допустим я включаю отладку лога с именем "oscript.lib.v8runner" + # И Я сохраняю значение "DEBUG" в переменную окружения "LOGOS_LEVEL" + # Допустим я включаю отладку лога с именем "bdd" + Допустим Я создаю временный каталог и сохраняю его в контекст + И Я устанавливаю временный каталог как рабочий каталог + + Допустим Я создаю каталог "build/out" в рабочем каталоге + И Я копирую каталог "cf" из каталога "tests/fixtures" проекта в рабочий каталог + + И Я установил рабочий каталог как текущий каталог + Когда Я сохраняю каталог проекта в контекст + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru" + Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" + # Тогда Вывод команды "oscript" содержит "Database configuration successfully updated" + + И Код возврата команды "oscript" равен 0 + + И Я очищаю параметры команды "oscript" в контексте + +Сценарий: Интерактивный запуск Конфигуратора + И Я очищаю параметры команды "oscript" в контексте + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --no-wait --additional /Lru" + Тогда Вывод команды "oscript" содержит + | ИНФОРМАЦИЯ - Выполняю команду Конфигуратора | + | ИНФОРМАЦИЯ - Работа Конфигуратора завершена | + И Код возврата команды "oscript" равен 0 + +Сценарий: Блокировка автоматического запуска Конфигуратора, т.к. ИБ из предыдущего сценария уже залочена Конфигуратором интерактивного запуска + И Я очищаю параметры команды "oscript" в контексте + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --additional /Lru" + # И Я сообщаю вывод команды "oscript" + Тогда Вывод команды "oscript" содержит + | ОШИБКА - Запрещено использование окон. Передан ключ DisableStartupDialogs | + И Код возврата команды "oscript" равен 1 diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" new file mode 100644 index 00000000..36002630 --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" @@ -0,0 +1,120 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Выполнение команды/действия в Конфигураторе автоматически или интерактивно +// +// Служебный модуль с набором методов работы с командами приложения +// +// Структура модуля реализована в соответствии с рекомендациями +// oscript-app-template (C) EvilBeaver +// +/////////////////////////////////////////////////////////////////////////////////////////////////// + +#Использовать logos +#Использовать v8runner + +Перем Лог; + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Прикладной интерфейс + +// Регистрация команды и ее аргументов/ключей +// +// Параметры: +// ИмяКоманды - Строка - имя команды +// Парсер - Парсер - объект парсера +// +Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт + + ТекстОписания = + " Запуск Конфигуратора 1С - интерактивно или автоматически. + |"; + + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, + ТекстОписания); + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--additional", + "Дополнительные параметры для запуска предприятия."); + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--no-wait", + "Не ожидать завершения запущенной команды/действия"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--online-file", + "Путь к файлу с online-записью выполнения"); + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-name", "Строка подключения к хранилищу"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль"); + + Парсер.ДобавитьКоманду(ОписаниеКоманды); + +КонецПроцедуры // ЗарегистрироватьКоманду + +// Выполняет логику команды +// +// Параметры: +// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений +// ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) +// +Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт + + Лог = ДополнительныеПараметры.Лог; + + // // TODO отрефакторить получение ЗапускатьТолстыйКлиент + // ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог); + ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; + + ПараметрыХранилища = Новый Структура; + ПараметрыХранилища.Вставить("СтрокаПодключения", ПараметрыКоманды["--storage-name"]); + ПараметрыХранилища.Вставить("Пользователь", ПараметрыКоманды["--storage-user"]); + ПараметрыХранилища.Вставить("Пароль", ПараметрыКоманды["--storage-pwd"]); + // ПараметрыХранилища.Вставить("Версия", ПараметрыКоманды["--storage-ver"]); + // ПараметрыХранилища.Вставить("РежимОбновления", ПараметрыКоманды["--storage"]); + + МенеджерКонфигуратора = Новый МенеджерКонфигуратора; + + // ПутьОбработки1С = ПараметрыКоманды["--execute"]; + // ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С); + // ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С); + + ОжидатьЗавершения = Не ПараметрыКоманды["--no-wait"]; + + МенеджерКонфигуратора.Инициализация( + ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, + ПараметрыКоманды["--v8version"], ПараметрыКоманды["--uccode"], + ДанныеПодключения.КодЯзыка, ДанныеПодключения.КодЯзыкаСеанса + ); + + МенеджерКонфигуратора.УстановитьПараметрыХранилища(ПараметрыХранилища); + + // КомандаЗапуска = ПараметрыКоманды["--command"]; + // Если НЕ ПараметрыСистемы.ЭтоWindows Тогда + // КомандаЗапуска = СтрЗаменить(КомандаЗапуска, """", "\"""); + // КомандаЗапуска = СтрЗаменить(КомандаЗапуска, ";", "\;"); + // Иначе + // КомандаЗапуска = """" + КомандаЗапуска + """"; + // КонецЕсли; + + ПутьЛогаВыполнения = ПараметрыКоманды["--online-file"]; + + ДопСообщения = МенеджерКонфигуратора.НовыеДопСообщенияДляЗапускаПредприятия(); + ДопСообщения.Ключ = "ЗапускКонфигуратора"; + ДопСообщения.СообщениеВСлучаеУспеха = "Выполнение в режиме Конфигуратор 1С завершено"; + ДопСообщения.СообщениеВСлучаеПадения = "Возникла ошибка при выполнении в режиме Конфигуратор 1С!"; + ДопСообщения.СообщениеВСлучаеПропуска = "Возникла ошибка с кодом 2 при выполнении в режиме Конфигуратор 1С!!"; + + Попытка + МенеджерКонфигуратора.ЗапуститьКонфигуратор( + ДопСообщения, + ПараметрыКоманды["--additional"], + ОжидатьЗавершения); + Исключение + МенеджерКонфигуратора.Деструктор(); + ВызватьИсключение; + КонецПопытки; + + МенеджерКонфигуратора.Деструктор(); + + Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; +КонецФункции // ВыполнитьКоманду + +Функция Заменить_runnerRoot_на_КаталогVanessaRunner(Знач ИсходнаяСтрока) + Возврат СтрЗаменить(ИсходнаяСтрока, "$runnerRoot", ОбщиеМетоды.КаталогПроекта()); +КонецФункции diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index 912ded97..9b7b66dd 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -5,6 +5,7 @@ Перем Лог; Перем УправлениеКонфигуратором; Перем КаталогВременнойИБ; +Перем ПараметрыХранилища; Функция УправлениеКонфигуратором() Экспорт Возврат УправлениеКонфигуратором; @@ -52,6 +53,81 @@ КаталогВременнойИБ = Неопределено; КонецПроцедуры +// Установить параметры подключения к хранилищу 1С +// +// Параметры: +// НовыеПараметрыХранилища - Структура - ключи СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища +// +Процедура УстановитьПараметрыХранилища(Знач НовыеПараметрыХранилища) Экспорт + ПараметрыХранилища = НовыеПараметрыХранилища; +КонецПроцедуры + +// Запустить конфигуратор +// +// Параметры: +// ДопСообщения - Структура - из метода НовыеДопСообщенияДляЗапускаПредприятия +// ДополнительныеКлючиЗапуска - Строка - дополнительные ключи запуска Конфигуратора +// ОжидатьЗавершения - Булево - ожидать завершения выполнения команды +// +Процедура ЗапуститьКонфигуратор(Знач ДопСообщения, Знач ДополнительныеКлючиЗапуска, Знач ОжидатьЗавершения) Экспорт + + ТекущаяПроцедура = "ЗапуститьКонфигуратор"; + Лог.Информация("Выполняю команду Конфигуратора"); + + Лог.Отладка("ДополнительныеКлючиЗапуска:"+ДополнительныеКлючиЗапуска); + + УправлениеКонфигуратором.УстановитьПризнакОжиданияВыполненияПрограммы(ОжидатьЗавершения); + + Если Не ОжидатьЗавершения Тогда + УправлениеКонфигуратором.УстановитьИмяФайлаСообщенийПлатформы(ВременныеФайлы.НовоеИмяФайла()); + КонецЕсли; + + ПараметрыЗапуска = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); + + СтрокаПодключенияХранилище = ПараметрыХранилища.СтрокаПодключения; + ПользовательХранилища = ПараметрыХранилища.Пользователь; + ПарольХранилища = ПараметрыХранилища.Пароль; + + Если НЕ ПустаяСтрока(СтрокаПодключенияХранилище) Тогда + ПараметрыЗапуска.Добавить("/ConfigurationRepositoryF """+СтрокаПодключенияХранилище+""""); + ПараметрыЗапуска.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + + Если Не ПустаяСтрока(ПарольХранилища) Тогда + ПараметрыЗапуска.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + КонецЕсли; + КонецЕсли; + + Если Не ПустаяСтрока(ДополнительныеКлючиЗапуска) Тогда + ПараметрыЗапуска.Добавить(ДополнительныеКлючиЗапуска); + КонецЕсли; + + Попытка + Если ОжидатьЗавершения Тогда + УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска); + Текст = УправлениеКонфигуратором.ВыводКоманды(); + Если Не ПустаяСтрока(Текст) Тогда + Лог.Информация(Текст); + КонецЕсли; + + Иначе + + УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска); + // Текст = УправлениеКонфигуратором.ВыводКоманды(); + // Если Не ПустаяСтрока(Текст) Тогда + // Лог.Информация(Текст); + // КонецЕсли; + + КонецЕсли; + Исключение + Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды()); + Лог.Ошибка(ОписаниеОшибки()); + ВызватьИсключение; + КонецПопытки; + + Лог.Информация("Работа Конфигуратора завершена"); + +КонецПроцедуры + // Обновить конфигурацию БД на сервере // // Параметры: diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" index 95a8bf2d..b1ca0011 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" @@ -66,6 +66,7 @@ мВозможныеКоманды.Вставить("СобратьИзИсходниковФайлРасширения", "compileexttocfe"); мВозможныеКоманды.Вставить("ЗапуститьВРежимеПредприятия", "run"); + мВозможныеКоманды.Вставить("ЗапуститьКонфигуратор", "designer"); мВозможныеКоманды.Вставить("ОбновитьКонфигурациюБазыДанных", "updatedb"); мВозможныеКоманды.Вставить("ВыгрузитьКонфигурациюВФайл", "unload"); мВозможныеКоманды.Вставить("ВыгрузитьИнфобазуВФайл", "dump"); @@ -116,6 +117,7 @@ КлассыРеализацииКоманд[ВозможныеКоманды().Тестирование_xUnitFor1C] = "КомандаТестирование_xUnitFor1C"; КлассыРеализацииКоманд[ВозможныеКоманды().ТестироватьПоведение] = "КомандаТестированиеПоведения"; КлассыРеализацииКоманд[ВозможныеКоманды().ЗапуститьВРежимеПредприятия] = "КомандаЗапуститьВРежимеПредприятия"; + КлассыРеализацииКоманд[ВозможныеКоманды().ЗапуститьКонфигуратор] = "КомандаЗапуститьКонфигуратор"; КлассыРеализацииКоманд[ВозможныеКоманды().СборкаРасширений] = "КомандаСборкаРасширений"; КлассыРеализацииКоманд[ВозможныеКоманды().ЗагрузитьРасширениеИзФайла] = "КомандаЗагрузитьРасширениеИзФайла"; From 7861010c20441dce41bf787344821c33dee7f6c2 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 29 Feb 2020 23:50:34 +0300 Subject: [PATCH 31/60] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=80=D0=B5=D0=B2=D1=88=D0=B8=D0=B9=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\320\260\321\202\320\276\321\200.feature" | 7 ++++-- ...21\200\320\260\321\202\320\276\321\200.os" | 24 ------------------- ...20\260\321\202\320\276\321\200\320\260.os" | 17 +------------ 3 files changed, 6 insertions(+), 42 deletions(-) diff --git "a/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" "b/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" index 9dca9f2b..1e96fe54 100644 --- "a/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" +++ "b/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" @@ -28,17 +28,20 @@ И Я очищаю параметры команды "oscript" в контексте Сценарий: Интерактивный запуск Конфигуратора - И Я очищаю параметры команды "oscript" в контексте + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --no-wait --additional /Lru" + # И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит | ИНФОРМАЦИЯ - Выполняю команду Конфигуратора | + # | ИНФОРМАЦИЯ - Информации об ошибке нет | | ИНФОРМАЦИЯ - Работа Конфигуратора завершена | И Код возврата команды "oscript" равен 0 Сценарий: Блокировка автоматического запуска Конфигуратора, т.к. ИБ из предыдущего сценария уже залочена Конфигуратором интерактивного запуска - И Я очищаю параметры команды "oscript" в контексте + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --additional /Lru" # И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит + # | ПРЕДУПРЕЖДЕНИЕ - Не удалось прочитать файл информации | | ОШИБКА - Запрещено использование окон. Передан ключ DisableStartupDialogs | И Код возврата команды "oscript" равен 1 diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" index 36002630..f7d24511 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" @@ -36,8 +36,6 @@ "Дополнительные параметры для запуска предприятия."); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--no-wait", "Не ожидать завершения запущенной команды/действия"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--online-file", - "Путь к файлу с online-записью выполнения"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-name", "Строка подключения к хранилищу"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища"); @@ -57,23 +55,15 @@ Лог = ДополнительныеПараметры.Лог; - // // TODO отрефакторить получение ЗапускатьТолстыйКлиент - // ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог); ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; ПараметрыХранилища = Новый Структура; ПараметрыХранилища.Вставить("СтрокаПодключения", ПараметрыКоманды["--storage-name"]); ПараметрыХранилища.Вставить("Пользователь", ПараметрыКоманды["--storage-user"]); ПараметрыХранилища.Вставить("Пароль", ПараметрыКоманды["--storage-pwd"]); - // ПараметрыХранилища.Вставить("Версия", ПараметрыКоманды["--storage-ver"]); - // ПараметрыХранилища.Вставить("РежимОбновления", ПараметрыКоманды["--storage"]); МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - // ПутьОбработки1С = ПараметрыКоманды["--execute"]; - // ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С); - // ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С); - ОжидатьЗавершения = Не ПараметрыКоманды["--no-wait"]; МенеджерКонфигуратора.Инициализация( @@ -84,16 +74,6 @@ МенеджерКонфигуратора.УстановитьПараметрыХранилища(ПараметрыХранилища); - // КомандаЗапуска = ПараметрыКоманды["--command"]; - // Если НЕ ПараметрыСистемы.ЭтоWindows Тогда - // КомандаЗапуска = СтрЗаменить(КомандаЗапуска, """", "\"""); - // КомандаЗапуска = СтрЗаменить(КомандаЗапуска, ";", "\;"); - // Иначе - // КомандаЗапуска = """" + КомандаЗапуска + """"; - // КонецЕсли; - - ПутьЛогаВыполнения = ПараметрыКоманды["--online-file"]; - ДопСообщения = МенеджерКонфигуратора.НовыеДопСообщенияДляЗапускаПредприятия(); ДопСообщения.Ключ = "ЗапускКонфигуратора"; ДопСообщения.СообщениеВСлучаеУспеха = "Выполнение в режиме Конфигуратор 1С завершено"; @@ -114,7 +94,3 @@ Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду - -Функция Заменить_runnerRoot_на_КаталогVanessaRunner(Знач ИсходнаяСтрока) - Возврат СтрЗаменить(ИсходнаяСтрока, "$runnerRoot", ОбщиеМетоды.КаталогПроекта()); -КонецФункции diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index 9b7b66dd..f9db05b5 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -102,22 +102,7 @@ КонецЕсли; Попытка - Если ОжидатьЗавершения Тогда - УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска); - Текст = УправлениеКонфигуратором.ВыводКоманды(); - Если Не ПустаяСтрока(Текст) Тогда - Лог.Информация(Текст); - КонецЕсли; - - Иначе - - УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска); - // Текст = УправлениеКонфигуратором.ВыводКоманды(); - // Если Не ПустаяСтрока(Текст) Тогда - // Лог.Информация(Текст); - // КонецЕсли; - - КонецЕсли; + УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска); Исключение Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды()); Лог.Ошибка(ОписаниеОшибки()); From 2da8bde23523ee2b13962469cdec7e74480ea0b0 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 29 Feb 2020 23:57:12 +0300 Subject: [PATCH 32/60] =?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=D1=81=D0=BB=D0=B5=D0=B3=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BF=D0=BB=D1=8B=D0=B2=D1=88=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=B3=D1=80=D1=83=D0=BF=D0=BF=D0=B8=D1=80=D0=BE=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=20=D0=B2=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B5=D0=B9=20=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B5=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" index ed3046ce..4dba8c05 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" @@ -28,8 +28,7 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт ТекстОписания = - " Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров. - |"; + " Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров."; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); From 096a3f42937298db93d4a02be1f05562e126a352 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Tue, 17 Mar 2020 22:03:25 +0300 Subject: [PATCH 33/60] =?UTF-8?q?=D1=81=D0=B6=D0=B0=D0=BB=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B?= =?UTF-8?q?=20help?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\275\321\201\320\260\320\274\320\270.os" | 373 +++++++++--------- 1 file changed, 185 insertions(+), 188 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\265\320\260\320\275\321\201\320\260\320\274\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\265\320\260\320\275\321\201\320\260\320\274\320\270.os" index 448abcb5..98895283 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\265\320\260\320\275\321\201\320\260\320\274\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\265\320\260\320\275\321\201\320\260\320\274\320\270.os" @@ -10,91 +10,91 @@ Перем мЭтоУправлениеСеансами, мЭтоУправлениеРегламентнымиЗаданиями, мЭтоПолучениеИнформацииИБ; Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - + ТекстОписанияКоманды = Неопределено; ОпределитьНазначениеКоманды(ИмяКоманды, ТекстОписанияКоманды); - + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписанияКоманды); - + Если мЭтоУправлениеРегламентнымиЗаданиями Или мЭтоУправлениеСеансами Тогда - Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "Действие", + Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "Действие", ?(мЭтоУправлениеСеансами, "lock|unlock|kill|closed |Действие kill по умолчанию также устанавливает блокировку начала сеансов пользователей. Для подавления этого эффекта используется ключ -with-nolock. |Действие closed предназначено для проверки отсутствия сеансов. Например, может применяться для проверки того, что после блокировки, все регламенты завершили свою работу. - |Если сеансы оказались найдены, то происходит завершение работы скрипта с ошибкой.", + |Если сеансы оказались найдены, то происходит завершение работы скрипта с ошибкой.", "lock|unlock") ); КонецЕсли; Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--ras", "Сетевой адрес RAS, по умолчанию localhost:1545"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--rac", "Команда запуска RAC, по умолчанию находим в каталоге установки 1с"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--db", "Имя информационной базы"); - - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--cluster-admin", "Администратор кластера"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--cluster-pwd", "Пароль администратора кластера"); - - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--cluster", "Идентификатор кластера"); - - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--cluster-name", "Имя кластера"); Если мЭтоУправлениеСеансами Тогда - - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, - "--uccode", + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, + "--uccode", "Ключ разрешения запуска"); - - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--lockmessage", "Сообщение блокировки"); - - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--lockstart", "Время старта блокировки пользователей, время указываем как '2040-12-31T23:59:59'"); - - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, + + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--lockstartat", "Время старта блокировки через n сек"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--try", "Число попыток обращения по протоколу rac/ras"); - - Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, + + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--with-nolock", "Не блокировать сеансы (y/n). Может применяться для действия kill, т.к. по умолчанию, при его выполнении автоматически блокируется начало сеансов. |Пример: ... kill --with-nolock ..."); - Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--lockendclear", "Очищать дату окончания блокировки (y/n). Может применяться для действия lock. |Пример: ... lock --with-nolock ..."); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--filter", "Фильтр поиска сеансов. Предполагает возможность указания множественных вариантов фильтрации. Задается в формате '[filter1]|[filter2]|...|[filterN]'. - |Составляющая фильтра задается в формате [[appid=приложение1[;приложение2]][[name=username1[;username2]]'. + |Составляющая фильтра задается в формате [[appid=приложение1[;приложение2]][[name=username1[;username2]]'. |Пока предусмотрено только два фильтра - по имени приложения (appid) и по имени пользователя 1С (name). |Для фильтра по приложению доступны следующие имена: 1CV8 1CV8C WebClient Designer COMConnection WSConnection BackgroundJob WebServerExtension. - |Использование wildchar/regex пока не предусмотрено. Регистронечувствительно. Параметры должны разделяться через |. + |Использование wildchar/regex пока не предусмотрено. Регистронечувствительно. Параметры должны разделяться через |. |Действует для команд kill и closed. |Пример: ... kill -filter appid=Designer|name=регламент;администратор ..."); - + КонецЕсли; - + Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры Процедура ОпределитьНазначениеКоманды(Знач ИмяКоманды, ТекстОписанияКоманды) - + мЭтоУправлениеСеансами = НРег(ИмяКоманды)=ПараметрыСистемы.ВозможныеКоманды().УправлениеСеансами; мЭтоУправлениеРегламентнымиЗаданиями = НРег(ИмяКоманды)=ПараметрыСистемы.ВозможныеКоманды().УправлениеРегламентнымиЗаданиями; мЭтоПолучениеИнформацииИБ = НРег(ИмяКоманды)=ПараметрыСистемы.ВозможныеКоманды().ЗапроситьПараметрыБД; @@ -104,18 +104,15 @@ КонецЕсли; Если мЭтоПолучениеИнформацииИБ Тогда - ТекстОписанияКоманды = + ТекстОписанияКоманды = " Получение информации о базе данных (выводится в консоль выполнения скрипта). - | Может применяться для проверки работы RAS/RAC. - | "; + | Может применяться для проверки работы RAS/RAC."; ИначеЕсли мЭтоУправлениеРегламентнымиЗаданиями Тогда ТекстОписанияКоманды = - " Управление возможностью работы регламентных заданий. - | "; + " Управление возможностью работы регламентных заданий."; ИначеЕсли мЭтоУправлениеСеансами Тогда ТекстОписанияКоманды = - " Управление сеансами информационной базы. - | "; + " Управление сеансами информационной базы."; КонецЕсли; КонецПроцедуры @@ -129,11 +126,11 @@ КонецПопытки; ПрочитатьПараметры(ПараметрыКоманды); - + Если Не ПараметрыВведеныКорректно() Тогда Возврат МенеджерКомандПриложения.РезультатыКоманд().НеверныеПараметры; КонецЕсли; - + Если мЭтоУправлениеСеансами И мНастройки.Действие = "lock" Тогда УстановитьСтатусБлокировкиСеансов(Истина); ИначеЕсли мЭтоУправлениеСеансами И мНастройки.Действие = "unlock" Тогда @@ -141,8 +138,8 @@ ИначеЕсли мЭтоУправлениеСеансами И мНастройки.Действие = "kill" Тогда УдалитьВсеСеансыИСоединенияБазы(); ИначеЕсли мЭтоУправлениеСеансами И мНастройки.Действие = "closed" Тогда - Возврат ?(ПолучитьСписокСеансов().Количество()=0, - МенеджерКомандПриложения.РезультатыКоманд().Успех, + Возврат ?(ПолучитьСписокСеансов().Количество()=0, + МенеджерКомандПриложения.РезультатыКоманд().Успех, МенеджерКомандПриложения.РезультатыКоманд().ОшибкаВремениВыполнения ); @@ -162,18 +159,18 @@ КонецЕсли; Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; - + КонецФункции Процедура ПрочитатьПараметры(Знач ПараметрыКоманды) - + мНастройки = Новый Структура; ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; - + Для Каждого КЗ Из ПараметрыКоманды Цикл Лог.Отладка(КЗ.Ключ + " = " + КЗ.Значение); КонецЦикла; - + мНастройки.Вставить("АдресСервераАдминистрирования", ОбщиеМетоды.Параметр(ПараметрыКоманды, "--ras", "localhost:1545")); мНастройки.Вставить("ПутьКлиентаАдминистрирования", ПараметрыКоманды["--rac"]); мНастройки.Вставить("ИмяБазыДанных", ПараметрыКоманды["--db"]); @@ -192,33 +189,33 @@ мНастройки.Вставить("ОчищатьВремяОкончанияБлокировки", ПараметрыКоманды["--lockendclear"]); мНастройки.Вставить("НеБлокироватьСеансы", ПараметрыКоманды["--with-nolock"]); мНастройки.Вставить("ФильтрСеансов", ПолучитьСоставляющиеФильтра(ПараметрыКоманды["--filter"])); - + мНастройки.Вставить("Действие", ПараметрыКоманды["Действие"]); - + //Получим путь к платформе если вдруг не установленна мНастройки.ПутьКлиентаАдминистрирования = ПолучитьПутьКRAC(мНастройки.ПутьКлиентаАдминистрирования, мНастройки.ИспользуемаяВерсияПлатформы); - + КонецПроцедуры Функция ПараметрыВведеныКорректно() - + Успех = Истина; - + Если Не ЗначениеЗаполнено(мНастройки.АдресСервераАдминистрирования) Тогда Лог.Ошибка("Не указан сервер администрирования"); Успех = Ложь; КонецЕсли; - + Если Не ЗначениеЗаполнено(мНастройки.ПутьКлиентаАдминистрирования) Тогда Лог.Ошибка("Не указан клиент администрирования"); Успех = Ложь; КонецЕсли; - + Если Не ЗначениеЗаполнено(мНастройки.ИмяБазыДанных) Тогда Лог.Ошибка("Не указано имя базы данных"); Успех = Ложь; КонецЕсли; - + Если (мЭтоУправлениеРегламентнымиЗаданиями Или мЭтоУправлениеСеансами) И Не ЗначениеЗаполнено(мНастройки.Действие) Тогда Лог.Ошибка("Не указано действие lock/unlock"); Успех = Ложь; @@ -245,16 +242,16 @@ Иначе мНастройки.ЧислоПопыток = 1; КонецЕсли; - + Возврат Успех; - + КонецФункции ///////////////////////////////////////////////////////////////////////////////// // Взаимодействие с кластером Процедура УдалитьВсеСеансыИСоединенияБазы() - + Если мНастройки.НеБлокироватьСеансы=Неопределено Или мНастройки.НеБлокироватьСеансы=Ложь Тогда @@ -266,11 +263,11 @@ Для Сч = 1 По мНастройки.ЧислоПопыток Цикл Попытка - + ОтключитьСуществующиеСеансы(); Приостановить(Пауза_ПолСекунды); Сеансы = ПолучитьСписокСеансов(); - + Если Сеансы.Количество() Тогда Лог.Информация("Пауза перед отключением соединений"); Приостановить(Пауза_ДесятьСек); @@ -287,16 +284,16 @@ |%1", ИнформацияОбОшибке().Описание); КонецПопытки; КонецЦикла; - + КонецПроцедуры Процедура УстановитьСтатусБлокировкиСеансов(Знач Блокировать) - + КлючиАвторизацииВБазе = КлючиАвторизацииВБазе(); - + ИдентификаторКластера = ИдентификаторКластера(); ИдентификаторБазы = ИдентификаторБазы(); - + Если Блокировать Тогда КлючРазрешенияЗапускаПоУмолчанию = ИдентификаторБазы; Иначе @@ -313,7 +310,7 @@ Лог.Предупреждение("Не удалось получить количество секунд ожидания перед блокировкой. Текст ошибки: |%1", ИнформацияОбОшибке().Описание); КонецПопытки; - + ВремяБлокировки = Формат(ТекущаяДата() + Секунды, "ДФ='yyyy-MM-ddTHH:mm:ss'"); КонецЕсли; @@ -322,18 +319,18 @@ Если мНастройки.ОчищатьВремяОкончанияБлокировки Тогда СтрокаОкончанияБлокировки = " --denied-to="""""; КонецЕсли; - + КомандаВыполнения = СтрокаЗапускаКлиента() + СтрШаблон("infobase update --infobase=""%3""%4 --cluster=""%1""%2 --sessions-deny=%5 --denied-message=""%6"" --denied-from=""%8""%9 --permission-code=""%7""", ИдентификаторКластера, КлючиАвторизацииВКластере(), ИдентификаторБазы, КлючиАвторизацииВБазе, - ?(Блокировать, "on", "off"), - мНастройки.СообщениеОблокировке, - КлючРазрешенияЗапуска, + ?(Блокировать, "on", "off"), + мНастройки.СообщениеОблокировке, + КлючРазрешенияЗапуска, ВремяБлокировки, СтрокаОкончанияБлокировки) + " "+мНастройки.АдресСервераАдминистрирования; - + Для Сч = 1 По мНастройки.ЧислоПопыток Цикл Попытка ЗапуститьПроцесс(КомандаВыполнения); @@ -343,19 +340,19 @@ |%1", ИнформацияОбОшибке().Описание); КонецПопытки; КонецЦикла; - + Лог.Информация("Сеансы " + ?(Блокировать, "запрещены", "разрешены")); - + КонецПроцедуры Процедура УстановитьСтатусБлокировкиРЗ(Знач Блокировать) - + КлючиАвторизацииВБазе = КлючиАвторизацииВБазе(); - + ИдентификаторКластера = ИдентификаторКластера(); ИдентификаторБазы = ИдентификаторБазы(); - - КомандаВыполнения = СтрокаЗапускаКлиента() + + + КомандаВыполнения = СтрокаЗапускаКлиента() + СтрШаблон("infobase update --infobase=""%3""%4 --cluster=""%1""%2 --scheduled-jobs-deny=%5", ИдентификаторКластера, КлючиАвторизацииВКластере(), @@ -363,32 +360,32 @@ КлючиАвторизацииВБазе, ?(Блокировать, "on", "off") ) + " "+мНастройки.АдресСервераАдминистрирования; - + ЗапуститьПроцесс(КомандаВыполнения); - + Лог.Информация("Регламентные задания " + ?(Блокировать, "запрещены", "разрешены")); - + КонецПроцедуры Функция ПолучитьИнформациюОБазеДанных() - + КлючиАвторизацииВБазе = КлючиАвторизацииВБазе(); - + ИдентификаторКластера = ИдентификаторКластера(); ИдентификаторБазы = ИдентификаторБазы(); - - КомандаВыполнения = СтрокаЗапускаКлиента() + + + КомандаВыполнения = СтрокаЗапускаКлиента() + СтрШаблон("infobase info --infobase=""%3""%4 --cluster=""%1""%2", ИдентификаторКластера, КлючиАвторизацииВКластере(), ИдентификаторБазы, КлючиАвторизацииВБазе ) + " "+мНастройки.АдресСервераАдминистрирования; - + Результат = ЗапуститьПроцесс(КомандаВыполнения); - + Возврат Результат; - + КонецФункции Функция КлючиАвторизацииВБазе() @@ -396,26 +393,26 @@ Если ЗначениеЗаполнено(мНастройки.АдминистраторИБ) Тогда КлючиАвторизацииВБазе = КлючиАвторизацииВБазе + СтрШаблон(" --infobase-user=""%1""", мНастройки.АдминистраторИБ); КонецЕсли; - + Если ЗначениеЗаполнено(мНастройки.ПарольАдминистратораИБ) Тогда КлючиАвторизацииВБазе = КлючиАвторизацииВБазе + СтрШаблон(" --infobase-pwd=""%1""", мНастройки.ПарольАдминистратораИБ); КонецЕсли; - + Возврат КлючиАвторизацииВБазе; - + КонецФункции Функция ИдентификаторКластера() Если мИдентификаторКластера = Неопределено Тогда - + Лог.Информация("Получаю список кластеров"); - + КомандаВыполнения = СтрокаЗапускаКлиента() + "cluster list" + " "+мНастройки.АдресСервераАдминистрирования; - + СписокКластеров = ЗапуститьПроцесс(КомандаВыполнения); - + МассивКластеров = Новый Массив; СтруктураКластера = Новый Структура; @@ -429,7 +426,7 @@ МассивКластеров.Добавить(СтруктураКластера); СтруктураКластера = Новый Структура; - КонецЕсли; + КонецЕсли; КонецЦикла; Если НЕ ПустаяСтрока(мНастройки.ИдентификаторКластера) Тогда @@ -438,55 +435,55 @@ УИДКластера = ОписаниеКластера.УИДКластера; КонецЕсли; КонецЦикла; - ИначеЕсли НЕ ПустаяСтрока(мНастройки.ИмяКластера) Тогда + ИначеЕсли НЕ ПустаяСтрока(мНастройки.ИмяКластера) Тогда Для Каждого ОписаниеКластера Из МассивКластеров Цикл Если ОписаниеКластера.ИмяКластера = """" + мНастройки.ИмяКластера + """" Тогда УИДКластера = ОписаниеКластера.УИДКластера; КонецЕсли; КонецЦикла; - Иначе - УИДКластера = Сред(СписокКластеров, (Найти(СписокКластеров, ":") + 1), Найти(СписокКластеров, "host") - Найти(СписокКластеров, ":") - 1); + Иначе + УИДКластера = Сред(СписокКластеров, (Найти(СписокКластеров, ":") + 1), Найти(СписокКластеров, "host") - Найти(СписокКластеров, ":") - 1); КонецЕсли; мИдентификаторКластера = СокрЛП(СтрЗаменить(УИДКластера, Символы.ПС, "")); - + КонецЕсли; - + Если ПустаяСтрока(мИдентификаторКластера) Тогда ВызватьИсключение "Кластер серверов отсутствует"; КонецЕсли; - + Возврат мИдентификаторКластера; - + КонецФункции Функция ИдентификаторБазы() Если мИдентификаторБазы = Неопределено Тогда мИдентификаторБазы = НайтиБазуВКластере(); КонецЕсли; - + Возврат мИдентификаторБазы; КонецФункции Функция НайтиБазуВКластере() - + КомандаВыполнения = СтрокаЗапускаКлиента() + СтрШаблон("infobase summary list --cluster=""%1""%2", - ИдентификаторКластера(), + ИдентификаторКластера(), КлючиАвторизацииВКластере()) + " " + мНастройки.АдресСервераАдминистрирования; - + Лог.Информация("Получаю список баз кластера"); - - СписокБазВКластере = СокрЛП(ЗапуститьПроцесс(КомандаВыполнения)); + + СписокБазВКластере = СокрЛП(ЗапуститьПроцесс(КомандаВыполнения)); Лог.Отладка(СписокБазВКластере); ЧислоСтрок = СтрЧислоСтрок(СписокБазВКластере); НайденаБазаВКластере = Ложь; Для К = 1 По ЧислоСтрок Цикл - - СтрокаРазбора = СтрПолучитьСтроку(СписокБазВКластере, К); + + СтрокаРазбора = СтрПолучитьСтроку(СписокБазВКластере, К); ПозицияРазделителя = Найти(СтрокаРазбора, ":"); - Если Найти(СтрокаРазбора, "infobase") > 0 Тогда - УИДИБ = СокрЛП(Сред(СтрокаРазбора, ПозицияРазделителя + 1)); - ИначеЕсли Найти(СтрокаРазбора, "name") > 0 Тогда + Если Найти(СтрокаРазбора, "infobase") > 0 Тогда + УИДИБ = СокрЛП(Сред(СтрокаРазбора, ПозицияРазделителя + 1)); + ИначеЕсли Найти(СтрокаРазбора, "name") > 0 Тогда ИмяБазы = СокрЛП(Сред(СтрокаРазбора, ПозицияРазделителя + 1)); Если Нрег(ИмяБазы) = НРег(мНастройки.ИмяБазыДанных) Тогда Лог.Информация("Получен УИД базы"); @@ -494,14 +491,14 @@ Прервать; КонецЕсли; КонецЕсли; - + КонецЦикла; Если Не НайденаБазаВКластере Тогда ВызватьИсключение "База " + мНастройки.ИмяБазыДанных + " не найдена в кластере"; КонецЕсли; - + Возврат УИДИБ; - + КонецФункции Функция КлючиАвторизацииВКластере() @@ -509,7 +506,7 @@ Если ЗначениеЗаполнено(мНастройки.АдминистраторКластера) Тогда КомандаВыполнения = КомандаВыполнения + СтрШаблон(" --cluster-user=""%1""", мНастройки.АдминистраторКластера); КонецЕсли; - + Если ЗначениеЗаполнено(мНастройки.ПарольАдминистратораКластера) Тогда КомандаВыполнения = КомандаВыполнения + СтрШаблон(" --cluster-pwd=""%1""", мНастройки.ПарольАдминистратораКластера); КонецЕсли; @@ -518,14 +515,14 @@ Функция СтрокаЗапускаКлиента() Перем ПутьКлиентаАдминистрирования; - Если ЭтоWindows Тогда + Если ЭтоWindows Тогда ПутьКлиентаАдминистрирования = ОбщиеМетоды.ОбернутьПутьВКавычки(мНастройки.ПутьКлиентаАдминистрирования); Иначе ПутьКлиентаАдминистрирования = мНастройки.ПутьКлиентаАдминистрирования; КонецЕсли; - + Возврат ПутьКлиентаАдминистрирования + " "; - + КонецФункции @@ -533,13 +530,13 @@ Возврат ОбщиеМетоды.ЗапуститьПроцесс(СтрокаВыполнения); - + КонецФункции Процедура ОтключитьСуществующиеСеансы() Лог.Информация("Отключаю существующие сеансы"); - + СеансыБазы = ПолучитьСписокСеансов(); Для Каждого Сеанс Из СеансыБазы Цикл // Попытка @@ -548,28 +545,28 @@ // Лог.Ошибка(ОписаниеОшибки()); // КонецПопытки; КонецЦикла; - + КонецПроцедуры Функция ПолучитьСписокСеансов() - + ТаблицаСеансов = Новый ТаблицаЗначений; ТаблицаСеансов.Колонки.Добавить("Идентификатор"); ТаблицаСеансов.Колонки.Добавить("Приложение"); ТаблицаСеансов.Колонки.Добавить("Пользователь"); ТаблицаСеансов.Колонки.Добавить("НомерСеанса"); - + КомандаЗапуска = СтрокаЗапускаКлиента() + СтрШаблон("session list --cluster=""%1""%2 --infobase=""%3""", - ИдентификаторКластера(), + ИдентификаторКластера(), КлючиАвторизацииВКластере(), ИдентификаторБазы()) + " " + мНастройки.АдресСервераАдминистрирования; - - СписокСеансовИБ = ЗапуститьПроцесс(КомандаЗапуска); - + + СписокСеансовИБ = ЗапуститьПроцесс(КомандаЗапуска); + Данные = РазобратьПоток(СписокСеансовИБ); - + Для Каждого Элемент Из Данные Цикл - + Если Не СеансВФильтре(Новый Структура("Приложение, Пользователь", Элемент["app-id"], Элемент["user-name"])) Тогда Продолжить; КонецЕсли; @@ -581,9 +578,9 @@ ТекСтрока.НомерСеанса = Элемент["session-id"]; КонецЦикла; - + Возврат ТаблицаСеансов; - + КонецФункции Процедура ОтключитьСеанс(Знач Сеанс) @@ -592,9 +589,9 @@ ИдентификаторКластера(), КлючиАвторизацииВКластере(), Сеанс.Идентификатор) + " " + мНастройки.АдресСервераАдминистрирования; - + Лог.Информация(СтрШаблон("Отключаю сеанс: %1 [%2] (%3)", Сеанс.НомерСеанса, Сеанс.Пользователь, Сеанс.Приложение)); - + Попытка ЗапуститьПроцесс(СтрокаВыполнения); Исключение @@ -608,174 +605,174 @@ КонецПроцедуры Процедура ОтключитьСоединенияСРабочимиПроцессами() - + Процессы = ПолучитьСписокРабочихПроцессов(); - + Для Каждого РабочийПроцесс Из Процессы Цикл Если РабочийПроцесс["running"] = "yes" Тогда - + СписокСоединений = ПолучитьСоединенияРабочегоПроцесса(РабочийПроцесс); Для Каждого Соединение Из СписокСоединений Цикл - + // Попытка РазорватьСоединениеСПроцессом(РабочийПроцесс, Соединение); // Исключение // Лог.Ошибка(ОписаниеОшибки()); // КонецПопытки; - + КонецЦикла; - + КонецЕсли; КонецЦикла; - + КонецПроцедуры Функция ПолучитьСписокРабочихПроцессов() - + КомандаЗапускаПроцессы = СтрокаЗапускаКлиента() + СтрШаблон("process list --cluster=""%1""%2", - ИдентификаторКластера(), + ИдентификаторКластера(), КлючиАвторизацииВКластере()) + " " + мНастройки.АдресСервераАдминистрирования; - + Лог.Информация("Получаю список рабочих процессов..."); СписокПроцессов = ЗапуститьПроцесс(КомандаЗапускаПроцессы); - + Результат = РазобратьПоток(СписокПроцессов); Возврат Результат; - + КонецФункции Функция ПолучитьСоединенияРабочегоПроцесса(Знач РабочийПроцесс) - + КомандаЗапускаСоединения = СтрокаЗапускаКлиента() + СтрШаблон("connection list --cluster=""%1""%2 --infobase=%3%4 --process=%5", - ИдентификаторКластера(), + ИдентификаторКластера(), КлючиАвторизацииВКластере(), ИдентификаторБазы(), КлючиАвторизацииВБазе(), РабочийПроцесс["process"]) + " " + мНастройки.АдресСервераАдминистрирования; - + Лог.Информация("Получаю список соединений рабочего процесса..."); Соединения = РазобратьПоток(ЗапуститьПроцесс(КомандаЗапускаСоединения)); Результат = Новый Массив; Для Каждого ТекПроцесс Из Соединения Цикл - Если СеансВФильтре(Новый Структура("Приложение, Пользователь", ТекПроцесс["app-id"], ТекПроцесс["user-name"])) + Если СеансВФильтре(Новый Структура("Приложение, Пользователь", ТекПроцесс["app-id"], ТекПроцесс["user-name"])) И ВРег(ТекПроцесс["app-id"])<>"RAS" Тогда Результат.Добавить(ТекПроцесс); КонецЕсли; КонецЦикла; Возврат Результат; - + КонецФункции Функция РазорватьСоединениеСПроцессом(Знач РабочийПроцесс, Знач Соединение) - + КомандаРазрывСоединения = СтрокаЗапускаКлиента() + СтрШаблон("connection disconnect --cluster=""%1""%2 %3 --process=%4 --connection=%5", - ИдентификаторКластера(), + ИдентификаторКластера(), КлючиАвторизацииВКластере(), КлючиАвторизацииВБазе(), РабочийПроцесс["process"], Соединение["connection"]) + " " + мНастройки.АдресСервераАдминистрирования; - + Сообщение = СтрШаблон("Отключаю соединение %1 [%2] (%3)", Соединение["conn-id"], Соединение["app-id"], Соединение["user-name"] ); - + Лог.Информация(Сообщение); - + Возврат ЗапуститьПроцесс(КомандаРазрывСоединения); - + КонецФункции Функция РазобратьПоток(Знач Поток) Экспорт - + ТД = Новый ТекстовыйДокумент; ТД.УстановитьТекст(Поток); - + СписокОбъектов = Новый Массив; ТекущийОбъект = Неопределено; - + Для Сч = 1 По ТД.КоличествоСтрок() Цикл - + Текст = ТД.ПолучитьСтроку(Сч); Если ПустаяСтрока(Текст) или ТекущийОбъект = Неопределено Тогда Если ТекущийОбъект <> Неопределено и ТекущийОбъект.Количество() = 0 Тогда Продолжить; // очередная пустая строка подряд КонецЕсли; - + ТекущийОбъект = Новый Соответствие; СписокОбъектов.Добавить(ТекущийОбъект); КонецЕсли; - + СтрокаРазбораИмя = ""; СтрокаРазбораЗначение = ""; - + Если РазобратьНаКлючИЗначение(Текст, СтрокаРазбораИмя, СтрокаРазбораЗначение) Тогда ТекущийОбъект[СтрокаРазбораИмя] = СтрокаРазбораЗначение; КонецЕсли; - + КонецЦикла; - + Если ТекущийОбъект <> Неопределено и ТекущийОбъект.Количество() = 0 Тогда СписокОбъектов.Удалить(СписокОбъектов.ВГраница()); - КонецЕсли; - + КонецЕсли; + Возврат СписокОбъектов; - + КонецФункции Функция ПолучитьПутьКRAC(ТекущийПуть, Знач ВерсияПлатформы = "") - - Если НЕ ПустаяСтрока(ТекущийПуть) Тогда + + Если НЕ ПустаяСтрока(ТекущийПуть) Тогда ФайлУтилиты = Новый Файл(ТекущийПуть); - Если ФайлУтилиты.Существует() Тогда + Если ФайлУтилиты.Существует() Тогда Лог.Отладка("Текущая версия rac " + ФайлУтилиты.ПолноеИмя); Возврат ФайлУтилиты.ПолноеИмя; КонецЕсли; КонецЕсли; - - Если ПустаяСтрока(ВерсияПлатформы) Тогда + + Если ПустаяСтрока(ВерсияПлатформы) Тогда ВерсияПлатформы = "8.3"; КонецЕсли; - + Конфигуратор = Новый УправлениеКонфигуратором; ПутьКПлатформе = Конфигуратор.ПолучитьПутьКВерсииПлатформы(ВерсияПлатформы); Лог.Отладка("Используемый путь для поиска rac " + ПутьКПлатформе); КаталогУстановки = Новый Файл(ПутьКПлатформе); Лог.Отладка(КаталогУстановки.Путь); - - + + ИмяФайла = ?(ЭтоWindows, "rac.exe", "rac"); - + ФайлУтилиты = Новый Файл(ОбъединитьПути(Строка(КаталогУстановки.Путь), ИмяФайла)); - Если ФайлУтилиты.Существует() Тогда + Если ФайлУтилиты.Существует() Тогда Лог.Отладка("Текущая версия rac " + ФайлУтилиты.ПолноеИмя); Возврат ФайлУтилиты.ПолноеИмя; КонецЕсли; - + Возврат ТекущийПуть; - + КонецФункции Функция РазобратьНаКлючИЗначение(Знач СтрокаРазбора, Ключ, Значение) - + ПозицияРазделителя = Найти(СтрокаРазбора, ":"); Если ПозицияРазделителя = 0 Тогда Возврат Ложь; КонецЕсли; - + Ключ = СокрЛП(Лев(СтрокаРазбора, ПозицияРазделителя - 1)); Значение = СокрЛП(Сред(СтрокаРазбора, ПозицияРазделителя + 1)); - + Возврат Истина; - + КонецФункции Функция ПолучитьСоставляющиеФильтра(СтрокаФильтра) - + Результат = Новый Структура; СоставФильтра = СтрРазделить(СтрокаФильтра, "|", Ложь); @@ -824,15 +821,15 @@ Результат = Результат И ПараметрСеансаВФильтре("name", Сеанс.Пользователь); Возврат Результат; - + КонецФункции Функция ПараметрСеансаВФильтре(ИмяФильтра, ПроверяемоеЗначение) - + Если Не ЗначениеЗаполнено(мНастройки.ФильтрСеансов) Или Не мНастройки.ФильтрСеансов.Свойство(ИмяФильтра) Тогда Возврат Истина; КонецЕсли; - + ЗначенияФильтра = мНастройки.ФильтрСеансов[ИмяФильтра]; Для Каждого ТекЗначение Из ЗначенияФильтра Цикл ВФильтре = ВРег(ТекЗначение)=ВРег(ПроверяемоеЗначение); From 050c0fd36aefdada9d81c54a2f91fe2a2e9ec6b6 Mon Sep 17 00:00:00 2001 From: "a.strizhachuk" Date: Thu, 2 Apr 2020 14:10:14 +0300 Subject: [PATCH 34/60] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8F=20=D1=85=D1=80=D0=B0=D0=BD=D0=B8=D0=BB?= =?UTF-8?q?=D0=B8=D1=89=D0=B0=20=D0=B1=D0=B5=D0=B7=20=D0=BF=D0=B0=D1=80?= =?UTF-8?q?=D0=BE=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\260\320\275\320\270\320\273\320\270\321\211\320\260.os" | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" index 3141da27..9f154fa4 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" @@ -35,8 +35,7 @@ Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища. | Обязательный параметр"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль. - | Обязательный параметр"); - + | Необязательный параметр"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-role", "Назначаемая роль. Возможные варианты: | ReadOnly — право на просмотр, | LockObjects — право на захват объектов, @@ -64,7 +63,6 @@ РольПользователя = ПараметрыКоманды["--storage-role"]; Ожидаем.Что(ЛогинПользователя, " не задан логин создаваемого пользователя хранилища").Заполнено(); - Ожидаем.Что(ПарольПользователя, " не задан пароль создаваемого пользователя хранилища").Заполнено(); Ожидаем.Что(РольПользователя, "Не заполнены роли пользователя. Они должны быть заданы через параметр ком.строки --storage-role").Заполнено(); From fd0da9647f724d393a6844c8bf60cd3e568beca4 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 30 Apr 2020 23:17:02 +0300 Subject: [PATCH 35/60] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=80=D1=83=D1=81=D1=81=D0=BA=D0=B8=D0=B9=20=D1=8F?= =?UTF-8?q?=D0=B7=D1=8B=D0=BA=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D0=BD=D0=B0=20=D0=B0=D0=BD?= =?UTF-8?q?=D0=B3=D0=BB=D0=B8=D0=B9=D1=81=D0=BA=D0=B8=D1=85=20=D0=9E=D0=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\244\320\260\320\271\320\273dt.feature" | 8 +-- ...4\320\260\320\271\320\273\321\213.feature" | 10 +-- ...0\320\265\320\275\320\270\320\271.feature" | 6 +- ...4\320\260\320\271\320\273\320\260.feature" | 12 ++-- ...0\320\260\321\202\320\276\321\200.feature" | 4 +- ...6\320\265\320\275\320\270\321\217.feature" | 24 ++++---- ...0\320\260\321\206\320\270\321\216.feature" | 20 +++--- ...6\320\270\320\270\320\221\320\224.feature" | 20 +++--- ...6\320\265\320\275\320\270\321\217.feature" | 18 +++--- ...0\320\260\321\206\320\270\320\271.feature" | 24 ++++---- ...5\320\265\321\201\321\201\320\260.feature" | 2 + ...2\321\201\320\270\321\201\320\260.feature" | 61 +++++++++++-------- ...5\321\201\321\202\320\276\320\262.feature" | 9 ++- ...4\320\260\320\275\320\264\321\213.feature" | 2 +- ...3\320\270\321\211\320\265\320\274.feature" | 18 +++--- ...0\320\260\321\206\320\270\320\270.feature" | 4 ++ ...1\320\276\321\202\320\276\320\272.feature" | 16 ++--- ...0\320\265\320\275\320\270\320\271.feature" | 4 +- ...1\320\276\321\202\320\276\320\272.feature" | 12 ++-- ...0\320\265\320\275\320\270\320\271.feature" | 26 ++++---- ...5\320\270\320\272\320\276\320\262.feature" | 4 +- 21 files changed, 162 insertions(+), 142 deletions(-) diff --git "a/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\230\320\275\321\204\320\276\320\221\320\260\320\267\321\203\320\222\320\244\320\260\320\271\320\273dt.feature" "b/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\230\320\275\321\204\320\276\320\221\320\260\320\267\321\203\320\222\320\244\320\260\320\271\320\273dt.feature" index c537bb1b..cff700da 100644 --- "a/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\230\320\275\321\204\320\276\320\221\320\260\320\267\321\203\320\222\320\244\320\260\320\271\320\273dt.feature" +++ "b/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\230\320\275\321\204\320\276\320\221\320\260\320\267\321\203\320\222\320\244\320\260\320\271\320\273dt.feature" @@ -13,12 +13,12 @@ И Я копирую каталог "cf" из каталога "tests/fixtures" проекта в рабочий каталог И Я установил рабочий каталог как текущий каталог И Я сохраняю каталог проекта в контекст - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" - И Я очищаю параметры команды "oscript" в контексте + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru" + И Я очищаю параметры команды "oscript" в контексте Сценарий: Выгрузка базы данных в dt файл - - Допустим Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os dump ./build/1Cv8.dt --ibconnection /F./build/ib" + + Допустим Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os dump ./build/1Cv8.dt --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" И Код возврата команды "oscript" равен 0 И Файл "./build/1Cv8.dt" существует diff --git "a/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\244\320\260\320\271\320\273\321\213.feature" "b/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\244\320\260\320\271\320\273\321\213.feature" index f295e460..3e779a07 100644 --- "a/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\244\320\260\320\271\320\273\321\213.feature" +++ "b/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\244\320\260\320\271\320\273\321\213.feature" @@ -15,21 +15,21 @@ И Я установил рабочий каталог как текущий каталог И Я сохраняю каталог проекта в контекст - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" - И Я очищаю параметры команды "oscript" в контексте + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru" + И Я очищаю параметры команды "oscript" в контексте Сценарий: Выгрузка конфигурации в файл cf - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unload ./build/1Cv8.cf --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unload ./build/1Cv8.cf --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" И файл "build/1Cv8.cf" существует И Код возврата команды "oscript" равен 0 Сценарий: Загрузка файла cf в конфигурацию - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unload ./build/1Cv8.cf --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unload ./build/1Cv8.cf --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" И файл "build/1Cv8.cf" существует И Код возврата команды "oscript" равен 0 - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os load -s ./build/1Cv8.cf --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os load -s ./build/1Cv8.cf --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" И Код возврата команды "oscript" равен 0 diff --git "a/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" "b/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" index 24e1669a..e9762b90 100644 --- "a/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" +++ "b/features/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" @@ -8,14 +8,14 @@ Контекст: Допустим я подготовил репозиторий и рабочий каталог проекта И я подготовил рабочую базу проекта "./build/ib" по умолчанию - + Сценарий: Выгрузка одного расширения из базы Допустим Я копирую каталог "cfe" из каталога "tests/fixtures" проекта в рабочий каталог И Я копирую файл "Extension1.cfe" из каталога "tests/fixtures" проекта в рабочий каталог И Я очищаю параметры команды "oscript" в контексте - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileext cfe РасширениеНовое1 --ibconnection /F./build/ib" + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileext cfe РасширениеНовое1 --ibconnection /F./build/ib --language ru" И Я очищаю параметры команды "oscript" в контексте - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unloadext ./РасширениеНовое1.cfe РасширениеНовое1 --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unloadext ./РасширениеНовое1.cfe РасширениеНовое1 --ibconnection /F./build/ib --language ru" Тогда Код возврата равен 0 И Файл "./РасширениеНовое1.cfe" существует # TODO Сценарий: Разборка нескольких расширений с явно заданной базой diff --git "a/features/\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\230\320\267\320\244\320\260\320\271\320\273\320\260.feature" "b/features/\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\230\320\267\320\244\320\260\320\271\320\273\320\260.feature" index eea8c027..50a3e65a 100644 --- "a/features/\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\230\320\267\320\244\320\260\320\271\320\273\320\260.feature" +++ "b/features/\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\265\320\230\320\267\320\244\320\260\320\271\320\273\320\260.feature" @@ -10,21 +10,21 @@ И я подготовил рабочую базу проекта "./build/ib" по умолчанию Допустим Я копирую файл "Extension1.cfe" из каталога "tests/fixtures" проекта в рабочий каталог И Я очищаю параметры команды "oscript" в контексте - + Сценарий: Загрузка одного расширения из файла с обновлением БД - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os loadext --file Extension1.cfe --extension РасширениеНовое1 --updatedb --ibconnection /F./build/ib" + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os loadext --file Extension1.cfe --extension РасширениеНовое1 --updatedb --ibconnection /F./build/ib --language ru" И Я показываю вывод команды И Я очищаю параметры команды "oscript" в контексте - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unloadext ./РасширениеНовое1.cfe РасширениеНовое1 --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unloadext ./РасширениеНовое1.cfe РасширениеНовое1 --ibconnection /F./build/ib --language ru" И Я показываю вывод команды И Файл "./РасширениеНовое1.cfe" существует Тогда Код возврата равен 0 - + Сценарий: Загрузка одного расширения из файла без обновления БД - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os loadext --file Extension1.cfe --extension РасширениеНовое1 --ibconnection /F./build/ib" + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os loadext --file Extension1.cfe --extension РасширениеНовое1 --ibconnection /F./build/ib --language ru" И Я показываю вывод команды И Я очищаю параметры команды "oscript" в контексте - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unloadext ./РасширениеНовое1.cfe РасширениеНовое1 --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unloadext ./РасширениеНовое1.cfe РасширениеНовое1 --ibconnection /F./build/ib --language ru" И Я показываю вывод команды И Файл "./РасширениеНовое1.cfe" существует Тогда Код возврата равен 0 diff --git "a/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" "b/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" index 1e96fe54..4929ebe1 100644 --- "a/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" +++ "b/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" @@ -29,7 +29,7 @@ Сценарий: Интерактивный запуск Конфигуратора - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --no-wait --additional /Lru" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --no-wait --additional /Lru --language ru" # И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит | ИНФОРМАЦИЯ - Выполняю команду Конфигуратора | @@ -39,7 +39,7 @@ Сценарий: Блокировка автоматического запуска Конфигуратора, т.к. ИБ из предыдущего сценария уже залочена Конфигуратором интерактивного запуска - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --additional /Lru" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --additional /Lru --language ru" # И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит # | ПРЕДУПРЕЖДЕНИЕ - Не удалось прочитать файл информации | diff --git "a/features/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" "b/features/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" index b058c4fd..d12d61ff 100644 --- "a/features/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" +++ "b/features/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" @@ -28,19 +28,19 @@ # Тогда Я показываю каталог проекта # И Я показываю рабочий каталог # И Я показываю текущий каталог - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru --locale ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" И Код возврата команды "oscript" равен 0 И Файл "build/ib/1Cv8.1CD" существует И Файл "build/ibservice/1Cv8.1CD" не существует - + # И Файл "cf/Ext/OrdinaryApplicationModule.bsl" содержит 'Сообщить("Обычное приложение");' Сценарий: Инициализация сервисной базы по умолчанию в ./build/ibservice - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --dev --nocacheuse" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --dev --nocacheuse --language ru --locale ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" не содержит "Обновление конфигурации базы данных" И Код возврата команды "oscript" равен 0 @@ -48,18 +48,18 @@ И Файл "build/ib/1Cv8.1CD" не существует Сценарий: Инициализация рабочей базы в отдельном каталоге - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --ibconnection /Fbuild/base1 --nocacheuse" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --ibconnection /Fbuild/base1 --nocacheuse --language ru --locale ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" И Код возврата команды "oscript" равен 0 И Файл "build/base1/1Cv8.1CD" существует И Файл "build/ib/1Cv8.1CD" не существует И Файл "build/ibservice/1Cv8.1CD" не существует - + Сценарий: Инициализация сервисной базы в отдельном каталоге - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --dev --ibconnection /Fbuild/base2 --nocacheuse" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --dev --ibconnection /Fbuild/base2 --nocacheuse --language ru --locale ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" не содержит "Обновление конфигурации базы данных" И Код возврата команды "oscript" равен 0 @@ -69,7 +69,7 @@ Сценарий: Инициализация рабочей базы и добавления ее в список баз пользователя. - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --language ru --locale ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" И Код возврата команды "oscript" равен 0 @@ -89,7 +89,7 @@ Сценарий: Обновление dev-базы ./build/ibservice на сервере в режиме реструктуризации -v2 Когда Я сохраняю каталог проекта в контекст - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --dev --v2" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --dev --v2 --language ru --locale ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" И Код возврата команды "oscript" равен 0 diff --git "a/features/\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\216.feature" "b/features/\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\216.feature" index b2b89a5a..1d7c5c34 100644 --- "a/features/\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\216.feature" +++ "b/features/\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\216.feature" @@ -16,24 +16,24 @@ И Я установил рабочий каталог как текущий каталог И Я сохраняю каталог проекта в контекст - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" - И Я очищаю параметры команды "oscript" в контексте - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --nocacheuse --ibconnection /F./build/ib-work" - И Я очищаю параметры команды "oscript" в контексте + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru" + И Я очищаю параметры команды "oscript" в контексте + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --nocacheuse --ibconnection /F./build/ib-work --language ru" + И Я очищаю параметры команды "oscript" в контексте - Допустим Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unload ./build/1Cv8.cf --ibconnection /F./build/ib" + Допустим Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unload ./build/1Cv8.cf --ibconnection /F./build/ib --language ru" И Код возврата команды "oscript" равен 0 - И Я очищаю параметры команды "oscript" в контексте + И Я очищаю параметры команды "oscript" в контексте Сценарий: Обновление обычной конфигурации - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os update -s ./build/1Cv8.cf --ibconnection /F./build/ib-work" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os update -s ./build/1Cv8.cf --ibconnection /F./build/ib-work --language ru" Тогда я вижу в консоли вывод "Файл не содержит доступных обновлений" И Код возврата команды "oscript" равен 1 Сценарий: Обновление обычной конфигурации с указанием файла настройки - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os update -s ./build/1Cv8.cf --update-settings MergeSettingsКонфигурация-cf-to-empty.xml --ibconnection /F./build/ib-work" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os update -s ./build/1Cv8.cf --update-settings MergeSettingsКонфигурация-cf-to-empty.xml --ibconnection /F./build/ib-work --language ru" Тогда я вижу в консоли вывод "Файл не содержит доступных обновлений" И Код возврата команды "oscript" равен 1 diff --git "a/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\224.feature" "b/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\224.feature" index 14b94f1c..b4a7eb9f 100644 --- "a/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\224.feature" +++ "b/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\224.feature" @@ -2,12 +2,12 @@ Функционал: Обновление конфигурации базы данных Как разработчик - Я хочу иметь возможность обновить базу данных + Я хочу иметь возможность обновить базу данных Чтобы отдельно загружать конфигурацию и потом обновлять ее Контекст: Подготовка репозитория и рабочего каталога проекта 1С Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - И Я очищаю параметры команды "oscript" в контексте + И Я очищаю параметры команды "oscript" в контексте Допустим Я создаю временный каталог и сохраняю его в контекст И Я устанавливаю временный каталог как рабочий каталог @@ -19,20 +19,20 @@ Сценарий: Обновление dev базы по умолчанию в ./build/ibservice Когда Я сохраняю каталог проекта в контекст - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --dev" - И Я очищаю параметры команды "oscript" в контексте - - Тогда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os updatedb --ibconnection /F./build/ibservice --uccode test" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --dev --language ru" + И Я очищаю параметры команды "oscript" в контексте + + Тогда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os updatedb --ibconnection /F./build/ibservice --uccode test --language ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" И Код возврата команды "oscript" равен 0 Сценарий: Обновление dev-базы ./build/ibservice на сервере в режиме реструктуризации -v2 Когда Я сохраняю каталог проекта в контекст - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --dev" - И Я очищаю параметры команды "oscript" в контексте - - Тогда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os updatedb --ibconnection /F./build/ibservice --uccode test --v2" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --dev --language ru" + И Я очищаю параметры команды "oscript" в контексте + + Тогда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os updatedb --ibconnection /F./build/ibservice --uccode test --v2 --language ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" И Код возврата команды "oscript" равен 0 diff --git "a/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" "b/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" index 8b0d8fcd..249a7dc0 100644 --- "a/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" +++ "b/features/\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.feature" @@ -7,7 +7,7 @@ Контекст: Подготовка репозитория и рабочего каталога проекта 1С Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - И Я очищаю параметры команды "oscript" в контексте + И Я очищаю параметры команды "oscript" в контексте Допустим Я создаю временный каталог и сохраняю его в контекст И Я устанавливаю временный каталог как рабочий каталог @@ -19,20 +19,20 @@ Сценарий: Инициализация и обновление рабочей базы по умолчанию в ./build/ib Когда Я сохраняю каталог проекта в контекст - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" - И Я очищаю параметры команды "oscript" в контексте - - Тогда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os update-dev --src ./cf --nocacheuse" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru" + И Я очищаю параметры команды "oscript" в контексте + + Тогда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os update-dev --src ./cf --nocacheuse --language ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" И Код возврата команды "oscript" равен 0 Сценарий: Инициализация и обновление рабочей базы на сервере в режиме реструктуризации -v2 Когда Я сохраняю каталог проекта в контекст - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" - И Я очищаю параметры команды "oscript" в контексте - - Тогда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os update-dev --src ./cf --nocacheuse --v2" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru" + И Я очищаю параметры команды "oscript" в контексте + + Тогда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os update-dev --src ./cf --nocacheuse --v2 --language ru" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено" И Код возврата команды "oscript" равен 0 diff --git "a/features/\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271.feature" "b/features/\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271.feature" index 79b552ba..03488df6 100644 --- "a/features/\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271.feature" +++ "b/features/\320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\271.feature" @@ -16,29 +16,29 @@ И Я установил рабочий каталог как текущий каталог И Я сохраняю каталог проекта в контекст - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" - И Я очищаю параметры команды "oscript" в контексте - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --nocacheuse --ibconnection /F./build/ib-work" - И Я очищаю параметры команды "oscript" в контексте + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru" + И Я очищаю параметры команды "oscript" в контексте + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --nocacheuse --ibconnection /F./build/ib-work --language ru" + И Я очищаю параметры команды "oscript" в контексте - Допустим Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unload ./build/1Cv8.cf --ibconnection /F./build/ib" + Допустим Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unload ./build/1Cv8.cf --ibconnection /F./build/ib --language ru" И Код возврата команды "oscript" равен 0 - И Я очищаю параметры команды "oscript" в контексте + И Я очищаю параметры команды "oscript" в контексте Сценарий: Объединение cf-файла с конфигурацией - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os merge -s ./build/1Cv8.cf --merge-settings MergeSettingsКонфигурация-cf-to-empty.xml --ibconnection /F./build/ib-work" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os merge -s ./build/1Cv8.cf --merge-settings MergeSettingsКонфигурация-cf-to-empty.xml --ibconnection /F./build/ib-work --language ru" Тогда я вижу в консоли вывод "Успешно завершено объединение конфигураций" И Код возврата команды "oscript" равен 0 Сценарий: Объединение cf-файла с конфигурацией с поставкой на поддержку - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os merge -s ./build/1Cv8.cf --enable-support --merge-settings MergeSettingsКонфигурация-cf-to-empty.xml --ibconnection /F./build/ib-work" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os merge -s ./build/1Cv8.cf --enable-support --merge-settings MergeSettingsКонфигурация-cf-to-empty.xml --ibconnection /F./build/ib-work --language ru" Тогда я вижу в консоли вывод "Возможность объединения с постановкой на поддержку отсутствует" И Код возврата команды "oscript" равен 1 Сценарий: Объединение cf-файла без указания файла настроек - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os merge -s ./build/1Cv8.cf --ibconnection /F./build/ib-work" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os merge -s ./build/1Cv8.cf --ibconnection /F./build/ib-work --language ru" И Код возврата команды "oscript" равен 1 Тогда я вижу в консоли вывод "Необходимо задать к файлу с настройками объединения конфигураций" diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" index 07b64b23..990b45a8 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\320\260\320\275\320\265\321\201\321\201\320\260.feature" @@ -31,6 +31,7 @@ И Я добавляю параметр "--vanessasettings ./vb-conf.json" для команды "oscript" И Я добавляю параметр "--workspace ./build" для команды "oscript" И Я добавляю параметр "--path build/feature" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит @@ -59,6 +60,7 @@ И Я добавляю параметр "--vanessasettings ./vb-conf.json" для команды "oscript" И Я добавляю параметр "--workspace ./build" для команды "oscript" И Я добавляю параметр "--path build/feature" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" Тогда Вывод команды "oscript" содержит | Сценарий: Выполнение несуществующего шага | diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.feature" index 97e0317a..617ee250 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.feature" @@ -8,13 +8,14 @@ Контекст: Допустим я подготовил репозиторий и рабочий каталог проекта И я подготовил рабочую базу проекта "./build/ib" по умолчанию - + Сценарий: Синтаксическая проверка временной файловой базы # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - Допустим Я очищаю параметры команды "oscript" в контексте - + Допустим Я очищаю параметры команды "oscript" в контексте + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript" Когда Я выполняю команду "oscript" # И Я сообщаю вывод команды "oscript" @@ -24,14 +25,15 @@ | Результат синтакс-контроля: Ошибок не обнаружено | # Тогда в лог-файле запуска продукта есть строка 'testsuite name="Синтаксическая проверка конфигурации"' - + Сценарий: Синтаксическая проверка временной файловой базы с результатами в формате JUnit # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - Допустим Я очищаю параметры команды "oscript" в контексте - + Допустим Я очищаю параметры команды "oscript" в контексте + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript" И Я добавляю параметр "--junitpath junit.xml" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript" Когда Я выполняю команду "oscript" # И Я сообщаю вывод команды "oscript" @@ -45,12 +47,13 @@ Сценарий: Синтаксическая проверка временной файловой базы с результатами в формате JUnit с группировкой # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - Допустим Я очищаю параметры команды "oscript" в контексте - + Допустим Я очищаю параметры команды "oscript" в контексте + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript" И Я добавляю параметр "--junitpath junit.xml" для команды "oscript" И Я добавляю параметр "--groupbymetadata" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript" Когда Я выполняю команду "oscript" # И Я сообщаю вывод команды "oscript" @@ -64,16 +67,17 @@ Сценарий: Синтаксическая проверка базы с ошибками с результатами в формате JUnit с группировкой # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - Допустим Я очищаю параметры команды "oscript" в контексте - + Допустим Я очищаю параметры команды "oscript" в контексте + И Я копирую каталог "cfbad" из каталога "tests/fixtures" проекта в рабочий каталог - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cfbad --nocacheuse --ibconnection /F./build/ib" - + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cfbad --nocacheuse --ibconnection /F./build/ib --language ru" + Когда Я очищаю параметры команды "oscript" в контексте Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript" И Я добавляю параметр "--junitpath junit.xml" для команды "oscript" И Я добавляю параметр "--groupbymetadata" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript" Когда Я выполняю команду "oscript" И Код возврата равен 1 @@ -86,15 +90,16 @@ Сценарий: Синтаксическая проверка базы с ошибками с результатами в формате JUnit БЕЗ группировки # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - Допустим Я очищаю параметры команды "oscript" в контексте - + Допустим Я очищаю параметры команды "oscript" в контексте + И Я копирую каталог "cfbad" из каталога "tests/fixtures" проекта в рабочий каталог - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cfbad --nocacheuse --ibconnection /F./build/ib" - + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cfbad --nocacheuse --ibconnection /F./build/ib --language ru" + Когда Я очищаю параметры команды "oscript" в контексте Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript" И Я добавляю параметр "--junitpath junit.xml" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript" Когда Я выполняю команду "oscript" И Код возврата равен 1 @@ -107,13 +112,14 @@ Сценарий: Синтаксическая проверка базы с ошибками пустых обработчиков с группировкой # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - Допустим Я очищаю параметры команды "oscript" в контексте - + Допустим Я очищаю параметры команды "oscript" в контексте + Когда Я очищаю параметры команды "oscript" в контексте И Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript" И Я добавляю параметр "--junitpath junit.xml" для команды "oscript" И Я добавляю параметр "--groupbymetadata" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication -EmptyHandlers" для команды "oscript" Когда Я выполняю команду "oscript" И Код возврата равен 0 @@ -126,12 +132,13 @@ Сценарий: Синтаксическая проверка временной файловой базы с указанием имени тестового набора для JUnit # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - Допустим Я очищаю параметры команды "oscript" в контексте - + Допустим Я очищаю параметры команды "oscript" в контексте + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript" И Я добавляю параметр "--junitpath junit.xml" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" И Я добавляю параметр "--testsuitename custom" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript" Когда Я выполняю команду "oscript" # И Я сообщаю вывод команды "oscript" @@ -146,12 +153,13 @@ Сценарий: Синтаксическая проверка временной файловой базы с несуществующего каталога для JUnit # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" - Допустим Я очищаю параметры команды "oscript" в контексте - + Допустим Я очищаю параметры команды "oscript" в контексте + Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript" И Я добавляю параметр "--junitpath out/junit.xml" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" И Я добавляю параметр "--testsuitename custom" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript" Когда Я выполняю команду "oscript" # И Я сообщаю вывод команды "oscript" @@ -167,16 +175,17 @@ Сценарий: Синтаксическая проверка базы с ошибками с результатами в формате Allure2 во вложенном каталоге # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" # Допустим я включаю полную отладку логов пакетов OneScript - Допустим Я очищаю параметры команды "oscript" в контексте - + Допустим Я очищаю параметры команды "oscript" в контексте + И Я копирую каталог "cfbad" из каталога "tests/fixtures" проекта в рабочий каталог - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cfbad --nocacheuse --ibconnection /F./build/ib" - + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cfbad --nocacheuse --ibconnection /F./build/ib --language ru" + Когда Я очищаю параметры команды "oscript" в контексте Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript" И Я добавляю параметр "--allure-results2 out-my/allure-my" для команды "oscript" И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript" Когда Я выполняю команду "oscript" # И Я показываю вывод команды diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" index a53fc804..350576f2 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.feature" @@ -17,7 +17,7 @@ Дано файл "build/xdd_test.epf" не существует Дано Я очищаю параметры команды "oscript" в контексте - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build --language ru" И Я очищаю параметры команды "oscript" в контексте Дано файл "build/xdd_test.epf" существует @@ -27,6 +27,7 @@ И Я добавляю параметр "--workspace ./build" для команды "oscript" И Я добавляю параметр "--xddConfig build/xUnitParams.json" для команды "oscript" И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит @@ -65,7 +66,7 @@ """ И файл "build/xdd_test.epf" не существует Дано Я очищаю параметры команды "oscript" в контексте - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build --language ru" И файл "build/xdd_test.epf" существует И Код возврата команды "oscript" равен 0 И Я очищаю параметры команды "oscript" в контексте @@ -76,6 +77,7 @@ И Я добавляю параметр "--workspace ./build" для команды "oscript" И Я добавляю параметр "--xddConfig build/xUnitParams.json" для команды "oscript" И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" Тогда Вывод команды "oscript" содержит | -->> тест ТестДолжен_Упасть | @@ -111,7 +113,7 @@ """ И файл "build/xdd_test.epf" не существует Дано Я очищаю параметры команды "oscript" в контексте - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/xdd_test build --language ru" И файл "build/xdd_test.epf" существует И Код возврата команды "oscript" равен 0 И Я очищаю параметры команды "oscript" в контексте @@ -122,6 +124,7 @@ И Я добавляю параметр "--workspace ./build" для команды "oscript" И Я добавляю параметр "--xddConfig build/xUnitParams.json" для команды "oscript" И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" Тогда Вывод команды "oscript" содержит | -->> тест ТестДолжен_БытьПропущен | diff --git "a/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" "b/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" index 4339712b..5dd917fe 100644 --- "a/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" +++ "b/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" @@ -7,7 +7,7 @@ Чтобы выполнять коллективную разработку приложения для OneScript Контекст: - Допустим Я очищаю параметры команды "oscript" в контексте + Допустим Я очищаю параметры команды "oscript" в контексте Сценарий: Получение версии продукта Когда Я выполняю команду "oscript" с параметрами "src/main.os version" diff --git "a/features/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\274.feature" "b/features/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\274.feature" index 760daacc..8998acf9 100644 --- "a/features/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\274.feature" +++ "b/features/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\274.feature" @@ -15,35 +15,35 @@ И Я установил рабочий каталог как текущий каталог И Я сохраняю каталог проекта в контекст - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse" + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru" И Я очищаю параметры команды "oscript" в контексте Сценарий: Создание хранилища 1С - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepo ./build/repo admin 123 --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepo ./build/repo admin 123 --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" И каталог "build/repo" существует И Код возврата команды "oscript" равен 0 Сценарий: Создание пользователя 1С - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepo ./build/repo admin 123 --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepo ./build/repo admin 123 --ibconnection /F./build/ib --language ru" И Код возврата команды "oscript" равен 0 - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepouser ./build/repo admin 123 --storage-user uuu --storage-pwd 321 --storage-role Administration --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepouser ./build/repo admin 123 --storage-user uuu --storage-pwd 321 --storage-role Administration --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" И Код возврата команды "oscript" равен 0 Сценарий: Подключение базы к хранилищу 1С - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepo ./build/repo admin 123 --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepo ./build/repo admin 123 --ibconnection /F./build/ib --language ru" И Код возврата команды "oscript" равен 0 - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepouser ./build/repo admin 123 --storage-user uuu --storage-pwd 321 --storage-role Administration --ibconnection /F./build/ib" - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os bindrepo ./build/repo uuu 321 --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepouser ./build/repo admin 123 --storage-user uuu --storage-pwd 321 --storage-role Administration --ibconnection /F./build/ib --language ru" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os bindrepo ./build/repo uuu 321 --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" И Код возврата команды "oscript" равен 0 Сценарий: Выгрузка конфигурации из хранилища 1С - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepo ./build/repo admin 123 --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os createrepo ./build/repo admin 123 --ibconnection /F./build/ib --language ru" И Код возврата команды "oscript" равен 0 - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unloadcfrepo --storage-name ./build/repo --storage-user admin --storage-pwd 123 -o ./build/1cv8.cf --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os unloadcfrepo --storage-name ./build/repo --storage-user admin --storage-pwd 123 -o ./build/1cv8.cf --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" И Код возврата команды "oscript" равен 0 И Файл "./build/1cv8.cf" существует diff --git "a/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.feature" "b/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.feature" index 3116bf59..f7e2ac45 100644 --- "a/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.feature" +++ "b/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.feature" @@ -15,6 +15,7 @@ Допустим Я добавляю параметр "<КаталогПроекта>/src/main.os compile" для команды "oscript" И Я добавляю параметр "-s ./cf" для команды "oscript" И Я добавляю параметр "-o ./build/1Cv8.cf" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" # И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит @@ -27,6 +28,7 @@ И Я добавляю параметр "-i ./build/1Cv8.cf" для команды "oscript" И Я добавляю параметр "-o ./build/cf" для команды "oscript" И Я добавляю параметр "--ibconnection /F./build/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" Тогда Вывод команды "oscript" содержит | Запускаю выгрузку конфигурации в исходники | @@ -39,6 +41,7 @@ И Я добавляю параметр "-s ./cf" для команды "oscript" И Я добавляю параметр "-c" для команды "oscript" И Я добавляю параметр "--ibconnection /F./build/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" Тогда Вывод команды "oscript" содержит | Загрузка конфигурации из файлов успешно завершена | @@ -48,6 +51,7 @@ Допустим Я добавляю параметр "<КаталогПроекта>/src/main.os decompile --ibconnection /F./build/ib" для команды "oscript" И Я добавляю параметр "--ibconnection /F./build/ib" для команды "oscript" И Я добавляю параметр "-o ./build/cf" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Допустим Я создаю каталог "build/cf" в рабочем каталоге Когда Я выполняю команду "oscript" Тогда Вывод команды "oscript" содержит diff --git "a/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" "b/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" index f8159613..d4102f96 100644 --- "a/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" +++ "b/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" @@ -7,18 +7,18 @@ Контекст: Допустим я подготовил репозиторий и рабочий каталог проекта - + И Я копирую файл "fixture.epf" из каталога "tests/fixtures" проекта в подкаталог "build/out" рабочего каталога - + Допустим каталог "epf" не существует - И Я очищаю параметры команды "oscript" в контексте + И Я очищаю параметры команды "oscript" в контексте Сценарий: Разборка одной внешней обработки с временной базой - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os decompileepf build/out/fixture.epf epf" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os decompileepf build/out/fixture.epf epf --language ru" # И Я сообщаю вывод команды "oscript" И Вывод команды "oscript" содержит "Изменено" - И Вывод команды "oscript" содержит "Пропустили" + И Вывод команды "oscript" содержит "Пропустили" И Вывод команды "oscript" не содержит "v8unpack" Тогда Код возврата команды "oscript" равен 0 И файл "epf/fixture/fixture.xml" существует @@ -26,8 +26,8 @@ И файл "epf/fixture/fixture/Ext/ObjectModule.bsl" содержит 'Сообщить("Обработка Тест1");' Сценарий: Разборка каталога внешних обработок с временной базой - - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os decompileepf build/out epf" + + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os decompileepf build/out epf --language ru" И Вывод команды "oscript" содержит "Изменено" И Вывод команды "oscript" содержит "Пропустили" И Вывод команды "oscript" не содержит "v8unpack" diff --git "a/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" "b/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" index 4b64ea9e..f480a12c 100644 --- "a/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" +++ "b/features/\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" @@ -13,11 +13,11 @@ Допустим Я копирую каталог "cfe" из каталога "tests/fixtures" проекта в рабочий каталог И Я копирую файл "Extension1.cfe" из каталога "tests/fixtures" проекта в рабочий каталог И Я очищаю параметры команды "oscript" в контексте - И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileext cfe РасширениеНовое1 --ibconnection /F./build/ib" + И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileext cfe РасширениеНовое1 --ibconnection /F./build/ib --language ru" И каталог "cfe-out" не существует И Я очищаю параметры команды "oscript" в контексте - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os decompileext РасширениеНовое1 cfe-out --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os decompileext РасширениеНовое1 cfe-out --ibconnection /F./build/ib --language ru" Тогда Код возврата равен 0 И Файл "cfe-out/Configuration.xml" содержит """ diff --git "a/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" "b/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" index b2a7bd64..c5e1d9e9 100644 --- "a/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" +++ "b/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.feature" @@ -16,7 +16,7 @@ Сценарий: Сборка каталога внешних обработок - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf ." + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf . --language ru" И Вывод команды "oscript" содержит "Собирали: fixture изменен" Тогда Код возврата команды "oscript" равен 0 И файл "Тест1.epf" существует @@ -24,7 +24,7 @@ Сценарий: Сборка внешней обработки в отдельном каталоге - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf build/out" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf build/out --language ru" И Вывод команды "oscript" содержит "Собирали: fixture изменен" Тогда Код возврата команды "oscript" равен 0 И файл "build/out/Тест1.epf" существует @@ -32,7 +32,7 @@ Сценарий: Сборка внешней обработки с явным указанием каталога исходников обработки в отдельном каталоге - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf/fixture build/out" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf/fixture build/out --language ru" И Вывод команды "oscript" содержит "Собирали: fixture изменен" Тогда Код возврата команды "oscript" равен 0 И файл "build/Тест1.epf" не существует @@ -43,14 +43,14 @@ Допустим Я установил подкаталог "build/out" рабочего каталога как текущий каталог И Я копирую файл "file.txt" из каталога "tests/fixtures" проекта в подкаталог "build/out" рабочего каталога - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf fixture-epf fixture-epf" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf fixture-epf fixture-epf --language ru" И Вывод команды "oscript" содержит "Собирали: fixture изменен" Тогда Код возврата команды "oscript" равен 0 И файл "fixture-epf/fixture/Тест1.epf" не существует Сценарий: Сборка внешней обработки в отдельном каталоге с явным указанием имени результирующего файла - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf build/out/extdp.epf" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf build/out/extdp.epf --language ru" И Вывод команды "oscript" содержит "Собирали: fixture изменен" Тогда Код возврата команды "oscript" равен 0 И файл "build/out/Тест1.epf" не существует @@ -59,7 +59,7 @@ Сценарий: Сборка внешней обработки с явным указанием исходников обработки в отдельном каталоге и имени результирующего файла - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf/fixture build/out/extdp.epf" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/out/fixture-epf/fixture build/out/extdp.epf --language ru" И Вывод команды "oscript" содержит "Собирали: fixture изменен" Тогда Код возврата команды "oscript" равен 0 И файл "build/Тест1.epf" не существует diff --git "a/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" "b/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" index bea3c484..7026e6c8 100644 --- "a/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" +++ "b/features/\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.feature" @@ -7,47 +7,47 @@ Контекст: Допустим я подготовил репозиторий и рабочий каталог проекта - Допустим я подготовил рабочую базу проекта "./build/ib" по умолчанию + Допустим я подготовил рабочую базу проекта "./build/ib" по умолчанию И Я копирую каталог "cfe" из каталога "tests/fixtures" проекта в рабочий каталог Сценарий: Сборка одного расширения с явно заданной базой - + Допустим каталог "epf" не существует - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileext cfe РасширениеНовое1 --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileext cfe РасширениеНовое1 --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" Тогда Код возврата команды "oscript" равен 0 - + Тогда Вывод команды "oscript" содержит """ Список расширений конфигурации: - РасширениеНовое1 + РасширениеНовое1 """ Сценарий: Сборка одного расширения и сохранение в файл с явно заданной базой - + Допустим каталог "epf" не существует - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileexttocfe -s cfe -o РасширениеНовое1.cfe --ibconnection /F./build/ib" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileexttocfe -s cfe -o РасширениеНовое1.cfe --ibconnection /F./build/ib --language ru" Тогда Я сообщаю вывод команды "oscript" Тогда Код возврата команды "oscript" равен 0 - + Тогда Вывод команды "oscript" содержит """ - Список расширений конфигурации: + Список расширений конфигурации: """ И файл "РасширениеНовое1.cfe" существует Сценарий: Сборка одного расширения и сохранение в файл без базы - + Допустим каталог "epf" не существует - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileexttocfe -s cfe -o РасширениеНовое1.cfe" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileexttocfe -s cfe -o РасширениеНовое1.cfe --language ru" Тогда Я сообщаю вывод команды "oscript" Тогда Код возврата команды "oscript" равен 0 - + Тогда Вывод команды "oscript" содержит """ - Список расширений конфигурации: + Список расширений конфигурации: """ И файл "РасширениеНовое1.cfe" существует diff --git "a/features/\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.feature" "b/features/\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.feature" index 92de8b29..0ddaebe2 100644 --- "a/features/\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.feature" +++ "b/features/\320\241\320\276\320\261\321\200\320\260\321\202\321\214\320\230\320\267\320\230\321\201\321\205\320\276\320\264\320\275\320\270\320\272\320\276\320\262.feature" @@ -8,13 +8,14 @@ Контекст: Допустим я подготовил репозиторий и рабочий каталог проекта И я подготовил рабочую базу проекта "./build/ib" по умолчанию - И Я очищаю параметры команды "oscript" в контексте + И Я очищаю параметры команды "oscript" в контексте Сценарий: Запуск сборки конфигурации из исходников в файл cf. Допустим Я добавляю параметр "<КаталогПроекта>/src/main.os compile" для команды "oscript" И Я добавляю параметр "-s ./cf" для команды "oscript" И Я добавляю параметр "-o ./build/1Cv8.cf" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" Тогда Вывод команды "oscript" содержит | Сохранение конфигурации успешно завершено| @@ -26,6 +27,7 @@ И Я добавляю параметр "-s ./cf" для команды "oscript" И Я добавляю параметр "-c" для команды "oscript" И Я добавляю параметр "--ibconnection /F./build/ib" для команды "oscript" + И Я добавляю параметр "--language ru" для команды "oscript" Когда Я выполняю команду "oscript" Тогда Вывод команды "oscript" содержит | Загрузка конфигурации из файлов успешно завершена| From 23ea6b9dd7275c69cf02be50b15ad85c62899a56 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 30 Apr 2020 23:17:22 +0300 Subject: [PATCH 36/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83=20=D1=81?= =?UTF-8?q?=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20=D0=B2=20=D1=88=D0=B0=D0=B3?= =?UTF-8?q?=D0=B5=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/step_definitions/opm-build.os | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/step_definitions/opm-build.os b/features/step_definitions/opm-build.os index cc62732b..5a509930 100644 --- a/features/step_definitions/opm-build.os +++ b/features/step_definitions/opm-build.os @@ -32,7 +32,7 @@ //Я собираю пакет во временном каталоге Процедура ЯСобираюПакетВоВременномКаталоге() Экспорт ПутьВременногоКаталога = БДД.ПолучитьИзКонтекста("ВременныйКаталог"); - СтрокаЗапуска = СтрШаблон("opm build -out %2 %1", ТекущийКаталог(), ПутьВременногоКаталога); + СтрокаЗапуска = СтрШаблон("opm build --out %2 %1", ТекущийКаталог(), ПутьВременногоКаталога); КодВозврата = ВыполнитьКоманду(СтрокаЗапуска); Ожидаем.Что(КодВозврата, From 8b12eace03dafed8bdf6c099ed63d548bbb5c35a Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 30 Apr 2020 23:17:34 +0300 Subject: [PATCH 37/60] =?UTF-8?q?=D0=BE=D0=BF=D0=B5=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\272\321\201\320\270\321\201\320\260.os" | 258 +++++++++--------- 1 file changed, 129 insertions(+), 129 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" index dec120c3..94158b2a 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" @@ -7,28 +7,28 @@ // Прикладной интерфейс Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - + ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, " Централизованная проверка конфигурации, в т.ч. полная проверка синтаксиса конфигурации."); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-name", "Строка подключения к хранилищу"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--junitpath", "Путь отчета в формате JUnit"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--allure-results", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--allure-results", "Путь к каталогу сохранения результатов тестирования в формате Allure (xml)"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--allure-results2", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--allure-results2", "Путь к каталогу сохранения результатов тестирования в формате Allure2 (json)"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--testsuitename", + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--testsuitename", "Указать имя тестового набора в отчете JUnit для раздельной проверки в различных режимах"); - Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--groupbymetadata", + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--groupbymetadata", "Группировать проверки в по метаданным конфигурации"); - + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--exception-file", "Путь файла с указанием пропускаемых исключений | Формат файла: в каждой строке файла указан текст пропускаемого исключения или его часть | Кодировка: UTF-8"); - Парсер.ДобавитьПараметрКоллекцияКоманды(ОписаниеКоманды, "--mode", - "Параметры проверок (через пробел). - | Например, -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication + Парсер.ДобавитьПараметрКоллекцияКоманды(ОписаниеКоманды, "--mode", + "Параметры проверок (через пробел). + | Например, -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication | |Доступны следующие опции: | @@ -51,37 +51,37 @@ | -EmptyHandlers — поиск пустых обработчиков. Поиск назначенных обработчиков событий, в которых не выполняется никаких действий. Существование таких обработчиков может привести к снижению производительности системы; | -ExtendedModulesCheck — проверка обращений к методам и свойствам объектов ""через точку"" (для ограниченного набора типов); проверка правильности строковых литералов – параметров некоторых функций, таких как ПолучитьФорму(); | -CheckUseModality — режим поиска использования в модулях методов, связанных с модальностью. Опция используется только вместе с опцией -ExtendedModulesCheck. - | -UnsupportedFunctional — выполняется поиск функциональности, которая не может быть выполнена на мобильном приложении. Проверка в этом режиме показывает: + | -UnsupportedFunctional — выполняется поиск функциональности, которая не может быть выполнена на мобильном приложении. Проверка в этом режиме показывает: | - | наличие в конфигурации метаданных, классы которых не реализованы на мобильной платформе; - | наличие в конфигурации планов обмена, у которых установлено свойство ""Распределенная информационная база""; - | использование типов, которые не реализованы на мобильной платформе: - | в свойствах ""Тип"" реквизитов метаданных, констант, параметров сеанса; - | в свойстве ""Тип параметра команды"" метаданного ""Команда""; - | в свойстве ""Тип"" реквизитов и колонок реквизита формы; - | наличие форм с типом формы ""Обычная""; - | наличие в форме элементов управления, которые не реализованы на мобильной платформе. Проверка не выполняется для форм, у которых свойство ""Назначение"" не предполагает использование на мобильном устройстве; - | сложный состав рабочего стола (использование более чем одной формы). + | наличие в конфигурации метаданных, классы которых не реализованы на мобильной платформе; + | наличие в конфигурации планов обмена, у которых установлено свойство ""Распределенная информационная база""; + | использование типов, которые не реализованы на мобильной платформе: + | в свойствах ""Тип"" реквизитов метаданных, констант, параметров сеанса; + | в свойстве ""Тип параметра команды"" метаданного ""Команда""; + | в свойстве ""Тип"" реквизитов и колонок реквизита формы; + | наличие форм с типом формы ""Обычная""; + | наличие в форме элементов управления, которые не реализованы на мобильной платформе. Проверка не выполняется для форм, у которых свойство ""Назначение"" не предполагает использование на мобильном устройстве; + | сложный состав рабочего стола (использование более чем одной формы). | | -Extension <Имя расширения> — обработка расширения с указанным именем. Если расширение успешно обработано возвращает код возврата 0, в противном случае (если расширение с указанным именем не существует или в процессе работы произошли ошибки) — 1; | -AllExtensions — проверка всех расширений. - | + | |ВНИМАНИЕ, ВАЖНО: этот параметр --MODE должен быть последним среди параметров!"); - + Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - (необязательно) дополнительные параметры // Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт - + Лог = ДополнительныеПараметры.Лог; - + ПутьОтчетаВФорматеJUnitxml = ПараметрыКоманды["--junitpath"]; Если ПутьОтчетаВФорматеJUnitxml = Неопределено Тогда ПутьОтчетаВФорматеJUnitxml = ""; @@ -91,7 +91,7 @@ МассивПутей.Добавить(ПутьОтчетаВФорматеJUnitxml); ОбщиеМетоды.ОбеспечитьСуществованиеРодительскихКаталоговДляПутей(МассивПутей, СообщениеОшибки); КонецЕсли; - + МассивПутейАллюр = Новый Массив; ПутьОтчетаВФорматеAllure = ПараметрыКоманды["--allure-results"]; @@ -107,7 +107,7 @@ Иначе МассивПутейАллюр.Добавить(ПутьОтчетаВФорматеAllure2); КонецЕсли; - + СохранятьОтчетВФайл = ЗначениеЗаполнено(ПутьОтчетаВФорматеJUnitxml) ИЛИ ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure) ИЛИ ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure2); @@ -116,20 +116,20 @@ СообщениеОшибки = "Генерация отчетов тестирования Allure невозможна, т.к. не существуют каталоги:"; ОбщиеМетоды.ОбеспечитьСуществованиеКаталогов(МассивПутейАллюр, СообщениеОшибки); КонецЕсли; - + ИмяТестовогоНабора = ПараметрыКоманды["--testsuitename"]; Если ИмяТестовогоНабора = Неопределено Тогда ИмяТестовогоНабора = "base"; КонецЕсли; - + КоллекцияПроверок = ПараметрыКоманды["--mode"]; - + ГруппироватьПоМетаданным = ПараметрыКоманды["--groupbymetadata"]; ИмяФайлаИсключенийОшибок = ПараметрыКоманды["--exception-file"]; - + ЛогПроверкиИзКонфигуратора = ""; ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; - + МенеджерКонфигуратора = Новый МенеджерКонфигуратора; МенеджерКонфигуратора.Инициализация( ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, @@ -147,50 +147,50 @@ ПараметрыКоманды["--storage-user"], ПараметрыКоманды["--storage-pwd"]); Исключение - + МенеджерКонфигуратора.Деструктор(); ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - + КонецПопытки; Лог.Информация("Проверка проекта завершена за %1с", Окр(ТекущаяДата() - ДатаНачала)); МенеджерКонфигуратора.Деструктор(); - + РезультатТестирования = ОбработатьЛогОшибок(ДатаНачала, ЛогПроверкиИзКонфигуратора, ГруппироватьПоМетаданным, ИмяФайлаИсключенийОшибок); Если РезультатТестирования.КоличествоУпало = 0 Тогда ОшибокНет = Истина; КонецЕсли; Если СохранятьОтчетВФайл Тогда - + Если НРег(СокрЛП(ЛогПроверкиИзКонфигуратора)) = "ошибок не обнаружено" Тогда ЛогПроверкиИзКонфигуратора = ""; КонецЕсли; Если ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure) Тогда - + Лог.Информация("Генерация отчета Allure"); - ГенерацияОтчетов.СформироватьОтчетВФорматеAllure(ОшибокНет, РезультатТестирования.ДатаНачала, + ГенерацияОтчетов.СформироватьОтчетВФорматеAllure(ОшибокНет, РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure, "Конфигуратор"); - + КонецЕсли; Если ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure2) Тогда - + Лог.Информация("Генерация отчета Allure2"); - ГенерацияОтчетов.СформироватьОтчетВФорматеAllure2(ОшибокНет, РезультатТестирования.ДатаНачала, + ГенерацияОтчетов.СформироватьОтчетВФорматеAllure2(ОшибокНет, РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure2, "Конфигуратор"); - + КонецЕсли; - + Если ЗначениеЗаполнено(ПутьОтчетаВФорматеJUnitxml) Тогда - + Лог.Информация("Генерация отчета JUnit"); - ГенерацияОтчетов.СформироватьОтчетВФорматеJUnit(ОшибокНет, РезультатТестирования, + ГенерацияОтчетов.СформироватьОтчетВФорматеJUnit(ОшибокНет, РезультатТестирования, ПутьОтчетаВФорматеJUnitxml, ИмяТестовогоНабора); - + КонецЕсли; - + КонецЕсли; РезультатыКоманд = МенеджерКомандПриложения.РезультатыКоманд(); @@ -202,32 +202,32 @@ /////////////////////////////////////////////////////////////////////////////////////////////////// Функция ОбработатьЛогОшибок(ДатаНачала, ЛогПроверкиИзКонфигуратора, ГруппироватьПоМетаданным, ИмяФайлаИсключенийОшибок) - + РезультатТестирования = Новый Структура; РезультатТестирования.Вставить("Ошибки", Новый Соответствие); - РезультатТестирования.Вставить("ВсеОшибки", ""); - РезультатТестирования.Вставить("ДатаНачала", ДатаНачала); - РезультатТестирования.Вставить("КоличествоПроверок", 0); - РезультатТестирования.Вставить("КоличествоПропущено", 0); - РезультатТестирования.Вставить("КоличествоУпало", 0); - + РезультатТестирования.Вставить("ВсеОшибки", ""); + РезультатТестирования.Вставить("ДатаНачала", ДатаНачала); + РезультатТестирования.Вставить("КоличествоПроверок", 0); + РезультатТестирования.Вставить("КоличествоПропущено", 0); + РезультатТестирования.Вставить("КоличествоУпало", 0); + ПропускаемыеОшибки = СодержимоеФайлаИсключенийОшибок(ИмяФайлаИсключенийОшибок); ОбработанныйЛог = СтрЗаменить(ЛогПроверкиИзКонфигуратора, Символы.ВК + Символы.Таб, Символы.Таб); ОбработанныйЛог = СтрЗаменить(ОбработанныйЛог, Символы.ПС + Символы.Таб, Символы.Таб); - + ИмяТестСценарияПредыдущаяСтрока = "Синтаксическая проверка конфигурации"; - + Если НЕ ГруппироватьПоМетаданным Тогда - + Если Не ПустаяСтрока(ОбработанныйЛог) Тогда ОписаниеОшибкиТеста = ШаблонОписанияОшибки("Синтаксическая проверка конфигурации", ОбработанныйЛог); ДополнитьРезультатТекстомОшибки(РезультатТестирования, ОписаниеОшибкиТеста); КонецЕсли; Возврат РезультатТестирования; - + КонецЕсли; - - // Определяем строки для исключения из ошибок + + // Определяем строки для исключения из ошибок // См. стандарт "Обработчики событий модуля формы, подключаемые из кода" // https://its.1c.ru/db/v8std#content:-2145783155:hdoc МассивСтрокИсключений = Новый Массив(); @@ -237,17 +237,17 @@ МассивСтрокИсключений.Добавить(Нрег("No links to function found: ""Attachable_")); МассивСтрокИсключений.Добавить(Нрег("No links to procedure found: ""Attachable_")); МассивСтрокИсключений.Добавить(Нрег("Empty handler: ""Attachable_")); - - // Исключам из ошибок статус усшешного завершения тестирования + + // Исключаем из ошибок статус усшешного завершения тестирования МассивСтрокИсключений.Добавить(Нрег("Ошибок не обнаружено")); МассивСтрокИсключений.Добавить(Нрег("No syntax errors found")); МассивСтрокИсключений.Добавить(Нрег("No errors found")); МассивСтрокОшибок = СтрРазделить(ОбработанныйЛог, Символы.ПС); Для Ит = 0 По МассивСтрокОшибок.Количество() - 1 Цикл - + ТекСтрока = МассивСтрокОшибок[Ит]; - Если СтрНачинаетсяС(ТекСтрока, "{") И НЕ (СтрНайти(ТекСтрока, " (Проверка ") + Если СтрНачинаетсяС(ТекСтрока, "{") И НЕ (СтрНайти(ТекСтрока, " (Проверка ") ИЛИ СтрНайти(ТекСтрока, " (Проверка:")) Тогда ВтораяСтрока = СокрЛП(МассивСтрокОшибок[Ит + 1]); Если СтрНайти(ВтораяСтрока, " (Проверка") Тогда @@ -259,98 +259,98 @@ Если ИсключитьСтроку(ТекСтрока, МассивСтрокИсключений) Тогда Продолжить; КонецЕсли; - - РезультатТестирования.ВсеОшибки = РезультатТестирования.ВсеОшибки + ТекСтрока + Символы.ПС; + + РезультатТестирования.ВсеОшибки = РезультатТестирования.ВсеОшибки + ТекСтрока + Символы.ПС; ОписаниеОшибки = ПолучитьОписаниеОшибки(ТекСтрока, ИмяТестСценарияПредыдущаяСтрока); ДополнитьРезультатТекстомОшибки(РезультатТестирования, ОписаниеОшибки, ПропускаемыеОшибки, ТекСтрока); КонецЦикла; Возврат РезультатТестирования; - + КонецФункции /////////////////////////////////////////////////////////////////////////////////////////////////// Функция СодержимоеФайлаИсключенийОшибок(Знач ИмяФайлаИсключенийОшибок) - + Результат = Новый Массив; - + Если Не ЗначениеЗаполнено(ИмяФайлаИсключенийОшибок) Тогда - + Возврат Результат; - + КонецЕсли; - + Файл = Новый Файл(ИмяФайлаИсключенийОшибок); Если Не Файл.Существует() Тогда Возврат Результат; КонецЕсли; Лог.Отладка("Чтение файла исключений ошибок из %1", ИмяФайлаИсключенийОшибок); - + ЧтениеТекста = Новый ЧтениеТекста(ИмяФайлаИсключенийОшибок, КодировкаТекста.UTF8); ПрочитаннаяСтрока = ЧтениеТекста.ПрочитатьСтроку(); Пока ПрочитаннаяСтрока <> Неопределено Цикл - + Если Не ПустаяСтрока(ПрочитаннаяСтрока) Тогда - + ДобавляемоеИсключение = НормализованныйТекстОшибки(ПрочитаннаяСтрока); Результат.Добавить(ДобавляемоеИсключение); Лог.Отладка("Добавлено в исключения: %1", ДобавляемоеИсключение); - + КонецЕсли; - + ПрочитаннаяСтрока = ЧтениеТекста.ПрочитатьСтроку(); - + КонецЦикла; - + Лог.Отладка("Прочитано исключений: %1", Результат.Количество()); Возврат Результат; - + КонецФункции Функция ИсключитьСтроку(Знач ПроверяемаяСтрока, Знач МассивСтрокИсключений) - + Если НЕ ЗначениеЗаполнено(ПроверяемаяСтрока) Тогда - + Возврат ИСТИНА; - + КонецЕсли; Для Каждого СтрИсключения Из МассивСтрокИсключений Цикл - + Если СтрНайти(НормализованныйТекстОшибки(ПроверяемаяСтрока), СтрИсключения) > 0 Тогда - + Возврат Истина; - + КонецЕсли; - + КонецЦикла; - + Возврат Ложь; - + КонецФункции Функция ПолучитьОписаниеОшибки(Знач СтрокаЛога, ИмяПоУмолчанию) - + Результат = ШаблонОписанияОшибки(ИмяПоУмолчанию); ЧастиСтрокиЛога = СтрРазделить(СокрЛП(СтрокаЛога), " ", Ложь); Если ЧастиСтрокиЛога.Количество() Тогда - + Результат.ИмяГруппы = ЧастиСтрокиЛога[0]; ЧастиСтрокиЛога.Удалить(0); Результат.ТекстОшибки = СтрСоединить(ЧастиСтрокиЛога, " "); - + КонецЕсли; - + Если СтрНачинаетсяС(СтрокаЛога, "{") Тогда - + СтрокаЛога = СтрЗаменить(СтрокаЛога, "{", ""); СтрокаЛога = СтрЗаменить(СтрокаЛога, "}", ""); ПозицияСкобки = СтрНайти(СтрокаЛога, "("); - + Если ПозицияСкобки > 1 Тогда - + Результат.ИмяГруппы = Сред(СтрокаЛога, 1, ПозицияСкобки - 1); ПозицияВторойСкобки = СтрНайти(СтрокаЛога, ")", , ПозицияСкобки); Результат.НомерСтроки = Сред(СтрокаЛога, ПозицияСкобки + 1, ПозицияВторойСкобки - ПозицияСкобки - 1); @@ -358,89 +358,89 @@ Если НЕ СтрНайти(Результат.ТекстОшибки, " #> ") Тогда ПозСкобки = СтрНайти(Результат.ТекстОшибки, ")"); Если ПозСкобки Тогда - Результат.ТекстОшибки = Лев(Результат.ТекстОшибки, ПозСкобки) + " #> " + Результат.ТекстОшибки = Лев(Результат.ТекстОшибки, ПозСкобки) + " #> " + СокрЛП(Сред(Результат.ТекстОшибки, ПозСкобки + 1)); КонецЕсли; КонецЕсли; Иначе - + Результат.ИмяГруппы = ИмяПоУмолчанию; Результат.ТекстОшибки = СтрокаЛога; - + КонецЕсли; - + КонецЕсли; - + Возврат Результат; - + КонецФункции Функция ШаблонОписанияОшибки(ИмяПоУмолчанию, ТекстОшибки = "", НомерСтроки = 0, ТипОшибки = "Ошибка") - - Возврат Новый Структура("ТекстОшибки, ИмяГруппы, НомерСтроки, ТипОшибки", ТекстОшибки, ИмяПоУмолчанию, + + Возврат Новый Структура("ТекстОшибки, ИмяГруппы, НомерСтроки, ТипОшибки", ТекстОшибки, ИмяПоУмолчанию, НомерСтроки, ТипОшибки); - + КонецФункции Функция СледуетПропуститьОшибку(Знач СтрокаСОшибкой, Знач ПропускаемыеОшибки) - + Если НЕ ЗначениеЗаполнено(ПропускаемыеОшибки) ИЛИ НЕ ЗначениеЗаполнено(СтрокаСОшибкой) Тогда - + Возврат Ложь; - + КонецЕсли; - + Для Каждого ТекИсключение Из ПропускаемыеОшибки Цикл Если СтрНайти(НормализованныйТекстОшибки(СтрокаСОшибкой), ТекИсключение) > 0 Тогда - + Возврат Истина; - + КонецЕсли; КонецЦикла; - + Возврат Ложь; - + КонецФункции Функция НормализованныйТекстОшибки(Знач ТекстОшибки) - + Возврат СокрЛП(НРег(ТекстОшибки)); - + КонецФункции -Процедура ДополнитьРезультатТекстомОшибки(Результат, ОписаниеОшибки, Знач ПропускаемыеОшибки = Неопределено, +Процедура ДополнитьРезультатТекстомОшибки(Результат, ОписаниеОшибки, Знач ПропускаемыеОшибки = Неопределено, СтрокаЛога = "") - + Если СледуетПропуститьОшибку(СтрокаЛога, ПропускаемыеОшибки) Тогда - + ОписаниеОшибки.ТипОшибки = "Пропущено"; - + КонецЕсли; - + ОшибкиГруппы = Результат.Ошибки.Получить(ОписаниеОшибки.ИмяГруппы); - + Если ОшибкиГруппы = Неопределено Тогда - + ОшибкиГруппы = Новый Соответствие(); - + КонецЕсли; - + ОшибкиПоТипу = ОшибкиГруппы.Получить(ОписаниеОшибки.ТипОшибки); Если ОшибкиПоТипу = Неопределено Тогда - + Результат.КоличествоПроверок = Результат.КоличествоПроверок + 1; Если ОписаниеОшибки.ТипОшибки = "Ошибка" Тогда Результат.КоличествоУпало = Результат.КоличествоУпало + 1; Иначе Результат.КоличествоПропущено = Результат.КоличествоПропущено + 1; КонецЕсли; - + ОшибкиПоТипу = Новый Массив(); - + КонецЕсли; - + ОшибкиПоТипу.Добавить(ОписаниеОшибки); ОшибкиГруппы.Вставить(ОписаниеОшибки.ТипОшибки, ОшибкиПоТипу); Результат.Ошибки.Вставить(ОписаниеОшибки.ИмяГруппы, ОшибкиГруппы); - + КонецПроцедуры From ed304c1941743e5f7abb093ebe18b3f11bf9fe3d Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 15:30:00 +0300 Subject: [PATCH 38/60] =?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=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=B2=D1=8B=D0=B4=D0=B0=D1=87=D0=B0=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B4=D1=83?= =?UTF-8?q?=D0=BA=D1=82=D0=B0=20=D0=B2=20vrunner=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix #363 --- src/main.os | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main.os b/src/main.os index 3d99f653..f98123c7 100644 --- a/src/main.os +++ b/src/main.os @@ -91,7 +91,6 @@ КонецФункции // ПолучитьПарсерКоманднойСтроки Функция ВыполнениеКоманды() - ВывестиВерсию(); ПроверитьПодключениеВанессаАДД(); @@ -131,8 +130,8 @@ КонецЕсли; - Если Команда = ПараметрыСистемы.ИмяКомандыВерсия() Тогда - Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; + Если Команда <> ПараметрыСистемы.ИмяКомандыВерсия() Тогда + ВывестиВерсию(); КонецЕсли; ДополнитьЗначенияПараметров(Команда, ЗначенияПараметров); From c25ec07d60157d8f4adcf406a4ff1bf3ca11f4c8 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 16:49:38 +0300 Subject: [PATCH 39/60] =?UTF-8?q?=D0=B8=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=BF=D0=BE=D0=BA=D0=B0=D0=B7=D0=B0=20=D0=BE=D1=88=D0=B8?= =?UTF-8?q?=D0=B1=D0=BE=D0=BA=20=D0=BF=D1=80=D0=B8=20=D0=BE=D1=82=D1=81?= =?UTF-8?q?=D1=83=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B8=20=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=BF=D0=BF=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=BF=D0=BE?= =?UTF-8?q?=20=D0=BC=D0=B5=D1=82=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D0=BC?= =?UTF-8?q?,=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=9A=D0=BE=D0=BD=D1=84=D0=B8?= =?UTF-8?q?=D0=B3=D1=83=D1=80=D0=B0=D1=82=D0=BE=D1=80=20=D0=B2=D1=8B=D0=B4?= =?UTF-8?q?=D0=B0=D0=BB,=20=D1=87=D1=82=D0=BE=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BE=D0=BA=20=D0=BD=D0=B5=20=D0=BE=D0=B1=D0=BD=D0=B0=D1=80?= =?UTF-8?q?=D1=83=D0=B6=D0=B5=D0=BD=D0=BE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2\321\201\320\270\321\201\320\260.feature" | 2 +- ...20\272\321\201\320\270\321\201\320\260.os" | 48 +++++++++++++++---- 2 files changed, 39 insertions(+), 11 deletions(-) diff --git "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.feature" "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.feature" index 617ee250..e4e58e5a 100644 --- "a/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.feature" +++ "b/features/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.feature" @@ -26,7 +26,7 @@ # Тогда в лог-файле запуска продукта есть строка 'testsuite name="Синтаксическая проверка конфигурации"' -Сценарий: Синтаксическая проверка временной файловой базы с результатами в формате JUnit +Сценарий: Синтаксическая проверка временной файловой базы с результатами в формате JUnit без группировки # Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" Допустим Я очищаю параметры команды "oscript" в контексте diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" index 94158b2a..468b2495 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" @@ -163,6 +163,7 @@ Если СохранятьОтчетВФайл Тогда + Лог.Отладка("ЛогПроверкиИзКонфигуратора %1", ЛогПроверкиИзКонфигуратора); Если НРег(СокрЛП(ЛогПроверкиИзКонфигуратора)) = "ошибок не обнаружено" Тогда ЛогПроверкиИзКонфигуратора = ""; КонецЕсли; @@ -211,15 +212,23 @@ РезультатТестирования.Вставить("КоличествоПропущено", 0); РезультатТестирования.Вставить("КоличествоУпало", 0); + МассивСтрокИсключений = МассивСтрокИсключений(); ПропускаемыеОшибки = СодержимоеФайлаИсключенийОшибок(ИмяФайлаИсключенийОшибок); ОбработанныйЛог = СтрЗаменить(ЛогПроверкиИзКонфигуратора, Символы.ВК + Символы.Таб, Символы.Таб); ОбработанныйЛог = СтрЗаменить(ОбработанныйЛог, Символы.ПС + Символы.Таб, Символы.Таб); + Лог.Отладка("ОбработанныйЛог %1", ОбработанныйЛог); ИмяТестСценарияПредыдущаяСтрока = "Синтаксическая проверка конфигурации"; + ОставшиесяОшибки = ИзбавитьсяОтИсключений(ОбработанныйЛог, МассивСтрокИсключений); + ОбработанныйЛог = СтрСоединить(ОставшиесяОшибки, Символы.ПС); + Если НЕ ГруппироватьПоМетаданным Тогда + Лог.Отладка("Ветка НЕ ГруппироватьПоМетаданным"); + Лог.Отладка("ОставшиесяОшибки %1", ОбработанныйЛог); Если Не ПустаяСтрока(ОбработанныйЛог) Тогда + ОписаниеОшибкиТеста = ШаблонОписанияОшибки("Синтаксическая проверка конфигурации", ОбработанныйЛог); ДополнитьРезультатТекстомОшибки(РезультатТестирования, ОписаниеОшибкиТеста); КонецЕсли; @@ -227,9 +236,23 @@ КонецЕсли; - // Определяем строки для исключения из ошибок - // См. стандарт "Обработчики событий модуля формы, подключаемые из кода" - // https://its.1c.ru/db/v8std#content:-2145783155:hdoc + РезультатТестирования.ВсеОшибки = ОбработанныйЛог; + + Для Каждого ТекСтрока Из ОставшиесяОшибки Цикл + + ОписаниеОшибки = ПолучитьОписаниеОшибки(ТекСтрока, ИмяТестСценарияПредыдущаяСтрока); + ДополнитьРезультатТекстомОшибки(РезультатТестирования, ОписаниеОшибки, ПропускаемыеОшибки, ТекСтрока); + КонецЦикла; + Возврат РезультатТестирования; + +КонецФункции + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +// Определяем строки для исключения из ошибок +// См. стандарт "Обработчики событий модуля формы, подключаемые из кода" +// https://its.1c.ru/db/v8std#content:-2145783155:hdoc +Функция МассивСтрокИсключений() МассивСтрокИсключений = Новый Массив(); МассивСтрокИсключений.Добавить(Нрег("Не обнаружено ссылок на процедуру: ""Подключаемый_")); МассивСтрокИсключений.Добавить(Нрег("Не обнаружено ссылок на функцию: ""Подключаемый_")); @@ -243,6 +266,16 @@ МассивСтрокИсключений.Добавить(Нрег("No syntax errors found")); МассивСтрокИсключений.Добавить(Нрег("No errors found")); + Возврат МассивСтрокИсключений; +КонецФункции + +Функция ИзбавитьсяОтИсключений(Знач ОбработанныйЛог, МассивСтрокИсключений) + + ОставшиесяОшибки = Новый Массив; + Если ПустаяСтрока(ОбработанныйЛог) Тогда + Возврат ОставшиесяОшибки; + КонецЕсли; + МассивСтрокОшибок = СтрРазделить(ОбработанныйЛог, Символы.ПС); Для Ит = 0 По МассивСтрокОшибок.Количество() - 1 Цикл @@ -260,17 +293,12 @@ Продолжить; КонецЕсли; - РезультатТестирования.ВсеОшибки = РезультатТестирования.ВсеОшибки + ТекСтрока + Символы.ПС; - - ОписаниеОшибки = ПолучитьОписаниеОшибки(ТекСтрока, ИмяТестСценарияПредыдущаяСтрока); - ДополнитьРезультатТекстомОшибки(РезультатТестирования, ОписаниеОшибки, ПропускаемыеОшибки, ТекСтрока); + ОставшиесяОшибки.Добавить(ТекСтрока); КонецЦикла; - Возврат РезультатТестирования; + Возврат ОставшиесяОшибки; КонецФункции -/////////////////////////////////////////////////////////////////////////////////////////////////// - Функция СодержимоеФайлаИсключенийОшибок(Знач ИмяФайлаИсключенийОшибок) Результат = Новый Массив; From 72c052a8eab97fc6b1e16bb46903fab07d9db7f8 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 16:59:11 +0300 Subject: [PATCH 40/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=B4=D0=B5=D1=84=D0=B8=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\272\321\201\320\270\321\201\320\260.os" | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" index 468b2495..506825c0 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" @@ -32,26 +32,26 @@ | |Доступны следующие опции: | - | -ConfigLogIntegrity — проверка логической целостности конфигурации. Стандартная проверка, обычно выполняемая перед обновлением базы данных; - | -IncorrectReferences — поиск некорректных ссылок. Поиск ссылок на удаленные объекты. Выполняется по всей конфигурации, включая права, формы, макеты, интерфейсы и т.д. Также осуществляется поиск логически неправильных ссылок; - | -ThinClient — синтаксический контроль модулей для режима эмуляции среды управляемого приложения (тонкий клиент), выполняемого в файловом режиме; - | -WebClient — синтаксический контроль модулей в режиме эмуляции среды веб-клиента; - | -Server — синтаксический контроль модулей в режиме эмуляции среды сервера 1С:Предприятия; - | -ExternalConnection — синтаксический контроль модулей в режиме эмуляции среды внешнего соединения, выполняемого в файловом режиме; - | -ExternalConnectionServer — синтаксический контроль модулей в режиме эмуляции среды внешнего соединения, выполняемого в клиент-серверном режиме; - | -MobileAppClient — синтаксический контроль модулей в режиме эмуляции среды мобильного приложения, выполняемого в клиентском режиме запуска; - | -MobileAppServer — синтаксический контроль модулей в режиме эмуляции среды мобильного приложения, выполняемого в серверном режиме запуска; - | -ThickClientManagedApplication — синтаксический контроль модулей в режиме эмуляции среды управляемого приложения (толстый клиент), выполняемого в файловом режиме; - | -ThickClientServerManagedApplication — синтаксический контроль модулей в режиме эмуляции среды управляемого приложения (толстый клиент), выполняемого в клиент-серверном режиме; - | -ThickClientOrdinaryApplication — синтаксический контроль модулей в режиме эмуляции среды обычного приложения (толстый клиент), выполняемого в файловом режиме; - | -ThickClientServerOrdinaryApplication — синтаксический контроль модулей в режиме эмуляции среды обычного приложения (толстый клиент), выполняемого в клиент-серверном режиме; - | -DistributiveModules — поставка модулей без исходных текстов. В случае, если в настройках поставки конфигурации для некоторых модулей указана поставка без исходных текстов, проверяется возможность генерации образов этих модулей; - | -UnreferenceProcedures — поиск неиспользуемых процедур и функций. Поиск локальных (не экспортных) процедур и функций, на которые отсутствуют ссылки. В том числе осуществляется поиск неиспользуемых обработчиков событий; - | -HandlersExistence — проверка существования назначенных обработчиков. Проверка существования обработчиков событий интерфейсов, форм и элементов управления; - | -EmptyHandlers — поиск пустых обработчиков. Поиск назначенных обработчиков событий, в которых не выполняется никаких действий. Существование таких обработчиков может привести к снижению производительности системы; - | -ExtendedModulesCheck — проверка обращений к методам и свойствам объектов ""через точку"" (для ограниченного набора типов); проверка правильности строковых литералов – параметров некоторых функций, таких как ПолучитьФорму(); - | -CheckUseModality — режим поиска использования в модулях методов, связанных с модальностью. Опция используется только вместе с опцией -ExtendedModulesCheck. - | -UnsupportedFunctional — выполняется поиск функциональности, которая не может быть выполнена на мобильном приложении. Проверка в этом режиме показывает: + | -ConfigLogIntegrity - проверка логической целостности конфигурации. Стандартная проверка, обычно выполняемая перед обновлением базы данных; + | -IncorrectReferences - поиск некорректных ссылок. Поиск ссылок на удаленные объекты. Выполняется по всей конфигурации, включая права, формы, макеты, интерфейсы и т.д. Также осуществляется поиск логически неправильных ссылок; + | -ThinClient - синтаксический контроль модулей для режима эмуляции среды управляемого приложения (тонкий клиент), выполняемого в файловом режиме; + | -WebClient - синтаксический контроль модулей в режиме эмуляции среды веб-клиента; + | -Server - синтаксический контроль модулей в режиме эмуляции среды сервера 1С:Предприятия; + | -ExternalConnection - синтаксический контроль модулей в режиме эмуляции среды внешнего соединения, выполняемого в файловом режиме; + | -ExternalConnectionServer - синтаксический контроль модулей в режиме эмуляции среды внешнего соединения, выполняемого в клиент-серверном режиме; + | -MobileAppClient - синтаксический контроль модулей в режиме эмуляции среды мобильного приложения, выполняемого в клиентском режиме запуска; + | -MobileAppServer - синтаксический контроль модулей в режиме эмуляции среды мобильного приложения, выполняемого в серверном режиме запуска; + | -ThickClientManagedApplication - синтаксический контроль модулей в режиме эмуляции среды управляемого приложения (толстый клиент), выполняемого в файловом режиме; + | -ThickClientServerManagedApplication - синтаксический контроль модулей в режиме эмуляции среды управляемого приложения (толстый клиент), выполняемого в клиент-серверном режиме; + | -ThickClientOrdinaryApplication - синтаксический контроль модулей в режиме эмуляции среды обычного приложения (толстый клиент), выполняемого в файловом режиме; + | -ThickClientServerOrdinaryApplication - синтаксический контроль модулей в режиме эмуляции среды обычного приложения (толстый клиент), выполняемого в клиент-серверном режиме; + | -DistributiveModules - поставка модулей без исходных текстов. В случае, если в настройках поставки конфигурации для некоторых модулей указана поставка без исходных текстов, проверяется возможность генерации образов этих модулей; + | -UnreferenceProcedures - поиск неиспользуемых процедур и функций. Поиск локальных (не экспортных) процедур и функций, на которые отсутствуют ссылки. В том числе осуществляется поиск неиспользуемых обработчиков событий; + | -HandlersExistence - проверка существования назначенных обработчиков. Проверка существования обработчиков событий интерфейсов, форм и элементов управления; + | -EmptyHandlers - поиск пустых обработчиков. Поиск назначенных обработчиков событий, в которых не выполняется никаких действий. Существование таких обработчиков может привести к снижению производительности системы; + | -ExtendedModulesCheck - проверка обращений к методам и свойствам объектов ""через точку"" (для ограниченного набора типов); проверка правильности строковых литералов - параметров некоторых функций, таких как ПолучитьФорму(); + | -CheckUseModality - режим поиска использования в модулях методов, связанных с модальностью. Опция используется только вместе с опцией -ExtendedModulesCheck. + | -UnsupportedFunctional - выполняется поиск функциональности, которая не может быть выполнена на мобильном приложении. Проверка в этом режиме показывает: | | наличие в конфигурации метаданных, классы которых не реализованы на мобильной платформе; | наличие в конфигурации планов обмена, у которых установлено свойство ""Распределенная информационная база""; @@ -63,8 +63,8 @@ | наличие в форме элементов управления, которые не реализованы на мобильной платформе. Проверка не выполняется для форм, у которых свойство ""Назначение"" не предполагает использование на мобильном устройстве; | сложный состав рабочего стола (использование более чем одной формы). | - | -Extension <Имя расширения> — обработка расширения с указанным именем. Если расширение успешно обработано возвращает код возврата 0, в противном случае (если расширение с указанным именем не существует или в процессе работы произошли ошибки) — 1; - | -AllExtensions — проверка всех расширений. + | -Extension <Имя расширения> - обработка расширения с указанным именем. Если расширение успешно обработано возвращает код возврата 0, в противном случае (если расширение с указанным именем не существует или в процессе работы произошли ошибки) - 1; + | -AllExtensions - проверка всех расширений. | |ВНИМАНИЕ, ВАЖНО: этот параметр --MODE должен быть последним среди параметров!"); From f28b98491805ae6e5cab2e8f313187843fad1f42 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 16:59:32 +0300 Subject: [PATCH 41/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D1=86=D0=B8=D0=BA=D0=BB=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\207\320\265\321\202\320\276\320\262.os" | 482 +++++++++--------- 1 file changed, 241 insertions(+), 241 deletions(-) diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" index f73221e6..d9cfaeb4 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" @@ -13,70 +13,70 @@ // РасширениеНабора - Строка - Базовая часть набора тестов // Процедура СформироватьОтчетВФорматеJUnit(ОшибокНет, РезультатТестирования, ПутьОтчетаВФорматеJUnitxml, РасширениеНабора = "") Экспорт - + ПредставлениеНабораТестов = "CheckConfig"; Если ЗначениеЗаполнено(РасширениеНабора) Тогда - + ПредставлениеНабораТестов = СтрШаблон("%2.%1", РасширениеНабора, ПредставлениеНабораТестов); - + КонецЕсли; - + ПредставлениеНабораТестовXML = XMLСтрока(ПредставлениеНабораТестов); - + ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку("UTF-8"); ЗаписьXML.ЗаписатьОбъявлениеXML(); - + ВремяВыполнения = ТекущаяДата() - РезультатТестирования.ДатаНачала; - + ЗаписьXML.ЗаписатьНачалоЭлемента("testsuites"); - ЗаписьXML.ЗаписатьАтрибут("name", ПредставлениеНабораТестовXML); - + ЗаписьXML.ЗаписатьАтрибут("name", ПредставлениеНабораТестовXML); + КоличествоТестов = РезультатТестирования.КоличествоПроверок; Если КоличествоТестов = 0 Тогда КоличествоТестов = 1; КонецЕсли; - + ЗаписьXML.ЗаписатьАтрибут("tests", XMLСтрока(КоличествоТестов)); ЗаписьXML.ЗаписатьАтрибут("failures", XMLСтрока(РезультатТестирования.КоличествоУпало)); ЗаписьXML.ЗаписатьАтрибут("skipped", XMLСтрока(РезультатТестирования.КоличествоПропущено)); ЗаписьXML.ЗаписатьАтрибут("time", XMLСтрока(ВремяВыполнения)); - + ЗаписьXML.ЗаписатьНачалоЭлемента("testsuite"); - ЗаписьXML.ЗаписатьАтрибут("name", ПредставлениеНабораТестовXML); + ЗаписьXML.ЗаписатьАтрибут("name", ПредставлениеНабораТестовXML); ЗаписьXML.ЗаписатьНачалоЭлемента("properties"); ЗаписьXML.ЗаписатьКонецЭлемента(); // properties - + Если НЕ РезультатТестирования.Ошибки.Количество() Тогда - + ЗаписьXML.ЗаписатьНачалоЭлемента("testcase"); - ЗаписьXML.ЗаписатьАтрибут("classname", ПредставлениеНабораТестовXML); + ЗаписьXML.ЗаписатьАтрибут("classname", ПредставлениеНабораТестовXML); ЗаписьXML.ЗаписатьАтрибут("name", XMLСтрока("Все сообщения")); ЗаписьXML.ЗаписатьАтрибут("time", XMLСтрока(ВремяВыполнения)); Если РезультатТестирования.КоличествоУпало = 0 Тогда - - ЗаписьXML.ЗаписатьАтрибут("status", "passed"); - + + ЗаписьXML.ЗаписатьАтрибут("status", "passed"); + Иначе - + ЗаписьXML.ЗаписатьАтрибут("status", "failure"); - + КонецЕсли; - + Если НЕ ПустаяСтрока(РезультатТестирования.ВсеОшибки) Тогда - + ЗаписьXML.ЗаписатьНачалоЭлемента("failure"); ЗаписьXML.ЗаписатьАтрибут("message", XMLСтрока(РезультатТестирования.ВсеОшибки)); ЗаписьXML.ЗаписатьКонецЭлемента(); // failure - + КонецЕсли; - + Иначе - + Для Каждого ГруппыОбъектов Из РезультатТестирования.Ошибки Цикл - + Для Каждого ГруппыТипов Из ГруппыОбъектов.Значение Цикл - + ЗаписьXML.ЗаписатьНачалоЭлемента("testcase"); ЗаписьXML.ЗаписатьАтрибут("classname", СтрШаблон("%1.%2", ПредставлениеНабораТестовXML, ГруппыТипов.Ключ)); ЗаписьXML.ЗаписатьАтрибут("name", XMLСтрока(ГруппыОбъектов.Ключ)); @@ -85,51 +85,51 @@ ТекстОшибки = ТекстОшибки + ?(ПустаяСтрока(ТекстОшибки), "", Символы.ПС) + ?(ЗначениеЗаполнено(ТестовыйСлучай.НомерСтроки), "Строка " + ТестовыйСлучай.НомерСтроки + ": ", "") + ТестовыйСлучай.ТекстОшибки; КонецЦикла; - + Если ГруппыТипов.Ключ = "Пропущено" Тогда - + ЗаписьXML.ЗаписатьНачалоЭлемента("skipped"); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("system-out"); ЗаписьXML.ЗаписатьТекст(XMLСтрока(ТекстОшибки)); ЗаписьXML.ЗаписатьКонецЭлемента(); - + Иначе - + ЗаписьXML.ЗаписатьНачалоЭлемента("failure"); Если ГруппыТипов.Ключ = "Ошибка" Тогда - + ЗаписьXML.ЗаписатьАтрибут("type", "ERROR"); - + Иначе - + ЗаписьXML.ЗаписатьАтрибут("type", "WARNING"); - + КонецЕсли; - + ЗаписьXML.ЗаписатьАтрибут("message", XMLСтрока(ТекстОшибки)); ЗаписьXML.ЗаписатьКонецЭлемента(); // failure - + КонецЕсли; - - ЗаписьXML.ЗаписатьКонецЭлемента(); - + + ЗаписьXML.ЗаписатьКонецЭлемента(); + КонецЦикла; - + КонецЦикла; - + КонецЕсли; - + ЗаписьXML.ЗаписатьКонецЭлемента(); // testsuite ЗаписьXML.ЗаписатьКонецЭлемента(); // testsuites - + СтрокаХМЛ = ЗаписьXML.Закрыть(); - + ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ПутьОтчетаВФорматеJUnitxml); ЗаписьXML.ЗаписатьБезОбработки(СтрокаХМЛ); // таким образом файл будет записан всего один раз, и не будет проблем с обработкой на билд-сервере TeamCity ЗаписьXML.Закрыть(); - + КонецПроцедуры // СформироватьОтчетВФорматеAllure @@ -142,25 +142,25 @@ // РасширениеНабора - Строка - Базовая часть набора тестов // Процедура СформироватьОтчетВФорматеAllure(ОшибокНет, ДатаНачала, РезультатТестирования, КаталогОтчетовAllure, РасширениеНабора = "") Экспорт - + Если НЕ РезультатТестирования.Ошибки.Количество() Тогда - + Возврат; - + КонецЕсли; - + ФС.ОбеспечитьПустойКаталог(КаталогОтчетовAllure); - + ВремяСтарта = РезультатТестирования.ДатаНачала; ВремяОкончания = ТекущаяДата(); - + ПредставлениеНабораТестов = "Синтаксическая проверка конфигурации"; Если ЗначениеЗаполнено(РасширениеНабора) Тогда - + ПредставлениеНабораТестов = СтрШаблон("%2. %1", РасширениеНабора, ПредставлениеНабораТестов); - + КонецЕсли; - + ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку("UTF-8"); ЗаписьXML.ЗаписатьОбъявлениеXML(); @@ -171,55 +171,55 @@ ЗаписьXML.ЗаписатьНачалоЭлемента("name"); ЗаписьXML.ЗаписатьТекст(XMLСтрока(ПредставлениеНабораТестов)); ЗаписьXML.ЗаписатьКонецЭлемента(); - + ЗаписьXML.ЗаписатьНачалоЭлемента("test-cases"); ВажностьНабора = "minor"; - + Для Каждого ГруппыОбъектов Из РезультатТестирования.Ошибки Цикл - + Для Каждого ГруппыТипов Из ГруппыОбъектов.Значение Цикл - + ТекстОшибки = ""; ВажностьТекстКейса = "minor"; КонтекстыОшибки = Новый Соответствие(); Для Каждого ТестовыйСлучай Из ГруппыТипов.Значение Цикл - + ТекстОшибки = ТекстОшибки + ?(ПустаяСтрока(ТекстОшибки), "", Символы.ПС) + ?(ЗначениеЗаполнено(ТестовыйСлучай.НомерСтроки), "Строка " + ТестовыйСлучай.НомерСтроки + ": ", "") + ТестовыйСлучай.ТекстОшибки; - + ЗаполнитьКонтекстыОшибки(КонтекстыОшибки, ТестовыйСлучай.ТекстОшибки); - + КонецЦикла; - + ЗаписьXML.ЗаписатьНачалоЭлемента("test-case"); ЗаписьXML.ЗаписатьАтрибут("start", ДатаВLong(ВремяСтарта)); ЗаписьXML.ЗаписатьАтрибут("stop", ДатаВLong(ВремяОкончания)); - + Статус = "skipped"; Если ГруппыТипов.Ключ = "Ошибка" Тогда - + Статус = "failed"; ВажностьНабора = "critical"; ВажностьТекстКейса = "critical"; - + ИначеЕсли ГруппыТипов.Ключ = "Предупреждение" Тогда - + Статус = "broken"; - + ИначеЕсли ГруппыТипов.Ключ = "Пропущено" Тогда - + Статус = "skipped"; - + ИначеЕсли ГруппыТипов.Ключ = "Исправлено" Тогда - + Статус = "passed"; - - КонецЕсли; + + КонецЕсли; ЗаписьXML.ЗаписатьАтрибут("status", Статус); ЗаписьXML.ЗаписатьНачалоЭлемента("name"); ЗаписьXML.ЗаписатьТекст(XMLСтрока(ГруппыОбъектов.Ключ + "." + ГруппыТипов.Ключ)); ЗаписьXML.ЗаписатьКонецЭлемента(); - + Если Статус = "failed" ИЛИ Статус = "broken" Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("failure"); ЗаписьXML.ЗаписатьНачалоЭлемента("message"); @@ -227,27 +227,27 @@ ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли; - + ЗаписьXML.ЗаписатьНачалоЭлемента("labels"); ЗаписьXML.ЗаписатьНачалоЭлемента("label"); ЗаписьXML.ЗаписатьАтрибут("name", "package"); - ЗаписьXML.ЗаписатьАтрибут("value", XMLСтрока(ГруппыОбъектов.Ключ)); + ЗаписьXML.ЗаписатьАтрибут("value", XMLСтрока(ГруппыОбъектов.Ключ)); ЗаписьXML.ЗаписатьКонецЭлемента(); - + Для Каждого КонтекстОшибки Из КонтекстыОшибки Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("label"); ЗаписьXML.ЗаписатьАтрибут("name", "tag"); - ЗаписьXML.ЗаписатьАтрибут("value", КонтекстОшибки.Ключ); + ЗаписьXML.ЗаписатьАтрибут("value", КонтекстОшибки.Ключ); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; - + Для Каждого ТестовыйСлучай Из ГруппыТипов.Значение Цикл - + ЗаписьXML.ЗаписатьНачалоЭлемента("label"); ЗаписьXML.ЗаписатьАтрибут("name", "story"); - ЗаписьXML.ЗаписатьАтрибут("value", XMLСтрока(ОписаниеФункциональности(ТестовыйСлучай.ТекстОшибки))); + ЗаписьXML.ЗаписатьАтрибут("value", XMLСтрока(ОписаниеФункциональности(ТестовыйСлучай.ТекстОшибки))); ЗаписьXML.ЗаписатьКонецЭлемента(); - + КонецЦикла; ЗаписьXML.ЗаписатьНачалоЭлемента("label"); @@ -256,11 +256,11 @@ ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); - + КонецЦикла; - + КонецЦикла; - + ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьНачалоЭлемента("labels"); ЗаписьXML.ЗаписатьНачалоЭлемента("label"); @@ -268,14 +268,14 @@ ЗаписьXML.ЗаписатьАтрибут("value", ВажностьНабора); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); - + РеальноеИмяФайла = ОбъединитьПути(КаталогОтчетовAllure, "" + (Новый УникальныйИдентификатор()) + "-testsuite.xml"); - + СтрокаХМЛ = ЗаписьXML.Закрыть(); ТекстовыйДокумент = Новый ТекстовыйДокумент; ТекстовыйДокумент.УстановитьТекст(СтрокаХМЛ); ТекстовыйДокумент.Записать(РеальноеИмяФайла, КодировкаТекста.UTF8NoBOM); - + КонецПроцедуры // СформироватьОтчетВФорматеAllure2 @@ -290,38 +290,38 @@ // Пример: https://github.com/1C-Company/GitConverter/tree/master/GitConverter/src // Процедура СформироватьОтчетВФорматеAllure2(ОшибокНет, ДатаНачала, РезультатТестирования, КаталогОтчетовAllure, РасширениеНабора = "", ПутьКФайламПроекта = "") Экспорт - + Если НЕ РезультатТестирования.Ошибки.Количество() Тогда - + Возврат; - + КонецЕсли; - + ФС.ОбеспечитьПустойКаталог(КаталогОтчетовAllure); - + ВремяСтарта = РезультатТестирования.ДатаНачала; ВремяОкончания = ТекущаяДата(); - + ПредставлениеНабораТестов = "Синтаксическая проверка конфигурации"; Если ЗначениеЗаполнено(РасширениеНабора) Тогда - + ПредставлениеНабораТестов = СтрШаблон("%2. %1", РасширениеНабора, ПредставлениеНабораТестов); - + КонецЕсли; - + ПарсерJSON = Новый ПарсерJSON(); ВремяСтарта = РезультатТестирования.ДатаНачала; ВремяОкончания = ТекущаяДата(); - + Для Каждого ГруппыОбъектов Из РезультатТестирования.Ошибки Цикл - + Для Каждого ГруппыТипов Из ГруппыОбъектов.Значение Цикл - + Для Каждого ТестовыйСлучай Из ГруппыТипов.Значение Цикл - + ОписаниеФункциональности = ОписаниеФункциональности(ТестовыйСлучай.ТекстОшибки); ОписаниеСценария = ПолучитьОписаниеСценарияАллюр2(); - ОписаниеСценария.name = ГруппыОбъектов.Ключ + ". " + ОписаниеСценария.name = ГруппыОбъектов.Ключ + ". " + ?(ЗначениеЗаполнено(ТестовыйСлучай.НомерСтроки), "" + ТестовыйСлучай.НомерСтроки + ": ", "") + ОписаниеФункциональности; ОписаниеСценария.fullName = ОписаниеСценария.name; @@ -330,161 +330,161 @@ ОписаниеСценария.stop = ДатаВLong(ВремяОкончания); ОписаниеСценария.description = ?(ЗначениеЗаполнено(ТестовыйСлучай.НомерСтроки), "Строка " + ТестовыйСлучай.НомерСтроки + ": ", "") + ТестовыйСлучай.ТекстОшибки; - + Если ГруппыТипов.Ключ = "Ошибка" Тогда - + ОписаниеСценария.status = "failed"; - + ИначеЕсли ГруппыТипов.Ключ = "Предупреждение" Тогда - + ОписаниеСценария.status = "broken"; - + ИначеЕсли ГруппыТипов.Ключ = "Пропущено" Тогда - + ОписаниеСценария.status = "skipped"; - + ИначеЕсли ГруппыТипов.Ключ = "Исправлено" Тогда - + ОписаниеСценария.status = "passed"; - - КонецЕсли; - + + КонецЕсли; + ОписаниеСценария.labels.Добавить(Новый Структура("name, value", "package", ГруппыОбъектов.Ключ)); ОписаниеСценария.labels.Добавить(Новый Структура("name, value", "story", ОписаниеФункциональности)); - + КонтекстыОшибки = Новый Соответствие(); ЗаполнитьКонтекстыОшибки(КонтекстыОшибки, ТестовыйСлучай.ТекстОшибки); Для Каждого КонтекстОшибки Из КонтекстыОшибки Цикл - + ОписаниеСценария.labels.Добавить(Новый Структура("name, value", "tag", КонтекстОшибки.Ключ)); - + КонецЦикла; - + СсылкаНаСтрокуИсходников = ПолучитьСсылкуНаСтрокуИсходников(ГруппыОбъектов.Ключ, ТестовыйСлучай.НомерСтроки, ПутьКФайламПроекта); - + Если ЗначениеЗаполнено(СсылкаНаСтрокуИсходников) Тогда - + ОписаниеСсылки = Новый Структура("name, url, type"); ОписаниеСсылки.name = "Перейти на строку с ошибкой"; ОписаниеСсылки.url = СсылкаНаСтрокуИсходников; ОписаниеСсылки.type = ""; - + ОписаниеСценария.links.Добавить(ОписаниеСсылки); - + КонецЕсли; - + РеальноеИмяФайла = ОбъединитьПути(КаталогОтчетовAllure, "" + ОписаниеСценария.uuid + "-result.json" ); - + ТекстовыйДокумент = Новый ТекстовыйДокумент; ТекстовыйДокумент.УстановитьТекст(ПарсерJSON.ЗаписатьJSON(ОписаниеСценария)); ТекстовыйДокумент.Записать(РеальноеИмяФайла, КодировкаТекста.UTF8NoBOM); - + КонецЦикла; - + КонецЦикла; - + КонецЦикла; - + КонецПроцедуры /////////////////////////////////////////////////////////////////////////////////////////////////// Процедура ЗаполнитьКонтекстыОшибки(КонтекстыОшибки, Знач ОписаниеОшибки) - + ПозНачалоКонфигуратор = СтрНайти(ОписаниеОшибки, " (Проверка"); ПозНачалоEDT = СтрНайти(ОписаниеОшибки, "["); - + Если ПозНачалоКонфигуратор Тогда // Формат конфигуратора - + ТекстОшибки = Сред(ОписаниеОшибки, ПозНачалоКонфигуратор); - + Если СтрНайти(ТекстОшибки, "Проверка толстого клиента (обычное приложение)") Тогда - + КонтекстыОшибки.Вставить("Толстый клиент (обычное приложение)"); - + ИначеЕсли СтрНайти(ТекстОшибки, "Проверка: Веб-клиент") Тогда - + КонтекстыОшибки.Вставить("Web-клиент"); - + ИначеЕсли СтрНайти(ТекстОшибки, "Проверка: Тонкий клиент") Тогда - + КонтекстыОшибки.Вставить("Тонкий клиент"); - + ИначеЕсли СтрНайти(ТекстОшибки, "Проверка: Внешнее соединение ") Тогда - + КонтекстыОшибки.Вставить("Внешнее соединение"); - + ИначеЕсли СтрНайти(ТекстОшибки, "Проверка: Толстый клиент ") Тогда - + КонтекстыОшибки.Вставить("Толстый клиент (управляемое приложение)"); - + КонецЕсли; - + ИначеЕсли ПозНачалоEDT Тогда - + ПозКонецEDT = СтрНайти(ОписаниеОшибки, "]", НаправлениеПоиска.СКонца); Если ПозКонецEDT > ПозНачалоEDT Тогда - + КонтекстИсполнения = Сред(ОписаниеОшибки, ПозНачалоEDT + 1, ПозКонецEDT - ПозНачалоEDT - 1); - + Если СтрНайти(КонтекстИсполнения, "Внешнее соединение") Тогда - + КонтекстыОшибки.Вставить("Внешнее соединение"); - + КонецЕсли; - + Если СтрНайти(КонтекстИсполнения, "Сервер,") Тогда - + КонтекстыОшибки.Вставить("Сервер"); - + КонецЕсли; - + Если СтрНайти(КонтекстИсполнения, "Тонкий клиент") Тогда - + КонтекстыОшибки.Вставить("Тонкий клиент"); - + КонецЕсли; - + Если СтрНайти(КонтекстИсполнения, "Толстый клиент (управляемое приложение)") Тогда - + КонтекстыОшибки.Вставить("Толстый клиент (управляемое приложение)"); - + КонецЕсли; - + Если СтрНайти(КонтекстИсполнения, "Web-клиент") Тогда - + КонтекстыОшибки.Вставить("Web-клиент"); - + КонецЕсли; - + Если СтрНайти(КонтекстИсполнения, "Толстый клиент (обычное приложение)") Тогда - + КонтекстыОшибки.Вставить("Толстый клиент (обычное приложение)"); - + КонецЕсли; - + КонецЕсли; - + КонецЕсли; - + КонецПроцедуры Функция ДатаВLong(ИсходнаяДата) - + Если ТипЗнч(ИсходнаяДата) = Тип("Дата") Тогда - + Возврат Окр((ИсходнаяДата - Дата(1, 1, 1)) * 1000); - + Иначе // уже число - + Возврат ИсходнаяДата; - + КонецЕсли; - + КонецФункции Функция ПолучитьОписаниеСценарияАллюр2() - + СтруктураРезультата = Новый Структура(); СтруктураРезультата.Вставить("uuid", Строка(Новый УникальныйИдентификатор())); СтруктураРезультата.Вставить("historyId", Неопределено); @@ -501,24 +501,24 @@ СтруктураРезультата.Вставить("links", Новый Массив); СтруктураРезультата.Вставить("attachments", Новый Массив); СтруктураРезультата.Вставить("description", Неопределено); - + Возврат СтруктураРезультата; - + КонецФункции Функция ОписаниеФункциональности(Знач ОписаниеОшибки) - + ПозНачалоКонфигуратор = СтрНайти(ОписаниеОшибки, " (Проверка"); ПозНачалоEDT = СтрНайти(ОписаниеОшибки, "["); - + Если ПозНачалоКонфигуратор Тогда // Формат конфигуратора - + ОписаниеОшибки = Лев(ОписаниеОшибки, ПозНачалоКонфигуратор - 1); - + ИначеЕсли ПозНачалоEDT Тогда - + ОписаниеОшибки = Лев(ОписаниеОшибки, ПозНачалоEDT - 1); - + КонецЕсли; ПозТаб = СтрНайти(ОписаниеОшибки, "#>"); @@ -539,11 +539,11 @@ ОписаниеОшибки = Лев(ОписаниеОшибки, СтрДлина(ОписаниеОшибки) - 1); КонецЕсли; Возврат СокрЛП(ОписаниеОшибки); - + КонецФункции Процедура ЗаменитьПараметрыМетода(ОписаниеОшибки, РазделительНачало, РазделительКонец = "") - + Если РазделительКонец = "" Тогда РазделительКонец = РазделительНачало; КонецЕсли; @@ -552,116 +552,116 @@ Если ПозицияКавычки = 0 Тогда Возврат; КонецЕсли; - + Пока ПозицияКавычки > 0 Цикл - + ПозицияЗакрывающейКавычки = СтрНайти(Сред(ОписаниеОшибки, ПозицияКавычки + 1), РазделительКонец) + ПозицияКавычки; - + Если ПозицияЗакрывающейКавычки = 0 Тогда - + Прервать; - + КонецЕсли; - + ОписаниеОшибки = Лев(ОписаниеОшибки, ПозицияКавычки - 1) + "<>" + Сред(ОписаниеОшибки, ПозицияЗакрывающейКавычки + 1); ПозицияКавычки = СтрНайти(ОписаниеОшибки, РазделительНачало); - + КонецЦикла; - + ЗаменитьПараметрыМетода(ОписаниеОшибки, РазделительНачало, РазделительКонец); - + КонецПроцедуры Функция ПолучитьСсылкуНаСтрокуИсходников(Знач МетаданныеОбъекта, Знач НомерСтроки, Знач ПутьКФайламПроекта) - + Если Не ЗначениеЗаполнено(ПутьКФайламПроекта) Тогда - + Возврат ""; - + КонецЕсли; - + Если Не ЗначениеЗаполнено(НомерСтроки) Тогда - + Возврат ""; - + КонецЕсли; - + СоставМетаданных = СтрРазделить(МетаданныеОбъекта, "."); - + Если СоставМетаданных.Количество() = 0 Тогда - + Возврат ""; - + КонецЕсли; - + Если СоставМетаданных.Количество() < 3 Тогда - + Возврат ""; - + КонецЕсли; - + СоставСсылки = Новый Массив; СоставСсылки.Добавить(ПутьКФайламПроекта); - + КаталогМетаданных = ПолучитьКаталогПоИмениМетаданных(СоставМетаданных[0]); Если НЕ ЗначениеЗаполнено(КаталогМетаданных) Тогда - + Возврат ""; - + КонецЕсли; - + СоставСсылки.Добавить(КаталогМетаданных); СоставСсылки.Добавить(СоставМетаданных[1]); // имя ИмяФайла = ПолучитьИмяФайлаПоИмениМодуля(СоставМетаданных[2]); - + Если ЗначениеЗаполнено(ИмяФайла) Тогда - - СоставСсылки.Добавить(СоставСсылки); - + + СоставСсылки.Добавить(ИмяФайла); + ИначеЕсли СоставМетаданных.Количество() > 3 Тогда - + Если СтрСравнить(СоставМетаданных[2], "Форма") = 0 Тогда - + СоставСсылки.Добавить("Forms"); СоставСсылки.Добавить(СоставМетаданных[3]); - - Если СоставМетаданных.Количество() > 5 + + Если СоставМетаданных.Количество() > 5 И СтрСравнить(СоставМетаданных[4], "Форма") = 0 И СтрСравнить(СоставМетаданных[5], "Модуль") = 0 Тогда - + СоставСсылки.Добавить("Module.bsl"); - + КонецЕсли; - + ИначеЕсли СтрСравнить(СоставМетаданных[2], "Команда") = 0 Тогда - + СоставСсылки.Добавить("Commands"); СоставСсылки.Добавить(СоставМетаданных[3]); - + Если СоставМетаданных.Количество() > 4 И СтрСравнить(СоставМетаданных[4], "МодульКоманды") = 0 Тогда - + СоставСсылки.Добавить("CommandModule.bsl"); - + КонецЕсли; - + КонецЕсли; - + КонецЕсли; - + Возврат СтрСоединить(СоставСсылки, "/") + "#L" + НомерСтроки; - + КонецФункции Функция ПолучитьКаталогПоИмениМетаданных(ИмяОбъекта) - + Если КэшМетаданных = Неопределено Тогда КэшМетаданных = Новый Соответствие(); КонецЕсли; - + КэшКаталогов = КэшМетаданных.Получить("КэшКаталогов"); Если КэшКаталогов = Неопределено Тогда - + КэшКаталогов = Новый Соответствие(); КэшКаталогов.Вставить("РегистрБухгалтерии", "AccountingRegisters"); КэшКаталогов.Вставить("РегистрНакопления", "AccumulationRegisters"); @@ -705,33 +705,33 @@ КэшКаталогов.Вставить("Задача", "Tasks"); КэшКаталогов.Вставить("WebСервис", "WebServices"); КэшКаталогов.Вставить("XDTOПакет", "XDTOPackages"); - + КэшМетаданных.Вставить("КэшКаталогов", КэшКаталогов); - + КонецЕсли; - + Возврат КэшКаталогов.Получить(ИмяОбъекта); - + КонецФункции Функция ПолучитьИмяФайлаПоИмениМодуля(ИмяМодуля) - + Если КэшМетаданных = Неопределено Тогда КэшМетаданных = Новый Соответствие(); КонецЕсли; - + КэшМодулей = КэшМетаданных.Получить("КэшМодулей"); Если КэшМодулей = Неопределено Тогда - + КэшМодулей = Новый Соответствие(); КэшМодулей.Вставить("МодульОбъекта", "ObjectModule.bsl"); КэшМодулей.Вставить("Модуль", "Module.bsl"); КэшМодулей.Вставить("МодульМенеджера", "ManagerModule.bsl"); КэшМодулей.Вставить("МодульНабораЗаписей", "RecordSetModule.bsl"); КэшМодулей.Вставить("МодульКоманды", "CommandModule.bsl"); - + КонецЕсли; - + Возврат КэшМодулей.Получить(ИмяМодуля); - + КонецФункции From a850b92e867d945eb56d59c3c3e5aa9d38d2db50 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 17:01:47 +0300 Subject: [PATCH 42/60] =?UTF-8?q?=D0=B8=D0=B7=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=D1=81=D1=8F=20=D0=BE=D1=82=20=D0=BD=D0=B5=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D0=BC=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\200\320\276\320\265\320\272\321\202\320\260EDT.os" | 7 +++---- ...2\320\260\320\272\321\201\320\270\321\201\320\260.os" | 6 +++--- ...6\321\202\321\207\320\265\321\202\320\276\320\262.os" | 9 +++------ 3 files changed, 9 insertions(+), 13 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\276\320\265\320\272\321\202\320\260EDT.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\276\320\265\320\272\321\202\320\260EDT.os" index 8a6626fe..9d5d6e2b 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\276\320\265\320\272\321\202\320\260EDT.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\276\320\265\320\272\321\202\320\260EDT.os" @@ -117,25 +117,24 @@ Если СохранятьОтчетВФайл Тогда РезультатТестирования = ОбработатьЛогОшибок(ДатаНачала, ИмяФайлаРезультата, ИмяФайлаИсключенийОшибок, ИмяПредыдущегоФайлаРезультата); - ОшибокНет = РезультатТестирования.Количество() = 0; Если ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure) Тогда Лог.Информация("Генерация отчета Allure"); - ГенерацияОтчетов.СформироватьОтчетВФорматеAllure(ОшибокНет, РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure, "EDT"); + ГенерацияОтчетов.СформироватьОтчетВФорматеAllure(РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure, "EDT"); КонецЕсли; Если ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure2) Тогда Лог.Информация("Генерация отчета Allure2"); - ГенерацияОтчетов.СформироватьОтчетВФорматеAllure2(ОшибокНет, РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure2, "EDT", ПутьКФайламПроекта); + ГенерацияОтчетов.СформироватьОтчетВФорматеAllure2(РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure2, "EDT", ПутьКФайламПроекта); КонецЕсли; Если ЗначениеЗаполнено(ПутьОтчетаВФорматеJUnitxml) Тогда Лог.Информация("Генерация отчета JUnit"); - ГенерацияОтчетов.СформироватьОтчетВФорматеJUnit(ОшибокНет, РезультатТестирования, ПутьОтчетаВФорматеJUnitxml, "edt"); + ГенерацияОтчетов.СформироватьОтчетВФорматеJUnit(РезультатТестирования, ПутьОтчетаВФорматеJUnitxml, "edt"); КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" index 506825c0..5773fb2f 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" @@ -171,7 +171,7 @@ Если ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure) Тогда Лог.Информация("Генерация отчета Allure"); - ГенерацияОтчетов.СформироватьОтчетВФорматеAllure(ОшибокНет, РезультатТестирования.ДатаНачала, + ГенерацияОтчетов.СформироватьОтчетВФорматеAllure(РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure, "Конфигуратор"); КонецЕсли; @@ -179,7 +179,7 @@ Если ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure2) Тогда Лог.Информация("Генерация отчета Allure2"); - ГенерацияОтчетов.СформироватьОтчетВФорматеAllure2(ОшибокНет, РезультатТестирования.ДатаНачала, + ГенерацияОтчетов.СформироватьОтчетВФорматеAllure2(РезультатТестирования.ДатаНачала, РезультатТестирования, ПутьОтчетаВФорматеAllure2, "Конфигуратор"); КонецЕсли; @@ -187,7 +187,7 @@ Если ЗначениеЗаполнено(ПутьОтчетаВФорматеJUnitxml) Тогда Лог.Информация("Генерация отчета JUnit"); - ГенерацияОтчетов.СформироватьОтчетВФорматеJUnit(ОшибокНет, РезультатТестирования, + ГенерацияОтчетов.СформироватьОтчетВФорматеJUnit(РезультатТестирования, ПутьОтчетаВФорматеJUnitxml, ИмяТестовогоНабора); КонецЕсли; diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" index d9cfaeb4..0b7f95f0 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\223\320\265\320\275\320\265\321\200\320\260\321\206\320\270\321\217\320\236\321\202\321\207\320\265\321\202\320\276\320\262.os" @@ -7,12 +7,11 @@ // СформироватьОтчетВФорматеJUnit // Создает отчет об ошибках в формате JUnit // Параметры: -// ОшибокНет - Булево - Признак наличия ошибок // РезультатТестирования - Структура - Набор параметров результата тестирования // ПутьОтчетаВФорматеJUnitxml - Строка - Путь к создаваемому файлу отчета // РасширениеНабора - Строка - Базовая часть набора тестов // -Процедура СформироватьОтчетВФорматеJUnit(ОшибокНет, РезультатТестирования, ПутьОтчетаВФорматеJUnitxml, РасширениеНабора = "") Экспорт +Процедура СформироватьОтчетВФорматеJUnit(РезультатТестирования, ПутьОтчетаВФорматеJUnitxml, РасширениеНабора = "") Экспорт ПредставлениеНабораТестов = "CheckConfig"; Если ЗначениеЗаполнено(РасширениеНабора) Тогда @@ -135,13 +134,12 @@ // СформироватьОтчетВФорматеAllure // Создает отчет об ошибках в формате Allure // Параметры: -// ОшибокНет - Булево - Признак наличия ошибок // ДатаНачала - ДатаВремя - Дата начала формирования отчета // РезультатТестирования - Структура - Набор параметров результата тестирования // КаталогОтчетовAllure - Строка - Путь к каталогу отчетов // РасширениеНабора - Строка - Базовая часть набора тестов // -Процедура СформироватьОтчетВФорматеAllure(ОшибокНет, ДатаНачала, РезультатТестирования, КаталогОтчетовAllure, РасширениеНабора = "") Экспорт +Процедура СформироватьОтчетВФорматеAllure(ДатаНачала, РезультатТестирования, КаталогОтчетовAllure, РасширениеНабора = "") Экспорт Если НЕ РезультатТестирования.Ошибки.Количество() Тогда @@ -281,7 +279,6 @@ // СформироватьОтчетВФорматеAllure2 // Создает отчет об ошибках в формате Allure2 // Параметры: -// ОшибокНет - Булево - Признак наличия ошибок // ДатаНачала - ДатаВремя - Дата начала формирования отчета // РезультатТестирования - Структура - Набор параметров результата тестирования // КаталогОтчетовAllure - Строка - Путь к каталогу отчетов @@ -289,7 +286,7 @@ // ПутьКФайламПроекта - Строка - Путь к файлам проекта в репозитории для генерации ссылок для перехода к строке // Пример: https://github.com/1C-Company/GitConverter/tree/master/GitConverter/src // -Процедура СформироватьОтчетВФорматеAllure2(ОшибокНет, ДатаНачала, РезультатТестирования, КаталогОтчетовAllure, РасширениеНабора = "", ПутьКФайламПроекта = "") Экспорт +Процедура СформироватьОтчетВФорматеAllure2(ДатаНачала, РезультатТестирования, КаталогОтчетовAllure, РасширениеНабора = "", ПутьКФайламПроекта = "") Экспорт Если НЕ РезультатТестирования.Ошибки.Количество() Тогда From d9ed5fafce6ba205d26e6affa78dcc5113d3075c Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 17:16:58 +0300 Subject: [PATCH 43/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/step_definitions/opm-build.os | 2 -- src/main.os | 1 - ...20\265\320\234\320\265\321\202\320\276\320\264\321\213.os" | 4 ++-- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/features/step_definitions/opm-build.os b/features/step_definitions/opm-build.os index 5a509930..cbcc2c63 100644 --- a/features/step_definitions/opm-build.os +++ b/features/step_definitions/opm-build.os @@ -77,7 +77,6 @@ ВызватьИсключение СообщениеОшибки; КонецЕсли; - // Ожидаем.Что(УстановленнаяВерсияПакета, СообщениеОшибки).Равно(ВерсияСобранногоПакета); КонецПроцедуры Функция ВыполнитьКоманду(Знач СтрокаКоманды, ТекстВывода = "") @@ -90,7 +89,6 @@ ТекстВывода = Команда.ПолучитьВывод(); Если КодВозврата <> 0 Тогда - // Лог.Информация(ТекстВывода); Сообщить(ТекстВывода); КонецЕсли; Возврат КодВозврата; diff --git a/src/main.os b/src/main.os index f98123c7..e14e64ed 100644 --- a/src/main.os +++ b/src/main.os @@ -71,7 +71,6 @@ Команда.УстановитьПравильныйКодВозврата(0); Команда.Исполнить(); Рез = СокрЛП(Команда.ПолучитьВывод()); - // Рез = СокрЛП(ЗапуститьПроцесс("git rev-parse --show-toplevel")); Исключение КонецПопытки; Иначе diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index 7433b411..f6026bbd 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -31,7 +31,8 @@ Процесс.Запустить(); ТекстБазовый = ""; - Счетчик = 0; МаксСчетчикЦикла = 100000; + Счетчик = 0; + МаксСчетчикЦикла = 100000; Пока Истина Цикл Текст = Процесс.ПотокВывода.Прочитать(); @@ -381,7 +382,6 @@ Функция ПутьВанессаАДД() Результат = ОбъединитьПути(КаталогПрограммы(), "..", "lib"); Возврат ОбъединитьПути(Результат, "add", "ospx", "addospx.os"); - // Возврат ОбъединитьПути(ОбщиеМетоды.КаталогПроекта(), "..", "add"); КонецФункции Процедура ОбеспечитьСуществованиеКаталогов(Знач НаборПутей, Знач СообщениеОшибки) Экспорт From 5a5be7d01c76173a7a670218741bc20f7a5a2304 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 17:41:22 +0300 Subject: [PATCH 44/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D0=B4=D0=B5=D1=84=D0=B8=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\275\320\270\320\273\320\270\321\211\320\260.os" | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" index 9f154fa4..38645a92 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" @@ -20,7 +20,7 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Создание пользователя хранилища конфигурации 1С."; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, @@ -37,10 +37,10 @@ Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль. | Необязательный параметр"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-role", "Назначаемая роль. Возможные варианты: - | ReadOnly — право на просмотр, - | LockObjects — право на захват объектов, - | ManageConfigurationVersions — право на изменение состава версий, - | Administration — право на административные функции. + | ReadOnly - право на просмотр, + | LockObjects - право на захват объектов, + | ManageConfigurationVersions - право на изменение состава версий, + | Administration - право на административные функции. | |Обязательный параметр"); From dab62ecedac221f80c98df0c17fe3dbf875799c6 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 17:41:43 +0300 Subject: [PATCH 45/60] =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=20=D0=BD=D0=B0?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BA=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=20=D1=87=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B7=20SonarQube?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sonar-project.properties | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index 56edfeb6..4106f04e 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,15 +1,33 @@ # must be unique in a given SonarQube instance sonar.projectKey=vanessa-runner # this is the name displayed in the SonarQube UI -sonar.projectName=Vanessa Runner - +sonar.projectName=Vanessa-Runner + +# версия проекта +sonar.projectVersion=1.9.0 + # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. -# Since SonarQube 4.2, this property is optional if sonar.modules is set. -# If not set, SonarQube starts looking for source code from the directory containing +# Since SonarQube 4.2, this property is optional if sonar.modules is set. +# If not set, SonarQube starts looking for source code from the directory containing # the sonar-project.properties file. sonar.sources=./src,./tools,./epf,./features - + +# маска поиска файлов на проверку +sonar.inclusions=**/*.os + +# маска поиска исключений файлов на проверку +# sonar.exclusions= + +# игнорирование gitignore +sonar.scm.exclusions.disabled=true + +# путь к внешним отчетам +# sonar.externalIssuesReportPaths=./tools/acc-export/acc-generic-issue.json + # Encoding of the source code. Default is default system encoding sonar.sourceEncoding=UTF-8 -sonar.coverageReportPaths=coverage/genericCoverage.xml +# sonar.coverageReportPaths=coverage/genericCoverage.xml + +# адрес сервера SonarQube, по умолчанию текущий компьютер +sonar.host.url=https://sonar.openbsl.ru From 7cbe49764ff273827ff31c10686c9a1520c6f468 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 17:47:19 +0300 Subject: [PATCH 46/60] =?UTF-8?q?=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.os | 1 + ...20\260\321\202\320\276\321\200\320\260.os" | 1 + tools/runner.os | 263 +++++++++--------- 3 files changed, 134 insertions(+), 131 deletions(-) diff --git a/src/main.os b/src/main.os index e14e64ed..eab66e41 100644 --- a/src/main.os +++ b/src/main.os @@ -72,6 +72,7 @@ Команда.Исполнить(); Рез = СокрЛП(Команда.ПолучитьВывод()); Исключение + // некуда выдавать ошибку, логи еще не доступны КонецПопытки; Иначе Рез = Путь; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index f9db05b5..0190a13e 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -48,6 +48,7 @@ ВременныеФайлы.УдалитьФайл(КаталогВременнойИБ); КонецЕсли; Исключение + Лог.Отладка(ОписаниеОшибки()); КонецПопытки; КаталогВременнойИБ = Неопределено; diff --git a/tools/runner.os b/tools/runner.os index cda2b478..092f44ec 100644 --- a/tools/runner.os +++ b/tools/runner.os @@ -28,95 +28,95 @@ КонецФункции // Версия() Функция ВозможныеКоманды() - + Если мВозможныеКоманды = Неопределено Тогда - //Работаем в 8.3.8, внешние обработки как исходники и только исходники. + //Работаем в 8.3.8, внешние обработки как исходники и только исходники. мВозможныеКоманды = Новый Структура; - + мВозможныеКоманды.Вставить("Следить", "watch"); мВозможныеКоманды.Вставить("Конфигуратор", "designer"); мВозможныеКоманды.Вставить("КонвертироватьФайлы", "convertfiles"); - + мВозможныеКоманды.Вставить("ПоказатьВерсию", "version"); мВозможныеКоманды.Вставить("Помощь", "--help"); КонецЕсли; - + Возврат мВозможныеКоманды; КонецФункции Процедура ВывестиСправку() ПоказатьВерсию(); - + Сообщить("Утилита запуска различных тестов и задач"); Сообщить(" "); Сообщить("Параметры командной строки:"); - + Сообщить(" watch - следить за изменением файлов и автоматически компилировать/декомпилировать внешние обработки"); Сообщить(" designer - запустить конфигуратор для основной базы разработки и для сервисной базы"); Сообщить(" convertfiles inputPath"); Сообщить(" конвертировать файлы в новую или старую версию"); - + Сообщить(" общие для всех параметры"); Сообщить(" --v8version Маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)"); Сообщить(" --ibname [env RUNNER_IBNAME] строка подключения к базе данных"); Сообщить(" --db-user [env RUNNER_DBUSER] имя пользователя для подключения к базе"); Сообщить(" --db-pwd [env RUNNER_DBPWD] пароль пользователя"); - + Сообщить(" version"); Сообщить(" Показ только версии продукта"); Сообщить(" --help"); Сообщить(" Показ этого экрана"); - + КонецПроцедуры Функция ЗапуститьПроцесс(Знач СтрокаВыполнения) Перем ПаузаОжиданияЧтенияБуфера; - + ПаузаОжиданияЧтенияБуфера = 10; - + Лог.Отладка(СтрокаВыполнения); Процесс = СоздатьПроцесс(СтрокаВыполнения,,Истина); Процесс.Запустить(); - + ТекстБазовый = ""; Счетчик = 0; МаксСчетчикЦикла = 100000; - - Пока Истина Цикл + + Пока Истина Цикл Текст = Процесс.ПотокВывода.Прочитать(); Лог.Отладка("Цикл ПотокаВывода "+Текст); - Если Текст = Неопределено ИЛИ ПустаяСтрока(СокрЛП(Текст)) Тогда + Если Текст = Неопределено ИЛИ ПустаяСтрока(СокрЛП(Текст)) Тогда Прервать; КонецЕсли; Счетчик = Счетчик + 1; - Если Счетчик > МаксСчетчикЦикла Тогда + Если Счетчик > МаксСчетчикЦикла Тогда Прервать; КонецЕсли; ТекстБазовый = ТекстБазовый + Текст; - - sleep(ПаузаОжиданияЧтенияБуфера); //Подождем, надеюсь буфер не переполнится. - + + sleep(ПаузаОжиданияЧтенияБуфера); //Подождем, надеюсь буфер не переполнится. + КонецЦикла; - + Процесс.ОжидатьЗавершения(); - + Если Процесс.КодВозврата = 0 Тогда Текст = Процесс.ПотокВывода.Прочитать(); ТекстБазовый = ТекстБазовый + Текст; Лог.Отладка(ТекстБазовый); Возврат ТекстБазовый; Иначе - ВызватьИсключение "Сообщение от процесса + ВызватьИсключение "Сообщение от процесса |" + Процесс.ПотокОшибок.Прочитать(); - КонецЕсли; + КонецЕсли; КонецФункции //ЗапуститьПроцесс -Функция СобратьФайлВнешнейОбработки(Знач ПутьКИсходникам, Знач КаталогВыгрузки, +Функция СобратьФайлВнешнейОбработки(Знач ПутьКИсходникам, Знач КаталогВыгрузки, Знач СтрокаПодключения, Знач Пользователь, Знач Пароль, Знач ВерсияПлатформы) - + Лог.Отладка("Собираю исходники <"+ПутьКИсходникам+">"); ПапкаИсходников = Новый Файл(ПутьКИсходникам); @@ -125,17 +125,17 @@ НайденныйФайл = НайтиФайлы(ПутьКИсходникам, "*.xml"); Ожидаем.Что(НайденныйФайл.Количество(), "Базовый файл xml <" + ПутьКИсходникам + ">*.xml должен существовать") .Больше(0); - - СобратьФайлВнешнейОбработкиИзИсходников(НайденныйФайл[0], ИмяФайлаОбъекта, + + СобратьФайлВнешнейОбработкиИзИсходников(НайденныйФайл[0], ИмяФайлаОбъекта, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); Лог.Отладка("Успешно собран файл "+ИмяФайлаОбъекта); - + Возврат ИмяФайлаОбъекта; КонецФункции -Процедура СобратьФайлВнешнейОбработкиИзИсходников(Знач ПапкаИсходников, Знач ИмяФайлаОбъекта, +Процедура СобратьФайлВнешнейОбработкиИзИсходников(Знач ПапкаИсходников, Знач ИмяФайлаОбъекта, Знач СтрокаПодключения, Знач Пользователь, Знач Пароль, Знач ВерсияПлатформы) Лог.Отладка("Собираю файл из исходников <%1> в файл %2", ПапкаИсходников.ПолноеИмя, ИмяФайлаОбъекта); @@ -144,25 +144,25 @@ Конфигуратор = Новый УправлениеКонфигуратором(); КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); Конфигуратор.КаталогСборки(КаталогВременнойИБ); - + Если НЕ ПустаяСтрока(СтрокаПодключения) Тогда Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); КонецЕсли; - + Если НЕ ПустаяСтрока(ВерсияПлатформы) Тогда Лог.Отладка(ВерсияПлатформы); Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); КонецЕсли; - + ЛогКонфигуратора = Логирование.ПолучитьЛог("oscript.lib.v8runner"); ЛогКонфигуратора.УстановитьУровень(Лог.Уровень()); - + Параметры = Конфигуратор.ПолучитьПараметрыЗапуска(); Параметры.Добавить("/LoadExternalDataProcessorOrReportFromFiles"); Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(ПапкаИсходников.ПолноеИмя)); Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(ИмяФайлаОбъекта)); - + Конфигуратор.ВыполнитьКоманду(Параметры); Лог.Отладка("Вывод 1С:Предприятия - " + Конфигуратор.ВыводКоманды()); Лог.Отладка("Очищаем каталог временной ИБ"); @@ -171,9 +171,9 @@ КонецПроцедуры Функция ЭтоПутьКИсходнымКодамОбработок(ПутьКПапке) - + Результат = Ложь; - + МассивИмен = НайтиФайлы(ПутьКПапке, "*.xml", Ложь); Для Каждого Элемент из МассивИмен Цикл ЧтениеТекста = Новый ЧтениеТекста(Элемент.ПолноеИмя); @@ -193,19 +193,19 @@ ПутьКФайлуРут = ОбъединитьПути(КаталогИсходников, "root"); ФайлРут = Новый Файл(ПутьКФайлуРут); - + Ожидаем.Что(ФайлРут.Существует(), "Файл <" + ПутьКФайлуРут + "> должен существовать").ЭтоИстина(); Ожидаем.Что(ФайлРут.ЭтоКаталог(), "<" + ПутьКФайлуРут + "> должен быть файлом").ЭтоЛожь(); - + ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлуРут); СодержаниеРут = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); МассивСтрокРут = СтрРазделить(СодержаниеРут, ","); Ожидаем.Что(МассивСтрокРут.Количество(), "Некорректный формат файла root").Больше(1); - + ПутьКФайлуКорневойКонтейнер = ОбъединитьПути(КаталогИсходников, МассивСтрокРут[1]); ФайлКорневойКонтейнер = Новый Файл(ПутьКФайлуКорневойКонтейнер); - + Ожидаем.Что(ФайлКорневойКонтейнер.Существует(), "Файл <" + ПутьКФайлуКорневойКонтейнер + "> должен существовать").ЭтоИстина(); Ожидаем.Что(ФайлКорневойКонтейнер.ЭтоКаталог(), "<" + ПутьКФайлуКорневойКонтейнер + "> должен быть файлом").ЭтоЛожь(); @@ -216,14 +216,14 @@ Если ПрочитаннаяСтрока = Неопределено Тогда Прервать; КонецЕсли; - + СодержаниеКорневойКонтейнер = СодержаниеКорневойКонтейнер + ПрочитаннаяСтрока; КонецЦикла; ЧтениеТекста.Закрыть(); - + МассивСтрокКорневойКонтейнер = СтрРазделить(СодержаниеКорневойКонтейнер, ","); Ожидаем.Что(МассивСтрокКорневойКонтейнер.Количество(), "Некорректный формат файла корневого контейнера <" + ПутьКФайлуКорневойКонтейнер + ">").Больше(3); - + ИдентификаторТипаОбъекта = СокрЛП(МассивСтрокКорневойКонтейнер[3]); Если Лев(ИдентификаторТипаОбъекта, 1) = "{" Тогда ИдентификаторТипаОбъекта = Прав(ИдентификаторТипаОбъекта, СтрДлина(ИдентификаторТипаОбъекта) - 1); @@ -231,7 +231,7 @@ Если Прав(ИдентификаторТипаОбъекта, 1) = "}" Тогда ИдентификаторТипаОбъекта = Лев(ИдентификаторТипаОбъекта, СтрДлина(ИдентификаторТипаОбъекта) - 1); КонецЕсли; - + ИдентификаторТипаОбъекта = НРег(СокрЛП(ИдентификаторТипаОбъекта)); Если ИдентификаторТипаОбъекта = "c3831ec8-d8d5-4f93-8a22-f9bfae07327f" Тогда @@ -248,20 +248,20 @@ Процедура КонвертироватьФайлы(Знач Каталог, Знач СтрокаПодключения="", Знач Пользователь="", Знач Пароль="", Знач ВерсияПлатформы="") Экспорт Конфигуратор = Новый УправлениеКонфигуратором(); - + КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); Конфигуратор.КаталогСборки(КаталогВременнойИБ); - + КаталогРаспаковки = ВременныеФайлы.СоздатьКаталог(); - + Если НЕ ПустаяСтрока(СтрокаПодключения) Тогда Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); КонецЕсли; - - Если Не ПустаяСтрока(ВерсияПлатформы) Тогда + + Если Не ПустаяСтрока(ВерсияПлатформы) Тогда Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); КонецЕсли; - + ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска(); ПараметрыЗапуска.Добавить("/ConvertFiles """ + Каталог + """"); Конфигуратор.ВыполнитьКоманду(ПараметрыЗапуска); @@ -279,19 +279,19 @@ СоответствиеПутей = Новый Соответствие; СоответствиеПутей.Вставить("autoupdate", АвтоОбновление); МассивКешейДляАвтообновления.Добавить(СоответствиеПутей); - ИначеЕсли ТипЗнч(АвтоОбновление) = Тип("Массив") Тогда + ИначеЕсли ТипЗнч(АвтоОбновление) = Тип("Массив") Тогда МассивКешейДляАвтообновления = АвтоОбновление; КонецЕсли; КонецЕсли; - + Для каждого ЭлементМассива Из МассивКешейДляАвтообновления Цикл - + Попытка Кэш = КэшПутей.Получить(ЭлементМассива.Получить("autoupdate")); Для каждого Элемент Из КэшОбновляемый Цикл Кэш.Вставить(Элемент.Ключ, Элемент.Значение); - КонецЦикла; + КонецЦикла; Исключение Лог.Ошибка("Ошибка обновления других кэшей "+ Элемент + ":"+ ОписаниеОшибки()); КонецПопытки; @@ -309,26 +309,26 @@ ВерсияПлатформы = Значение.Получить("version"); ИмяПравила = Значение.Получить("name"); АвтоОбновление = Значение.Получить("autoupdate"); - Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда + Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда Ключ = ИмяПравила; КонецЕсли; - Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда + Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда Возврат; КонецЕсли; ФайлВходящий = Новый Файл(КаталогВходящий); - Если НЕ ФайлВходящий.Существует() Тогда + Если НЕ ФайлВходящий.Существует() Тогда Возврат; КонецЕсли; - - Если ФайлВходящий.ЭтоКаталог() Тогда + + Если ФайлВходящий.ЭтоКаталог() Тогда СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); - Иначе + Иначе СписокФайлов = Новый Массив; СписокФайлов.Добавить(ФайлВходящий); КонецЕсли; - + Кэш = КэшПутей.Получить(Ключ); Если Кэш = Неопределено Тогда Лог.Информация("Начало epf to src "+Ключ); @@ -343,7 +343,7 @@ Лог.Отладка("Проверяем изменения epf "+Строка(КаталогВходящий) + "->"+Строка(КаталогИсходящий)); КэшОбновляемый = Новый Соответствие(); - + СписокОбработанных = Новый Соответствие(); Для каждого Файл из СписокФайлов Цикл Лог.Отладка("Проверяю на изменение файл <%1>", Файл.ПолноеИмя); @@ -351,7 +351,7 @@ Изменен = Ложь; Время = Кэш.Получить(Файл.ПолноеИмя); ВремяТекущее = Файл.ПолучитьВремяИзменения(); - Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда + Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда Изменен = Истина; Лог.Отладка("Изменен:"+Файл.ПолноеИмя + " время старое:"+Строка(Время) + " новое:"+ВремяТекущее); КонецЕсли; @@ -389,7 +389,7 @@ СоздатьКаталог(НовыйПутьВыгрузки); КаталогРазобранный = УпаковщикВнешнихОбработок().РазобратьФайлВнешняяОбработка( - Файл, КаталогИсходящий, КаталогВходящийДляРазбора, Ложь, + Файл, КаталогИсходящий, КаталогВходящийДляРазбора, Ложь, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); СписокФайловНовый = НайтиФайлы(Новый Файл(КаталогРазобранный).ПолноеИмя, ПолучитьМаскуВсеФайлы(), Истина); @@ -407,40 +407,40 @@ Если Не ФайлНовый.Существует() Тогда Изменен = Истина; КонецЕсли; - + Если Изменен Тогда ФайлНовый = Новый Файл(ПутьФайлаНазначения); Лог.Отладка("Копирую файл <%1> в <%2>", Файл.ПолноеИмя, ФайлНовый.ПолноеИмя); КаталогНовый = Новый Файл(ФайлНовый.Путь); - Если НЕ КаталогНовый.Существует() Тогда + Если НЕ КаталогНовый.Существует() Тогда СоздатьКаталог(КаталогНовый.ПолноеИмя); КонецЕсли; - + Если ФайлНовый.Существует() = Истина Тогда - + Лог.Отладка(СтрШаблон("Удаляем файл %1", ПутьФайлаНазначения)); Попытка - УдалитьФайлы(ФайлНовый.Путь, ФайлНовый.Имя); + УдалитьФайлы(ФайлНовый.Путь, ФайлНовый.Имя); Исключение Лог.Ошибка("Ошибка удаления файла "+ ПутьФайлаНазначения + ":"+ОписаниеОшибки()); КонецПопытки; - + КонецЕсли; - + КопироватьФайл(Файл.ПолноеИмя, ФайлНовый.ПолноеИмя); Кэш.Вставить(ФайлНовый.ПолноеИмя, ФайлНовый.ПолучитьВремяИзменения()); КэшОбновляемый.Вставить(ФайлНовый.ПолноеИмя, ФайлНовый.ПолучитьВремяИзменения()); Лог.Отладка(СтрШаблон("Завершено копирование файла %1 в каталог %2", Файл.Имя, ФайлНовый.ПолноеИмя)); КонецЕсли; КонецЕсли; - + Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); СписокОбработанных.Вставить(Файл.ПолноеИмя, Истина); КонецЦикла; - Для каждого Элемент ИЗ СписокОбработанных Цикл + Для каждого Элемент ИЗ СписокОбработанных Цикл Файл = Новый Файл(Элемент.Ключ); Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); КонецЦикла; @@ -461,8 +461,8 @@ КонецЕсли; ОбновитьЗависимыйКэш(АвтоОбновление, КэшПутей, КэшОбновляемый); - -КонецПроцедуры + +КонецПроцедуры Процедура СледитьЗаИзменениямиФайловВРепозиторииИсходников(Значение, КэшПутей, Фильтр = "") Ключ = Строка(Значение.Получить("inDir")) + ""+Строка(Значение.Получить("outDir")); @@ -474,14 +474,14 @@ ВерсияПлатформы = Значение.Получить("version"); ИмяПравила = Значение.Получить("name"); АвтоОбновление = Значение.Получить("autoupdate"); - Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда + Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда Ключ = ИмяПравила; КонецЕсли; - Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда + Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда Возврат; КонецЕсли; - + Кэш = КэшПутей.Получить(Ключ); Если Кэш = Неопределено Тогда Лог.Информация("Начало src to epf:"+Ключ); @@ -502,7 +502,7 @@ Если Файл.ЭтоКаталог() Тогда Продолжить; КонецЕсли; Время = Кэш.Получить(Файл.ПолноеИмя); Изменен = Ложь; ВремяТекущее = Файл.ПолучитьВремяИзменения(); - Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда + Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда Изменен = Истина; Лог.Отладка("Изменен:"+Файл.ПолноеИмя + " время старое:"+Строка(Время) + " новое:"+Файл.ПолучитьВремяИзменения()); КонецЕсли; @@ -514,10 +514,10 @@ Если Файл.Расширение = ".png" Тогда МаксСчетчикЦикла = 7; //\vanessa\Forms\УправляемаяФорма\Ext\Form\Items\ИмяКартинки\Picture.png КонецЕсли; - + Для Счетчик = 0 По МаксСчетчикЦикла Цикл ФайлПутьКИсходникамОбработки = Новый Файл(ПутьКИсходникамОбработки); - Если ФайлПутьКИсходникамОбработки.ЭтоКаталог() Тогда + Если ФайлПутьКИсходникамОбработки.ЭтоКаталог() Тогда ФайлПутьКИсходникамОбработки = Новый Файл(ФайлПутьКИсходникамОбработки.ПолноеИмя+"../"); КонецЕсли; @@ -530,19 +530,19 @@ КонецЕсли; ПутьКИсходникамОбработки = Новый Файл(ПутьКИсходникамОбработки).ПолноеИмя; КонецЦикла; - + Если ОбработкуНашли = Истина И СписокОбработанных.Получить(ПапкаИсходников) <> Неопределено Тогда Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); СписокОбработанных.Вставить(Файл.ПолноеИмя, Истина); ИначеЕсли ОбработкуНашли = Истина Тогда - ПутьОтносительно = ?(ПолныйПуть(КаталогВходящий) = ПапкаИсходников, "./", "../"); + ПутьОтносительно = ?(ПолныйПуть(КаталогВходящий) = ПапкаИсходников, "./", "../"); КаталогВыгрузкиОбработки = Новый Файл(ОбъединитьПути(КаталогИсходящий, ФС.ОтносительныйПуть(ПолныйПуть(КаталогВходящий), ПапкаИсходников), ПутьОтносительно)).ПолноеИмя; ИмяФайлаОбъекта = СобратьФайлВнешнейОбработки(ПапкаИсходников, КаталогВыгрузкиОбработки, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); - + КаталогФайл = Новый Файл(ИмяФайлаОбъекта); СписокСобранныхОбработок = НайтиФайлы(КаталогВыгрузкиОбработки, ""+КаталогФайл.Имя + "*"); - + Для каждого ЭлементОбработки из СписокСобранныхОбработок Цикл Кэш.Вставить(ЭлементОбработки.ПолноеИмя, ЭлементОбработки.ПолучитьВремяИзменения()); КэшОбновляемый.Вставить(ЭлементОбработки.ПолноеИмя, ЭлементОбработки.ПолучитьВремяИзменения()); @@ -552,7 +552,7 @@ НовыйПутьВыгрузки = ОбъединитьПути(КаталогИсходящий, ФС.ОтносительныйПуть(ПолныйПуть(КаталогВходящий), Файл.ПолноеИмя)); Лог.Отладка("Копируем "+Файл.ПолноеИмя + "->"+НовыйПутьВыгрузки); НовыйКаталог = Новый Файл(Новый Файл(НовыйПутьВыгрузки).Путь); - Если НовыйКаталог.Существует() = Ложь Тогда + Если НовыйКаталог.Существует() = Ложь Тогда СоздатьКаталог(НовыйКаталог.ПолноеИмя); КонецЕсли; КопироватьФайл(Файл.ПолноеИмя, НовыйПутьВыгрузки); @@ -566,7 +566,7 @@ КонецЕсли; КонецЦикла; - Для каждого Элемент ИЗ СписокОбработанных Цикл + Для каждого Элемент ИЗ СписокОбработанных Цикл Файл = Новый Файл(Элемент.Ключ); Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); КонецЦикла; @@ -587,8 +587,8 @@ КонецЕсли; ОбновитьЗависимыйКэш(АвтоОбновление, КэшПутей, КэшОбновляемый); - -КонецПроцедуры + +КонецПроцедуры Процедура СледитьЗаИзменениямиИсходниковCF(Значение, КэшПутей, Фильтр = "") Если Значение <> Неопределено Тогда @@ -600,18 +600,18 @@ ВерсияПлатформы = Значение.Получить("version"); АвтоОбновление = Значение.Получить("autoupdate"); ИмяПравила = Значение.Получить("name"); - Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда + Если ИмяПравила <> Неопределено И Не ПустаяСтрока(ИмяПравила) Тогда Ключ = ИмяПравила; КонецЕсли; МенеджерКонфигуратора = Новый МенеджерКонфигуратора; МенеджерКонфигуратора.Инициализация(СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); - Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда + Если Не ПустаяСтрока(Фильтр) И Фильтр <> Ключ Тогда Возврат; КонецЕсли; - Если АвтоОбновление = Истина Или АвтоОбновление = "true" Тогда + Если АвтоОбновление = Истина Или АвтоОбновление = "true" Тогда АвтоОбновление = Истина; КонецЕсли; @@ -630,15 +630,15 @@ СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); СписокОбработанных = Новый Соответствие(); - + Для каждого Файл из СписокФайлов Цикл - Если Файл.ЭтоКаталог() Тогда + Если Файл.ЭтоКаталог() Тогда Продолжить; КонецЕсли; Изменен = Ложь; Время = Кэш.Получить(Файл.ПолноеИмя); ВремяТекущее = Файл.ПолучитьВремяИзменения(); - Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда + Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда Изменен = Истина; Лог.Отладка("Изменен:"+Файл.ПолноеИмя + " время старое:"+Строка(Время) + " новое:"+Файл.ПолучитьВремяИзменения()); КонецЕсли; @@ -653,10 +653,10 @@ ПервыйРаз = Истина; Для каждого ИмяФайла Из СписокОбработанных Цикл Если ПервыйРаз Тогда - СписокДляЗагрузки = ""+ИмяФайла.Ключ; + СписокДляЗагрузки = ""+ИмяФайла.Ключ; ПервыйРаз = Ложь; КонецЕсли; - СписокДляЗагрузки = СписокДляЗагрузки + Символы.ПС + ИмяФайла.Ключ; + СписокДляЗагрузки = СписокДляЗагрузки + Символы.ПС + ИмяФайла.Ключ; КонецЦикла; КонфигурацияЗагружена = Ложь; Попытка @@ -675,7 +675,7 @@ Исключение Лог.Ошибка("Ошибка обновления конфигурации:"+ОписаниеОшибки()); КонецПопытки; - + КонецЕсли; Лог.Информация("Загрузка изменений завершена:"+КаталогВходящий); @@ -690,7 +690,7 @@ ФайлНастроек = ПолныйПуть(ФайлНастроек); Настройки = ОбщиеМетоды.ПрочитатьФайлJSON(ФайлНастроек); Счетчик = -1; - Пока Истина Цикл + Пока Истина Цикл Для каждого Элемент ИЗ Настройки Цикл Значение = Элемент.Получить("check-source-repo"); Если Значение = Неопределено Тогда @@ -762,7 +762,7 @@ Приложение = ""; Приложение = Конфигуратор.ПутьКПлатформе1С(); - Если Найти(Приложение, " ") > 0 Тогда + Если Найти(Приложение, " ") > 0 Тогда Приложение = ОбщиеМетоды.ОбернутьПутьВКавычки(Приложение); КонецЕсли; Приложение = Приложение + " "+СтрокаЗапуска; @@ -778,6 +778,7 @@ Попытка КорневойПутьПроекта = СокрЛП(ЗапуститьПроцесс("git rev-parse --show-toplevel")); Исключение + Лог.Отладка(ОписаниеОшибки()); КонецПопытки; Иначе КорневойПутьПроекта = Путь; @@ -796,7 +797,7 @@ Процедура ПодготовитьЛоги() Лог_cmdline = Логирование.ПолучитьЛог("oscript.lib.cmdline"); Лог_v8runner = Логирование.ПолучитьЛог("oscript.lib.v8runner"); - + ВыводПоУмолчанию = Новый ВыводЛогаВКонсоль(); Лог_cmdline.ДобавитьСпособВывода(ВыводПоУмолчанию); Лог_v8runner.ДобавитьСпособВывода(ВыводПоУмолчанию); @@ -809,9 +810,9 @@ ИмяВременногоФайла = ОбщиеМетоды.ПолучитьИмяВременногоФайлаВКаталоге(КаталогЛогов, СтрШаблон("%1.cmdline.log", ИмяСкрипта())); Аппендер.ОткрытьФайл(ИмяВременногоФайла); - Лог_cmdline.ДобавитьСпособВывода(Аппендер); + Лог_cmdline.ДобавитьСпособВывода(Аппендер); КонецЕсли; - + Если УровеньЛога > УровниЛога.Отладка Тогда УровеньЛога = УровниЛога.Ошибка; КонецЕсли; @@ -819,7 +820,7 @@ Лог_v8runner.УстановитьУровень(УровеньЛога); Лог_v8runner.УстановитьРаскладку(ЭтотОбъект); - Лог_cmdline.УстановитьРаскладку(ЭтотОбъект); + Лог_cmdline.УстановитьРаскладку(ЭтотОбъект); КонецПроцедуры Процедура ОсновнаяРабота() @@ -827,11 +828,11 @@ ПодготовитьЛоги(); КодВозврата = 0; - + Попытка - + Парсер = Новый ПарсерАргументовКоманднойСтроки(); - + Парсер.ДобавитьИменованныйПараметр("--ibname", "Строка подключения к БД", Истина); Парсер.ДобавитьИменованныйПараметр("--db-user", "Пользователь БД", Истина); Парсер.ДобавитьИменованныйПараметр("--db-pwd", "Пароль БД", Истина); @@ -839,14 +840,14 @@ Парсер.ДобавитьИменованныйПараметр("--root", "Полный путь к проекту", Истина); Парсер.ДобавитьИменованныйПараметр("--ordinaryapp", "Запуск толстого клиента (1 = толстый, 0 = тонкий клиент)", Истина); Парсер.ДобавитьИменованныйПараметр("--settings", "Путь к файлу настроек, в формате json", Истина); - + ДобавитьОписаниеКомандыПомощь(Парсер); ДобавитьОписаниеКомандыПоказатьВерсию(Парсер); - + ДобавитьОписаниеКомандыСледить(Парсер); ДобавитьОписаниеКомандыКонфигуратор(Парсер); ДобавитьОписаниеКомандыКонвертироватьФайлы(Парсер); - + Аргументы = Парсер.РазобратьКоманду(АргументыКоманднойСтроки); Лог.Отладка("ТипЗнч(Аргументы)= "+ТипЗнч(Аргументы)); Если Аргументы = Неопределено Тогда @@ -855,7 +856,7 @@ КонецЕсли; Команда = Аргументы.Команда; - + Если Команда = ВозможныеКоманды().Помощь Тогда ВывестиСправку(); Возврат; @@ -894,38 +895,38 @@ ЗначенияПараметровНизкийПриоритет = Новый Соответствие; - Если НастройкиИзФайла.Количество() > 0 Тогда + Если НастройкиИзФайла.Количество() > 0 Тогда ОбщиеМетоды.ДополнитьАргументыИзФайлаНастроек(Команда, ЗначенияПараметровНизкийПриоритет, НастройкиИзФайла); КонецЕсли; ОбщиеМетоды.ЗаполнитьЗначенияИзПеременныхОкружения(ЗначенияПараметровНизкийПриоритет, СоответствиеПеременных); ОбщиеМетоды.ДополнитьСоответствиеСУчетомПриоритета(Аргументы.ЗначенияПараметров, ЗначенияПараметровНизкийПриоритет); - + УстановитьКаталогТекущегоПроекта(Аргументы.ЗначенияПараметров["--root"]); // на случай переопределения этой настройки повторная установка Если ЗначениеЗаполнено(Аргументы.ЗначенияПараметров["--ibname"]) Тогда // TODO перенести в main.os Аргументы.ЗначенияПараметров.Вставить("--ibname", ОбщиеМетоды.ПереопределитьПолныйПутьВСтрокеПодключения(Аргументы.ЗначенияПараметров["--ibname"])); КонецЕсли; - + ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(Аргументы.ЗначенияПараметров["--ordinaryapp"], Лог); - - Если Команда = ВозможныеКоманды().Следить Тогда + + Если Команда = ВозможныеКоманды().Следить Тогда Следить(Аргументы.ЗначенияПараметров["inputPath"], Аргументы.ЗначенияПараметров["--filter"]); - ИначеЕсли Команда = ВозможныеКоманды().КонвертироватьФайлы Тогда + ИначеЕсли Команда = ВозможныеКоманды().КонвертироватьФайлы Тогда КонвертироватьФайлы(ПолныйПуть(Аргументы.ЗначенияПараметров["inputPath"]), Аргументы.ЗначенияПараметров["--ibname"], Аргументы.ЗначенияПараметров["--db-user"], Аргументы.ЗначенияПараметров["--db-pwd"], Аргументы.ЗначенияПараметров["--v8version"]); - ИначеЕсли Команда = ВозможныеКоманды().Конфигуратор Тогда + ИначеЕсли Команда = ВозможныеКоманды().Конфигуратор Тогда Конфигуратор(Аргументы.ЗначенияПараметров["--ibname"], Аргументы.ЗначенияПараметров["--db-user"], Аргументы.ЗначенияПараметров["--db-pwd"], Аргументы.ЗначенияПараметров["--storage-name"], Аргументы.ЗначенияПараметров["--storage-user"], Аргументы.ЗначенияПараметров["--storage-pwd"], Аргументы.ЗначенияПараметров["--storage-ver"], Аргументы.ЗначенияПараметров["--v8version"], Аргументы.ЗначенияПараметров["--dev"]); КонецЕсли; - + Исключение Лог.Ошибка(ОписаниеОшибки()); КодВозврата = 1; КонецПопытки; - + ВременныеФайлы.Удалить(); КонецПроцедуры @@ -940,14 +941,14 @@ Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры -Процедура ДобавитьОписаниеКомандыСледить(Знач Парсер) +Процедура ДобавитьОписаниеКомандыСледить(Знач Парсер) ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().Следить); Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "inputPath"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--filter", "Фильтр настроек для слежения"); Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры //ДобавитьОписаниеКомандыСледить -Процедура ДобавитьОписаниеКомандыКонфигуратор(Знач Парсер) +Процедура ДобавитьОписаниеКомандыКонфигуратор(Знач Парсер) ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().Конфигуратор); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-name", "Строка подключения к хранилищу"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища"); @@ -957,24 +958,24 @@ Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры //ДобавитьОписаниеКомандыКонфигуратор -Процедура ДобавитьОписаниеКомандыКонвертироватьФайлы(Знач Парсер) +Процедура ДобавитьОписаниеКомандыКонвертироватьФайлы(Знач Парсер) ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().КонвертироватьФайлы); Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "inputPath"); Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры //ДобавитьОписаниеКомандыСледить - + Процедура Инициализация() - + СистемнаяИнформация = Новый СистемнаяИнформация; ПараметрыСистемы.ЭтоWindows = Найти(ВРег(СистемнаяИнформация.ВерсияОС), "WINDOWS") > 0; Лог = Логирование.ПолучитьЛог("oscript.app.vanessa-runner"); - Попытка + Попытка КаталогЛогов = СокрЛП(ЗапуститьПроцесс("git rev-parse --show-toplevel")); Исключение КаталогЛогов = ВременныеФайлы.НовоеИмяФайла(ИмяСкрипта()); СоздатьКаталог(КаталогЛогов); - КонецПопытки; + КонецПопытки; Если ЭтоЗапускВКоманднойСтроке Тогда Лог.Закрыть(); // для исключения двойного вывода сообщений, например, в случае повторного вызова команд @@ -994,15 +995,15 @@ Аппендер.ОткрытьФайл(ИмяВременногоФайла); Лог.ДобавитьСпособВывода(Аппендер); КонецЕсли; - + Лог.УстановитьРаскладку(ЭтотОбъект); - + Если ЭтоЗапускВКоманднойСтроке Тогда ВыводПоУмолчанию = Новый ВыводЛогаВКонсоль(); Лог.ДобавитьСпособВывода(ВыводПоУмолчанию); КонецЕсли; КонецЕсли; - + КонецПроцедуры ///////////////////////////////////////////////////////////////////////////// From a340be38c06114ef2d97fafb6cf0ee39f2135933 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 18:25:26 +0300 Subject: [PATCH 47/60] =?UTF-8?q?=D1=83=D1=82=D0=BE=D1=87=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=20=D0=B8=D0=BD=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D0=B8?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D0=9A=D0=BE=D0=BD=D1=84=D0=B8?= =?UTF-8?q?=D0=B3=D1=83=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit мелкие замечания --- ...0\320\260\321\202\320\276\321\200.feature" | 4 +- ...21\200\320\260\321\206\320\270\320\270.os" | 1 - ...20\260\321\202\320\276\321\200\320\260.os" | 78 +++++++++---------- 3 files changed, 41 insertions(+), 42 deletions(-) diff --git "a/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" "b/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" index 4929ebe1..ec202535 100644 --- "a/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" +++ "b/features/\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.feature" @@ -29,7 +29,7 @@ Сценарий: Интерактивный запуск Конфигуратора - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --no-wait --additional /Lru --language ru" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --no-wait --language ru" # И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит | ИНФОРМАЦИЯ - Выполняю команду Конфигуратора | @@ -39,7 +39,7 @@ Сценарий: Блокировка автоматического запуска Конфигуратора, т.к. ИБ из предыдущего сценария уже залочена Конфигуратором интерактивного запуска - Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --additional /Lru --language ru" + Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os designer --ibconnection /Fbuild/ib --language ru" # И Я сообщаю вывод команды "oscript" Тогда Вывод команды "oscript" содержит # | ПРЕДУПРЕЖДЕНИЕ - Не удалось прочитать файл информации | diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" index c3c03a42..958fa74d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" @@ -97,7 +97,6 @@ Исключение МенеджерКонфигуратора.Деструктор(); ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Возврат МенеджерКомандПриложения.РезультатыКоманд().ОшибкаВремениВыполнения; КонецПопытки; МенеджерКонфигуратора.Деструктор(); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index 0190a13e..0852a4b8 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -11,12 +11,12 @@ Возврат УправлениеКонфигуратором; КонецФункции -Процедура Инициализация(Знач СтрокаПодключения, Знач Пользователь="", Знач Пароль="", - Знач ВерсияПлатформы="", Знач КлючРазрешенияЗапуска = "", +Процедура Инициализация(Знач СтрокаПодключения, Знач Пользователь = "", Знач Пароль = "", + Знач ВерсияПлатформы = "", Знач КлючРазрешенияЗапуска = "", Знач КодЯзыка = "", Знач КодЯзыкаСеанса = "") Экспорт ТекущаяПроцедура = "Инициализация"; - Ожидаем.Что(СтрокаПодключения, ТекущаяПроцедура+": не задана строка подключения").Заполнено(); + Ожидаем.Что(СтрокаПодключения, ТекущаяПроцедура + ": не задана строка подключения").Заполнено(); УправлениеКонфигуратором = Новый УправлениеКонфигуратором(); @@ -72,10 +72,10 @@ // Процедура ЗапуститьКонфигуратор(Знач ДопСообщения, Знач ДополнительныеКлючиЗапуска, Знач ОжидатьЗавершения) Экспорт - ТекущаяПроцедура = "ЗапуститьКонфигуратор"; + ПредставлениеКоманды = ДопСообщения.Ключ; Лог.Информация("Выполняю команду Конфигуратора"); - Лог.Отладка("ДополнительныеКлючиЗапуска:"+ДополнительныеКлючиЗапуска); + Лог.Отладка("ДополнительныеКлючиЗапуска:" + ДополнительныеКлючиЗапуска); УправлениеКонфигуратором.УстановитьПризнакОжиданияВыполненияПрограммы(ОжидатьЗавершения); @@ -90,11 +90,11 @@ ПарольХранилища = ПараметрыХранилища.Пароль; Если НЕ ПустаяСтрока(СтрокаПодключенияХранилище) Тогда - ПараметрыЗапуска.Добавить("/ConfigurationRepositoryF """+СтрокаПодключенияХранилище+""""); - ПараметрыЗапуска.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + ПараметрыЗапуска.Добавить("/ConfigurationRepositoryF """ +СтрокаПодключенияХранилище + """"); + ПараметрыЗапуска.Добавить("/ConfigurationRepositoryN """ +ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - ПараметрыЗапуска.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + ПараметрыЗапуска.Добавить("/ConfigurationRepositoryP """ +ПарольХранилища + """"); КонецЕсли; КонецЕсли; @@ -106,7 +106,7 @@ УправлениеКонфигуратором.ВыполнитьКоманду(ПараметрыЗапуска); Исключение Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды()); - Лог.Ошибка(ОписаниеОшибки()); + Лог.Ошибка(ДопСообщения.СообщениеВСлучаеПадения + Символы.ПС + ОписаниеОшибки()); ВызватьИсключение; КонецПопытки; @@ -317,7 +317,7 @@ ТекущаяПроцедура = "ЗапуститьВРежимеПредприятия"; - Если ТолстыйКлиент=Ложь Тогда + Если ТолстыйКлиент = Ложь Тогда ТонкийКлиент1С = УправлениеКонфигуратором.ПутьКТонкомуКлиенту1С(УправлениеКонфигуратором.ПутьКПлатформе1С()); УправлениеКонфигуратором.ПутьКПлатформе1С(ТонкийКлиент1С); КонецЕсли; @@ -330,11 +330,11 @@ ДополнительныеКлючи = ДополнительныеКлючиЗапуска; Если Не ПустаяСтрока(ОбработкаДляЗапуска) Тогда - ДополнительныеКлючи = "" + ДополнительныеКлючи + " /Execute"+ОбщиеМетоды.ОбернутьПутьВКавычки(ОбработкаДляЗапуска); + ДополнительныеКлючи = "" + ДополнительныеКлючи + " /Execute" +ОбщиеМетоды.ОбернутьПутьВКавычки(ОбработкаДляЗапуска); КонецЕсли; - Лог.Отладка("ДополнительныеКлючи:"+ДополнительныеКлючи); - Лог.Отладка("ПараметрЗапуска:"+ПараметрЗапуска); + Лог.Отладка("ДополнительныеКлючи:" + ДополнительныеКлючи); + Лог.Отладка("ПараметрЗапуска:" + ПараметрЗапуска); Попытка УправлениеКонфигуратором.ЗапуститьВРежимеПредприятия(ПараметрЗапуска, @@ -382,11 +382,11 @@ ДополнительныеКлючи = ДополнительныеКлючиЗапуска; Если Не ПустаяСтрока(ОбработкаДляЗапуска) Тогда - ДополнительныеКлючи = "" + ДополнительныеКлючи + " /Execute"+ОбщиеМетоды.ОбернутьПутьВКавычки(ОбработкаДляЗапуска); + ДополнительныеКлючи = "" + ДополнительныеКлючи + " /Execute" +ОбщиеМетоды.ОбернутьПутьВКавычки(ОбработкаДляЗапуска); КонецЕсли; - Лог.Отладка("ДополнительныеКлючи:"+ДополнительныеКлючи); - Лог.Отладка("ПараметрЗапуска:"+ПараметрЗапуска); + Лог.Отладка("ДополнительныеКлючи:" + ДополнительныеКлючи); + Лог.Отладка("ПараметрЗапуска:" + ПараметрЗапуска); ПараметрыСвязиСБазой = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); ПараметрыСвязиСБазой[0] = "ENTERPRISE"; @@ -483,7 +483,7 @@ КонецЕсли; Текст = Новый ЧтениеТекста; - Текст.Открыть(ИмяФайла, "UTF-8",,, Ложь); + Текст.Открыть(ИмяФайла, "UTF-8", , , Ложь); ВесьТекст = Текст.Прочитать(); @@ -497,7 +497,7 @@ КонецЕсли; Для Ккк = (КолСтрокЛогаПрочитано + 1) По МассивСтрок.Количество() Цикл - Массив.Добавить(МассивСтрок[Ккк-1]); + Массив.Добавить(МассивСтрок[Ккк - 1]); КонецЦикла; КолСтрокЛогаПрочитано = МассивСтрок.Количество(); @@ -535,23 +535,23 @@ // ДополнительныеКлючиЗапуска - <Тип.Вид> - <описание параметра> // Процедура ЗапуститьОбновлениеИзХранилища( - Знач СтрокаПодключенияХранилище = "", Знач ПользовательХранилища="", Знач ПарольХранилища="", + Знач СтрокаПодключенияХранилище = "", Знач ПользовательХранилища = "", Знач ПарольХранилища = "", Знач ВерсияХранилища = "", Знач ДополнительныеКлючиЗапуска = "") Экспорт Лог.Информация("Выполняю обновление конфигурации из хранилища"); ТекущаяПроцедура = "ЗапуститьОбновлениеИзХранилища"; - Ожидаем.Что(СтрокаПодключенияХранилище, ТекущаяПроцедура+" не задана строка подключения к хранилищу").Заполнено(); - Ожидаем.Что(ПользовательХранилища, ТекущаяПроцедура+" не задан пользователь хранилища").Заполнено(); + Ожидаем.Что(СтрокаПодключенияХранилище, ТекущаяПроцедура + " не задана строка подключения к хранилищу").Заполнено(); + Ожидаем.Что(ПользовательХранилища, ТекущаяПроцедура + " не задан пользователь хранилища").Заполнено(); Параметры = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); - Параметры.Добавить("/ConfigurationRepositoryF """+СтрокаПодключенияХранилище+""""); - Параметры.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryF """ +СтрокаПодключенияХранилище + """"); + Параметры.Добавить("/ConfigurationRepositoryN """ +ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - Параметры.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + Параметры.Добавить("/ConfigurationRepositoryP """ +ПарольХранилища + """"); КонецЕсли; Параметры.Добавить("/ConfigurationRepositoryUpdateCfg"); @@ -592,8 +592,8 @@ ТекущаяПроцедура = "СоздатьХранилище"; - Ожидаем.Что(ПутьХранилища, ТекущаяПроцедура+" не задана строка подключения к хранилищу").Заполнено(); - Ожидаем.Что(ЛогинАдминистратора, ТекущаяПроцедура+" не задан пользователь хранилища").Заполнено(); + Ожидаем.Что(ПутьХранилища, ТекущаяПроцедура + " не задана строка подключения к хранилищу").Заполнено(); + Ожидаем.Что(ЛогинАдминистратора, ТекущаяПроцедура + " не задан пользователь хранилища").Заполнено(); КонтекстБД = УправлениеКонфигуратором.ПолучитьКонтекст(); Если Не ЗначениеЗаполнено(КонтекстБД.КлючСоединенияСБазой) Тогда @@ -789,8 +789,8 @@ ТекущаяПроцедура = "ВыгрузитьВерсиюХранилищаВФайл"; - Ожидаем.Что(ПутьХранилища, ТекущаяПроцедура+" не задана строка подключения к хранилищу").Заполнено(); - Ожидаем.Что(ЛогинАдминистратора, ТекущаяПроцедура+" не задан пользователь хранилища").Заполнено(); + Ожидаем.Что(ПутьХранилища, ТекущаяПроцедура + " не задана строка подключения к хранилищу").Заполнено(); + Ожидаем.Что(ЛогинАдминистратора, ТекущаяПроцедура + " не задан пользователь хранилища").Заполнено(); УправлениеКонфигуратором.СоздатьФайловуюБазу(КаталогВременнойИБ); УправлениеКонфигуратором.УстановитьКонтекст("/F " + КаталогВременнойИБ, "", ""); @@ -987,13 +987,13 @@ ИскатьВПодкаталогах = Истина; СписокФайлов = НайтиФайлы(КаталогПлоскойВыгрузки, ПолучитьМаскуВсеФайлы(), ИскатьВПодкаталогах); - Лог.Отладка("Найдено файлов выгрузки: "+СписокФайлов.Количество()+" шт."); + Лог.Отладка("Найдено файлов выгрузки: " + СписокФайлов.Количество() + " шт."); Для Каждого Файл Из СписокФайлов Цикл ИмяФайлаДляПереименования = Файл.Имя; ИмяНовогоФайла = СтрЗаменить(Файл.ПолноеИмя, КаталогПлоскойВыгрузки, ""); - ИмяНовогоФайла = ?(Лев(ИмяНовогоФайла, 1) ="/", Сред(ИмяНовогоФайла, 2), ИмяНовогоФайла); - ИмяНовогоФайла = ?(Лев(ИмяНовогоФайла, 1) ="\", Сред(ИмяНовогоФайла, 2), ИмяНовогоФайла); + ИмяНовогоФайла = ?(Лев(ИмяНовогоФайла, 1) = "/", Сред(ИмяНовогоФайла, 2), ИмяНовогоФайла); + ИмяНовогоФайла = ?(Лев(ИмяНовогоФайла, 1) = "\", Сред(ИмяНовогоФайла, 2), ИмяНовогоФайла); Если Файл.ЭтоКаталог() Тогда ИмяКаталога = ОбъединитьПути(КаталогИерархическойВыгрузки, ИмяНовогоФайла); ФайлКаталога = Новый Файл(ИмяКаталога); @@ -1010,7 +1010,7 @@ СоздатьКаталог(НовыйКаталог.ПолноеИмя); КонецЕсли; - ДобавитьПереименование(Переименования,ИмяФайлаДляПереименования,ИмяНовогоФайла); + ДобавитьПереименование(Переименования, ИмяФайлаДляПереименования, ИмяНовогоФайла); КопироватьФайл(Файл.ПолноеИмя, НовыйФайл.ПолноеИмя); @@ -1028,7 +1028,7 @@ ТекстовыйДокумент = Новый ЗаписьТекста(ОбъединитьПути(КаталогИерархическойВыгрузки, "renames.txt")); Для Каждого ЭлементСтроки Из Переименования Цикл - ТекстовыйДокумент.ЗаписатьСтроку(ЭлементСтроки.Источник+"-->"+СтрЗаменить(ЭлементСтроки.Приемник, "/", "\")); + ТекстовыйДокумент.ЗаписатьСтроку(ЭлементСтроки.Источник + "-->" +СтрЗаменить(ЭлементСтроки.Приемник, "/", "\")); КонецЦикла; ТекстовыйДокумент.Закрыть(); @@ -1070,7 +1070,7 @@ СоздатьКаталог(ВыходнойКаталог); КонецЕсли; - Лог.Отладка("Загружаю конфигурацию "+ ФайлКонфигурации); + Лог.Отладка("Загружаю конфигурацию " + ФайлКонфигурации); УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь); РазобратьНаИсходникиТекущуюКонфигурацию(ВыходнойКаталог, ФайлВерсии, ТолькоИзмененные, ИспользоватьПереименования); @@ -1263,7 +1263,7 @@ Лог.Информация("Загружаем файл конфигурации %1", ПутьКФайлу); ФайлЗагрузки = Новый Файл(ПутьКФайлу); - Ожидаем.Что(ФайлЗагрузки.Существует(), "Путь к файлу загрузки не существует "+ФайлЗагрузки.ПолноеИмя).ЕстьИстина(); + Ожидаем.Что(ФайлЗагрузки.Существует(), "Путь к файлу загрузки не существует " + ФайлЗагрузки.ПолноеИмя).ЕстьИстина(); Конфигуратор = УправлениеКонфигуратором(); @@ -1293,7 +1293,7 @@ Лог.Информация("Загружаю файл расширения %1", ПутьКФайлу); ФайлЗагрузки = Новый Файл(ПутьКФайлу); - Ожидаем.Что(ФайлЗагрузки.Существует(), "Путь к файлу загрузки не существует "+ФайлЗагрузки.ПолноеИмя).ЕстьИстина(); + Ожидаем.Что(ФайлЗагрузки.Существует(), "Путь к файлу загрузки не существует " + ФайлЗагрузки.ПолноеИмя).ЕстьИстина(); Конфигуратор = УправлениеКонфигуратором(); @@ -1371,13 +1371,13 @@ Индекс = Найти(Стр, "-->"); Если Индекс > 0 Тогда - ИмяНовогоФайла = ОбъединитьПути(КаталогВременнойСтруктуры, Лев(Стр, Индекс-1)); + ИмяНовогоФайла = ОбъединитьПути(КаталогВременнойСтруктуры, Лев(Стр, Индекс - 1)); ФайлНовый = Новый Файл(ИмяНовогоФайла); КаталогНовый = Новый Файл(ФайлНовый.Путь); Если НЕ КаталогНовый.Существует() Тогда СоздатьКаталог(ФайлНовый.Путь); КонецЕсли; - ПутьФайлСтарый = ОбъединитьПути(ВходнойКаталог, Сред(Стр, Индекс+3)); + ПутьФайлСтарый = ОбъединитьПути(ВходнойКаталог, Сред(Стр, Индекс + 3)); ФайлСтарый = Новый Файл(ПутьФайлСтарый); Если ФайлСтарый.Существует() Тогда СоответствиеФайлов.Вставить(ФайлСтарый.ПолноеИмя, Истина); @@ -1388,7 +1388,7 @@ СоздатьКаталог(КаталогФормыНовый); МассивФайлов = НайтиФайлы(КаталогФормыСтарый, ПолучитьМаскуВсеФайлы()); Для Каждого Элемент из МассивФайлов Цикл - Лог.Отладка("Копируем "+Элемент.ПолноеИмя + "--> "+ОбъединитьПути(КаталогФормыНовый, Элемент.Имя)); + Лог.Отладка("Копируем " + Элемент.ПолноеИмя + "--> " +ОбъединитьПути(КаталогФормыНовый, Элемент.Имя)); КопироватьФайл(Элемент.ПолноеИмя, ОбъединитьПути(КаталогФормыНовый, Элемент.Имя)); КонецЦикла; From 1216b4eec94ce46368f41149cdb90900a92d6aac Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 18:25:40 +0300 Subject: [PATCH 48/60] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=20=D0=BE=D1=82=20?= =?UTF-8?q?=D0=A1=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 --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 124541f1..ae71d992 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # Автоматизация повседневных операций 1С разработчика +[![Статус Порога Качества](https://sonar.openbsl.ru/api/project_badges/measure?project=vanessa-runner&metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=vanessa-runner) + - [Автоматизация повседневных операций 1С разработчика](#автоматизация-повседневных-операций-1с-разработчика) @@ -29,7 +31,7 @@ Автоматизация повседневных операций 1С разработчика == -Описание +Описание === Консольное приложение проекта `oscript.io` для автоматизации различных операции для работы с `cf/cfe/epf` файлами, а также автоматизация запуска сценариев поведения (BDD) и тестов из фреймворка [Vanessa-ADD](https://github.com/vanessa-opensource/add). @@ -309,7 +311,7 @@ call vrunner <параметры запуска> - например, `vrunner updatedb --ibconnection /F./build/ibservice --uccode test --v2` - в json-файле настройки - например, - + ```json { "updatedb": { @@ -325,4 +327,3 @@ call vrunner <параметры запуска> } } ``` - From 68b55b2ede020809ef3c272cbe215cf20ef179fd Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 18:44:18 +0300 Subject: [PATCH 49/60] =?UTF-8?q?=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BE=D1=82=20=D0=A1=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...260\320\275\320\270\320\265_xUnitFor1C.os" | 2 +- ...20\264\320\265\320\275\320\270\321\217.os" | 4 +- ...20\260\321\202\320\276\321\200\320\260.os" | 9 +-- ...20\261\320\276\321\202\320\276\320\272.os" | 46 ++++---------- ...0\270\320\224\320\273\321\2171\320\241.os" | 10 +-- ...20\260\320\275\320\275\321\213\321\205.os" | 39 ++++-------- tools/runner.os | 62 ------------------- 7 files changed, 35 insertions(+), 137 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" index b5df35cc..7bb980cd 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" @@ -231,7 +231,7 @@ Настройки = НастройкиДля1С.ПрочитатьНастройки(ПутьККонфигурационномуФайлу); ПутьЛогаВыполненияСценариев = НастройкиДля1С.ПолучитьНастройку(Настройки, "ИмяФайлаЛогВыполненияСценариев", - "./build/xddonline.txt", РабочийКаталогПроекта, "путь к лог-файлу выполнения"); + "./build/xddonline.txt", "путь к лог-файлу выполнения"); Если ВключенаОтладкаТестирования Тогда КлючЗапуска = КлючЗапуска + " debug ; "; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" index 6ce7c28a..b49e61a0 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" @@ -162,10 +162,10 @@ ПутьКФайлуСтатусаВыполнения = НастройкиДля1С.ПолучитьНастройку(Настройки, "ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев", - "./build/buildstatus.log", РабочийКаталогПроекта, "путь к файлу статуса выполнения"); + "./build/buildstatus.log", "путь к файлу статуса выполнения"); ПутьЛогаВыполненияСценариев = НастройкиДля1С.ПолучитьНастройку(Настройки, "ИмяФайлаЛогВыполненияСценариев", - "./build/vanessaonline.txt", РабочийКаталогПроекта, "путь к лог-файлу выполнения"); + "./build/vanessaonline.txt", "путь к лог-файлу выполнения"); КлючЗапуска = """StartFeaturePlayer;VBParams=" + ПутьКНастройкам +";workspaceRoot=" + РабочийКаталогПроекта + """"; Лог.Отладка(КлючЗапуска); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index 0852a4b8..f2d7fd14 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -636,9 +636,6 @@ ТекущаяПроцедура = "ПодключитьсяКХранилищу"; - // Ожидаем.Что(ПутьХранилища, ТекущаяПроцедура+" не задана строка подключения к хранилищу").Заполнено(); - // Ожидаем.Что(ЛогинАдминистратора, ТекущаяПроцедура+" не задан пользователь хранилища").Заполнено(); - КонтекстБД = УправлениеКонфигуратором.ПолучитьКонтекст(); Если Не ЗначениеЗаполнено(КонтекстБД.КлючСоединенияСБазой) Тогда Лог.Предупреждение("При подключении к хранилищу не определена БД, подключаем временную БД"); @@ -953,7 +950,7 @@ ИспользоватьПереименования = ?(ТолькоИзмененные, Ложь, ИспользоватьПереименования); УправлениеКонфигуратором.ВыгрузитьКонфигурациюВФайлы(КаталогРаспаковки, , ТолькоИзмененные, ФайлВерсии); Если ИспользоватьПереименования Тогда - РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогРаспаковки, КаталогВыгрузки, ""); + РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(КаталогРаспаковки, КаталогВыгрузки); КонецЕсли; Лог.Информация("Выгрузка в исходники завершена."); @@ -962,8 +959,8 @@ // Выполняет перенос файлов из каталога плоской выгрузки в каталог с иерархической структурой метаданных. // -Процедура РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(Знач КаталогПлоскойВыгрузки, - Знач КаталогИерархическойВыгрузки, Знач Формат) +Процедура РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(Знач КаталогПлоскойВыгрузки, + Знач КаталогИерархическойВыгрузки) Лог.Отладка("Раскладываем модули по папкам согласно иерархии метаданных"); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" index bf426249..a9c6f3a9 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" @@ -154,7 +154,7 @@ Лог.Информация("Начало epf to src " + Ключ); Кэш = Новый Соответствие; - Для каждого Файл из СписокФайлов Цикл + Для каждого Файл Из СписокФайлов Цикл Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); КонецЦикла; КэшПутей.Вставить(Ключ, Кэш); @@ -168,7 +168,7 @@ СписокОбработанных = Новый Соответствие(); ПоследнийВыведенныйПроцент = 0; СписокПропущенных = Новый Соответствие(); - Для каждого Файл из СписокФайлов Цикл + Для каждого Файл Из СписокФайлов Цикл Лог.Отладка("Проверяю на изменение файл <%1>", Файл.ПолноеИмя); Если Файл.ЭтоКаталог() Тогда Продолжить; @@ -262,7 +262,7 @@ СписокОбработанных.Вставить(Файл.ПолноеИмя, Истина); КонецЦикла; - Для каждого Элемент ИЗ СписокОбработанных Цикл + Для каждого Элемент Из СписокОбработанных Цикл Файл = Новый Файл(Элемент.Ключ); Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(Файл)); КонецЦикла; @@ -317,7 +317,7 @@ Лог.Информация("Начало src to epf:" + Ключ); Кэш = Новый Соответствие; СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); - Для каждого Файл из СписокФайлов Цикл + Для каждого Файл Из СписокФайлов Цикл Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); КонецЦикла; КэшПутей.Вставить(Ключ, Кэш); @@ -331,7 +331,7 @@ КэшОбновляемый = Новый Соответствие(); КоличествоФайлов = СписокФайлов.Количество(); ПоследнийВыведенныйПроцент = 0; - Для каждого Файл из СписокФайлов Цикл + Для каждого Файл Из СписокФайлов Цикл Если Файл.ЭтоКаталог() Тогда Продолжить; КонецЕсли; @@ -397,7 +397,7 @@ КонецЕсли; НеобходимоПрервать = Ложь; - Для каждого Элемент из СписокОбработанных Цикл + Для каждого Элемент Из СписокОбработанных Цикл Если СтрНайти(Файл.ПолноеИмя, Элемент.Ключ) > 0 Тогда НеобходимоПрервать = Истина; Прервать; @@ -422,7 +422,7 @@ КонецЕсли; КонецЕсли; КонецЕсли; - + Если РежимВыгрузки = "Каталог" Тогда Если ОбщиеМетоды.ДополнитьРазделителемПути(ОбщиеМетоды.ПолныйПуть(КаталогВходящий)) = ОбщиеМетоды.ДополнитьРазделителемПути(ПапкаИсходников) Тогда @@ -437,7 +437,7 @@ Иначе КаталогВыгрузкиОбработки = КаталогИсходящий; КонецЕсли; - + ИмяФайлаОбъекта = СобратьФайлВнешнейОбработки(ПапкаИсходников, КаталогВыгрузкиОбработки, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); КаталогФайл = Новый Файл(ПапкаИсходников); @@ -445,7 +445,7 @@ Лог.Информация("Собирали: %1 изменен %2", КаталогФайл.Имя, СтрЗаменить(КаталогВыгрузкиОбработки, КаталогВходящийПолныйПуть, "")); СписокСобранныхОбработок = НайтиФайлы(КаталогВыгрузкиОбработки, "" + КаталогФайл.Имя + "*"); - Для каждого ЭлементОбработки из СписокСобранныхОбработок Цикл + Для каждого ЭлементОбработки Из СписокСобранныхОбработок Цикл ДанныеФайлаОбработки = ХэшФайла(ЭлементОбработки); Кэш.Вставить(ЭлементОбработки.ПолноеИмя, ДанныеФайлаОбработки); КэшОбновляемый.Вставить(ЭлементОбработки.ПолноеИмя, ДанныеФайлаОбработки); @@ -474,7 +474,7 @@ КонецЕсли; КонецЦикла; - Для каждого Элемент ИЗ СписокОбработанных Цикл + Для каждого Элемент Из СписокОбработанных Цикл Файл = Новый Файл(Элемент.Ключ); Кэш.Вставить(Файл.ПолноеИмя, ХэшФайла(Файл)); КонецЦикла; @@ -521,7 +521,7 @@ Лог.Предупреждение("Не найдено файлов в каталоге"); КонецЕсли; - Для Каждого Файл из Файлы Цикл + Для Каждого Файл Из Файлы Цикл Если Лев(Файл.Имя,4) = ".git" Или Врег(Файл.Имя) = Врег("build") Или Врег(Файл.Имя) = Врег("cache.txt") Тогда Продолжить; КонецЕсли; @@ -792,7 +792,7 @@ Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки) ФайлДляРаспаковки = Новый файл(ФайлРаспаковки); - Если КаталогРаспаковки = "" тогда + Если КаталогРаспаковки = "" Тогда КаталогРаспаковки = ВременныеФайлы.СоздатьКаталог(); КонецЕсли; @@ -816,32 +816,12 @@ КонецПроцедуры -Процедура УпаковатьКонтейнерМетаданных(Знач КаталогРаспаковки, Знач ФайлРаспаковки) - ФайлДляРаспаковки = Новый файл(ФайлРаспаковки); - Если КаталогРаспаковки = "" тогда - КаталогРаспаковки = ВременныеФайлы.СоздатьКаталог(); - КонецЕсли; - ФайлПрограммыРаспаковки = "v8unpack"; - ФайлМодуля = Новый Файл(ОбъединитьПути(КаталогРаспаковки, "Module.bsl")); - Если ФайлМодуля.Существует() Тогда - КопироватьФайл(ФайлМодуля.ПолноеИмя, ОбъединитьПути(ФайлМодуля.Путь, "module") ); - КонецЕсли; - СтрокаЗапуска = """" + ФайлПрограммыРаспаковки + """ -build -nopack """ + КаталогРаспаковки + """ """ + ФайлДляРаспаковки.ПолноеИмя + """"; - Если НЕ ПараметрыСистемы.ЭтоWindows Тогда - СтрокаЗапуска = "sh -c '" + СтрокаЗапуска + "'"; - КонецЕсли; - Лог.Отладка(СтрокаЗапуска); - - ЗапуститьПриложение(СтрокаЗапуска, , Истина); - -КонецПроцедуры - Функция ЭтоПутьКИсходнымКодамОбработок(ПутьКПапке) Результат = Ложь; МассивИмен = НайтиФайлы(ПутьКПапке, "*.xml", Ложь); - Для Каждого Элемент из МассивИмен Цикл + Для Каждого Элемент Из МассивИмен Цикл ЧтениеТекста = Новый ЧтениеТекста(Элемент.ПолноеИмя); Содержание = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\224\320\273\321\2171\320\241.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\224\320\273\321\2171\320\241.os" index 5f7076ee..9c88e353 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\224\320\273\321\2171\320\241.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\224\320\273\321\2171\320\241.os" @@ -16,13 +16,13 @@ Ожидаем.Что(ФайлНастроек.Существует(), СообщениеОшибки).ЭтоИстина(); ЧтениеТекста = Новый ЧтениеТекста(ФайлНастроек.ПолноеИмя, КодировкаТекста.UTF8); - + СтрокаJSON = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); ПарсерJSON = Новый ПарсерJSON(); Рез = ПарсерJSON.ПрочитатьJSON(СтрокаJSON); - + Лог.Отладка("Успешно прочитали настройки"); Лог.Отладка("Настройки из файла:"); Для каждого КлючЗначение Из Рез Цикл @@ -34,8 +34,8 @@ Возврат Рез; КонецФункции -Функция ПолучитьНастройку(Знач Настройки, Знач ИмяНастройки, Знач ЗначениеПоУмолчанию, - Знач РабочийКаталогПроекта, Знач ОписаниеНастройки, Знач ПолучатьПолныйПуть = Истина) Экспорт +Функция ПолучитьНастройку(Знач Настройки, Знач ИмяНастройки, Знач ЗначениеПоУмолчанию, + Знач ОписаниеНастройки, Знач ПолучатьПолныйПуть = Истина) Экспорт Рез = ЗначениеПоУмолчанию; Если Настройки <> Неопределено Тогда @@ -49,7 +49,7 @@ КонецЕсли; КонецЕсли; Лог.Отладка("Использую %1 %2", ОписаниеНастройки, Рез); - + Если ПолучатьПолныйПуть Тогда Рез = ОбщиеМетоды.ПолныйПуть(Рез); Лог.Отладка("Использую %1 (полный путь) %2", ОписаниеНастройки, Рез); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205.os" index d3c82014..89b68164 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205.os" @@ -9,12 +9,12 @@ // ПутьФайлаДляРаспаковки - <Строка> - путь файла для распаковки // КаталогРаспаковки - <Строка> - каталог для распаковки // -Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки) +Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки) Экспорт ФайлДляРаспаковки = Новый файл(ФайлРаспаковки); - Если КаталогРаспаковки = "" тогда + Если КаталогРаспаковки = "" Тогда КаталогРаспаковки = ВременныеФайлы.СоздатьКаталог(); КонецЕсли; - + ЧтениеФайла8 = Новый ЧтениеФайла8(ФайлДляРаспаковки.ПолноеИмя); Для Каждого Элемент Из ЧтениеФайла8.Элементы Цикл ЧтениеФайла8.Извлечь(Элемент, КаталогРаспаковки, Истина); @@ -23,7 +23,7 @@ ВыполнитьСборкуМусора(); ФайлМодуля = Новый Файл(ОбъединитьПути(КаталогРаспаковки, "module")); - Если ФайлМодуля.Существует() Тогда + Если ФайлМодуля.Существует() Тогда ФайлКуда = Новый Файл(ОбъединитьПути(ФайлМодуля.Путь, "Module.bsl")); Лог.Отладка("Перемещаю файл <%1> в <%2>", ФайлМодуля.ПолноеИмя, ФайлКуда.ПолноеИмя); Если ФайлКуда.Существует() Тогда @@ -31,7 +31,7 @@ КонецЕсли; ПереместитьФайл(ФайлМодуля.ПолноеИмя, ФайлКуда.ПолноеИмя); Ожидаем.Что(ФайлКуда.Существует(), СтрШаблон("Файл должен существовать, а его нет. %1")).ЭтоИстина(); - КонецЕсли; + КонецЕсли; КонецПроцедуры @@ -41,9 +41,9 @@ // КаталогРаспаковки - <Строка> - каталог для распаковки // ПутьФайлаДляРаспаковки - <Строка> - путь файла для упаковки // -Процедура УпаковатьКонтейнерМетаданных(Знач КаталогРаспаковки, Знач ФайлРаспаковки) +Процедура УпаковатьКонтейнерМетаданных(Знач КаталогРаспаковки, Знач ФайлРаспаковки) Экспорт ФайлДляРаспаковки = Новый файл(ФайлРаспаковки); - Если КаталогРаспаковки = "" тогда + Если КаталогРаспаковки = "" Тогда КаталогРаспаковки = ВременныеФайлы.СоздатьКаталог(); КонецЕсли; ФайлПрограммыРаспаковки = ИмяПрограммыРаспаковки(); @@ -51,26 +51,16 @@ Если ФайлМодуля.Существует() Тогда КопироватьФайл(ФайлМодуля.ПолноеИмя, ОбъединитьПути(ФайлМодуля.Путь, "module") ); КонецЕсли; - СтрокаЗапуска = """"+ФайлПрограммыРаспаковки+""" -build -nopack """+КаталогРаспаковки+""" """+ФайлДляРаспаковки.ПолноеИмя+""""; - Если НЕ ПараметрыСистемы.ЭтоWindows Тогда - СтрокаЗапуска = "sh -c '"+СтрокаЗапуска+"'"; + СтрокаЗапуска = """" + ФайлПрограммыРаспаковки + """ -build -nopack """ +КаталогРаспаковки + """ """ + ФайлДляРаспаковки.ПолноеИмя + """"; + Если НЕ ПараметрыСистемы.ЭтоWindows Тогда + СтрокаЗапуска = "sh -c '" +СтрокаЗапуска + "'"; КонецЕсли; Лог.Отладка(СтрокаЗапуска); - ЗапуститьПриложение(СтрокаЗапуска,,Истина); + ЗапуститьПриложение(СтрокаЗапуска, , Истина); КонецПроцедуры -Процедура ВыполнитьКоманду(Знач СтрокаЗапуска) - - Лог.Отладка(СтрокаЗапуска); - - Команда = Новый Команда; - Команда.УстановитьПравильныйКодВозврата(0); - Команда.УстановитьСтрокуЗапуска(СтрокаЗапуска); - Команда.Исполнить(); -КонецПроцедуры - Функция ИмяПрограммыРаспаковки() Рез = "v8unpack"; Если ПараметрыСистемы.ЭтоWindows Тогда @@ -78,10 +68,3 @@ КонецЕсли; Возврат Рез; КонецФункции // ИмяПрограммыРаспаковки() - -Функция ПолучитьЛог() - Если Лог = Неопределено Тогда - Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы()); - КонецЕсли; - Возврат Лог; -КонецФункции diff --git a/tools/runner.os b/tools/runner.os index 092f44ec..7500fcaa 100644 --- a/tools/runner.os +++ b/tools/runner.os @@ -189,63 +189,6 @@ КонецФункции -Функция ПолучитьТипФайлаПоКаталогуИсходников(Знач КаталогИсходников) - - ПутьКФайлуРут = ОбъединитьПути(КаталогИсходников, "root"); - ФайлРут = Новый Файл(ПутьКФайлуРут); - - Ожидаем.Что(ФайлРут.Существует(), "Файл <" + ПутьКФайлуРут + "> должен существовать").ЭтоИстина(); - Ожидаем.Что(ФайлРут.ЭтоКаталог(), "<" + ПутьКФайлуРут + "> должен быть файлом").ЭтоЛожь(); - - ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлуРут); - СодержаниеРут = ЧтениеТекста.Прочитать(); - ЧтениеТекста.Закрыть(); - МассивСтрокРут = СтрРазделить(СодержаниеРут, ","); - Ожидаем.Что(МассивСтрокРут.Количество(), "Некорректный формат файла root").Больше(1); - - ПутьКФайлуКорневойКонтейнер = ОбъединитьПути(КаталогИсходников, МассивСтрокРут[1]); - ФайлКорневойКонтейнер = Новый Файл(ПутьКФайлуКорневойКонтейнер); - - Ожидаем.Что(ФайлКорневойКонтейнер.Существует(), "Файл <" + ПутьКФайлуКорневойКонтейнер + "> должен существовать").ЭтоИстина(); - Ожидаем.Что(ФайлКорневойКонтейнер.ЭтоКаталог(), "<" + ПутьКФайлуКорневойКонтейнер + "> должен быть файлом").ЭтоЛожь(); - - ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлуКорневойКонтейнер); - СодержаниеКорневойКонтейнер = ""; - Для сч = 1 По 7 Цикл - ПрочитаннаяСтрока = ЧтениеТекста.ПрочитатьСтроку(); - Если ПрочитаннаяСтрока = Неопределено Тогда - Прервать; - КонецЕсли; - - СодержаниеКорневойКонтейнер = СодержаниеКорневойКонтейнер + ПрочитаннаяСтрока; - КонецЦикла; - ЧтениеТекста.Закрыть(); - - МассивСтрокКорневойКонтейнер = СтрРазделить(СодержаниеКорневойКонтейнер, ","); - Ожидаем.Что(МассивСтрокКорневойКонтейнер.Количество(), "Некорректный формат файла корневого контейнера <" + ПутьКФайлуКорневойКонтейнер + ">").Больше(3); - - ИдентификаторТипаОбъекта = СокрЛП(МассивСтрокКорневойКонтейнер[3]); - Если Лев(ИдентификаторТипаОбъекта, 1) = "{" Тогда - ИдентификаторТипаОбъекта = Прав(ИдентификаторТипаОбъекта, СтрДлина(ИдентификаторТипаОбъекта) - 1); - КонецЕсли; - Если Прав(ИдентификаторТипаОбъекта, 1) = "}" Тогда - ИдентификаторТипаОбъекта = Лев(ИдентификаторТипаОбъекта, СтрДлина(ИдентификаторТипаОбъекта) - 1); - КонецЕсли; - - ИдентификаторТипаОбъекта = НРег(СокрЛП(ИдентификаторТипаОбъекта)); - - Если ИдентификаторТипаОбъекта = "c3831ec8-d8d5-4f93-8a22-f9bfae07327f" Тогда - ТипФайла = "epf"; - ИначеЕсли ИдентификаторТипаОбъекта = "e41aff26-25cf-4bb6-b6c1-3f478a75f374" Тогда - ТипФайла = "erf"; - Иначе - ВызватьИсключение("Некорректный идентификатор типа собираемого объекта <" + ИдентификаторТипаОбъекта + ">"); - КонецЕсли; - - Возврат ТипФайла; - -КонецФункции - Процедура КонвертироватьФайлы(Знач Каталог, Знач СтрокаПодключения="", Знач Пользователь="", Знач Пароль="", Знач ВерсияПлатформы="") Экспорт Конфигуратор = Новый УправлениеКонфигуратором(); @@ -1022,11 +965,6 @@ Сообщить(Версия()); КонецПроцедуры -Функция КаталогПроекта() - ФайлИсточника = Новый Файл(ТекущийСценарий().Источник); - Возврат ФайлИсточника.Путь; -КонецФункции - Функция ИмяСкрипта() ФайлИсточника = Новый Файл(ТекущийСценарий().Источник); Возврат ФайлИсточника.ИмяБезРасширения; From 1941ce590164f39fbd7c2276dbad0c0d6e15d1ce Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 19:04:48 +0300 Subject: [PATCH 50/60] =?UTF-8?q?=D1=83=D1=82=D0=BE=D1=87=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit добавил пробелы --- ...21\200\320\265\320\275\320\270\320\271.os" | 29 ++++++++++--------- ...260\320\275\320\270\320\265_xUnitFor1C.os" | 14 ++++----- ...20\264\320\265\320\275\320\270\321\217.os" | 6 ++-- ...20\260\321\202\320\276\321\200\320\260.os" | 13 +++------ ...20\265\321\202\320\276\320\264\321\213.os" | 10 +++---- 5 files changed, 33 insertions(+), 39 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os" index 3f50ec55..6bd68854 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os" @@ -2,7 +2,7 @@ // // Служебный модуль с набором методов работы с командами приложения // -// Структура модуля реализована в соответствии с рекомендациями +// Структура модуля реализована в соответствии с рекомендациями // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////// @@ -16,20 +16,20 @@ Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт - ТекстОписания = + ТекстОписания = " Разборка расширения из конфигурации в исходники."; ОписаниеКоманды = Парсер.ОписаниеКоманды(ИмяКоманды, ТекстОписания); - Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "extensionName", + Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "extensionName", "Имя расширения, под которым оно зарегистрировано в списке расширений"); Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "outputPath", "Путь к исходникам расширения"); Парсер.ДобавитьКоманду(ОписаниеКоманды); - + КонецПроцедуры // ЗарегистрироватьКоманду // Выполняет логику команды -// +// // Параметры: // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) @@ -39,9 +39,10 @@ Лог = ДополнительныеПараметры.Лог; ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; - + ПутьИсходников = ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["outputPath"]); + РазобратьНаИсходникиРасширение( - ПараметрыКоманды["extensionName"], ОбщиеМетоды.ПолныйПуть(ПараметрыКоманды["outputPath"]), + ПараметрыКоманды["extensionName"], ПутьИсходников, ДанныеПодключения.СтрокаПодключения, ДанныеПодключения.Пользователь, ДанныеПодключения.Пароль, ПараметрыКоманды["--v8version"], ПараметрыКоманды["--uccode"], ДанныеПодключения.КодЯзыка ); @@ -49,19 +50,19 @@ Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду -Процедура РазобратьНаИсходникиРасширение(Знач ИмяРасширения, Знач Каталог, - Знач СтрокаПодключения="", Знач Пользователь="", Знач Пароль="", - Знач ВерсияПлатформы="", Знач КлючРазрешенияЗапуска, Знач КодЯзыка = "") +Процедура РазобратьНаИсходникиРасширение(Знач ИмяРасширения, Знач Каталог, + Знач СтрокаПодключения, Знач Пользователь, Знач Пароль, + Знач ВерсияПлатформы, Знач КлючРазрешенияЗапуска, Знач КодЯзыка) Лог.Информация("Выполняю разборку расширения %1 на исходники в каталог %2", ИмяРасширения, Каталог); Ожидаем.Что(СтрокаПодключения, "Ожидаем, что строка подключения к ИБ задана, а это не так").Заполнено(); МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - МенеджерКонфигуратора.Инициализация(СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы, + МенеджерКонфигуратора.Инициализация(СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы, КлючРазрешенияЗапуска, КодЯзыка); Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором(); - + ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска(); ПараметрыЗапуска.Добавить("/Visible"); ПараметрыЗапуска.Добавить("/DumpConfigToFiles """ + Каталог + """"); @@ -75,7 +76,7 @@ КонецПопытки; МенеджерКонфигуратора.Деструктор(); - + Лог.Информация("Разборка расширения завершена"); - + КонецПроцедуры diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" index 7bb980cd..25153d36 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" @@ -173,14 +173,14 @@ Знач РабочийКаталогПроекта, Знач ФормируемыеОтчеты, Знач ПутьФайлаСтатусаТестирования, - Знач ПутьКИнструментам = "", Знач ТолстыйКлиент = Ложь, + Знач ПутьКИнструментам, Знач ТолстыйКлиент, Знач ПутьККонфигурационномуФайлу, - Знач ОжидатьЗавершения = Истина, - Знач ДопПараметры="", - Знач ЗагружатьВстроенныеТесты = Истина, - Знач ТестКлиент = "", - Знач ВключенаОтладкаТестирования = Ложь, - Знач Завершать1СПослеТестирования = Истина) + Знач ОжидатьЗавершения, + Знач ДопПараметры, + Знач ЗагружатьВстроенныеТесты, + Знач ТестКлиент, + Знач ВключенаОтладкаТестирования, + Знач Завершать1СПослеТестирования) Лог.Информация("Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) - %1", ПутьВходящихДанных); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" index b49e61a0..2165d0ed 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" @@ -126,8 +126,8 @@ // Процедура ЗапуститьТестироватьПоведение(Знач ПутьКФичам = Неопределено, Знач РабочийКаталогПроекта = Неопределено, - Знач ПутьКНастройкам = "", Знач ПутьКИнструментам="", Знач ТолстыйКлиент = Ложь, - Знач ОжидатьЗавершения = Истина, Знач ДопПараметры="") + Знач ПутьКНастройкам = "", Знач ПутьКИнструментам = "", Знач ТолстыйКлиент = Ложь, + Знач ОжидатьЗавершения = Истина, Знач ДопПараметры = "") Лог.Информация("Тестирую поведение с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development)"); @@ -167,7 +167,7 @@ ПутьЛогаВыполненияСценариев = НастройкиДля1С.ПолучитьНастройку(Настройки, "ИмяФайлаЛогВыполненияСценариев", "./build/vanessaonline.txt", "путь к лог-файлу выполнения"); - КлючЗапуска = """StartFeaturePlayer;VBParams=" + ПутьКНастройкам +";workspaceRoot=" + РабочийКаталогПроекта + """"; + КлючЗапуска = """StartFeaturePlayer;VBParams=" + ПутьКНастройкам + ";workspaceRoot=" + РабочийКаталогПроекта + """"; Лог.Отладка(КлючЗапуска); ДополнительныеКлючи = " /TESTMANAGER " + ДопПараметры; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index f2d7fd14..313c31af 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -119,16 +119,12 @@ // Параметры: // ДополнительныеКлючиЗапуска - <Тип.Вид> - <описание параметра> // -Процедура ОбновитьКонфигурациюБазыДанных(Знач ДополнительныеКлючиЗапуска = "") Экспорт +Процедура ОбновитьКонфигурациюБазыДанных() Экспорт Лог.Информация("Запускаю обновление конфигурации БД"); ТекущаяПроцедура = "ОбновитьКонфигурациюБазыДанных"; - Если Не ПустаяСтрока(ДополнительныеКлючиЗапуска) Тогда - - КонецЕсли; - Попытка УправлениеКонфигуратором.ОбновитьКонфигурациюБазыДанных(Ложь); Текст = УправлениеКонфигуратором.ВыводКоманды(); @@ -179,9 +175,8 @@ // // Параметры: // ИмяРасширения - <Строка> - <описание параметра> -// ДополнительныеКлючиЗапуска - <Тип.Вид> - <описание параметра> // -Процедура ОбновитьРасширение(Знач ИмяРасширения, Знач ДополнительныеКлючиЗапуска = "") Экспорт +Процедура ОбновитьРасширение(Знач ИмяРасширения) Экспорт ТекущаяПроцедура = "ОбновитьРасширение"; Лог.Информация("Запускаю обновление расширения %1", ИмяРасширения); @@ -315,7 +310,7 @@ Лог.Информация("Выполняю команду/действие в режиме 1С:Предприятие"); - ТекущаяПроцедура = "ЗапуститьВРежимеПредприятия"; + ТекущаяПроцедура = ДопСообщения.Ключ; Если ТолстыйКлиент = Ложь Тогда ТонкийКлиент1С = УправлениеКонфигуратором.ПутьКТонкомуКлиенту1С(УправлениеКонфигуратором.ПутьКПлатформе1С()); @@ -959,7 +954,7 @@ // Выполняет перенос файлов из каталога плоской выгрузки в каталог с иерархической структурой метаданных. // -Процедура РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(Знач КаталогПлоскойВыгрузки, +Процедура РазложитьМодули1СПоПапкамСогласноИерархииМетаданных(Знач КаталогПлоскойВыгрузки, Знач КаталогИерархическойВыгрузки) Лог.Отладка("Раскладываем модули по папкам согласно иерархии метаданных"); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index f6026bbd..f96767c3 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -54,16 +54,14 @@ Если Процесс.КодВозврата = 0 Тогда Текст = Процесс.ПотокВывода.Прочитать(); - Если Текст = Неопределено ИЛИ ПустаяСтрока(СокрЛП(Текст)) Тогда - - Иначе + Если Текст <> Неопределено И Не ПустаяСтрока(Текст) Тогда ТекстБазовый = ТекстБазовый + Текст; КонецЕсли; Лог.Отладка(ТекстБазовый); Возврат ТекстБазовый; Иначе ВызватьИсключение "Сообщение от процесса - | код:" + Процесс.КодВозврата + " процесс: "+ Процесс.ПотокОшибок.Прочитать(); + | код:" + Процесс.КодВозврата + " процесс: " + Процесс.ПотокОшибок.Прочитать(); КонецЕсли; КонецФункции @@ -203,9 +201,9 @@ КонецЕсли; Лог.Отладка(СтрШаблон("%1 для выбора режима толстого/тонкого клиента", ОписаниеПараметра)); - Если ЗапускатьТолстыйКлиент=Истина Тогда + Если ЗапускатьТолстыйКлиент = Истина Тогда Лог.Отладка("Выбран режим запуска - толстый клиент 1С."); - ИначеЕсли ЗапускатьТолстыйКлиент=Ложь Тогда + ИначеЕсли ЗапускатьТолстыйКлиент = Ложь Тогда Лог.Отладка("Выбран режим запуска - тонкий клиент 1С."); Иначе Лог.Отладка("Выбран режим запуска - без указания режима."); From 7ddc5aca1ed2c3b2ff42f8ec8ee7f943a88793f3 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 20:09:58 +0300 Subject: [PATCH 51/60] =?UTF-8?q?=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BE=D1=82=20=D0=A1=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/runner.os | 92 +++++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 45 deletions(-) diff --git a/tools/runner.os b/tools/runner.os index 7500fcaa..9d028c9e 100644 --- a/tools/runner.os +++ b/tools/runner.os @@ -78,7 +78,7 @@ ПаузаОжиданияЧтенияБуфера = 10; Лог.Отладка(СтрокаВыполнения); - Процесс = СоздатьПроцесс(СтрокаВыполнения,,Истина); + Процесс = СоздатьПроцесс(СтрокаВыполнения, , Истина); Процесс.Запустить(); ТекстБазовый = ""; @@ -86,7 +86,7 @@ Пока Истина Цикл Текст = Процесс.ПотокВывода.Прочитать(); - Лог.Отладка("Цикл ПотокаВывода "+Текст); + Лог.Отладка("Цикл ПотокаВывода " + Текст); Если Текст = Неопределено ИЛИ ПустаяСтрока(СокрЛП(Текст)) Тогда Прервать; КонецЕсли; @@ -117,7 +117,7 @@ Функция СобратьФайлВнешнейОбработки(Знач ПутьКИсходникам, Знач КаталогВыгрузки, Знач СтрокаПодключения, Знач Пользователь, Знач Пароль, Знач ВерсияПлатформы) - Лог.Отладка("Собираю исходники <"+ПутьКИсходникам+">"); + Лог.Отладка("Собираю исходники <" +ПутьКИсходникам + ">"); ПапкаИсходников = Новый Файл(ПутьКИсходникам); ИмяПапки = ПапкаИсходников.Имя; @@ -129,7 +129,7 @@ СобратьФайлВнешнейОбработкиИзИсходников(НайденныйФайл[0], ИмяФайлаОбъекта, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); - Лог.Отладка("Успешно собран файл "+ИмяФайлаОбъекта); + Лог.Отладка("Успешно собран файл " + ИмяФайлаОбъекта); Возврат ИмяФайлаОбъекта; @@ -189,7 +189,7 @@ КонецФункции -Процедура КонвертироватьФайлы(Знач Каталог, Знач СтрокаПодключения="", Знач Пользователь="", Знач Пароль="", Знач ВерсияПлатформы="") Экспорт +Процедура КонвертироватьФайлы(Знач Каталог, Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы = "") Экспорт Конфигуратор = Новый УправлениеКонфигуратором(); КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); @@ -236,14 +236,14 @@ Кэш.Вставить(Элемент.Ключ, Элемент.Значение); КонецЦикла; Исключение - Лог.Ошибка("Ошибка обновления других кэшей "+ Элемент + ":"+ ОписаниеОшибки()); + Лог.Ошибка("Ошибка обновления других кэшей " + Элемент + ":" + ОписаниеОшибки()); КонецПопытки; КонецЦикла; КонецПроцедуры Процедура СледитьЗаИзменениямиФайловВРабочемКаталоге(Значение, КэшПутей, Фильтр = "") - Ключ = Строка(Значение.Получить("inDir")) + ""+Строка(Значение.Получить("outDir")); + Ключ = Строка(Значение.Получить("inDir")) + "" + Строка(Значение.Получить("outDir")); КаталогВходящий = ПолныйПуть(Значение.Получить("inDir")); КаталогИсходящий = ПолныйПуть(Значение.Получить("outDir")); СтрокаПодключения = ОбщиеМетоды.ПереопределитьПолныйПутьВСтрокеПодключения(Значение.Получить("connectionstring")); @@ -274,7 +274,7 @@ Кэш = КэшПутей.Получить(Ключ); Если Кэш = Неопределено Тогда - Лог.Информация("Начало epf to src "+Ключ); + Лог.Информация("Начало epf to src " + Ключ); Кэш = Новый Соответствие; Для каждого Файл из СписокФайлов Цикл @@ -283,7 +283,7 @@ КэшПутей.Вставить(Ключ, Кэш); КонецЕсли; - Лог.Отладка("Проверяем изменения epf "+Строка(КаталогВходящий) + "->"+Строка(КаталогИсходящий)); + Лог.Отладка("Проверяем изменения epf " + Строка(КаталогВходящий) + "->" +Строка(КаталогИсходящий)); КэшОбновляемый = Новый Соответствие(); @@ -296,7 +296,7 @@ Время = Кэш.Получить(Файл.ПолноеИмя); ВремяТекущее = Файл.ПолучитьВремяИзменения(); Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда Изменен = Истина; - Лог.Отладка("Изменен:"+Файл.ПолноеИмя + " время старое:"+Строка(Время) + " новое:"+ВремяТекущее); + Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " время старое:" + Строка(Время) + " новое:" + ВремяТекущее); КонецЕсли; КаталогВходящийДляРазбора = ?(ФайлВходящий.ЭтоКаталог(), КаталогВходящий, ФайлВходящий.Путь); @@ -367,7 +367,7 @@ Попытка УдалитьФайлы(ФайлНовый.Путь, ФайлНовый.Имя); Исключение - Лог.Ошибка("Ошибка удаления файла "+ ПутьФайлаНазначения + ":"+ОписаниеОшибки()); + Лог.Ошибка("Ошибка удаления файла " + ПутьФайлаНазначения + ":" + ОписаниеОшибки()); КонецПопытки; КонецЕсли; @@ -391,14 +391,14 @@ КэшПутей.Вставить(Ключ, Кэш); Кэш = Неопределено; Если СписокОбработанных.Количество() > 0 Тогда - Лог.Информация("Изменено "+Строка(СписокОбработанных.Количество())); + Лог.Информация("Изменено " + Строка(СписокОбработанных.Количество())); КолМаксИзмененийВывода = 5; Для каждого Элемент Из СписокОбработанных Цикл Если КолМаксИзмененийВывода < 0 Тогда Лог.Информация("Обработано ..."); Прервать; КонецЕсли; - Лог.Информация("Обработан "+Элемент.Ключ); + Лог.Информация("Обработан " + Элемент.Ключ); КолМаксИзмененийВывода = КолМаксИзмененийВывода - 1; КонецЦикла; КонецЕсли; @@ -408,7 +408,7 @@ КонецПроцедуры Процедура СледитьЗаИзменениямиФайловВРепозиторииИсходников(Значение, КэшПутей, Фильтр = "") - Ключ = Строка(Значение.Получить("inDir")) + ""+Строка(Значение.Получить("outDir")); + Ключ = Строка(Значение.Получить("inDir")) + "" + Строка(Значение.Получить("outDir")); КаталогВходящий = ПолныйПуть(Значение.Получить("inDir")); КаталогИсходящий = ПолныйПуть(Значение.Получить("outDir")); СтрокаПодключения = ОбщиеМетоды.ПереопределитьПолныйПутьВСтрокеПодключения(Значение.Получить("connectionstring")); @@ -427,7 +427,7 @@ Кэш = КэшПутей.Получить(Ключ); Если Кэш = Неопределено Тогда - Лог.Информация("Начало src to epf:"+Ключ); + Лог.Информация("Начало src to epf:" + Ключ); Кэш = Новый Соответствие; СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); Для каждого Файл из СписокФайлов Цикл @@ -436,7 +436,7 @@ КэшПутей.Вставить(Ключ, Кэш); КонецЕсли; - Лог.Отладка("Проверяем изменения src "+Строка(КаталогВходящий) + "->"+Строка(КаталогИсходящий)); + Лог.Отладка("Проверяем изменения src " + Строка(КаталогВходящий) + "->" +Строка(КаталогИсходящий)); СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); СписокОбработанных = Новый Соответствие(); @@ -447,7 +447,7 @@ Время = Кэш.Получить(Файл.ПолноеИмя); Изменен = Ложь; ВремяТекущее = Файл.ПолучитьВремяИзменения(); Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда Изменен = Истина; - Лог.Отладка("Изменен:"+Файл.ПолноеИмя + " время старое:"+Строка(Время) + " новое:"+Файл.ПолучитьВремяИзменения()); + Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " время старое:" + Строка(Время) + " новое:" + Файл.ПолучитьВремяИзменения()); КонецЕсли; Если Изменен = Истина Тогда @@ -461,12 +461,12 @@ Для Счетчик = 0 По МаксСчетчикЦикла Цикл ФайлПутьКИсходникамОбработки = Новый Файл(ПутьКИсходникамОбработки); Если ФайлПутьКИсходникамОбработки.ЭтоКаталог() Тогда - ФайлПутьКИсходникамОбработки = Новый Файл(ФайлПутьКИсходникамОбработки.ПолноеИмя+"../"); + ФайлПутьКИсходникамОбработки = Новый Файл(ФайлПутьКИсходникамОбработки.ПолноеИмя + "../"); КонецЕсли; ПутьКИсходникамОбработки = ФайлПутьКИсходникамОбработки.Путь; Если ЭтоПутьКИсходнымКодамОбработок(ПутьКИсходникамОбработки) Тогда - Лог.Отладка("Это путь к исходникам "+ПутьКИсходникамОбработки); + Лог.Отладка("Это путь к исходникам " + ПутьКИсходникамОбработки); ПапкаИсходников = Новый Файл(ПутьКИсходникамОбработки).ПолноеИмя; ОбработкуНашли = Истина; Прервать; @@ -484,7 +484,7 @@ ИмяФайлаОбъекта = СобратьФайлВнешнейОбработки(ПапкаИсходников, КаталогВыгрузкиОбработки, СтрокаПодключения, Пользователь, Пароль, ВерсияПлатформы); КаталогФайл = Новый Файл(ИмяФайлаОбъекта); - СписокСобранныхОбработок = НайтиФайлы(КаталогВыгрузкиОбработки, ""+КаталогФайл.Имя + "*"); + СписокСобранныхОбработок = НайтиФайлы(КаталогВыгрузкиОбработки, "" + КаталогФайл.Имя + "*"); Для каждого ЭлементОбработки из СписокСобранныхОбработок Цикл Кэш.Вставить(ЭлементОбработки.ПолноеИмя, ЭлементОбработки.ПолучитьВремяИзменения()); @@ -493,7 +493,7 @@ СписокОбработанных.Вставить(ПапкаИсходников, Истина); Иначе НовыйПутьВыгрузки = ОбъединитьПути(КаталогИсходящий, ФС.ОтносительныйПуть(ПолныйПуть(КаталогВходящий), Файл.ПолноеИмя)); - Лог.Отладка("Копируем "+Файл.ПолноеИмя + "->"+НовыйПутьВыгрузки); + Лог.Отладка("Копируем " + Файл.ПолноеИмя + "->" +НовыйПутьВыгрузки); НовыйКаталог = Новый Файл(Новый Файл(НовыйПутьВыгрузки).Путь); Если НовыйКаталог.Существует() = Ложь Тогда СоздатьКаталог(НовыйКаталог.ПолноеИмя); @@ -517,14 +517,14 @@ КэшПутей.Вставить(Ключ, Кэш); Кэш = Неопределено; Если СписокОбработанных.Количество() > 0 Тогда - Лог.Информация("Изменено "+Строка(СписокОбработанных.Количество())); + Лог.Информация("Изменено " + Строка(СписокОбработанных.Количество())); КолМаксИзмененийВывода = 5; Для каждого Элемент Из СписокОбработанных Цикл Если КолМаксИзмененийВывода < 0 Тогда Лог.Информация("Обработано ..."); Прервать; КонецЕсли; - Лог.Информация("Обработан "+Элемент.Ключ); + Лог.Информация("Обработан " + Элемент.Ключ); КолМаксИзмененийВывода = КолМаксИзмененийВывода - 1; КонецЦикла; КонецЕсли; @@ -560,7 +560,7 @@ Кэш = КэшПутей.Получить(Ключ); Если Кэш = Неопределено Тогда - Лог.Информация("Начало src to cf "+Ключ); + Лог.Информация("Начало src to cf " + Ключ); Кэш = Новый Соответствие; СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); Для каждого Файл из СписокФайлов Цикл @@ -569,7 +569,7 @@ КэшПутей.Вставить(Ключ, Кэш); КонецЕсли; - Лог.Отладка("Проверяем изменения cf "+Строка(КаталогВходящий)); + Лог.Отладка("Проверяем изменения cf " + Строка(КаталогВходящий)); СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); СписокОбработанных = Новый Соответствие(); @@ -583,7 +583,7 @@ Время = Кэш.Получить(Файл.ПолноеИмя); ВремяТекущее = Файл.ПолучитьВремяИзменения(); Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда Изменен = Истина; - Лог.Отладка("Изменен:"+Файл.ПолноеИмя + " время старое:"+Строка(Время) + " новое:"+Файл.ПолучитьВремяИзменения()); + Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " время старое:" + Строка(Время) + " новое:" + Файл.ПолучитьВремяИзменения()); КонецЕсли; Если Изменен = Истина Тогда @@ -596,7 +596,7 @@ ПервыйРаз = Истина; Для каждого ИмяФайла Из СписокОбработанных Цикл Если ПервыйРаз Тогда - СписокДляЗагрузки = ""+ИмяФайла.Ключ; + СписокДляЗагрузки = "" + ИмяФайла.Ключ; ПервыйРаз = Ложь; КонецЕсли; СписокДляЗагрузки = СписокДляЗагрузки + Символы.ПС + ИмяФайла.Ключ; @@ -609,19 +609,19 @@ КонецЦикла; КонфигурацияЗагружена = Истина; Исключение - Лог.Ошибка("Ошибка загрузки файлов конфигурации:"+ОписаниеОшибки()); + Лог.Ошибка("Ошибка загрузки файлов конфигурации:" + ОписаниеОшибки()); КонецПопытки; Если КонфигурацияЗагружена = Истина И АвтоОбновление = Истина Тогда Попытка МенеджерКонфигуратора.ОбновитьКонфигурациюБазыДанных(); Исключение - Лог.Ошибка("Ошибка обновления конфигурации:"+ОписаниеОшибки()); + Лог.Ошибка("Ошибка обновления конфигурации:" + ОписаниеОшибки()); КонецПопытки; КонецЕсли; - Лог.Информация("Загрузка изменений завершена:"+КаталогВходящий); + Лог.Информация("Загрузка изменений завершена:" + КаталогВходящий); КонецЕсли; КонецЕсли; @@ -662,15 +662,15 @@ КонецПроцедуры -Процедура Конфигуратор(Знач СтрокаПодключения, Знач Пользователь="", Знач Пароль="", - Знач СтрокаПодключенияХранилище = "", Знач ПользовательХранилища="", Знач ПарольХранилища="", - Знач ВерсияХранилища="", Знач ВерсияПлатформы="", Знач СервиснаяБаза = Ложь, Знач ДополнительныеКлючиЗапуска = "") Экспорт +Процедура Конфигуратор(Знач СтрокаПодключения, Знач Пользователь = "", Знач Пароль = "", + Знач СтрокаПодключенияХранилище = "", Знач ПользовательХранилища = "", Знач ПарольХранилища = "", + Знач ВерсияПлатформы = "", Знач СервиснаяБаза = Ложь) Экспорт Конфигуратор = Новый УправлениеКонфигуратором(); Логирование.ПолучитьЛог("oscript.lib.v8runner").УстановитьУровень(Лог.Уровень()); Если НЕ ПустаяСтрока(ВерсияПлатформы) Тогда - Лог.Отладка("ВерсияПлатформы:"+ВерсияПлатформы); + Лог.Отладка("ВерсияПлатформы:" + ВерсияПлатформы); Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); КонецЕсли; @@ -690,11 +690,11 @@ ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска(); Если НЕ ПустаяСтрока(СтрокаПодключенияХранилище) Тогда - ПараметрыЗапуска.Добавить("/ConfigurationRepositoryF """+СтрокаПодключенияХранилище+""""); - ПараметрыЗапуска.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+""""); + ПараметрыЗапуска.Добавить("/ConfigurationRepositoryF """ +СтрокаПодключенияХранилище + """"); + ПараметрыЗапуска.Добавить("/ConfigurationRepositoryN """ +ПользовательХранилища + """"); Если Не ПустаяСтрока(ПарольХранилища) Тогда - ПараметрыЗапуска.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+""""); + ПараметрыЗапуска.Добавить("/ConfigurationRepositoryP """ +ПарольХранилища + """"); КонецЕсли; КонецЕсли; @@ -708,9 +708,9 @@ Если Найти(Приложение, " ") > 0 Тогда Приложение = ОбщиеМетоды.ОбернутьПутьВКавычки(Приложение); КонецЕсли; - Приложение = Приложение + " "+СтрокаЗапуска; + Приложение = Приложение + " " + СтрокаЗапуска; Лог.Информация(Приложение); - Процесс = СоздатьПроцесс(Приложение,,Истина); + Процесс = СоздатьПроцесс(Приложение, , Истина); Процесс.Запустить(); КонецПроцедуры @@ -729,7 +729,7 @@ ПараметрыСистемы.КорневойПутьПроекта = КорневойПутьПроекта; - Лог.Отладка("Текущий корень проекта:"+КорневойПутьПроекта); + Лог.Отладка("Текущий корень проекта:" + КорневойПутьПроекта); КонецПроцедуры // УстановитьКаталогТекущегоПроекта() @@ -792,7 +792,7 @@ ДобавитьОписаниеКомандыКонвертироватьФайлы(Парсер); Аргументы = Парсер.РазобратьКоманду(АргументыКоманднойСтроки); - Лог.Отладка("ТипЗнч(Аргументы)= "+ТипЗнч(Аргументы)); + Лог.Отладка("ТипЗнч(Аргументы)= " +ТипЗнч(Аргументы)); Если Аргументы = Неопределено Тогда ВывестиСправку(); Возврат; @@ -810,7 +810,7 @@ ПоказатьВерсию(); - Лог.Отладка("Передана команда: "+Команда); + Лог.Отладка("Передана команда: " + Команда); СоответствиеПеременных = Новый Соответствие(); СоответствиеПеременных.Вставить("RUNNER_IBNAME", "--ibname"); @@ -860,8 +860,10 @@ КонвертироватьФайлы(ПолныйПуть(Аргументы.ЗначенияПараметров["inputPath"]), Аргументы.ЗначенияПараметров["--ibname"], Аргументы.ЗначенияПараметров["--db-user"], Аргументы.ЗначенияПараметров["--db-pwd"], Аргументы.ЗначенияПараметров["--v8version"]); ИначеЕсли Команда = ВозможныеКоманды().Конфигуратор Тогда - Конфигуратор(Аргументы.ЗначенияПараметров["--ibname"], Аргументы.ЗначенияПараметров["--db-user"], Аргументы.ЗначенияПараметров["--db-pwd"], - Аргументы.ЗначенияПараметров["--storage-name"], Аргументы.ЗначенияПараметров["--storage-user"], Аргументы.ЗначенияПараметров["--storage-pwd"], Аргументы.ЗначенияПараметров["--storage-ver"], + Конфигуратор(Аргументы.ЗначенияПараметров["--ibname"], + Аргументы.ЗначенияПараметров["--db-user"], Аргументы.ЗначенияПараметров["--db-pwd"], + Аргументы.ЗначенияПараметров["--storage-name"], + Аргументы.ЗначенияПараметров["--storage-user"], Аргументы.ЗначенияПараметров["--storage-pwd"], Аргументы.ЗначенияПараметров["--v8version"], Аргументы.ЗначенияПараметров["--dev"]); КонецЕсли; @@ -952,7 +954,7 @@ ///////////////////////////////////////////////////////////////////////////// // РЕАЛИЗАЦИЯ КОМАНД -Функция ПолныйПуть(Знач Путь, Знач КаталогПроекта ="") +Функция ПолныйПуть(Знач Путь, Знач КаталогПроекта = "") Возврат ОбщиеМетоды.ПолныйПуть(Путь, КаталогПроекта); КонецФункции From 403ec779a6573485493fe1c213fa4f45e2d9d953 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 21:33:08 +0300 Subject: [PATCH 52/60] =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D1=81=D1=87=D0=B5?= =?UTF-8?q?=D1=82=20=D0=BF=D0=BE=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sonar-project.properties | 3 +- tasks/coverage.os | 84 +++++++++++----------------------------- tasks/test.os | 32 +++++++++------ 3 files changed, 46 insertions(+), 73 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index 4106f04e..9e1e4082 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -27,7 +27,8 @@ sonar.scm.exclusions.disabled=true # Encoding of the source code. Default is default system encoding sonar.sourceEncoding=UTF-8 -# sonar.coverageReportPaths=coverage/genericCoverage.xml +sonar.coverageReportPaths=./coverage/genericCoverage.xml +# sonar.testExecutionReportPaths=./bdd-exec.xml # адрес сервера SonarQube, по умолчанию текущий компьютер sonar.host.url=https://sonar.openbsl.ru diff --git a/tasks/coverage.os b/tasks/coverage.os index abeb583e..93a4fa30 100644 --- a/tasks/coverage.os +++ b/tasks/coverage.os @@ -1,76 +1,38 @@ #Использовать 1commands -#Использовать asserts #Использовать fs -#Использовать json +#Использовать coverage -КаталогФайловПокрытия = ОбъединитьПути(ТекущийКаталог(), ".", "coverage"); -ФС.ОбеспечитьПустойКаталог(КаталогФайловПокрытия); +ИмяКаталогаФайловПокрытия = "coverage"; +ИмяОбщегоФайлаПокрытия = "stat.json"; +ШаблонИменФайловПокрытия = "*.json"; -ПутьКСтат = ОбъединитьПути(КаталогФайловПокрытия, "stat.json"); +ФС.ОбеспечитьПустойКаталог(ИмяКаталогаФайловПокрытия); +ПутьКСтат = ОбъединитьПути(ИмяКаталогаФайловПокрытия, ИмяОбщегоФайлаПокрытия); +СистемнаяИнформация = Новый СистемнаяИнформация; +ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; Команда = Новый Команда; Команда.УстановитьКоманду("oscript"); +Если НЕ ЭтоWindows Тогда + Команда.ДобавитьПараметр("-encoding=utf-8"); +КонецЕсли; +Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат)); +Команда.ДобавитьПараметр("tasks/test.os coverage"); Команда.ПоказыватьВыводНемедленно(Истина); -// Команда.ДобавитьПараметр("-encoding=utf-8"); -Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат)); -Команда.ДобавитьПараметр("tasks/test.os coverage"); КодВозврата = Команда.Исполнить(); -Сообщить(Команда.ПолучитьВывод()); -// Ожидаем.Что(КодВозврата).Равно(0); -ЗаписьXML = Новый ЗаписьXML; -ЗаписьXML.ОткрытьФайл("coverage/genericCoverage.xml"); -ЗаписьXML.ЗаписатьОбъявлениеXML(); -ЗаписьXML.ЗаписатьНачалоЭлемента("coverage"); -ЗаписьXML.ЗаписатьАтрибут("version", "1"); +Файл_Стат = Новый Файл(ПутьКСтат); -МассивФайлов = НайтиФайлы(КаталогФайловПокрытия, "*.json"); -Для каждого ФайлСтатистики Из МассивФайлов Цикл - ПутьКСтат = ФайлСтатистики.ПолноеИмя; - Файл_Стат = Новый Файл(ПутьКСтат); - Ожидаем.Что(Файл_Стат.Существует(), СтрШаблон("Файл <%1> с результатами покрытия не существует!", Файл_Стат.ПолноеИмя)).ЭтоИстина(); - - ЧтениеТекста = Новый ЧтениеТекста(ПутьКСтат, КодировкаТекста.UTF8); - - СтрокаJSON = ЧтениеТекста.Прочитать(); - ЧтениеТекста.Закрыть(); - - Парсер = Новый ПарсерJSON(); - ДанныеПокрытия = Парсер.ПрочитатьJSON(СтрокаJSON); - - Для Каждого Файл Из ДанныеПокрытия Цикл +ПроцессорГенерации = Новый ГенераторОтчетаПокрытия(); - ДанныеФайла = Файл.Значение; - - ЗаписьXML.ЗаписатьНачалоЭлемента("file"); - ЗаписьXML.ЗаписатьАтрибут("path", ДанныеФайла.Получить("#path")); - - Для Каждого КлючИЗначение Из ДанныеФайла Цикл - - Если КлючИЗначение.Ключ = "#path" Тогда - Продолжить; - КонецЕсли; - - ДанныеПроцедуры = КлючИЗначение.Значение; - Для Каждого ДанныеСтроки Из ДанныеПроцедуры Цикл - - ЗаписьXML.ЗаписатьНачалоЭлемента("lineToCover"); - - ЗаписьXML.ЗаписатьАтрибут("lineNumber", ДанныеСтроки.Ключ); - Покрыто = Число(ДанныеСтроки.Значение.Получить("count")) > 0; - ЗаписьXML.ЗаписатьАтрибут("covered", Формат(Покрыто, "БИ=true; БЛ=false")); - - ЗаписьXML.ЗаписатьКонецЭлемента(); // lineToCover - КонецЦикла - КонецЦикла; - - ЗаписьXML.ЗаписатьКонецЭлемента(); // file - КонецЦикла; +ПроцессорГенерации.ОтносительныеПути() + .РабочийКаталог(ИмяКаталогаФайловПокрытия) + .ИмяФайлаСтатистики(ШаблонИменФайловПокрытия) + .ФайлСтатистики(Файл_Стат.ПолноеИмя) + .GenericCoverage() + .Cobertura() + .Сформировать(); - -КонецЦикла; - -ЗаписьXML.ЗаписатьКонецЭлемента(); // coverage -ЗаписьXML.Закрыть(); +ЗавершитьРаботу(КодВозврата); diff --git a/tasks/test.os b/tasks/test.os index a7beef2f..3edc7b71 100644 --- a/tasks/test.os +++ b/tasks/test.os @@ -1,3 +1,7 @@ +// Прогон фич +// При передаче параметра coverage будет включен подсчет покрытия кода, +// в т.ч. для кода скриптов, запускаемых из фич + #Использовать 1bdd #Использовать fs @@ -11,29 +15,35 @@ УстановитьТекущийКаталог(СохраненныйТекущийКаталог); КонецПроцедуры -КаталогФайловПокрытия = ОбъединитьПути(ТекущийКаталог(), ".", "coverage"); +КаталогФич = ОбъединитьПути(".", "features"); +ПутьОтчетаJUnit = ОбъединитьПути(".", "bdd-exec.xml"); + +ИмяКаталогаФайловПокрытия = "coverage"; + +Файл_КаталогФич = Новый Файл(КаталогФич); +КаталогБиблиотечныхФич = Файл_КаталогФич; + +// Только для отладки Файл_КаталогФич = Новый Файл(ОбъединитьПути(КаталогФич, "ПростыеКоманды.feature")); + +КаталогФайловПокрытия = ОбъединитьПути(ТекущийКаталог(), ".", ИмяКаталогаФайловПокрытия); +ФС.ОбеспечитьПустойКаталог(КаталогФайловПокрытия); ИспользуетсяПокрытиеКода = Ложь; -Для каждого Элемент из АргументыКоманднойСтроки Цикл +Для каждого Элемент Из АргументыКоманднойСтроки Цикл Если Элемент = "coverage" Тогда ИспользуетсяПокрытиеКода = Истина; + Прервать; КонецЕсли; КонецЦикла; - ИсполнительБДД = Новый ИсполнительБДД; -Если ИспользуетсяПокрытиеКода Тогда +Если ИспользуетсяПокрытиеКода Тогда ИсполнительБДД.СохранитьВКонтекст("ПризнакСтатистикиСкриптовOnescript", Новый Файл(КаталогФайловПокрытия)); КонецЕсли; -КаталогФич = ОбъединитьПути(".", "features"); -ПутьОтчетаJUnit = ОбъединитьПути(".", "bdd-exec.xml"); - -Файл_КаталогФич = Новый Файл(КаталогФич); - СохранитьТекущийКаталог(); -РезультатВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич); +РезультатВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, КаталогБиблиотечныхФич); ИтоговыйСтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатВыполнения); Сообщить(ИтоговыйСтатусВыполнения); @@ -46,5 +56,5 @@ КонецЕсли; Если ИтоговыйСтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался Тогда - ВызватьИсключение 1; + ВызватьИсключение "Есть упавшие сценарии!"; КонецЕсли; From ee61b62c3131f51c6a42f8fc145c95feeebefb1e Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 21:41:46 +0300 Subject: [PATCH 53/60] =?UTF-8?q?=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D0=B8=20+?= =?UTF-8?q?=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B8=20=D0=BD=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA=D1=82=20=D0=B4=D0=BB=D1=8F=20=D0=A1?= =?UTF-8?q?=D0=BE=D0=BD=D0=B0=D1=80=D0=9A=D1=83=D0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- sonar-project.properties | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ae71d992..65a92695 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Автоматизация повседневных операций 1С разработчика -[![Статус Порога Качества](https://sonar.openbsl.ru/api/project_badges/measure?project=vanessa-runner&metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=vanessa-runner) +[![Статус Порога Качества](https://sonar.openbsl.ru/api/project_badges/measure?project=vanessa-runner&metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=vanessa-runner) [![Покрытие](https://sonar.openbsl.ru/api/project_badges/measure?project=vanessa-runner&metric=coverage)](https://sonar.openbsl.ru/dashboard?id=vanessa-runner) [![Строки кода](https://sonar.openbsl.ru/api/project_badges/measure?project=vanessa-runner&metric=ncloc)](https://sonar.openbsl.ru/dashboard?id=vanessa-runner) diff --git a/sonar-project.properties b/sonar-project.properties index 9e1e4082..2bf7da1e 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -4,7 +4,12 @@ sonar.projectKey=vanessa-runner sonar.projectName=Vanessa-Runner # версия проекта -sonar.projectVersion=1.9.0 +sonar.projectVersion=1.10.0 + +sonar.links.homepage=https://github.com/vanessa-opensource/vanessa-runner +sonar.links.scm=https://github.com/vanessa-opensource/vanessa-runner +sonar.links.issue=https://github.com/vanessa-opensource/vanessa-runner/issues +# sonar.links.ci= # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. # Since SonarQube 4.2, this property is optional if sonar.modules is set. From 05f00e6d581202b7a2998532ba20dc5f4f1e1817 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 21:50:33 +0300 Subject: [PATCH 54/60] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=80=D0=B5=D0=B2=D1=88=D0=B8=D0=B9=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...265\320\234\320\265\321\202\320\276\320\264\321\213.os" | 7 ------- 1 file changed, 7 deletions(-) diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index f96767c3..8e49d515 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -7,13 +7,6 @@ Перем Лог; -Функция ПодключитьРаннер() Экспорт // TODO удалить метод после рефакторинга - Путь = ОбъединитьПути(КаталогПроекта(), "tools", "runner.os"); - ПодключитьСценарий(Путь, "runner"); - runner = Новый runner(); - Возврат runner; -КонецФункции - // Функция запускает отдельный процесс системы и дожидается его выполнения. // Параметры: // СтрокаВыполнения - Строка - строка для выполнения. From c9464e9d5b9ea5557811698754ac8da8b7dea4bb Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Fri, 1 May 2020 22:04:49 +0300 Subject: [PATCH 55/60] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BD=D0=B5=D0=BA=D0=B0=D0=BD=D0=BE=D0=BD=D0=B8?= =?UTF-8?q?=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B5=20=D0=B8=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20+=20=D0=BF=D1=80=D0=BE=D0=B1=D0=B5=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/step_definitions/opm-build.os | 18 ++--- ...21\202\320\265\320\272\321\201\321\202.os" | 21 +++-- ...20\266\320\265\320\275\320\270\321\217.os" | 29 ++++--- ...20\266\320\265\320\275\320\270\321\217.os" | 40 +++++----- ...20\266\320\265\320\275\320\270\321\217.os" | 38 ++++----- ...21\200\320\260\321\206\320\270\320\270.os" | 6 +- ...260\320\275\320\270\320\265_xUnitFor1C.os" | 6 +- ...20\275\321\201\320\260\320\274\320\270.os" | 42 +++++----- ...20\260\321\202\320\276\321\200\320\260.os" | 18 ++--- ...20\261\320\276\321\202\320\276\320\272.os" | 26 +++---- ...20\272\320\260\320\221\320\260\320\267.os" | 78 +++++++++---------- ...20\265\321\202\320\276\320\264\321\213.os" | 22 +++--- tools/runner.os | 73 +++++++++-------- 13 files changed, 212 insertions(+), 205 deletions(-) diff --git a/features/step_definitions/opm-build.os b/features/step_definitions/opm-build.os index cbcc2c63..72e13fc2 100644 --- a/features/step_definitions/opm-build.os +++ b/features/step_definitions/opm-build.os @@ -1,7 +1,7 @@ // Реализация шагов BDD-фич/сценариев с помощью фреймворка https://github.com/artbear/1bdd #Использовать tempfiles -Перем БДД; //контекст фреймворка 1bdd +Перем БДД; // контекст фреймворка 1bdd // Метод выдает список шагов, реализованных в данном файле-шагов Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт @@ -29,7 +29,7 @@ КонецПроцедуры -//Я собираю пакет во временном каталоге +// Я собираю пакет во временном каталоге Процедура ЯСобираюПакетВоВременномКаталоге() Экспорт ПутьВременногоКаталога = БДД.ПолучитьИзКонтекста("ВременныйКаталог"); СтрокаЗапуска = СтрШаблон("opm build --out %2 %1", ТекущийКаталог(), ПутьВременногоКаталога); @@ -40,7 +40,7 @@ Равно(0); КонецПроцедуры -//я устанавливаю пакет из файла собранного пакета +// я устанавливаю пакет из файла собранного пакета Процедура ЯУстанавливаюПакетИзФайлаСобранногоПакета() Экспорт ЗапоминаюСобранныйФайлПакетаВКонтексте(); ЗапоминаюВерсиюСобранногоПакетаВКонтексте(); @@ -53,7 +53,7 @@ КонецПроцедуры -//я выполняю команду получения версии установленного пакета "oscript src\main.os version" +// я выполняю команду получения версии установленного пакета "oscript src\main.os version" Процедура ЯВыполняюКомандуПолученияВерсииУстановленногоПакета(Знач СтрокаЗапуска) Экспорт УстановленнаяВерсияПакета = ""; КодВозврата = ВыполнитьКоманду(СтрокаЗапуска, УстановленнаяВерсияПакета); @@ -63,7 +63,7 @@ КонецПроцедуры -//версия установленного пакета равна версии пакета из контекста +// версия установленного пакета равна версии пакета из контекста Процедура ВерсияУстановленногоПакетаРавнаВерсииПакетаИзКонтекста() Экспорт УстановленнаяВерсияПакета = БДД.ПолучитьИзКонтекста("УстановленнаяВерсияПакета"); ВерсияСобранногоПакета = БДД.ПолучитьИзКонтекста("ВерсияСобранногоПакета"); @@ -94,8 +94,8 @@ Возврат КодВозврата; КонецФункции -//запоминаю собранный файл пакета в контексте -Процедура ЗапоминаюСобранныйФайлПакетаВКонтексте() //Экспорт +// запоминаю собранный файл пакета в контексте +Процедура ЗапоминаюСобранныйФайлПакетаВКонтексте() // Экспорт ПутьВременногоКаталога = БДД.ПолучитьИзКонтекста("ВременныйКаталог"); МассивФайлов = НайтиФайлы(ПутьВременногоКаталога, "*.ospx", Ложь); Ожидаем.Что(МассивФайлов.Количество(), "Должны были найти только 1 собранный пакет, а не несколько").Равно(1); @@ -103,8 +103,8 @@ БДД.СохранитьВКонтекст("ФайлСобранногоПакета", ФайлПакета); КонецПроцедуры -//я выполняю команду получения версии установленного пакета -Процедура ЗапоминаюВерсиюСобранногоПакетаВКонтексте() //Экспорт +// я выполняю команду получения версии установленного пакета +Процедура ЗапоминаюВерсиюСобранногоПакетаВКонтексте() // Экспорт ФайлПакета = БДД.ПолучитьИзКонтекста("ФайлСобранногоПакета"); РегулярноеВыражение = Новый РегулярноеВыражение("([^-]+-[^-]+|[^-]+)-(\d+\.(\d+\.)*\d+)\.ospx"); Совпадения = РегулярноеВыражение.НайтиСовпадения(ФайлПакета.Имя); diff --git "a/features/step_definitions/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.os" "b/features/step_definitions/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.os" index a5beddbf..9b8a33b4 100644 --- "a/features/step_definitions/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.os" +++ "b/features/step_definitions/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.os" @@ -1,6 +1,6 @@ // Реализация шагов BDD-фич/сценариев с помощью фреймворка https://github.com/artbear/1bdd -Перем БДД; //контекст фреймворка 1bdd +Перем БДД; // контекст фреймворка 1bdd // Метод выдает список шагов, реализованных в данном файле-шагов Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт @@ -18,17 +18,17 @@ // Процедура выполняется перед запуском каждого сценария Процедура ПередЗапускомСценария(Знач Узел) Экспорт - + КонецПроцедуры // Процедура выполняется после завершения каждого сценария Процедура ПослеЗапускаСценария(Знач Узел) Экспорт - + КонецПроцедуры -//я подготовил репозиторий и рабочий каталог проекта +// я подготовил репозиторий и рабочий каталог проекта Процедура ЯПодготовилРепозиторийИРабочийКаталогПроекта() Экспорт - // TODO удалить после реализации БДД.ВыполнитьСценарий + // TODO удалить после реализации БДД.ВыполнитьСценарий БДД.ВыполнитьШаг("Допустим я выключаю отладку лога с именем ""oscript.app.vanessa-runner"""); БДД.ВыполнитьШаг("И Я очищаю параметры команды ""oscript"" в контексте"); @@ -41,9 +41,9 @@ БДД.ВыполнитьШаг("Допустим Я сохраняю каталог проекта в контекст"); КонецПроцедуры -//я подготовил рабочую базу проекта "./build/ib" по умолчанию +// я подготовил рабочую базу проекта "./build/ib" по умолчанию Процедура ЯПодготовилРабочуюБазуПроектаПоУмолчанию(Знач ПутьИБ) Экспорт - // TODO удалить после реализации БДД.ВыполнитьСценарий + // TODO удалить после реализации БДД.ВыполнитьСценарий БДД.ВыполнитьШаг("ЯПодготовилРепозиторийИРабочийКаталогПроекта"); // Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner" // # Допустим я включаю отладку лога с именем "bdd" @@ -61,11 +61,10 @@ // # Тогда Я показываю каталог проекта // # И Я показываю рабочий каталог // # И Я показываю текущий каталог - + Шаг = СтрШаблон("Когда Я выполняю команду ""oscript"" с параметрами ""<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --ibconnection /F%1""", ПутьИБ); БДД.ВыполнитьШаг(Шаг); КонецПроцедуры -//{ Служебные функции -//} - +// { Служебные функции +// } diff --git "a/features/step_definitions/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/features/step_definitions/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index 0a1119f7..95571576 100644 --- "a/features/step_definitions/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/features/step_definitions/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -2,7 +2,7 @@ // Реализация шагов BDD-фич/сценариев с помощью фреймворка https://github.com/artbear/1bdd -Перем БДД; //контекст фреймворка 1bdd +Перем БДД; // контекст фреймворка 1bdd // Метод выдает список шагов, реализованных в данном файле-шагов Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт @@ -34,26 +34,26 @@ БазыДляУдаления = БДД.ПолучитьИзКонтекста("ПутиДляУдаленияПослеТеста"); Парсер = МенеджерСпискаБаз.ПолучитьПарсерБаз(); СписокБаз = Парсер.ПолучитьСписокБаз(); - Для каждого Элемент из БазыДляУдаления Цикл + Для каждого Элемент Из БазыДляУдаления Цикл Попытка СписокБаз.Удалить(Элемент.Ключ); Исключение - Сообщить(Элемент.Ключ + ":"+ОписаниеОшибки()); + Сообщить(Элемент.Ключ + ":" + ОписаниеОшибки()); КонецПопытки; КонецЦикла; КонецПроцедуры -//Я инициализирую репозиторий git в рабочем каталоге +// Я инициализирую репозиторий git в рабочем каталоге Процедура ЯИнициализируюРепозиторийGitВРабочемКаталоге() Экспорт Команда = Новый Команда; Команда.УстановитьСтрокуЗапуска("git init"); Команда.УстановитьРабочийКаталог(БДД.ПолучитьИзКонтекста("РабочийКаталог")); КодВозврата = Команда.Исполнить(); - + // ЗапуститьПриложение("git init" + ?(КакЧистое, " --bare", ""), КаталогРепозитория, Истина, КодВозврата); // КодВозврата = ИнициализироватьТестовоеХранилищеГит(ПутьГитРепозитория); - СообщениеОшибки = СтрШаблон("неверно выполнена команда git init. + СообщениеОшибки = СтрШаблон("неверно выполнена команда git init. |Вывод команды %1", Команда.ПолучитьВывод()); Ожидаем.Что(КодВозврата, СообщениеОшибки).Равно(0); КонецПроцедуры @@ -64,7 +64,7 @@ Возврат Рез; КонецФункции -//В списке баз есть база по пути "<РабочийКаталог>/./build/ib" +// В списке баз есть база по пути "<РабочийКаталог>/./build/ib" Процедура ВСпискеБазЕстьБазаПоПути(Знач СтрокаБазыДанных) Экспорт СтрокаБазыДанных = ЗаменитьШаблоныВПараметрахКоманды(СтрокаБазыДанных); @@ -72,14 +72,14 @@ УстановитьПутьКБазеВБазыДляУдаленияВКонтексте(СтрокаБазыДанных); - Ожидаем.Что(МенеджерСпискаБаз.ПолучитьИмяБазыВСписке("/F"+СтрокаБазыДанных), - "Искали базу в списке баз /F"+СтрокаБазыДанных).Равно(Новый Файл(БДД.ПолучитьИзКонтекста("РабочийКаталог")).ИмяБезРасширения); - + Ожидаем.Что(МенеджерСпискаБаз.ПолучитьИмяБазыВСписке("/F" +СтрокаБазыДанных), + "Искали базу в списке баз /F" +СтрокаБазыДанных).Равно(Новый Файл(БДД.ПолучитьИзКонтекста("РабочийКаталог")).ИмяБезРасширения); + КонецПроцедуры -//В списке баз нахожу базу для проекта "<РабочийКаталог>" +// В списке баз нахожу базу для проекта "<РабочийКаталог>" Процедура Вспискебазнахожубазудляпроекта(СтрокаПутиБазы) Экспорт - + СтрокаПутиБазы = ЗаменитьШаблоныВПараметрахКоманды(СтрокаПутиБазы); УстановитьПутьКБазеВБазыДляУдаленияВКонтексте(СтрокаПутиБазы); @@ -91,7 +91,7 @@ КонецПроцедуры -//{ Служебные функции +// { Служебные функции Процедура УстановитьПутьКБазеВБазыДляУдаленияВКонтексте(СтрокаБазыДанных) БазыДляУдаления = БДД.ПолучитьИзКонтекста("ПутиДляУдаленияПослеТеста"); @@ -99,5 +99,4 @@ БДД.СохранитьВКонтекст("ПутиДляУдаленияПослеТеста", БазыДляУдаления); КонецПроцедуры -//} - +// } diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index 29d33101..4bb5fd95 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -110,15 +110,15 @@ СтрокаПодключения = "/F""" + КаталогБазы + """"; КонецЕсли; - Лог.Отладка("ИнициализироватьБазуДанных СтрокаПодключения:"+СтрокаПодключения); + Лог.Отладка("ИнициализироватьБазуДанных СтрокаПодключения:" + СтрокаПодключения); - Если Лев(СтрокаПодключения,2)="/F" Тогда - КаталогБазы = ОбщиеМетоды.УбратьКавычкиВокругПути(Сред(СтрокаПодключения,3, СтрДлина(СтрокаПодключения)-2)); + Если Лев(СтрокаПодключения, 2) = "/F" Тогда + КаталогБазы = ОбщиеМетоды.УбратьКавычкиВокругПути(Сред(СтрокаПодключения, 3, СтрДлина(СтрокаПодключения) - 2)); Лог.Отладка("Нашли каталог базы для удаления <%1> ", КаталогБазы); ФайлБазы = Новый Файл(КаталогБазы); Если ФайлБазы.Существует() Тогда - Лог.Отладка("Удаляем файл "+ФайлБазы.ПолноеИмя); + Лог.Отладка("Удаляем файл " + ФайлБазы.ПолноеИмя); УдалитьФайлы(ФайлБазы.ПолноеИмя, ПолучитьМаскуВсеФайлы()); КонецЕсли; СоздатьКаталог(ФайлБазы.ПолноеИмя); @@ -134,7 +134,7 @@ Лог.Информация("Создали базу данных для " + СтрокаПодключения); КонецЕсли; - //При первичной инициализации опускаем указание пользователя и пароля, т.к. их еще нет. + // При первичной инициализации опускаем указание пользователя и пароля, т.к. их еще нет. МенеджерКонфигуратора.Инициализация( СтрокаПодключения, "", "", ВерсияПлатформы, КлючРазрешенияЗапуска, @@ -146,24 +146,24 @@ Если Не ПустаяСтрока(ПутьКDT) Тогда ПутьКDT = Новый Файл(ОбъединитьПути(КорневойПутьПроекта, ПутьКDT)).ПолноеИмя; - Лог.Информация("Загружаем dt "+ ПутьКDT); + Лог.Информация("Загружаем dt " + ПутьКDT); Если БазуСоздавали = Истина Тогда Попытка Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); Исключение - Лог.Ошибка("Не удалось загрузить:"+ОписаниеОшибки()); + Лог.Ошибка("Не удалось загрузить:" + ОписаниеОшибки()); КонецПопытки; Иначе Попытка Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); Исключение - Лог.Ошибка("Не удалось загрузить:"+ОписаниеОшибки()); + Лог.Ошибка("Не удалось загрузить:" + ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецЕсли; - //Базу создали, пользователей еще нет. + // Базу создали, пользователей еще нет. Если БазуСоздавали И ПустаяСтрока(ПутьКDT) Тогда Конфигуратор.УстановитьКонтекст(СтрокаПодключения, "", ""); Пользователь = ""; @@ -213,35 +213,35 @@ Новый Файл(КорневойПутьПроекта).ИмяБезРасширения, ДопДанныеСпискаБаз); Исключение - Лог.Ошибка("Добавление базы в список "+ОписаниеОшибки()); + Лог.Ошибка("Добавление базы в список " + ОписаниеОшибки()); КонецПопытки; КонецЕсли; Лог.Информация("Инициализация завершена"); -КонецПроцедуры //ИнициализироватьБазуДанных +КонецПроцедуры // ИнициализироватьБазуДанных -Процедура СоздатьФайловуюБазу(Конфигуратор, Знач КаталогБазы, Знач ПутьКШаблону="", - Знач ИмяБазыВСписке="", Знач КодЯзыка = "") - Лог.Отладка("Создаю файловую базу "+КаталогБазы); +Процедура СоздатьФайловуюБазу(Конфигуратор, Знач КаталогБазы, Знач ПутьКШаблону = "", + Знач ИмяБазыВСписке = "", Знач КодЯзыка = "") + Лог.Отладка("Создаю файловую базу " + КаталогБазы); ФС.ОбеспечитьКаталог(КаталогБазы); УдалитьФайлы(КаталогБазы, "*.*"); ПараметрыЗапуска = Новый Массив; ПараметрыЗапуска.Добавить("CREATEINFOBASE"); - ПараметрыЗапуска.Добавить("File="""+КаталогБазы+""""); + ПараметрыЗапуска.Добавить("File=""" +КаталогБазы + """"); ПараметрыЗапуска.Добавить("/Out""" +Конфигуратор.ФайлИнформации() + """"); Если ЗначениеЗаполнено(КодЯзыка) Тогда - ПараметрыЗапуска.Добавить("/L"+СокрЛП(КодЯзыка)); + ПараметрыЗапуска.Добавить("/L" +СокрЛП(КодЯзыка)); КонецЕсли; Если ИмяБазыВСписке <> "" Тогда - ПараметрыЗапуска.Добавить("/AddInList"""+ ИмяБазыВСписке + """"); + ПараметрыЗапуска.Добавить("/AddInList""" + ИмяБазыВСписке + """"); КонецЕсли; - Если ПутьКШаблону<> "" Тогда - ПараметрыЗапуска.Добавить("/UseTemplate"""+ ПутьКШаблону + """"); + Если ПутьКШаблону <> "" Тогда + ПараметрыЗапуска.Добавить("/UseTemplate""" + ПутьКШаблону + """"); КонецЕсли; СтрокаЗапуска = ""; @@ -254,7 +254,7 @@ Если Найти(Приложение, " ") > 0 Тогда Приложение = ОбщиеМетоды.ОбернутьПутьВКавычки(Приложение); КонецЕсли; - Приложение = Приложение + " "+СтрокаЗапуска; + Приложение = Приложение + " " + СтрокаЗапуска; Попытка ОбщиеМетоды.ЗапуститьПроцесс(Приложение); Исключение diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index 3573413c..e6f6b9f7 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -42,7 +42,7 @@ "Поддержка режима реструктуризации -v1 на сервере"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--v2", "Поддержка режима реструктуризации -v2 на сервере"); - + Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры // ЗарегистрироватьКоманду @@ -70,24 +70,24 @@ РежимыРеструктуризации = Новый Структура; РежимыРеструктуризации.Вставить("Первый", ПараметрыКоманды["--v1"]); РежимыРеструктуризации.Вставить("Второй", ПараметрыКоманды["--v2"]); - + ОбновитьБазуДанных(ПараметрыКоманды["--src"], ПараметрыКоманды["--dt"], - ДанныеПодключения, - ПараметрыКоманды["--uccode"], - ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], + ДанныеПодключения, + ПараметрыКоманды["--uccode"], + ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"], ПараметрыХранилища, ДанныеПодключения.КодЯзыка, РежимыРеструктуризации); - + Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции // ВыполнитьКоманду -Процедура ОбновитьБазуДанных(Знач ПутьКSRC, Знач ПутьКDT, +Процедура ОбновитьБазуДанных(Знач ПутьКSRC, Знач ПутьКDT, Знач ДанныеПодключения, - Знач КлючРазрешенияЗапуска, Знач ВерсияПлатформы, Знач РежимРазработчика, + Знач КлючРазрешенияЗапуска, Знач ВерсияПлатформы, Знач РежимРазработчика, Знач ПараметрыХранилища, - Знач КодЯзыка, РежимыРеструктуризации) - + Знач КодЯзыка, РежимыРеструктуризации) + Перем БазуСоздавали; БазуСоздавали = Ложь; ТекущаяПроцедура = "Запускаем обновление"; @@ -114,16 +114,16 @@ СтрокаПодключения = "/F""" + КаталогБазы + """"; КонецЕсли; - Лог.Отладка("ИнициализироватьБазуДанных СтрокаПодключения:"+СтрокаПодключения); + Лог.Отладка("ИнициализироватьБазуДанных СтрокаПодключения:" + СтрокаПодключения); - Если Лев(СтрокаПодключения,2)="/F" Тогда - КаталогБазы = ОбщиеМетоды.УбратьКавычкиВокругПути(Сред(СтрокаПодключения,3, СтрДлина(СтрокаПодключения)-2)); + Если Лев(СтрокаПодключения, 2) = "/F" Тогда + КаталогБазы = ОбщиеМетоды.УбратьКавычкиВокругПути(Сред(СтрокаПодключения, 3, СтрДлина(СтрокаПодключения) - 2)); ФайлБазы = Новый Файл(КаталогБазы); Ожидаем.Что(ФайлБазы.Существует(), ТекущаяПроцедура + " папка с базой существует").ЭтоИстина(); КонецЕсли; МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - //При первичной инициализации опускаем указание пользователя и пароля, т.к. их еще нет. + // При первичной инициализации опускаем указание пользователя и пароля, т.к. их еще нет. МенеджерКонфигуратора.Инициализация( СтрокаПодключения, "", "", ВерсияПлатформы, КлючРазрешенияЗапуска, @@ -137,12 +137,12 @@ Конфигуратор.УстановитьКонтекст(СтрокаПодключения, "", ""); Если Не ПустаяСтрока(ПутьКDT) Тогда ПутьКDT = Новый Файл(ОбъединитьПути(КорневойПутьПроекта, ПутьКDT)).ПолноеИмя; - Лог.Информация("Загружаем dt "+ ПутьКDT); + Лог.Информация("Загружаем dt " + ПутьКDT); Попытка Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); Конфигуратор.ЗагрузитьИнформационнуюБазу(ПутьКDT); Исключение - Лог.Ошибка("Не удалось загрузить:"+ОписаниеОшибки()); + Лог.Ошибка("Не удалось загрузить:" + ОписаниеОшибки()); КонецПопытки; КонецЕсли; @@ -160,9 +160,9 @@ Если РежимОбновленияХранилища = Истина Тогда Лог.Информация("Обновляем из хранилища"); - + МенеджерКонфигуратора.ЗапуститьОбновлениеИзХранилища( - СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, + СтрокаПодключенияХранилище, ПользовательХранилища, ПарольХранилища, ВерсияХранилища); КонецЕсли; @@ -178,4 +178,4 @@ МенеджерКонфигуратора.Деструктор(); -КонецПроцедуры //ОбновитьБазуДанных +КонецПроцедуры // ОбновитьБазуДанных diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" index 958fa74d..162dad8f 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\240\320\260\320\267\320\261\320\276\321\200\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" @@ -56,9 +56,9 @@ ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; ПутьВходящий = ОбщиеМетоды.ПолныйПуть(ОбщиеМетоды.ПолучитьПараметры(ПараметрыКоманды, "-i", "--in")); - ПутьИсходящий = ОбщиеМетоды.ПолныйПуть(ОбщиеМетоды.ПолучитьПараметры(ПараметрыКоманды,"-o", "--out")); + ПутьИсходящий = ОбщиеМетоды.ПолныйПуть(ОбщиеМетоды.ПолучитьПараметры(ПараметрыКоманды, "-o", "--out")); ВерсияПлатформы = ПараметрыКоманды["--v8version"]; - ФайлВерсии = ОбщиеМетоды.ПолныйПуть(ОбщиеМетоды.ПолучитьПараметры(ПараметрыКоманды,"-v", "--versions")); + ФайлВерсии = ОбщиеМетоды.ПолныйПуть(ОбщиеМетоды.ПолучитьПараметры(ПараметрыКоманды, "-v", "--versions")); СтрокаПодключения = ДанныеПодключения.СтрокаПодключения; ИспользоватьПереименования = ПараметрыКоманды["--userenames"]; @@ -83,7 +83,7 @@ Иначе КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); - СтрокаПодключения = "/F"+КаталогВременнойИБ; + СтрокаПодключения = "/F" +КаталогВременнойИБ; МенеджерКонфигуратора.Инициализация(СтрокаПодключения, , , ВерсияПлатформы, ПараметрыКоманды["--uccode"], ДанныеПодключения.КодЯзыка); МенеджерКонфигуратора.УправлениеКонфигуратором().СоздатьФайловуюБазу(КаталогВременнойИБ); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" index 25153d36..ff4e9c06 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" @@ -198,12 +198,12 @@ Если Не ЗагружатьВстроенныеТесты Тогда Если Новый Файл(ПутьВходящихДанных).ЭтоКаталог() Тогда - КлючЗапуска = """xddRun ЗагрузчикКаталога """""+ПутьВходящихДанных+""""";"; + КлючЗапуска = """xddRun ЗагрузчикКаталога """"" + ПутьВходящихДанных + """"";"; Иначе - КлючЗапуска = """xddRun ЗагрузчикФайла """""+ПутьВходящихДанных+""""";"; + КлючЗапуска = """xddRun ЗагрузчикФайла """"" + ПутьВходящихДанных + """"";"; КонецЕсли; Иначе - КлючЗапуска = """xddRun ЗагрузчикИзПодсистемКонфигурации """""+ПутьВходящихДанных+""""";"; + КлючЗапуска = """xddRun ЗагрузчикИзПодсистемКонфигурации """"" + ПутьВходящихДанных + """"";"; КонецЕсли; Если Не ПустаяСтрока(ТестКлиент) Тогда diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\265\320\260\320\275\321\201\320\260\320\274\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\265\320\260\320\275\321\201\320\260\320\274\320\270.os" index 98895283..a400b890 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\265\320\260\320\275\321\201\320\260\320\274\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\265\320\260\320\275\321\201\320\260\320\274\320\270.os" @@ -95,12 +95,12 @@ Процедура ОпределитьНазначениеКоманды(Знач ИмяКоманды, ТекстОписанияКоманды) - мЭтоУправлениеСеансами = НРег(ИмяКоманды)=ПараметрыСистемы.ВозможныеКоманды().УправлениеСеансами; - мЭтоУправлениеРегламентнымиЗаданиями = НРег(ИмяКоманды)=ПараметрыСистемы.ВозможныеКоманды().УправлениеРегламентнымиЗаданиями; - мЭтоПолучениеИнформацииИБ = НРег(ИмяКоманды)=ПараметрыСистемы.ВозможныеКоманды().ЗапроситьПараметрыБД; + мЭтоУправлениеСеансами = НРег(ИмяКоманды) = ПараметрыСистемы.ВозможныеКоманды().УправлениеСеансами; + мЭтоУправлениеРегламентнымиЗаданиями = НРег(ИмяКоманды) = ПараметрыСистемы.ВозможныеКоманды().УправлениеРегламентнымиЗаданиями; + мЭтоПолучениеИнформацииИБ = НРег(ИмяКоманды) = ПараметрыСистемы.ВозможныеКоманды().ЗапроситьПараметрыБД; Если Не мЭтоПолучениеИнформацииИБ И Не мЭтоУправлениеРегламентнымиЗаданиями И Не мЭтоУправлениеСеансами Тогда - ВызватьИсключение("Непредусмотренное имя команды: " + ИмяКоманды) + ВызватьИсключение("Непредусмотренное имя команды: " + ИмяКоманды); КонецЕсли; Если мЭтоПолучениеИнформацииИБ Тогда @@ -138,7 +138,7 @@ ИначеЕсли мЭтоУправлениеСеансами И мНастройки.Действие = "kill" Тогда УдалитьВсеСеансыИСоединенияБазы(); ИначеЕсли мЭтоУправлениеСеансами И мНастройки.Действие = "closed" Тогда - Возврат ?(ПолучитьСписокСеансов().Количество()=0, + Возврат ?(ПолучитьСписокСеансов().Количество() = 0, МенеджерКомандПриложения.РезультатыКоманд().Успех, МенеджерКомандПриложения.РезультатыКоманд().ОшибкаВремениВыполнения ); @@ -192,7 +192,7 @@ мНастройки.Вставить("Действие", ПараметрыКоманды["Действие"]); - //Получим путь к платформе если вдруг не установленна + // Получим путь к платформе если вдруг не установленна мНастройки.ПутьКлиентаАдминистрирования = ПолучитьПутьКRAC(мНастройки.ПутьКлиентаАдминистрирования, мНастройки.ИспользуемаяВерсияПлатформы); КонецПроцедуры @@ -229,7 +229,7 @@ Успех = Ложь; КонецПопытки; - Если Успех и ПопыткиЧислом <= 0 Тогда + Если Успех И ПопыткиЧислом <= 0 Тогда ПопыткиЧислом = 1; Лог.Предупреждение("Параметр --try не представляет собой число попыток. Он будет проигнорирован"); КонецЕсли; @@ -254,7 +254,7 @@ - Если мНастройки.НеБлокироватьСеансы=Неопределено Или мНастройки.НеБлокироватьСеансы=Ложь Тогда + Если мНастройки.НеБлокироватьСеансы = Неопределено Или мНастройки.НеБлокироватьСеансы = Ложь Тогда УстановитьСтатусБлокировкиСеансов(Истина); КонецЕсли; @@ -275,7 +275,7 @@ КонецЕсли; Сеансы = ПолучитьСписокСеансов(); - Если Сеансы.Количество()=0 Тогда + Если Сеансы.Количество() = 0 Тогда Прервать; КонецЕсли; @@ -329,7 +329,7 @@ мНастройки.СообщениеОблокировке, КлючРазрешенияЗапуска, ВремяБлокировки, - СтрокаОкончанияБлокировки) + " "+мНастройки.АдресСервераАдминистрирования; + СтрокаОкончанияБлокировки) + " " + мНастройки.АдресСервераАдминистрирования; Для Сч = 1 По мНастройки.ЧислоПопыток Цикл Попытка @@ -359,7 +359,7 @@ ИдентификаторБазы, КлючиАвторизацииВБазе, ?(Блокировать, "on", "off") - ) + " "+мНастройки.АдресСервераАдминистрирования; + ) + " " + мНастройки.АдресСервераАдминистрирования; ЗапуститьПроцесс(КомандаВыполнения); @@ -380,7 +380,7 @@ КлючиАвторизацииВКластере(), ИдентификаторБазы, КлючиАвторизацииВБазе - ) + " "+мНастройки.АдресСервераАдминистрирования; + ) + " " + мНастройки.АдресСервераАдминистрирования; Результат = ЗапуститьПроцесс(КомандаВыполнения); @@ -409,7 +409,7 @@ Лог.Информация("Получаю список кластеров"); - КомандаВыполнения = СтрокаЗапускаКлиента() + "cluster list" + " "+мНастройки.АдресСервераАдминистрирования; + КомандаВыполнения = СтрокаЗапускаКлиента() + "cluster list" + " " + мНастройки.АдресСервераАдминистрирования; СписокКластеров = ЗапуститьПроцесс(КомандаВыполнения); @@ -419,10 +419,10 @@ МассивСтрок = СтрРазделить(СписокКластеров, Символы.ПС); Для Каждого Стр Из МассивСтрок Цикл Если СтрНачинаетсяС(Стр, "cluster") Тогда - СтруктураКластера.Вставить("УИДКластера",СокрЛП(Сред(Стр, (СтрНайти(Стр, ": ") + 2),СтрДлина(Стр)))); + СтруктураКластера.Вставить("УИДКластера", СокрЛП(Сред(Стр, (СтрНайти(Стр, ": ") + 2), СтрДлина(Стр)))); КонецЕсли; Если СтрНачинаетсяС(Стр, "name") Тогда - СтруктураКластера.Вставить("ИмяКластера",СокрЛП(Сред(Стр, (СтрНайти(Стр, ": ") + 2),СтрДлина(Стр)))); + СтруктураКластера.Вставить("ИмяКластера", СокрЛП(Сред(Стр, (СтрНайти(Стр, ": ") + 2), СтрДлина(Стр)))); МассивКластеров.Добавить(СтруктураКластера); СтруктураКластера = Новый Структура; @@ -657,7 +657,7 @@ Результат = Новый Массив; Для Каждого ТекПроцесс Из Соединения Цикл Если СеансВФильтре(Новый Структура("Приложение, Пользователь", ТекПроцесс["app-id"], ТекПроцесс["user-name"])) - И ВРег(ТекПроцесс["app-id"])<>"RAS" Тогда + И ВРег(ТекПроцесс["app-id"]) <> "RAS" Тогда Результат.Добавить(ТекПроцесс); КонецЕсли; КонецЦикла; @@ -698,8 +698,8 @@ Для Сч = 1 По ТД.КоличествоСтрок() Цикл Текст = ТД.ПолучитьСтроку(Сч); - Если ПустаяСтрока(Текст) или ТекущийОбъект = Неопределено Тогда - Если ТекущийОбъект <> Неопределено и ТекущийОбъект.Количество() = 0 Тогда + Если ПустаяСтрока(Текст) ИЛИ ТекущийОбъект = Неопределено Тогда + Если ТекущийОбъект <> Неопределено И ТекущийОбъект.Количество() = 0 Тогда Продолжить; // очередная пустая строка подряд КонецЕсли; @@ -716,7 +716,7 @@ КонецЦикла; - Если ТекущийОбъект <> Неопределено и ТекущийОбъект.Количество() = 0 Тогда + Если ТекущийОбъект <> Неопределено И ТекущийОбъект.Количество() = 0 Тогда СписокОбъектов.Удалить(СписокОбъектов.ВГраница()); КонецЕсли; @@ -787,7 +787,7 @@ Процедура РазобратьСоставляющуюФильтра(РезультатСтруктура, Составляющая) ПозРавно = СтрНайти(Составляющая, "="); - Если ПозРавно=0 Тогда + Если ПозРавно = 0 Тогда Возврат; КонецЕсли; @@ -832,7 +832,7 @@ ЗначенияФильтра = мНастройки.ФильтрСеансов[ИмяФильтра]; Для Каждого ТекЗначение Из ЗначенияФильтра Цикл - ВФильтре = ВРег(ТекЗначение)=ВРег(ПроверяемоеЗначение); + ВФильтре = ВРег(ТекЗначение) = ВРег(ПроверяемоеЗначение); Если ВФильтре Тогда Возврат Истина; КонецЕсли; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index 313c31af..a312ce5e 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -194,7 +194,7 @@ Лог.Информация("Обновление расширения завершено."); -КонецПроцедуры //ОбновитьРасширение +КонецПроцедуры // ОбновитьРасширение Функция ПолучитьСписокВсехРасширений() Экспорт ПараметрыЗапуска = УправлениеКонфигуратором.ПолучитьПараметрыЗапуска(); @@ -454,7 +454,7 @@ КонецЦикла; -КонецПроцедуры //ЗапуститьПроцесс1С +КонецПроцедуры // ЗапуститьПроцесс1С Процедура ВывестиНовыеСообщения(ИмяФайлаЛога, КолСтрокЛогаПрочитано) Попытка @@ -498,7 +498,7 @@ КолСтрокЛогаПрочитано = МассивСтрок.Количество(); Возврат Массив; -КонецФункции //ПолучитьНовыеСтрокиЛога +КонецФункции // ПолучитьНовыеСтрокиЛога Процедура ПоказатьЛогПредприятия(Знач ПутьДамп, Знач ПоказыватьДополнительноЛогПредприятия) Если ФС.Существует(ПутьДамп) Тогда @@ -572,7 +572,7 @@ ВызватьИсключение ТекущаяПроцедура; КонецПопытки; -КонецПроцедуры //ЗапуститьОбновлениеИзХранилища +КонецПроцедуры // ЗапуститьОбновлениеИзХранилища // Создать хранилище 1С // @@ -924,7 +924,7 @@ Лог.Информация("Выгрузка в файл завершена."); -КонецПроцедуры //ВыгрузитьКонфигурациюВФайл +КонецПроцедуры // ВыгрузитьКонфигурациюВФайл // Разбор текущей конфигураций на исходники штатной выгрузкой 1С // @@ -1069,7 +1069,7 @@ ВременныеФайлы.УдалитьФайл(КаталогПлоскойВыгрузки); ВременныеФайлы.УдалитьФайл(КаталогВременнойИБ); -КонецПроцедуры //ВыгрузитьКонфигурациюВФайл +КонецПроцедуры // ВыгрузитьКонфигурациюВФайл // Выгружает файл расширения из ИБ // @@ -1101,7 +1101,7 @@ Лог.Информация("Выгрузка в файл завершена."); -КонецПроцедуры //ВыгрузитьКонфигурациюВФайл +КонецПроцедуры // ВыгрузитьКонфигурациюВФайл // Собирает из исходников расширение с указанным имененм // @@ -1160,7 +1160,7 @@ Лог.Информация("Выгрузка в файл завершена."); - КонецПроцедуры //ВыгрузитьИнфобазуВФайл + КонецПроцедуры // ВыгрузитьИнфобазуВФайл Функция ВыполнитьСинтаксическийКонтроль(Знач КоллекцияПроверок, РезультатПроверки, @@ -1243,7 +1243,7 @@ Лог.Информация("Загрузка конфигурации из файлов успешно завершена!"); -КонецПроцедуры //СобратьИзИсходниковТекущуюКонфигурацию +КонецПроцедуры // СобратьИзИсходниковТекущуюКонфигурацию // Загружает файл конфигурации в текущую базу данных. // Параметры: diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" index a9c6f3a9..ce2dfb86 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\222\320\275\320\265\321\210\320\275\320\270\321\205\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\276\320\272.os" @@ -10,7 +10,7 @@ /////////////////////////////////////////////////////////////////////////////////////////////////// // Прикладной интерфейс -//TODO удалить метод УстановитьЛог и получать лог штатным способом +// TODO удалить метод УстановитьЛог и получать лог штатным способом Процедура УстановитьЛог(Знач ПарамЛог) Экспорт Лог = ПарамЛог; КонецПроцедуры @@ -54,7 +54,7 @@ КонецЕсли; КонецЕсли; -КонецПроцедуры //Разобрать +КонецПроцедуры // Разобрать Процедура Собрать(Знач Путь, Знач КаталогВыгрузки, Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы = "", Знач ТолькоКопировать = Ложь, Знач КлючКэша = Неопределено) Экспорт @@ -188,7 +188,7 @@ ДанныеФайла = Новый Структура("Хеш, Время", "", ""); КонецЕсли; Если ДанныеФайла["Хеш"] <> ДанныеФайлаТекущее["Хеш"] Тогда - //Если СокрЛП(Строка(ДанныеФайла)) <> СокрЛП(Строка(ВремяТекущее)) Тогда + // Если СокрЛП(Строка(ДанныеФайла)) <> СокрЛП(Строка(ВремяТекущее)) Тогда Изменен = Истина; Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " время старое:" + Строка(ДанныеФайла["Время"]) + " новое:" + ДанныеФайлаТекущее["Время"]); Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " хеш старый старое:" + Строка(ДанныеФайла["Хеш"]) + " новое:" + ДанныеФайлаТекущее["Хеш"]); @@ -364,10 +364,10 @@ ОбработкуНашли = Ложь; ПапкаИсходников = ""; ПутьКИсходникамОбработки = Файл.ПолноеИмя; - //Нам передали путь к измененному файлу, необходимо определить корневую папку. + // Нам передали путь к измененному файлу, необходимо определить корневую папку. МаксСчетчикЦикла = 5; Если Файл.Расширение = ".png" Или Файл.Расширение = ".ico" Тогда - МаксСчетчикЦикла = 7; //\vanessa\Forms\УправляемаяФорма\Ext\Form\Items\ИмяКартинки\Picture.png + МаксСчетчикЦикла = 7; // \vanessa\Forms\УправляемаяФорма\Ext\Form\Items\ИмяКартинки\Picture.png КонецЕсли; Если НЕ ТолькоКопировать Тогда @@ -500,7 +500,7 @@ КонецПроцедуры Процедура РазобратьКаталог(Знач ОбъектКаталога, Знач КаталогВыгрузки, Знач КаталогКорень, - Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы="") Экспорт + Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы = "") Экспорт ПутьКаталога = ОбъектКаталога.ПолноеИмя; @@ -522,12 +522,12 @@ КонецЕсли; Для Каждого Файл Из Файлы Цикл - Если Лев(Файл.Имя,4) = ".git" Или Врег(Файл.Имя) = Врег("build") Или Врег(Файл.Имя) = Врег("cache.txt") Тогда + Если Лев(Файл.Имя, 4) = ".git" Или Врег(Файл.Имя) = Врег("build") Или Врег(Файл.Имя) = Врег("cache.txt") Тогда Продолжить; КонецЕсли; Если Файл.ЭтоКаталог() Тогда - Если Лев(Файл.Имя,4) = ".git" Тогда + Если Лев(Файл.Имя, 4) = ".git" Тогда Продолжить; КонецЕсли; @@ -570,7 +570,7 @@ Попытка УдалитьФайлы(ФайлНовый.Путь, ФайлНовый.Имя); Исключение - Лог.Ошибка("Ошибка удаления файла "+ ПутьФайлаИсходников + ":" + ОписаниеОшибки()); + Лог.Ошибка("Ошибка удаления файла " + ПутьФайлаИсходников + ":" + ОписаниеОшибки()); КонецПопытки; КонецЕсли; @@ -585,7 +585,7 @@ ОтносительныйПутьКаталогаПоТекущемуКаталогу, ОтносительныйПутьКаталогаВыгрузкиПоТекущемуКаталогу, ТекущийКаталог()); КонецПроцедуры -Функция РазобратьФайлВнешняяОбработка(Знач Файл, Знач КаталогВыгрузки, Знач КаталогКорень = "", Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы="") Экспорт +Функция РазобратьФайлВнешняяОбработка(Знач Файл, Знач КаталогВыгрузки, Знач КаталогКорень = "", Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы = "") Экспорт ПутьФайла = Файл.ПолноеИмя; Лог.Отладка(СтрШаблон("Проверка необходимости выгрузки файла %1 в каталог %2, корень %3", ПутьФайла, КаталогВыгрузки, КаталогКорень)); @@ -602,7 +602,7 @@ КонецФункции -Функция РазобратьФайлВнутрВнешняяОбработка(Знач Файл, Знач КаталогВыгрузки, Знач КаталогКорень, Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы="") +Функция РазобратьФайлВнутрВнешняяОбработка(Знач Файл, Знач КаталогВыгрузки, Знач КаталогКорень, Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы = "") ПутьФайла = Файл.ПолноеИмя; Если Не ТипФайлаПоддерживается(Файл) Тогда @@ -845,7 +845,7 @@ КонецЕсли; Результат = Новый Соответствие(); Результат.Вставить("Хеш", Строка(Провайдер.ХешСуммаСтрокой)); - Результат.Вставить("Время",Строка(Файл.ПолучитьВремяИзменения())); + Результат.Вставить("Время", Строка(Файл.ПолучитьВремяИзменения())); Провайдер.Очистить(); Возврат Результат; @@ -873,7 +873,7 @@ Рез = Сред(Рез, 2); КонецЕсли; Если Найти("\/", Прав(Рез, 1)) > 0 Тогда - Рез = Лев(Рез, СтрДлина(Рез)-1); + Рез = Лев(Рез, СтрДлина(Рез) - 1); КонецЕсли; Возврат Рез; diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\277\320\270\321\201\320\272\320\260\320\221\320\260\320\267.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\277\320\270\321\201\320\272\320\260\320\221\320\260\320\267.os" index 8d9eabf8..6bd73474 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\277\320\270\321\201\320\272\320\260\320\221\320\260\320\267.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\277\320\270\321\201\320\272\320\260\320\221\320\260\320\267.os" @@ -14,13 +14,13 @@ КонецФункции -//Возвращает парсер списка баз, для возможности его модификации. +// Возвращает парсер списка баз, для возможности его модификации. Функция ПолучитьПарсерБаз() Экспорт Перем Парсер; Парсер = Новый ПарсерСпискаБаз; - Если ЗначениеЗаполнено(ФайлПарсераСпискаБаз) Тогда + Если ЗначениеЗаполнено(ФайлПарсераСпискаБаз) Тогда Парсер.УстановитьФайл(ФайлПарсераСпискаБаз); - Иначе + Иначе СистемнаяИнформация = Новый СистемнаяИнформация; ЭтоWindows = Найти(ВРег(СистемнаяИнформация.ВерсияОС), "WINDOWS") > 0; Если НЕ ЭтоWindows Тогда @@ -33,13 +33,13 @@ Возврат Парсер; КонецФункции -//Получает строку названия базы в списке подключения +// Получает строку названия базы в списке подключения // // Параметры: // СтрокаПодключения - Строка - строка подключения к базе // Примеры: /F"d:\path", /S"server1c\base", Connect=File="/tmp/base // ВидЗначения - Строка - ключ из структуры описания базы, по умолчанию Name, можно получить ID для очистки кэша. -// Парсер - ПарсерСпискаБаз - для целей тестирования и ускорения поиска, возможно переопределить. +// Парсер - ПарсерСпискаБаз - для целей тестирования и ускорения поиска, возможно переопределить. // // Возвращаемое значение: // Строка - имя базы в списке @@ -55,17 +55,17 @@ КонецЕсли; СписокБаз = Парсер.ПолучитьСписокБаз(); Исключение - Лог.Отладка("Загрузка файла списка баз "+ОписаниеОшибки()); + Лог.Отладка("Загрузка файла списка баз " + ОписаниеОшибки()); Возврат Результат; КонецПопытки; - Если СписокБаз = Неопределено Тогда + Если СписокБаз = Неопределено Тогда Возврат Результат; КонецЕсли; СтрокаПоиска = СтрокаКоннекта(СтрокаПодключения); - Если ПустаяСтрока(СтрокаПоиска) Тогда + Если ПустаяСтрока(СтрокаПоиска) Тогда Возврат Результат; КонецЕсли; @@ -78,7 +78,7 @@ Результат = СтруктураАдреса[ВидЗначения]; Исключение Лог.Ошибка( - СтрШаблон("Получить описание БД по виду <%1> ошибка <%2>",ВидЗначения, ОписаниеОшибки())); + СтрШаблон("Получить описание БД по виду <%1> ошибка <%2>", ВидЗначения, ОписаниеОшибки())); КонецПопытки; НеобходимВыход = Истина; Прервать; @@ -92,9 +92,9 @@ Возврат Результат; -КонецФункции //ПолучитьИмяБазыВСписке +КонецФункции // ПолучитьИмяБазыВСписке -// Добавляет в список базу новую базу по наименованию проекта, в случаи задвоения к наименованию +// Добавляет в список базу новую базу по наименованию проекта, в случаи задвоения к наименованию // добавляем еще и CRC32 от полного пути проекта. // // Параметры: @@ -102,9 +102,9 @@ // НазваниеПроекта - Строка - Название проекта, в случаи передачи КорневойПутьПроекта, тогда определяет как ИмяБезРасширения // ДопПараметры - Структура - дополнительные параметры в виде структуры,с необязательными значениями // + Version - Строка - версия платформы для запуска, пустое значение или "8.3", "8.3.10" -// + RootPath - Строка - путь к каталогу с проектом, если пустой, тогда берем текущий каталог. +// + RootPath - Строка - путь к каталогу с проектом, если пустой, тогда берем текущий каталог. // + * - дополнительные ключи, которые можно записать в ibases.v8i -// +// Процедура ДобавитьБазуВСписокБаз(Знач СтрокаПодключения, Знач НазваниеПроекта = "", ДопПараметры = Неопределено) Экспорт Перем КорневойПутьПроекта; Лог = ПолучитьЛог(); @@ -122,9 +122,9 @@ Провайдер.Добавить(СтрокаПодключения); МассивНаименований.Добавить(СокрЛП(НазваниеПроекта) + "_" + СокрЛП(Провайдер.ХешСуммаСтрокой)); - //База уже есть в списке, ничего не делаем. + // База уже есть в списке, ничего не делаем. ИмяБазыВСписке = ПолучитьИмяБазыВСписке(СтрокаПодключения); - Если ЗначениеЗаполнено(ИмяБазыВСписке) Тогда + Если ЗначениеЗаполнено(ИмяБазыВСписке) Тогда Лог.Отладка(СтрШаблон("Базу нашли в списке <%1>, пропускаем добавление", ИмяБазыВСписке)); Возврат; КонецЕсли; @@ -134,10 +134,10 @@ Парсер = ПолучитьПарсерБаз(); СписокБаз = Парсер.ПолучитьСписокБаз(); Исключение - Лог.Отладка("ДобавитьБазуВСписокБаз: Загрузка файла списка баз "+ОписаниеОшибки()); + Лог.Отладка("ДобавитьБазуВСписокБаз: Загрузка файла списка баз " + ОписаниеОшибки()); Возврат; КонецПопытки; - + Для Каждого ИмяБазы из МассивНаименований Цикл Если Парсер.НайтиПоИмени(ИмяБазы) = Неопределено Тогда ДобавилиБазу = Истина; @@ -148,34 +148,34 @@ Попытка Парсер.ЗаписатьСписокБаз(СписокБаз); Исключение - Лог.Ошибка(СтрШаблон("Запись нового списка <%1>, ошибка <%2>", ИмяБазы, + Лог.Ошибка(СтрШаблон("Запись нового списка <%1>, ошибка <%2>", ИмяБазы, ОписаниеОшибки())); КонецПопытки; Прервать; КонецЕсли; КонецЦикла; -КонецПроцедуры //ДобавитьБазуВСписокБаз +КонецПроцедуры // ДобавитьБазуВСписокБаз Функция СтрокаКоннекта(Знач СтрокаПодключения) Результат = ""; Если Врег(Лев(СтрокаПодключения, 2)) = "/F" Тогда - //Connect=File="/home/evgensosna/projects/land/build/ib"; - //Кавычки убираем два раза, вдруг кавычки в кавычках. - СтрокаПредварительно = ОбщиеМетоды.УбратьКавычкиВокругПути(Сред(СтрокаПодключения,3, СтрДлина(СтрокаПодключения)-2)); + // Connect=File="/home/evgensosna/projects/land/build/ib"; + // Кавычки убираем два раза, вдруг кавычки в кавычках. + СтрокаПредварительно = ОбщиеМетоды.УбратьКавычкиВокругПути(Сред(СтрокаПодключения, 3, СтрДлина(СтрокаПодключения) - 2)); СтрокаПредварительно = СтрЗаменить(СтрокаПредварительно, "/", ПолучитьРазделительПути()); СтрокаПредварительно = СтрЗаменить(СтрокаПредварительно, "\", ПолучитьРазделительПути()); СтрокаПредварительно = Новый Файл(СтрокаПредварительно).ПолноеИмя; Результат = "Connect=File=""" + СтрокаПредварительно + """"; ИначеЕсли Врег(Лев(СтрокаПодключения, 2)) = "/S" Тогда - //Connect=Srvr="serverssl.service.th.consul";Ref="ssl"; + // Connect=Srvr="serverssl.service.th.consul";Ref="ssl"; РезультатПромежуточный = ОбщиеМетоды.УбратьКавычкиВокругПути( - ОбщиеМетоды.УбратьКавычкиВокругПути(Сред(СтрокаПодключения,3)) + ОбщиеМетоды.УбратьКавычкиВокругПути(Сред(СтрокаПодключения, 3)) ); - Разделитель = ?(Найти(Результат, "/")>0, "/", "\"); - МассивПодключения = + Разделитель = ?(Найти(Результат, "/") > 0, "/", "\"); + МассивПодключения = СтроковыеФункции.РазложитьСтрокуВМассивПодстрок(РезультатПромежуточный, Разделитель); - Если МассивПодключения.Количество() = 2 Тогда + Если МассивПодключения.Количество() = 2 Тогда Результат = СтрШаблон("Connect=Srvr=""%1"";Ref=""%2"";", МассивПодключения[0], МассивПодключения[1]); КонецЕсли; ИначеЕсли Врег(Лев(СтрокаПодключения, 7)) = "Connect" Тогда @@ -184,7 +184,7 @@ Возврат Результат; КонецФункции // СтрокаКоннекта(Знач СтрокаПодключения) -//Возвращает структуру с описанием базы данных +// Возвращает структуру с описанием базы данных // // Параметры: // ДопПараметры - Структура - произвольные данные, которые добавим к результирующей структуре. @@ -193,9 +193,9 @@ // Структура с минимальным описанием базы данных. Функция ОписаниеБазыВСписке(ДопПараметры) Результат = Новый Структура(); - Результат.Вставить("Connect",""); + Результат.Вставить("Connect", ""); // UUID генерим сразу, т.к. структура новая. - Результат.Вставить("ID", Новый УникальныйИдентификатор()); + Результат.Вставить("ID", Новый УникальныйИдентификатор()); Результат.Вставить("OrderInList", ТекущаяУниверсальнаяДатаВМиллисекундах()); Результат.Вставить("Folder", "/"); Результат.Вставить("OrderInTree", ТекущаяУниверсальнаяДатаВМиллисекундах()); @@ -211,7 +211,7 @@ КонецЕсли; Возврат Результат; -КонецФункции //ОписаниеБазыВСписке +КонецФункции // ОписаниеБазыВСписке Функция ПреобразоватьСтрокуПодключения(Знач СтрокаПодключения = Неопределено) Экспорт Лог = ПолучитьЛог(); @@ -219,7 +219,7 @@ КэшПодключенныхБаз = Новый Соответствие; КонецЕсли; - Если НЕ ЗначениеЗаполнено(СтрокаПодключения) Тогда + Если НЕ ЗначениеЗаполнено(СтрокаПодключения) Тогда Возврат СтрокаПодключения; КонецЕсли; @@ -236,19 +236,19 @@ Если ТипЗнч(Результат) = Тип("Булево") Тогда Результат = СтрокаПодключения; КонецЕсли; - + Лог.Отладка(СтрШаблон("Кэш подключения БД %1 преобразовали в %2", СтрокаПодключения, Результат)); - + Возврат Результат; - -КонецФункции //ПреобразоватьСтрокуПодключения -//Возвращает строку с именем в общем списке баз или же исходную, с условием использования кэша. +КонецФункции // ПреобразоватьСтрокуПодключения + +// Возвращает строку с именем в общем списке баз или же исходную, с условием использования кэша. // Параметры: // СтрокаПодключения - Строка - строка подключения к базе, пример /F./build/ib , /Sserveronec/ib -// НеИспользоватьКэш - Булево - +// НеИспользоватьКэш - Булево - // Истина - не использовать кэш платформы для ускорения операций с базой -// Ложь - использовать и попытаться найти данную строку подключения в списке баз данных. +// Ложь - использовать и попытаться найти данную строку подключения в списке баз данных. // По умолчанию Истина. // // Возвращаемое значение: diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index 8e49d515..9d9b0a58 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -112,18 +112,18 @@ ДополнитьСоответствиеСУчетомПриоритета(ЗначенияПараметров, НастройкиИзФайла.Получить(КлючПоУмолчанию)); ПолучитьЛог(); - Для каждого Элемент из ЗначенияПараметров Цикл + Для каждого Элемент Из ЗначенияПараметров Цикл Лог.Отладка("Получен параметр <%1> = <%2>", Элемент.Ключ, Элемент.Значение); КонецЦикла; -КонецПроцедуры //ДополнитьАргументыИзФайлаНастроек +КонецПроцедуры // ДополнитьАргументыИзФайлаНастроек Процедура ДополнитьСоответствиеСУчетомПриоритета(КоллекцияОсновная, Знач КоллекцияДоп) Экспорт Если КоллекцияДоп = Неопределено Тогда Возврат; КонецЕсли; - Для Каждого Элемент из КоллекцияДоп Цикл + Для Каждого Элемент Из КоллекцияДоп Цикл Значение = КоллекцияОсновная.Получить(Элемент.Ключ); Если Значение = Неопределено Тогда КоллекцияОсновная.Вставить(Элемент.Ключ, Элемент.Значение); @@ -137,7 +137,7 @@ КонецЕсли; КонецЕсли; КонецЦикла; -КонецПроцедуры //ДополнитьСоответствиеСУчетомПриоритета +КонецПроцедуры // ДополнитьСоответствиеСУчетомПриоритета Функция ПереопределитьПолныйПутьВСтрокеПодключения(Знач СтрокаПодключения) Экспорт ПолучитьЛог().Отладка(СтрокаПодключения); @@ -239,7 +239,7 @@ Процедура ОбеспечитьПустойКаталог(Знач ФайлОбъектКаталога) Экспорт - //TODO заменить ОбеспечитьПустойКаталог на ФС.ОбеспечитьПустойКаталог + // TODO заменить ОбеспечитьПустойКаталог на ФС.ОбеспечитьПустойКаталог ФС.ОбеспечитьПустойКаталог(ФайлОбъектКаталога.ПолноеИмя); КонецПроцедуры @@ -258,8 +258,8 @@ КонецФункции Функция УбратьКавычкиВокругПути(Знач Путь) Экспорт - //NOTICE: https://github.com/xDrivenDevelopment/precommit1c - //Apache 2.0 + // NOTICE: https://github.com/xDrivenDevelopment/precommit1c + // Apache 2.0 ОбработанныйПуть = Путь; Если Лев(ОбработанныйПуть, 1) = """" Тогда @@ -296,7 +296,7 @@ Возврат ФайлПуть.ПолноеИмя; -КонецФункции //ПолныйПуть() +КонецФункции // ПолныйПуть() Функция КаталогПроекта() Экспорт ФайлИсточника = Новый Файл(ТекущийСценарий().Источник); @@ -320,7 +320,7 @@ КонецФункции -//Получает одно из значений ключа, которое не Неопределено +// Получает одно из значений ключа, которое не Неопределено // Параметры: // Параметры - Соответствие // Ключ1 - Строка - ключ соответствия @@ -332,7 +332,7 @@ Возврат Параметр(Параметры, Ключ1, Параметры[Ключ2]); КонецФункции -//Получает значение ключа или значение по умолчанию, если значение ключа = Неопределено +// Получает значение ключа или значение по умолчанию, если значение ключа = Неопределено // Параметры: // Параметры - Соответствие // Ключ1 - Строка - ключ соответствия @@ -459,4 +459,4 @@ КонецФункции // из-за особенностей загрузки модуль ОбщиеМетоды грузится раньше ПараметрыСистемы, -//поэтому сразу в конце кода модуля использовать ПараметрыСистемы нельзя +// поэтому сразу в конце кода модуля использовать ПараметрыСистемы нельзя diff --git a/tools/runner.os b/tools/runner.os index 9d028c9e..461601d9 100644 --- a/tools/runner.os +++ b/tools/runner.os @@ -1,6 +1,6 @@ -//This Source Code Form is subject to the terms of the Mozilla -//Public License, v. 2.0. If a copy of the MPL was not distributed -//with this file, You can obtain one at http://mozilla.org/MPL/2.0/. +// This Source Code Form is subject to the terms of the Mozilla +// Public License, v. 2.0. If a copy of the MPL was not distributed +// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. #Использовать cmdline #Использовать logos #Использовать tempfiles @@ -30,7 +30,7 @@ Функция ВозможныеКоманды() Если мВозможныеКоманды = Неопределено Тогда - //Работаем в 8.3.8, внешние обработки как исходники и только исходники. + // Работаем в 8.3.8, внешние обработки как исходники и только исходники. мВозможныеКоманды = Новый Структура; мВозможныеКоманды.Вставить("Следить", "watch"); @@ -82,7 +82,8 @@ Процесс.Запустить(); ТекстБазовый = ""; - Счетчик = 0; МаксСчетчикЦикла = 100000; + Счетчик = 0; + МаксСчетчикЦикла = 100000; Пока Истина Цикл Текст = Процесс.ПотокВывода.Прочитать(); @@ -96,7 +97,7 @@ КонецЕсли; ТекстБазовый = ТекстБазовый + Текст; - sleep(ПаузаОжиданияЧтенияБуфера); //Подождем, надеюсь буфер не переполнится. + sleep(ПаузаОжиданияЧтенияБуфера); // Подождем, надеюсь буфер не переполнится. КонецЦикла; @@ -112,7 +113,7 @@ |" + Процесс.ПотокОшибок.Прочитать(); КонецЕсли; -КонецФункции //ЗапуститьПроцесс +КонецФункции // ЗапуститьПроцесс Функция СобратьФайлВнешнейОбработки(Знач ПутьКИсходникам, Знач КаталогВыгрузки, Знач СтрокаПодключения, Знач Пользователь, Знач Пароль, Знач ВерсияПлатформы) @@ -175,7 +176,7 @@ Результат = Ложь; МассивИмен = НайтиФайлы(ПутьКПапке, "*.xml", Ложь); - Для Каждого Элемент из МассивИмен Цикл + Для Каждого Элемент Из МассивИмен Цикл ЧтениеТекста = Новый ЧтениеТекста(Элемент.ПолноеИмя); Содержание = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); @@ -209,7 +210,7 @@ ПараметрыЗапуска.Добавить("/ConvertFiles """ + Каталог + """"); Конфигуратор.ВыполнитьКоманду(ПараметрыЗапуска); -КонецПроцедуры //КонвертироватьФайлы +КонецПроцедуры // КонвертироватьФайлы Процедура ОбновитьЗависимыйКэш(АвтоОбновление, КэшПутей, КэшОбновляемый) @@ -277,7 +278,7 @@ Лог.Информация("Начало epf to src " + Ключ); Кэш = Новый Соответствие; - Для каждого Файл из СписокФайлов Цикл + Для каждого Файл Из СписокФайлов Цикл Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); КонецЦикла; КэшПутей.Вставить(Ключ, Кэш); @@ -288,12 +289,14 @@ КэшОбновляемый = Новый Соответствие(); СписокОбработанных = Новый Соответствие(); - Для каждого Файл из СписокФайлов Цикл + Для каждого Файл Из СписокФайлов Цикл Лог.Отладка("Проверяю на изменение файл <%1>", Файл.ПолноеИмя); - Если Файл.ЭтоКаталог() Тогда Продолжить; КонецЕсли; + Если Файл.ЭтоКаталог() Тогда + Продолжить; КонецЕсли; Изменен = Ложь; - Время = Кэш.Получить(Файл.ПолноеИмя); ВремяТекущее = Файл.ПолучитьВремяИзменения(); + Время = Кэш.Получить(Файл.ПолноеИмя); + ВремяТекущее = Файл.ПолучитьВремяИзменения(); Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда Изменен = Истина; Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " время старое:" + Строка(Время) + " новое:" + ВремяТекущее); @@ -383,7 +386,7 @@ СписокОбработанных.Вставить(Файл.ПолноеИмя, Истина); КонецЦикла; - Для каждого Элемент ИЗ СписокОбработанных Цикл + Для каждого Элемент Из СписокОбработанных Цикл Файл = Новый Файл(Элемент.Ключ); Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); КонецЦикла; @@ -430,7 +433,7 @@ Лог.Информация("Начало src to epf:" + Ключ); Кэш = Новый Соответствие; СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); - Для каждого Файл из СписокФайлов Цикл + Для каждого Файл Из СписокФайлов Цикл Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); КонецЦикла; КэшПутей.Вставить(Ключ, Кэш); @@ -441,21 +444,26 @@ СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); СписокОбработанных = Новый Соответствие(); КэшОбновляемый = Новый Соответствие(); - Для каждого Файл из СписокФайлов Цикл - Если Файл.ЭтоКаталог() Тогда Продолжить; КонецЕсли; + Для каждого Файл Из СписокФайлов Цикл + Если Файл.ЭтоКаталог() Тогда + Продолжить; КонецЕсли; - Время = Кэш.Получить(Файл.ПолноеИмя); Изменен = Ложь; ВремяТекущее = Файл.ПолучитьВремяИзменения(); + Время = Кэш.Получить(Файл.ПолноеИмя); + Изменен = Ложь; + ВремяТекущее = Файл.ПолучитьВремяИзменения(); Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда Изменен = Истина; Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " время старое:" + Строка(Время) + " новое:" + Файл.ПолучитьВремяИзменения()); КонецЕсли; Если Изменен = Истина Тогда - ОбработкуНашли = Ложь; ПапкаИсходников = ""; ПутьКИсходникамОбработки = Файл.ПолноеИмя; - //Нам передали путь к измененному файлу, необходимо определить корневую папку. + ОбработкуНашли = Ложь; + ПапкаИсходников = ""; + ПутьКИсходникамОбработки = Файл.ПолноеИмя; + // Нам передали путь к измененному файлу, необходимо определить корневую папку. МаксСчетчикЦикла = 5; Если Файл.Расширение = ".png" Тогда - МаксСчетчикЦикла = 7; //\vanessa\Forms\УправляемаяФорма\Ext\Form\Items\ИмяКартинки\Picture.png + МаксСчетчикЦикла = 7; // \vanessa\Forms\УправляемаяФорма\Ext\Form\Items\ИмяКартинки\Picture.png КонецЕсли; Для Счетчик = 0 По МаксСчетчикЦикла Цикл @@ -486,7 +494,7 @@ КаталогФайл = Новый Файл(ИмяФайлаОбъекта); СписокСобранныхОбработок = НайтиФайлы(КаталогВыгрузкиОбработки, "" + КаталогФайл.Имя + "*"); - Для каждого ЭлементОбработки из СписокСобранныхОбработок Цикл + Для каждого ЭлементОбработки Из СписокСобранныхОбработок Цикл Кэш.Вставить(ЭлементОбработки.ПолноеИмя, ЭлементОбработки.ПолучитьВремяИзменения()); КэшОбновляемый.Вставить(ЭлементОбработки.ПолноеИмя, ЭлементОбработки.ПолучитьВремяИзменения()); КонецЦикла; @@ -509,7 +517,7 @@ КонецЕсли; КонецЦикла; - Для каждого Элемент ИЗ СписокОбработанных Цикл + Для каждого Элемент Из СписокОбработанных Цикл Файл = Новый Файл(Элемент.Ключ); Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); КонецЦикла; @@ -563,7 +571,7 @@ Лог.Информация("Начало src to cf " + Ключ); Кэш = Новый Соответствие; СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); - Для каждого Файл из СписокФайлов Цикл + Для каждого Файл Из СписокФайлов Цикл Кэш.Вставить(Файл.ПолноеИмя, Файл.ПолучитьВремяИзменения()); КонецЦикла; КэшПутей.Вставить(Ключ, Кэш); @@ -574,13 +582,14 @@ СписокФайлов = НайтиФайлы(КаталогВходящий, ПолучитьМаскуВсеФайлы(), Истина); СписокОбработанных = Новый Соответствие(); - Для каждого Файл из СписокФайлов Цикл + Для каждого Файл Из СписокФайлов Цикл Если Файл.ЭтоКаталог() Тогда Продолжить; КонецЕсли; Изменен = Ложь; - Время = Кэш.Получить(Файл.ПолноеИмя); ВремяТекущее = Файл.ПолучитьВремяИзменения(); + Время = Кэш.Получить(Файл.ПолноеИмя); + ВремяТекущее = Файл.ПолучитьВремяИзменения(); Если Время = Неопределено ИЛИ Время <> ВремяТекущее Тогда Изменен = Истина; Лог.Отладка("Изменен:" + Файл.ПолноеИмя + " время старое:" + Строка(Время) + " новое:" + Файл.ПолучитьВремяИзменения()); @@ -634,13 +643,13 @@ Настройки = ОбщиеМетоды.ПрочитатьФайлJSON(ФайлНастроек); Счетчик = -1; Пока Истина Цикл - Для каждого Элемент ИЗ Настройки Цикл + Для каждого Элемент Из Настройки Цикл Значение = Элемент.Получить("check-source-repo"); Если Значение = Неопределено Тогда Значение = Элемент.Получить("srctoepf"); КонецЕсли; Если Значение <> Неопределено Тогда - СледитьЗаИзменениямиФайловВРепозиторииИсходников(Значение, КэшПутей, Фильтр) + СледитьЗаИзменениямиФайловВРепозиторииИсходников(Значение, КэшПутей, Фильтр); КонецЕсли; Значение = Элемент.Получить("check-work-copy"); @@ -648,7 +657,7 @@ Значение = Элемент.Получить("epftosrc"); КонецЕсли; Если Значение <> Неопределено Тогда - СледитьЗаИзменениямиФайловВРабочемКаталоге(Значение, КэшПутей, Фильтр) + СледитьЗаИзменениямиФайловВРабочемКаталоге(Значение, КэшПутей, Фильтр); КонецЕсли; Значение = Элемент.Получить("check-config-sources"); @@ -891,7 +900,7 @@ Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "inputPath"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--filter", "Фильтр настроек для слежения"); Парсер.ДобавитьКоманду(ОписаниеКоманды); -КонецПроцедуры //ДобавитьОписаниеКомандыСледить +КонецПроцедуры // ДобавитьОписаниеКомандыСледить Процедура ДобавитьОписаниеКомандыКонфигуратор(Знач Парсер) ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().Конфигуратор); @@ -901,13 +910,13 @@ Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev", "Признак dev режима, автоматом используем сервисную базу"); Парсер.ДобавитьКоманду(ОписаниеКоманды); -КонецПроцедуры //ДобавитьОписаниеКомандыКонфигуратор +КонецПроцедуры // ДобавитьОписаниеКомандыКонфигуратор Процедура ДобавитьОписаниеКомандыКонвертироватьФайлы(Знач Парсер) ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().КонвертироватьФайлы); Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "inputPath"); Парсер.ДобавитьКоманду(ОписаниеКоманды); -КонецПроцедуры //ДобавитьОписаниеКомандыСледить +КонецПроцедуры // ДобавитьОписаниеКомандыСледить Процедура Инициализация() From 84f095551b9c3f332b59f44acf55e687c529bd85 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 2 May 2020 13:11:11 +0300 Subject: [PATCH 56/60] =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=20--root=20=D0=BD=D0=B5=20=D0=B2=D1=81=D0=B5=D0=B3?= =?UTF-8?q?=D0=B4=D0=B0=20=D1=83=D1=87=D0=B8=D1=82=D1=8B=D0=B2=D0=B0=D0=BB?= =?UTF-8?q?=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.os | 15 ++++++++------- ...60\320\272\321\201\320\270\321\201\320\260.os" | 10 +++++----- ...34\320\265\321\202\320\276\320\264\321\213.os" | 3 ++- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/main.os b/src/main.os index eab66e41..b1173813 100644 --- a/src/main.os +++ b/src/main.os @@ -62,7 +62,7 @@ Возврат Новый ФиксированноеСоответствие(СоответствиеПеременных); КонецФункции -Функция УстановитьКаталогТекущегоПроекта(Знач Путь) +Функция НайтиКаталогТекущегоПроекта(Знач Путь) Рез = ""; Если ПустаяСтрока(Путь) Тогда Попытка @@ -78,7 +78,7 @@ Рез = Путь; КонецЕсли; Возврат Рез; -КонецФункции // УстановитьКаталогТекущегоПроекта() +КонецФункции // НайтиКаталогТекущегоПроекта() Функция ПолучитьПарсерКоманднойСтроки() @@ -152,7 +152,7 @@ Перем ЗначениеПараметраФайлНастроек, ПутьКФайлуНастроекПоУмолчанию, ФайлОбщихНастроек; Перем ЗначенияПараметровНизкийПриоритет, СоответствиеПеременных, НастройкиИзФайла; - ТекущийКаталогПроекта = УстановитьКаталогТекущегоПроекта( ЗначениеПараметра_КаталогПроекта(ЗначенияПараметров) ); + ТекущийКаталогПроекта = НайтиКаталогТекущегоПроекта( ЗначениеПараметра_КаталогПроекта(ЗначенияПараметров) ); ПараметрыСистемы.КорневойПутьПроекта = ТекущийКаталогПроекта; @@ -184,18 +184,20 @@ ОбщиеМетоды.ДополнитьСоответствиеСУчетомПриоритета(ЗначенияПараметров, ЗначенияПараметровНизкийПриоритет); // на случай переопределения этой настройки повторная установка - УстановитьКаталогТекущегоПроекта(ЗначениеПараметра_КаталогПроекта(ЗначенияПараметров)); + ТекущийКаталогПроекта = НайтиКаталогТекущегоПроекта(ЗначениеПараметра_КаталогПроекта(ЗначенияПараметров)); + + ПараметрыСистемы.КорневойПутьПроекта = ТекущийКаталогПроекта; ДобавитьДанныеПодключения(ЗначенияПараметров); - НастройкиДля1С.ДобавитьШаблоннуюПеременную("workspaceRoot", ЗначениеПараметра_КаталогПроекта(ЗначенияПараметров)); + НастройкиДля1С.ДобавитьШаблоннуюПеременную("workspaceRoot", ТекущийКаталогПроекта); НастройкиДля1С.ДобавитьШаблоннуюПеременную("runnerRoot", ОбщиеМетоды.КаталогПроекта()); НастройкиДля1С.ЗаменитьШаблонныеПеременныеВКоллекции(ЗначенияПараметров); ПроверитьНаличиеСлешаКакПоследнегоСимволаВПараметрах(ЗначенияПараметров); -КонецПроцедуры //ДополнитьЗначенияПараметров +КонецПроцедуры // ДополнитьЗначенияПараметров Процедура ДобавитьДанныеПодключения(ЗначенияПараметров) СтрокаПодключения = ЗначенияПараметров["--ibconnection"]; @@ -232,7 +234,6 @@ КонецЕсли; - ЗначенияПараметров.Вставить("ДанныеПодключения", ДанныеПодключения(ЗначенияПараметров)); КонецПроцедуры diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" index 5773fb2f..11d9a417 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\320\270\320\275\321\202\320\260\320\272\321\201\320\270\321\201\320\260.os" @@ -141,11 +141,11 @@ ДатаНачала = ТекущаяДата(); Попытка ОшибокНет = МенеджерКонфигуратора.ВыполнитьСинтаксическийКонтроль( - КоллекцияПроверок, - ЛогПроверкиИзКонфигуратора, - ПараметрыКоманды["--storage-name"], - ПараметрыКоманды["--storage-user"], - ПараметрыКоманды["--storage-pwd"]); + КоллекцияПроверок, + ЛогПроверкиИзКонфигуратора, + ПараметрыКоманды["--storage-name"], + ПараметрыКоманды["--storage-user"], + ПараметрыКоманды["--storage-pwd"]); Исключение МенеджерКонфигуратора.Деструктор(); diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index 9d9b0a58..92292351 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -140,11 +140,12 @@ КонецПроцедуры // ДополнитьСоответствиеСУчетомПриоритета Функция ПереопределитьПолныйПутьВСтрокеПодключения(Знач СтрокаПодключения) Экспорт - ПолучитьЛог().Отладка(СтрокаПодключения); + ПолучитьЛог().Отладка("СтрокаПодключения %1", СтрокаПодключения); Если Лев(СтрокаПодключения, 2) = "/F" Тогда ПутьКБазе = УбратьКавычкиВокругПути(Сред(СтрокаПодключения, 3)); ПутьКБазе = ПолныйПуть(ПутьКБазе); СтрокаПодключения = "/F""" + ПутьКБазе + """"; + ПолучитьЛог().Отладка("Дополненная строка подключения %1", СтрокаПодключения); КонецЕсли; Возврат СтрокаПодключения; КонецФункции // ПереопределитьПолныйПутьВСтрокеПодключения() From 542249d611ee7d60c6fa052dbcd6e39e94312062 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sat, 2 May 2020 13:11:47 +0300 Subject: [PATCH 57/60] =?UTF-8?q?=D0=BE=D1=87=D0=B8=D1=81=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20oscript?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=BB=D1=83=D0=B6=D0=B5=D0=B1?= =?UTF-8?q?=D0=BD=D0=B3=D0=BE=20=D1=88=D0=B0=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\276\320\275\321\202\320\265\320\272\321\201\321\202.os" | 3 +++ 1 file changed, 3 insertions(+) diff --git "a/features/step_definitions/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.os" "b/features/step_definitions/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.os" index 9b8a33b4..08857509 100644 --- "a/features/step_definitions/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.os" +++ "b/features/step_definitions/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202.os" @@ -64,6 +64,9 @@ Шаг = СтрШаблон("Когда Я выполняю команду ""oscript"" с параметрами ""<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --ibconnection /F%1""", ПутьИБ); БДД.ВыполнитьШаг(Шаг); + + БДД.ВыполнитьШаг(" Я очищаю параметры команды ""oscript"" в контексте"); + КонецПроцедуры // { Служебные функции From a581c123eb2741fb9e37cf8d96ba1c491ce29cbe Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sun, 3 May 2020 11:12:12 +0300 Subject: [PATCH 58/60] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=83=20=D0=9A=D0=BE=D0=BD?= =?UTF-8?q?=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=82=D0=BE=D1=80=20=D0=B2?= =?UTF-8?q?=20runner-old?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/runner.os | 72 ------------------------------------------------- 1 file changed, 72 deletions(-) diff --git a/tools/runner.os b/tools/runner.os index 461601d9..cddcd37a 100644 --- a/tools/runner.os +++ b/tools/runner.os @@ -34,7 +34,6 @@ мВозможныеКоманды = Новый Структура; мВозможныеКоманды.Вставить("Следить", "watch"); - мВозможныеКоманды.Вставить("Конфигуратор", "designer"); мВозможныеКоманды.Вставить("КонвертироватьФайлы", "convertfiles"); @@ -54,7 +53,6 @@ Сообщить("Параметры командной строки:"); Сообщить(" watch - следить за изменением файлов и автоматически компилировать/декомпилировать внешние обработки"); - Сообщить(" designer - запустить конфигуратор для основной базы разработки и для сервисной базы"); Сообщить(" convertfiles inputPath"); Сообщить(" конвертировать файлы в новую или старую версию"); @@ -671,59 +669,6 @@ КонецПроцедуры -Процедура Конфигуратор(Знач СтрокаПодключения, Знач Пользователь = "", Знач Пароль = "", - Знач СтрокаПодключенияХранилище = "", Знач ПользовательХранилища = "", Знач ПарольХранилища = "", - Знач ВерсияПлатформы = "", Знач СервиснаяБаза = Ложь) Экспорт - - Конфигуратор = Новый УправлениеКонфигуратором(); - Логирование.ПолучитьЛог("oscript.lib.v8runner").УстановитьУровень(Лог.Уровень()); - - Если НЕ ПустаяСтрока(ВерсияПлатформы) Тогда - Лог.Отладка("ВерсияПлатформы:" + ВерсияПлатформы); - Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); - КонецЕсли; - - Конфигуратор.УстановитьИмяФайлаСообщенийПлатформы(ПолучитьИмяВременногоФайла("log")); - Если СервиснаяБаза = Истина Тогда - КаталогБазы = ОбъединитьПути(КорневойПутьПроекта, "./build/ibservice"); - СтрокаПодключения = "/F""" + КаталогБазы + """"; - КонецЕсли; - - Если ПустаяСтрока(СтрокаПодключения) Тогда - КаталогБазы = ОбъединитьПути(КорневойПутьПроекта, ?(СервиснаяБаза = Истина, "./build/ibservice", "./build/ib")); - СтрокаПодключения = "/F""" + КаталогБазы + """"; - КонецЕсли; - - Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); - - ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска(); - - Если НЕ ПустаяСтрока(СтрокаПодключенияХранилище) Тогда - ПараметрыЗапуска.Добавить("/ConfigurationRepositoryF """ +СтрокаПодключенияХранилище + """"); - ПараметрыЗапуска.Добавить("/ConfigurationRepositoryN """ +ПользовательХранилища + """"); - - Если Не ПустаяСтрока(ПарольХранилища) Тогда - ПараметрыЗапуска.Добавить("/ConfigurationRepositoryP """ +ПарольХранилища + """"); - КонецЕсли; - КонецЕсли; - - СтрокаЗапуска = ""; - Для Каждого Параметр Из ПараметрыЗапуска Цикл - СтрокаЗапуска = СтрокаЗапуска + " " + Параметр; - КонецЦикла; - - Приложение = ""; - Приложение = Конфигуратор.ПутьКПлатформе1С(); - Если Найти(Приложение, " ") > 0 Тогда - Приложение = ОбщиеМетоды.ОбернутьПутьВКавычки(Приложение); - КонецЕсли; - Приложение = Приложение + " " + СтрокаЗапуска; - Лог.Информация(Приложение); - Процесс = СоздатьПроцесс(Приложение, , Истина); - Процесс.Запустить(); - -КонецПроцедуры - Процедура УстановитьКаталогТекущегоПроекта(Знач Путь = "") КорневойПутьПроекта = ""; Если ПустаяСтрока(Путь) Тогда @@ -797,7 +742,6 @@ ДобавитьОписаниеКомандыПоказатьВерсию(Парсер); ДобавитьОписаниеКомандыСледить(Парсер); - ДобавитьОписаниеКомандыКонфигуратор(Парсер); ДобавитьОписаниеКомандыКонвертироватьФайлы(Парсер); Аргументы = Парсер.РазобратьКоманду(АргументыКоманднойСтроки); @@ -868,12 +812,6 @@ ИначеЕсли Команда = ВозможныеКоманды().КонвертироватьФайлы Тогда КонвертироватьФайлы(ПолныйПуть(Аргументы.ЗначенияПараметров["inputPath"]), Аргументы.ЗначенияПараметров["--ibname"], Аргументы.ЗначенияПараметров["--db-user"], Аргументы.ЗначенияПараметров["--db-pwd"], Аргументы.ЗначенияПараметров["--v8version"]); - ИначеЕсли Команда = ВозможныеКоманды().Конфигуратор Тогда - Конфигуратор(Аргументы.ЗначенияПараметров["--ibname"], - Аргументы.ЗначенияПараметров["--db-user"], Аргументы.ЗначенияПараметров["--db-pwd"], - Аргументы.ЗначенияПараметров["--storage-name"], - Аргументы.ЗначенияПараметров["--storage-user"], Аргументы.ЗначенияПараметров["--storage-pwd"], - Аргументы.ЗначенияПараметров["--v8version"], Аргументы.ЗначенияПараметров["--dev"]); КонецЕсли; Исключение @@ -902,16 +840,6 @@ Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры // ДобавитьОписаниеКомандыСледить -Процедура ДобавитьОписаниеКомандыКонфигуратор(Знач Парсер) - ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().Конфигуратор); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-name", "Строка подключения к хранилищу"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища"); - Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль"); - Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev", "Признак dev режима, автоматом используем сервисную базу"); - - Парсер.ДобавитьКоманду(ОписаниеКоманды); -КонецПроцедуры // ДобавитьОписаниеКомандыКонфигуратор - Процедура ДобавитьОписаниеКомандыКонвертироватьФайлы(Знач Парсер) ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().КонвертироватьФайлы); Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "inputPath"); From 0e2c58a49534760f8cf8ecbe8dfa373d917b49ea Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sun, 3 May 2020 11:14:42 +0300 Subject: [PATCH 59/60] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=80=D0=B5=D0=B2=D1=88=D1=83=D1=8E=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=83=20convertFiles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/runner.os | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/tools/runner.os b/tools/runner.os index cddcd37a..464ee192 100644 --- a/tools/runner.os +++ b/tools/runner.os @@ -35,8 +35,6 @@ мВозможныеКоманды.Вставить("Следить", "watch"); - мВозможныеКоманды.Вставить("КонвертироватьФайлы", "convertfiles"); - мВозможныеКоманды.Вставить("ПоказатьВерсию", "version"); мВозможныеКоманды.Вставить("Помощь", "--help"); КонецЕсли; @@ -53,8 +51,6 @@ Сообщить("Параметры командной строки:"); Сообщить(" watch - следить за изменением файлов и автоматически компилировать/декомпилировать внешние обработки"); - Сообщить(" convertfiles inputPath"); - Сообщить(" конвертировать файлы в новую или старую версию"); Сообщить(" общие для всех параметры"); Сообщить(" --v8version Маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)"); @@ -188,28 +184,6 @@ КонецФункции -Процедура КонвертироватьФайлы(Знач Каталог, Знач СтрокаПодключения = "", Знач Пользователь = "", Знач Пароль = "", Знач ВерсияПлатформы = "") Экспорт - Конфигуратор = Новый УправлениеКонфигуратором(); - - КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); - Конфигуратор.КаталогСборки(КаталогВременнойИБ); - - КаталогРаспаковки = ВременныеФайлы.СоздатьКаталог(); - - Если НЕ ПустаяСтрока(СтрокаПодключения) Тогда - Конфигуратор.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль); - КонецЕсли; - - Если Не ПустаяСтрока(ВерсияПлатформы) Тогда - Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); - КонецЕсли; - - ПараметрыЗапуска = Конфигуратор.ПолучитьПараметрыЗапуска(); - ПараметрыЗапуска.Добавить("/ConvertFiles """ + Каталог + """"); - Конфигуратор.ВыполнитьКоманду(ПараметрыЗапуска); - -КонецПроцедуры // КонвертироватьФайлы - Процедура ОбновитьЗависимыйКэш(АвтоОбновление, КэшПутей, КэшОбновляемый) Если КэшОбновляемый.Количество() = 0 Тогда @@ -742,7 +716,6 @@ ДобавитьОписаниеКомандыПоказатьВерсию(Парсер); ДобавитьОписаниеКомандыСледить(Парсер); - ДобавитьОписаниеКомандыКонвертироватьФайлы(Парсер); Аргументы = Парсер.РазобратьКоманду(АргументыКоманднойСтроки); Лог.Отладка("ТипЗнч(Аргументы)= " +ТипЗнч(Аргументы)); @@ -809,9 +782,6 @@ Если Команда = ВозможныеКоманды().Следить Тогда Следить(Аргументы.ЗначенияПараметров["inputPath"], Аргументы.ЗначенияПараметров["--filter"]); - ИначеЕсли Команда = ВозможныеКоманды().КонвертироватьФайлы Тогда - КонвертироватьФайлы(ПолныйПуть(Аргументы.ЗначенияПараметров["inputPath"]), Аргументы.ЗначенияПараметров["--ibname"], Аргументы.ЗначенияПараметров["--db-user"], Аргументы.ЗначенияПараметров["--db-pwd"], - Аргументы.ЗначенияПараметров["--v8version"]); КонецЕсли; Исключение @@ -840,12 +810,6 @@ Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры // ДобавитьОписаниеКомандыСледить -Процедура ДобавитьОписаниеКомандыКонвертироватьФайлы(Знач Парсер) - ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().КонвертироватьФайлы); - Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "inputPath"); - Парсер.ДобавитьКоманду(ОписаниеКоманды); -КонецПроцедуры // ДобавитьОписаниеКомандыСледить - Процедура Инициализация() СистемнаяИнформация = Новый СистемнаяИнформация; From 680b3013771e20a1a12e323cc1ac109094a62eb4 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sun, 3 May 2020 11:16:50 +0300 Subject: [PATCH 60/60] =?UTF-8?q?=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D0=BD=D0=BE=D0=BC=D0=B5=D1=80=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20=D0=B2=201.10.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" index b1ca0011..be371146 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" @@ -30,7 +30,7 @@ // Функция ВерсияПродукта() Экспорт - Версия = "1.9.0";// присвоение "Версия = " важно для проверки Сонара + Версия = "1.10.0"; // присвоение "Версия = " важно для проверки Сонара Возврат Версия; КонецФункции // ВерсияПродукта()