По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
&
НаСервереБезКонтекста
Процедура КоличествоПодарковНаСервере()
Отдел = Новый ТаблицаЗначений;
Отдел.Колонки.Добавить("Отдел");
Отдел.Колонки.Добавить("ФИО");
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Бухгалтерия";
новЭлемент.ФИО = "Казанцева";
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Бухгалтерия";
новЭлемент.ФИО = "Петрова";
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Кадры";
новЭлемент.ФИО = "Исмаилова";
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Бухгалтерия";
новЭлемент.ФИО = "Жуков";
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Маркетинг";
новЭлемент.ФИО = "Пермяков";
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Маркетинг";
новЭлемент.ФИО = "Сидорова";
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Маркетинг";
новЭлемент.ФИО = "Глушко";
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Маркетинг";
новЭлемент.ФИО = "Кириллов";
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Маркетинг";
новЭлемент.ФИО = "Мерзлякова";
новЭлемент = Отдел.Добавить();
новЭлемент.Отдел = "Маркетинг";
новЭлемент.ФИО = "Утина";
Дети = Новый ТаблицаЗначений;
Дети.Колонки.Добавить("ФИО");
Дети.Колонки.Добавить("КоличествоДетей");
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Казанцева";
НовЭлемент.КоличествоДетей = 2;
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Петрова";
НовЭлемент.КоличествоДетей = 2;
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Исмаилова";
НовЭлемент.КоличествоДетей = 1;
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Жуков";
НовЭлемент.КоличествоДетей = 3;
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Пермяков";
НовЭлемент.КоличествоДетей = 0;
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Сидорова";
НовЭлемент.КоличествоДетей = 2;
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Глушко";
НовЭлемент.КоличествоДетей = 1;
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Кириллов";
НовЭлемент.КоличествоДетей = 2;
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Мерзлякова";
НовЭлемент.КоличествоДетей = 1;
НовЭлемент = Дети.Добавить();
НовЭлемент.ФИО = "Утина";
НовЭлемент.КоличествоДетей = 0;
тзПодарки = Отдел.Скопировать();
тзПодарки.Колонки.Добавить("КоличествоПодарков");
Для Каждого Стр Из тзПодарки Цикл
ТЗ = Дети.Скопировать(Новый Структура("ФИО", Стр.ФИО));
Стр.КоличествоПодарков = ТЗ.Итог("КоличествоДетей") * 2;
КонецЦикла;
тзПодарки.Свернуть("Отдел", "КоличествоПодарков");
КонецПроцедуры
Показать
КоличествоПодарков = Дети.Итог("КоличествоДетей") *2 - Делаете итог по колонке количество детей и умножаете на 2
ЗЫ я бы добавил
И вместо строк в реквизит Количество детей записывал число 2 - например без кавычек.
ЗЫ я бы добавил
Дети.Колонки.Добавить("КоличествоДетей", Новый ОписаниеТипов("Число");
И вместо строк в реквизит Количество детей записывал число 2 - например без кавычек.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ *
|ПОМЕСТИТЬ ВТ_Отдел
|ИЗ &Отдел КАК ОтделТ
|;
|ВЫБРАТЬ *
|ПОМЕСТИТЬ ВТ_Дети
|ИЗ &Дети КАК ДетиТ
|;
|ВЫБРАТЬ ВТ_Отдел.Отдел КАК Отдел,
|СУММА(ВТ_Дети.КоличествоДетей)*2 КАК КоличествоПодарков
|ИЗ ВТ_Отдел КАК ВТ_Отдел
|ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Дети
|ПО ВТ_Отдел.ФИО = ВТ_Дети.ФИО
|СГРУППИРОВАТЬ ПО ВТ_Отдел.Отдел";
Запрос.УстановитьПараметр("Отдел", Отдел);
Запрос.УстановитьПараметр("Дети", Дети);
тзПодарки = Запрос.Выполнить().Выгрузить();
ПоказатьТолько вы наверняка таблицы значений не будете программно заполнять. Правильным решением будет написать запрос непосредственно к самим данным, без всяческих посреднических таблиц.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот