PDA

Просмотр полной версии : Итоговые колонки



vladimir369
14.02.2017, 14:54
В моей таблице под всеми колонками итоги показывают одинаковые суммы, однако, в колонках разные. Как Сделать так что бы итоговые суммы расчитывались по колонкам?

avm3110
15.02.2017, 04:52
В моей таблице под всеми колонками итоги показывают одинаковые суммы, однако, в колонках разные. Как Сделать так что бы итоговые суммы расчитывались по колонкам?


В какой таблице, где в таблице - хз. А сколько есть попыток чтобы угадать правильный ответ?

vladimir369
15.02.2017, 19:35
ПечатьРПВ(ТабДокумент, Выборка, ИспользуетсяПолеВедомость , ИмяМакета)

ЗаполнятьКБК = ИмяМакета = "форма0504401";

ОсновныеНачисления = Новый Соответствие;

Больничные = ВидыРасчетовБольничные();
ТиповыеОтчеты.УстановитьП� �раметр(КомпоновщикНастрое к, "Больничные", Больничные);

ПособияПоУходу = Новый СписокЗначений;
ПособияПоУходу.Добавить(Пе речисления.ВидыПособийСоц� �альногоСтрахования.ПоУход уЗаРебенкомДоПолутораЛет);
ПособияПоУходу.Добавить(Пе речисления.ВидыПособийСоц� �альногоСтрахования.ПоУход уЗаРебенкомДоПолутораЛет);
ПособияПоУходу.Добавить(Пе речисления.ВидыПособийСоц� �альногоСтрахования.Дополн ительныеВыходныеДниПоУход уЗаДетьмиИнвалидами);

СписокНачисленийКолонка1 = Новый Соответствие;
СписокНачисленийКолонка2 = Новый Соответствие;
СписокНачисленийКолонка3 = Новый Соответствие;
СписокНачисленийКолонка4 = Новый Соответствие;
СписокУдержанийКолонка1 = Новый Соответствие;
СписокУдержанийКолонка2 = Новый Соответствие;

ЗаголовокНачисленийКолонк а1 = "";
ЗаголовокНачисленийКолонк а2 = "";
ЗаголовокНачисленийКолонк а3 = "";
ЗаголовокНачисленийКолонк а4 = "";
ЗаголовокУдержанийКолонка 1 = "";
ЗаголовокУдержанийКолонка 2 = "";

// Получим списки видов расчета
Если ИмяМакета = "форма0504401" Тогда

