Имя: Пароль:
1C
1C 7.7
v7: Переиндексацию DBF
0 Work1
 
21.09.18
12:59
Всем привет. Может к подскажет как решить проблему
Есть  ДБФ файл и к нему индексный файл вношу изменения в ДБФ и нужно сделать переиндексацию файла
1 Cool_Profi
 
21.09.18
13:00
Он сам должен в теории
2 Work1
 
21.09.18
13:03
1.DBF
1.CDX
Переиндексировать нужно 1.CDX
3 Kigo_Kigo
 
21.09.18
13:03
ДБФ не из структуры базы?
4 Work1
 
21.09.18
13:04
Точнее 1.DBF но и чтобы  менялись 1.CDX
5 Work1
 
21.09.18
13:04
Да вне структуры
6 Kigo_Kigo
 
21.09.18
13:08
что то вроде этого?
    Если БазаКлассиф.Открыта() = 0 Тогда
        
        БазаКлассиф.ОткрытьФайл(ФайлБазы, "", 0);
        
        Если БазаКлассиф.Открыта() = 1 Тогда
        
            Если ОтображениеГрупп = 0 Тогда
                
                ОтображениеГрупп = 1;
                Для Индекс = 1 По БазаКлассиф.КоличествоПолей() Цикл
                    
                    НаименованиеПоля = ""; ТипПоля = ""; ДлинаПоля = 0; ТочностьПоля = 0;
                    БазаКлассиф.ОписаниеПоля(Индекс, НаименованиеПоля, ТипПоля, ДлинаПоля, ТочностьПоля);
                    Если (НаименованиеПоля = "CODEGR") ИЛИ (НаименованиеПоля = "TGROUP") Тогда
                        ОтображениеГрупп = ОтображениеГрупп + 1;
                    КонецЕсли;
                    
                КонецЦикла;
                ОтображениеГрупп = ?(ОтображениеГрупп = 3, 1, 2);
                
            КонецЕсли;
            
            БазаКлассиф.КодоваяСтраница(1);
            
            Если ОтображениеГрупп = 1 Тогда
                БазаКлассиф.ДобавитьИндекс("GROUP", "CODEGR", 0, 0, "");
            КонецЕсли;
            
            БазаКлассиф.ДобавитьИндекс("CODE",  "CODE",   1, 0, "");
            
            Состояние("Ждите... Индексируется файл - " + ФайлБазы);
            БазаКлассиф.СоздатьИндексныйФайл(ФайлИндекс);
            
            Если БазаКлассиф.Открыта() = 1 Тогда
                БазаКлассиф.ЗакрытьФайл();
                БазаКлассиф.ОткрытьФайл(ФайлБазы, ФайлИндекс, 0);
            КонецЕсли;
            
        КонецЕсли;
7 Peltik
 
21.09.18
14:18
(1) ну да, если ДБФ открыт с индексом, то индекс должен перестраиваться сразу по ходу изменения ДБФа, единственный вариант если вдруг его надо перестроить принудительно, тогда Переиндексировать()
8 AliAksA
 
24.09.18
09:38
(0) как вариант: через Foxpro - там и почистить его можно ... всего пару строк набрать