Найти в Дзене

Шпаргалка - Дерево значений (1С)

ДеревоОстатки = Новый ДеревоЗначений; ДеревоОстатки.Колонки.Добавить("Контрагент"); ДеревоОстатки.Колонки.Добавить("Номенклатура"); ДеревоОстатки.Колонки.Добавить("Количество"); ОстаткиКонтрагент1 = ДеревоОстатки.Строки.Добавить(); ОстаткиКонтрагент1.Контрагент = "Первый покупатель"; ОстаткиКонтрагент1.Количество = 100; СтрокаОстатки = ОстаткиКонтрагент1.Строки.Добавить(); СтрокаОстатки.Контрагент = "Первый покупатель"; СтрокаОстатки.Номенклатура = "Корзина"; СтрокаОстатки.Количество = 50; СтрокаОстатки = ОстаткиКонтрагент1.Строки.Добавить(); СтрокаОстатки.Контрагент = "Первый покупатель"; СтрокаОстатки.Номенклатура = "Прутья"; СтрокаОстатки.Количество = 50; ОстаткиКонтрагент2 = ДеревоОстатки.Строки.Добавить(); ОстаткиКонтрагент2.Контрагент = "Второй покупатель"; ОстаткиКонтрагент2.Количество = 200; СтрокаОстатки = ОстаткиКонтрагент2.Строки.Добавить(); СтрокаОстатки.Контрагент = "Второй покупатель"; СтрокаОстатки.Номенклатура = "Корзина"; СтрокаОстатки.Кол
Оглавление

Как создать дерево значений

ДеревоОстатки = Новый ДеревоЗначений;

Как добавить колонки в дерево значений

ДеревоОстатки.Колонки.Добавить("Контрагент");

ДеревоОстатки.Колонки.Добавить("Номенклатура");

ДеревоОстатки.Колонки.Добавить("Количество");

Как добавить элементы(строки) в дерево значений

ОстаткиКонтрагент1 = ДеревоОстатки.Строки.Добавить();

ОстаткиКонтрагент1.Контрагент = "Первый покупатель";

ОстаткиКонтрагент1.Количество = 100;

детали по первому контрагенту

СтрокаОстатки = ОстаткиКонтрагент1.Строки.Добавить();

СтрокаОстатки.Контрагент = "Первый покупатель";

СтрокаОстатки.Номенклатура = "Корзина";

СтрокаОстатки.Количество = 50;

СтрокаОстатки = ОстаткиКонтрагент1.Строки.Добавить();

СтрокаОстатки.Контрагент = "Первый покупатель";

СтрокаОстатки.Номенклатура = "Прутья";

СтрокаОстатки.Количество = 50;

ОстаткиКонтрагент2 = ДеревоОстатки.Строки.Добавить();

ОстаткиКонтрагент2.Контрагент = "Второй покупатель";

ОстаткиКонтрагент2.Количество = 200;

детали по первому контрагенту

СтрокаОстатки = ОстаткиКонтрагент2.Строки.Добавить();

СтрокаОстатки.Контрагент = "Второй покупатель";

СтрокаОстатки.Номенклатура = "Корзина";

СтрокаОстатки.Количество = 160;

СтрокаОстатки = ОстаткиКонтрагент1.Строки.Добавить();

СтрокаОстатки.Контрагент = "Второй покупатель";

СтрокаОстатки.Номенклатура = "Прутья";

СтрокаОстатки.Количество = 40;

Как получить количество элементов в дереве значений

КоличествоСтрокВерхУровня = ДеревоОстатки.Строки.Количество();

количество верхнего уровня

КоличествоПервый = ОстаткиКонтрагент1.Строки.Количество(); //количество первого уровня

КоличествоВторой = ОстаткиКонтрагент1.Строки.Количество();//количество второго уровня

Как найти один элемент в дереве значений

СтрокаПрутья = ДеревоОстатки.Строки.Найти("Прутья","Номенклатура",Истина);

Если СтрокаПрутья = Неопределено Тогда

Сообщить("Строка не найдена");

Иначе

Сообщить("" + СтрокаПрутья.Количество);

КонецЕсли;

Как найти все элементы дерева значений, которые удовлетворяют условию поиска

ПараметрыОтбора = Новый Структура("Номенклатура","Корзина");

ВсеСтрокиКорзина = ДеревоОстатки.Строки.НайтиСтроки(ПараметрыОтбора,Истина);

Сообщить("Найдено строк: " + ВсеСтрокиКорзина.Количество());

Как выполнить сортировку в дереве значений

ДеревоОстатки.Строки.Сортировать("Количество Убыв",Истина);

Обход всех элементов дерева значения

для обхода необходима процедура, которая будет вызывать сама себя(рекурсия)

ОбходДереваЗначения(ДеревоОстатки.Строки);

Как очистить дерево значения

ДеревоОстатки.Строки.Очистить();

/////////////////////////////

&НаСервере

Процедура ОбходДереваЗначения(КолекцияСтрокДерева)

Для каждого СтрокаДерева Из КолекцияСтрокДерева Цикл

Сообщить("Уровень: " + СтрокаДерева.Уровень() + ", " + СтрокаДерева.Контрагент + ", " + СтрокаДерева.Номенклатура + ", " + СтрокаДерева.Количество);

Если СтрокаДерева.Строки.Количество()>0 Тогда

ОбходДереваЗначения(СтрокаДерева.Строки);

КонецЕсли;

КонецЦикла;

КонецПроцедуры

pwxghlvl0ej4qims

Шпаргалка по массиву

Шпаргалка по структуре

Шпаргалка по соответствию

Шпаргалка по списку значений

Шпаргалка по таблице значений

Шпаргалка по дереву значений

Обработка с универсальными коллекциями