ОсмотренныеВР = Новый Соответствие;
Для каждого СтрокаОрганизации Из Выборка.Строки Цикл
Для каждого СтрокаСотрудника из СтрокаОрганизации.Строки Цикл
Для каждого СтрокаНачисление из СтрокаСотрудника.Строки Цикл
Если ОсмотренныеВР[СтрокаНачисление.ВидРасче� �а] <> Неопределено Тогда
Продолжить;
Иначе
ОсмотренныеВР.Вставить(Стр окаНачисление.ВидРасчета,С трокаНачисление.ВидРасчет� �)
КонецЕсли;
Если ПособияПоУходу.НайтиПоЗна� �ению(СтрокаНачисление.Вид� �особияСоциальногоСтрахов� �ния) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Если Больничные.НайтиПоЗначени� �(СтрокаНачисление.ВидРасч� �та) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Если ТипЗНЧ(СтрокаНачисление.Ви дРасчета) = Тип("ПланВидовРасчетаСсылка.Ос� �овныеНачисленияОрганизац� �й") И СтрокаНачисление.ЗачетОтр� �ботанногоВремени тогда
ОсновныеНачисления.Встави� �ь(СтрокаНачисление.ВидРас� �ета, СтрокаНачисление.ВидРасче� �а);
ИначеЕсли (ТипЗНЧ(СтрокаНачисление.В� �дРасчета) = Тип("ПланВидовРасчетаСсылка.До� �олнительныеНачисленияОрг� �низаций")
ИЛИ СтрокаНачисление.ВидРасче� �а = "Мат. выгода"
ИЛИ (ТипЗНЧ(СтрокаНачисление.В� �дРасчета) = Тип("ПланВидовРасчетаСсылка.Ос� �овныеНачисленияОрганизац� �й")
И НЕ СтрокаНачисление.ЗачетОтр� �ботанногоВремени)) И СписокНачисленийКолонка1.К оличество() = 0 тогда
СписокНачисленийКолонка1.В ставить(СтрокаНачисление.В идРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокНачисленийКолонк а1 = ЗаголовокНачисленийКолонк а1 + ?(ЗаголовокНачисленийКолон ка1 = "", СтрокаНачисление.ВидРасче� �а, ", " + СтрокаНачисление.ВидРасче� �а);
ИначеЕсли (ТипЗНЧ(СтрокаНачисление.В� �дРасчета) = Тип("ПланВидовРасчетаСсылка.До� �олнительныеНачисленияОрг� �низаций")
ИЛИ СтрокаНачисление.ВидРасче� �а = "Мат. выгода"
ИЛИ (ТипЗНЧ(СтрокаНачисление.В� �дРасчета) = Тип("ПланВидовРасчетаСсылка.Ос� �овныеНачисленияОрганизац� �й")
И НЕ СтрокаНачисление.ЗачетОтр� �ботанногоВремени)) И СписокНачисленийКолонка2.К оличество() =0 тогда
СписокНачисленийКолонка2.В ставить(СтрокаНачисление.В идРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокНачисленийКолонк а2 = ЗаголовокНачисленийКолонк а2 + ?(ЗаголовокНачисленийКолон ка2 = "", СтрокаНачисление.ВидРасче� �а, ", " + СтрокаНачисление.ВидРасче� �а);
ИначеЕсли (ТипЗНЧ(СтрокаНачисление.В� �дРасчета) = Тип("ПланВидовРасчетаСсылка.До� �олнительныеНачисленияОрг� �низаций")
ИЛИ СтрокаНачисление.ВидРасче� �а = "Мат. выгода"
ИЛИ (ТипЗНЧ(СтрокаНачисление.В� �дРасчета) = Тип("ПланВидовРасчетаСсылка.Ос� �овныеНачисленияОрганизац� �й")
И НЕ СтрокаНачисление.ЗачетОтр� �ботанногоВремени)) И СписокНачисленийКолонка3.К оличество() =0 тогда
СписокНачисленийКолонка3.В ставить(СтрокаНачисление.В идРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокНачисленийКолонк а3 = ЗаголовокНачисленийКолонк а3 + ?(ЗаголовокНачисленийКолон ка3 = "", СтрокаНачисление.ВидРасче� �а, ", " + СтрокаНачисление.ВидРасче� �а);
ИначеЕсли ТипЗНЧ(СтрокаНачисление.Ви дРасчета) = Тип("ПланВидовРасчетаСсылка.До� �олнительныеНачисленияОрг� �низаций")
ИЛИ СтрокаНачисление.ВидРасче� �а = "Мат. выгода"
ИЛИ (ТипЗНЧ(СтрокаНачисление.В� �дРасчета) = Тип("ПланВидовРасчетаСсылка.Ос� �овныеНачисленияОрганизац� �й")
И НЕ СтрокаНачисление.ЗачетОтр� �ботанногоВремени) тогда
СписокНачисленийКолонка4.В ставить(СтрокаНачисление.В идРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокНачисленийКолонк а4 = ЗаголовокНачисленийКолонк а4 + ?(ЗаголовокНачисленийКолон ка4 = "", СтрокаНачисление.ВидРасче� �а, ", " + СтрокаНачисление.ВидРасче� �а);
ИначеЕсли (ТипЗНЧ(СтрокаНачисление.В� �дРасчета) = Тип("ПланВидовРасчетаСсылка.Уд� �ржанияОрганизаций")
или СтрокаНачисление.ВидРасче� �а = "Погашение займа" или СтрокаНачисление.ВидРасче� �а = "МежРасчетнаяВыплата")
И СписокУдержанийКолонка1.Ко личество() = 0 тогда
СписокУдержанийКолонка1.Вс тавить(СтрокаНачисление.Ви дРасчета, СтрокаНачисление.ВидРасче� �а);
Если СтрокаНачисление.ВидРасче� �а = "МежРасчетнаяВыплата" тогда
ЗаголовокУдержанийКолонка 1 = ЗаголовокУдержанийКолонка 1 + ?(ЗаголовокУдержанийКолонк а1 = "", "Межрасчетная выплата", ", Межрасчетная выплата");
Иначе
ЗаголовокУдержанийКолонка 1 = ЗаголовокУдержанийКолонка 1 + ?(ЗаголовокУдержанийКолонк а1 = "", СтрокаНачисление.ВидРасче� �а, ", " + СтрокаНачисление.ВидРасче� �а);
КонецЕсли;
ИначеЕсли ТипЗНЧ(СтрокаНачисление.Ви дРасчета) = Тип("ПланВидовРасчетаСсылка.Уд� �ржанияОрганизаций")
или СтрокаНачисление.ВидРасче� �а = "Погашение займа" или СтрокаНачисление.ВидРасче� �а = "МежРасчетнаяВыплата" тогда
СписокУдержанийКолонка2.Вс тавить(СтрокаНачисление.Ви дРасчета, СтрокаНачисление.ВидРасче� �а);
Если СтрокаНачисление.ВидРасче� �а = "МежРасчетнаяВыплата" тогда
ЗаголовокУдержанийКолонка 2 = ЗаголовокУдержанийКолонка 2 + ?(ЗаголовокУдержанийКолонк а2 = "", "Межрасчетная выплата", ", Межрасчетная выплата");
Иначе
ЗаголовокУдержанийКолонка 2 = ЗаголовокУдержанийКолонка 2 + ?(ЗаголовокУдержанийКолонк а2 = "", СтрокаНачисление.ВидРасче� �а, ", " + СтрокаНачисление.ВидРасче� �а);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;

Если СписокУдержанийКолонка1.Ко личество() > 0 и СписокУдержанийКолонка2.Ко личество() > 0 тогда
МежрасчетнаяВыплата = СписокУдержанийКолонка2["МежРасчетнаяВыплата"];
Если МежрасчетнаяВыплата <> Неопределено тогда
Для каждого КлючИЗначение Из СписокУдержанийКолонка1 Цикл
УдержаниеКолонки1 = КлючИЗначение.Значение;
Прервать;
КонецЦикла;
СписокУдержанийКолонка2.Вс тавить(УдержаниеКолонки1, УдержаниеКолонки1);
СписокУдержанийКолонка1.Оч истить();
СписокУдержанийКолонка1.Вс тавить("МежРасчетнаяВыплата", "МежРасчетнаяВыплата");
ЗаголовокУдержанийКолонка 1 = "Межрасчетная выплата";
ЗаголовокУдержанийКолонка 2 = "";
Если СписокУдержанийКолонка2.Ко личество() = 1 тогда
Для каждого КлючИЗначение Из СписокУдержанийКолонка2 Цикл
ЗаголовокУдержанийКолонка 2 = Строка(КлючИЗначение.Значе ние);
Прервать;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;

Иначе

ОсмотренныеВР = Новый Соответствие;
Для каждого СтрокаОрганизации Из Выборка.Строки Цикл
Для каждого СтрокаСотрудника из СтрокаОрганизации.Строки Цикл
Для каждого СтрокаНачисление из СтрокаСотрудника.Строки Цикл
Если ОсмотренныеВР[СтрокаНачисление.ВидРасче� �а] <> Неопределено Тогда
Продолжить;
Иначе
ОсмотренныеВР.Вставить(Стр окаНачисление.ВидРасчета,С трокаНачисление.ВидРасчет� �)
КонецЕсли;
Если ПособияПоУходу.НайтиПоЗна� �ению(СтрокаНачисление.Вид� �особияСоциальногоСтрахов� �ния) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Если Больничные.НайтиПоЗначени� �(СтрокаНачисление.ВидРасч� �та) <> Неопределено Тогда
Продолжить;
КонецЕсли;
ТипВР = ТипЗнч(СтрокаНачисление.Ви дРасчета);
Если СтрокаНачисление.ЗачетОтр� �ботанногоВремени тогда

ОсновныеНачисления.Встави� �ь(СтрокаНачисление.ВидРас� �ета, СтрокаНачисление.ВидРасче� �а);

ИначеЕсли ТипВР = Тип("ПланВидовРасчетаСсылка.До� �олнительныеНачисленияОрг� �низаций") Или ТипВР = Тип("ПланВидовРасчетаСсылка.Ос� �овныеНачисленияОрганизац� �й") Или СтрокаНачисление.ВидРасче� �а = "Мат. выгода" Тогда

Если СписокНачисленийКолонка1.К оличество() = 0 Тогда
СписокНачисленийКолонка1.В ставить(СтрокаНачисление.В идРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокНачисленийКолонк а1 = ЗаголовокНачисленийКолонк а1 + ?(ЗаголовокНачисленийКолон ка1 = "", СтрокаНачисление.Описание� �идаРасчета, ", " + СтрокаНачисление.Описание� �идаРасчета);
ИначеЕсли СписокНачисленийКолонка2.К оличество() =0 Тогда
СписокНачисленийКолонка2.В ставить(СтрокаНачисление.В идРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокНачисленийКолонк а2 = ЗаголовокНачисленийКолонк а2 + ?(ЗаголовокНачисленийКолон ка2 = "", СтрокаНачисление.Описание� �идаРасчета, ", " + СтрокаНачисление.Описание� �идаРасчета);
ИначеЕсли СписокНачисленийКолонка3.К оличество() =0 Тогда
СписокНачисленийКолонка3.В ставить(СтрокаНачисление.В идРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокНачисленийКолонк а3 = ЗаголовокНачисленийКолонк а3 + ?(ЗаголовокНачисленийКолон ка3 = "", СтрокаНачисление.Описание� �идаРасчета, ", " + СтрокаНачисление.Описание� �идаРасчета);
Иначе
СписокНачисленийКолонка4.В ставить(СтрокаНачисление.В идРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокНачисленийКолонк а4 = ЗаголовокНачисленийКолонк а4 + ?(ЗаголовокНачисленийКолон ка4 = "", СтрокаНачисление.Описание� �идаРасчета, ", " + СтрокаНачисление.Описание� �идаРасчета);
КонецЕсли;

ИначеЕсли ТипВР = Тип("ПланВидовРасчетаСсылка.Уд� �ржанияОрганизаций") Или СтрокаНачисление.ВидРасче� �а = "Погашение займа" Тогда

СписокУдержанийКолонка1.Вс тавить(СтрокаНачисление.Ви дРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокУдержанийКолонка 1 = ЗаголовокУдержанийКолонка 1 + ?(ЗаголовокУдержанийКолонк а1 = "", СтрокаНачисление.Описание� �идаРасчета, ", " + СтрокаНачисление.Описание� �идаРасчета);

ИначеЕсли СтрокаНачисление.ВидРасче� �а = "МежРасчетнаяВыплата" Тогда

СписокУдержанийКолонка2.Вс тавить(СтрокаНачисление.Ви дРасчета, СтрокаНачисление.ВидРасче� �а);
ЗаголовокУдержанийКолонка 2 = ЗаголовокУдержанийКолонка 2 + ?(ЗаголовокУдержанийКолонк а2 = "", "Межрасчетная выплата", ", Межрасчетная выплата");

КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;

КонецЕсли;

НазваниеКолонок = Новый Структура("Колонка5, Колонка6, Колонка7, Колонка8, Колонка16, Колонка17");
НазваниеКолонок.Колонка5 = ?(СписокНачисленийКолонка1. Количество()>1, "Прочие", НРег(ЗаголовокНачисленийК� �лонка1));
НазваниеКолонок.Колонка6 = ?(СписокНачисленийКолонка2. Количество()>1, "Прочие", НРег(ЗаголовокНачисленийК� �лонка2));
НазваниеКолонок.Колонка7 = ?(СписокНачисленийКолонка3. Количество()>1, "Прочие", НРег(ЗаголовокНачисленийК� �лонка3));
НазваниеКолонок.Колонка8 = ?(СписокНачисленийКолонка4. Количество()>1, "Прочие", НРег(ЗаголовокНачисленийК� �лонка4));
НазваниеКолонок.Колонка16 = ?(СписокУдержанийКолонка1.К оличество()>1, "Прочие", НРег(ЗаголовокУдержанийКо� �онка1));
НазваниеКолонок.Колонка17 = ?(СписокУдержанийКолонка2.К оличество()>1, "Прочие", НРег(ЗаголовокУдержанийКо� �онка2));

// подготовим документ к выводу
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ИмяПараметров� �ечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Ведомость ВКассу_РПВ";
ТабДокумент.ОриентацияСтр� �ницы = ОриентацияСтраницы.Ландша� �т;
Макет = ПолучитьМакет(ИмяМакета);

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

ОбластьМакетаШапкаТаблицы .Параметры.Заполнить(Назва� �иеКолонок);

ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить( ОбластьМакетаСтрока);
ВыводимыеОбласти.Добавить( ОбластьПодвалСтр);

ВыводимыеОбластиСПодвалом = Новый Массив();
ВыводимыеОбластиСПодвалом .Добавить(ОбластьМакетаСтр ока);
ВыводимыеОбластиСПодвалом .Добавить(ОбластьПодвалСтр );
ВыводимыеОбластиСПодвалом .Добавить(ОбластьМакетаПод вал);

ВыводимыеОбластиДляПровер ки = Новый Массив();
ВыводимыеОбластиДляПровер ки.Добавить(ОбластьМакетаС трока);
ВыводимыеОбластиДляПровер ки.Добавить(ОбластьМакетаП одвал);

ОбластьМакетаПодвал.Парам� �тры.ИтогоКВыплате = 0;

ПервыйРаз = истина;

Валюта = Константы.ВалютаРегламент� �рованногоУчета.Получить();

Для каждого СтрокаОтчета из Выборка.Строки Цикл

Если НЕ ПервыйРаз тогда
ТабДокумент.ВывестиГоризо� �тальныйРазделительСтрани� �();
Иначе
ПервыйРаз = ложь;
КонецЕсли;

ОбластьМакетаШапкаДокумен та.Параметры.Заполнить(Стр� �каОтчета);

ПараметрыОрганизации = ОбщегоНазначенияЗК.Получи� �ьЗначенияРеквизитов(Строк аОтчета.Организация, "КодПоОКПО, НаименованиеПолное, ИНН, КПП");
ПараметрыОрганизации.Вста� �ить("Организация", ПараметрыОрганизации.Наим� �нованиеПолное);
ОбластьМакетаШапкаДокумен та.Параметры.Заполнить(Пар� �метрыОрганизации);

ОбластьМакетаШапкаДокумен та.Параметры.Период = СтрокаОтчета.ПериодРегист� �ации;
ОбластьМакетаШапкаДокумен та.Параметры.ИнтервалС = """_____"" _________________ 20____г.";
ОбластьМакетаШапкаДокумен та.Параметры.ИнтервалПо = """_____"" _________________ 20____г.";
ОбластьМакетаПодвал.Парам� �тры.ДатаВыплатыВедомости = """_____"" _________________ 20____г.";

Если ИспользуетсяПолеВедомость тогда

СрокОплаты = "";

Если СтрокаОтчета.ВедомостьДат� � <> Null тогда
Запрос = Новый Запрос;

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

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

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

Если ВыборкаДней.Следующий() И ЗначениеЗаполнено(Выборка� �ней.СрокОплаты) Тогда
СрокОплаты = МАКС(ВыборкаДней.СрокОплат ы, СтрокаОтчета.ВедомостьДат� � + 2 * 24*60*60);
Иначе
СрокОплаты = СтрокаОтчета.ВедомостьДат� � + 2 * 24*60*60;
КонецЕсли;

Иначе
СрокОплаты = ""
КонецЕсли;

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

Если ЗначениеЗаполнено(СтрокаО� �чета.ВедомостьДата) тогда
ОбластьМакетаШапкаДокумен та.Параметры.ИнтервалС = Формат(СтрокаОтчета.Ведомо стьДата, "ДФ='dd MMMM yyyy'");
ОбластьМакетаШапкаДокумен та.Параметры.ИнтервалПо = Формат(СрокОплаты, "ДФ='dd MMMM yyyy'");
Если СтрокаОтчета.ДокументПров� �ден тогда
ОбластьМакетаПодвал.Парам� �тры.ДатаВыплатыВедомости = Формат(СтрокаОтчета.ДатаВы платы, "ДФ='dd MMMM yyyy'")+" г."
КонецЕсли;
КонецЕсли;

ОбластьМакетаШапкаДокумен та.Параметры.СуммаДок = ОбщегоНазначенияЗК.Сформи� �оватьСуммуПрописью(?(Строк аОтчета.СуммаПоВедомостиИ� �ого <> NULL, СтрокаОтчета.СуммаПоВедом� �стиИтого, 0), Валюта);

Если ЗаполнятьКБК Тогда
ОбластьМакетаШапкаДокумен та.Параметры.КБК = СтрокаОтчета.КБК;
ОбластьМакетаШапкаДокумен та.Параметры.Дт = СокрЛП(Строка(СтрокаОтчета .КВД)) +"."+ СокрЛП(?(СтрокаОтчета.ДтСче т <> NULL, СтрокаОтчета.ДтСчет.Код, "")) +"."+ СокрЛП(?(СтрокаОтчета.ДтКОС ГУ <> NULL, СтрокаОтчета.ДтКОСГУ.Код, ""));
КонецЕсли;

Если СтрокаОтчета.ВедомостьДок� �ментОснованиеДата = '00010101' тогда
ОбластьМакетаПодвал.Парам� �тры.ДатаВедомости = """_____"" _________________ 20____г."
Иначе
ОбластьМакетаПодвал.Парам� �тры.ДатаВедомости = Формат(СтрокаОтчета.Ведомо стьДокументОснованиеДата, "ДФ='dd MMMM yyyy'")+" г.";
ОбластьМакетаШапкаДокумен та.Параметры.ДатаДок = Формат(СтрокаОтчета.Ведомо стьДокументОснованиеДата, "ДФ='dd MMMM yyyy'");
КонецЕсли;

ОбластьМакетаПодвал.Парам� �тры.СуммаПоВедомости = ?(ЗначениеЗаполнено(Строка� �тчета.СуммаПоВедомостиИто го), СтрокаОтчета.СуммаПоВедом� �стиИтого, 0) - ?(ЗначениеЗаполнено(Строка� �тчета.Задепонировано), СтрокаОтчета.Задепонирова� �о, 0) - ?(ЗначениеЗаполнено(Строка� �тчета.НеВыдано), СтрокаОтчета.НеВыдано, 0);
ОбластьМакетаПодвал.Парам� �тры.НеВыдано = ?(ЗначениеЗаполнено(Строка� �тчета.НеВыдано), СтрокаОтчета.НеВыдано, 0);
ОбластьМакетаПодвал.Парам� �тры.ИтогоКВыплате = ?(ЗначениеЗаполнено(Строка� �тчета.СуммаПоВедомости), СтрокаОтчета.СуммаПоВедом� �сти, 0) ;
КонецЕсли;

// Подвал документа.
ОбластьМакетаПодвал.Парам� �тры.Заполнить(СтрокаОтчет� �);
ВедомостьИтого = 0;

ТабДокумент.Вывести(Област ьМакетаШапкаДокумента);

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

НомерПП = 1;
ВсегоСтрокДокумента = СтрокаОтчета.Строки.Количе ство();
ИтогоПоСтранице = 0;

Для каждого СтрокаФизЛица из СтрокаОтчета.Строки Цикл

ОбластьМакетаСтрока.Парам� �тры.Заполнить(СтрокаФизЛи� �а);
ОбластьМакетаСтрока.Парам� �тры.НомерПП = НомерПП;
Основные = 0;
Больничный = 0;
ДниБолезни = 0;
Пособия = 0;
Колонка5 = 0;
Колонка6 = 0;
Колонка7 = 0;
Колонка8 = 0;
ВсегоНачислено = 0;
ЗаработнаяПлата = 0;
Колонка16 = 0;
Колонка17 = 0;
НДФЛ = 0;
СтраховойВзнос = 0;
ВсегоУдержано = 0;

Для каждого СтрокаНачисление из СтрокаФизЛица.Строки Цикл
Если ОсновныеНачисления[СтрокаНачисление.ВидРасче� �а] <> Неопределено тогда
Основные = Основные + СтрокаНачисление.Результа� �;
ИначеЕсли ПособияПоУходу.НайтиПоЗна� �ению(СтрокаНачисление.Вид� �особияСоциальногоСтрахов� �ния) <> Неопределено Тогда
Пособия = Пособия + СтрокаНачисление.Результа� �;
ИначеЕсли Больничные.НайтиПоЗначени� �(СтрокаНачисление.ВидРасч� �та) <> Неопределено Тогда
Больничный = Больничный + СтрокаНачисление.Результа� �;
ДниБолезни = ДниБолезни + СтрокаНачисление.ДниБолез� �и;
ИначеЕсли СписокНачисленийКолонка1[СтрокаНачисление.ВидРасче� �а] <> Неопределено тогда
Колонка5 = Колонка5 + СтрокаНачисление.Результа� �;
ИначеЕсли СписокНачисленийКолонка2[СтрокаНачисление.ВидРасче� �а] <> Неопределено тогда
Колонка6 = Колонка6 + СтрокаНачисление.Результа� �;
ИначеЕсли СписокНачисленийКолонка3[СтрокаНачисление.ВидРасче� �а] <> Неопределено тогда
Колонка7 = Колонка7 + СтрокаНачисление.Результа� �;
ИначеЕсли СписокНачисленийКолонка4[СтрокаНачисление.ВидРасче� �а] <> Неопределено тогда
Колонка8 = Колонка8 + СтрокаНачисление.Результа� �;
ИначеЕсли СписокУдержанийКолонка1[СтрокаНачисление.ВидРасче� �а] <> Неопределено тогда
Колонка16 = Колонка16 + СтрокаНачисление.Результа� �;
ИначеЕсли СписокУдержанийКолонка2[СтрокаНачисление.ВидРасче� �а] <> Неопределено тогда
Колонка17 = Колонка17 + СтрокаНачисление.Результа� �;
ИначеЕсли СтрокаНачисление.ВидРасче� �а = "НДФЛ" тогда
НДФЛ = НДФЛ + СтрокаНачисление.Результа� �;
ИначеЕсли СтрокаНачисление.ВидРасче� �а = "СтраховойВзнос" тогда
СтраховойВзнос = СтраховойВзнос + СтрокаНачисление.Результа� �;
ИначеЕсли СтрокаНачисление.ВидРасче� �а = "ЗаработнаяПлата" тогда
ЗаработнаяПлата = ЗаработнаяПлата + СтрокаНачисление.Результа� �;
КонецЕсли;
ВсегоНачислено = Основные + Колонка5 + Колонка6 + Колонка7 + Колонка8 + Больничный + Пособия;
ВсегоУдержано = ЗаработнаяПлата + Колонка16 + Колонка17 + НДФЛ + СтраховойВзнос;
КонецЦикла;

ОбластьМакетаСтрока.Парам� �тры.Основные = Основные;
ОбластьМакетаСтрока.Парам� �тры.Больничный = Больничный;
Если ЗаполнятьКБК Тогда
ОбластьМакетаСтрока.Парам� �тры.ДниБолезни = ДниБолезни;
КонецЕсли;
ОбластьМакетаСтрока.Парам� �тры.Пособия = Пособия;
ОбластьМакетаСтрока.Парам� �тры.Колонка5 = Колонка5;
ОбластьМакетаСтрока.Парам� �тры.Колонка6 = Колонка6;
ОбластьМакетаСтрока.Парам� �тры.Колонка7 = Колонка7;
ОбластьМакетаСтрока.Парам� �тры.Колонка8 = Колонка8;
ОбластьМакетаСтрока.Парам� �тры.ВсегоНачислено = ВсегоНачислено;
ОбластьМакетаСтрока.Парам� �тры.Аванс = ЗаработнаяПлата;
ОбластьМакетаСтрока.Парам� �тры.НДФЛ = НДФЛ;
ОбластьМакетаСтрока.Парам� �тры.СтраховойВзнос = СтраховойВзнос;
ОбластьМакетаСтрока.Парам� �тры.Колонка16 = Колонка16;
ОбластьМакетаСтрока.Парам� �тры.Колонка17 = Колонка17;
ОбластьМакетаСтрока.Парам� �тры.ВсегоУдержано = ВсегоУдержано;

ОбластьМакетаСтрока.Парам� �тры.СуммаПоВедомости = ?(ЗначениеЗаполнено(Строка� �изЛица.СуммаПоВедомости), СтрокаФизЛица.СуммаПоВедо� �ости, 0);
Если НЕ ИспользуетсяПолеВедомость тогда
ОбластьМакетаСтрока.Парам� �тры.ЗаписьОДепонировании = "";
КонецЕсли;

ВедомостьИтого = ВедомостьИтого + ?(ЗначениеЗаполнено(Строка� �изЛица.СуммаПоВедомости), СтрокаФизЛица.СуммаПоВедо� �ости, 0);

ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.� �роверитьВыводТабличногоД� �кумента(ТабДокумент, ВыводимыеОбласти);
Если Не ВывестиПодвалЛиста и НомерПП = ВсегоСтрокДокумента Тогда
//все строки отчета перебрали, они все еще умещаются на странице
ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.� �роверитьВыводТабличногоД� �кумента(ТабДокумент, ВыводимыеОбластиСПодвалом );
КонецЕсли;

Если ВывестиПодвалЛиста тогда
ОбластьПодвалСтр.Параметр� �.ИтогоКВыплате = ИтогоПоСтранице;
ТабДокумент.Вывести(Област ьПодвалСтр);
ТабДокумент.ВывестиГоризо� �тальныйРазделительСтрани� �();
ТабДокумент.Вывести(Област ьМакетаШапкаТаблицы);
ИтогоПоСтранице = 0;
КонецЕсли;

ИтогоПоСтранице = ИтогоПоСтранице + ?(ЗначениеЗаполнено(Строка� �изЛица.СуммаПоВедомости), СтрокаФизЛица.СуммаПоВедо� �ости, 0);

ТабДокумент.Вывести(Област ьМакетаСтрока);
НомерПП = НомерПП + 1;

КонецЦикла;

Если ИспользуетсяПолеВедомость тогда
ОбластьМакетаПодвал.Парам� �тры.ИтогоКВыплате = ОбластьМакетаПодвал.Парам� �тры.ИтогоКВыплате;
ОбластьМакетаПодвал.Парам� �тры.СуммаПоВедомости = ?(СтрокаОтчета.Ведомость <> Null И СтрокаОтчета.Ведомость.Про веден, ОбластьМакетаПодвал.Парам� �тры.СуммаПоВедомости, 0);
Иначе
ОбластьМакетаПодвал.Парам� �тры.ИтогоКВыплате = ВедомостьИтого;
ОбластьМакетаПодвал.Парам� �тры.СуммаПоВедомости = 0;
ОбластьМакетаПодвал.Парам� �тры.НеВыдано = 0;
ОбластьМакетаПодвал.Парам� �тры.Задепонировано = 0;
КонецЕсли;

Для Сч = 1 По ОбластьМакетаСтрока.Парам� �тры.Количество() Цикл
ОбластьМакетаСтрока.Парам� �тры.Установить(Сч - 1,"");
КонецЦикла;
ОбластьМакетаСтрока.Парам� �тры.Физлицо = " " + Символы.ПС + " ";
Пока ФормированиеПечатныхФорм.� �роверитьВыводТабличногоД� �кумента(ТабДокумент, ВыводимыеОбластиДляПровер ки, Ложь) Цикл
ТабДокумент.Вывести(Област ьМакетаСтрока);
КонецЦикла;

ТабДокумент.Вывести(Област ьМакетаПодвал);

КонецЦикла;

КонецФункции // ПечатьРПВ()