Имя: Пароль:
1C
1С v8
Ошибка доступа к файлу
,
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с не запускается. это процедура которая выполняется при ручном нажатии находясь в предприятии