Skip to content

Commit b2f2551

Browse files
committed
Первый подход к выносу стандартных обработчиков из класса
1 parent f4c0c10 commit b2f2551

File tree

2 files changed

+39
-28
lines changed

2 files changed

+39
-28
lines changed

src/Классы/Поток.os

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
Функция Различные(ОбработчикСравнения = Неопределено) Экспорт
3939

4040
Если ОбработчикСравнения = Неопределено Тогда
41-
ОбработчикСравнения = СтандартныйОбработчикСравнения();
41+
ОбработчикСравнения = Потоки.СтандартныйОбработчикСравнения();
4242
КонецЕсли;
4343

4444
ПоложитьЯчейкуВКонвейер("Различные", ОбработчикСравнения);
@@ -63,7 +63,7 @@
6363
Функция Сортировать(Знач ОбработчикСравнения = Неопределено) Экспорт
6464

6565
Если ОбработчикСравнения = Неопределено Тогда
66-
ОбработчикСравнения = СтандартныйОбработчикСравнения();
66+
ОбработчикСравнения = Потоки.СтандартныйОбработчикСравнения();
6767
КонецЕсли;
6868

6969
ПоложитьЯчейкуВКонвейер("Сортировать", ОбработчикСравнения);
@@ -85,7 +85,7 @@
8585
КонецЦикла;
8686

8787
Возврат Результат;
88-
88+
8989
КонецФункции
9090

9191
Функция ВМассив() Экспорт
@@ -136,7 +136,7 @@
136136
Лог.Отладка("Минимум");
137137

138138
Если ОбработчикСравнения = Неопределено Тогда
139-
ОбработчикСравнения = СтандартныйОбработчикСравнения();
139+
ОбработчикСравнения = Потоки.СтандартныйОбработчикСравнения();
140140
КонецЕсли;
141141

142142
ПройтиКонвейер();
@@ -160,7 +160,7 @@
160160
Лог.Отладка("Максимум");
161161

162162
Если ОбработчикСравнения = Неопределено Тогда
163-
ОбработчикСравнения = СтандартныйОбработчикСравнения();
163+
ОбработчикСравнения = Потоки.СтандартныйОбработчикСравнения();
164164
КонецЕсли;
165165

166166
ПройтиКонвейер();
@@ -344,28 +344,6 @@
344344

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

347-
Процедура ОбработчикСравнения(РезультатСортировки, ДополнительныеПараметры) Экспорт
348-
Элемент1 = ДополнительныеПараметры.Элемент1;
349-
Элемент2 = ДополнительныеПараметры.Элемент2;
350-
351-
Если Элемент1 = Элемент2 Тогда
352-
РезультатСортировки = 0;
353-
ИначеЕсли Элемент1 > Элемент2 Тогда
354-
РезультатСортировки = 1;
355-
Иначе
356-
РезультатСортировки = -1;
357-
КонецЕсли;
358-
КонецПроцедуры
359-
360-
Функция СтандартныйОбработчикСравнения()
361-
ДополнительныеПараметры = Новый Структура;
362-
ДополнительныеПараметры.Вставить("Элемент1");
363-
ДополнительныеПараметры.Вставить("Элемент2");
364-
365-
ФункцияСравнения = ОписанияОповещений.Создать("ОбработчикСравнения", ЭтотОбъект, ДополнительныеПараметры);
366-
Возврат ФункцияСравнения;
367-
КонецФункции
368-
369347
Процедура ПоложитьЯчейкуВКонвейер(ИмяОперации,
370348
ВходящееОписаниеОповещения = Неопределено,
371349
ДополнительныеПараметры = Неопределено)

src/Модули/Потоки.os

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,40 @@
1+
#Использовать notify
12

23
Функция ИзКоллекции(Коллекция) Экспорт
34
Стрим = Новый Стрим();
45
Стрим.УстановитьКоллекцию(Коллекция);
56

67
Возврат Стрим;
7-
КонецФункции
8+
КонецФункции
9+
10+
Функция СтандартныйОбработчикСравнения() Экспорт
11+
ДополнительныеПараметры = Новый Структура;
12+
ДополнительныеПараметры.Вставить("Элемент1");
13+
ДополнительныеПараметры.Вставить("Элемент2");
14+
15+
ФункцияСравнения = ОписанияОповещений.Создать("ОбработчикСравнения", ЭтотОбъект, ДополнительныеПараметры);
16+
Возврат ФункцияСравнения;
17+
КонецФункции
18+
19+
Функция СтандартныйОбработчик_Сообщить() Экспорт
20+
ФункцияОбработки = ОписанияОповещений.Создать("Обработка_Сообщить", ЭтотОбъект);
21+
Возврат ФункцияОбработки;
22+
КонецФункции
23+
24+
Процедура ОбработчикСравнения(РезультатСортировки, ДополнительныеПараметры) Экспорт
25+
Элемент1 = ДополнительныеПараметры.Элемент1;
26+
Элемент2 = ДополнительныеПараметры.Элемент2;
27+
28+
Если Элемент1 = Элемент2 Тогда
29+
РезультатСортировки = 0;
30+
ИначеЕсли Элемент1 > Элемент2 Тогда
31+
РезультатСортировки = 1;
32+
Иначе
33+
РезультатСортировки = -1;
34+
КонецЕсли;
35+
КонецПроцедуры
36+
37+
Процедура Обработка_Сообщить(Результат, ДополнительныеПараметры) Экспорт
38+
Элемент = ДополнительныеПараметры.Элемент;
39+
Сообщить(Элемент);
40+
КонецПроцедуры

0 commit comments

Comments
 (0)