Часто бывает так, что клиенты просят "А сделайте, чтобы в этом отчете выводилось все как в ведомости!". И вот, когда у меня появилось время и желание я таки решила эту "хотелку" исполнить. Постараюсь ниже описать некоторые моменты, чтобы было проще разобраться.
На скринах видно, что в реквизитах куча таблиц, они все нужны. Таблицы без 1 собирают данные соответствующие их названию, таблицы с 1 это их свертки.
Основной макет - это конечно ОсновнаяСхемаКомпоновкиДанных. Но в скд формируется только запрос, при выводе отчет используем макет - форма0504402. В нем работаем только с той зоной, что выделена красным. Макет шапки - Макет. Макет подвала - Макет1. Почему так? Потому что в отчете может оказаться либо слишком много либо слишком мало начислений/удержаний и тогда шапка и подвал начинают двигаться, чтобы этого не происходило и они всегда были на своих местах, я вынесла их в отдельные макеты.
Важно: Если, например, нужно увеличить ширину ячейки для ФИО сотрудника, тогда заходим в макет шапки - Макет и в нем изменяем размер поля, где находится ФИО, тогда в итоге у нас получится,то что нужно. Если будете раздвигать в макете с таблицей - ничего не произойдет.
Еще интересный момент - момент объединения ячеек Начислено Удержано в заголовке таблицы и подгон областей из макета шапки отчета:
1. Подгон Области2 из макета шапки под колонки начислено/удержано/выплачено
ОбъединениеНачало=7;
КолвоОбъединенийНачислений = ТаблицаОклад1.Количество() + ТаблицаНачисления1.Количество();
КолвоОбъединенийУдержаний = ТаблицаУдержания1.Количество();
КолвоОбъединенийВыплат = ТаблицаВыплаты1.Количество();
КолонкиДо = 17;
КолВоКолонок = КолвоОбъединенийВыплат+КолвоОбъединенийУдержаний+КолвоОбъединенийНачислений+3+ОбъединениеНачало-КолонкиДо;
пока КолВоКолонок > 0 цикл
ТабДокумент.Присоединить(ОбластьМакетаШапкаДокумента3);
КолВоКолонок = КолВоКолонок -1;
КонецЦикла;
ТабДокумент.Присоединить(ОбластьМакетаШапкаДокумента2);
2. Объединение заголовков таблицы:
ОбъединениеНачало=7;
КолвоОбъединенийНачислений = ТаблицаОклад1.Количество() + ТаблицаНачисления1.Количество();
ТабДокумент.Область("R12"+"C"+строка(ОбъединениеНачало)+":"+"R12"+"C"+строка(ОбъединениеНачало+КолвоОбъединенийНачислений)).Объединить();
КолвоОбъединенийУдержаний = ТаблицаУдержания1.Количество();
ТабДокумент.Область("R12"+"C"+строка(ОбъединениеНачало+КолвоОбъединенийНачислений+1)+":"+"R12"+"C"+строка(КолвоОбъединенийУдержаний+ОбъединениеНачало+КолвоОбъединенийНачислений+1)).Объединить();
КолвоОбъединенийВыплат = ТаблицаВыплаты1.Количество();
ТабДокумент.Область("R12"+"C"+строка(ОбъединениеНачало+КолвоОбъединенийНачислений+КолвоОбъединенийУдержаний+2)+":"+"R12"+"C"+строка(КолвоОбъединенийВыплат+КолвоОбъединенийУдержаний+ОбъединениеНачало+КолвоОбъединенийНачислений+2)).Объединить();
Про задолженность: ТаблицаСальдо - сальдо начальное, а ТаблицаСальдо1 - сальдо конечное. В колонках "Задолженность За Организацией" и "Задолженность За Работником" - отражаются данные на начало месяца. А вот в колонке "Сумма к выдаче" - на конец.
Тестировалось все на релизе: 1.0.109.1.