Встроенное языковое руководство
ValuesTable — это программный объект на встроенном языке, который позволяет создавать произвольные наборы данных в памяти компьютера, отображать их в табличной форме и манипулировать ими программно и в интерактивном режиме (добавлять, изменять, удалять и сортировать).
Таблицы состоят из строк и столбцов. Строки укладываются вертикально, а столбцы — прямо горизонтально. Строки и столбцы имеют индексы, к которым можно получить прямой доступ (начиная с 0). Кроме того, на столбцы можно ссылаться по идентификатору.
Пересечения строк и столбцов образуют ячейки, содержащие значения. Тип значения определяется типом значения столбца.
Таблица значений — это полностью динамический объект, например Вы можете управлять не только строками таблицы, добавляя и удаляя их, но и столбцами.
Таблицу значений можно использовать явно при создании необходимого количества переменных типа ValueTable в коде или неявно: при добавлении элемента управления TabularField в обычную форму и FormTable в управляемую. Здесь мы будем рассматривать только программную работу с таблицей значений.
Создание таблицы значений
Как и большинство объектов встроенного языка, вы можете создать новую таблицу значений с помощью оператора New:
tz = Новая таблица значений;
Колонки таблицы значений
Прежде чем начать работу с таблицей значений, необходимо создать структуру столбцов. Каждый столбец характеризуется следующими свойствами:
- Имя — идентификатор столбца (может содержать только буквы, цифры и символы подчеркивания. Также имя столбца может начинаться только с буквы или символа подчеркивания);
- Заголовок — представление столбца в диалоговых окнах (может содержать произвольные символы);
- ValueType — тип значения содержимого ячейки в этом столбце. Если тип не указан, в ячейке могут храниться значения любого типа;
- Ширина — ширина столбца в диалоговых окнах;
доступ к столбцам можно получить через свойство 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() | Создайте новую пустую таблицу значений, скопировав столбцы текущей таблицы |
Сортировать() | Сортирует строки таблицы значений по указанным столбцам |
Удалить() | Удаляет строку из таблицы значений |
Иерархию свойств и типов значений, связанных с таблицей значений, можно схематично представить в виде дерева: