Добрый день, есть те, кто может помочь с пересчетом,
---
Два варианта.
1. Циклом
2. через запрос (как в (5))
---
Два варианта.
1. Циклом
2. через запрос (как в (5))
---
Доброго дня!
Конфигурацию какую используете? В чём лучше открывать?
---
вообще в учебной, я ещё только начинаю изучение
---
я ещё только начинаю изучение
Ник на форуме потом, когда научишься, на какой менять будешь?
---
еще пока не знаю, не думала об этом если честно
---
Упс. Непонимашка и Новобранец - это один и тот же человек?
---
Мальчик или девочка?
Ставлю 1 $m, что девочка.
---
Ставлю 1 $m, что девочка. "Диана Коломская" - мальчик? Ну-ну...
---
(16) к (10)
:))
---
&
```1c
    НаСервереБезКонтекста
    Процедура КоличествоПодарковНаСервере()

    Отдел = Новый ТаблицаЗначений;
    Отдел.Колонки.Добавить("Отдел");
    Отдел.Колонки.Добавить("ФИО");

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Бухгалтерия";
    новЭлемент.ФИО = "Казанцева";

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Бухгалтерия";
    новЭлемент.ФИО = "Петрова";

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Кадры";
    новЭлемент.ФИО = "Исмаилова";

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Бухгалтерия";
    новЭлемент.ФИО = "Жуков";

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Маркетинг";
    новЭлемент.ФИО = "Пермяков";

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Маркетинг";
    новЭлемент.ФИО = "Сидорова";

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Маркетинг";
    новЭлемент.ФИО = "Глушко";

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Маркетинг";
    новЭлемент.ФИО = "Кириллов";

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Маркетинг";
    новЭлемент.ФИО = "Мерзлякова";

    новЭлемент = Отдел.Добавить();
    новЭлемент.Отдел = "Маркетинг";
    новЭлемент.ФИО = "Утина";

    Дети = Новый ТаблицаЗначений;
    Дети.Колонки.Добавить("ФИО");
    Дети.Колонки.Добавить("КоличествоДетей");

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Казанцева";
    НовЭлемент.КоличествоДетей = 2;

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Петрова";
    НовЭлемент.КоличествоДетей = 2;

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Исмаилова";
    НовЭлемент.КоличествоДетей = 1;

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Жуков";
    НовЭлемент.КоличествоДетей = 3;

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Пермяков";
    НовЭлемент.КоличествоДетей = 0;

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Сидорова";
    НовЭлемент.КоличествоДетей = 2;

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Глушко";
    НовЭлемент.КоличествоДетей = 1;

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Кириллов";
    НовЭлемент.КоличествоДетей = 2;

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Мерзлякова";
    НовЭлемент.КоличествоДетей = 1;

    НовЭлемент = Дети.Добавить();
    НовЭлемент.ФИО = "Утина";
    НовЭлемент.КоличествоДетей = 0;

    тзПодарки = Отдел.Скопировать();
    тзПодарки.Колонки.Добавить("КоличествоПодарков");

    Для Каждого Стр Из тзПодарки Цикл
    ТЗ = Дети.Скопировать(Новый Структура("ФИО", Стр.ФИО));
    Стр.КоличествоПодарков = ТЗ.Итог("КоличествоДетей") * 2;
    КонецЦикла;

    тзПодарки.Свернуть("Отдел", "КоличествоПодарков");

    КонецПроцедуры
```
---
КоличествоПодарков = Дети.Итог("КоличествоДетей") *2 - Делаете итог по колонке количество детей и умножаете на 2

ЗЫ я бы добавил

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

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

Только вы наверняка таблицы значений не будете программно заполнять. Правильным решением будет написать запрос непосредственно к самим данным, без всяческих посреднических таблиц.
---
Важный момент. Если нужно в запросе использовать ТЗ, созданную программно, необходимо указывать типы данных в колонках. Иначе запрос ошибку даёт. Хотя бы так:

```1c
    Отдел.Колонки.Добавить("Отдел", Новый ОписаниеТипов("Строка"));
```
---
Это само-собой. Точнее даже так будет:

```1c
    Отдел.Колонки.Добавить("Отдел", Новый ОписаниеТипов("Строка",,200));
```

чтобы не появилась ошибка при сравнении строк неограниченной длины :)
---
ОписаниеТипов("Строка",,200)
А прокатит? Не через квалификаторы?
---
не прокатит.
---
я в приложенном примере так и сделал.
Хорошо, что обратили внимание для ТС.