Имя: Пароль:
1C
1C 7.7
v7: Запрос к регистрам по ОЛЕ, фильтр - СписокЗначений, ошибка - плохой тип переменн
0 Zhuravlik
 
08.12.11
10:56
Здравствуйте, помогите пожалуйста разобраться с таким вопросом.
Делаю запрос к регистру подключаемой по ОЛЕ Базе.
Чтобы оптимизировать выборку движений, я заранее создал таблицу значений, в которую занес элементы номенклатуры из ОЛЕ.
И если я делаю так:


тз.ВыбратьСтроки();
Пока тз.ПолучитьСтроку() = 1 Цикл
 регОЛЕ.УстановитьЗначениеФильтра("Номенклатура", тз.оле_ном);
 //выборка движений и пр.
КонецЦикла;



То все нормально. Но долговато. Сделал по другому:


спНом = СоздатьОбъект("СписокЗначений");
тз.выгрузить(спНом,,,"оле_ном");
регОЛЕ.УстановитьЗначениеФильтра("Номенклатура", спНом, 2);
//выборка движений и пр.



И 1с мне заругалась, пишет - ошибка, плохой тип переменной.
Можно как-нибудь победить без ковыряния в глобальнике ОЛЕ-базы?
И еще, я вот думаю, если сделаю так:

тз.ВыбратьСтроки();
Пока тз.ПолучитьСтроку() = 1 Цикл
 регОЛЕ.УстановитьЗначениеФильтра("Номенклатура", тз.оле_ном);
КонецЦикла;
 //выборка движений и пр.


Т.е. в цикле установлю все значения фильтра, а ПОТОМ буду выбирать движения, он мне покажет движения по всем фильтрам, или по последнему?
1 Ёпрст
 
08.12.11
10:58
1. список должен быть ОЛе-объектом, а не "родным"
2.по последнему
2 Ёпрст
 
08.12.11
10:59
3. писать проще прямой запрос к сторонней базе - это в разы быстрее, чем тормоз оля.
3 Zhuravlik
 
08.12.11
10:59
(1) ... а как?
(2) я до них еще не дорос
4 Zhuravlik
 
08.12.11
11:01
То есть только с Eval?
5 ДенисЧ
 
08.12.11
11:01
спНом = БазаТам.CreateObject("СписокЗначений");
6 Zhuravlik
 
08.12.11
11:02
(5) Спасибо, сейчас попробую)
7 Zhuravlik
 
08.12.11
11:29
(5) Все получилось, еще раз спасибо)
Независимо от того, куда вы едете — это в гору и против ветра!