diff --git a/src/Итератор/Ext/ObjectModule.bsl b/src/Итератор/Ext/ObjectModule.bsl index 334fd08..5e12a49 100644 --- a/src/Итератор/Ext/ObjectModule.bsl +++ b/src/Итератор/Ext/ObjectModule.bsl @@ -266,21 +266,36 @@ КонецФункции Функция Карта(Знач Код) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция = __Мап(Код, Коллекция, Контекст); Возврат ЭтотОбъект; КонецФункции Функция Фильтр(Знач Код) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция = __Фильтр(Код, Коллекция, Контекст); Возврат ЭтотОбъект; КонецФункции Функция Свернуть(Знач Код, Знач Результат = Неопределено) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Возврат __Свернуть(Код, Коллекция, Результат, Контекст); КонецФункции Функция ВзятьНеБольше(Знач Количество) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция = __ВзятьНеБольше(Коллекция, Количество); Возврат ЭтотОбъект; КонецФункции Функция Пропустить(Знач Количество) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция = __Пропустить(Коллекция, Количество); Возврат ЭтотОбъект; КонецФункции @@ -299,14 +314,23 @@ Возврат ЭтотОбъект.Срез(ЭтотОбъект.Количество() - Количество, Количество); КонецФункции Функция Обратить() Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция = __Обратить(Коллекция); Возврат ЭтотОбъект; КонецФункции Функция Транспонировать() Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция = __Транспонировать(Коллекция); Возврат ЭтотОбъект; КонецФункции Функция Сортировать(Знач Направление=Неопределено) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Если Неопределено = Направление Тогда Направление = НаправлениеСортировки.Возр; КонецЕсли; @@ -320,6 +344,9 @@ Возврат ЭтотОбъект; КонецФункции Функция Перемешать() Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; НоваяКоллекция = Новый Массив; ГСЧ = Новый ГенераторСлучайныхЧисел; @@ -337,34 +364,61 @@ КонецФункции Функция ВГраница() Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + Возврат 0; + КонецЕсли; Возврат Коллекция.ВГраница(); КонецФункции Функция Количество() Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + Возврат 0; + КонецЕсли; Возврат Коллекция.Количество(); КонецФункции Функция Вставить(Знач Индекс, Знач Значение) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция.Вставить(Индекс, Значение); Возврат ЭтотОбъект; КонецФункции Функция Добавить(Знач Значение) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция.Добавить(Значение); Возврат ЭтотОбъект; КонецФункции Функция _Найти(Знач Значение) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Возврат Коллекция.Найти(Значение); КонецФункции Функция Очистить() Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция.Очистить(); Возврат ЭтотОбъект; КонецФункции Функция Получить(Индекс) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Возврат Коллекция.Получить(Индекс); КонецФункции Функция Удалить(Индекс) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция.Удалить(Индекс); Возврат ЭтотОбъект; КонецФункции Функция Установить(Индекс, Знач Значение) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция.Установить(Индекс, Значение); Возврат ЭтотОбъект; КонецФункции @@ -406,14 +460,23 @@ КонецФункции Функция Дополнить(Источник, ТолькоУникальныеЗначения=Ложь) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Коллекция, ЗагрузитьКоллекцию(Источник), ТолькоУникальныеЗначения); Возврат ЭтотОбъект; КонецФункции Функция ТолькоУникальные() Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; Коллекция = ОбщегоНазначенияКлиентСервер.СвернутьМассив(Коллекция); Возврат ЭтотОбъект; КонецФункции Функция РазностьС(ВычитаемаяКоллекция) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; НоваяКоллекция = ОбщегоНазначенияКлиентСервер.РазностьМассивов(Коллекция, ЗагрузитьКоллекцию(ВычитаемаяКоллекция)); Возврат ЭтотОбъект.СоздатьНовый().ВзятьИз(НоваяКоллекция); КонецФункции @@ -425,15 +488,24 @@ Возврат ЭтотОбъект; КонецФункции Функция УдалитьВсеВхождения(Знач _Значение) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; ОбщегоНазначенияКлиентСервер.УдалитьВсеВхожденияЗначенияИзМассива(Коллекция, _Значение); Возврат ЭтотОбъект; КонецФункции Функция УдалитьВсеВхожденияТипа(Знач Тип) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; ОбщегоНазначенияКлиентСервер.УдалитьВсеВхожденияТипаИзМассива(Коллекция, Тип); Возврат ЭтотОбъект; КонецФункции Функция СделатьПлоским() Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; КоллекцияРезультат = Новый Массив; Очередь = Новый Массив;