1с значений

1. neponimashka 21.09.20 08:28 Сейчас в теме
Добрый день, есть те, кто может помочь с пересчетом,
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
6. Denis_CFO 48 21.09.20 11:02 Сейчас в теме +1 $m
(1) Два варианта.
1. Циклом
2. через запрос (как в (5))
Прикрепленные файлы:
Подарки.epf
novobranec; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. Denis_CFO 48 21.09.20 11:02 Сейчас в теме +1 $m
(1) Два варианта.
1. Циклом
2. через запрос (как в (5))
Прикрепленные файлы:
Подарки.epf
novobranec; +1 Ответить
2. sergioevans 21.09.20 09:14 Сейчас в теме
Доброго дня!
Конфигурацию какую используете? В чём лучше открывать?
7. novobranec 21.09.20 11:17 Сейчас в теме
(2)вообще в учебной, я ещё только начинаю изучение
8. Denis_CFO 48 21.09.20 12:56 Сейчас в теме
(7)
я ещё только начинаю изучение

Ник на форуме потом, когда научишься, на какой менять будешь?
9. neponimashka 21.09.20 12:57 Сейчас в теме
(8)еще пока не знаю, не думала об этом если честно
10. FatPanzer 21.09.20 12:59 Сейчас в теме
(9) Упс. Непонимашка и Новобранец - это один и тот же человек?
16. Denis_CFO 48 21.09.20 13:31 Сейчас в теме
(10) Мальчик или девочка?
Ставлю 1 $m, что девочка.
17. Cooler 22 21.09.20 13:42 Сейчас в теме
(16)
Ставлю 1 $m, что девочка.
"Диана Коломская" - мальчик? Ну-ну...
18. Denis_CFO 48 21.09.20 13:44 Сейчас в теме
3. SlavaKron 21.09.20 09:17 Сейчас в теме
&
НаСервереБезКонтекста
Процедура КоличествоПодарковНаСервере()
	
	Отдел = Новый ТаблицаЗначений;
	Отдел.Колонки.Добавить("Отдел");
	Отдел.Колонки.Добавить("ФИО");
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Бухгалтерия";
	новЭлемент.ФИО = "Казанцева";
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Бухгалтерия";
	новЭлемент.ФИО = "Петрова";
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Кадры";
	новЭлемент.ФИО = "Исмаилова";
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Бухгалтерия";
	новЭлемент.ФИО = "Жуков";
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Маркетинг";
	новЭлемент.ФИО = "Пермяков";
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Маркетинг";
	новЭлемент.ФИО = "Сидорова";
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Маркетинг";
	новЭлемент.ФИО = "Глушко";
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Маркетинг";
	новЭлемент.ФИО = "Кириллов";
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Маркетинг";
	новЭлемент.ФИО = "Мерзлякова";
	
	новЭлемент = Отдел.Добавить();
	новЭлемент.Отдел = "Маркетинг";
	новЭлемент.ФИО = "Утина";	
	
	Дети = Новый ТаблицаЗначений;
	Дети.Колонки.Добавить("ФИО");
	Дети.Колонки.Добавить("КоличествоДетей");
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Казанцева";
	НовЭлемент.КоличествоДетей = 2;
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Петрова";
	НовЭлемент.КоличествоДетей = 2;
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Исмаилова";
	НовЭлемент.КоличествоДетей = 1;
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Жуков";
	НовЭлемент.КоличествоДетей = 3;
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Пермяков";
	НовЭлемент.КоличествоДетей = 0;
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Сидорова";
	НовЭлемент.КоличествоДетей = 2;
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Глушко";
	НовЭлемент.КоличествоДетей = 1;
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Кириллов";
	НовЭлемент.КоличествоДетей = 2;
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Мерзлякова";
	НовЭлемент.КоличествоДетей = 1;
	
	НовЭлемент = Дети.Добавить();
	НовЭлемент.ФИО = "Утина";
	НовЭлемент.КоличествоДетей = 0;
	
	тзПодарки = Отдел.Скопировать();
	тзПодарки.Колонки.Добавить("КоличествоПодарков");
	
	Для Каждого Стр Из тзПодарки Цикл
		ТЗ = Дети.Скопировать(Новый Структура("ФИО", Стр.ФИО));
		Стр.КоличествоПодарков = ТЗ.Итог("КоличествоДетей") * 2;
	КонецЦикла;
	
	тзПодарки.Свернуть("Отдел", "КоличествоПодарков");	
	
КонецПроцедуры
Показать
novobranec; +1 Ответить
4. lefthander 21.09.20 09:23 Сейчас в теме
КоличествоПодарков = Дети.Итог("КоличествоДетей") *2 - Делаете итог по колонке количество детей и умножаете на 2

ЗЫ я бы добавил
Дети.Колонки.Добавить("КоличествоДетей", Новый ОписаниеТипов("Число");

И вместо строк в реквизит Количество детей записывал число 2 - например без кавычек.
novobranec; +1 Ответить
5. xSavantx 25 21.09.20 09:42 Сейчас в теме
Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ *
	|ПОМЕСТИТЬ ВТ_Отдел
	|ИЗ &Отдел КАК ОтделТ
	|;
	|ВЫБРАТЬ *
	|ПОМЕСТИТЬ ВТ_Дети
	|ИЗ &Дети КАК ДетиТ
	|;	
	|ВЫБРАТЬ ВТ_Отдел.Отдел КАК Отдел,
	|СУММА(ВТ_Дети.КоличествоДетей)*2 КАК КоличествоПодарков
	|ИЗ ВТ_Отдел КАК ВТ_Отдел
	|ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Дети 
	|ПО ВТ_Отдел.ФИО = ВТ_Дети.ФИО
	|СГРУППИРОВАТЬ ПО ВТ_Отдел.Отдел";
	Запрос.УстановитьПараметр("Отдел", Отдел);
	Запрос.УстановитьПараметр("Дети", Дети);
	тзПодарки = Запрос.Выполнить().Выгрузить();
Показать

Только вы наверняка таблицы значений не будете программно заполнять. Правильным решением будет написать запрос непосредственно к самим данным, без всяческих посреднических таблиц.
novobranec; +1 Ответить
11. sergioevans 21.09.20 13:10 Сейчас в теме
(5) Важный момент. Если нужно в запросе использовать ТЗ, созданную программно, необходимо указывать типы данных в колонках. Иначе запрос ошибку даёт. Хотя бы так:
Отдел.Колонки.Добавить("Отдел", Новый ОписаниеТипов("Строка"));
Denis_CFO; xSavantx; +2 Ответить
12. xSavantx 25 21.09.20 13:15 Сейчас в теме
(11) Это само-собой. Точнее даже так будет:
Отдел.Колонки.Добавить("Отдел", Новый ОписаниеТипов("Строка",,200));

чтобы не появилась ошибка при сравнении строк неограниченной длины :)
14. sergioevans 21.09.20 13:25 Сейчас в теме
(12)
ОписаниеТипов("Строка",,200)

А прокатит? Не через квалификаторы?
15. Denis_CFO 48 21.09.20 13:28 Сейчас в теме
13. Denis_CFO 48 21.09.20 13:22 Сейчас в теме
(11) я в приложенном примере так и сделал.
Хорошо, что обратили внимание для ТС.
Оставьте свое сообщение

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