Показано с 1 по 3 из 3
Тема: Итоговые колонки
Древовидный режим
-
15.02.2017, 20:35 #3
- Регистрация
- 11.02.2017
- Сообщений
- 10
- Сказал(а) спасибо
- 3
- Поблагодарили 0 раз(а) в 0 сообщениях
Re: Итоговые колонки
ПечатьРПВ(ТабДокумент, Выборка, ИспользуетсяПолеВедомость , ИмяМакета)
ЗаполнятьКБК = ИмяМакета = "форма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,"");
КонецЦикла;
ОбластьМакетаСтрока.Парам� �тры.Физлицо = " " + Символы.ПС + " ";
Пока ФормированиеПечатныхФорм.� �роверитьВыводТабличногоД� �кумента(ТабДокумент, ВыводимыеОбластиДляПровер ки, Ложь) Цикл
ТабДокумент.Вывести(Област ьМакетаСтрока);
КонецЦикла;
ТабДокумент.Вывести(Област ьМакетаПодвал);
КонецЦикла;
КонецФункции // ПечатьРПВ()
Похожие темы
-
Как починить аудио колонки
от vodos в разделе Периферийные устройстваОтветов: 3Последнее сообщение: 15.05.2010, 08:39
Социальные закладки