Для разработчика » Содержание справочника » Раздел 3. Встроенные вспомогательные типы данных » 
2

ТаблицаЗначений

ТаблицаЗначений — это программный объект встроенного языка, позволяющий хранить произвольные данные в табличном виде. Таблицы состоят из строк и колонок. Строки располагаются вниз по вертикали, а колонки — вправо по горизонтали.

Строки и колонки имеют последовательную целочисленную нумерацию. Кроме этого, колонкам можно присваивать строковые идентификаторы, удовлетворяющие требованиям, выдвигаемым к идентификаторам языка. Пересечения строк и колонок образуют ячейки, в которых содержатся значения. Тип значения определяется типом колонки. Если тип не задан, в ячейке можно хранить значения произвольного типа.

Таблица значений является полностью динамическим объектом, т.к. Вы можете манипулировать не только строками таблицы, добавляя и\или удаляя их, но и колонками.

Таблица значений используется в двух случаях:

  1. При работе с формами: при размещении на форме элемент управления типа ТаблицаЗначений, он автоматически связывается с одноименным объектом встроенного языка ТаблицаЗначений;
  2. При работе с кодом: для хранения каких-либо многострочных списочных данных вы создаете нужное количество объектов типа ТаблицаЗначений;

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

Как и все объекты агрегатного типа, таблица значений создается с помощью функции СоздатьОбъект() встроенного языка:

тз = СоздатьОбъект("ТаблицаЗначений");

Инициализация таблицы значений

Инициализация объекта выполняется в три этапа:

  1. Добавление колонок
  2. Добавление строки
  3. Установка значений ячеек

Итак, прежде, чем начать работать с объектом ТаблицаЗначений, необходимо настроить колонки (задать имя и тип). Делается это с помощью метода НоваяКолонка() следующим образом:

тз.НоваяКолонка("Название", "Строка");
тз.НоваяКолонка("Количество", "Число");

Как Вы успели заметить, вместе с названием колонки задается и тип значений.

После того, как Вы добавили колонки, можно добавлять строки. Делается это с помощью метода НоваяСтрока():

тз.НоваяСтрока();

Теперь переменная тз спозиционирована на добавленную строку и мы можем приступить к заполнению ячеек:

тз.Название = "Репка";
тз.Количество = 3;

Как видите, имена ячеек текущей строки имеют то же название, что и колонки. Это делает использование объекта элементарным: достаточно указать через точку после имени объекта имя колонки.

Манипуляция значениями строк таблицы

Для получения значений, содержащихся в строках, необходимо перво-наперво спозиционировать объект на интересующей Вас строке. Для этого используются такие методы как: ПолучитьСтрокуПоНомеру() и ПолучитьСтроку():

тз.ПолучитьСтрокуПоНомеру(1);
тз.Название = "Репка";
тз.Количество = 3;

Перебор строк таблицы значений

Для последовательного перебора (обхода) всех строк таблицы значений обычно используются методы ВыбратьСтроки() и ПолучитьСтроку() объекта:

тз.ВыбратьСтроки();
Пока тз.ПолучитьСтроку() = 1 Цикл
    Сообщить(Шаблон("[тз.НомерСтроки]. [тз.Товар] х [тз.Количество] ед."));
КонецЦикла;

Также можно организовать перебор с помощью оператора цикла Для, где в качестве ограничителя цикла используется количество строк таблицы, возвращаемое методом КоличествоСтрок():

Для Инд = 1 По тз.КоличествоСтрок() Цикл
    тз.ПолучитьСтрокуПоНомеру(Инд);
    Сообщить(Шаблон("[тз.НомерСтроки]. [тз.Товар] х [тз.Количество] ед."));
КонецЦикла;

Атрибуты объекта ТаблицаЗначений

НомерСтроки атрибут содержит номер текущей строки таблицы
<ИдентификаторКолонки> атрибут содержит значение текущей ячейки таблицы

Методы объекта ТаблицаЗначений

НоваяКолонка() метод добавляет новую колонку в конец таблицы
ВставитьКолонку() метод вставляет новую колонку в указанное место в таблице
УдалитьКолонку() метод удаляет указанную колонку из таблицы
КоличествоКолонок() метод возвращает количество колонок в таблице
НоваяСтрока() метод добавляет новую строку в конец таблицы
ВставитьСтроку() метод вставляет новую строку в указанное место в таблице
УдалитьСтроку() метод удаляет указанную строку из таблицы
КоличествоСтрок() метод возвращает количество строк в таблице
НайтиЗначение() метод выполняет поиск значения в ячейках таблицы
ВыбратьСтроки() метод формирует последовательную выборку строк таблицы значений
ПолучитьСтроку() метод получает следующую строку из ранее сформированной выборки
ПолучитьСтрокуПоНомеру() метод позиционирует объект на указанной строке
* — в таблице перечислены не все методы таблицы значений.

Хочется отметить, что объекты типа ТаблицаЗначений не хранятся в информационной базе.

Читайте также:

  1. Работа со списком значений

Комментарии

  1. В ТЗ английский синтаксис GetLineByNum() не работает, только русский ПолучитьСтрокуПоНомеру().
    Может для ТЗ эта команда пишется английском по-другому ?

    • Да, Вы правы. Правильный синтаксис команды GetLineByNumber()

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *