Таблица значений в языке 1С применяется для работы с различными объектами. Тип таблица значений относиться к универсальным коллекциям значений.
Таблица значений — это не сохраняемый в базе данных объект. Он позволяет
строить динамически изменяемые наборы значений и манипулировать ими (добавлять, редактировать, сортировать и удалять элементы). Ограничений на типы хранимых значений нет, т. е. в одном списке значений могут храниться данные разных типов. В отличие от списка значений, в каждой строке которого записано одно значение (по сути, таблица из одного столбца), таблица значений имеет большое количество строк и столбцов.
Создание таблицы значений в языке 1С
Создание таблицы значений можно разделить на три этапа:
Во-первых инициализация таблицы значений:
Табабб=новый ТаблицаЗначений;
Во-вторых создание колонок для данной таблицы значений:
Табабб.Колонки.Добавить("Адресат");
Табабб.Колонки.Добавить("Адрес");
Табабб.Колонки.Добавить("Сообщение");
В третьих заполняем таблицу значений данными:
//заполняет строку таблицы значений
Стр = Табабб.Добавить();
Стр.Адресат=док.ФизЛицо;
Стр.Адрес=док.ФизЛицо.КонтактнаяИнформация[3].АдресЭП;
Стр.Сообщение="";
Cтрока таблицы значений 1c
Строка заполняется следующим образом:
Во-первых добавляем строку в таблицу значений
Стр = Табабб.Добавить();
Во-вторых заполняем строку таблицы значений данными
Стр.Адресат=док.ФизЛицо;
Стр.Адрес=док.ФизЛицо.КонтактнаяИнформация[3].АдресЭП;
Стр.Сообщение="";
Пример создания и заполнения таблицы значений:
Методы объекта Таблица значений в языке 1с
Метод Добавить. Добавляет строку а конец таблицы значений.
ТЗ=новый ТаблицаЗначений;
НоваяСтрока=ТЗ.Добавить();
НоваяСтрока.Адресат="Петров Петр Иванович";
НоваяСтрока.Адрес="doc@ithelpyou.ru";
НовасСтрока.Сообщение="Добавлено значение программно";
Метод Вставить. Вставляет новый элемент в таблицу значений на позицию с указанным индексом.
ТЗ=новый ТаблицаЗначений;
НоваяСтрока=ТЗ.Вставить(2);
НоваяСтрока.Адресат="Иванов Иван Иванович";
НоваяСтрока.Адрес="doc@ithelpyou.ru";
НовасСтрока.Сообщение="Вставлено значение программно";
Метод Количество. Возвращает количество строк таблицы значений.
Синтаксис:
Количество();
Сообщить(ТЗ.Количество());
Метод Итог. Суммирует значения всех строк в указанной колонке. Суммирование производится по числовым типам данных.
Синтаксис:
Итог(Колонка);
Сообщить(ТЗ.Итог("Сумма"));
Метод Сортировать. Сортирует таблицу значений в соответствии с указанными правилами сортировки.
Синтаксис:
Сортировать(Колонки);
ТЗ.Сортировать("Адресат");
Метод Удалить. Удаляет строку таблицы значений. Номер-это номер строки таблицы значений, которую необходимо удалить.
Синтаксис:
Удалить(Номер);
Метод ВыбратьСтроку. Вызывает модальное диалоговое окно для интерактивного выбора строки из таблицы значений.
Синтаксис:
ВыбратьСтроку([Заголовок][, НачальнаяСтрока]);
Где: Заголовок — заголовок окна выбора; НачальнаяСтрока указывает строку
таблицы значений, на которой будет установлен курсор при открытии окна выбора.
Метод Очистить. Удаляет все строки таблицы значений.
Синтаксис:
Очистить();
Метод Найти. Осуществляет поиск значения в указанных колонках таблицы значений.
Синтаксис:
Найти(Значение[, Колонки]);
Значение-искомое значение; Колонки-колонки, в которых производиться поиск. Если Параметр Колонки не задан, поиск выполняется по всей таблице значений ТЗ.
Метод Свернуть. Осуществляет сворачивание таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, суммируются. Списки колонок не должны пересекаться. Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений.
Синтаксис:
Свернуть(КолонкиГруппировки[, КолонкиСуммирования]);
Как записать результат запроса в таблицу значений?
Таблица=новый ТаблицаЗначений;
Таблица=Запрос.Выполнить().Выгрузить();
Как проверить наличие колонки в Таблице значений?
Если ТаблицаДанных.Колонки.Найти("Всего")<>Неопределено тогда
конецесли;
Проверка заполнения строки таблицы значений
если Строка.Всего<>"" тогда
СтрокаРуп.МаксимальнаяНагрузка=Число(Строка.Всего);
конецесли;