Работа с DBF файлами. Метод НайтиПоКлючу(). Помогите!!!!

1. sevenlis 76 23.01.08 11:05 Сейчас в теме
1. Копирую файлы 1SJOURN.DBF и 1SJOURN.CDX в отдельный каталог.
2. в обработке открываю 1SJOURN.DBF
Код
ДБФ = СоздатьОбъект("XBase");
ДБФ.ОткрытьФайл(СокрЛП(ИмяФайла),СтрЗаменить(СокрЛП(ИмяФайла),"DBF","CDX"),0);
Если ДБФ.Открыта()=0 Тогда
     Сообщить("База не открыта!","!");
     Возврат;
КонецЕсли;
Показать полностью

(открывается нормально)
3. надо найти запись:
Код
ДБФ.Ключ.DNPREFIX = "               348";
ДБФ.Ключ.DOCNO = Строка(Док.НомерДок);
Если ДБФ.НайтиПоКлючу(0)=1 Тогда
     ДБФ.Удалить();
КонецЕсли;
Показать полностью

поле DNPREFIX имеет тип Строка длиной 18 (поэтому пробелы спереди)
такая конструкция выдает ошибку, что нужно выбрать индекс.

у этого файла существует индекс "DOCNO" (описан в файле *.DD как DNPREFIX+UPPER(DOCNO))
при попытке ДБФ.ТекущийИндекс("DOCNO"); - ошибка, что индекса с таким именем не существует.
(ДБФ.ТекущийИндекс() возвращает "")

пробовал добавлять свой индекс, реиндексировать и т.д. чего только не перепробовал...
так какое же имя индекса, чтобы выбрать его-то?...
Вчера полдня убил. Весь тырнет облазил... Помогите, пожалуйста!
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sevenlis 76 23.01.08 13:54 Сейчас в теме
Проблему решил.
Код
     ИндексныйФайл=СтрЗаменить(СокрЛП(ИмяФайла),".DBF",".CDX");
     Если ФС.СуществуетФайл(ИндексныйФайл)=1 Тогда 
          ДБФ.ОткрытьФайл(СокрЛП(ИмяФайла),ИндексныйФайл,0);
     Иначе
          ДБФ.ОткрытьФайл(СокрЛП(ИмяФайла),,0);  
          ДБФ.ДобавитьИндекс("DOCNO", "DNPREFIX+UPPER(DOCNO)", 0, 0, "");
          ДБФ.СоздатьИндексныйФайл(ИндексныйФайл);
          ДБФ.Переиндексировать();
     КонецЕсли;
     Если ДБФ.Открыта()=0 Тогда
          Сообщить("База не открыта!","!");
          Возврат;
     КонецЕсли;
     ДБФ.ПоказыватьУдаленные(1);
     ДБФ.АвтоСохранение(1);
     ДБФ.ТекущийИндекс("DOCNO");
Показать полностью

вот так больше не ругается и устанавливает индекс и находит...

персональное <font style=" font-size:16px; font-color:FF0000; font-weight:bold;">ОГРОМНОЕ СПАСИБО Abadonna</font> за помощь и участие!
3. vasilykushnir 63 23.01.08 15:14 Сейчас в теме
Аркадий, хоть ты мне обясни, для нафига все это? Честно говоря, это же не твой стиль - любое сжатие базы и всему этому нечто противоположное маршу Мендельсона. Я же давал тебе ссылку на библиотеки скриптов (Ерохе про между прочим кое-что даже понравилось) - поставить любые (да хучь составные) фильтры и делу-то финец... Зачем так издеватся над базой?
4. Abadonna 3970 24.01.08 04:41 Сейчас в теме
VasilyKushnir Написал:
-------------------------------------------------------
> Аркадий, хоть ты мне обясни, для нафига все это?
Ты вчера доотмечался? ;)
Где ты видал тут Аркадия?
И вдогонку: терпеть не могу, когда на вопрос отвечают вопросом: "на фига тебе это?"
Спросили - ответь, или пошли куда положено, но не фиг другие вопросы задавать
5. sevenlis 76 04.02.08 12:48 Сейчас в теме
Василий, можно подробнее про фильтры эти составные? Уж больно юзверю хочется документы скрывать... А такой ломовой метод, как я применил оч. опасен оказался. 1сина-то все новые документы любого вида в этом файле вместо чтоб новые записи создавать пихает вместо помеченных на удаление средствами ДБФ. Как следствие после некоторого времени работы - необратимая потеря документов... (Хорошо хоть копию перед издевательствами сделали...)
6. vasilykushnir 63 04.02.08 13:24 Сейчас в теме
А я ведь предупреждал.... Копай в сторону Xtreme Suite ActiveX Controls v11.2 - там много и красивостей и удобных скриптов. Где-то выкладывал скрин с этой ерундой, вспомню - дам ссылку.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот