Ок, вот весь код.
Процедура КнопкаСформироватьНажатие(Кнопка)
Подр=СокрЛП(Подразделение.Наименование);
Сотр=СокрЛП(Сотрудник.Код);
ПодрНаим=СокрЛП(Подразделение.Наименование);
СотрНаим=СокрЛП(Сотрудник.Наименование);
Если Подр="" Тогда
ПодрНаим="всем подразделениям";
КонецЕсли;
Если Сотр="" Тогда
СотрНаим="всем сотрудникам";
КонецЕсли;
МояДата=Дата(МесяцНачисления);
ТекстПериода=Формат(МояДата,"ДФ='ММММ гггг'");
НачПериода=МояДата;
КонПериода=КонецМесяца(МояДата);
ДатаАктуальности=КонПериода;
Запрос1=Новый Запрос;
Запрос1.Текст="ВЫБРАТЬ
|Код,
|ПериодРегистрации,
|СУММА(Результат) КАК Результат,
|ФизЛицо,
|Категория,
|Подразделение,
|ПериодЗавершения,
|КатегорияЗавершения,
|ВидЗанятости,
|ДатаУвольнения,
|ДоходВНатуральнойФорме,
|ВидДоговора
| ИЗ
| (ВЫБРАТЬ
| яВидыНачислений.Код,
| СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
| ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Код КАК ФизЛицо,
| ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации,
| РаботникиОрганизацийСрезПоследних.Должность.КатегорияСтатистическогоУчета КАК Категория,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование КАК Подразделение,
| РаботникиОрганизацийСрезПоследних.ПериодЗавершения КАК ПериодЗавершения,
| РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения.КатегорияСтатистическ
огоУчета КАК КатегорияЗавершения,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости КАК ВидЗанятости,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения КАК ДатаУвольнения,
| яВидыНачислений.ВидНачисления.ЯвляетсяДоходомВНатуральнойФорме КАК ДоходВНатуральнойФорме,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ВидДоговора КАК ВидДоговора
|
| ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.яВидыНачислений КАК яВидыНачислений
| ПО ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета = яВидыНачислений.ВидНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаАктуальности,) КАК РаботникиОрганизацийСрезПоследних
| ПО ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Наименование = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.Наименование
| ГДЕ
| ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода
|
| СГРУППИРОВАТЬ ПО
| яВидыНачислений.Код,
| ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо.Код,
| ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации,
| РаботникиОрганизацийСрезПоследних.Должность.КатегорияСтатистическогоУчета,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование,
| РаботникиОрганизацийСрезПоследних.ПериодЗавершения,
| РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения.КатегорияСтатистическ
огоУчета,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения,
| яВидыНачислений.ВидНачисления.ЯвляетсяДоходомВНатуральнойФорме,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ВидДоговора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| яВидыНачислений.Код,
| СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
| ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Код КАК ФизЛицо,
| ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации,
| РаботникиОрганизацийСрезПоследних.Должность.КатегорияСтатистическогоУчета КАК Категория,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование КАК Подразделение,
| РаботникиОрганизацийСрезПоследних.ПериодЗавершения КАК ПериодЗавершения,
| РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения.КатегорияСтатистическ
огоУчета КАК КатегорияЗавершения,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости КАК ВидЗанятости,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения КАК ДатаУвольнения,
| яВидыНачислений.ВидНачисления.ЯвляетсяДоходомВНатуральнойФорме КАК ДоходВНатуральнойФорме,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ВидДоговора КАК ВидДоговора
|
| ИЗ
| РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаАктуальности,) КАК РаботникиОрганизацийСрезПоследних
| ПО ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Наименование = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.Наименование
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.яВидыНачислений КАК яВидыНачислений
| ПО ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета = яВидыНачислений.ВидНачисления
| ГДЕ
| ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода
|
| СГРУППИРОВАТЬ ПО
| яВидыНачислений.Код,
| ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Код,
| ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации,
| РаботникиОрганизацийСрезПоследних.Должность.КатегорияСтатистическогоУчета,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование,
| РаботникиОрганизацийСрезПоследних.ПериодЗавершения,
| РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения.КатегорияСтатистическ
огоУчета,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения,
| яВидыНачислений.ВидНачисления.ЯвляетсяДоходомВНатуральнойФорме,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ВидДоговора) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| Код,
| ПериодРегистрации,
| ФизЛицо,
| Категория,
| Подразделение,
| ПериодЗавершения,
| КатегорияЗавершения,
| ВидЗанятости,
| ДатаУвольнения,
| ДоходВНатуральнойФорме,
| ВидДоговора
| УПОРЯДОЧИТЬ ПО
|Код";
Запрос1.УстановитьПараметр("ДатаАктуальности", ДатаАктуальности);
Запрос1.УстановитьПараметр("НачПериода", НачПериода);
Запрос1.УстановитьПараметр("КонПериода", КонПериода);
Выборка1=Запрос1.Выполнить().Выбрать();
ТабДокумент=Новый ТабличныйДокумент;
Макет=ПолучитьМакет("Макет");
ОбластьМакетаШапка=Макет.ПолучитьОбласть("Шапка");
ОбластьМакетаКоды=Макет.ПолучитьОбласть("Коды");
ОбластьМакетаКатегории=Макет.ПолучитьОбласть("Категории");
ОбластьМакетаНачало=Макет.ПолучитьОбласть("Начало");
ОбластьМакетаОкончание=Макет.ПолучитьОбласть("Окончание");
Если Подр="" И Сотр="" Тогда
ОбластьМакетаШапка.Параметры.Заголовок="Свод ФОТ за "+ТекстПериода+" по "+ПодрНаим;
КонецЕсли;
Если Сотр<>"" И Подр="" Тогда
ОбластьМакетаШапка.Параметры.Заголовок="Свод ФОТ за "+ТекстПериода+" по "+СотрНаим;
КонецЕсли;
Итоги=Макет.ПолучитьОбласть("Итоги");
ТабДокумент.Вывести(ОбластьМакетаШапка);
ТаблицаФОТ1=Новый ТаблицаЗначений;
ТаблицаФОТ1.Колонки.Добавить("Код");
ТаблицаФОТ1.Колонки.Добавить("Категории");
ТаблицаФОТ1.Колонки.Добавить("ФизЛицо");
ТаблицаФОТ1.Колонки.Добавить("КатегорииЗавершения");
ТаблицаФОТ1.Колонки.Добавить("ПериодЗавершения");
ТаблицаФОТ1.Колонки.Добавить("Результат");
ТаблицаФОТ1.Колонки.Добавить("ВидЗанятости");
ТаблицаФОТ1.Колонки.Добавить("ДатаУвольнения");
ТаблицаФОТ1.Колонки.Добавить("ДоходВНатурФорме");
ТаблицаФОТ1.Колонки.Добавить("ВидДоговора");
Если Подр="" Тогда ////выборка по подразделению(без выборки)
Если Сотр="" Тогда ////без сотрудника и без подразделения
Пока Выборка1.Следующий() Цикл
НоваяСтр=ТаблицаФОТ1.Добавить();
НоваяСтр.Код=Выборка1.Код;
НоваяСтр.Категории=Выборка1.Категория;
НоваяСтр.ФизЛицо=Выборка1.ФизЛицо;
НоваяСтр.КатегорииЗавершения=Выборка1.КатегорияЗавершения;
НоваяСтр.ПериодЗавершения=Выборка1.ПериодЗавершения;
НоваяСтр.Результат=Выборка1.Результат;
НоваяСтр.ВидЗанятости=Выборка1.ВидЗанятости;
НоваяСтр.ДатаУвольнения=Выборка1.ДатаУвольнения;
НоваяСтр.ДоходВНатурФорме=Выборка1.ДоходВНатуральнойФорме;
НоваяСтр.ВидДоговора=Выборка1.ВидДоговора;
КонецЦикла;
Иначе ////выборка по сотруднику (с выборкой) без подразделения
Пока Выборка1.Следующий() Цикл
Если Сотр=СокрЛП(Выборка1.ФизЛицо) Тогда
НоваяСтр=ТаблицаФОТ1.Добавить();
НоваяСтр.Код=Выборка1.Код;
НоваяСтр.Категории=Выборка1.Категория;
НоваяСтр.ФизЛицо=Выборка1.ФизЛицо;
НоваяСтр.КатегорииЗавершения=Выборка1.КатегорияЗавершения;
НоваяСтр.ПериодЗавершения=Выборка1.ПериодЗавершения;
НоваяСтр.Результат=Выборка1.Результат;
НоваяСтр.ВидЗанятости=Выборка1.ВидЗанятости;
НоваяСтр.ДатаУвольнения=Выборка1.ДатаУвольнения;
НоваяСтр.ДоходВНатурФорме=Выборка1.ДоходВНатуральнойФорме;
НоваяСтр.ВидДоговора=Выборка1.ВидДоговора;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Иначе
Если Сотр="" Тогда ////выборка без сотрудника по подразделению
Пока Выборка1.Следующий() Цикл
П=СокрЛП(Выборка1.Подразделение);
Если СокрЛП(Выборка1.ВидДоговора)="" Тогда
П="Управление";
КонецЕсли;
Если Подр=П Тогда
НоваяСтр=ТаблицаФОТ1.Добавить();
НоваяСтр.Код=Выборка1.Код;
НоваяСтр.Категории=Выборка1.Категория;
НоваяСтр.ФизЛицо=Выборка1.ФизЛицо;
НоваяСтр.КатегорииЗавершения=Выборка1.КатегорияЗавершения;
НоваяСтр.ПериодЗавершения=Выборка1.ПериодЗавершения;
НоваяСтр.Результат=Выборка1.Результат;
НоваяСтр.ВидЗанятости=Выборка1.ВидЗанятости;
НоваяСтр.ДатаУвольнения=Выборка1.ДатаУвольнения;
НоваяСтр.ДоходВНатурФорме=Выборка1.ДоходВНатуральнойФорме;
НоваяСтр.ВидДоговора=Выборка1.ВидДоговора;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакетаНачало);
ТабДокумент.Вывести(ОбластьМакетаКатегории);
Рук=0;
Спец=0;
Раб=0;
Др=0;
БК=0;
ИтКод=0;
ИтКодРук=0;
ИтКодСпец=0;
ИтКодРаб=0;
ИтКодДр=0;
ИтКодБК=0;
Для НомерСтроки=0 По ТаблицаФОТ1.Количество()-1 Цикл
////проверка на увольнение
Увольнение=ТаблицаФОТ1[НомерСтроки].ДатаУвольнения;
Если Увольнение<НачПериода И Увольнение<>Дата(1,1,1,0,0,0) Тогда
Продолжить;
КонецЕсли;
////проверка на вид занятости
Если СокрЛП(ТаблицаФОТ1[НомерСтроки].ВидЗанятости)="Внутреннее совместительство" Тогда
Продолжить;
КонецЕсли;
////проверка на доход в натур форме
Если ТаблицаФОТ1[НомерСтроки].ДоходВНатурФорме=Истина Тогда
Продолжить;
КонецЕсли;
////если строка ТЗ 1ая(0ая)
Если НомерСтроки=0 Тогда
ОбластьМакетаКоды.Параметры.КодНачисления=ТаблицаФОТ1[НомерСтроки].Код;
////проверка категории по периоду завершения
ПериодЗавершения=ТаблицаФОТ1[НомерСтроки].ПериодЗавершения;
Если ПериодЗавершения=NULL Тогда
ПериодЗавершения=Дата(1,1,1,0,0,0);
КонецЕсли;
Если ПериодЗавершения<=КонПериода И ПериодЗавершения<>Дата(1,1,1,0,0,0) Тогда
Категория=ТаблицаФОТ1[НомерСтроки].КатегорииЗавершения;
КатСтр=СокрЛП(Строка(Категория));
Иначе
Категория=ТаблицаФОТ1[НомерСтроки].Категории;
КатСтр=СокрЛП(Строка(Категория));
КонецЕсли;
////рук
Если КатСтр="Руководители" Тогда
Рук=ТаблицаФОТ1[НомерСтроки].Результат;
Иначе
Рук=0;
КонецЕсли;
////спец
Если КатСтр="Специалисты" Тогда
Спец=ТаблицаФОТ1[НомерСтроки].Результат;
Иначе
Спец=0;
КонецЕсли;
////дрсл
Если КатСтр="Другие служащие" Тогда
Др=ТаблицаФОТ1[НомерСтроки].Результат;
Иначе
Др=0;
КонецЕсли;
////раб
Если КатСтр="Рабочие" Тогда
Раб=ТаблицаФОТ1[НомерСтроки].Результат;
Иначе
Раб=0;
КонецЕсли;
////бк
Если КатСтр="" Тогда
БК=ТаблицаФОТ1[НомерСтроки].Результат;
Иначе
БК=0;
КонецЕсли;
ИтКодРук=Рук;
ИтКодСпец=Спец;
ИтКодРаб=Раб;
ИтКодДр=Др;
ИтКодБК=БК;
ИтКод=ИтКодРук+ИтКодСпец+ИтКодРаб+ИтКодДр+ИтКодБК;
ОбластьМакетаКоды.Параметры.Руководители=ИтКодРук;
ОбластьМакетаКоды.Параметры.Специалисты=ИтКодСпец;
ОбластьМакетаКоды.Параметры.ДругиеСлужащие=ИтКодДр;
ОбластьМакетаКоды.Параметры.Рабочие=ИтКодРаб;
ОбластьМакетаКоды.Параметры.БезКатегории=ИтКодБК;
ОбластьМакетаКоды.Параметры.ИтКод=ИтКод;
Если ИтКодРук=0 Тогда
ОбластьМакетаКоды.Параметры.Руководители="0.00";
КонецЕсли;
Если ИтКодСпец=0 Тогда
ОбластьМакетаКоды.Параметры.Специалисты="0.00";
КонецЕсли;
Если ИтКодДр=0 Тогда
ОбластьМакетаКоды.Параметры.ДругиеСлужащие="0.00";
КонецЕсли;
Если ИтКодРаб=0 Тогда
ОбластьМакетаКоды.Параметры.Рабочие="0.00";
КонецЕсли;
Если ИтКодБК=0 Тогда
ОбластьМакетаКоды.Параметры.БезКатегории="0.00";
КонецЕсли;
Если ИтКод=0 Тогда
ОбластьМакетаКоды.Параметры.ИтКод="0.00";
КонецЕсли;
КонецЕсли;
////если строка ТЗ НЕ 1ая(0ая)
Если НомерСтроки<>0 Тогда
////если коды НЕ совпадают
Если ТаблицаФОТ1[НомерСтроки-1].Код<>ТаблицаФОТ1[НомерСтроки].Код Тогда
////если получен нулевой результат в 1ой строке следующего кода
Если ТаблицаФОТ1[НомерСтроки].Результат=0 Тогда
ТабДокумент.Вывести(ОбластьМакетаКоды);
Рук=0;
Спец=0;
Раб=0;
Др=0;
БК=0;
ИтКод=0;
ИтКодРук=0;
ИтКодСпец=0;
ИтКодРаб=0;
ИтКодДр=0;
ИтКодБК=0;
Продолжить;
КонецЕсли;
Если ИтКод<>0 ИЛИ ИтКодРук<>0 ИЛИ ИтКодСпец<>0 ИЛИ ИтКодРаб<>0 ИЛИ ИтКодДр<>0 ИЛИ ИтКодБК<>0 Тогда
ТабДокумент.Вывести(ОбластьМакетаКоды);
КонецЕсли;
ОбластьМакетаКоды.Параметры.КодНачисления=ТаблицаФОТ1[НомерСтроки].Код;
Рук=0;
Спец=0;
Раб=0;
Др=0;
БК=0;
ИтКодРук=0;
ИтКодСпец=0;
ИтКодРаб=0;
ИтКодДр=0;
ИтКодБК=0;
ИтКод=0;
ОбластьМакетаКоды.Параметры.Руководители=0;
ОбластьМакетаКоды.Параметры.Специалисты=0;
ОбластьМакетаКоды.Параметры.ДругиеСлужащие=0;
ОбластьМакетаКоды.Параметры.Рабочие=0;
ОбластьМакетаКоды.Параметры.БезКатегории=0;
ОбластьМакетаКоды.Параметры.Руководители=Строка(ИтКодРук);
ОбластьМакетаКоды.Параметры.Специалисты=Строка(ИтКодСпец);
ОбластьМакетаКоды.Параметры.ДругиеСлужащие=Строка(ИтКодДр);
ОбластьМакетаКоды.Параметры.Рабочие=Строка(ИтКодРаб);
ОбластьМакетаКоды.Параметры.БезКатегории=Строка(ИтКодБК);
ПериодЗавершения=ТаблицаФОТ1[НомерСтроки].ПериодЗавершения;
////проверка категории по периоду завершения
Если ПериодЗавершения=NULL Тогда
ПериодЗавершения=Дата(1,1,1,0,0,0);
КонецЕсли;
Если ПериодЗавершения<=КонПериода И ПериодЗавершения<>Дата(1,1,1,0,0,0) Тогда
Категория=ТаблицаФОТ1[НомерСтроки].КатегорииЗавершения;
КатСтр=СокрЛП(Строка(Категория));
Иначе
Категория=ТаблицаФОТ1[НомерСтроки].Категории;
КатСтр=СокрЛП(Строка(Категория));
КонецЕсли;
////рук
Если КатСтр="Руководители" Тогда
Рук=ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
////спец
Если КатСтр="Специалисты" Тогда
Спец=ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
////дрсл
Если КатСтр="Другие служащие" Тогда
Др=ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
////раб
Если КатСтр="Рабочие" Тогда
Раб=ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
////бк
Если КатСтр="" Тогда
БК=ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
ИтКодРук=Рук;
ИтКодСпец=Спец;
ИтКодРаб=Раб;
ИтКодДр=Др;
ИтКодБК=БК;
////Если коды совпадают
Иначе
ОбластьМакетаКоды.Параметры.КодНачисления=ТаблицаФОТ1[НомерСтроки].Код;
////проверка категории по периоду завершения
ПериодЗавершения=ТаблицаФОТ1[НомерСтроки].ПериодЗавершения;
Если ПериодЗавершения=NULL Тогда
ПериодЗавершения=Дата(1,1,1,0,0,0);
КонецЕсли;
Если ПериодЗавершения<=КонПериода И ПериодЗавершения<>Дата(1,1,1,0,0,0) Тогда
Категория=ТаблицаФОТ1[НомерСтроки].КатегорииЗавершения;
КатСтр=СокрЛП(Строка(Категория));
Иначе
Категория=ТаблицаФОТ1[НомерСтроки].Категории;
КатСтр=СокрЛП(Строка(Категория));
КонецЕсли;
////рук
Если КатСтр="Руководители" Тогда
Рук=ИтКодРук+ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
////спец
Если КатСтр="Специалисты" Тогда
Спец=ИтКодСпец+ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
////дрсл
Если КатСтр="Другие служащие" Тогда
Др=ИтКодДр+ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
////раб
Если КатСтр="Рабочие" Тогда
Раб=ИтКодРаб+ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
////бк
Если КатСтр="" Тогда
БК=ИтКодБК+ТаблицаФОТ1[НомерСтроки].Результат;
КонецЕсли;
ИтКодРук=Рук;
ИтКодСпец=Спец;
ИтКодРаб=Раб;
ИтКодДр=Др;
ИтКодБК=БК;
ИтКод=ИтКодРук+ИтКодСпец+ИтКодРаб+ИтКодДр+ИтКодБК;
ОбластьМакетаКоды.Параметры.Руководители=ИтКодРук;
ОбластьМакетаКоды.Параметры.Специалисты=ИтКодСпец;
ОбластьМакетаКоды.Параметры.ДругиеСлужащие=ИтКодДр;
ОбластьМакетаКоды.Параметры.Рабочие=ИтКодРаб;
ОбластьМакетаКоды.Параметры.БезКатегории=ИтКодБК;
ОбластьМакетаКоды.Параметры.ИтКод=ИтКод;
Если ИтКодРук=0 Тогда
ОбластьМакетаКоды.Параметры.Руководители="0.00";
КонецЕсли;
Если ИтКодСпец=0 Тогда
ОбластьМакетаКоды.Параметры.Специалисты="0.00";
КонецЕсли;
Если ИтКодДр=0 Тогда
ОбластьМакетаКоды.Параметры.ДругиеСлужащие="0.00";
КонецЕсли;
Если ИтКодРаб=0 Тогда
ОбластьМакетаКоды.Параметры.Рабочие="0.00";
КонецЕсли;
Если ИтКодБК=0 Тогда
ОбластьМакетаКоды.Параметры.БезКатегории="0.00";
КонецЕсли;
Если ИтКод=0 Тогда
ОбластьМакетаКоды.Параметры.ИтКод="0.00";
КонецЕсли;
КонецЕсли; ////завершение условия на совпадение кодов
ОбластьМакетаКоды.Параметры.Руководители=ИтКодРук;
ОбластьМакетаКоды.Параметры.Специалисты=ИтКодСпец;
ОбластьМакетаКоды.Параметры.ДругиеСлужащие=ИтКодДр;
ОбластьМакетаКоды.Параметры.Рабочие=ИтКодРаб;
ОбластьМакетаКоды.Параметры.БезКатегории=ИтКодБК;
ИтКод=ИтКодРук+ИтКодСпец+ИтКодРаб+ИтКодДр+ИтКодБК;
ОбластьМакетаКоды.Параметры.ИтКод=ИтКод;
Если ИтКодРук=0 Тогда
ОбластьМакетаКоды.Параметры.Руководители="0.00";
КонецЕсли;
Если ИтКодСпец=0 Тогда
ОбластьМакетаКоды.Параметры.Специалисты="0.00";
КонецЕсли;
Если ИтКодДр=0 Тогда
ОбластьМакетаКоды.Параметры.ДругиеСлужащие="0.00";
КонецЕсли;
Если ИтКодРаб=0 Тогда
ОбластьМакетаКоды.Параметры.Рабочие="0.00";
КонецЕсли;
Если ИтКодБК=0 Тогда
ОбластьМакетаКоды.Параметры.БезКатегории="0.00";
КонецЕсли;
Если ИтКод=0 Тогда
ОбластьМакетаКоды.Параметры.ИтКод="0.00";
КонецЕсли;
КонецЕсли; ////завершение условия для НЕ 1ой(0ой) строки ТЗ
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакетаКоды);
ИтРук= 0;
ИтСпец=0;
ИтДр=0;
ИтРаб=0;
ИтБК=0;
////получение итогов по категориям
Для НомерСтроки=0 По ТаблицаФОТ1.Количество()-1 Цикл
////проверка на вид занятост
Если СокрЛП(ТаблицаФОТ1[НомерСтроки].ВидЗанятости)="Внутреннее совместительство" Тогда
Продолжить;
КонецЕсли;
////проверка на увольнение
Увольнение=ТаблицаФОТ1[НомерСтроки].ДатаУвольнения;
Если Увольнение<НачПериода И Увольнение<>Дата(1,1,1,0,0,0) Тогда
Продолжить;
КонецЕсли;
////проверка на доход в натур форме
Если ТаблицаФОТ1[НомерСтроки].ДоходВНатурФорме=Истина Тогда
Продолжить;
КонецЕсли;
////проверка категории по периоду завершения
ПериодЗавершения=ТаблицаФОТ1[НомерСтроки].ПериодЗавершения;
Если ПериодЗавершения=NULL Тогда
ПериодЗавершения=Дата(1,1,1,0,0,0);
КонецЕсли;
Если ПериодЗавершения<=КонПериода И ПериодЗавершения<>Дата(1,1,1,0,0,0) Тогда
Категория=ТаблицаФОТ1[НомерСтроки].КатегорииЗавершения;
КатСтр=СокрЛП(Строка(Категория));
Иначе
Категория=ТаблицаФОТ1[НомерСтроки].Категории;
КатСтр=СокрЛП(Строка(Категория));
КонецЕсли;
////рук
Если КатСтр="Руководители" Тогда
ИтРук=ИтРук+ТаблицаФОТ1[НомерСтроки].Результат;
Итоги.Параметры.ИтРук=ИтРук;
////спец
ИначеЕсли КатСтр="Специалисты" Тогда
ИтСпец=ИтСпец+ТаблицаФОТ1[НомерСтроки].Результат;
Итоги.Параметры.ИтСпец=ИтСпец;
////дрсл
ИначеЕсли КатСтр="Другие служащие" Тогда
ИтДр=ИтДр+ТаблицаФОТ1[НомерСтроки].Результат;
Итоги.Параметры.ИтДр=ИтДр;
////раб
ИначеЕсли КатСтр="Рабочие" Тогда
ИтРаб=ИтРаб+ТаблицаФОТ1[НомерСтроки].Результат;
Итоги.Параметры.ИтРаб=ИтРаб;
////бк
ИначеЕсли КатСтр="" Тогда
ИтБК=ИтБК+ТаблицаФОТ1[НомерСтроки].Результат;
Итоги.Параметры.ИтБК=ИтБК;
КонецЕсли;
КонецЦикла;
Если ИтБК=0 Тогда
Итоги.Параметры.ИтБК="0.00";
КонецЕсли;
Если ИтРук=0 Тогда
Итоги.Параметры.ИтРук="0.00";
КонецЕсли;
Если ИтСпец=0 Тогда
Итоги.Параметры.ИтСпец="0.00";
КонецЕсли;
Если ИтДр=0 Тогда
Итоги.Параметры.ИтДр="0.00";
КонецЕсли;
Если ИтРаб=0 Тогда
Итоги.Параметры.ИтРаб="0.00";
КонецЕсли;
ИтКат=ИтРук+ИтСпец+ИтДр+ИтРаб+ИтБК;
Если ИтКат=0 Тогда
Итоги.Параметры.ИтКат="0.00";
КонецЕсли;
Итоги.Параметры.ИтКат=ИтКат;
ТабДокумент.Вывести(Итоги);
ТабДокумент.Вывести(ОбластьМакетаОкончание);
ТабДокумент.Защита=Истина;
ТабДокумент.ОтображатьСетку=Ложь;
ТабДокумент.АвтоМасштаб=Истина;
ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ТабДокумент.Показать();
КонецПроцедуры