1С Предприятие 8.0. Описание встроенного языка

         

ТаблицаЗначений (ValueTable)


Объект представляет собой саму таблицу значений. Все основные операции с таблицей производятся именно через этот объект. Он позволяет манипулировать строками таблицы значений и предос­тавляет доступ к коллекции колонок.

Данный объект является коллекцией значений. В качестве эле­мента коллекции выступает значение типа СтрокаТаблицыЗначений. Для объекта доступен обход кол­лекции посредством оператора Для каждого ... из ... Цикл. При обходе выбираются элементы коллекции. Возможно обра­щение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс строки.

Пример:

// Пример работы с таблицей значения,

// связь с элементом управления ТабличноеПоле

// Создание описателя типов для таблицы значений

КЧ = Новый КвалификаторыЧисла(12,2);

КС = Новый КвалификаторыСтроки(20);

М = Новый Массив;

М.Добавить(Тип("Строка"));

ОписаниеТиповС = Новый ОписаниеТипов(М, , КС);

М.Очистить();

М.Добавить(Тип("Число"));



ОписаниеТиповЧ = Новый ОписаниеТипов{М, , , КЧ);

// Создание таблицы значений

Табл = Новый ТаблицаЗначений;

Сообщить("Число колонок таблицы значений: " + Табл.Колонки.Количество());

// добавим в таблицу значений три колонки

Табл.Колонки.Добавить("Отдел",ОписаниеТиповС, "Отдел");

Табл.Колонки.Добавить("Сотрудник",ОписаниеТиповС,"Фамилия сотрудника");

Табл.Колонки.Добавить("Оклад",ОписаниеТиповЧ,"Оклад");

Сообщить("Число колонок таблицы значений после добавления (1): "+Табл.Колонки.Количество());

// добавим строку

Стр=Табл.Добавить();

Стр.Отдел="Отдел 1";

Стр.Сотрудник="Иванов";

Стр.Оклад=5600;

// Добавление в форму табличного поля

ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"ТПоле",Истина);

// указание размеров и положения в форме

ЭлементыФормы.ТПоле.Верх=150; ЭлементыФормы.ТПоле.Лево=150;

ЭлементыФормы.ТПоле.Ширина=350; ЭлементыФормы.ТПоле.Высота=130;

// связь табличного поля с таблицей значений




ЭлементыФормы.ТПоле.Значение = Табл;

Сообщить("Число колонок табличного поля: " + ЭлементыФормы.ТПоле.Колонки, Количество());

// укажем ширину колонок

ЭлементыФормы.ТПоле.Колонки[0].Ширина = 20;

ЭлементиФормы.ТПоле.Колонки[1].Ширина = 20;

ЭлементыФормы.ТПоле.Колонки[2].Ширина = 10;

ЭлементыФормы.ТПоле.Колонки[2].ТекстПодвала = 10;

ЭлементыФормы.ТПоле.ЧередованиеЦветовСтрок = Истина;

ЭлементыФормы.ТПоле.Колонки[2].ОтображатьВПодвале = Истина;

// добавим новую колонку в таблицу значений

Табл.Колонки.Добавить("Стаж",ОписаниеТиповЧ,"Стаж работы");

ЭлементыФормы.ТПоле.Колонки[3].Ширина = 10;

Сообщить(" Число колонок таблицы значений после добавления (2): "+Табл.Колонки.Количество());

//в табличном поле колонка также добавляется

Сообщить("Число колонок табличного поля: "+ЭлементыФормы.ТПоле.Колонки.Количество());

// добавим новую колонку в табличное поле

ЭлементыФормы.ТПоле.Колонки.Добавить("Примечание") ;

ЭлементыФормы.ТПоле.Колонки[4].Ширина = 20;

// просмотр числа колонок таблицы значений и табличного поля

Сообщить("Число колонок таблицы значений не изменилось: "+Табл.Колонки.Количество());

Сообщить("Число колонок табличного поля увеличилось: " +Элементыформы.ТПоле.Колонки.Количество());

//показ имен и установка шрифта колонок

ШрифтШапки = Новый Шрифт ("Arial", 9, истина);

Для каждого Колонка Из Табл.Колонки Цикл

Сообщить("Имя колонки " + ": "+Колонка.Имя);

КонецЦикла;

Для каждого Колонка Из ЭлементыФормы.ТПоле.Колонки Цикл

    Колонка.ШрифтШапки = ШрифтШапки;

КонецЦикла;

// ввод новой строки и данных по строке

ЭлементыФормы.ТПоле.ДобавитьСтроку();

ТекСтр = ЭлементыФормы.ТПоле.ТекущаяСтрока;

ТекСтр.Отдел = "Отдел 2"; ТекСтр.Сотрудник = "Петров";

ТекСтр.Оклад = 6700; ТекСтр.Стаж = 22;

Сообшить("Итог: Фонд = "+Табл.Итог(Табл.Колонки(2).Имя) +

    " Среднее = "+Табл.Итог(Табл.Колонки[2].Имя)/Табл.Количество());
Результат выполнения:
Число колонок таблицы значений: 0

Число колонок таблицы значений после добавления (1) : 3

Число колонок табличного поля: 3

Число колонок таблицы значений после добавления (2) : 4

Число колонок табличного поля: 4

Число колонок таблицы значений не изменилось: 4

Число колонок табличного поля увеличилось: 5

Имя колонки : Отдел

Имя колонки : Сотрудник

Имя колонки : Оклад

Имя колонки : Стаж

Итог: Фонд = 12 300; Среднее = 6 150

Содержание раздела