Имя: Пароль:
1C
1C 7.7
v7: ИндексированнаяТаблица.Сортировать() vs ТаблицаЗначений.Сортировать()
0 sournk
 
20.11.12
08:38
После выполнения кода:


итзВрем = СоздатьОбъект("ТаблицаЗначений");
итзВрем = СоздатьОбъект("ИндексированнаяТаблица");

итзВрем.НоваяКолонка("Знач");
итзВрем.НоваяСтрока(); итзВрем.Знач = 5;
итзВрем.НоваяСтрока(); итзВрем.Знач = 3;

итзВрем.Сортировать("Знач");
итзВрем.УдалитьСтроку(1);    
итзВрем.ВыбратьСтроку();


В ТаблицеЗначений останется 5, в ИндексированнойТаблице 3.

Как заставить ИТЗ работать также как ТЗ?
1 Ёпрст
 
20.11.12
08:59
удалять по индексу вестимо.
2 Ёпрст
 
20.11.12
08:59
Если че, номерСтроки в ИТЗ не меняется при сортировке.
3 Ёпрст
 
20.11.12
08:59
и вообще, удалять что-то в ИТЗ - моветон.
4 Ёпрст
 
20.11.12
09:00
там и без этого можно всё сделать, тупо фильтрами.
5 sournk
 
20.11.12
09:24
(2) Если это фича, то отстал.
6 Mikeware
 
20.11.12
09:39
(3) собственно, и сортировать ее - тоже моветон.
7 Ёпрст
 
20.11.12
09:49
(6) ну, при выводе куда либо (в отчет там), вполне годный метод
:)
8 Mikeware
 
20.11.12
09:52
(7) Ну так индекс и есть сортировка...
9 ADirks
 
20.11.12
10:05
(8) Не, ну если уж быть занудно точным, то индекс и сортировка - разные вещи. Сортировка - физическое изменение последовательности. Индекс - механизм доступа к последовательности, который саму последовательность не изменяет.
В ИТ сортировки нет, не было и не будет.

Метод Сортировать() был задуман для облегчения перехода от ТЗ, к ИТ, а вышло вон чё... Регулярно выносит моск всем...
10 Mikeware
 
20.11.12
11:06
(9) Естественно, физически разные :-))
Логически - одинаковые. т.е. суть порядок получения записей при последовательном считывании. Можем считать, что у ТЗ один неявный индекс - НомерСтроки.
Ну а метод Сортировать() - для ИТЗ как-то сомнительна его надобность.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.