Печать РПВ в колонках итого везде одна сумма.
Помогите решить проблему пожалуйста, как сделать так, что бы каждая колонка считалась отдельно.
Код выкладываю.
Заранее спасибо,,,,
Помогите решить проблему пожалуйста, как сделать так, что бы каждая колонка считалась отдельно.
Код выкладываю.
Заранее спасибо,,,,
ПечатьРПВ(ТабДокумент, Выборка, ИспользуетсяПолеВедомость, ИмяМакета)
ЗаполнятьКБК = ИмяМакета = "форма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,"");
КонецЦикла;
ОбластьМакетаСтрока.Параметры.Физлицо = " " + Символы.ПС + " ";
Пока ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбластиДляПроверки, Ложь) Цикл
ТабДокумент.Вывести(ОбластьМакетаСтрока);
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакетаПодвал);
КонецЦикла;
КонецФункции // ПечатьРПВ()
ПоказатьПрикрепленные файлы:
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2), "кодосвалка", как Вы это назвали, разгребается легко и просто,
см. дубль темы в этом же разделе:http://forum.infostart.ru/forum9/topic167017/ .
см. дубль темы в этом же разделе:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот