From 5df0b578f93ac705110f8d22e18bd410ed7f17c4 Mon Sep 17 00:00:00 2001
From: Dmitry <b4tm4n@mail.ru>
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 @@
     Возврат ЭтотОбъект;
 КонецФункции
 Функция УдалитьВсеВхождения(Знач _Значение) Экспорт
+    Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда
+        ЭтотОбъект.Начать();
+    КонецЕсли;
     ОбщегоНазначенияКлиентСервер.УдалитьВсеВхожденияЗначенияИзМассива(Коллекция, _Значение);
     Возврат ЭтотОбъект;
 КонецФункции
 Функция УдалитьВсеВхожденияТипа(Знач Тип) Экспорт
+    Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда
+        ЭтотОбъект.Начать();
+    КонецЕсли;
     ОбщегоНазначенияКлиентСервер.УдалитьВсеВхожденияТипаИзМассива(Коллекция, Тип);
     Возврат ЭтотОбъект;
 КонецФункции
 
 Функция СделатьПлоским() Экспорт
+    Если НЕ Тип("Массив") = ТипЗнч(Коллекция) Тогда
+        ЭтотОбъект.Начать();
+    КонецЕсли;
     КоллекцияРезультат = Новый Массив;
     
     Очередь = Новый Массив;