К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

права доступа к папке из под 1С

Гость
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


К списку вопросов






Copyright ©, Все права защищены