Имя: Пароль:
1C
1C 7.7
v7: Индексированная таблица
0 Fenikus
 
29.02.12
14:24
Всем доброго дня. Подскажите, пожалуйста, почему может не работать следующий код (поиск не срабатывает):

Если тзОстаткиОверсток.НайтиСтроку("ТоварИДИнд",ТоварИД,,1) <> 0 Тогда
ДБФ.TZKol = тзОстаткиОверсток.ОстатокКол;
ДБФ.TZRub = тзОстаткиОверсток.ОстатокРуб;
КонецЕсли;

при том, что такой код отрабатывает нормально:

тзОстаткиОверсток.ВыбратьСтроки("ТоварИДИнд");
Пока тзОстаткиОверсток.ПолучитьСтроку("ТоварИДИнд") = 1 Цикл
Если тзОстаткиОверсток.ТоварИД = ТоварИД Тогда
 ДБФ.TZKol = тзОстаткиОверсток.ОстатокКол;
 ДБФ.TZRub = тзОстаткиОверсток.ОстатокРуб;
 Прервать;
КонецЕсли;
КонецЦикла;
1 Mikeware
 
29.02.12
14:27
(0) во втором случе индекс не нудет простой перебор...
А вообщес, смотри индекс и ключ.
2 Fenikus
 
29.02.12
14:29
Может быть пробелы слева и справа как-то на это влиять могут?
3 Mikeware
 
29.02.12
14:33
(2) справа, скорее.
хотя ХЕЗ. пробуй. спроси у тов. Профайлера...
4 Fenikus
 
29.02.12
14:39
косяк из-за того, что заполнение было через запрос

Запрос.ВыполнитьИнструкцию(ТекстЗапроса,тзОстаткиОверсток,0);

интересно только, это баг или фича?
5 Fenikus
 
29.02.12
14:46
В общем, когда добавил индекс после заполнения таблицы, то все сработало