Вход | Регистрация

1С:Предприятие ::

Метки:

Объект XBase: поиск значения

Я
   Прохожий
27.07.04 - 22:32
Дело такое:
Пробую написать обработку по учету бланков строгой отчетности. Данные будут храниться во внешних базах данных (не спрашивайте почему). Необходимо проверить базу на уникальность (что-бы пользователь не смог добавить данные об одном и том же БСО). Делаю это так:

Если Файл.СуществуетФайл("BrokenF.dbf") = 0 Тогда
        ДБФ.ДобавитьПоле("Code", 1, 4, 0);
        ДБФ.ДобавитьПоле("Name", 2, 30, 0);
        ДБФ.ДобавитьПоле("Series", 2, 2, 0);
        ДБФ.ДобавитьПоле("Number", 1, 10, 0);
        ДБФ.ДобавитьПоле("Motive", 2, 50, 0);
        ДБФ.СоздатьФайл("BrokenF.dbf");
        ДБФ.ДобавитьИндекс("IDXNAM", "NAME", 0, 0, "");
        ДБФ.ДобавитьИндекс("IDXSER", "SERIES", 0, 0, "");
        ДБФ.ДобавитьИндекс("IDXNUM", "NUMBER", 0, 0, ""); 
        ДБФ.СоздатьИндексныйФайл("BrokenF.cdx");
    КонецЕсли; 
        
        ДБФ.ОткрытьФайл("BrokenF.dbf"); 

        ДБФ.АвтоСохранение(1); 
        
    Испорченные.ВыбратьСтроки();
    Пока Испорченные.ПолучитьСтроку() = 1 Цикл
        
        ДБФ.Ключ.Name = Испорченные.Наименование;
        ДБФ.Ключ.Series = Испорченные.Серия;
        ДБФ.Ключ.Number = Испорченные.Номер; 
        ДБФ.ТекущийИндекс("IDXNAM");
        Если ДБФ.Найти(ДБФ.Ключ.Name, 0) = 1 Тогда
            ДБФ.ТекущийИндекс("IDXSER");
            Если ДБФ.Найти(ДБФ.Ключ.Series, 0) = 1 Тогда
                ДБФ.ТекущийИндекс("IDXNUM");
                Если ДБФ.Найти(ДБФ.Ключ.Number, 0) = 1 Тогда
                    Сообщить(Испорченные.Наименование + "Серии "+ Испорченные.Серия + "" + Испорченные.Номер + " имеется в базе");
                КонецЕсли;
            КонецЕсли;
        Иначе
            ДБФ.Добавить();
            ДБФ.Code   = ДБФ.КоличествоЗаписей();
            ДБФ.Name   = Испорченные.Наименование;
            ДБФ.Series = Испорченные.Серия;
            ДБФ.Number = Испорченные.Номер;
            ДБФ.Motive = Испорченные.Причина;
        КонецЕсли;
    КонецЦикла;  
    
    ДБФ.ЗакрытьФайл();

...а в ответ выскакивает сообщение об ошибке - Не найден индекс.

Может кто-нибудь поможет найти ошибку.
Зарание благодарен
 
  Рекламное место пустует
   SnarkHunter
 
1 - 28.07.04 - 06:32
ДБФ.ОткрытьФайл("BrokenF.dbf","BrokenF.cdx");


Список тем форума
Рекламное место пустует   Рекламное место пустует
Ошибка? Это не ошибка, это системная функция.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует