Имя: Пароль:
1C
 
Узнать позицию в списке значений по представлению
0 1Сергей
 
26.04.11
15:54
Имеется список значений. В него методом Установить занесены некоторые значения (т.е. по представлению). Мне нужно найти позицию (номер строки) по определенному представлению. Такое возможно без перебора?

Например;
СЗ=СоздатьОбъект("СписокЗначений");
СЗ.Установить("Планета",Земля);
СЗ.Установить("ГравитационнаяПостоянная",9.8);
СЗ.Установить("ЕстесвенныйСпутник",Луна.ТекущийЭлемент());

И, допустим, надо узнать Порядковый номер для "ГравитационнаяПостоянная". Как?
1 Cthulhu
 
26.04.11
15:55
перебором.
2 Cthulhu
 
26.04.11
15:55
только.
3 1Сергей
 
26.04.11
15:56
А удалить значение тоже не получится, не зная порядковый номер?
4 Рэйв
 
26.04.11
15:57
Получить

Получить значение элемента по указанному представлению.
Синтаксис:
Получить(<Строка>)
Англоязычный синоним:
Get
Параметры:

<Строка>    Строковое выражение, содержащее задаваемое символьное представление получаемого значения.
Возвращаемое значение:
Полученное значение из списка.
Описание:
Метод Получить возвращает значение по указанному представлению. Если значения с таким представлением нет, то возвращается пустое значение.
Пример:
ОпредЗнач = Спис.Получить("ОпредПредст");
5 Mikeware
 
26.04.11
15:57
НайтиЗначение(Получить("ГравитационнаяПостоянная"))
6 1Сергей
 
26.04.11
15:57
(5) значения могут повторяться ведь
7 Ёпрст
 
гуру
26.04.11
15:58
(0)

Позиция = СЗ.НайтиЗначение(СЗ.Получить("ГравитационнаяПостоянная"));
8 1Сергей
 
26.04.11
15:58
(7) см (6)
9 Mikeware
 
26.04.11
15:58
Хотя, имхо, в списке значений "номер строки" не должен иметь смысла. СЗ - своего рода ассоциативный массив
10 Рэйв
 
26.04.11
15:58
+ну порядковый номер узнать через НайтиЗначение потом
11 1Сергей
 
26.04.11
16:00
(9) да, мне ваще-то. Удалить надо по определенному представлению
12 Рэйв
 
26.04.11
16:00
(6)Тогда без перебора никак.
13 1Сергей
 
26.04.11
16:00
а удалить не зная номер строки никак
14 Mikeware
 
26.04.11
16:01
(11)Ну тогда через ВСтрокуСРазделителями
15 GreyK
 
26.04.11
16:04
(6) Не могут повторяться, ты же методом установить делал.
16 1Сергей
 
26.04.11
16:06
(15)
СЗ.Установить("флУдалитьПомеченные",1);
СЗ.Установить("флВключатьГруппы",1);
17 GreyK
 
26.04.11
16:09
(16) "представление" у них разное, а "Получить" и "Установить" работает именно с "представление".
18 1Сергей
 
26.04.11
16:10
(17) НайтиЗначение на представление не смотрит
19 Ёпрст
 
гуру
26.04.11
16:10
(17) и че ?
20 1Сергей
 
26.04.11
16:11
в общем, понял. Спасибо всем
21 Ёпрст
 
гуру
26.04.11
16:11
забить на СЗ, делать либо в ТЗ/Индексированной ТЗ/Векторе/Ассоциативном векторе/Структуре и т.д.
22 1Сергей
 
26.04.11
16:12
(21) мне СЗ всегда нравился своей простотой и удобством
23 Ёпрст
 
гуру
26.04.11
16:16
(22) медленно, в нём все методы медленные + много чего не хватает.
24 GreyK
 
26.04.11
16:17
(22) СЗ.Установить("Планета",Планета);
СЗ.Установить(""+Планета.Наименование+":ГравитационнаяПостоянная",9.8);
СЗ.Установить(""+Планета.Наименование+":ЕстесвенныйСпутник:"+НомерСпутника,Луна.ТекущийЭлемент());
25 GreyK
 
26.04.11
16:19
+(24) (22) Луна.ТекущийЭлемент() - это как?
26 1Сергей
 
26.04.11
16:20
(25) например,
Луна = СоздатьОбъект("Справочник.Спутники");
Луна.НайтиПоНаименованию("Луна");
27 GreyK
 
26.04.11
16:25
(26) Так было-бы правильнее:
Спутники = СоздатьОбъект("Справочник.Спутники");
Спутники.НайтиПоНаименованию("Луна");

А то чет на "Луна, луна. Цветы, цветы" смахивает, могут и привлечь за плагиат :)
28 GreyK
 
26.04.11
16:32
+(24) И конечно-же СЗ.ДобавитьЗначение(Планета,"Планета");
29 Cthulhu
 
27.04.11
10:23
(23): как раз "получить" и "установить" - быстрые.
использование их в качестве штатных "псевдоиндексов" для ТЗ иногда очень ускоряет работу с ней. Когда ТЗ большая, не тасуется, и в ней часто нужно искать конкретное значение в конкретной колонке, и при этом у этих значений есть уникальное текстовое представление - то вместо многократных поисков по ТЗ (а "найтизначение" что в ТЗ что в СЗ - тупым перебором реализовано) гораздо быстрее получается хранить в СЗ по представлениям номера строк такой ТЗ.
30 Cthulhu
 
27.04.11
10:41
ЗЫ: что-то меня снова этот вопрос забеспокоил.
пойду поковыряюсь, попробую оптимизировать через текстовое представление СЗ...