Имя: Пароль:
1C
 
Установить фильтр в индексированной таблице
0 Киса_Мяу
 
07.10.09
11:34
Всем здраствуйте))
Устанавливаю фильтр на индексиров.табл. - без отбора только уникальных значений - не фильтрует,как нужно.

Сначала у меня создается ИТЗ со всеми колонками,затем она заполняется,потом:
ИТЗ_Фильтр = ИТЗ;
   
ИТЗ_Фильтр.ДобавитьИндекс("Док","Уникальный_Номер",0);
ИТЗ_Фильтр.УстановитьФильтр(ИТЗ.Уникальный_Номер,ИТЗ.Уникальный_Номер,"Док",0);

Есть в ИТЗ_Фильтр две строки с уникальным номером = 14(число),а в результат попадает только 1 строка!!!
Делала даже: Сообщить(ИТЗ_Фильтр.количествоЗначенийКлюча("Док",ИТЗ.Уникальный_Номер)) - для числа (14) - опять же 1 строка всего.
1 ТелепатБот
 
гуру
07.10.09
11:34
2 Aloex
 
07.10.09
11:46
НайтиЗначение(<Знач>,<Строка>,<Колонка>)
3 Ёпрст
 
гуру
07.10.09
11:48
(0) Мот где строка, а где число 14 ?
:)
4 Киса_Мяу
 
07.10.09
11:54
(3) и там,и там число
5 Ёпрст
 
гуру
07.10.09
11:58
(4) не верю.. мот не там смотришь?...
6 Киса_Мяу
 
07.10.09
12:02
(5)
Поставила точку останова на строке,где устанавливаю фильтр,то есть:
   ИТЗ_Фильтр.УстановитьФильтр(ИТЗ.Уникальный_Номер,ИТЗ.Уникальный_Номер,"Док",0);

В табло:

ТипЗначенияСтр(ИТЗ_Фильтр.Уникальный_Номер) = "Число"
ТипЗначенияСтр(ИТЗ.Уникальный_Номер) = "Число"
ИТЗ.Уникальный_Номер = 1
ИТЗ_Фильтр.Уникальный_Номер = 1
7 Ёпрст
 
гуру
07.10.09
12:05
(6) Ну и ? ТЗ.ВыбратьСтроку сделай.. чего, в ней несколько строк =1 есть?
И это, один индекс добавляешь ?
8 Киса_Мяу
 
07.10.09
12:09
(7)да,делаю ИТЗ_Фильтр.Показать("Док") - на экран выводится таблица только с 1 строкой ,где уникальныйномер = 14(хотя изначально до установки фильтров и индексов - в ней две строки с номером 14.
еще проверяю ИТЗ_Фильтр.КоличествоСтрок("ДОк") - тоже =1

метод "ДОбавитьиндекс" только 1 во всем коде,и "установитьфильтр" тоже(((((
9 Ёпрст
 
гуру
07.10.09
12:12
(8) Гы...

ты в (0) и в отладчике смотришь для ключа = 1, а тут говоришь за ключ = 14...
Мот определишься, для начала ?
:))

Всё там работает.
10 Киса_Мяу
 
07.10.09
12:19
(9)
в (0) - у меня ключ = 14:
****************
Есть в ИТЗ_Фильтр две строки с уникальным номером = 14(число),а в результат попадает только 1 строка!!!
Делала даже: Сообщить(ИТЗ_Фильтр.количествоЗначенийКлюча("Док",ИТЗ.Уникальный_Номер)) - для числа (14) - опять же 1 строка всего.
******************
в отладчике я проверяла лишь тип,а он для всей колонки же одинаковый,вот для (14) проверила:

ТипЗначенияСтр(ИТЗ_Фильтр.Уникальный_Номер) = "Число"
ТипЗначенияСтр(ИТЗ.Уникальный_Номер) = "Число"
ИТЗ.Уникальный_Номер = 14
ИТЗ_Фильтр.Уникальный_Номер = 14
11 Ёпрст
 
гуру
07.10.09
12:22
(10) не верится ...
Как проверяешь, что 2 строки с Уникальный_Номер=14 есть?
..
ТЗ.ВыбратьСтроку() - они есть там?
12 Киса_Мяу
 
07.10.09
12:24
(11)
   ИТЗ_Фильтр.ДобавитьИндекс("Док","Уникальный_Номер",0);
   ИТЗ_Фильтр.Показать();
здесь две строки,где УникальныйНомер = 14
13 Киса_Мяу
 
07.10.09
12:26
+ (11)
у меня много таких строк,где ключи повторяются это 14,17,18,19, но до фильтра их 2 или 3,а после фильтра получается всего одна
я для примера 14 привела
14 Ёпрст
 
гуру
07.10.09
12:27
(12) ок..
так, что кажет?

 ИТЗ_Фильтр.ДобавитьИндекс("Док","Уникальный_Номер",0);
 ИТЗ_Фильтр.УстановитьФильтр(14,14,"Док",0)
 ИТЗ_Фильтр.Показать();
 ИТЗ_Фильтр.Показать("Док");
15 Ёпрст
 
гуру
07.10.09
12:27
+14 версия 1срр , какая ?
16 Киса_Мяу
 
07.10.09
12:32
(14)аааааааааааааа,сделала:
   ИТЗ_Фильтр.ДобавитьИндекс("Док","Уникальный_Номер",0);
   ИТЗ_Фильтр.Показать();
   ИТЗ_Фильтр.УстановитьФильтр(14,14,"Док",0);
   ИТЗ_Фильтр.Показать("Док");
   Сообщить(ИТЗ_Фильтр.КоличествоСтрок("ДОк"));

Показывает 2 строки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!и сообщает:2,в чем дело тогда???
17 Киса_Мяу
 
07.10.09
12:32
(15)
версия 2.0.0.0
18 Ёпрст
 
гуру
07.10.09
12:33
(16) Как в чем ? В том что работает!!!!
:))

А вот что ты там передаешь в этом коде и когда:
ИТЗ_Фильтр.УстановитьФильтр(ИТЗ.Уникальный_Номер,ИТЗ.Уникальный_Номер,"Док",0);

это только тебе известно
:)
19 Киса_Мяу
 
07.10.09
12:33
(15)пардон,версия 3.0.1.20
20 Ёпрст
 
гуру
07.10.09
12:34
(17) обновилась бы до 3.0.1.23 ...
21 Киса_Мяу
 
07.10.09
12:41
вообщем,я нашла в чем дело!!!!!!!!вот блин,столько времени на это сгубила,у меня что-то с колонками случилось.
Вместо ИТЗ_Фильтр = ИТЗ;
Я сделала ИТЗ_Фильтр = СоздатьОбъект("ИндексированнаяТаблица");
22 Киса_Мяу
 
07.10.09
12:41
+ (21)
Потом
   ИТЗ_Фильтр.Загрузить(ИТЗ,,"Уникальный_Номер,ПлатДок,Контрагент,Договор,СуммаАванса");
23 Киса_Мяу
 
07.10.09
12:42
по-моему все ок,спасибо огромное)))))))))))
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.