|
v8: Кодировка OEM в DBF на Linux | ☑ | ||
---|---|---|---|---|
0
adron
12.04.12
✎
12:42
|
При попытке прочитать файл dbf в кодировке OEM, на Linux сервере 1С 8.2 выдает ошибку "формат файла отличен от .DBF".
При попытке прочитать тот же файл в Windows XP 1с отрабатывает правильно. Вопросы: 1) Что посоветуете? 2) Таблица кодировки OEM она где храниться, в операционной системе или в приложении? |
|||
1
adron
12.04.12
✎
12:48
|
Пытаемся загрузить классификаторы в 1С. Думаю в какую сторону копать. Может в линуксе надо енту самую таблицу ОЕМ как-то прекрутить (как прикручивать не советуйте, прикручивать буду не я)?
|
|||
2
pumbaEO
12.04.12
✎
12:49
|
таблица в теории в приложении, надо смотреть различия бинарные между созданным dbf файлом на linux разделе и XP, все таки ошибка "формат файла отличен от .DBF" намекает, что возможно проблема в самом файле.
|
|||
3
adron
12.04.12
✎
13:01
|
(2) Спасибо, может тогда подскажешь чем сравнивать?
|
|||
4
pumbaEO
12.04.12
✎
13:12
|
vbindiff http://www.cjmweb.net/vbindiff/
AptDiff это гуевое в винде, ну или far(универсален) |
|||
5
Jaffar
12.04.12
✎
13:19
|
(0) я всю жизнь считал, что кодировки придумали, чтоб не зависеть от конкретного разработчика ПО или производителя оборудования. надеюсь, у вас не возникает вопроса, где хранится кодировка ASCII?
(3) fc /b <file1.dbf> <file1.dbf> >> file.log |
|||
6
adron
12.04.12
✎
13:36
|
(5) именно возник вопрос: где хранится кодировка в ОС или в ПО, только ОЕМ?
|
|||
7
Jaffar
12.04.12
✎
13:38
|
(6) наводящий вопрос: а где хранится любая другая кодировка, например - азбука Морзе?
|
|||
8
pumbaEO
12.04.12
✎
13:42
|
(7) в энциклопедии :)
|
|||
9
adron
12.04.12
✎
13:43
|
На сколько я понимаю кодировка храниться в ПО. Поправьте меня если я ошибаюсь.
|
|||
10
adron
12.04.12
✎
13:44
|
(2) файлы сравнили, они идентичны.
|
|||
11
zva
12.04.12
✎
13:45
|
(0) Я правильно понял, что клиентская часть 1С 8.2 у вас на Linux сервере?
|
|||
12
adron
12.04.12
✎
13:47
|
(11) не у нас на сервере серверная честь
|
|||
13
zva
12.04.12
✎
13:48
|
т.е. КЛАДР с клиентской машины на ХР не загружается в серверную базу?
|
|||
14
adron
12.04.12
✎
13:55
|
(13) Да. 1С отваливается на строке "xB = Новый Base(ФайлАдресногоКлассификатора);" с ошибкой "формат файла отличен от .DBF". Строка выполняется в серверном модуле "АдресныйКлассификатор", соответственно на сервере.
|
|||
15
pumbaEO
12.04.12
✎
14:11
|
ФайлАдресногоКлассификатора - куда указывает?
|
|||
16
adron
12.04.12
✎
14:12
|
(15) Временный каталог на Linux сервере. Файл существует. Путь нужен?
|
|||
17
adron
12.04.12
✎
14:12
|
(15) точнее там полное имя файла во временно каталоге...
|
|||
18
adron
12.04.12
✎
14:23
|
(13) пишу подробно что происходит.
Конфигурация: Сервер: Linux+postgre+сервер1С 8.2. Клиент: WinXP + тонкией клиент 8.2. На клиенте запускается обработка по загрузке классификатора. Механизм загрузки типовой. Сначала с сервера 1с качается Zip-архив на локальную машину. Затем архив передаётся с клиената на сервер. На сервере из архива извлекаются dbf файлы, при попытки чтения которых 1С вылетает. |
|||
19
adron
12.04.12
✎
15:23
|
Есть ещё мысли по этому поводу, товарисчи?!
|
|||
20
Serginio1
12.04.12
✎
15:41
|
Это все потому, что если для текстов в 1С додумались подсовывать указывать кодировку двумя способами
Кодировка может быть задана как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки То в ДБФ только КодировкаXBase. И как мучаются люди у которых кодировка файлов дбф отличаются от системных. |
|||
21
adron
12.04.12
✎
15:57
|
(20) Если мне не изменяет память, то при чтении dbf файла с кодировкой, отличной от понимаемой 1С, ошибок не возникало. Просто текст внутри файла был нечитаем.
|
|||
22
Serginio1
12.04.12
✎
17:30
|
(21) А вообще кодировка внутри файла есть и глупо задавать только системные кодировки. Но суть не про это.
Попробуй открыть какойнидь ДБФ файл в доступной директории и заведомо правильный. И пиши в 1С |
|||
23
adron
13.04.12
✎
09:12
|
(22) Да, попробовали. Взяли один и тот же файл. Написали свой код по открытию и чтению файла. На клиенте под XP файл открывается и читается. На серваке под Linux нет. Он какбэ его открывает, но метод "открыта()" возвращает ложь.
|
|||
24
adron
13.04.12
✎
09:13
|
Будем писать в саппорт
|
|||
25
andrewks
13.04.12
✎
09:19
|
(22) емнип, внутри дбф кодировка не указывается, её нужно задавать самим, при чтении
|
|||
26
andrewks
13.04.12
✎
09:20
|
а какой релиз платформы?
|
|||
27
Serginio1
13.04.12
✎
12:24
|
(25) wiki:DBF
Смотри 29 байт |
|||
28
andrewks
13.04.12
✎
15:21
|
(27) угу, спасибо. интересно, какого фига тогда 1сина её не определяет
|
|||
29
adron
13.04.12
✎
15:59
|
(26) 8.2.15.301
|
|||
30
adron
13.04.12
✎
16:03
|
(28) Не факт что проблема в кодировке. Это было одно из моих предположений. Оно пока не подтверждается. Проблема в том что 1С не может открыть этот dbf файл!
|
|||
31
pumbaEO
13.04.12
✎
16:04
|
ок, ты проверял, может ли 1С открыть на сервере текстовый файл? Смотрел, какой файл и первые 29 байт в файле который сохранен на сервер?
|
|||
32
ukolabrother
13.04.12
✎
16:06
|
попробуй переименовать сам файл в формат 8.3
|
|||
33
adron
13.04.12
✎
16:14
|
(32) Это условие выполнено. Файл представляет из себя классификатор загруженный с сайта 1С.
|
|||
34
adron
13.04.12
✎
16:44
|
(31) 29-й байт в HEX - системе счисления представлен в виде "00" что соответствует кодировке OEM.
|
|||
35
pumbaEO
13.04.12
✎
16:49
|
пойдем дальше, возьми консоль этот dbf и натрави на него dbview http://packages.ubuntu.com/oneiric/dbview
|
|||
36
adron
13.04.12
✎
17:20
|
(35) а смысл?
|
|||
37
pumbaEO
13.04.12
✎
17:20
|
узнать, 1С косячит или проблема все таки в правах, в файле и т.д...
|
|||
38
adron
13.04.12
✎
17:26
|
(37) на Linux серваке у нас админ рулит. Он говорит что файл читал, тока другой утилитой. Некой консольной dbf. Файл открылся. В правах скорее всего проблем быть не может, т.к. 1С-сервак сам создает этот файл, а потом его читает. По логике если есть права на создание, то на чтение быть должны тоже.
|
|||
39
adron
13.04.12
✎
17:29
|
(37) более того. ЭТОТ же dbf файл, который не читался сервером 1С на Linux-е прочитался на клиенте 1С (в файловой версии) в XP. Из этого можно заключить что в файле проблем нет.
|
|||
40
adron
13.04.12
✎
17:31
|
Похоже что проблема в 1С-сервере, в его Linux-овом варианте:(
|
|||
41
andrewks
13.04.12
✎
17:39
|
(29) конечно, можно ещё на 310-м попробовать, хотя в оф.описаниях исправлений на эту тему и не было
|
|||
42
adron
13.04.12
✎
17:42
|
(41) ну да, как вариант
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |