-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
212 additions
and
0 deletions.
There are no files selected for viewing
202 changes: 202 additions & 0 deletions
202
exts/yaxunit/src/CommonModules/ЮТКонструкторКоллекций/Module.bsl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,202 @@ | ||
//©///////////////////////////////////////////////////////////////////////////©// | ||
// | ||
// Copyright 2021-2022 BIA-Technologies Limited Liability Company | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// | ||
//©///////////////////////////////////////////////////////////////////////////©// | ||
|
||
///////////////////////////////////////////////////////////////////////////////// | ||
// Экспортные процедуры и функции для служебного использования внутри подсистемы | ||
///////////////////////////////////////////////////////////////////////////////// | ||
|
||
#Область СлужебныйПрограммныйИнтерфейс | ||
|
||
// Варианты. | ||
// | ||
// Параметры: | ||
// Реквизиты - Строка - Реквизиты | ||
// | ||
// Возвращаемое значение: | ||
// ОбщийМодуль | ||
Функция Инициализировать(Реквизиты) Экспорт | ||
|
||
ОписаниеКоллекции = ОписаниеКоллекции(); | ||
|
||
Ключи = Новый Структура(Реквизиты); | ||
|
||
Для Каждого Элемент Из Ключи Цикл | ||
ДобавитьКолонку(Элемент.Ключ); | ||
КонецЦикла; | ||
|
||
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), ОписаниеКоллекции); | ||
|
||
Возврат ЮТКонструкторКоллекции; | ||
|
||
КонецФункции | ||
|
||
Функция ДобавитьКолонку(Имя, ТипЗначения = Неопределено, ЗначениеПоУмолчанию = Неопределено) Экспорт | ||
|
||
ОписаниеКоллекции = ОписаниеКоллекции(); | ||
|
||
ОписаниеКолонки = ОписаниеКолонки(Имя, ТипЗначения, ЗначениеПоУмолчанию); | ||
|
||
ОписаниеКоллекции.Колонки.Добавить(ОписаниеКолонки); | ||
ЮТОбщий.Инкремент(ОписаниеКоллекции.КоличествоРеквизитов); | ||
|
||
Возврат ЮТКонструкторКоллекции; | ||
|
||
КонецФункции | ||
|
||
Функция Добавить(Значение, | ||
Значение2 = Неопределено, | ||
Значение3 = Неопределено, | ||
Значение4 = Неопределено, | ||
Значение5 = Неопределено, | ||
Значение6 = Неопределено, | ||
Значение7 = Неопределено, | ||
Значение8 = Неопределено, | ||
Значение9 = Неопределено, | ||
Значение10 = Неопределено) Экспорт | ||
|
||
ОписаниеКоллекции = ОписаниеКоллекции(); | ||
|
||
Запись = Новый Структура(); | ||
Значения = Новый Массив(); | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 0 Тогда | ||
Значения.Добавить(Значение); | ||
КонецЕсли; | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 1 Тогда | ||
Значения.Добавить(Значение2); | ||
КонецЕсли; | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 2 Тогда | ||
Значения.Добавить(Значение3); | ||
КонецЕсли; | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 3 Тогда | ||
Значения.Добавить(Значение4); | ||
КонецЕсли; | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 4 Тогда | ||
Значения.Добавить(Значение5); | ||
КонецЕсли; | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 5 Тогда | ||
Значения.Добавить(Значение6); | ||
КонецЕсли; | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 6 Тогда | ||
Значения.Добавить(Значение7); | ||
КонецЕсли; | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 7 Тогда | ||
Значения.Добавить(Значение8); | ||
КонецЕсли; | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 8 Тогда | ||
Значения.Добавить(Значение9); | ||
КонецЕсли; | ||
|
||
Если ОписаниеКоллекции.КоличествоРеквизитов > 9 Тогда | ||
Значения.Добавить(Значение10); | ||
КонецЕсли; | ||
|
||
Для Инд = 0 По ОписаниеКоллекции.Колонки.ВГраница() Цикл | ||
|
||
ОписаниеКолонки = ОписаниеКоллекции.Колонки[Инд]; | ||
Значение = Значения[Инд]; | ||
|
||
Если Значение = Неопределено Тогда | ||
Значение = ОписаниеКолонки.ЗначениеПоУмолчанию; | ||
КонецЕсли; | ||
|
||
Если ОписаниеКолонки.ТипЗначения <> Неопределено Тогда | ||
Значение = ОписаниеКолонки.ТипЗначения.ПривестиЗначение(Значение); | ||
КонецЕсли; | ||
|
||
Запись.Вставить(ОписаниеКолонки.Имя, Значение); | ||
|
||
КонецЦикла; | ||
|
||
ОписаниеКоллекции.Данные.Добавить(Запись); | ||
|
||
Возврат ЮТКонструкторКоллекции; | ||
|
||
КонецФункции | ||
|
||
// Возвращает данные коллекции | ||
// | ||
// Возвращаемое значение: | ||
// Массив из Структура | ||
Функция Данные() Экспорт | ||
|
||
Возврат ОписаниеКоллекции().Данные; | ||
|
||
КонецФункции | ||
|
||
#КонецОбласти | ||
|
||
///////////////////////////////////////////////////////////////////////////////// | ||
// Процедуры и функции, составляющие внутреннюю реализацию модуля | ||
///////////////////////////////////////////////////////////////////////////////// | ||
#Область СлужебныеПроцедурыИФункции | ||
|
||
// Описание коллекции. | ||
// | ||
// Возвращаемое значение: | ||
// см. НовыйОписаниеКоллекции | ||
Функция ОписаниеКоллекции() | ||
|
||
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста()); | ||
|
||
КонецФункции | ||
|
||
// Новый описание коллекции. | ||
// | ||
// Возвращаемое значение: | ||
// Структура - Новый описание коллекции: | ||
// * Колонки - Массив из см. ОписаниеКолонки | ||
// * Данные - Массив из Произвольный | ||
// * КоличествоРеквизитов - Число | ||
Функция НовыйОписаниеКоллекции() | ||
|
||
Описание = Новый Структура; | ||
Описание.Вставить("Колонки", Новый Массив); | ||
Описание.Вставить("Данные", Новый Массив); | ||
Описание.Вставить("КоличествоРеквизитов", 0); | ||
|
||
Возврат Описание; | ||
|
||
КонецФункции | ||
|
||
Функция ОписаниеКолонки(Имя, ТипЗначения = Неопределено, ЗначениеПоУмолчанию = Неопределено) | ||
|
||
Описание = Новый Структура("Имя, ТипЗначения, ЗначениеПоУмолчанию"); | ||
Описание.Имя = Имя; | ||
Описание.ТипЗначения = ТипЗначения; | ||
Описание.ЗначениеПоУмолчанию = ЗначениеПоУмолчанию; | ||
|
||
Возврат Описание; | ||
|
||
КонецФункции | ||
|
||
Функция КлючКонтекста() | ||
|
||
Возврат "ВариантыТеста"; | ||
|
||
КонецФункции | ||
|
||
#КонецОбласти |
9 changes: 9 additions & 0 deletions
9
exts/yaxunit/src/CommonModules/ЮТКонструкторКоллекций/ЮТКонструкторКоллекций.mdo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="77eb74a9-f72f-4221-ae79-5ca4149f0e48"> | ||
<name>ЮТКонструкторКоллекций</name> | ||
<synonym> | ||
<key>ru</key> | ||
<value>Конструктор коллекций</value> | ||
</synonym> | ||
<server>true</server> | ||
</mdclass:CommonModule> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters