Работаем с таблицей значений программно

Работаем с таблицей значений программно
На чтение
15 мин.
Просмотров
27
Дата обновления
06.11.2024

Встроенное языковое руководство 

ValuesTable — это программный объект на встроенном языке, который позволяет создавать произвольные наборы данных в памяти компьютера, отображать их в табличной форме и манипулировать ими программно и в интерактивном режиме (добавлять, изменять, удалять и сортировать). 

Таблицы состоят из строк и столбцов. Строки укладываются вертикально, а столбцы — прямо горизонтально. Строки и столбцы имеют индексы, к которым можно получить прямой доступ (начиная с 0). Кроме того, на столбцы можно ссылаться по идентификатору.

Пересечения строк и столбцов образуют ячейки, содержащие значения. Тип значения определяется типом значения столбца.

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

Таблицу значений можно использовать явно при создании необходимого количества переменных типа ValueTable в коде или неявно: при добавлении элемента управления TabularField в обычную форму и FormTable в управляемую. Здесь мы будем рассматривать только программную работу с таблицей значений.

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

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

tz = Новая таблица значений;

Колонки таблицы значений

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

  1. Имя — идентификатор столбца (может содержать только буквы, цифры и символы подчеркивания. Также имя столбца может начинаться только с буквы или символа подчеркивания);
  2. Заголовок — представление столбца в диалоговых окнах (может содержать произвольные символы);
  3. ValueType — тип значения содержимого ячейки в этом столбце. Если тип не указан, в ячейке могут храниться значения любого типа;
  4. Ширина — ширина столбца в диалоговых окнах;

доступ к столбцам можно получить через свойство Columns объекта ValuesTable. Чтобы добавить новый столбец, используйте метод Add():

tz.Kolonki.Add («Имя», Новое описание типов («Строка»)); tz.Kolonki.Add («Количество», Новое описание типов («Число»)); tz.Columns.Add («Свойства»); // вы можете хранить произвольные данные

Для определения наличия столбца с запрошенным именем используется метод Find():

findColumn = m.Colonki.Find («Имя»); Столбец, если найден = Не определен, затем Отчет («Столбец не найден!»); Конец, если;

Я перебираю столбцы следующим образом:

Для каждого столбца из tz.Columns Cycle Report (Column.Name); Конец цикла;

Чтобы удалить столбец, используйте метод Delete():

foundColumn = m.Columns.Find («Свойства»); Если НЕ foundColumn = Undefined, то tz.Columns.Remove (foundColumn); Конец, если;

Свойства колонки таблицы значений

Имя Вид Описание
Имя Линия символический идентификатор столбца, по которому к нему можно получить доступ из кода
Заголовок Линия строковое представление столбца в форме
Значения типа Описание типов свойство ограничивает пространство доступных значений, которые могут быть указаны в этом столбце
Длина Число ширина столбца в форме (выражается в количестве символов)

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

Вставить() Вставляет новый столбец в указанную позицию в коллекции
Добавить() Добавляет новый столбец в конец коллекции
Количество() Возвращает количество столбцов в коллекции
Находит() Поиск столбца в коллекции по имени
Прозрачный() Удаляет все столбцы из коллекции
Переложить() Переместите столбец влево или вправо
Удалить() Удаляет столбец из коллекции

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

Лечится колоннами. Теперь займемся струнами. Строки таблицы значений можно программно добавлять и удалять, перемещать и сортировать, искать и выбирать.

Добавление и удаление строк

Чтобы добавить новую строку, используйте метод Add () объекта ValuesTable. Метод возвращает объект ValuesTableRow, с которым доступны дальнейшие манипуляции:

StringPT = tz.Add();

И только теперь мы можем заполнить строку данными. Для этого мы обращаемся к ячейкам строки, указывая идентификаторы столбцов, разделенные точкой:

StringPT.Name = «Деревянный стул»; StringPT.Number = 1; StringPT.Property = CurrentDate();

Обратите внимание, что каждая ValueTableRow ссылается на таблицу значений с помощью метода Owner():

tz = StringPT.Owner();

Чтобы удалить строку, используйте метод Delete () объекта ValuesTable. Строку можно удалить, передав ее непосредственно в метод или через его индекс:

// прямое удаление строки tz Delete (StringPT); // удаляем строку по индексу tz.Delete (tz.Index (StringPT));

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

Для перебора строк удобнее использовать оператор цикла For Each. В редких случаях оправдано применение цикла К:

Для каждого LinePT From tz Loop IndStrings = tz.Index (StringPT); Конец цикла; // в редких случаях For IndStrings = 0 By tz.Quantity () — 1 Loop StringPT = tz.Get (IndStrings); Конец цикла;

Поиск строк

В отличие от платформы 1С: Предприятие 7.7, в 8-ке расширен функционал работы с таблицей значений. Поиск может осуществляться не только по значению в столбце (в этом случае будет возвращена первая найденная строка), но и по набору свойств (в этом случае возвращается массив строк):

// ищем первую строку FindString = tz.Find (Nomenclature, «Nomenclature»); // поиск набора строк SearchParameters = New Structure («Номенклатура», Номенклатура); mNideStrings = tz.FindStrings (параметры поиска);

Все методы таблицы значений:

Вставить() Вставляет строку в указанную позицию
SelectString() Позволяет интерактивно выбрать строку в диалоговом окне
Сливная колонка() Загружает значения ячеек указанного столбца в массив значений
Добавить() Он добавит новую строку в таблицу значений
Столбец нагрузки() Загружает значения в ячейки указанного столбца из массива
FillValues() Заполняет ячейки указанных столбцов определенным значением
Показатель() Возвращает индекс строки таблицы значений
Общий() Возвращает суммарную сумму для столбца таблицы значений
Количество() Возвращает количество строк в таблице значений
Находит() Искать строку по значению
Найти строки() Искать строки по заданным параметрам
Прозрачный() Удалить строки таблицы значений
Получать() Возвращает строку по ее индексу
Сжать() Сжимать строки и столбцы таблицы значений
Переложить() Перемещение на одну строку вверх или вниз в таблице
Копировать() Создайте новую таблицу значений, скопировав текущую
CopyColumns() Создайте новую пустую таблицу значений, скопировав столбцы текущей таблицы
Сортировать() Сортирует строки таблицы значений по указанным столбцам
Удалить() Удаляет строку из таблицы значений

Иерархию свойств и типов значений, связанных с таблицей значений, можно схематично представить в виде дерева:

0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий