From 8117c609ba3a2f7253ffd828a651d52cb4a9943d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D0=B8=D0=B9=20=D0=91=D1=8B=D0=BB=D0=B8=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=D0=BD?= Date: Sat, 14 Dec 2024 18:03:00 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4,=20=D0=B2=D0=BE=D0=B7=D0=B2?= =?UTF-8?q?=D1=80=D0=B0=D1=89=D0=B0=D1=8E=D1=89=D0=B8=D0=B9=20=D1=81=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=BE=D0=BA=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B2=20=D0=BF=D1=80=D0=BE=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=BC=D0=BD=D0=BE=20=D1=87=D0=B8=D1=82=D0=B0?= =?UTF-8?q?=D0=B5=D0=BC=D0=BE=D0=BC=20=D0=B2=D0=B8=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ibcmdrunner.os" | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" index 03fc5f3..68a295d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" @@ -6,6 +6,7 @@ #Использовать asserts #Использовать 1commands #Область ОписаниеПеременных + Перем Лог; Перем ПутьКПриложению; // Строка - путь к приложению ibcmd Перем ЭтоWindows; // Булево - Это ОС Windows @@ -1020,6 +1021,61 @@ КонецФункции +// ОписанияРасширений +// Возвращает список расширений информационной базы в виде массива соответствий. +// +// Возвращаемое значение: +// Массив - Состав полей описания расширения смотри в методе НовыйОписаниеРасширения() +// +Функция ОписанияРасширений() Экспорт + + ОписанияРасширений = Новый Массив; + + СписокРасширений = СписокРасширений(); + + Если Не ЗначениеЗаполнено(СписокРасширений) Тогда + Возврат ОписанияРасширений; + КонецЕсли; + + ИндикаторБлока = "name :"; + + Для Каждого БлокТекста Из СтроковыеФункции.РазложитьСтрокуВМассивПодстрок(СписокРасширений, ИндикаторБлока, Истина, Истина) Цикл + + СтрокиБлока = СтрРазделить(БлокТекста, Символы.ПС); + Если Не ЗначениеЗаполнено(СтрокиБлока) Тогда + Продолжить; + КонецЕсли; + + СтрокаСИменем = СтрокиБлока[0]; + СтрокаСИменем = СтрЗаменить(СтрокаСИменем, """", ""); + СтрокаСИменем = СтрЗаменить(СтрокаСИменем, символы.ВК, ""); + + ОписаниеРасширения = НовыйОписаниеРасширения(); + + ОписаниеРасширения.Вставить("name", СтрокаСИменем); + + Для Каждого СтрокаСвойства Из СтрокиБлока Цикл + + ИмяЗначение = СтрРазделить(СтрокаСвойства, ":", Ложь); + ИмяСвойства = СокрЛП(ИмяЗначение[0]); + + Если ОписаниеРасширения.Получить(ИмяСвойства) = Неопределено Тогда + Продолжить; + КонецЕсли; + ЗначениеСвойства = СтрЗаменить(СокрЛП(ИмяЗначение[1]), """", ""); + + ОписаниеРасширения.Вставить(ИмяСвойства, ЗначениеСвойства); + + КонецЦикла; + + ОписанияРасширений.Добавить(ОписаниеРасширения); + + КонецЦикла; + + Возврат ОписанияРасширений; + +КонецФункции + // #КонецОбласти #КонецОбласти @@ -1329,4 +1385,22 @@ Версия(); КонецПроцедуры +Функция НовыйОписаниеРасширения() + + ОписаниеРасширения = Новый Соответствие(); + + ОписаниеРасширения.Вставить("version", ""); + ОписаниеРасширения.Вставить("active", ""); + ОписаниеРасширения.Вставить("purpose", ""); + ОписаниеРасширения.Вставить("safe-mode", ""); + ОписаниеРасширения.Вставить("security-profile-name", ""); + ОписаниеРасширения.Вставить("unsafe-action-protection", ""); + ОписаниеРасширения.Вставить("used-in-distributed-infobase", ""); + ОписаниеРасширения.Вставить("scope", ""); + ОписаниеРасширения.Вставить("hash-sum", ""); + + Возврат ОписаниеРасширения; + +КонецФункции + #КонецОбласти From 56913841bfed995750dac62a6428c77f720e3ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D0=B8=D0=B9=20=D0=91=D1=8B=D0=BB=D0=B8=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=D0=BD?= Date: Sat, 14 Dec 2024 21:58:46 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/ibcmdrunner-test.os | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/ibcmdrunner-test.os b/tests/ibcmdrunner-test.os index 22dc824..d707250 100644 --- a/tests/ibcmdrunner-test.os +++ b/tests/ibcmdrunner-test.os @@ -58,6 +58,7 @@ СписокТестов.Добавить("ТестДолжен_УдалитьРасширение"); СписокТестов.Добавить("ТестДолжен_ВыгрузитьРасширениеВФайл"); СписокТестов.Добавить("ТестДолжен_ЗагрузитьРасширениеИзФайла"); + СписокТестов.Добавить("ТестДолжен_ПолучитьОписанияРасширений"); КонецЕсли; @@ -598,6 +599,25 @@ КонецПроцедуры +Процедура ТестДолжен_ПолучитьОписанияРасширений() Экспорт + УстановитьПараметрыВременнойИБ(); + ПутьКФайлуВыгрузки = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "8_3_21", "1Cv8.dt"); + УправлениеИБ.СоздатьИБИзФайлаВыгрузки(ПутьКФайлуВыгрузки); + УправлениеИБ.УстановитьПараметрыАвторизацииИБ("admin", "admin"); + + УправлениеИБ.СоздатьРасширение("СуперРасширение", "ср", "ru = ""Расширение для всего""", "add-on"); + + ОписанияРасширений = УправлениеИБ.ОписанияРасширений(); + Утверждения.ПроверитьТип(ОписанияРасширений, "Массив", "Метод должен вернуть массив"); + Утверждения.ПроверитьИстину(ОписанияРасширений.Количество = 1, "Метод должен вернуть массив с одним элементом"); + ОписаниеРасширения = ОписанияРасширений[0]; + Утверждения.ПроверитьТип(ОписаниеРасширения, "Соответствие", "Описание расширения должно быть соответствием"); + Утверждения.ПроверитьИстину(ОписаниеРасширения.Получить("name") = "СуперРасширение", + "В описании расширения должно быть свойство name с именем расширения"); + + УдалитьФайлы(ВременныйКаталог); +КонецПроцедуры + Процедура ТестДолжен_СоздатьПустуюФайловуюБазу() Экспорт // Дано From 4ad5ec3f05c388d785a665c3ad7c276f5db5d404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D0=B8=D0=B9=20=D0=91=D1=8B=D0=BB=D0=B8=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=D0=BD?= Date: Sat, 14 Dec 2024 22:07:08 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/ibcmdrunner-test.os | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ibcmdrunner-test.os b/tests/ibcmdrunner-test.os index d707250..b6367e9 100644 --- a/tests/ibcmdrunner-test.os +++ b/tests/ibcmdrunner-test.os @@ -609,7 +609,7 @@ ОписанияРасширений = УправлениеИБ.ОписанияРасширений(); Утверждения.ПроверитьТип(ОписанияРасширений, "Массив", "Метод должен вернуть массив"); - Утверждения.ПроверитьИстину(ОписанияРасширений.Количество = 1, "Метод должен вернуть массив с одним элементом"); + Утверждения.ПроверитьИстину(ОписанияРасширений.Количество() = 1, "Метод должен вернуть массив с одним элементом"); ОписаниеРасширения = ОписанияРасширений[0]; Утверждения.ПроверитьТип(ОписаниеРасширения, "Соответствие", "Описание расширения должно быть соответствием"); Утверждения.ПроверитьИстину(ОписаниеРасширения.Получить("name") = "СуперРасширение", From d2a5e5c9e0d1c519dd063c30738821987eb843b8 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Sun, 22 Dec 2024 14:28:35 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D1=83=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20=D0=9E=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=D0=A0=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ibcmdrunner.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/ibcmdrunner.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" index 68a295d..193c496 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" @@ -1025,7 +1025,7 @@ // Возвращает список расширений информационной базы в виде массива соответствий. // // Возвращаемое значение: -// Массив - Состав полей описания расширения смотри в методе НовыйОписаниеРасширения() +// Массив - см. НовыйОписаниеРасширения() // Функция ОписанияРасширений() Экспорт From df81a75393077401b3981d88c97ee9cbf80a50b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D0=B8=D0=B9=20=D0=91=D1=8B=D0=BB=D0=B8=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=D0=BD?= Date: Sun, 22 Dec 2024 18:45:12 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=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 --- .../ibcmdrunner.os" | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" index 193c496..9b6537b 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/ibcmdrunner.os" @@ -1049,6 +1049,8 @@ СтрокаСИменем = СтрокиБлока[0]; СтрокаСИменем = СтрЗаменить(СтрокаСИменем, """", ""); СтрокаСИменем = СтрЗаменить(СтрокаСИменем, символы.ВК, ""); + + СтрокиБлока.Удалить(0); ОписаниеРасширения = НовыйОписаниеРасширения(); @@ -1057,13 +1059,14 @@ Для Каждого СтрокаСвойства Из СтрокиБлока Цикл ИмяЗначение = СтрРазделить(СтрокаСвойства, ":", Ложь); - ИмяСвойства = СокрЛП(ИмяЗначение[0]); - Если ОписаниеРасширения.Получить(ИмяСвойства) = Неопределено Тогда - Продолжить; - КонецЕсли; + ИмяСвойства = СокрЛП(ИмяЗначение[0]); ЗначениеСвойства = СтрЗаменить(СокрЛП(ИмяЗначение[1]), """", ""); + Если ТипЗнч(ОписаниеРасширения.Получить(ИмяСвойства)) = Тип("Булево") Тогда + ЗначениеСвойства = СтрокаВБулево(ЗначениеСвойства); + КонецЕсли; + ОписаниеРасширения.Вставить(ИмяСвойства, ЗначениеСвойства); КонецЦикла; @@ -1297,6 +1300,25 @@ Возврат Рез; КонецФункции +// Для строки yes или no возвращает Булево +// Параметры: +// Значение - Строка - значение +// Возвращаемое значение: +// Булево +// +Функция СтрокаВБулево(Значение) + Ожидаем.Что(Значение).ИмеетТип("Строка"); + Результат = Ложь; + Если Значение = "yes" Тогда + Результат = Истина; + ИначеЕсли Значение = "no" Тогда + Результат = Ложь; + Иначе + ВызватьИсключение "Значение для преобразования в тип Булево должно быть только 'yes' или 'no'"; + КонецЕсли; + Возврат Результат; +КонецФункции + // Проверяет, что переданная строка удовлетворяет требованиям для имен 1С // Параметры: // Стр - Строка - проверяемая строка @@ -1390,12 +1412,12 @@ ОписаниеРасширения = Новый Соответствие(); ОписаниеРасширения.Вставить("version", ""); - ОписаниеРасширения.Вставить("active", ""); + ОписаниеРасширения.Вставить("active", Ложь); ОписаниеРасширения.Вставить("purpose", ""); - ОписаниеРасширения.Вставить("safe-mode", ""); + ОписаниеРасширения.Вставить("safe-mode", Ложь); ОписаниеРасширения.Вставить("security-profile-name", ""); - ОписаниеРасширения.Вставить("unsafe-action-protection", ""); - ОписаниеРасширения.Вставить("used-in-distributed-infobase", ""); + ОписаниеРасширения.Вставить("unsafe-action-protection", Ложь); + ОписаниеРасширения.Вставить("used-in-distributed-infobase", Ложь); ОписаниеРасширения.Вставить("scope", ""); ОписаниеРасширения.Вставить("hash-sum", "");