====== Таблица значений ====== ===== Описание ===== Таблица значений это один из самых частых используемых коллекций и одна из самых удобных. Используется для хранения данных разных объемов, как больших так и маленьких. Внимание.Таблица значений доступна только на сервере. Таблицу значений можно характеризовать следующими свойствами: * Таблица значений имеет коллекцию строк и коллекцию колонок. * Колонки таблицы значений могут быть строго типизированы, хотя это необязательно. * Таблица значений может быть выведена на форму и обработана пользователем. Таблица значений представляет широкий выбор возможностей для обработки ее значений: * Построение индексов для более быстрой обработки. * Выгрузка загрузка, как всей таблицы, так и отдельных строк\столбцов, копирование и заполнение значений. * Использование отборов. * Сортировка по столбцам. * Свертывание. * Выгрузка полностью или частично. ===== Создание и использование ===== Создание таблицы значений происходит с помощью метода Новый: НоваяТаблица = Новый ТаблицаЗначений; //После создания таблицы значений необходимо определить колонки таблицы значений: НоваяТаблица.Колонки.Добавить(«Колонка1»); Так как колонки таблицы значений это коллекция, для нее доступен не только метод добавить но и остальные методы характерные для коллекций(Найти, Вставить, Удалить). При определении колонки кроме имени можно указать ее тип, заголовок и ширину колонки. Последние два параметра необходимы для уточнения как будет выглядеть таблица на форме. Тип колонки задается совершенно не очевидно, для этого в качестве параметра, нужно передать значение с типом ''ОписаниеТипов''. Более детальный синтаксис можно посмотреть здесь: [[1c:общие:описание_типов_значений|Общие объекты->Описание типов значений]], но к примеру если просто нужен тип справочник номенклатура то проще его будет указать так: ТипНоменклатура = Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»); МояТаблица.Колонки.Добавить("Номенклатура", ТипНоменклатура); Добавление строк в Таблицу значений происходит с помощью метода Добавить() или Вставить(), чем они отличаются вы наверняка знаете, добавление происходит следующим образом: НоваяСтрокаТаблицы = НоваяТаблица.Добавить(); //Далее следует заполнение колонок таблицы НоваяСтрокаТаблицы.Колонка1 = ЗначениеДляЗаполнения ===== Другие часто используемые операторы при работе с таблицей значений ===== * ''Очистить'' – очищает таблицу от данных, сохраняя структуру, параметров не имеет * ''НайтиСтроки(Отбор)'' – ищет строки по указанному отбору, который должен быть [[1c:коллекции:структура|структурой]]. Возвращает массив строк, следует учесть что метод возвращает массив с ссылками на строки таблицы, следовательно изменяя строки в массиве мы изменяем их в таблице. * ''Скопировать'' – позволяет скопировать всю таблицу или определенные строки и колонки, возвращает таблицу значений. Параметры указывать необязательно, если вы хотите скопировать всю таблицу значений. Например: МассивСтрок = НайтиСтроки(Новый Структура("КолонкаРаз",ЗначениеДляПоиска)); КопияТаблицы = НоваяТаблица.Скопировать(МассивСтрок, "КолонкаРаз,КолонкаДва,КолонкаТри"); * ''Заполнить'' - заполняет колонку\колонки определенным значением. НоваяТаблица.Заполнить(Значение, "КолонкаРаз"); * ''Найти()'' – ищет значение в одной колонке или во всех, возвращает строку таблицы значений или ''Неопределенно''. Пример НайденнаяСтрока = НоваяТаблица.Найти(Значение, "КолонкаРаз"); * Итог("НазваниеКолонки") – Выводит итог по числовым данным в указанной колонке. Возвращает итог или ''Неопределенно'', если среди значений в колонке, число не было обнаружено. * Свернуть – группирует строки таблицы, суммируя числовые колонки, оставляя только уникальные значения в суммированных колонках то есть при наличии вот такой таблицы. ^ № пп ^ Номенклатура ^ Количество ^ | 1 | Лопата | 5 | | 2 | Вилы | 6 | | 3 | Грабли | 9 | | 4 | Лопата | 4 | | 5 | Грабли | 2 | ^ Итого 26 штук^^^ После метода ''Свернуть'' Таблица.Свернуть("Номенклатура", "Количество"); мы получим вот такую таблицу: ^ № пп ^ Номенклатура ^ Количество ^ | 1 | Лопата | 9 | | 2 | Вилы | 6 | | 3 | Грабли | 11 | ^ Итого 26 штук^^^ Так как таблица значений недоступна на клиенте, для отображения таблицы на форме необходимо использовать метод ''ЗначениеВДанныеФормы(ТаблицаСДанными, ТаблицаНаФорме)''