Skip to content

Commit d29421f

Browse files
committed
нов: Трансформация результатов от нескольких проектов
1 parent c078ea1 commit d29421f

File tree

2 files changed

+78
-10
lines changed

2 files changed

+78
-10
lines changed

src/Классы/edtExport.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595

9696
Для Каждого цКаталог Из каталоги Цикл
9797

98-
каталогИсходников = Новый Файл(цКаталог);
98+
каталогИсходников = Новый Файл(СокрЛП(цКаталог));
9999
каталогПроекта = Новый Файл(каталогИсходников.Путь);
100100

101101
файлПроекта = Новый Файл(ОбъединитьПути(каталогПроекта.ПолноеИмя, ".project"));

src/Классы/ПрименениеФайлаНастроек.os

Lines changed: 77 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
Перем _ПрименятьНастройки;
77
Перем _ФайлыОшибок;
88
Перем _ФайлНастроек;
9-
Перем _КаталогИсходников;
109
Перем _ФайлыСИсходнымКодом;
1110

11+
Перем КаталогиИсходников;
12+
Перем _КаталогИсходников; // Каталог исходников по умолчанию
13+
1214
Перем _КешПравил;
1315

1416
Перем _УдалятьПоддержку;
15-
Перем _ДанныеПоддержки;
17+
Перем ДанныеПоддержкиПоИсходникам;
1618

1719
Перем _ФильтрПоПодсистемам;
1820
Перем _ДанныеФильтраПоПодсистемам;
@@ -52,6 +54,9 @@
5254
| '-СтандартныеПодсистемы*, -ПодключаемоеОборудование*'")
5355
.ТСтрока()
5456
.ВОкружении("GENERIC_ISSUE_FILTER_BY_SUBSYSTEM");
57+
58+
Команда.Опция("d debug", Ложь, "Режим отладки")
59+
.ТБулево();
5560

5661
КонецПроцедуры
5762

@@ -145,6 +150,10 @@
145150

146151
_Лог = Логирование.ПолучитьЛог(ИмяЛога());
147152

153+
Если Команда.ЗначениеОпции("debug") Тогда
154+
_Лог.УстановитьУровень(УровниЛога.Отладка);
155+
КонецЕсли;
156+
148157
файлыОшибок = Команда.ЗначениеАргумента("GENERIC_ISSUE_JSON");
149158
_лог.Информация("GENERIC_ISSUE_JSON = " + файлыОшибок);
150159

@@ -193,16 +202,34 @@
193202

194203
КонецЦикла;
195204

196-
_КаталогИсходников = ОбщегоНазначения.АбсолютныйПуть(путьККаталогуИсходников);
197-
каталогИсходников = Новый Файл(_КаталогИсходников);
198-
_лог.Информация("Каталог исходников = " + _КаталогИсходников);
205+
КаталогиИсходников = Новый Массив;
206+
207+
стрКаталоги = СтрЗаменить(ПутьККаталогуИсходников, ";", ",");
199208

200-
Если Не каталогИсходников.Существует()
201-
Или Не каталогИсходников.ЭтоКаталог() Тогда
209+
Для Каждого цКаталог Из СтрРазделить(стрКаталоги, ",") Цикл
210+
211+
каталог = Новый Файл(СокрЛП(цКаталог));
212+
213+
Если каталог.Существует()
214+
И каталог.ЭтоКаталог() Тогда
215+
216+
КаталогиИсходников.Добавить(каталог.ПолноеИмя);
217+
_лог.Информация("Каталог исходников = " + каталог.ПолноеИмя);
218+
219+
КонецЕсли;
220+
221+
КонецЦикла;
222+
223+
Если КаталогиИсходников.Количество() = 0 Тогда
202224

203225
_лог.Ошибка(СтрШаблон("Каталог исходников <%1> не существует. Файлы на поддержке удалены не будут", путьККаталогуИсходников));
204226
_УдалятьПоддержку = Неопределено;
227+
_КаталогИсходников = "";
205228

229+
Иначе
230+
231+
_КаталогИсходников = КаталогиИсходников[0];
232+
206233
КонецЕсли;
207234

208235
Если Не _ПрименятьНастройки
@@ -213,7 +240,15 @@
213240

214241
Если Не _УдалятьПоддержку = Неопределено Тогда
215242

216-
_ДанныеПоддержки = Новый Поддержка(_КаталогИсходников);
243+
ДанныеПоддержкиПоИсходникам = Новый Соответствие;
244+
245+
Для Каждого цКаталог Из КаталогиИсходников Цикл
246+
247+
приведенныйПуть = СтрЗаменить(НРег(цКаталог), "\", "/"); // Чтобы при сравнении не расходились слеши
248+
249+
ДанныеПоддержкиПоИсходникам.Вставить(приведенныйПуть, Новый Поддержка(цКаталог));
250+
251+
КонецЦикла;
217252

218253
КонецЕсли;
219254

@@ -487,12 +522,45 @@
487522

488523
путьКФайлу = ОбеспечитьПутьКФайлуСИсходнымКодом(пОшибка.primaryLocation.filePath);
489524

490-
текУровень = _ДанныеПоддержки.Уровень(путьКФайлу);
525+
даныеПоддержки = ДанныеПоддержкиДляФайла(путьКФайлу);
526+
527+
Если даныеПоддержки = Неопределено Тогда
528+
Возврат Ложь;
529+
КонецЕсли;
530+
531+
текУровень = даныеПоддержки.Уровень(путьКФайлу);
491532

492533
Возврат текУровень <= _УдалятьПоддержку;
493534

494535
КонецФункции
495536

537+
Функция ДанныеПоддержкиДляФайла(Знач ПутьКФайлу)
538+
539+
Для Каждого цКлючИЗначение Из ДанныеПоддержкиПоИсходникам Цикл
540+
541+
приведенныйПутьКФайлу = СтрЗаменить(НРег(ПутьКФайлу), "\", "/");
542+
543+
Если СтрНачинаетсяС(приведенныйПутьКФайлу, цКлючИЗначение.Ключ) Тогда
544+
Возврат цКлючИЗначение.Значение;
545+
КонецЕсли;
546+
547+
КонецЦикла;
548+
549+
_лог.Предупреждение("Не удалось получить данные поддержки для файла %1", ПутьКФайлу);
550+
551+
массивИсточников = Новый Массив;
552+
Для Каждого цКлючИЗначение Из ДанныеПоддержкиПоИсходникам Цикл
553+
554+
массивИсточников.Добавить(цКлючИЗначение.Ключ);
555+
556+
КонецЦикла;
557+
558+
_лог.Предупреждение(" Доступные источники: [%1]", СтрСоединить(массивИсточников, ", "));
559+
560+
Возврат Неопределено;
561+
562+
КонецФункции
563+
496564
Функция ИсключитьЗамечаниеФильтромПоПодсистеме(Знач пОшибка)
497565

498566
Если Не _ДанныеФильтраПоПодсистемам.ЕстьОтбор

0 commit comments

Comments
 (0)