|
|
XBase: ошибка открытия файла из сети |
☑ |
|
0
an4xu
20.05.16
✎
06:42
|
Добрый день.
Платформа (8.3.8.1652)
Управляемые формы
Код:
&НаСервере
Процедура Загрузить()
БД = Новый XBase();
БД.ОткрытьФайл(Путь);
БД.Первая();
...
КонецПроцедуры
С недавнего времени при открытии файла, расположенного на другой машине (например \\fileserver\Загрузка\123.dbf) выдает ошибку:
Ошибка при вызове метода контекста (Первая)
БД.Первая();
по причине:
Перед выполнением операции нужно открыть базу
Код ошибки 70: Ошибка чтения файла;
1) В проводнике по данному пути файл открывается.
2) Антивирусы отключал
3) Фаерволы отключал
4) Если расположить файл локально на сервере 1С Предприятия и указать путь, скажем "Е:\123.dbf" то все работает
5) Если подключить сетевую папку как диск(например X: и путь будет X:\123.dbf), то НЕ работает
Уже не знаю куда копать
|
|
|
1
SiAl-chel
20.05.16
✎
07:00
|
(0) Перед позиционирование на первую строку в цикле со счетчиком, до 10 хотя бы, проверяй, что база открыта. Не помню как в восьмерке, а в семерке было что-то вроде Открыта(). Если не открыта, то пробуй открывать, а если все попытки неудачны, то ругайся на юзера через монитор.
|
|
|
2
an4xu
20.05.16
✎
07:18
|
Вы имеете ввиду так? Попробовал, не помогло =(
БД.ОткрытьФайл(Путь);
Если НЕ БД.Открыта() Тогда
Для инд = 1 По 1000 Цикл
Если БД.Открыта() Тогда
Прервать;
КонецЕсли;
БД.ОткрытьФайл(Путь);
КонецЦикла;
Иначе
БД.Первая();
...
КонецЕсли;
|
|
|
3
an4xu
20.05.16
✎
07:22
|
Просто раньше то работало, а через некоторое перестало.
А за это время изменились две вещи:
1) обновились с 8.3.6.2152 до 8.3.8.1652
2) накатили 100500 обновлений на сервера
И вот теперь не понятно что повлияло на такое поведение.
Вообще есть у кого возможность проверить на 8.3.8.1652 работает мой код в аналогичной ситуации или нет?
|
|
|
4
4St
20.05.16
✎
07:36
|
(3) Я бы для начала проверил, имеет ли пользователь, под которым запущен сервер 1С, доступ к этому файлу.
>>Если подключить сетевую папку как диск(например X: и путь будет X:\123.dbf), то НЕ работает
Возможно, у этого пользователя не смонтировался диск X:.
Короче, самый железобетонный способ - перед
БД.ОткрытьФайл(Путь);
вставить что-то вроде
СкопироватьФайл(Путь,ПолучитьИмяВременногоФайла());
И посмотреть результат.
|
|