Имя: Пароль:
1C
1С v8
DBF. Проблема с индексным файлом
,
0 Rounder
 
11.03.13
16:55
Создаю dbf-файл, к нему индексы и индексный файл.
В 1С все работает хорошо. Однако в dbf выгружаются данные для внешнего использования. Создается и bdf и  cdx файлы, но в dbf не проставляется 28-й байт, указывающий на связь с индексным файлом.
Т.о. досовые приложения не видят индексного файла. Поставил в dbf 28-й байт в "01" HEX-редактором, и приложения увидели индексный файл.

Это баг?
Это такая задумка у разработчиков 1С?
Это мои кривые руки?

Ну, и самое главное - как победить?
1 Kreont
 
11.03.13
17:02
видно глюка, хотя теже дбф разные бывают.
То что хочет програма из дос, не значит что так должно быть во всех дбф по умолчанию именно из 1с.
2 kiruha
 
11.03.13
17:03
Внешним (нормальным!)приложениям типа FoxPro практически любые параметры можно указать при инициализации драйвера, несмотря на заголовок, который у 1С кривой уже лет 15
3 Rounder
 
11.03.13
17:06
Ну под внешним я понимал FoxPro 2.6 и VisualFoxPro.

И из (2) делаю вывод что это давно известный глюк 1С?

(2) Про параметры при инициализации драйвера можно поподробней?
4 Kreont
 
11.03.13
17:11
(2) ну да логично, было б странным если б из под фокса нельзя было такого сделать. Но фокс то как раз и есть оболочка для работы с дбф, а 1С отдельная програмка как никак, и думаю что делать в ней поддержку всех возможных ДБФ без надобности. Хорошо что хоть какой то файлик формирует :)

Пробуй ДБФ не стандартно из 1с делать, а через ОДБС
5 kiruha
 
11.03.13
17:14
VisualFoxPro нормально читает CDX если параметр сортировки Collating Sequence=MACHINE

про параметры лучше документацию читать - там много страниц
http://www.foxclub.ru/rhproject/project/
6 Rounder
 
11.03.13
17:17
(4) Ну я думаю формирование правильного заголовка файла должно быть по умолчанию. Я так понимаю заголовок файла - это то, что описывается в спецификации формата. Ну да ладно.
(4) (5) Спасибо. Буду пытаться обходными путями. Мне уже из 1С нужно выплюнуть связку файлов, чтобы они читались без дальнейших манипуляций.

И еще вопрос - а можно ли в 1С поправить этот самый байт, т.е. можно ли открыть бинарный файл для редактирования?
7 Kreont
 
11.03.13
17:23
(6) можно, но лучше сразу готовый сделать правильно :)
8 Rounder
 
11.03.13
17:24
(7) Так если ж не получается :)
Collating Sequence=MACHINE - из 1С не выставишь в нужно значение.

ДБФ - через ОДБС делать - еще вопрос что проще, это или байт изменить.
9 Kreont
 
11.03.13
17:26
байт изменить проще но некрасиво будет
10 kiruha
 
11.03.13
17:26
(8)
Это в Фокспро выставляется
Попробуй для начала просто открыть из студии фокса ДБФ -
там он сам спросит - и посмотреть увидит или нет
11 kiruha
 
11.03.13
17:30
3 способа
1.в параметрах программы
2.в конфигурац файле
3. программно
SET COLLATE TO "MACHINE"
12 Kreont
 
11.03.13
17:32
+4 вариант, через настройку источника данных в системе
13 Rounder
 
11.03.13
18:28
Проблему нужно решить внутри 1С. С выгруженным файлом работает масса разного внешнего ПО. Файл будет выгружать регламентно - фоновым заданием.

(8) В фоксе открываю - ничего не спрашивает и не видит, пока байт не изменю.
14 Rounder
 
11.03.13
18:36
В настройках фокса выставлено в "MACHINE"
И программно делал
Итог тот же - не видит индексов.
15 kiruha
 
11.03.13
18:36
(13)
Создавай внутри 1С тем же фоксом через oledb
16 kiruha
 
11.03.13
18:39
Тем более, что кроме заголовка там и сортировка не полностью совпадает (для экзотических знаков)
17 Rounder
 
11.03.13
18:40
Еще раз спасибо помогавшим. Завтра попробую создавать через OLEDB.