Ребята, помогите советом. Ситуация следующая, имею таб часть формы с данными, например сотрудник, дата, сумма и так много строк)) Как мне для каждой даты (01.01.2021 например 10 строк сотр и сумма, 05.02.2021 5 строк сотр и сумма) сделать отдельный документ на каждую дату? Ума не приложу как мне их так повыбирать)
---
Как мне для каждой даты (01.01.2021 например 10 строк сотр и сумма, 05.02.2021 5 строк сотр и сумма) сделать отдельный документ на каждую дату?
1. Выгружаем ТЧ в таблицу значений.
2. Сортируем ТЗ по по дате
3. Объявляем переменную (например, РабочаяДатаДокумента) с пустым значением даты.
4. В цикле выбираем строки ТЗ:
5. Если значение даты в строке ТЗ совпадает с переменной РабочаяДатаДокумента - добавляем в документ сотрудника и сумму;
6. Если значение даты не совпадает с переменной, то проверяем РабочаяДатаДокумента - если пустая (первая строка), то создаем документ, если не пустая (не первая строка) - записываем созданный ранее, создаем новый и добавляем в него сотрудника и сумму. Присваиваем РабочаяДатаДокумента значение даты из строки.
7. После окончания цикла записываем последний созданный документ.
---
Другой вариант.
Пишешь запрос с источником из внешней таблицы, получаешь итоги с группировочными полями Дата и Сотрудник. При выборке по группировке создаешь документ, а заполняешь данными из выборки детальных записей.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Т.Сотрудник КАК Сотрудник,
    | Т.Дата КАК Дата,
    | Т.Сумма КАК Сумма
    |ПОМЕСТИТЬ Т
    |ИЗ
    | &Т КАК Т
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Т.Сотрудник КАК Сотрудник,
    | Т.Дата КАК Дата,
    | Т.Сумма КАК Сумма
    |ИЗ
    | Т КАК Т
    |ИТОГИ
    | СУММА(Сумма)
    |ПО
    | Сотрудник,
    | Дата";
    Запрос.УстановитьПараметр("Т", ТаблицаФормы.Выгрузить());
    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Сотрудник,Дата");
    Пока Выборка.Следующий() Цикл
    ДокументОбъект = Документ.МойДокумент.Создать();
    ДокументОбъект.Дата = Выборка.Дата;
    ДокументОбъект.Сотрудник = Выборка.Сотрудник;
    ВыборкаСтрок = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, ");
    Пока ВыборкаСтрок.Следующий() Цикл
    ЗаполнитьЗначенияСвойств(ДокументОбъект.ТЧ.Добавить(), ВыборкаСтрок);
    КонецЦикла;
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
    КонецЦикла;
```
---
Как мне для каждой даты (01.01.2021 например 10 строк сотр и сумма, 05.02.2021 5 строк сотр и сумма) сделать отдельный документ на каждую дату?
1. Выгружаем ТЧ в таблицу значений.
2. Сортируем ТЗ по по дате
3. Объявляем переменную (например, РабочаяДатаДокумента) с пустым значением даты.
4. В цикле выбираем строки ТЗ:
5. Если значение даты в строке ТЗ совпадает с переменной РабочаяДатаДокумента - добавляем в документ сотрудника и сумму;
6. Если значение даты не совпадает с переменной, то проверяем РабочаяДатаДокумента - если пустая (первая строка), то создаем документ, если не пустая (не первая строка) - записываем созданный ранее, создаем новый и добавляем в него сотрудника и сумму. Присваиваем РабочаяДатаДокумента значение даты из строки.
7. После окончания цикла записываем последний созданный документ.
---
спасибо
---
Другой вариант.
Пишешь запрос с источником из внешней таблицы, получаешь итоги с группировочными полями Дата и Сотрудник. При выборке по группировке создаешь документ, а заполняешь данными из выборки детальных записей.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Т.Сотрудник КАК Сотрудник,
    | Т.Дата КАК Дата,
    | Т.Сумма КАК Сумма
    |ПОМЕСТИТЬ Т
    |ИЗ
    | &Т КАК Т
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Т.Сотрудник КАК Сотрудник,
    | Т.Дата КАК Дата,
    | Т.Сумма КАК Сумма
    |ИЗ
    | Т КАК Т
    |ИТОГИ
    | СУММА(Сумма)
    |ПО
    | Сотрудник,
    | Дата";
    Запрос.УстановитьПараметр("Т", ТаблицаФормы.Выгрузить());
    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Сотрудник,Дата");
    Пока Выборка.Следующий() Цикл
    ДокументОбъект = Документ.МойДокумент.Создать();
    ДокументОбъект.Дата = Выборка.Дата;
    ДокументОбъект.Сотрудник = Выборка.Сотрудник;
    ВыборкаСтрок = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, ");
    Пока ВыборкаСтрок.Следующий() Цикл
    ЗаполнитьЗначенияСвойств(ДокументОбъект.ТЧ.Добавить(), ВыборкаСтрок);
    КонецЦикла;
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
    КонецЦикла;
```
---
Спасибо большое