|
Ошибка доступа к файлу | ☑ | ||
---|---|---|---|---|
0
andrew31575
07.02.14
✎
11:18
|
Здравствуйте. У меня возникла следующая ошибка при выполнении обработки выгрузки сообщения обмена. Суть в следующем:
У меня внутренняя виртуальная сеть где находится 3 сервера. На сервере А находится ГЛАВНЫЙ узел распределенной информационной базы. На сервере Б находится периферийный узел. Сервер В я использую в качетстве каталога обмена. На этом самом сервере В расшарил папку, дал полный доступ всем пользователям домена. А теперь проблема. Есть процедура самописная. Она выгружает файл обмена в этот самый расшареный каталог сервера В. С главной базы процедура нормально выполняется. а вот с периферийной волытает с ошибкой ОШИБКА ДОСТУПА К ФАЙЛУ при вызове метода открыть файл. если нужен будет код, Скажите, выложу. Просто уже голову сломал. Не знаю почему так получается. Повторяюсь..папка обмена расшаренная с полным доступом всем пользователям доменной группы |
|||
1
Apokalipsec
07.02.14
✎
11:20
|
1. Файл занят.
2. Нет прав у пользователя под которым запускается переферийная база, возможно это локальный пользователь того сервера юзер1с |
|||
2
andrew31575
07.02.14
✎
11:20
|
ап
|
|||
3
Avganec
07.02.14
✎
11:21
|
(0) а на сервере В у тебя пользователь под кем запущен сервер приложения 1с входит в домен?
|
|||
4
andrew31575
07.02.14
✎
11:22
|
Вот в том то и дело файл создается с нуля автоматически. И права у пользователя есть это администратор локального сервера, которому предоставлены полные права на каталог
|
|||
5
andrew31575
07.02.14
✎
11:22
|
Под администратором
|
|||
6
Apokalipsec
07.02.14
✎
11:25
|
а вообще с сервера переферийной базы виден сервер на котором создаешь файл?
Если да, то ты черепашка. |
|||
7
andrew31575
07.02.14
✎
11:36
|
Да, виден, пингуется, в каталог к файлу можно перейти по сети....но вот такая фигня получается...может ли быт какая-нибудь специфика в свойствах периферийной базы? По идее единственное отличие периферийного узла от главного в том что изменения могут быть сделаны только в конфигурации главного узла. Так?
|
|||
8
Кир Пластелинин
07.02.14
✎
12:20
|
а пользователь, под которым 1совский периферийный сервак крутится - точно есть права на папку?
|
|||
9
andrew31575
07.02.14
✎
13:16
|
Да, админ , который отвечает за инфраструктуру , дал полный доступ всем пользователям доменной группы
|
|||
10
andrew31575
07.02.14
✎
20:59
|
up
|
|||
11
GenV
07.02.14
✎
21:06
|
(0) Бывает такая штука, когда файл не освобождается 1С и соотв. его нельзя прочитать вне зависимости от прав. Закрой 1С которая файл создает и проверь занятые файлы средствами винды (если на серваке В это можно).
|
|||
12
H A D G E H O G s
07.02.14
✎
21:14
|
Сервер А не отпустил файл, вот и все.
|
|||
13
H A D G E H O G s
07.02.14
✎
21:14
|
код, которым пишешь файл давай
|
|||
14
andrew31575
08.02.14
✎
13:54
|
H A D G E H O G s, в момент создания файла сервер а не имеет к нему ни какого отношения
вот код Процедура ВыгрузитьВКаталог() Экспорт ВыборкаУзлов = ПланыОбмена.Полный.Выбрать(); Пока ВыборкаУзлов.Следующий() Цикл Если Не ВыборкаУзлов.ВыполнятьОбмен Тогда Продолжить; КонецЕсли; Если ВыборкаУзлов.Ссылка = ПланыОбмена.Полный.ЭтотУзел() Тогда Продолжить; КонецЕсли; НайденныеФайлы = НайтиФайлы(ВыборкаУзлов.КаталогУзла,"Message_" + "*.xml"); //С помощью объектов ЗаписьXML и ЗаписьСообщения выполняем запись изменений //для выбранного узла в xml-файл. попытка Узел = ВыборкаУзлов.Ссылка; ЗаписьXML = Новый ЗаписьXML(); если НайденныеФайлы.Количество()<10 тогда ИмяФайлаСообщения = Узел.КаталогУзла + "Message_" + СокрЛП(ПланыОбмена.Полный.ЭтотУзел().Код) + "_" + СокрЛП(Узел.Код) +"("+"0"+Строка(НайденныеФайлы.Количество()) +")"+".xml"; Иначе ИмяФайлаСообщения = Узел.КаталогУзла + "Message_" + СокрЛП(ПланыОбмена.Полный.ЭтотУзел().Код) + "_" + СокрЛП(Узел.Код) +"("+Строка(НайденныеФайлы.Количество()) +")"+".xml"; КонецЕсли; ЗаписьXML.ОткрытьФайл(ИмяФайлаСообщения); ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ЗаписьXML,Узел); ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения); ЗаписьСообщения.ЗакончитьЗапись(); ЗаписьXML.Закрыть(); //Затем создаем новое письмо, прикрепляем к нему полученный xml-файл и //отправляем по адресу, указанному в реквизите ЭлектронныйАдрес узла. Если Константы.ВыводитьСообщенияОбмена.Получить() Тогда Сообщить("ОБМЕН: Сообщение обмена для узла " + Узел.Наименование + " отправлено!", СтатусСообщения.Информация); КонецЕсли; Исключение Сообщить("Обмен не выполнен.Ошибка : "+ОписаниеОшибки()); КонецПопытки; //УдалитьФайлы(ИмяФайлаСообщения); КонецЦикла; КонецПроцедуры |
|||
15
hhhh
08.02.14
✎
16:11
|
(14) всё-таки покажите строку, которой запускается сервер 1с. Там точно указан доменный пользователь?
|
|||
16
andrew31575
09.02.14
✎
18:04
|
в этой процедуре никакой строкой 1с не запускается. это процедура которая выполняется при ручном нажатии находясь в предприятии
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |