From 30e5dad1355ec6bd64006429009fd751b62a5157 Mon Sep 17 00:00:00 2001 From: Nikita Ivanchenko Date: Thu, 23 Mar 2023 17:12:01 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=20=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D1=82=D0=B0=D1=86=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\260\321\207\320\265\320\275\320\270\320\271.os" | 2 +- tests/alltests.os | 11 +++++++++++ ...20\226\320\265\320\273\321\203\320\264\321\214.os" | 7 +++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\270\320\277\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\270\320\277\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.os" index 2a16538..b12e6cd 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\270\320\277\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\270\320\277\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.os" @@ -11,6 +11,6 @@ &Аннотация("ТаблицаЗначений") &Пластилин(Значение = "ТаблицаЗначений", Блестяшка = "", Блестяшка = "", Блестяшка = "") -Процедура ПриСозданииОбъекта(Значение = "") +Процедура ПриСозданииОбъекта(Значение = "", Колонки = "", &Повторяемый Индекс = Неопределено) Колонки = Значение; КонецПроцедуры \ No newline at end of file diff --git a/tests/alltests.os b/tests/alltests.os index 466bf91..0497af5 100644 --- a/tests/alltests.os +++ b/tests/alltests.os @@ -110,6 +110,7 @@ Ожидаем.Что(ТестовыйЖелудь.ТЗ.Колонки[0].Имя).Равно("Колонка1"); Ожидаем.Что(ТестовыйЖелудь.ТЗ.Колонки[1].Имя).Равно("Колонка2"); Ожидаем.Что(ТестовыйЖелудь.ТЗ.Колонки[2].Имя).Равно("Колонка3"); + Ожидаем.Что(ТестовыйЖелудь.ТЗ.Индексы.Количество()).Равно(2); Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица).ИмеетТип("ТаблицаЗначений"); Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица.Количество()).Равно(2); @@ -123,4 +124,14 @@ Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица[1].ДеньНедели).Равно("Вторник"); Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица[1].НомерДня).Равно(2); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами).ИмеетТип("ТаблицаЗначений"); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Количество()).Равно(0); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки.Количество()).Равно(3); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки[0].Имя).Равно("Колонка1"); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки[1].Имя).Равно("Колонка2"); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки[2].Имя).Равно("Колонка3"); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Индексы.Количество()).Равно(2); + КонецПроцедуры + +ПроверкаТаблицаЗначений(); \ No newline at end of file diff --git "a/tests/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214.os" "b/tests/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214.os" index 78fb56d..1eb79ad 100644 --- "a/tests/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214.os" +++ "b/tests/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214.os" @@ -7,6 +7,13 @@ &Колонка("Колонка3") Перем ТЗ Экспорт; +&ТаблицаЗначений( + Колонки = "Колонка1, Колонка2", + Индекс = "Колонка1, Колонка2", + Индекс = "Колонка1") +&Колонка("Колонка3") +Перем ТаблицаСИндексами Экспорт; + &ТаблицаЗначений &Колонка("ДеньНедели") &Колонка("НомерДня") From 7638229009209d86a7cb0e40b4874f528f8f5f7c Mon Sep 17 00:00:00 2001 From: Nikita Ivanchenko Date: Mon, 10 Apr 2023 13:08:31 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=98=D0=BD=D0=B4=D0=B5=D0=BA=D1=81=D1=8B?= =?UTF-8?q?=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D1=8B=20=D0=B7=D0=BD?= =?UTF-8?q?=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.MD | 9 +++++++++ packagedef | 4 ++-- ...20\260\321\207\320\265\320\275\320\270\320\271.os" | 11 +++++++---- ...21\205\320\242\320\270\320\277\320\276\320\262.os" | 8 +++++++- tests/alltests.os | 11 +++++++---- ...20\226\320\265\320\273\321\203\320\264\321\214.os" | 5 +++++ 6 files changed, 37 insertions(+), 11 deletions(-) diff --git a/README.MD b/README.MD index c276d17..37b8cc4 100644 --- a/README.MD +++ b/README.MD @@ -76,6 +76,15 @@ ```&ТаблицаЗначений(Колонки)``` - В поле внедряется новая таблица значений. Параметр ```Колонки``` необязательный. Строка, содержащая список имен колонок, разделенных запятой "```,```" +В конструкторе аннотации можно задать индексы таблицы значений: +```bsl +&ТаблицаЗначений( + Колонки = "Колонка1, Колонка2", + Индекс = "Колонка1, Колонка2", + Индекс = "Колонка1" + ) +``` + Альтернативный способ добавления колонки, через аннотацию ```&Колонка("ИмяКолонки")```. Есть возможность добавить строки таблицы через аннотацию ```&СтрокаТаблицы(ИмяКолонки1 = "Значение 1", ИмяКолонки2 = "Еще значение")```. diff --git a/packagedef b/packagedef index 319b1d7..190d00f 100644 --- a/packagedef +++ b/packagedef @@ -5,13 +5,13 @@ Описание.Имя("autumn-annotation-types") - .Версия("1.0.1") + .Версия("1.0.2") .Автор("nikita ivanchenko") .АдресАвтора("https://github.com/Nivanchenko") .Описание("Набор аннотаций ОСени, для удобной инициализации стандартных типов") .ВерсияСреды("1.8.3") .ВключитьФайл("src") .ВключитьФайл("package-loader.os") - .ЗависитОт("autumn", "3.1.1") + .ЗависитОт("autumn", "3.1.3") ; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\270\320\277\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\270\320\277\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.os" index b12e6cd..045ac2d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\270\320\277\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\242\320\270\320\277\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.os" @@ -1,16 +1,19 @@ -Перем Колонки; +Перем КолонкиСтрокой; +Перем Индексы; Процедура ПриРазворачиванииАннотации(ОпределениеАннотации, ПодчиненныеАннотации, ТипВладельцаСвойств, Свойство) Экспорт Аннотация = РаботаСАннотациями.НайтиАннотацию(ПодчиненныеАннотации, "Пластилин"); - Аннотация.Параметры[1].Значение = Колонки; + Аннотация.Параметры[1].Значение = КолонкиСтрокой; Аннотация.Параметры[2].Значение = РаботаСАннотациями.НайтиАннотации(Свойство.Аннотации, "Колонка"); Аннотация.Параметры[3].Значение = РаботаСАннотациями.НайтиАннотации(Свойство.Аннотации, "СтрокаТаблицы"); + Аннотация.Параметры[4].Значение = Индексы; КонецПроцедуры &Аннотация("ТаблицаЗначений") -&Пластилин(Значение = "ТаблицаЗначений", Блестяшка = "", Блестяшка = "", Блестяшка = "") +&Пластилин(Значение = "ТаблицаЗначений", Блестяшка = "", Блестяшка = "", Блестяшка = "", Блестяшка = "") Процедура ПриСозданииОбъекта(Значение = "", Колонки = "", &Повторяемый Индекс = Неопределено) - Колонки = Значение; + КолонкиСтрокой = ?(ЗначениеЗаполнено(Колонки), Колонки, Значение); + Индексы = Индекс; КонецПроцедуры \ No newline at end of file diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\220\320\275\320\275\320\276\321\202\320\270\321\200\320\276\320\262\320\260\320\275\321\213\321\205\320\242\320\270\320\277\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\220\320\275\320\275\320\276\321\202\320\270\321\200\320\276\320\262\320\260\320\275\321\213\321\205\320\242\320\270\320\277\320\276\320\262.os" index ea8e588..300ae2a 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\220\320\275\320\275\320\276\321\202\320\270\321\200\320\276\320\262\320\260\320\275\321\213\321\205\320\242\320\270\320\277\320\276\320\262.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\220\320\242_\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\220\320\275\320\275\320\276\321\202\320\270\321\200\320\276\320\262\320\260\320\275\321\213\321\205\320\242\320\270\320\277\320\276\320\262.os" @@ -77,7 +77,7 @@ &Завязь &Характер("Компанейский") -Функция ТаблицаЗначений(&Блестяшка КолонкиСтрокой, &Блестяшка Колонки, &Блестяшка Строки) Экспорт +Функция ТаблицаЗначений(&Блестяшка КолонкиСтрокой, &Блестяшка Колонки, &Блестяшка Строки, &Блестяшка Индексы) Экспорт ТаблицаЗначений = Новый ТаблицаЗначений(); Если НЕ ПустаяСтрока(КолонкиСтрокой) Тогда @@ -93,6 +93,12 @@ КонецЕсли КонецЦикла; + Если НЕ Индексы = Неопределено Тогда + Для каждого ТекИндекс Из Индексы Цикл + ТаблицаЗначений.Индексы.Добавить(ТекИндекс); + КонецЦикла; + КонецЕсли; + Для Каждого ТекСтрока из Строки Цикл НоваяСтрока = ТаблицаЗначений.Добавить(); Для Каждого ТекПараметр из ТекСтрока.Параметры Цикл diff --git a/tests/alltests.os b/tests/alltests.os index 0497af5..de86ab1 100644 --- a/tests/alltests.os +++ b/tests/alltests.os @@ -110,7 +110,6 @@ Ожидаем.Что(ТестовыйЖелудь.ТЗ.Колонки[0].Имя).Равно("Колонка1"); Ожидаем.Что(ТестовыйЖелудь.ТЗ.Колонки[1].Имя).Равно("Колонка2"); Ожидаем.Что(ТестовыйЖелудь.ТЗ.Колонки[2].Имя).Равно("Колонка3"); - Ожидаем.Что(ТестовыйЖелудь.ТЗ.Индексы.Количество()).Равно(2); Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица).ИмеетТип("ТаблицаЗначений"); Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица.Количество()).Равно(2); @@ -124,6 +123,12 @@ Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица[1].ДеньНедели).Равно("Вторник"); Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица[1].НомерДня).Равно(2); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом).ИмеетТип("ТаблицаЗначений"); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом.Количество()).Равно(0); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом.Колонки.Количество()).Равно(1); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом.Колонки[0].Имя).Равно("Колонка1"); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом.Индексы.Количество()).Равно(1); + Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами).ИмеетТип("ТаблицаЗначений"); Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Количество()).Равно(0); Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки.Количество()).Равно(3); @@ -132,6 +137,4 @@ Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки[2].Имя).Равно("Колонка3"); Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Индексы.Количество()).Равно(2); -КонецПроцедуры - -ПроверкаТаблицаЗначений(); \ No newline at end of file +КонецПроцедуры \ No newline at end of file diff --git "a/tests/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214.os" "b/tests/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214.os" index 1eb79ad..a8bbe26 100644 --- "a/tests/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214.os" +++ "b/tests/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\271\320\226\320\265\320\273\321\203\320\264\321\214.os" @@ -14,6 +14,11 @@ &Колонка("Колонка3") Перем ТаблицаСИндексами Экспорт; +&ТаблицаЗначений( + Колонки = "Колонка1", + Индекс = "Колонка1") +Перем ТаблицаСОднимИндексом Экспорт; + &ТаблицаЗначений &Колонка("ДеньНедели") &Колонка("НомерДня")