oscript-library / v8runner

Управление запуском 1С из командной строки
96 stars 57 forks source link

Очищается папка перед выполнением функции СоздатьФайловуюБазу() #73

Open Ridje opened 6 years ago

Ridje commented 6 years ago

Здравствуйте. В процессе написания с помощью v8runner скрипта создания начального образа наткнулся на неприятное поведение. В порядке упрощения для себя указал каталог сборки текущий каталог скрипта. Вызываю СоздатьФайловуюБазу() и у меня удаляется обработка. Мне не совсем ясно, это я затупил или нужно это учитывать всегда? Может быть такой случай обработать? Я так понимаю, что если КаталогБазы указать как какой-то диск, есть риск потерять все, что внутри и во вложенных папках. Сейчас там вызывается УдалитьФайлы(КаталогБазы, ".");.

EvilBeaver commented 6 years ago

Я вам больше скажу, если указать в любом другом коде УдалитьФайлы("C:*.*") то буде то же самое.

Ridje commented 6 years ago

Да, но разница в том, что я это сделаю намеренно, а тут нужно посмотреть код библиотеке и из названия процедуры это неясно.

EvilBeaver commented 6 years ago

Да, но это, вероятно, недостаток документирования. Каталог базы очищается, и мне кажется, что так и должно быть. Допускаю, что я мог что-то позабыть и теперь не совсем в теме. Не могли бы вы ткнуть меня в кусок кода (ссылкой на github) - о каком месте кода мы сейчас говорим?

Ridje commented 6 years ago

https://github.com/oscript-library/v8runner/blob/007b80a692f1007f597e677bdb61310644695afc/src/v8runner.os#L872 Я мог бы сам заняться и подумать над этим, но надо выработать, что правильно в данном случае. Меня это смутило просто.

Ridje commented 6 years ago

https://github.com/oscript-library/v8runner/blob/007b80a692f1007f597e677bdb61310644695afc/src/v8runner.os#L877

EvilBeaver commented 6 years ago

@Ridje я не вполне понимаю, а какое ожидается правильное поведение? Перед созданием базы каталог базы очищается. Разве это неправильно? Какое ожидается поведение?

240596448 commented 5 years ago

Думаю, что правильно - это просто задокументировать. Менее ожидаемо: генерировать ошибку при непустой папке. Потому что норма - это создание базы в пустой папке.

EvilBeaver commented 2 years ago

Приму пулреквест, который будет ругаться при непустой папке + флаг "СоздатьПринудительно"