Найти в Дзене
FanDzen

Дерево значений в 1С: что это и зачем нужно

Если вы работаете с 1С, то наверняка сталкивались с Таблицей значений. Но есть ещё одна мощная штука — Дерево значений 🌳. Оно менее известное, но очень полезное. Давайте разберёмся, в чём его суть и где оно реально пригодится. Это универсальная коллекция, которая может хранить значения любого типа. По сути, гибкий инструмент для работы с разнородными данными. Чем-то похоже на Таблицу значений, но главное отличие в том, что строки Дерева могут иметь подчинённые строки. То есть данные можно хранить не в «плоском» виде, а в иерархии. Простой пример — справочник «Номенклатура», где есть группы и товары внутри них. Это тоже дерево. СтрокаПродукт = Продукт.Строки.Добавить();
СтрокаПродукт.Номенклатура = "Хлеб";
СтрокаПродукт.Цена = 850;
ПодчиненнаяСтрока = СтрокаПродукт.Строки.Добавить();
ПодчиненнаяСтрока.Номенклатура = "Пшеничная"; И вот у вас уже не просто таблица, а целая иерархия 👍. После этого данные на форме будут выглядеть именно как дерево с раскрывающимися уровнями. Мето
Оглавление

Если вы работаете с 1С, то наверняка сталкивались с Таблицей значений. Но есть ещё одна мощная штука — Дерево значений 🌳. Оно менее известное, но очень полезное. Давайте разберёмся, в чём его суть и где оно реально пригодится.

Что такое Дерево значений

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

Чем-то похоже на Таблицу значений, но главное отличие в том, что строки Дерева могут иметь подчинённые строки. То есть данные можно хранить не в «плоском» виде, а в иерархии.

Отличия от Таблицы значений

  • У Таблицы — просто список строк.
  • У Дерева — каждая строка может содержать свои подчинённые строки.
  • Получается многоуровневая структура, которую удобно использовать для вложенных данных.

Простой пример — справочник «Номенклатура», где есть группы и товары внутри них. Это тоже дерево.

Как создать и заполнить Дерево

  1. Создаём пустой объект:
    Продукт = Новый ДеревоЗначений;
  2. Добавляем колонки:
    Продукт.Колонки.Добавить("Номенклатура");
    Продукт.Колонки.Добавить("Цена");
  3. Добавляем строки:

СтрокаПродукт = Продукт.Строки.Добавить();
СтрокаПродукт.Номенклатура = "Хлеб";
СтрокаПродукт.Цена = 850;

ПодчиненнаяСтрока = СтрокаПродукт.Строки.Добавить();
ПодчиненнаяСтрока.Номенклатура = "Пшеничная";

И вот у вас уже не просто таблица, а целая иерархия 👍.

Как вывести Дерево на форму

  • Добавьте реквизит формы с типом «ДеревоЗначений».
  • Создайте для него колонки на форме.
  • Используйте ЗначениеВРеквизитФормы(Значение, ИмяРеквизита).

После этого данные на форме будут выглядеть именно как дерево с раскрывающимися уровнями.

Методы и возможности

Методы у Дерева почти такие же, как у Таблицы значений:

  • Добавить, Вставить, Найти, Сортировка, Копирование и т. д.

Плюс есть мощный инструмент — рекурсивный обход. Он позволяет проходить дерево целиком, со всеми вложенными уровнями.

Где применяется

  • В справочниках (Номенклатура, Планы счетов и т. д.).
  • В отчётности и сложных конфигурациях.
  • Там, где нужно представить данные в иерархическом виде.

Да, в типовой «Бухгалтерии» дерево встречается не так часто. Но знать о нём стоит обязательно, потому что в других конфигурациях оно используется куда шире.

Дерево значений в 1С — это гибкий инструмент для работы с иерархическими данными. Оно позволяет хранить вложенные структуры, выводить их на формы и удобно обрабатывать. Если вы осваиваете разработку в 1С, обязательно разберитесь с этим объектом. Это знание точно пригодится 🚀.