|
6 | 6 | Перем _ПрименятьНастройки; |
7 | 7 | Перем _ФайлыОшибок; |
8 | 8 | Перем _ФайлНастроек; |
9 | | -Перем _КаталогИсходников; |
10 | 9 | Перем _ФайлыСИсходнымКодом; |
11 | 10 |
|
| 11 | +Перем КаталогиИсходников; |
| 12 | +Перем _КаталогИсходников; // Каталог исходников по умолчанию |
| 13 | + |
12 | 14 | Перем _КешПравил; |
13 | 15 |
|
14 | 16 | Перем _УдалятьПоддержку; |
15 | | -Перем _ДанныеПоддержки; |
| 17 | +Перем ДанныеПоддержкиПоИсходникам; |
16 | 18 |
|
17 | 19 | Перем _ФильтрПоПодсистемам; |
18 | 20 | Перем _ДанныеФильтраПоПодсистемам; |
|
52 | 54 | | '-СтандартныеПодсистемы*, -ПодключаемоеОборудование*'") |
53 | 55 | .ТСтрока() |
54 | 56 | .ВОкружении("GENERIC_ISSUE_FILTER_BY_SUBSYSTEM"); |
| 57 | + |
| 58 | + Команда.Опция("d debug", Ложь, "Режим отладки") |
| 59 | + .ТБулево(); |
55 | 60 |
|
56 | 61 | КонецПроцедуры |
57 | 62 |
|
|
145 | 150 |
|
146 | 151 | _Лог = Логирование.ПолучитьЛог(ИмяЛога()); |
147 | 152 |
|
| 153 | + Если Команда.ЗначениеОпции("debug") Тогда |
| 154 | + _Лог.УстановитьУровень(УровниЛога.Отладка); |
| 155 | + КонецЕсли; |
| 156 | + |
148 | 157 | файлыОшибок = Команда.ЗначениеАргумента("GENERIC_ISSUE_JSON"); |
149 | 158 | _лог.Информация("GENERIC_ISSUE_JSON = " + файлыОшибок); |
150 | 159 |
|
|
193 | 202 |
|
194 | 203 | КонецЦикла; |
195 | 204 |
|
196 | | - _КаталогИсходников = ОбщегоНазначения.АбсолютныйПуть(путьККаталогуИсходников); |
197 | | - каталогИсходников = Новый Файл(_КаталогИсходников); |
198 | | - _лог.Информация("Каталог исходников = " + _КаталогИсходников); |
| 205 | + КаталогиИсходников = Новый Массив; |
| 206 | + |
| 207 | + стрКаталоги = СтрЗаменить(ПутьККаталогуИсходников, ";", ","); |
199 | 208 |
|
200 | | - Если Не каталогИсходников.Существует() |
201 | | - Или Не каталогИсходников.ЭтоКаталог() Тогда |
| 209 | + Для Каждого цКаталог Из СтрРазделить(стрКаталоги, ",") Цикл |
| 210 | + |
| 211 | + каталог = Новый Файл(СокрЛП(цКаталог)); |
| 212 | + |
| 213 | + Если каталог.Существует() |
| 214 | + И каталог.ЭтоКаталог() Тогда |
| 215 | + |
| 216 | + КаталогиИсходников.Добавить(каталог.ПолноеИмя); |
| 217 | + _лог.Информация("Каталог исходников = " + каталог.ПолноеИмя); |
| 218 | + |
| 219 | + КонецЕсли; |
| 220 | + |
| 221 | + КонецЦикла; |
| 222 | + |
| 223 | + Если КаталогиИсходников.Количество() = 0 Тогда |
202 | 224 |
|
203 | 225 | _лог.Ошибка(СтрШаблон("Каталог исходников <%1> не существует. Файлы на поддержке удалены не будут", путьККаталогуИсходников)); |
204 | 226 | _УдалятьПоддержку = Неопределено; |
| 227 | + _КаталогИсходников = ""; |
205 | 228 |
|
| 229 | + Иначе |
| 230 | + |
| 231 | + _КаталогИсходников = КаталогиИсходников[0]; |
| 232 | + |
206 | 233 | КонецЕсли; |
207 | 234 |
|
208 | 235 | Если Не _ПрименятьНастройки |
|
213 | 240 |
|
214 | 241 | Если Не _УдалятьПоддержку = Неопределено Тогда |
215 | 242 |
|
216 | | - _ДанныеПоддержки = Новый Поддержка(_КаталогИсходников); |
| 243 | + ДанныеПоддержкиПоИсходникам = Новый Соответствие; |
| 244 | + |
| 245 | + Для Каждого цКаталог Из КаталогиИсходников Цикл |
| 246 | + |
| 247 | + приведенныйПуть = СтрЗаменить(НРег(цКаталог), "\", "/"); // Чтобы при сравнении не расходились слеши |
| 248 | + |
| 249 | + ДанныеПоддержкиПоИсходникам.Вставить(приведенныйПуть, Новый Поддержка(цКаталог)); |
| 250 | + |
| 251 | + КонецЦикла; |
217 | 252 |
|
218 | 253 | КонецЕсли; |
219 | 254 |
|
|
487 | 522 |
|
488 | 523 | путьКФайлу = ОбеспечитьПутьКФайлуСИсходнымКодом(пОшибка.primaryLocation.filePath); |
489 | 524 |
|
490 | | - текУровень = _ДанныеПоддержки.Уровень(путьКФайлу); |
| 525 | + даныеПоддержки = ДанныеПоддержкиДляФайла(путьКФайлу); |
| 526 | + |
| 527 | + Если даныеПоддержки = Неопределено Тогда |
| 528 | + Возврат Ложь; |
| 529 | + КонецЕсли; |
| 530 | + |
| 531 | + текУровень = даныеПоддержки.Уровень(путьКФайлу); |
491 | 532 |
|
492 | 533 | Возврат текУровень <= _УдалятьПоддержку; |
493 | 534 |
|
494 | 535 | КонецФункции |
495 | 536 |
|
| 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 | + |
496 | 564 | Функция ИсключитьЗамечаниеФильтромПоПодсистеме(Знач пОшибка) |
497 | 565 |
|
498 | 566 | Если Не _ДанныеФильтраПоПодсистемам.ЕстьОтбор |
|
0 commit comments