Skip to content

Commit 0b37cb7

Browse files
committed
Решена проблема с захватом файла обычной формы
1 parent 3a1dcf3 commit 0b37cb7

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/core/Классы/МенеджерСинхронизации.os

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,8 +402,8 @@
402402

403403
Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки, Знач Переименования, Знач КорневойКаталог)
404404

405-
Распаковщик = Новый ЧтениеФайла8(ФайлРаспаковки);
406-
Распаковщик.ИзвлечьВсе(КаталогРаспаковки, Истина);
405+
dllРаспаковать(ФайлРаспаковки, КаталогРаспаковки);
406+
ВыполнитьСборкуМусора(); // см. камент к процедуре dllРаспаковать
407407

408408
Если ПереименовыватьФайлМодуляОбычнойФормы Тогда
409409

@@ -422,6 +422,19 @@
422422

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

425+
// хитрость: надо выносить в отдельную процедуру,
426+
// а сборку мусора делать в другом кадре стека вызовов.
427+
// иначе сборка ничего не соберет
428+
//
429+
Процедура dllРаспаковать(Знач ФайлРаспаковки, Знач КаталогРаспаковки)
430+
431+
Распаковщик = Новый ЧтениеФайла8(ФайлРаспаковки);
432+
Распаковщик.ИзвлечьВсе(КаталогРаспаковки, Истина);
433+
ОсвободитьОбъект(Распаковщик); // почему-то этого недостаточно. Вопрос к реализации компоненты.
434+
Распаковщик = Неопределено;
435+
436+
КонецПроцедуры
437+
425438
/////////////////////////////////////
426439
// GIT Пересмотр
427440

0 commit comments

Comments
 (0)