Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 июн 2026, 04:40

Получение количества объектов в иерархии ДС

Автор Алексей_1985_06, 11 мая 2026, 16:08

0 Пользователей и 1 гость просматривают эту тему.

Алексей_1985_06

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

antoneus

Ну, если в лоб - доп. реквизит, например ("Количество входящих", тип строка), обновлять через подписку на событие ПередЗаписью (ну или в модуль объекта в процедуру ПередЗаписью функцию подсчёта воткнуть), в запросе дин. списка генерить наименование.

LexaK

Алексей_1985_06, на форме, у элемента Список  ДС, задать  процедуру обработчик события

&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
// Вставить содержимое обработчика. 

лкМ = Строки.получитьКлючи(); 
//Запрос - шаблон
лкЗапрос = Новый Запрос;
лкЗапрос.Текст = "
    |Выбрать
| спр.Родитель,
| Количество(спр.Ссылка) как Количество
|из
Справочник.Номенклатура как Спр
|где
|   Спр.Родитель в (&Массив)
|Сгруппировать по
| Родитель
|";
лкЗапрос.УстановитьПараметр("Массив",лкМ);

//выгрузка запроса в файл для консоли, она уже должна быть запущена, шара: \\testdb01\backup
//ВнешниеОбработки.Создать("КонсольЗапросовУФ").СохранитьЗапросВФайл(лкЗапрос, "C:\Temp\Запрос.sel");

лкВыборка = лкЗапрос.Выполнить().Выбрать(); 

Пока лкВыборка.Следующий() Цикл
СтрокаСписка = Строки[лкВыборка.Родитель];
СтрокаСписка.Данные["Наименование"] = СтрокаСписка.Данные["Наименование"]
+ " (" + лкВыборка.Количество + ")";
КонецЦикла;


КонецПроцедуры
пример из иерархического справочника Номенклатура
считает только прямых потомков, без рекурсии
 
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск