0
- 28.09.2012 - 14:39
|
есть регламентное задание которое должно писать лог в некую сетевую папку... Есть ли возможность при настройке регламента проверить доступность этой папки? я так понимаю регламент запускается под пользователем 1CUserv82 ну или как там его... в общем тот под которым крутится сервер 1с...проблема в том что вроде все парва стоят.. но Кат = Константы.папкаЛогов.Получить(); Кат = Кат+?(Прав(Кат,1)="\","","\"); КаталогНаДиске = Новый Файл(Кат); Если НЕ КаталогНаДиске.Существует() Тогда упорно заявляестя что такой папки нет... в другом месте все работает.. те под сервером проверка наличия папки отрабатываестя коректно под пользователем под которым я вхожу в систему доступ также есть... в регламентном задании доступа нет | |
1
- 28.09.2012 - 16:59
|
Вот тут не понял: в другом месте все работает.. те под сервером проверка наличия папки отрабатываестя коректно В каком "другом месте" всё работает? Что означает "под сервером ... отрабатываестя коректно" и из чего этот вывод следует? | |
2
- 28.09.2012 - 23:10
|
например на 7.7 ФС работала просто - при попытке скопировать в недоступную для юзверя папку все проходило тихо. только в папке-назначении файла не появлялось.. ;-) . | |
3
- 29.09.2012 - 21:17
|
0-ktvofffka > ЗначиЦЦа так: объект ФС предназначен для работы не в файловой системе, а в директории базы данных. Потому не имеет никаких средств обнаружения проблем с правами. Более того, 1С не перехватывает (не обрабатывает) сообщения системы, и таким образом не удастся даже воспользоваться конструкцией Попытка-Исключение-Конец Попытки. Вывод: для сетевых ресурсов, дисковых ресурсов "вообще" надо цепляться через VSH (объект "Scripting.FileSystemObject", и, возможно, "WScript.Network"). Пример: ScriptControl = createobject("MSScriptControl.ScriptControl"); ScriptControl.language="vbscript"; стр="function CopyVK() |On Error Resume Next |Set FSO = CreateObject(""Scripting.FileSystemObject"") |FSO.CopyFile """+ПолноеИмя+""","""+КаталогПрограммы()+ИмяФайла+ """, 1 |if Err.Number = 0 then | CopyVK = """" |Else | CopyVK = err.Description |end if |end function"; // err.Description возвращает наименование ошибки ScriptControl.AddCode(стр); Если НашлиВБИН = 1 Тогда Если ДатаВремяБИН < ВремяСоздания Тогда рез=ScriptControl.run("CopyVK"); //Если рез<>0 Тогда Если ПустаяСтрока(рез)=0 Тогда сообщить("Не удалось обновить ВК "+ИмяФайла+". Ошибка "+рез); Продолжить; Иначе Возврат КаталогПрограммы()+ИмяФайла; КонецЕсли; Иначе Возврат КаталогПрограммы()+ИмяФайла; КонецЕсли; Иначе //пытаемся поместить в каталог программы рез=ScriptControl.run("CopyVK"); //Если рез<>0 Тогда Если ПустаяСтрока(рез)=0 Тогда сообщить("Не удалось записать в каталог программы обновить ВК "+ИмяФайла+". Ошибка "+рез); Продолжить; Иначе Возврат КаталогПрограммы()+ИмяФайла; КонецЕсли; КонецЕсли; //НашлиВБИН = 1 | |
| Интернет-форум Краснодарского края и Краснодара |