Имя: Пароль:
1C
1С v8
Чтение файла DBF.
0 Rollam
 
23.04.14
16:10
Возникает ошибка при чтении файла DBF "База данных должна быть открыта" при чтении файла на компьютере пользователя. Конфигурация - Бухгалтерия 3.0.31.13.
Такая ошибка, обычно, возникает при попытке чтения файла, который используется другим пользователем, но файл ничто не затрагивает. Выгружать в файл можно без каких-либо ограничений.
База серверная. Пробовал прочитать и загрузить данные из файла, запустив базу на сервере, - все работает, не работает именно при работе через компьютер пользователя. У пользователя на компьютере права администратора.
Кто-нибудь сталкивался?
1 ДенисЧ
 
23.04.14
16:12
нет правов на запись от серверного имени
2 Rollam
 
23.04.14
16:14
(1) Ошибка возникает при чтении.
3 ДенисЧ
 
23.04.14
16:15
(2) эквипенисуально.
1с открывает дбф в монопольном режиме.
4 _fvadim
 
23.04.14
16:17
Были похожие проблемы, то-ли путь слишком длинный был, то-ли из-за кириллицы.
5 le_
 
23.04.14
16:19
(3) Это не так при чтении.
6 SSSSS_AAAAA
 
23.04.14
16:22
(0) У вас серверу доступны клиентские диски? Если нет, то на что вы рассчитываете?
7 le_
 
23.04.14
16:23
(0) Наверное, нет прав на чтение у пользователя, под которым сервер работает.
8 le_
 
23.04.14
16:25
(7) а, или там наоборот, на клиенте не работает...
9 Rollam
 
23.04.14
16:54
(6) Не понимаю, как это может влиять... на сервере читаем с серверного диска, на клиентском компьютере - с диска компьютера.
(4) Сейчас попробую загрузить из корня диска.
(8) Права на обработку загрузки выставлены (обработка загружена как дополнительная).
10 le_
 
23.04.14
16:56
(9) Покажи кусок кода, которым открывается и читается файл.
11 Rollam
 
23.04.14
17:04
(10) ДБФ = Новый XBase;
     ДБФ.ОткрытьФайл(ЭтотОбъект.Объект.ФайлВыгрузки);
12 le_
 
23.04.14
17:06
(11) Посмотри СП по ОткрытьФайл - там еще параметры есть.
13 SSSSS_AAAAA
 
23.04.14
17:08
(9)"Не понимаю, как это может влиять... " - Вот в этом и проблема!Так как режим управляемого приложения, то работа с данными всегда идет на сервере. И потому, чтобы сервер мог прочитать файл на клиенте он должен иметь туда доступ. И путь к файлу должен быть по отношению к серверу.
14 Rollam
 
23.04.14
17:32
(12) Второй параметр - путь к файлу индексов. Мне индексы не нужны. Третий - режим чтения файла. Попробую выставить на "Истина" (только чтение) и посмотрю, что выйдет.
(13) Да. Чтение файла происходит в серверной процедуре. Значит, нужно прописывать путь к файлу относительно серверной машины в локальной сети?
15 SSSSS_AAAAA
 
23.04.14
17:36
(14) Да, именно это я уже и написал. Потому и спросил: сервер уже имеет доступ к клиентским дискам? Права на клиенте серверу даны? А какой учетной записи? Той, под которой сервер 1С работает?
16 Rollam
 
23.04.14
17:41
(15) Нет, сервер доступа к папкам клиента не имеет. Попробуем расшарить какую-либо папку и загружать из нее.
17 SSSSS_AAAAA
 
23.04.14
17:47
(16) И что будете делать когда с клиентским компом что-нить случится? Может таки подумать в сторону более нормального решения, а не в сторону тупого решения в лоб?
18 Rollam
 
23.04.14
17:47
(12) Проставил ТолькоЧтение на Истина. Ничего не изменилось.
19 SSSSS_AAAAA
 
23.04.14
17:51
(18) Кому/Чему поставил?
20 hhhh
 
23.04.14
17:56
(18) точно пользователю USR1c83 ??
21 Rollam
 
23.04.14
17:59
(19) (20) ДБФ.ОткрытьФайл(ЭтотОбъект.Объект.ФайлВыгрузки, , Истина);
Последний параметр - ТолькоЧтение. Если ТолькоЧтение - Ложь, то получаем полный доступ к файлу (монопольный).
22 hhhh
 
23.04.14
18:08
(21) права на файл проверь. У пользователя сервера 1с.
23 Garykom
 
гуру
23.04.14
18:47
Сделай по умному, сначала выгрузи файл на сервер а потом читай там из временного каталога
24 Mashinist
 
23.04.14
18:50
Имя файла случайно не больше 8-ми символов?
25 Rollam
 
24.04.14
10:51
(24) Нет, конечно! С сервера файл читается.
(22) Вы говорите о пользователе сервера, как о пользователе операционной системы? Если так, то при работе непосредственно на сервере все работает, я об этом упоминал. Не работает загрузка на компьютере на котором стоит 1С и путь к базе прописан как к сетевому кластеру.
(23) Сомнительный вариант. Пользователю будет неудобно подключаться к серверу ради загрузки.
26 Rollam
 
24.04.14
11:03
(23) Пробую создать папку на сервере, куда будет идти постоянная выгрузка.
Путь к файлу для загрузки пробую прописать так, как бы он выглядел для серверной машины, а не для компьютера пользователя в сети.
27 Rollam
 
24.04.14
11:22
(23) Да. Так сработало!
Всем спасибо, ответ найдет!
Но пришлось в обработке загрузки жестко прописать путь и имя файла для сервера. Это крайне неудобно. Пока сделаю так, но буду искать способ обойти этот абсурд.
2 + 2 = 3.9999999999999999999999999999999...