С недавнего времени при открытии файла, расположенного на другой машине (например \\fileserver\Загрузка\123.dbf) выдает ошибку:
Ошибка при вызове метода контекста (Первая)
БД.Первая();
по причине:
Перед выполнением операции нужно открыть базу
Код ошибки 70: Ошибка чтения файла;
1) В проводнике по данному пути файл открывается.
2) Антивирусы отключал
3) Фаерволы отключал
4) Если расположить файл локально на сервере 1С Предприятия и указать путь, скажем "Е:\123.dbf" то все работает
5) Если подключить сетевую папку как диск(например X: и путь будет X:\123.dbf), то НЕ работает
(0) Перед позиционирование на первую строку в цикле со счетчиком, до 10 хотя бы, проверяй, что база открыта. Не помню как в восьмерке, а в семерке было что-то вроде Открыта(). Если не открыта, то пробуй открывать, а если все попытки неудачны, то ругайся на юзера через монитор.
БД.ОткрытьФайл(Путь);
Если НЕ БД.Открыта() Тогда
Для инд = 1 По 1000 Цикл
Если БД.Открыта() Тогда
Прервать;
КонецЕсли;
БД.ОткрытьФайл(Путь);
КонецЦикла;
Иначе
БД.Первая();
...
КонецЕсли;
Просто раньше то работало, а через некоторое перестало.
А за это время изменились две вещи:
1) обновились с 8.3.6.2152 до 8.3.8.1652
2) накатили 100500 обновлений на сервера
И вот теперь не понятно что повлияло на такое поведение.
Вообще есть у кого возможность проверить на 8.3.8.1652 работает мой код в аналогичной ситуации или нет?
(3) Я бы для начала проверил, имеет ли пользователь, под которым запущен сервер 1С, доступ к этому файлу.
>>Если подключить сетевую папку как диск(например X: и путь будет X:\123.dbf), то НЕ работает
Возможно, у этого пользователя не смонтировался диск X:.
Короче, самый железобетонный способ - перед
БД.ОткрытьФайл(Путь);
вставить что-то вроде
СкопироватьФайл(Путь,ПолучитьИмяВременногоФайла());
И посмотреть результат.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.