Читайте дальше...
Создание таблицы значений
// Создание пустой таблицы
ТЗ = Новый ТаблицаЗначений;
// Создание с указанием колонок
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Наименование");
ТЗ.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Добавление колонок
// Добавление колонки без типа
ТЗ.Колонки.Добавить("Наименование");
// Добавление колонки с типом
ТЗ.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата"));
// Добавление колонки с составным типом
Типы = Новый Массив;
Типы.Добавить(Новый ОписаниеТипов("Строка"));
Типы.Добавить(Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Комбинация", Новый ОписаниеТипов(Типы));
Добавление строк
// Добавление пустой строки
НоваяСтрока = ТЗ.Добавить();
// Добавление строки с значениями
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Наименование = "Товар 1";
НоваяСтрока.Количество = 10;
НоваяСтрока.Дата = ТекущаяДата();
// Добавление нескольких строк
Для i = 1 По 5 Цикл
НСтр = ТЗ.Добавить();
НСтр.Наименование = "Товар " + i;
НСтр.Количество = i * 10;
КонецЦикла;
Получение и изменение значений
// Получение значения
Значение = ТЗ[0].Наименование;
// Изменение значения
ТЗ[0].Наименование = "Новое наименование";
// Перебор всех строк
Для Каждого СтрокаТЗ Из ТЗ Цикл
Сообщить(СтрокаТЗ.Наименование + " - " + СтрокаТЗ.Количество);
КонецЦикла;
Поиск и фильтрация
// Поиск по значению
НайденныеСтроки = ТЗ.НайтиСтроки(Новый Структура("Наименование", "Товар 1"));
// Фильтрация
ОтфильтрованнаяТЗ = ТЗ.Скопировать();
ОтфильтрованнаяТЗ.Отбор.Наименование.Установить("Товар 1");
ОтфильтрованнаяТЗ.ПрименитьОтбор();
// Более сложный фильтр
ОтфильтрованнаяТЗ = ТЗ.Скопировать();
ОтфильтрованнаяТЗ.Отбор.Количество.Установить(10, РежимОтбора.Больше);
ОтфильтрованнаяТЗ.ПрименитьОтбор();
Сортировка
// Сортировка по одной колонке
ТЗ.Сортировать("Наименование");
// Сортировка по нескольким колонкам
ТЗ.Сортировать("Наименование, Количество Убыв");
// Сортировка с указанием направления
ТЗ.Сортировать("Наименование Возр, Количество Убыв");
Группировка и итоги
// Добавление итогов
ТЗ.Итоги.Добавить("Количество", "Сумма");
// Вычисление итогов
ТЗ.ВычислитьИтоги();
Сообщить("Общее количество: " + ТЗ.Итоги.Количество.Сумма);
// Группировка строк
Группировка = ТЗ.Скопировать();
Группировка.Свернуть("Наименование", "Количество");
Копирование и объединение
// Полное копирование
НоваяТЗ = ТЗ.Скопировать();
// Копирование структуры (без данных)
НоваяТЗ = ТЗ.СкопироватьКолонки();
// Объединение таблиц
ТЗ1.Загрузить(ТЗ2);
Работа с колонками
// Удаление колонки
ТЗ.Колонки.Удалить("Наименование");
// Изменение порядка колонок
ТЗ.Колонки.ПоменятьПорядок("Количество", 0);
// Получение списка колонок
Для Каждого Колонка Из ТЗ.Колонки Цикл
Сообщить(Колонка.Имя);
КонецЦикла;
Преобразование в другие типы
// В массив структур
МассивСтруктур = ТЗ.ВыгрузитьКакМассивСтруктур();
// В дерево значений
ДеревоЗначений = Новый ДеревоЗначений(ТЗ);
// В JSON
ЗаписьJSON = Новый ЗаписьJSON;
ТЗ.ЗаписатьJSON(ЗаписьJSON);
СтрокаJSON = ЗаписьJSON.Закрыть();
11. Пример комплексного использования
// Создание и заполнение
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Товар");
ТЗ.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
Для i = 1 По 10 Цикл
Стр = ТЗ.Добавить();
Стр.Товар = "Товар " + i;
Стр.Количество = i;
Стр.Цена = i * 100;
КонецЦикла;
// Добавление вычисляемой колонки
ТЗ.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
Для Каждого Стр Из ТЗ Цикл
Стр.Сумма = Стр.Количество * Стр.Цена;
КонецЦикла;
// Сортировка и итоги
ТЗ.Сортировать("Сумма Убыв");
ТЗ.Итоги.Добавить("Сумма", "Сумма");
ТЗ.ВычислитьИтоги();
// Вывод результатов
Для Каждого Стр Из ТЗ Цикл
Сообщить(Стр.Товар + ": " + Стр.Количество + " x " + Стр.Цена + " = " + Стр.Сумма);
КонецЦикла;
Сообщить("Итого: " + ТЗ.Итоги.Сумма.Сумма);
Это основные примеры работы с Таблицей Значений в 1С. В зависимости от версии платформы некоторые методы могут немного отличаться.








