Skip to content

Commit e6dd70b

Browse files
committed
#14 Сокрытие служебных классов через Использовать
1 parent 066c92f commit e6dd70b

File tree

4 files changed

+216
-221
lines changed

4 files changed

+216
-221
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,196 +1,196 @@
1-
#Использовать logos
2-
#Использовать notify
3-
4-
Перем Лог;
5-
6-
Перем Коллекция;
7-
Перем КэшКолонок;
8-
9-
Процедура УстановитьКоллекцию(НоваяКоллекция, ОбновлятьКэшКолонок = Истина) Экспорт
10-
11-
Коллекция = Новый Массив;
12-
13-
Для Каждого ЭлементНовойКоллекции Из НоваяКоллекция Цикл
14-
Коллекция.Добавить(ЭлементНовойКоллекции);
15-
КонецЦикла;
16-
17-
Если НЕ ОбновлятьКэшКолонок Тогда
18-
Возврат;
19-
КонецЕсли;
20-
21-
КэшКолонок = Новый Массив;
22-
23-
ЕстьРеквизитКолонки = Истина;
24-
Попытка
25-
Колонки = НоваяКоллекция.Колонки;
26-
Исключение
27-
ЕстьРеквизитКолонки = Ложь;
28-
Конецпопытки;
29-
30-
Если ЕстьРеквизитКолонки Тогда
31-
Для Каждого Колонка Из НоваяКоллекция.Колонки Цикл
32-
КэшКолонок.Добавить(Колонка);
33-
КонецЦикла;
34-
КонецЕсли;
35-
36-
Лог.Отладка("Кэш колонок содержит %1 колонок", КэшКолонок.Количество());
37-
38-
КонецПроцедуры
39-
40-
Функция ПолучитьКоллекцию() Экспорт
41-
Возврат Коллекция;
42-
КонецФункции
43-
44-
Функция ПолучитьКэшКолонок() Экспорт
45-
Возврат КэшКолонок;
46-
КонецФункции
47-
48-
Процедура ВыполнитьПервые(Результат, ДополнительныеПараметры) Экспорт
49-
50-
Количество = ДополнительныеПараметры.Количество;
51-
52-
Лог.Отладка("ВыполнитьПервые %1", Количество);
53-
54-
Результат = Новый Массив;
55-
Для сч = 0 По Количество - 1 Цикл
56-
Элемент = Коллекция[сч];
57-
Результат.Добавить(Элемент);
58-
КонецЦикла;
59-
60-
КонецПроцедуры
61-
62-
Процедура ВыполнитьПропустить(Результат, ДополнительныеПараметры) Экспорт
63-
64-
Количество = ДополнительныеПараметры.Количество;
65-
66-
Лог.Отладка("ВыполнитьПропустить %1", Количество);
67-
68-
Результат = Новый Массив;
69-
Для сч = Количество По Коллекция.ВГраница() Цикл
70-
Элемент = Коллекция[сч];
71-
Результат.Добавить(Элемент);
72-
КонецЦикла;
73-
74-
КонецПроцедуры
75-
76-
Процедура ВыполнитьРазличные(Результат, ДополнительныеПараметры) Экспорт
77-
78-
Лог.Отладка("ВыполнитьРазличные");
79-
80-
Результат = Новый Массив;
81-
82-
ОбработчикСравнения = ДополнительныеПараметры.Обработчик;
83-
84-
Для Каждого Элемент Из Коллекция Цикл
85-
86-
КоличествоСовпадений = 0;
87-
88-
Для Каждого ЭлементРезультат Из Результат Цикл
89-
ОбработчикСравнения.ДополнительныеПараметры.Элемент1 = Элемент;
90-
ОбработчикСравнения.ДополнительныеПараметры.Элемент2 = ЭлементРезультат;
91-
РезультатСортировки = Неопределено;
92-
ОписанияОповещений.ВыполнитьОбработкуОповещения(ОбработчикСравнения, РезультатСортировки);
93-
Если РезультатСортировки = 0 Тогда
94-
КоличествоСовпадений = КоличествоСовпадений + 1;
95-
КонецЕсли;
96-
КонецЦикла;
97-
98-
Если КоличествоСовпадений = 0 Тогда
99-
Результат.Добавить(Элемент);
100-
КонецЕсли;
101-
102-
КонецЦикла;
103-
104-
КонецПроцедуры
105-
106-
Процедура ВыполнитьФильтровать(Результат, ДополнительныеПараметры) Экспорт
107-
108-
Обработчик = ДополнительныеПараметры.Обработчик;
109-
110-
Лог.Отладка("ВыполнитьФильтровать %1", Обработчик.ИмяПроцедуры);
111-
112-
Результат = Новый Массив;
113-
114-
Если Обработчик.ДополнительныеПараметры = Неопределено Тогда
115-
Обработчик.ДополнительныеПараметры = Новый Структура;
116-
КонецЕсли;
117-
Обработчик.ДополнительныеПараметры.Вставить("Элемент");
118-
119-
Для Каждого Элемент Из Коллекция Цикл
120-
Обработчик.ДополнительныеПараметры.Элемент = Элемент;
121-
РезультатФильтрации = Ложь;
122-
ОписанияОповещений.ВыполнитьОбработкуОповещения(Обработчик, РезультатФильтрации);
123-
124-
Если РезультатФильтрации Тогда
125-
Результат.Добавить(Элемент);
126-
КонецЕсли;
127-
КонецЦикла;
128-
129-
КонецПроцедуры
130-
131-
Процедура ВыполнитьОбработать(Результат, ДополнительныеПараметры) Экспорт
132-
133-
Обработчик = ДополнительныеПараметры.Обработчик;
134-
135-
Лог.Отладка("ВыполнитьОбработать %1", Обработчик.ИмяПроцедуры);
136-
137-
Результат = Новый Массив;
138-
139-
Если Обработчик.ДополнительныеПараметры = Неопределено Тогда
140-
Обработчик.ДополнительныеПараметры = Новый Структура;
141-
КонецЕсли;
142-
Обработчик.ДополнительныеПараметры.Вставить("Элемент");
143-
144-
Для Каждого Элемент Из Коллекция Цикл
145-
Обработчик.ДополнительныеПараметры.Элемент = Элемент;
146-
РезультатОбработки = Элемент;
147-
ОписанияОповещений.ВыполнитьОбработкуОповещения(Обработчик, РезультатОбработки);
148-
149-
Результат.Добавить(РезультатОбработки);
150-
КонецЦикла;
151-
152-
КонецПроцедуры
153-
154-
Процедура ВыполнитьСортировать(Результат, ДополнительныеПараметры) Экспорт
155-
156-
Обработчик = ДополнительныеПараметры.Обработчик;
157-
158-
Лог.Отладка("ВыполнитьСортировать %1", Обработчик.ИмяПроцедуры);
159-
160-
Результат = Коллекция;
161-
162-
Если Обработчик.ДополнительныеПараметры = Неопределено Тогда
163-
Обработчик.ДополнительныеПараметры = Новый Структура;
164-
КонецЕсли;
165-
Обработчик.ДополнительныеПараметры.Вставить("Элемент1");
166-
Обработчик.ДополнительныеПараметры.Вставить("Элемент2");
167-
168-
Для й = 0 По Результат.Количество() - 1 Цикл
169-
Флаг = Ложь;
170-
к = Результат.Количество() - 1;
171-
Пока к > й Цикл
172-
Элемент = Результат[к - 1];
173-
СледующийЭлемент = Результат[к];
174-
Обработчик.ДополнительныеПараметры.Элемент1 = Элемент;
175-
Обработчик.ДополнительныеПараметры.Элемент2 = СледующийЭлемент;
176-
РезультатСортировки = Неопределено;
177-
ОписанияОповещений.ВыполнитьОбработкуОповещения(Обработчик, РезультатСортировки);
178-
Если РезультатСортировки > 0 Тогда
179-
Результат[к - 1] = СледующийЭлемент;
180-
Результат[к] = Элемент;
181-
Флаг = Истина;
182-
КонецЕсли;
183-
к = к - 1;
184-
КонецЦикла;
185-
Если НЕ Флаг Тогда
186-
Прервать;
187-
КонецЕсли;
188-
КонецЦикла;
189-
190-
КонецПроцедуры
191-
192-
Процедура Инициализация()
193-
Лог = Логирование.ПолучитьЛог("oscript.lib.stream");
194-
КонецПроцедуры
195-
1+
#Использовать logos
2+
#Использовать notify
3+
4+
Перем Лог;
5+
6+
Перем Коллекция;
7+
Перем КэшКолонок;
8+
9+
Процедура УстановитьКоллекцию(НоваяКоллекция, ОбновлятьКэшКолонок = Истина) Экспорт
10+
11+
Коллекция = Новый Массив;
12+
13+
Для Каждого ЭлементНовойКоллекции Из НоваяКоллекция Цикл
14+
Коллекция.Добавить(ЭлементНовойКоллекции);
15+
КонецЦикла;
16+
17+
Если НЕ ОбновлятьКэшКолонок Тогда
18+
Возврат;
19+
КонецЕсли;
20+
21+
КэшКолонок = Новый Массив;
22+
23+
ЕстьРеквизитКолонки = Истина;
24+
Попытка
25+
Колонки = НоваяКоллекция.Колонки;
26+
Исключение
27+
ЕстьРеквизитКолонки = Ложь;
28+
Конецпопытки;
29+
30+
Если ЕстьРеквизитКолонки Тогда
31+
Для Каждого Колонка Из НоваяКоллекция.Колонки Цикл
32+
КэшКолонок.Добавить(Колонка);
33+
КонецЦикла;
34+
КонецЕсли;
35+
36+
Лог.Отладка("Кэш колонок содержит %1 колонок", КэшКолонок.Количество());
37+
38+
КонецПроцедуры
39+
40+
Функция ПолучитьКоллекцию() Экспорт
41+
Возврат Коллекция;
42+
КонецФункции
43+
44+
Функция ПолучитьКэшКолонок() Экспорт
45+
Возврат КэшКолонок;
46+
КонецФункции
47+
48+
Процедура ВыполнитьПервые(Результат, ДополнительныеПараметры) Экспорт
49+
50+
Количество = ДополнительныеПараметры.Количество;
51+
52+
Лог.Отладка("ВыполнитьПервые %1", Количество);
53+
54+
Результат = Новый Массив;
55+
Для сч = 0 По Количество - 1 Цикл
56+
Элемент = Коллекция[сч];
57+
Результат.Добавить(Элемент);
58+
КонецЦикла;
59+
60+
КонецПроцедуры
61+
62+
Процедура ВыполнитьПропустить(Результат, ДополнительныеПараметры) Экспорт
63+
64+
Количество = ДополнительныеПараметры.Количество;
65+
66+
Лог.Отладка("ВыполнитьПропустить %1", Количество);
67+
68+
Результат = Новый Массив;
69+
Для сч = Количество По Коллекция.ВГраница() Цикл
70+
Элемент = Коллекция[сч];
71+
Результат.Добавить(Элемент);
72+
КонецЦикла;
73+
74+
КонецПроцедуры
75+
76+
Процедура ВыполнитьРазличные(Результат, ДополнительныеПараметры) Экспорт
77+
78+
Лог.Отладка("ВыполнитьРазличные");
79+
80+
Результат = Новый Массив;
81+
82+
ОбработчикСравнения = ДополнительныеПараметры.Обработчик;
83+
84+
Для Каждого Элемент Из Коллекция Цикл
85+
86+
КоличествоСовпадений = 0;
87+
88+
Для Каждого ЭлементРезультат Из Результат Цикл
89+
ОбработчикСравнения.ДополнительныеПараметры.Элемент1 = Элемент;
90+
ОбработчикСравнения.ДополнительныеПараметры.Элемент2 = ЭлементРезультат;
91+
РезультатСортировки = Неопределено;
92+
ОписанияОповещений.ВыполнитьОбработкуОповещения(ОбработчикСравнения, РезультатСортировки);
93+
Если РезультатСортировки = 0 Тогда
94+
КоличествоСовпадений = КоличествоСовпадений + 1;
95+
КонецЕсли;
96+
КонецЦикла;
97+
98+
Если КоличествоСовпадений = 0 Тогда
99+
Результат.Добавить(Элемент);
100+
КонецЕсли;
101+
102+
КонецЦикла;
103+
104+
КонецПроцедуры
105+
106+
Процедура ВыполнитьФильтровать(Результат, ДополнительныеПараметры) Экспорт
107+
108+
Обработчик = ДополнительныеПараметры.Обработчик;
109+
110+
Лог.Отладка("ВыполнитьФильтровать %1", Обработчик.ИмяПроцедуры);
111+
112+
Результат = Новый Массив;
113+
114+
Если Обработчик.ДополнительныеПараметры = Неопределено Тогда
115+
Обработчик.ДополнительныеПараметры = Новый Структура;
116+
КонецЕсли;
117+
Обработчик.ДополнительныеПараметры.Вставить("Элемент");
118+
119+
Для Каждого Элемент Из Коллекция Цикл
120+
Обработчик.ДополнительныеПараметры.Элемент = Элемент;
121+
РезультатФильтрации = Ложь;
122+
ОписанияОповещений.ВыполнитьОбработкуОповещения(Обработчик, РезультатФильтрации);
123+
124+
Если РезультатФильтрации Тогда
125+
Результат.Добавить(Элемент);
126+
КонецЕсли;
127+
КонецЦикла;
128+
129+
КонецПроцедуры
130+
131+
Процедура ВыполнитьОбработать(Результат, ДополнительныеПараметры) Экспорт
132+
133+
Обработчик = ДополнительныеПараметры.Обработчик;
134+
135+
Лог.Отладка("ВыполнитьОбработать %1", Обработчик.ИмяПроцедуры);
136+
137+
Результат = Новый Массив;
138+
139+
Если Обработчик.ДополнительныеПараметры = Неопределено Тогда
140+
Обработчик.ДополнительныеПараметры = Новый Структура;
141+
КонецЕсли;
142+
Обработчик.ДополнительныеПараметры.Вставить("Элемент");
143+
144+
Для Каждого Элемент Из Коллекция Цикл
145+
Обработчик.ДополнительныеПараметры.Элемент = Элемент;
146+
РезультатОбработки = Элемент;
147+
ОписанияОповещений.ВыполнитьОбработкуОповещения(Обработчик, РезультатОбработки);
148+
149+
Результат.Добавить(РезультатОбработки);
150+
КонецЦикла;
151+
152+
КонецПроцедуры
153+
154+
Процедура ВыполнитьСортировать(Результат, ДополнительныеПараметры) Экспорт
155+
156+
Обработчик = ДополнительныеПараметры.Обработчик;
157+
158+
Лог.Отладка("ВыполнитьСортировать %1", Обработчик.ИмяПроцедуры);
159+
160+
Результат = Коллекция;
161+
162+
Если Обработчик.ДополнительныеПараметры = Неопределено Тогда
163+
Обработчик.ДополнительныеПараметры = Новый Структура;
164+
КонецЕсли;
165+
Обработчик.ДополнительныеПараметры.Вставить("Элемент1");
166+
Обработчик.ДополнительныеПараметры.Вставить("Элемент2");
167+
168+
Для й = 0 По Результат.Количество() - 1 Цикл
169+
Флаг = Ложь;
170+
к = Результат.Количество() - 1;
171+
Пока к > й Цикл
172+
Элемент = Результат[к - 1];
173+
СледующийЭлемент = Результат[к];
174+
Обработчик.ДополнительныеПараметры.Элемент1 = Элемент;
175+
Обработчик.ДополнительныеПараметры.Элемент2 = СледующийЭлемент;
176+
РезультатСортировки = Неопределено;
177+
ОписанияОповещений.ВыполнитьОбработкуОповещения(Обработчик, РезультатСортировки);
178+
Если РезультатСортировки > 0 Тогда
179+
Результат[к - 1] = СледующийЭлемент;
180+
Результат[к] = Элемент;
181+
Флаг = Истина;
182+
КонецЕсли;
183+
к = к - 1;
184+
КонецЦикла;
185+
Если НЕ Флаг Тогда
186+
Прервать;
187+
КонецЕсли;
188+
КонецЦикла;
189+
190+
КонецПроцедуры
191+
192+
Процедура Инициализация()
193+
Лог = Логирование.ПолучитьЛог("oscript.lib.stream");
194+
КонецПроцедуры
195+
196196
Инициализация();

0 commit comments

Comments
 (0)