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

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

Метки:

Не работает метод НайтиПоКлючу объекта XBase

Я
   Олег1234
03.12.04 - 16:25
Есть код 
    ФайлДБФ=Новый XBase;
    ФайлДБФ.Поля.Добавить("ARTICUL","S",30,);
    ФайлДБФ.Поля.Добавить("NAME","S",80,);
    ФайлДБФ.Поля.Добавить("MESURIMENT","S",10,);
    ФайлДБФ.Поля.Добавить("MESPRESISI","N",16,6);
    ФайлДБФ.Поля.Добавить("ADD1","S",20,);
    ФайлДБФ.Поля.Добавить("ADD2","S",20,);        ФайлДБФ.Поля.Добавить("ADD3","S",20,);        ФайлДБФ.Поля.Добавить("ADDNUM1","N",16,6);
    ФайлДБФ.Поля.Добавить("ADDNUM2","N",16,6);
    ФайлДБФ.Поля.Добавить("ADDNUM3","N",16,6);
    ФайлДБФ.Поля.Добавить("SCALE","S",10,);
    ФайлДБФ.Поля.Добавить("GROOP1","N",6,0);
    ФайлДБФ.Поля.Добавить("GROOP2","N",6,0);    ФайлДБФ.Поля.Добавить("GROOP3","N",6,0);    ФайлДБФ.Поля.Добавить("GROOP4","N",6,0);
    ФайлДБФ.Поля.Добавить("GROOP5","N",6,0);    ФайлДБФ.Поля.Добавить("PRICERUB","N",16,6);    ФайлДБФ.Поля.Добавить("PRICECUR","N",16,6);
    ФайлДБФ.Поля.Добавить("CLIENTINDE","N",6,0);    ФайлДБФ.Поля.Добавить("COMMENTARY","S",80,);
    ФайлДБФ.Поля.Добавить("DELETED","N",6,0); 
    ФайлДБФ.Поля.Добавить("MODDATE","D",8,);     ФайлДБФ.Поля.Добавить("MODTIME","N",6,0);     ФайлДБФ.Поля.Добавить("MODPERSONI","N",6,0); 
        ФайлДБФ.СоздатьФайл(ПолныйПутьКФайлуDbf);
        ФайлДБФ.Индексы.Добавить("IDX111","ARTICUL",Истина,Ложь,"");
        ФайлДБФ.СоздатьИндексныйФайл(ИмяФайлаИндекса);
        ФайлДБФ.ТекущийИндекс=ТоварыДБФ.Индексы.Найти("IDX111");
        

       Далее цикл по выборке данных, в котором
        ФайлДБФ.Ключ.ARTICUL=КодТовара;  
    Если ФайлДБФ.НайтиПоКлючу("=") Тогда
            ...
    Иначе
            ...
   КонецЕсли;
При выполнении метода ФайлДБФ.НайтиПоКлючу("=")
1С Предприятие "молча" закрывается ничего не сообщая. Может кто знает как с этим бороться. Я выяснил следующее: когда суммарная длина всех полей файла dbf в более 232 символа, то все нормально работает, а когда 244 и более (эта цифра может оказаться и меньше-не проверял)-перестает. То есть если не добавлять поле ADDNUM3 и все, что следуют в коде после него, то все работает, а как только добавляешь ADDNUM3-"валиться".
 
 
   Олег1234
1 - 03.12.04 - 16:29
Опечатка вышла: строку "когда суммарная длина всех полей файла dbf в более 232 символа" следует читать "когда суммарная длина всех полей файла dbf 232 символа"
   Олег1234
2 - 03.12.04 - 16:33
Я так понял, что какое-то ограничение на длину индекса срабатывает, когда суммарная длина всех полей в dbf большая.
   Олег1234
3 - 03.12.04 - 16:33
Но вот что с этим делать?.. Может кто знает?
   Олег1234
4 - 03.12.04 - 17:19
Обошел это дело, вызвав вместо метода
ФайлДБФ.НайтиПоКлючу("=")

ФайлДБФ.Найти(КодТовара,"=")
Вроде работает...
   Волшебник
 
5 - 03.12.04 - 17:22
Главное - не мешать человеку!
   Олег1234
6 - 03.12.04 - 17:23
От этого черное не станет белым и метод НайтиПоКлючу не заработает
   Волшебник
 
7 - 03.12.04 - 17:27
(6) Да, я тоже наталкивался на эту ошибку. Может релиз обновить?
   Олег1234
8 - 03.12.04 - 17:31
У меня 8.0.8.7.
   427
 
9 - 03.12.04 - 17:47
работает все...
   Олег1234
10 - 03.12.04 - 17:56
Да, но иногда не так как хотелось бы...
 
 


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