Skip to content

Commit

Permalink
поддержка асинхронности
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Nov 12, 2020
1 parent a2cee98 commit c5e4d9f
Showing 1 changed file with 59 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,10 @@
Символы.ПС, ОписаниеОшибки);
Лог(Ошибка);

Если ЗавершитьРаботуСистемы Тогда
ЗавершитьРаботу();
КонецЕсли;
КонецПопытки;

Если ЗавершитьРаботуСистемы Тогда
ЗавершитьРаботу();
КонецЕсли;

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

Expand Down Expand Up @@ -109,43 +108,69 @@
Процедура ЗагрузитьРасширения(ПутьРасширения, Знач ИмяРасширения, Перезаписывать,
БезопасныйРежим, ЗащитаОтОпасныхДействий,
ЗавершитьРаботуСистемы)

Попытка
Файлы = НайтиФайлы(ПутьРасширения, "*.cfe");
Нашли = ЗначениеЗаполнено(Файлы);
Исключение
Нашли = Ложь;
КонецПопытки;

ДопПараметры = Новый Структура;
ДопПараметры.Вставить("ПутьРасширения", ПутьРасширения);
ДопПараметры.Вставить("ИмяРасширения", ИмяРасширения);
ДопПараметры.Вставить("Перезаписывать", Перезаписывать);
ДопПараметры.Вставить("БезопасныйРежим", БезопасныйРежим);
ДопПараметры.Вставить("ЗащитаОтОпасныхДействий", ЗащитаОтОпасныхДействий);
ДопПараметры.Вставить("ЗавершитьРаботуСистемы", ЗавершитьРаботуСистемы);

Если Не Нашли Тогда
Файлы = Новый Массив;
Файл = Новый Файл(ПутьРасширения);
Файлы.Добавить(Файл);
КонецЕсли;
Обработчик = Новый ОписаниеОповещения("ОбработкаПоискаРасширенийВКаталоге", ЭтаФорма, ДопПараметры);
НачатьПоискФайлов(Обработчик, ПутьРасширения, "*.cfe", Истина);

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

Если Не ЗначениеЗаполнено(Файлы) Тогда
ВызватьИсключение "Не найдено расширений для пути " + ПутьРасширения;
КонецЕсли;
&НаКлиенте
Процедура ОбработкаПоискаРасширенийВКаталоге(Знач НайденныеФайлы, Знач ДопПараметры) Экспорт

Для Каждого Файл Из Файлы Цикл
ПутьФайла = Файл.ПолноеИмя;
ДвоичныеДанные = Новый ДвоичныеДанные(ПутьФайла);
Попытка

Если ПустаяСтрока(ИмяРасширения) Тогда
ИмяРасширения = Файл.ИмяБезРасширения;
ПутьРасширения = ДопПараметры.ПутьРасширения;
ИмяРасширения = ДопПараметры.ИмяРасширения;
Перезаписывать = ДопПараметры.Перезаписывать;
БезопасныйРежим = ДопПараметры.БезопасныйРежим;
ЗащитаОтОпасныхДействий = ДопПараметры.ЗащитаОтОпасныхДействий;
ЗавершитьРаботуСистемы = ДопПараметры.ЗавершитьРаботуСистемы;

Если Не ЗначениеЗаполнено(НайденныеФайлы) Тогда
НайденныеФайлы = Новый Массив;
Файл = Новый Файл(ПутьРасширения);
НайденныеФайлы.Добавить(Файл);
КонецЕсли;

Если Не ЗначениеЗаполнено(НайденныеФайлы) Тогда
ВызватьИсключение "Не найдено файлов-расширений для пути " + ПутьРасширения;
КонецЕсли;

Попытка
УстановитьРасширение(ИмяРасширения, ДвоичныеДанные, Перезаписывать,
БезопасныйРежим, ЗащитаОтОпасныхДействий);
Исключение
ВызватьИсключение ПутьФайла + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Для Каждого Файл Из НайденныеФайлы Цикл
ПутьФайла = Файл.ПолноеИмя;
ДвоичныеДанные = Новый ДвоичныеДанные(ПутьФайла);

Если ПустаяСтрока(ИмяРасширения) Тогда
ИмяРасширения = Файл.ИмяБезРасширения;
КонецЕсли;

Попытка
УстановитьРасширение(ИмяРасширения, ДвоичныеДанные, Перезаписывать,
БезопасныйРежим, ЗащитаОтОпасныхДействий);
Исключение
ВызватьИсключение ПутьФайла + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;

КонецЦикла;

ОбновитьПараметрыРаботыВерсийРасширений();
Исключение
ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());

Ошибка = СтрШаблон("Неудача при выполнении основного кода %1%2 %1",
Символы.ПС, ОписаниеОшибки);
Лог(Ошибка);

КонецПопытки;

КонецЦикла;

ОбновитьПараметрыРаботыВерсийРасширений();

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

&НаСервере
Expand Down

0 comments on commit c5e4d9f

Please sign in to comment.