|
КЛАДР - XBase - Linux / dbf не открывается | ☑ | ||
---|---|---|---|---|
0
CaIIIka
26.02.20
✎
15:32
|
Здравствуйте! 1С 8.2 УФ Сервер. Кладр на линуксе не грузится. Файловая и виндовый сервер - все ОК. Пакует файлы в архив, создает на сервере папку /tmp/kladr_files0, отправляет архивы туда, распаковывает их там, и архивы удаляет. Затем пытается грузить данные из dbf. Навтыкал сообщений для отладки:
Если НЕ ФайлИндекса.Существует() Тогда Сообщить("Попытка создания индексного файла "+ФайлИндексаКлассификатора); xB = Новый XBase(ФайлАдресногоКлассификатора); xB.Кодировка = КодировкаXBase.OEM; Если xB.Открыта() Тогда Сообщить("Попытка создания индексного файла. Открыли базу: "+ФайлАдресногоКлассификатора); // Для загрузки сразу группы адресных сведений удобно // пользоваться индексом по всему поле CODE xB.индексы.Добавить("IDXCODE", "CODE", Истина); xB.СоздатьИндексныйФайл(ФайлИндексаКлассификатора); Сообщить("Создан индексный файл."+ФайлИндексаКлассификатора); xB.ЗакрытьФайл(); Иначе Сообщить("Ошибка открытия базы для создания индекса. "+ФайлАдресногоКлассификатора); Возврат Ложь; КонецЕсли; КонецЕсли; Этот код возвращает: Попытка создания индексного файла /tmp/kladr_files0/kladr.cdx Ошибка открытия базы для создания индекса. /tmp/kladr_files0/kladr.dbf Т.е. "xB.Открыта()" возвращает "Ложь". ----------- Сделал так, чтобы файлы кладра не удалялись после обработки. Посмотрел права: rw- для владельца и других пользователей имеются. Вроде все ок. Единственное смущает, что нет прав для запуска ни у кого. Но это же не приложение. При этом у /tmp поллные права на все. Пошел дальше. Вставил в код костыль, чтобы 1С открывала через XBase ранее созданные файлы по конкретно указанному пути. У ранее созданных файлов полные права на все для всех. Грузим "в лоб". История та же. Код "xB.Открыта()" возвращает "Ложь". Идеи на текущий момент закончились. Получается XBase впринципе не работает на Linux, по крайней мере на моей сборке... Вопрос: почему база не открыта и что можно с этим сделать? |
|||
1
CaIIIka
26.02.20
✎
15:35
|
Пробовал открывать только на чтение:
xB = Новый XBase(ФайлАдресногоКлассификатора,,Истина); То же самое. |
|||
2
CaIIIka
26.02.20
✎
15:36
|
На чем завязана работа 1С-нового объекта в линуксе? Что может не давать ему работать?
|
|||
3
CaIIIka
26.02.20
✎
15:40
|
+2 "1С-нового объекта XBase в линуксе"
|
|||
4
CaIIIka
26.02.20
✎
15:48
|
8.2.19.130 - linux centos
|
|||
5
Garykom
гуру
26.02.20
✎
15:49
|
||||
6
Garykom
гуру
26.02.20
✎
15:49
|
(5) Подумай чем твой код отличается от кода там?
|
|||
7
CaIIIka
26.02.20
✎
15:57
|
(6) Действие на клиенте, файл открывается не через конструктор по-умолчанию, нет проверки "Открыта", которая мне ложь все время возвращает. Возможно, все на винде происходит, где и у меня все работает :)
|
|||
8
CaIIIka
26.02.20
✎
16:08
|
Попробовал через ОткрытьФайл. Результат прежний.
Из (5) в моем случае остается только проверку убрать. Но хорошо ли это... Либо я чего-то еще не заметил. |
|||
9
CaIIIka
26.02.20
✎
16:17
|
Проверку убрал, программа вылетает в исключение, и просит для начала открыть базу.
Вопрос актуален. |
|||
10
Garykom
гуру
26.02.20
✎
16:33
|
(9) Для начала возьми готовый код простой и проверь работает ли под linux?
А уже потом усложняй до индексов и прочего. |
|||
11
Garykom
гуру
26.02.20
✎
16:34
|
(10)+ Убедись что файл доступен для 1С и ничем не занят, она может уго прочитать/удалить и т.д.
|
|||
12
CaIIIka
26.02.20
✎
16:59
|
(11) Файл доступен для 1С и ничем не занят. 1С удаляла все файлы и папки прекрасно, пока я код, отвечающий за это, не закомментировал.
Написал простой код чтения 5 первых записей. При любых действиях с xbase без проверки на открытость программа уходит в исключение. Действия 1С: Зипует файлы КЛАДРа Создает папку в /TMP на линуксовом сервере Передает ЗИПы в новую папку Распаковывает Удаляет архивы Создает и открывает XBase Вылетает... Доступ у новых файлов полнейший. |
|||
13
Garykom
гуру
26.02.20
✎
18:12
|
(12) Я спрашивал без индексов с dbf работает? Новую создает и пишет/читает например?
|
|||
14
acht
26.02.20
✎
18:30
|
(0) Если Linux 64 бита, то расслабся. Поддержку xbase на Linux x64 впилили только в 8.3.3
https://downloads.v8.1c.ru/content/Platform/8_3_3_641/1cv8upd.htm#4288e49a-1835-11e2-b237-e61f135f174b |
|||
15
CaIIIka
27.02.20
✎
08:32
|
(13) Написал простой код чтения 5 первых записей. Без индексов.
(14) Спасибо тебе огромное за информацию. Избавил от дальнейших мучений. Теперь знаю конкретику, что, когда и почему. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |