Имя: Пароль:
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) Да. Так сработало!
Всем спасибо, ответ найдет!
Но пришлось в обработке загрузки жестко прописать путь и имя файла для сервера. Это крайне неудобно. Пока сделаю так, но буду искать способ обойти этот абсурд.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан