|
Фоновое задание, "Ошибка создания каталога" |
☑ |
0
hartman620
14.01.19
✎
22:26
|
Имеется некая обработина, цель которой заключается создание каталога "НаУдаление" и перемещение туда неких данных, и всё просто прекрасно работает, кнопка нажимается, каталоги создаются, данные перемещаются.
Затем было принято решение перенести функционал в фоновое задание:
Процедура УдалитьКаталоги(Кнопка)
Таблица.Очистить();
НомерЭлемента = 0;
КаталогЗапуска = "D:\TEST";
МассивЭлементов = НайтиФайлы(КаталогЗапуска, "*", Ложь);//массив всех элементов(файлы + каталоги) в КаталогЗапуска
//получаем таблицу с каталогами
Для Каждого Элемент Из МассивЭлементов Цикл
НомерЭлемента = НомерЭлемента + 1;
Если Элемент.ЭтоКаталог() И Элемент.Имя <> "На удаление" И Элемент.Имя <> "temp" Тогда
СтрокаТаблицы = Таблица.Добавить();
СтрокаТаблицы.Каталог = Элемент.Имя;
СтрокаТаблицы.Путь = Элемент.ПолноеИмя + "\";
КонецЕсли;
КонецЦикла;
КаталогДатаУдаления = КаталогЗапуска + "\На удаление\\" + СтрЗаменить(ТекущаяДата(), ":", "-") + "\";
СоздатьКаталог(КаталогДатаУдаления);
///////Продолжение процедуры
КонецПроцедуры;
_______________________________________________________________________________________
{ОбщийМодуль.ФоновыеЗадания.Модуль(189)}: Ошибка при вызове метода контекста (СоздатьКаталог)
СоздатьКаталог(КаталогДатаУдаления);
по причине:
Ошибка создания каталога
по причине:
Ошибка доступа к файлу 'D:'. 13(0x0000000D): Permission denied
__________________________________________
Изначально все это делалось для сетевого каталога, думал что упираюсь в права доступа к каталогу из под Фонового задания, но ошибка повторяется и для локального каталога.
Куда копать?
|
|
1
hartman620
14.01.19
✎
22:28
|
Результат аналогичный что Запуск по расписанию, что Запуск вручную
|
|
2
hartman620
14.01.19
✎
22:48
|
забыл упомянуть: 1с упп, postgresql, хотя не уверен что это важно
|
|
3
hhhh
14.01.19
✎
23:03
|
(2) это что за магическая фраза? "\На удаление\\" Почему двойной слеш?
|
|
4
hartman620
14.01.19
✎
23:16
|
(3) "D:\TEST\На удаление\\14.01.2019 23-11-55\"
На самом деле тут двойной слеш ничего не меняет, сейчас
тестирую на
СоздатьКаталог("D:\TEST\ASS");
Результат тот же:
{ОбщийМодуль.ФоновыеЗадания.Модуль(189)}: Ошибка при вызове метода контекста (СоздатьКаталог)
СоздатьКаталог("D:\TEST\ASS");
по причине:
Ошибка создания каталога
по причине:
Ошибка доступа к файлу 'D:'. 13(0x0000000D): Permission denied
|
|
5
hhhh
14.01.19
✎
23:59
|
(4) проверьте, есть вообще на сервере такой каталог d:\test ??
|
|
6
DmVl76
15.01.19
✎
04:10
|
(0) Скорее всего, у пользователя, под которым сервер 1с запускается, нет прав на эти каталоги
|
|
7
Мимохожий Однако
15.01.19
✎
06:43
|
Можно использовать доступный общий сетевой каталог. Или метод ПолучитьИмяВременногоФайла(), в который перемещать файлы к удалению и потом удалять без всяких каталогов.
|
|
8
DrZombi
гуру
15.01.19
✎
08:16
|
(0) >>> фоновое задание:
Это сервер, у пользователя под которым запущен 1С сервер должны быть соответствующие права.
И помни, Сервер <> Рабочая станция пользователя :)
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший