Подсчитать количество строк на каждом уровне ДеревоЗначений

1. UPKA 29.10.24 13:15 Сейчас в теме
Здравствуйте, поделитесь пожалуйста. как подсчитать количество строк и заполнить колонку "Количество" на каждом уровне ДеревоЗначений.
Спасибо
Найденные решения
3. starik-2005 3166 29.10.24 14:18 Сейчас в теме
Для Каждого А ИЗ Дерево.Строки Цикл
  Сообщить(А.Строки.Количество());
  // заполним
  А.Количество = А.Строки.Количество();
  // Если на каждом вложенном уровне, то оформить это в процедуру и вызвать ее первоначально для дерева
  УстановитьКоличество(А);
КонецЦикла;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vadim1011985 103 29.10.24 13:46 Сейчас в теме
(1) Воспользоваться соответствующим методом для КоллекцияСтрокДереваЗначений
3. starik-2005 3166 29.10.24 14:18 Сейчас в теме
Для Каждого А ИЗ Дерево.Строки Цикл
  Сообщить(А.Строки.Количество());
  // заполним
  А.Количество = А.Строки.Количество();
  // Если на каждом вложенном уровне, то оформить это в процедуру и вызвать ее первоначально для дерева
  УстановитьКоличество(А);
КонецЦикла;
4. UPKA 29.10.24 15:52 Сейчас в теме
(3) Не совсем понял как для дерева? Для Первого уровня все получилось, спасибо.
5. Sashares 33 29.10.24 15:57 Сейчас в теме
(4) Написать:
1) перед циклом "Процедура УстановитьКоличество(Дерево)"
2) после цикла "КонецПроцедуры"

Передать в процедуру дерево.
6. UPKA 29.10.24 16:09 Сейчас в теме
(5)
Процедура УстановитьКоличество(Дерево)


Сработало, только почему то колонка количество не заполняется

&НаСервере
Процедура ПолучитьКоличествоНаСервере() 
 Дерево = РеквизитФормыВЗначение("ДеревоРабот"); 
	
 Для Каждого А ИЗ Дерево.Строки Цикл
	
УстановитьКоличество(Дерево)

КонецЦикла;
КонецПроцедуры

&НаСервере
Процедура УстановитьКоличество(Дерево)
	
 Для Каждого А ИЗ Дерево.Строки Цикл
Сообщить(А.Строки.Количество());	
  А.КоличествоСтрок = А.Строки.Количество();
	
КонецЦикла;
	
	
	
КонецПроцедуры

Показать
7. Sashares 33 29.10.24 16:17 Сейчас в теме
(6)

Процедура ПолучитьКоличествоНаСервере() 
 Дерево = РеквизитФормыВЗначение("ДеревоРабот"); 
       
УстановитьКоличество(Дерево);

ЗначениеВРеквизитФормы(Дерево,"ДеревоРабот");
КонецПроцедуры
8. UPKA 29.10.24 16:26 Сейчас в теме
(7)
Дерево = РеквизитФормыВЗначение("ДеревоРабот");

УстановитьКоличество(Дерево);

ЗначениеВРеквизитФормы(Дерево,"ДеревоРабот");


При таком заполняется только верхний уровень.
9. Sashares 33 29.10.24 16:33 Сейчас в теме
(8) Сравните вашу процедуру УстановитьКоличество и процедуру из (3). Найдите отличия.
10. starik-2005 3166 30.10.24 13:54 Сейчас в теме
(6)
&НаСервере
Процедура ПолучитьКоличествоНаСервере() 
 Дерево = РеквизитФормыВЗначение("ДеревоРабот"); 
    
 Для Каждого А ИЗ Дерево.Строки Цикл
    
УстановитьКоличество(Дерево)

КонецЦикла;
КонецПроцедуры
Показать
Заменить на просто:
Дерево = РеквизитФормыВЗначение("ДеревоРабот");
УстановитьКоличество(Дерево);
// обратно из дерева в реквизит формы
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот