Здраствуйте, имеется следующий макет и код.

```1c
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

    // Запрос у пользователя начальной даты
    НачалоПериода = ВвестиДату("Введите начальную дату", ТекущаяДата());

    // Запрос у пользователя конечной даты
    КонецПериода = ВвестиДату("Введите конечную дату", ТекущаяДата());

    ТабДок = Новый ТабличныйДокумент;
    ПечатьНаВыбор(ТабДок, ПараметрКоманды, НачалоПериода, КонецПериода);
    ТабДок.Показать("Печать на выбор");

    КонецПроцедуры

    &НаСервере
    Процедура ПечатьНаВыбор(ТабДок, СсылкаНаДокумент, НачалоПериода, КонецПериода)

    //Получить макет
    Макет = Документы.НачислениеЗПСотрудника.ПолучитьМакет("Макет");

    //Получение областей из макета
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапкаТаблицыНач = Макет.ПолучитьОбласть("ШапкаТаблицыНач");
    ОбластьСтрокаТаблицыНач = Макет.ПолучитьОбласть("СтрокаТаблицыНач");
    ОбластьПодвалНач = Макет.ПолучитьОбласть("ПодвалНач");
    ОбластьШапкаТаблицыУд = Макет.ПолучитьОбласть("ШапкаТаблицыУд");
    ОбластьСтрокаТаблицыУд = Макет.ПолучитьОбласть("СтрокаТаблицыУд");
    ОбластьПодвалУд = Макет.ПолучитьОбласть("ПодвалУд");

    //Заполнение параметров и вывод областей в табличный документ

    //шапка

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НачислениеЗПСотрудника.ПериодДок.Наименование КАК ПериодДок,
    | НачислениеЗПСотрудника.ПериодДатаНачала КАК ПериодДатаНачала,
    | НачислениеЗПСотрудника.ПериодДатаКонца КАК ПериодДатаКонца,
    | НачисленнаяЗПОбороты.Сотрудник КАК Сотрудник,
    | НачисленнаяЗПОбороты.Организация КАК Организация,
    | НачисленнаяЗПОбороты.Поликлиника КАК Поликлиника
    |ИЗ
    | Документ.НачислениеЗПСотрудника КАК НачислениеЗПСотрудника,
    | РегистрНакопления.НачисленнаяЗП.Обороты КАК НачисленнаяЗПОбороты
    |ГДЕ
    | НачислениеЗПСотрудника.Ссылка = &СсылкаНаДокумент";

    Запрос.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);

    РезультатЗапроса = Запрос.Выполнить();

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    ОбластьШапка.Параметры.Организация = ВыборкаДетальныеЗаписи.Организация;
    ОбластьШапка.Параметры.Поликлиника = ВыборкаДетальныеЗаписи.Поликлиника;
    ОбластьШапка.Параметры.Сотрудник = ВыборкаДетальныеЗаписи.Сотрудник;
    ОбластьШапка.Параметры.ПериодДок = Формат(ВыборкаДетальныеЗаписи.ПериодДок,"ДФ=MMMM.yyyy");
    ОбластьШапка.Параметры.ПериодДатаНачала = Формат(ВыборкаДетальныеЗаписи.ПериодДатаНачала,"ДФ=dd.MM.yyyy");
    ОбластьШапка.Параметры.ПериодДатаКонца = Формат(ВыборкаДетальныеЗаписи.ПериодДатаКонца, "ДФ=dd.MM.yyyy");

    ТабДок.Вывести(ОбластьШапка);
    КонецЦикла;

    //шапка таблицы Нач

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НачисленнаяЗПОстатки.СуммаЗПОстаток КАК СуммаЗПОстаток
    |ИЗ
    | РегистрНакопления.НачисленнаяЗП.Остатки(
    | &Дата,
    | Организация = &Организация
    | И Поликлиника = &Поликлиника
    | И Сотрудник = &Сотрудник) КАК НачисленнаяЗПОстатки";

    Запрос.УстановитьПараметр("Дата",СсылкаНаДокумент.Дата );
    Запрос.УстановитьПараметр("Организация", СсылкаНаДокумент.Организация);
    Запрос.УстановитьПараметр("Поликлиника", СсылкаНаДокумент.Поликлиника);
    Запрос.УстановитьПараметр("Сотрудник", СсылкаНаДокумент.Сотрудник);

    РезультатЗапроса = Запрос.Выполнить();

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    ОбластьШапкаТаблицыНач.Параметры.СальдоНачало = ВыборкаДетальныеЗаписи.СуммаЗПОстаток;
    СальдоНачало = ВыборкаДетальныеЗаписи.СуммаЗПОстаток;

    ТабДок.Вывести(ОбластьШапкаТаблицыНач);
    КонецЦикла;

    //Строка таблицы Начисления

    //Строка таблицы Начисления

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НачисленнаяЗПОборотыОбороты.Отделение КАК Отделение,
    | НачисленнаяЗПОборотыОбороты.Должность КАК Должность,
    | НачисленнаяЗПОборотыОбороты.СуммаЗПОборот КАК СуммаЗПОборот,
    | НачисленнаяЗПОборотыОбороты.ВидРасчета КАК ВидРасчета,
    | НачисленнаяЗПОборотыОбороты.ПериодМес КАК ПериодМес
    |ИЗ
    | РегистрНакопления.НачисленнаяЗПОбороты.Обороты(
    | &Дата1,
    | &Дата2,
    | Сотрудник = &Сотрудник
    | И Организация = &Организация
    | И Поликлиника = &Поликлиника) КАК НачисленнаяЗПОборотыОбороты
    |
    |УПОРЯДОЧИТЬ ПО
    | ВидРасчета,
    | ПериодМес,
    | Отделение,
    | Должность,
    | СуммаЗПОборот";

    Запрос.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);
    Запрос.УстановитьПараметр("Дата1", НачалоПериода); // НачалоПериода - это ваша переменная с начальной датой
    Запрос.УстановитьПараметр("Дата2", КонецПериода); // КонецПериода - это ваша переменная с конечной датой

    РезультатЗапроса = Запрос.Выполнить();

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

    // Обработка результатов запроса
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ОбластьСтрокаТаблицыНач.Параметры.Отделение = ВыборкаДетальныеЗаписи.Отделение;
    ОбластьСтрокаТаблицыНач.Параметры.Должность = ВыборкаДетальныеЗаписи.Должность;
    ОбластьСтрокаТаблицыНач.Параметры.СуммаНачисления = ВыборкаДетальныеЗаписи.СуммаЗПОборот;

    ТабДок.Вывести(ОбластьСтрокаТаблицыНач);
    КонецЦикла;

    //подвал нач

    // Запрос для суммы НачисленияЗП.СуммаН
    ЗапросНачисленияЗП = Новый Запрос;
    ЗапросНачисленияЗП.Текст =
    "ВЫБРАТЬ
    | СУММА(НачислениеЗПСотрудникаНачисленияЗП.СуммаН) КАК СуммаНачисленияЗП
    |ИЗ
    | Документ.НачислениеЗПСотрудника.НачисленияЗП КАК НачислениеЗПСотрудникаНачисленияЗП
    |ГДЕ
    | НачислениеЗПСотрудникаНачисленияЗП.Ссылка = &СсылкаНаДокумент";

    ЗапросНачисленияЗП.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);

    РезультатЗапросаНачисленияЗП = ЗапросНачисленияЗП.Выполнить();

    ВыборкаНачисленияЗП = РезультатЗапросаНачисленияЗП.Выбрать();

    Если ВыборкаНачисленияЗП.Следующий() Тогда
    СуммаНачисленияЗП = ВыборкаНачисленияЗП.СуммаНачисленияЗП;
    КонецЕсли;

    // Запрос для суммы НачисленияДополнительные.СуммаН
    ЗапросНачисленияДополнительные = Новый Запрос;
    ЗапросНачисленияДополнительные.Текст =
    "ВЫБРАТЬ
    | СУММА(НачислениеЗПСотрудникаНачисленияДополнительные.СуммаН) КАК СуммаНачисленияДополнительные
    |ИЗ
    | Документ.НачислениеЗПСотрудника.НачисленияДополнительные КАК НачислениеЗПСотрудникаНачисленияДополнительные
    |ГДЕ
    | НачислениеЗПСотрудникаНачисленияДополнительные.Ссылка.Ссылка = &СсылкаНаДокумент";

    ЗапросНачисленияДополнительные.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);

    РезультатЗапросаНачисленияДополнительные = ЗапросНачисленияДополнительные.Выполнить();

    ВыборкаНачисленияДополнительные = РезультатЗапросаНачисленияДополнительные.Выбрать();

    Если ВыборкаНачисленияДополнительные.Следующий() Тогда
    СуммаНачисленияДополнительные = ВыборкаНачисленияДополнительные.СуммаНачисленияДополнительные;
    КонецЕсли;

    // Расчет СальдоКонецН
    СальдоКонецН = СуммаНачисленияЗП + СуммаНачисленияДополнительные;

    // Вывод результата
    ОбластьПодвалНач.Параметры.СальдоКонецН = СальдоКонецН;
    ТабДок.Вывести(ОбластьПодвалНач);

    //шапка таблицы Уд

    ТабДок.Вывести(ОбластьШапкаТаблицыУд);

    //Строка таблицы Уд

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НачислениеЗПСотрудникаУдержания.Удержание.Наименование КАК ВидОперации,
    | НачислениеЗПСотрудникаУдержания.СуммаУ КАК СуммаУ,
    | НачислениеЗПСотрудникаУдержания.Отделение.Наименование КАК ОтделениеУ,
    | НачислениеЗПСотрудникаУдержания.Должность.Наименование КАК ДолжностьУ
    |ИЗ
    | Документ.НачислениеЗПСотрудника.Удержания КАК НачислениеЗПСотрудникаУдержания
    |ГДЕ
    | НачислениеЗПСотрудникаУдержания.Ссылка.Ссылка = &СсылкаНаДокумент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | НачислениеЗПСотрудникаВыплатыУдержанияБелые.ВыпУд,
    | НачислениеЗПСотрудникаВыплатыУдержанияБелые.СуммаВып,
    | NULL,
    | NULL
    |ИЗ
    | Документ.НачислениеЗПСотрудника.ВыплатыУдержанияБелые КАК НачислениеЗПСотрудникаВыплатыУдержанияБелые";

    Запрос.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);

    РезультатЗапроса = Запрос.Выполнить();

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    ОбластьСтрокаТаблицыУд.Параметры.ОтделениеУ = ВыборкаДетальныеЗаписи.ОтделениеУ;
    ОбластьСтрокаТаблицыУд.Параметры.ДолжностьУ = ВыборкаДетальныеЗаписи.ДолжностьУ;
    ОбластьСтрокаТаблицыУд.Параметры.ВидОперации = ВыборкаДетальныеЗаписи.ВидОперации;
    ОбластьСтрокаТаблицыУд.Параметры.СуммаУдержания = ВыборкаДетальныеЗаписи.СуммаУ;
    //

    ТабДок.Вывести(ОбластьСтрокаТаблицыУд);

    КонецЦикла;

    //подвал уд

    // Запрос для суммы выплат
    ЗапросСуммаВыплат = Новый Запрос;
    ЗапросСуммаВыплат.Текст =
    "ВЫБРАТЬ
    | СУММА(НачислениеЗПСотрудникаВыплатыУдержанияБелые.СуммаВып) КАК СуммаВып
    |ИЗ
    | Документ.НачислениеЗПСотрудника.ВыплатыУдержанияБелые КАК НачислениеЗПСотрудникаВыплатыУдержанияБелые
    |ГДЕ
    | НачислениеЗПСотрудникаВыплатыУдержанияБелые.Ссылка.Ссылка = &СсылкаНаДокумент";

    ЗапросСуммаВыплат.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);

    РезультатЗапросаСуммаВыплат = ЗапросСуммаВыплат.Выполнить();

    ВыборкаСуммаВыплат = РезультатЗапросаСуммаВыплат.Выбрать();

    Если ВыборкаСуммаВыплат.Следующий() Тогда
    СуммаВыплат = ВыборкаСуммаВыплат.СуммаВып;
    КонецЕсли;

    // Запрос для суммы удержаний
    ЗапросСуммаУдержаний = Новый Запрос;
    ЗапросСуммаУдержаний.Текст =
    "ВЫБРАТЬ
    | СУММА(НачислениеЗПСотрудникаУдержания.СуммаУ) КАК СуммаУ
    |ИЗ
    | Документ.НачислениеЗПСотрудника.Удержания КАК НачислениеЗПСотрудникаУдержания
    |ГДЕ
    | НачислениеЗПСотрудникаУдержания.Ссылка.Ссылка = &СсылкаНаДокумент";

    ЗапросСуммаУдержаний.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);

    РезультатЗапросаСуммаУдержаний = ЗапросСуммаУдержаний.Выполнить();

    ВыборкаСуммаУдержаний = РезультатЗапросаСуммаУдержаний.Выбрать();

    Если ВыборкаСуммаУдержаний.Следующий() Тогда
    СуммаУдержаний = ВыборкаСуммаУдержаний.СуммаУ;
    КонецЕсли;

    // Подвал уд
    СальдоКонецУ = СуммаВыплат + СуммаУдержаний;
    СальдоКонец = СальдоНачало + СальдоКонецН - СальдоКонецУ;

    ОбластьПодвалУд.Параметры.СальдоКонец = СальдоКонец;
    ОбластьПодвалУд.Параметры.СальдоКонецУ = СальдоКонецУ;
    ТабДок.Вывести(ОбластьПодвалУд);

    КонецПроцедуры
```

Не могу разобраться как сделать так, чтобы дату по которой будет выводиться отчёт пользователь мог вписывать самостоятельно. Вроде с запросом разобрался использовал данный способ, но при выполнении программа выдаёт ошибку на 3 фото. Может сможет кто-нибудь подсказать?

```1c
    //Строка таблицы Начисления

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НачисленнаяЗПОборотыОбороты.Отделение КАК Отделение,
    | НачисленнаяЗПОборотыОбороты.Должность КАК Должность,
    | НачисленнаяЗПОборотыОбороты.СуммаЗПОборот КАК СуммаЗПОборот,
    | НачисленнаяЗПОборотыОбороты.ВидРасчета КАК ВидРасчета,
    | НачисленнаяЗПОборотыОбороты.ПериодМес КАК ПериодМес
    |ИЗ
    | РегистрНакопления.НачисленнаяЗПОбороты.Обороты(
    | &Дата1,
    | &Дата2,
    | Сотрудник = &Сотрудник
    | И Организация = &Организация
    | И Поликлиника = &Поликлиника) КАК НачисленнаяЗПОборотыОбороты
    |
    |УПОРЯДОЧИТЬ ПО
    | ВидРасчета,
    | ПериодМес,
    | Отделение,
    | Должность,
    | СуммаЗПОборот";

    Запрос.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);
    Запрос.УстановитьПараметр("Дата1", НачалоПериода); // НачалоПериода - это ваша переменная с начальной датой
    Запрос.УстановитьПараметр("Дата2", КонецПериода); // КонецПериода - это ваша переменная с конечной датой

    РезультатЗапроса = Запрос.Выполнить();

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

    // Обработка результатов запроса
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ОбластьСтрокаТаблицыНач.Параметры.Отделение = ВыборкаДетальныеЗаписи.Отделение;
    ОбластьСтрокаТаблицыНач.Параметры.Должность = ВыборкаДетальныеЗаписи.Должность;
    ОбластьСтрокаТаблицыНач.Параметры.СуммаНачисления = ВыборкаДетальныеЗаписи.СуммаЗПОборот;

    ТабДок.Вывести(ОбластьСтрокаТаблицыНач);
    КонецЦикла;
```
---
Предлагаю освоить использование стандартного периода (удобнее пользователю, правильнее - вам, хотя бы на время обратите внимание):
```1c
    &НаКлиенте
    Асинх Процедура Команда1(Команда)
    Период = Новый СтандартныйПериод;
    Диалог = Новый ДиалогРедактированияСтандартногоПериода();
    // отображение диалога с вариантами периодов
    Период.Вариант = ВариантСтандартногоПериода.ЭтотМесяц;
    Диалог.Период = Период;
    Результат = Ждать Диалог.РедактироватьАсинх();
    Если Результат <> Неопределено Тогда
    Период = Диалог.Период;
    Сообщить("Выбран период с " + Период.ДатаНачала + " по " + Период.ДатаОкончания);
    КонецЕсли;

    //отображение в режиме календаря (легко переключается, но кто об этом знает)
    Период = Новый СтандартныйПериод;
    Диалог.Период = Период;
    Результат = Ждать Диалог.РедактироватьАсинх();
    Если Результат <> Неопределено Тогда
    Период = Диалог.Период;
    Сообщить("Выбран период с " + Период.ДатаНачала + " по " + Период.ДатаОкончания);
    КонецЕсли;

    КонецПроцедуры
```

чтобы у пользователя был один из ниже указанных вариантов
---
Глобальный контекст (Global context)
ВвестиДату (InputDate)
Синтаксис:

...

Примечание:
Если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать, следует использовать метод ПоказатьВводДаты.

взято из синтаксис помощника
---
Глобальный контекст (Global context)
ВвестиДату (InputDate)
Синтаксис:

...

Примечание:
Если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать, следует использовать метод ПоказатьВводДаты.

взято из синтаксис помощника
---
У Вас в конфигурации запрещено использовать модальные окна (это те, которые блокируют интерфейс), поэтому вместо Ввестидату Вам следует использовать ПоказатьВводДаты. Вам придется немного переписать код и, возможно, изучить как работает метод "ПоказатьВводДаты"
---
Там еще можно сразу период задавать, а не спрашивать пользователя о каждой дате отдельно...
---
Через метод "ПоказатьВводДаты"? Или вообще в принципе?
---
Нет, через ПоказатьВводДаты можно только одну дату ввести. Я думаю, MORSON имел ввиду в принципе.
---
Предлагаю освоить использование стандартного периода (удобнее пользователю, правильнее - вам, хотя бы на время обратите внимание):
```1c
    &НаКлиенте
    Асинх Процедура Команда1(Команда)
    Период = Новый СтандартныйПериод;
    Диалог = Новый ДиалогРедактированияСтандартногоПериода();
    // отображение диалога с вариантами периодов
    Период.Вариант = ВариантСтандартногоПериода.ЭтотМесяц;
    Диалог.Период = Период;
    Результат = Ждать Диалог.РедактироватьАсинх();
    Если Результат <> Неопределено Тогда
    Период = Диалог.Период;
    Сообщить("Выбран период с " + Период.ДатаНачала + " по " + Период.ДатаОкончания);
    КонецЕсли;

    //отображение в режиме календаря (легко переключается, но кто об этом знает)
    Период = Новый СтандартныйПериод;
    Диалог.Период = Период;
    Результат = Ждать Диалог.РедактироватьАсинх();
    Если Результат <> Неопределено Тогда
    Период = Диалог.Период;
    Сообщить("Выбран период с " + Период.ДатаНачала + " по " + Период.ДатаОкончания);
    КонецЕсли;

    КонецПроцедуры
```

чтобы у пользователя был один из ниже указанных вариантов
---
Не подскажите пожалуйста, а как можно ли в это окно выбора периода ещё как-то впихнуть выбор сотрудника?
---
Впихнуть сюда не выйдет. Для этого вам либо нужна своя форма, где вы будете настраивать ВСЕ параметры либо вызов еще одного диалога
```1c
    Сотрудник = Неопределено;
    Результат = Ждать ВвестиЗначениеАсинх(Сотрудник, "Укажите сотрудника", Тип("СправочникСсылка.Сотрудники"));
    Если Результат <> Неопределено Тогда
    Сотрудник = Результат;
    Сообщить("Сегодня дежурит: " + Сотрудник);
    Иначе
    Сообщить("Выбор сотрудника отменен");
    КонецЕсли;
```

Хотя я не уверен, что подобный поочередный вызов входит в стандартный Look&Feel 1С - все-таки обычно параметры задаются на форме или подвязываются к ее элементам (например, выбранным строкам), но все зависит от ситуации, конечно