Skip to content

Commit

Permalink
Merge pull request #2 from autumn-library/feature/index-of-vt
Browse files Browse the repository at this point in the history
Feature/index of vt
  • Loading branch information
Nivanchenko authored Apr 10, 2023
2 parents 9d35fc8 + 7638229 commit 7e383c3
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 9 deletions.
9 changes: 9 additions & 0 deletions README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,15 @@

```&ТаблицаЗначений(Колонки)``` - В поле внедряется новая таблица значений. Параметр ```Колонки``` необязательный. Строка, содержащая список имен колонок, разделенных запятой "```,```"

В конструкторе аннотации можно задать индексы таблицы значений:
```bsl
&ТаблицаЗначений(
Колонки = "Колонка1, Колонка2",
Индекс = "Колонка1, Колонка2",
Индекс = "Колонка1"
)
```

Альтернативный способ добавления колонки, через аннотацию ```&Колонка("ИмяКолонки")```.

Есть возможность добавить строки таблицы через аннотацию ```&СтрокаТаблицы(ИмяКолонки1 = "Значение 1", ИмяКолонки2 = "Еще значение")```.
Expand Down
4 changes: 2 additions & 2 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -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")
;

Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
Перем Колонки;
Перем КолонкиСтрокой;
Перем Индексы;

Процедура ПриРазворачиванииАннотации(ОпределениеАннотации, ПодчиненныеАннотации, ТипВладельцаСвойств, Свойство) Экспорт

Аннотация = РаботаСАннотациями.НайтиАннотацию(ПодчиненныеАннотации, "Пластилин");
Аннотация.Параметры[1].Значение = Колонки;
Аннотация.Параметры[1].Значение = КолонкиСтрокой;
Аннотация.Параметры[2].Значение = РаботаСАннотациями.НайтиАннотации(Свойство.Аннотации, "Колонка");
Аннотация.Параметры[3].Значение = РаботаСАннотациями.НайтиАннотации(Свойство.Аннотации, "СтрокаТаблицы");
Аннотация.Параметры[4].Значение = Индексы;

КонецПроцедуры

&Аннотация("ТаблицаЗначений")
&Пластилин(Значение = "ТаблицаЗначений", Блестяшка = "", Блестяшка = "", Блестяшка = "")
Процедура ПриСозданииОбъекта(Значение = "")
Колонки = Значение;
&Пластилин(Значение = "ТаблицаЗначений", Блестяшка = "", Блестяшка = "", Блестяшка = "", Блестяшка = "")
Процедура ПриСозданииОбъекта(Значение = "", Колонки = "", &Повторяемый Индекс = Неопределено)
КолонкиСтрокой = ?(ЗначениеЗаполнено(Колонки), Колонки, Значение);
Индексы = Индекс;
КонецПроцедуры
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@

&Завязь
&Характер("Компанейский")
Функция ТаблицаЗначений(&Блестяшка КолонкиСтрокой, &Блестяшка Колонки, &Блестяшка Строки) Экспорт
Функция ТаблицаЗначений(&Блестяшка КолонкиСтрокой, &Блестяшка Колонки, &Блестяшка Строки, &Блестяшка Индексы) Экспорт
ТаблицаЗначений = Новый ТаблицаЗначений();

Если НЕ ПустаяСтрока(КолонкиСтрокой) Тогда
Expand All @@ -93,6 +93,12 @@
КонецЕсли
КонецЦикла;

Если НЕ Индексы = Неопределено Тогда
Для каждого ТекИндекс Из Индексы Цикл
ТаблицаЗначений.Индексы.Добавить(ТекИндекс);
КонецЦикла;
КонецЕсли;

Для Каждого ТекСтрока из Строки Цикл
НоваяСтрока = ТаблицаЗначений.Добавить();
Для Каждого ТекПараметр из ТекСтрока.Параметры Цикл
Expand Down
16 changes: 15 additions & 1 deletion tests/alltests.os
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,18 @@
Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица[1].ДеньНедели).Равно("Вторник");
Ожидаем.Что(ТестовыйЖелудь.ЗаполненнаяТаблица[1].НомерДня).Равно(2);

КонецПроцедуры
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом).ИмеетТип("ТаблицаЗначений");
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом.Количество()).Равно(0);
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом.Колонки.Количество()).Равно(1);
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом.Колонки[0].Имя).Равно("Колонка1");
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСОднимИндексом.Индексы.Количество()).Равно(1);

Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами).ИмеетТип("ТаблицаЗначений");
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Количество()).Равно(0);
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки.Количество()).Равно(3);
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки[0].Имя).Равно("Колонка1");
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки[1].Имя).Равно("Колонка2");
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Колонки[2].Имя).Равно("Колонка3");
Ожидаем.Что(ТестовыйЖелудь.ТаблицаСИндексами.Индексы.Количество()).Равно(2);

КонецПроцедуры
12 changes: 12 additions & 0 deletions tests/Классы/ТестовыйЖелудь.os
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@
&Колонка("Колонка3")
Перем ТЗ Экспорт;

&ТаблицаЗначений(
Колонки = "Колонка1, Колонка2",
Индекс = "Колонка1, Колонка2",
Индекс = "Колонка1")
&Колонка("Колонка3")
Перем ТаблицаСИндексами Экспорт;

&ТаблицаЗначений(
Колонки = "Колонка1",
Индекс = "Колонка1")
Перем ТаблицаСОднимИндексом Экспорт;

&ТаблицаЗначений
&Колонка("ДеньНедели")
&Колонка("НомерДня")
Expand Down

0 comments on commit 7e383c3

Please sign in to comment.