Доступ по индексу строки
ТЗ[Индекс] и ТЗ.Получить(Индекс) — синонимы, оба возвращают строку по её позиции, как Массив[Индекс]:
ПерваяСтрока = ТЗ[0];
ПерваяСтрока = ТЗ.Получить(0); // то же самоеИндекс за пределами диапазона — исключение, как у массива, а не Неопределено.
Передача по ссылке
ТаблицаЗначений — ссылочный тип, как Массив, Структура и Соответствие. Передана в процедуру/функцию — та же ссылка, не копия: изменение строк и ячеек видно и снаружи, Знач защищает только от переприсвоения параметра целиком. Независимая копия — Скопировать().
Сравнение и проверка типа
ТЗ1 = ТЗ2 сравнивает ссылки на объект, а не содержимое — поэлементного сравнения «из коробки» нет.
ТипЗнч(ТЗ) = Тип("ТаблицаЗначений"); // Истина, если ТЗ — именно ТаблицаЗначенийПроизводительность
Поиск без индекса (Найти(), НайтиСтроки()) — линейный перебор всех строк на каждый вызов. На таблице в сотни тысяч строк и частых поисках это заметно — см. Индексы. Свернуть() и Сортировать() перестраивают всю таблицу целиком, а не отдельные строки — на больших таблицах тоже не бесплатны.
Место среди других коллекций
| Упорядоченность | Ключ/индекс | Типизация | |
|---|---|---|---|
| Массив | строгая | числовой индекс | нет |
| Структура | не гарантирована | имя-строка | нет |
| Соответствие | не гарантирована | любой тип | нет |
| ТаблицаЗначений | строгая | числовой индекс строки + имя колонки | опционально, на уровне колонки |
ТаблицаЗначений — практически единственная из универсальных коллекций 1С с настоящей двумерностью и необязательной типизацией колонок; в остальном (передача по ссылке, сравнение, отсутствие параметризованного конструктора кроме структуры колонок) ведёт себя как остальные ссылочные коллекции платформы. В отличие от Массива и Структуры, фиксированной (неизменяемой) версии у ТаблицыЗначений нет — как ключ кэша ПовторноеИспользованиеЗначений она не годится.