From 5df0b578f93ac705110f8d22e18bd410ed7f17c4 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Wed, 31 Aug 2022 13:09:44 +0300 Subject: [PATCH] =?UTF-8?q?+=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BD=D0=B0=20=D0=BD=D0=B5=20=D0=B8=D0=BD=D0=B8=D1=86?= =?UTF-8?q?=D0=B8=D0=B0=D0=BB=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B9=20=D0=BC=D0=B0=D1=81=D1=81=D0=B8=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Итератор/Ext/ObjectModule.bsl | 72 +++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) 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 @@ Возврат ЭтотОбъект; КонецФункции Функция УдалитьВсеВхождения(Знач _Значение) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; ОбщегоНазначенияКлиентСервер.УдалитьВсеВхожденияЗначенияИзМассива(Коллекция, _Значение); Возврат ЭтотОбъект; КонецФункции Функция УдалитьВсеВхожденияТипа(Знач Тип) Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; ОбщегоНазначенияКлиентСервер.УдалитьВсеВхожденияТипаИзМассива(Коллекция, Тип); Возврат ЭтотОбъект; КонецФункции Функция СделатьПлоским() Экспорт + Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда + ЭтотОбъект.Начать(); + КонецЕсли; КоллекцияРезультат = Новый Массив; Очередь = Новый Массив;