From 6d0d2a9735731f9c9447dcb5b3db529fb0682396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AF=D1=80=D0=BA=D0=B5=D0=B2=D0=B8=D1=87=20=D0=A1=D0=B5?= =?UTF-8?q?=D1=80=D0=B3=D0=B5=D0=B9?= Date: Tue, 17 Mar 2026 18:40:51 +0300 Subject: [PATCH 1/3] feat: use edtfind to locate EDT executables for edtExport --- features/edtExport.feature | 4 +- packagedef | 1 + .../edtExport.os" | 140 ++---------------- 3 files changed, 18 insertions(+), 127 deletions(-) diff --git a/features/edtExport.feature b/features/edtExport.feature index 123c84e..f274f2a 100644 --- a/features/edtExport.feature +++ b/features/edtExport.feature @@ -32,7 +32,7 @@ Когда Я выполняю команду "gitsync" Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git" И Вывод команды "gitsync" не содержит "Внешнее исключение" - И Вывод команды "gitsync" содержит "Версия EDT не передана через параметры, выполняется поиск максимальной установленной версии." + И Вывод команды "gitsync" содержит "Версия EDT не передана через параметры, определена автоматически:" И Код возврата команды "gitsync" равен 0 Сценарий: Cинхронизация с использованием edtExport с явным указанием версии EDT @@ -44,7 +44,7 @@ Когда Я выполняю команду "gitsync" Тогда Вывод команды "gitsync" содержит "Завершена синхронизации с git" И Вывод команды "gitsync" не содержит "Внешнее исключение" - И Вывод команды "gitsync" не содержит "Версия EDT не передана через параметры, выполняется поиск максимальной установленной версии." + И Вывод команды "gitsync" не содержит "Версия EDT не передана через параметры, определена автоматически:" И Код возврата команды "gitsync" равен 0 Сценарий: Cинхронизация хранилища расширения с использованием edtExport без указания базового проекта diff --git a/packagedef b/packagedef index dbd867d..52b55f5 100644 --- a/packagedef +++ b/packagedef @@ -45,6 +45,7 @@ .ВключитьФайл("oscript_modules") .ЗависитОт("strings", "0.4.1") .ЗависитОт("1commands", "1.5.0") + .ЗависитОт("edtfind") .РазработкаЗависитОт("1testrunner", "1.9.2") .РазработкаЗависитОт("1bdd", "1.15.1") .РазработкаЗависитОт("notify", "0.2.0") diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" index f92493c..243ae2a 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" @@ -1,7 +1,7 @@ #Использовать logos #Использовать tempfiles #Использовать fs -#Использовать semver +#Использовать edtfind Перем Лог; Перем Обработчик; @@ -15,6 +15,7 @@ Перем ИмяФайлаДампаКонфигурации; Перем ИмяФайлаИзменений; +Перем Использовать1cedtcli; #Область Интерфейс_плагина @@ -210,38 +211,25 @@ ИсполняемыйФайл = ""; - КаталогEDT = УточнитьВерсиюEDT(); - - Если Лев(ВерсияEDT, 4) >= "2024" Тогда // BSLLS:MagicNumber-off - ИсполняемыйФайл = НайтиEdtcli(КаталогEDT); - Иначе - ИсполняемыйФайл = НайтиRing(); - КонецЕсли; - - Возврат ИсполняемыйФайл; - -КонецФункции - -Функция УточнитьВерсиюEDT() - - ВсеВерсииEDT = НайтиВсеУстановленныеEDT(); + ОбъектПоиска = Новый ПоискEDT(); + РезультатПоиска = ОбъектПоиска.НайтиИнформациюОEDT(ВерсияEDT); Если Не ЗначениеЗаполнено(ВерсияEDT) Тогда - - Лог.Информация("Версия EDT не передана через параметры, выполняется поиск максимальной установленной версии."); - - ВерсияEDT = ВсеВерсииEDT.Версии[0]; - КаталогEDT = ВсеВерсииEDT.КаталогиEDT.Получить(ВсеВерсииEDT.Версии[0]); - Лог.Информация("Версия EDT определена автоматически: %1, каталог %2", ВерсияEDT, КаталогEDT); + Лог.Информация("Версия EDT не передана через параметры, определена автоматически: %1", РезультатПоиска.ВерсияEDT); + ВерсияEDT = РезультатПоиска.ВерсияEDT; + КонецЕсли; - Возврат КаталогEDT; + Лог.Информация("Версия EDT: %1, каталог %2", РезультатПоиска.ВерсияEDT, РезультатПоиска.КаталогEDT); + Использовать1cedtcli = ЗначениеЗаполнено(РезультатПоиска.ПутьКcli); + Если Использовать1cedtcli Тогда + ИсполняемыйФайл = РезультатПоиска.ПутьКcli; Иначе - - Возврат ВсеВерсииEDT.КаталогиEDT.Получить(ВерсияEDT); - + ИсполняемыйФайл = НайтиRing(); КонецЕсли; + Возврат ИсполняемыйФайл; + КонецФункции // Функция - получает команду запуска утилиты ring или 1cedtcli для выполнения конвертации @@ -254,7 +242,7 @@ Команда = Новый Команда; Команда.УстановитьКоманду(ОпределитьИсполняемыйФайл()); - Если Лев(ВерсияEDT, 4) >= "2024" Тогда // BSLLS:MagicNumber-off + Если Использовать1cedtcli Тогда КомандаEdtcli(Команда, КаталогВыгрузки, РабочееПространство, КаталогПроекта); Иначе КомандаRing(Команда, КаталогВыгрузки, РабочееПространство, КаталогПроекта); @@ -334,32 +322,6 @@ КонецФункции -// Функция - выполняет поиск утилиты 1cedtcli и возвращает полный путь к утилите -// -// Возвращаемое значение: -// Строка - полный путь к утилите 1cedtcli -// -Функция НайтиEdtcli(КаталогEDT) Экспорт - - Расширение = ""; - Если ЭтоWindows() Тогда - Расширение = ".exe"; - КонецЕсли; - - ИсполняемыйФайл = СтрШаблон("1cedtcli%1", Расширение); - Лог.Информация("Ищу %1 в %2", ИсполняемыйФайл, КаталогEDT); - НайденныеФайлы = НайтиФайлы(КаталогEDT, ИсполняемыйФайл, Истина); - - Если НайденныеФайлы.Количество() = 0 Тогда - ВызватьИсключение "1cedtcli не найден"; - КонецЕсли; - - Результат = НайденныеФайлы[0].ПолноеИмя; - Лог.Информация("Найден исполняемый файл %1", Результат); - Возврат Результат; - -КонецФункции - Функция ОбернутьВКавычки(Знач Строка) Возврат """" + Строка + """"; КонецФункции @@ -376,78 +338,6 @@ КонецФункции // ЭтоWindows() -// Функция - выполняет поиск всех установленных версий EDT -// -// Возвращаемое значение: -// Структура - отсортированные версии и пути к исполняемым файлам -// -Функция НайтиВсеУстановленныеEDT() - - КаталогиEDT = Новый Соответствие; - ВерсииДляСортировки = Новый Массив; - - КаталогиПоиска = КаталогиУстановкиЕДТПоУмолчанию(); - - РВ = Новый РегулярноеВыражение("1c[-|_]edt[-| ](\d+\.\d+(?:\.\d)*)"); - РВ.ИгнорироватьРегистр = Истина; - - Для Каждого КаталогПоиска Из КаталогиПоиска Цикл - - Лог.Информация("Ищу версии EDT в каталоге ""%1""", КаталогПоиска); - - ФайлыIni = НайтиФайлы(КаталогПоиска, "1cedt.ini", Истина); - Файлы = НайтиФайлы(КаталогПоиска, "1cedt", Истина); - - Для Каждого Файл Из ФайлыIni Цикл - Файлы.Добавить(Файл); - КонецЦикла; - - Для Каждого ТекФайл Из Файлы Цикл - - Лог.Информация("Ищу совпадения регулярного выражения с именем файла ""%1""", ТекФайл.Путь); - КаталогВерсии = Новый Файл(ТекФайл.Путь); - Совпадения = РВ.НайтиСовпадения(КаталогВерсии.Имя); - - Если Совпадения.Количество() = 0 Тогда - Продолжить; - КонецЕсли; - - НайденнаяВерсия = Совпадения[0].Группы[1].Значение; - - КаталогиEDT.Вставить(НайденнаяВерсия, ТекФайл.Путь); - ВерсииДляСортировки.Добавить(НайденнаяВерсия); - - Лог.Информация("Найдена версия EDT ""%1"" в каталоге ""%2"".", НайденнаяВерсия, ТекФайл.Путь); - КонецЦикла; - КонецЦикла; - - Версии.СортироватьВерсии(ВерсииДляСортировки, "УБЫВ"); - - Если ВерсииДляСортировки.Количество() = 0 Тогда - ВызватьИсключение "Не найдено ни одной установленной версии EDT"; - КонецЕсли; - - Возврат Новый Структура("Версии, КаталогиEDT", ВерсииДляСортировки, КаталогиEDT); - -КонецФункции - -// скопировано из yard, код Abramov Dmitry -Функция КаталогиУстановкиЕДТПоУмолчанию() - - СистемнаяИнформация = Новый СистемнаяИнформация(); - Массив = Новый Массив(); - Если ЭтоWindows() Тогда - Массив.Добавить(ОбъединитьПути(СистемнаяИнформация.ПолучитьПутьПапки(СпециальнаяПапка.ЛокальныйКаталогДанныхПриложений), "1C\1cedtstart\installations")); - Массив.Добавить("C:\Program Files\1C\1CE\components"); - Иначе - Массив.Добавить("~/.local/share/1C/1cedtstart/installations"); - Массив.Добавить("/opt/1C/1CE/components"); - КонецЕсли; - - Возврат Массив; - -КонецФункции - Процедура ДополнитьИнкрементнуюВыгрузкуПроекта(Конфигуратор, КаталогВыгрузки) ПутьКФайлуДополнительнойВыгрузки = ВременныеФайлы.НовоеИмяФайла(); From 15876d2dd630e00f30a8a18cdb463ef60ea1e4a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AF=D1=80=D0=BA=D0=B5=D0=B2=D0=B8=D1=87=20=D0=A1=D0=B5?= =?UTF-8?q?=D1=80=D0=B3=D0=B5=D0=B9?= Date: Thu, 26 Mar 2026 15:29:01 +0300 Subject: [PATCH 2/3] fix: add explicit 1commands dependency for BDD step definitions --- features/step_definitions/shared.os | 1 + packagedef | 1 + 2 files changed, 2 insertions(+) diff --git a/features/step_definitions/shared.os b/features/step_definitions/shared.os index 2a3b285..8778257 100644 --- a/features/step_definitions/shared.os +++ b/features/step_definitions/shared.os @@ -4,6 +4,7 @@ // BSLLS:MissingReturnedValueDescription-off // Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd +#Использовать 1commands #Использовать gitrunner #Использовать asserts #Использовать tempfiles diff --git a/packagedef b/packagedef index 52b55f5..a0d8734 100644 --- a/packagedef +++ b/packagedef @@ -48,6 +48,7 @@ .ЗависитОт("edtfind") .РазработкаЗависитОт("1testrunner", "1.9.2") .РазработкаЗависитОт("1bdd", "1.15.1") + .РазработкаЗависитОт("1commands") .РазработкаЗависитОт("notify", "0.2.0") .РазработкаЗависитОт("coverage", "0.7.0") .ОпределяетКласс("Плагин_ИнкрементальнаяВыгрузка", "src/Классы/increment.os") From 30d7bc11b5ce3d5f66f388fccae63e7e05ec711b Mon Sep 17 00:00:00 2001 From: Dima Ovcharenko Date: Fri, 27 Mar 2026 15:27:36 +0300 Subject: [PATCH 3/3] bump version, fix deps --- packagedef | 3 +-- .../edtExport.os" | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packagedef b/packagedef index a0d8734..70250e1 100644 --- a/packagedef +++ b/packagedef @@ -45,10 +45,9 @@ .ВключитьФайл("oscript_modules") .ЗависитОт("strings", "0.4.1") .ЗависитОт("1commands", "1.5.0") - .ЗависитОт("edtfind") + .ЗависитОт("edtfind", "2.0.2") .РазработкаЗависитОт("1testrunner", "1.9.2") .РазработкаЗависитОт("1bdd", "1.15.1") - .РазработкаЗависитОт("1commands") .РазработкаЗависитОт("notify", "0.2.0") .РазработкаЗависитОт("coverage", "0.7.0") .ОпределяетКласс("Плагин_ИнкрементальнаяВыгрузка", "src/Классы/increment.os") diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" index 243ae2a..9c92fb8 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/edtExport.os" @@ -25,7 +25,7 @@ // Строка - текущая версия плагина // Функция Версия() Экспорт - Возврат "2.0.0"; + Возврат "2.0.1"; КонецФункции // Возвращает приоритет выполнения плагина