#0
by Elkin Palkin
направьте, куда посмотреть :)В желто-красной книге по работе с XBase, а в особенности по работе с ключами, примеров меньше, наверно не бывает :)Дано:Создаю DBF файл с 4-мя полями:Code1, Code2, Cost1, Cost2.Первые два поля - текстовые, а последние - числовые.Хочу создать индекс по первым двум полям, чтобы потом при загрузке можно было дергать очень быстро.В итоге такой код (выгрузка)Д.ДобавитьИндекс("Idx","CodeOwner+CodeCost",1,0,"");Теперь хочу загрузить:Если Д.Найти(КлючПоиска,0)=0 ТогдаИ вот здесь ВСЕГДА получается =0.Где неправильно делаю?
#2
by Gloom
Д.ДобавитьИндекс("Idx","TRIM(CodeOwner)+TRIM(CodeCost)",1,0,"");//т.е. пробелы убрать, хотя всё-равно безграмотно - например для кодов "11"+"1" и "1"+"11" ключ одинаковый будет
#3
by Elkin Palkin
Дык у меня и там, и там (в обоих базах), длины кодов совпадают. Все равно надо форматировать?
#4
by Elkin Palkin
>хотя всё-равно безграмотноУ меня CodeOwner - уникальный вообще, а CodeCost - уникальный в пределах подчинения. Тогда не безграмотно? :)
#6
by Elkin Palkin
а подсмотреть никак нельзя значения ключа для записи? Ну к примеру перебирать записи и в этот момент посмотреть какой ключ соотвествуют этой записи? Ну или еще как-нибудь?
#8
by Elkin Palkin
У меня после строкиД.ДобавитьИндекс("Idx","CodeOwner+CodeCost",1,0,"");ИдетД.СоздатьФайл(ИмяФайлаДБФ,ИмяФайлаСДХ)Вторым параметром указывается индексный файл, поэтому и не надо СоздатьИндексныйФайл. У меня по-крайней мере индексный файл создается такой конструкцией :) Проверял :)
#10
by Elkin Palkin
Чего-то я не догоняю, а в моем случае вместоБДРасч.Ключ.CLIENT=чего писать следует?КонструкцияД.Ключ.Idx=ругается, мол, поле агрегатного объекта не обнаружено (Idx)
#11
by КонецЦикла
У мени были просто поля и индекс:**********************Если полей больше: БДДок.ДобавитьИндекс("DEBTS","TRIM(DOCTYPE)+DTOS(DOCDATE)+TRIM(DOCNUM)+'@'",0,0,"");То и ищем по составному: Если БДДок.НайтиПоКлючу=1 ТогдаНе говорю, что это единственно правильный спопоб, но так работалоВ твоем случае - КодеОвнер, КодеКост
#12
by Mikeware
2Д.Ключ.CodeOwner=...Д.Ключ.CodeCost=...Д.НайттПоКлючулибоД.Найти(КлючПоиска)только проверь длину строки КлючПоиска - должно быть всегда 15. Коды точно текстовые? Длины кодов точно 10 и 5?При выводе в ДБФ выводи для контроля выражение, соответствующее индексу, а при загрузке - КлючПоиска.И глупый вопрос - а в дбф-ке вообще записи есть? И тем более с таким индексом?
#13
by Elkin Palkin
Точно! :) Ур-ра! Заработала! Спасибо.Да записи есть. Там файлики многометровые получаются :) И ДБФ и СДХ, это я проверил :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Как из группового контекста получить документ?
- а почему нельзя поставить длину-2 и точность-2 (тип: Число (Реквизит диалога))?
- Регламентная отчетность. Ошибка Доступ к файлу закрыт.
- Что значит ошибка 10054 в логах ХАСП?
- Выбор значения свойств характеристити
- ЗиК: почему не учитывает когда праздничные совпадают с выходными
- Печать документов в 1С 7.7
- Формируется проводка в ЗИК д 91.2 к 69.3 откуда!!???
- Справка 0504833 Бюджет 5
- ЗиК Как увидеть в своде проводок НДФЛ по подразделениям?
- Метод ВыполнитьЗапрос() - не выдает итоги по КорСчету
- Документ "Зачет аванса поставщику" не попадает в книгу покупок
- подрядчик строительства: импульс-ИВЦ, ты маздай
- V77 Обращение через OLE к реквизиту с идентификатором "ID"
- Какой фискальный регистратор лучше?
- При отправке сообщения произошла ошибка : Общая ошибка MAPI
- БухИтоги . ВыбратьПериоды
- 1С v 8.0 Как в запросе по регистру сведений выбрать последн. знач. записи оного
- Как убрать префикс Документа с печатной Формы?
- Где отчет по исполнителям (документ "Отчет пр-ва за смену") в УПП