ТаблицаЗначений — это программный объект встроенного языка, позволяющий строить произвольные наборы данных в памяти компьютера, отображать их в табличном виде, а также программно и интерактивно манипулировать ими (добавлять, редактировать, удалять и сортировать).
Таблицы состоят из строк и колонок. Строки располагаются вниз по вертикали, а колонки — вправо по горизонтали. Строки имеют последовательную целочисленную нумерацию (начиная с 1). И строки, и колонки имеют индексы, по которым к ним можно обращаться напрямую (начинаются с 0). Кроме этого, к колонкам можно обращаться по идентификатору.
Пересечения строк и колонок образуют ячейки, в которых содержатся значения. Тип значения определяется типом значения колонки.
Таблица значений является полностью динамическим объектом, т.е. Вы можете манипулировать не только строками таблицы, добавляя и удаляя их, но и колонками.
Таблица значений может использоваться явно при создании в коде необходимого количества переменных типа ТаблицаЗначений
, либо неявно: при добавлении элемента управления ТабличноеПоле на обычную форму, и ТаблицаФормы — на управляемую. Здесь мы рассмотрим только программную работу с таблицей значений.
Создание таблицы значений
Как и большинство объектов встроенного языка, новая таблица значений может быть создана с помощью оператора Новый
:
тз = Новый ТаблицаЗначений;
Колонки таблицы значений
Прежде чем начать работу с таблицей значений, необходимо создать структуру колонок. Каждая колонка характеризуется следующими свойствами:
Имя
— идентификатор колонки (может содержать только алфавитные символы, цифры и знаки подчеркивания. Причем, начинаться имя колонки может только с буквы или символа подчеркивания);Заголовок
— представление колонки в диалогах (может содержать произвольные символы);ТипЗначения
— тип значения содержимого ячеек в этой колонке. Если тип не задан, в ячейке можно хранить значения произвольного типа;Ширина
— ширина колонки в диалогах;
Доступ к колонкам производится через свойство Колонки
объекта ТаблицаЗначений
. Для добавления новой колонки используется метод Добавить():
тз.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка")); тз.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число")); тз.Колонки.Добавить("Свойство");//можно хранить произвольные данные
Для того, чтобы определить наличие колонки с нужным именем используется метод Найти():
найдКолонка = тз.Колонки.Найти("Наименование"); Если найдКолонка = Неопределено Тогда Сообщить("Колонка не найдена!"); КонецЕсли;
Перебор колонок выполняется следующим образом:
Для каждого Колонка Из тз Цикл Сообщить(Колонка.Имя); КонецЦикла;
Для удаления колонки используется метод Удалить():
найдКолонка = тз.Колонки.Найти("Свойство"); Если НЕ найдКолонка = Неопределено Тогда тз.Удалить(найдКолонка); КонецЕсли;
Свойства колонки таблицы значений
Имя | Тип | Описание |
---|---|---|
Имя | Строка | символьный идентификатор колонки, по которому к ней можно обращаться из кода |
Заголовок | Строка | строковое представление колонки на форме |
ТипЗначения | ОписаниеТипов | свойство органичивает пространство доступных значений, которые можно указать в данной колонке |
Ширина | Число | ширина колонки на форме (выражается в количестве символов) |
Методы коллекции колонок таблицы значений
Вставить() | Вставляет новую колонку в указанную позицию коллекции |
Добавить() | Добавляет новую колонку в конец коллекции |
Количество() | Возвращает количество колонок в коллекции |
Найти() | Ищет колонку в коллекции по имени |
Очистить() | Удаляет все колонки из коллекции |
Сдвинуть() | Сдвигает колонку влево или вправо |
Удалить() | Удаляет колонку из коллекции |
Строки таблицы значений
С колонками разобрались. Давайте теперь разберемся со строками. Строки таблицы значений можно программно добавлять и удалять, перемещать и сортировать, а также выполнять операции поиска и отбора.
Добавление и удаление строк
Для добавления новой строки используется метод Добавить() объекта ТаблицаЗначений
. Метод возвращает объект СтрокаТаблицыЗначений
, с которым доступны дальнейшие манипуляции:
СтрокаТЧ = тз.Добавить();
Для удаления строки используется метод Удалить() объекта ТаблицаЗначений
. Строку можно удалить либо передав методу непосредственно строку, либо ее индекс:
//непосредственное удаление строки тз.Удалить(СтрокаТЧ); //удаление строки по индексу тз.Удалить(тз.Индекс(СтрокаТЧ));
Перебор строк таблицы значений
Для перебора строк удобнее всего использовать оператор цикла Для Каждого
. В редких случаях оправдано применение цикла Для
:
Для Каждого СтрокаТЧ Из тз Цикл ИндСтроки = тз.Индекс(СтрокаТЧ); КонецЦикла; //в редких случаях Для ИндСтроки = 0 По тз.Количество() - 1 Цикл СтрокаТЧ = тз.Получить(ИндСТроки); КонецЦикла;
Поиск строк
В отличие от платформы 1С:Предприятие 7.7 в 8-ке расширен функционал работы с таблицей значений. Поиск можно выполнять не только по значению в колонке (в этом случае будет возвращена первая найденная строка), но и по набору свойств (в этом случае возвращается массив строк):
//поиск первой строки НайдСтрока = тз.Найти(Номенклатура, "Номенклатура"); //поиск набора строк ПараметрыПоиска = Новый Структура("Номенклатура", Номенклатура); мНайдСтроки = тз.НайтиСтроки(ПараметрыПоиска);
Все методы таблицы значений:
Вставить() | Вставляет строку на указанное место |
ВыбратьСтроку() | Позволяет интерактивно выбрать строку в диалоговом окне |
ВыгрузитьКолонку() | Выгружает значения ячеек указанной колонки в массив значений |
Добавить() | Добавлет новую строку в таблицу значений |
ЗагрузитьКолонку() | Загружает значения в ячейки указанной колонки из массива |
ЗаполнитьЗначения() | Заполняет ячейки указанных колонок определенным значением |
Индекс() | Возвращает индекс строки таблицы значений |
Итог() | Возвращает просуммированный итог по колонке таблицы значений |
Количество() | Возвращает количество строк в таблице значений |
Найти() | Выполняет поиск строки по значению |
НайтиСтроки() | Выполняет поиск строк по указанным параметрам |
Очистить() | Очищает строки таблицы значений |
Получить() | Возвращает строку по ее индексу |
Свернуть() | Выполняет сжатие строк и колонок таблицы значений |
Сдвинуть() | Сдвигает строку вверх или вниз по таблице |
Скопировать() | Создает новую таблицу значений копированием текущей |
СкопироватьКолонки() | Создает новую пустую таблицу значений путем копирования колонок текущей таблицы |
Сортировать() | Выполняет сортировку строк таблицы значений по указанным колонкам |
Удалить() | Удаляет строку таблицы значений |
Читайте также:
- Как объединить таблицы значений
- Как программно выгрузить таблицу значений
- Как правильно загрузить значений в колонку таблицы значений из массива