Имя: Пароль:
1C
1С v8
Несколько вопросов по индексному файлу XBase
,
0 Rounder
 
15.12.11
11:35
1. Добавить(<Имя>, <Выражение>, <Уникальность>, <Убывание>, <Фильтр>)
здесь <Выражение> - это выражение на языке FoxPro?
2. Если да - то почему ругается на выражение "kdk+prneot+dtoc(ddk,1)", а именно на параметры функции dtoc? (если писать dtoc(ddk), то индекс создается)
3. Как в самом файле DBF проставить байт/признак наличия индексного файла?
1 aleks-id
 
15.12.11
11:45
настоящие джедаи давно не работают с хбазе
2 Rounder
 
15.12.11
11:59
тогда прошу ответить мне - не настоящему джедаю :)
3 aleks-id
 
15.12.11
12:01
озвучь задачу для чего это нужно. может запросом проще взять необходимые данные?
4 Mikeware
 
15.12.11
12:03
(0) Выражение - оно не на фоксе, а скорее на чистом иксбейсике.
5 aleks-id
 
15.12.11
12:06
6 СвинТуз
 
15.12.11
12:08
(4)
почему это? ))
7 aleks-id
 
15.12.11
12:13
попробуй с двумя dtoc - в один дату без времени, во второй время
8 Rounder
 
15.12.11
12:15
(4) - так почему тогда ругается на dtoc()? Вот ее синтаксис DTOC(dExpression | tExpression [, 1])

(3) Озвучиваю - выгружаю данные из 1С в задач на досовом FoxPro - нужно попутно создавать индексные файлы, иногда переиндексация.
9 Mikeware
 
15.12.11
12:25
(8) Потому, что в чистом xBase функция DTOC имеет лишь один аргумент...
10 НЕА123
 
15.12.11
12:29
в СП индексXBase.
DTOS - Твое все(может и нет).
(9)+1.
11 Rounder
 
15.12.11
12:35
Спасибо. Попробую.
А что с вопросом 3?
3. Как в самом файле DBF проставить байт/признак наличия индексного файла?

Суть вопроса, dbf существуют, индексные нет. Т.е. в одной связке создать не могу. Создаю индексный к уже существующему dbf. В фоксе открываю - индексный не привязан.
12 НЕА123
 
15.12.11
12:42
(11)
в СП.
КоллекцияИндексов.

работу с индексами DBF в 1С я стараюсь избегать.
если возможно, проще их в самом фоксе и сделать.
13 Rounder
 
15.12.11
12:48
(12) Не понял для чего ссылка на СП на КоллекцияИндексов.
Там нет ответа как к уже существующей dbf-ке привязать индексный файл, чтобы нужный байт в dbf стал равным 1, и открывая bdf средствами фокса индексный файл подхватывался автоматически.

Я тоже избегал работы с индексами - но в 1С разработчик я, а в фоксе - другой человек, и он просит выдавать ему в т.ч. и индексный файл.
14 aleks-id
 
15.12.11
12:54
(13) разработчику фокспро дать по голове и заставить лазить в 1с через СОМ а не сидеть на досовым УГ
15 Rounder
 
15.12.11
12:57
(14) это невозможно сделать по политическим мотивам :)
16 Rounder
 
15.12.11
13:03
Так что? Нет возможности связать уже существующую dbf-ку с вновь созданным индексным файлом?
17 НЕА123
 
15.12.11
13:08
(16)
в фоксе, вроде, можно явно указать CDX.
типа так
USE ТABLE Index TableIdex.
18 Rounder
 
15.12.11
13:12
Тогда отдам эту идею фоксовику.
19 СвинТуз
 
15.12.11
14:04
(17)
а если файл CDX  имеет то же имя что и основная таблица
он открывается автоматически вместе с таблицей
вроде как ...

ленится плохо
пусть делает переиндексацию у себя при открытии

а если индекс не открывать вместе с файлом он вроде и не пишется при изменениях в таблице ...
20 НЕА123
 
15.12.11
15:36
(19)
>а если файл CDX  имеет то же имя что и основная таблица
>он открывается автоматически вместе с таблицей
>вроде как ...

по-моему да.

в любом случае надо индексировать в фоксе.
ненадежная это вещь индексы. рушатся, да и нет гарантии, что индексы 1с построятся такие же как у фокса.
21 Mikeware
 
15.12.11
16:29
(19) Вообще говоря, он не обязан открываться (не помню, чтоб это было в стандарте). Но в фоксе (и в фоксбэйзен, и фокспро - открывается) И становится текущим индексом.
(20) Более того, практически гарантировано, что они построятся по другому...
вообще, у dbf файлов есть куча стандартов, и разные поля по разному используются различными субд. И индексы у разных субд строятся тоже по разному...