Описание задачи: Зарплата и Управление Персоналом, редакция 2.5 (2.5.20.3) У некого гражданина по мнению расчетчика не корректно заполняются страховые взносы. Для того, чтобы ответить на беду - самое простое - скопировать запрос с параметрами в консоль отчетов и далее задать вве параметры и разобрать запрос. Сложность в том, что запрос "собирается из временных таблиц", поэтому в тестовом запросе необходимо сформировать эти временные таблицы. Документ.РасчетСтраховыхВзносов.ПолучитьДанныеРасчета() Параметры: парамКонецМесяцаПериодаРегистрации = 30.06.2010 23.59.59 парамГоловнаяОрганизация = ООО "СТАРМИКС" парамОбособленноеПодразделение = ООО "СТАРМИКС" парамНачалоГода = 01.01.2010 00.00.00
парамКонецГода = 31.12.2010 23.59.59 парамГодРасчета = 2010 парамМесяцРасчета = 6 парамПредыдущийМесяц = 5 парамПериодРегистрации = 01.06.2010 00.00.00 Регистратор = Начисление страховых взносов СТ-00000006 от 30.06.2010 16:04:27 ПредельнаяСумма = 415000 СтавкаВзносаФСС_НС_ПЗ = 0,002 Текст запроса для консоли отчетов (пакет запросов) ВЫБРАТЬ СтраховыеВзносыСведенияОДоходах.Период, СтраховыеВзносыСведенияОДоходах.ФизЛицо, СтраховыеВзносыСведенияОДоходах.ВидДохода, СтраховыеВзносыСведенияОДоходах.ОблагаетсяЕНВД, СтраховыеВзносыСведенияОДоходах.ОблагаетсяПоДополнительномуТарифу, СтраховыеВзносыСведенияОДоходах.Результат, СтраховыеВзносыСведенияОДоходах.Скидка ПОМЕСТИТЬ ДанныеОДоходах ИЗ РегистрНакопления.СтраховыеВзносыСведенияОДоходах КАК СтраховыеВзносыСведенияОДоходах ГДЕ СтраховыеВзносыСведенияОДоходах.Регистратор = &Регистратор ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СведенияОДоходах.ФизЛицо, МЕСЯЦ(СведенияОДоходах.Период) КАК Месяц, СведенияОДоходах.ОблагаетсяЕНВД, СведенияОДоходах.ОблагаетсяПоДополнительномуТарифу, СведенияОДоходах.ВидДохода, СведенияОДоходах.Результат - СведенияОДоходах.Скидка КАК ОблагаемыйДоход ПОМЕСТИТЬ ВТДанныеДокумента ИЗ ДанныеОДоходах КАК СведенияОДоходах ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ СведенияОДоходах.ФизЛицо КАК ФизЛицо ПОМЕСТИТЬ ВТСписокСотрудников ИЗ РегистрНакопления.СтраховыеВзносыСведенияОДоходах КАК СведенияОДоходах ГДЕ НАЧАЛОПЕРИОДА(СведенияОДоходах.Период, МЕСЯЦ) = &парамПериодРегистрации И СведенияОДоходах.ОбособленноеПодразделение = &парамОбособленноеПодразделение
ОБЪЕДИНИТЬ
ВЫБРАТЬ РАЗЛИЧНЫЕ СведенияОДоходах.ФизЛицо ИЗ ВТДанныеДокумента КАК СведенияОДоходах
ИНДЕКСИРОВАТЬ ПО ФизЛицо ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДАТАВРЕМЯ(2010,1,31,23,59,59) КАК Период ПОМЕСТИТЬ ВТПериоды ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2010,2,28,23,59,59) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2010,3,31,23,59,59) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2010,4,30,23,59,59) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2010,5,31,23,59,59) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2010,6,30,23,59,59) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МЕСЯЦ(Периоды.Период) КАК Месяц, ЕСТЬNULL(УчетнаяПолитикаНалоговыйУчет.ВидТарифаСтраховыхВзносов, ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОбщийНалоговыйРежим)) КАК ВидТарифаСтраховыхВзносов ПОМЕСТИТЬ ВТИспользуемыеТарифы ИЗ (ВЫБРАТЬ Периоды.Период КАК Период, МАКСИМУМ(УчетнаяПолитикаНалоговыйУчет.Период) КАК ПериодРегистра ИЗ ВТПериоды КАК Периоды ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаНалоговыйУчет КАК УчетнаяПолитикаНалоговыйУчет ПО Периоды.Период >= УчетнаяПолитикаНалоговыйУчет.Период И (УчетнаяПолитикаНалоговыйУчет.Организация = &парамГоловнаяОрганизация) СГРУППИРОВАТЬ ПО Периоды.Период) КАК Периоды ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаНалоговыйУчет КАК УчетнаяПолитикаНалоговыйУчет ПО Периоды.ПериодРегистра = УчетнаяПолитикаНалоговыйУчет.Период И (УчетнаяПолитикаНалоговыйУчет.Организация = &парамГоловнаяОрганизация)
ИНДЕКСИРОВАТЬ ПО Месяц ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТарифСтраховыхВзносовСрезПоследних.ВидТарифа КАК ВидТарифа, ТарифСтраховыхВзносовСрезПоследних.ПФР, ТарифСтраховыхВзносовСрезПоследних.ПФРНакопительная, ТарифСтраховыхВзносовСрезПоследних.ФСС, ТарифСтраховыхВзносовСрезПоследних.ФФОМС, ТарифСтраховыхВзносовСрезПоследних.ТФОМС ПОМЕСТИТЬ ВТТарифы ИЗ РегистрСведений.ТарифСтраховыхВзносов.СрезПоследних(&парамКонецГода, ) КАК ТарифСтраховыхВзносовСрезПоследних
ИНДЕКСИРОВАТЬ ПО ВидТарифа ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МЕСЯЦ(Периоды.Период) КАК Месяц, ГражданствоФизЛиц.ФизЛицо КАК Физлицо, ЕСТЬNULL(ГражданствоФизЛиц.НеИмеетПравоНаПенсию, ЛОЖЬ) КАК НеИмеетПравоНаПенсию, ЕСТЬNULL(ГражданствоФизЛиц.НеИмеетПравоНаМедицинскоеСтрахование, ЛОЖЬ) КАК НеИмеетПравоНаМедицинскоеСтрахование ПОМЕСТИТЬ ВТДанныеОПравеНаПенсию ИЗ (ВЫБРАТЬ Периоды.Период КАК Период, ГражданствоФизЛиц.ФизЛицо КАК Физлицо, МАКСИМУМ(ГражданствоФизЛиц.Период) КАК ПериодРегистра ИЗ ВТПериоды КАК Периоды ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц КАК ГражданствоФизЛиц ПО Периоды.Период >= ГражданствоФизЛиц.Период ГДЕ ГражданствоФизЛиц.ФизЛицо В (ВЫБРАТЬ СписокСотрудников.ФизЛицо ИЗ ВТСписокСотрудников КАК СписокСотрудников) СГРУППИРОВАТЬ ПО ГражданствоФизЛиц.ФизЛицо, Периоды.Период) КАК Периоды ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц КАК ГражданствоФизЛиц ПО Периоды.ПериодРегистра = ГражданствоФизЛиц.Период И Периоды.Физлицо = ГражданствоФизЛиц.ФизЛицо И (ГражданствоФизЛиц.НеИмеетПравоНаПенсию ИЛИ ГражданствоФизЛиц.НеИмеетПравоНаМедицинскоеСтрахование)
ИНДЕКСИРОВАТЬ ПО Физлицо, Месяц ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СведенияОбИнвалидностиФизлиц.Физлицо КАК Физлицо, СведенияОбИнвалидностиФизлиц.Период КАК Период, СведенияОбИнвалидностиФизлиц.Инвалидность ПОМЕСТИТЬ ВТ_СведенияОбИнвалидности ИЗ РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц ГДЕ СведенияОбИнвалидностиФизлиц.Физлицо В (ВЫБРАТЬ СписокСотрудников.ФизЛицо ИЗ ВТСписокСотрудников КАК СписокСотрудников)
ИНДЕКСИРОВАТЬ ПО Физлицо, Период ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МЕСЯЦ(Периоды.Период) КАК Месяц, СведенияОбИнвалидностиФизлиц.Физлицо КАК Физлицо ПОМЕСТИТЬ ВТДанныеОбИнвалидности ИЗ (ВЫБРАТЬ Периоды.Период КАК Период, СведенияОбИнвалидностиФизлиц.Физлицо КАК Физлицо, МАКСИМУМ(СведенияОбИнвалидностиФизлиц.Период) КАК ПериодРегистра ИЗ ВТПериоды КАК Периоды ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СведенияОбИнвалидности КАК СведенияОбИнвалидностиФизлиц ПО Периоды.Период >= СведенияОбИнвалидностиФизлиц.Период СГРУППИРОВАТЬ ПО СведенияОбИнвалидностиФизлиц.Физлицо, Периоды.Период) КАК Периоды ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СведенияОбИнвалидности КАК СведенияОбИнвалидностиФизлиц ПО (СведенияОбИнвалидностиФизлиц.Период = Периоды.ПериодРегистра) И Периоды.Физлицо = СведенияОбИнвалидностиФизлиц.Физлицо И (СведенияОбИнвалидностиФизлиц.Инвалидность)
ИНДЕКСИРОВАТЬ ПО Физлицо, Месяц ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СведенияОДоходах.ФизЛицо КАК ФизЛицо, МЕСЯЦ(СведенияОДоходах.Период) КАК Месяц, СведенияОДоходах.ОблагаетсяЕНВД, СведенияОДоходах.ОблагаетсяПоДополнительномуТарифу, СведенияОДоходах.ВидДохода.ВходитВБазуПФР КАК ВходитВБазуПФР, СведенияОДоходах.ВидДохода.ВходитВБазуФСС КАК ВходитВБазуФСС, СведенияОДоходах.ВидДохода.ВходитВБазуФОМС КАК ВходитВБазуФОМС, СведенияОДоходах.РезультатОборот - СведенияОДоходах.СкидкаОборот КАК ОблагаемыйДоход ПОМЕСТИТЬ ВТДоходыПоФизлицамМесяцам ИЗ РегистрНакопления.СтраховыеВзносыСведенияОДоходах.Обороты( &парамНачалоГода, &парамКонецМесяцаПериодаРегистрации, Месяц, Организация = &парамГоловнаяОрганизация И Физлицо В (ВЫБРАТЬ СписокСотрудников.ФизЛицо ИЗ ВТСписокСотрудников КАК СписокСотрудников)) КАК СведенияОДоходах
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ СтраховыеВзносыСведенияОДоходах.ФизЛицо, МЕСЯЦ(СтраховыеВзносыСведенияОДоходах.Период), СтраховыеВзносыСведенияОДоходах.ОблагаетсяЕНВД, СтраховыеВзносыСведенияОДоходах.ОблагаетсяПоДополнительномуТарифу, СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуПФР, СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуФСС, СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуФОМС, -СтраховыеВзносыСведенияОДоходах.Результат + СтраховыеВзносыСведенияОДоходах.Скидка ИЗ РегистрНакопления.СтраховыеВзносыСведенияОДоходах КАК СтраховыеВзносыСведенияОДоходах ГДЕ СтраховыеВзносыСведенияОДоходах.Регистратор = &Регистратор И СтраховыеВзносыСведенияОДоходах.Организация = &парамГоловнаяОрганизация И СтраховыеВзносыСведенияОДоходах.ФизЛицо В (ВЫБРАТЬ СписокСотрудников.ФизЛицо ИЗ ВТСписокСотрудников КАК СписокСотрудников)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ СтраховыеВзносыСведенияОДоходах.ФизЛицо, СтраховыеВзносыСведенияОДоходах.Месяц, СтраховыеВзносыСведенияОДоходах.ОблагаетсяЕНВД, СтраховыеВзносыСведенияОДоходах.ОблагаетсяПоДополнительномуТарифу, СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуПФР, СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуФСС, СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуФОМС, СтраховыеВзносыСведенияОДоходах.ОблагаемыйДоход ИЗ ВТДанныеДокумента КАК СтраховыеВзносыСведенияОДоходах
ИНДЕКСИРОВАТЬ ПО ФизЛицо, Месяц ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РанееИсчисленныеВзносы.ФизЛицо КАК ФизЛицо, МЕСЯЦ(РанееИсчисленныеВзносы.Период) КАК Месяц, РанееИсчисленныеВзносы.ФССОборот, РанееИсчисленныеВзносы.ФФОМСОборот, РанееИсчисленныеВзносы.ТФОМСОборот, РанееИсчисленныеВзносы.ПФРНакопительнаяОборот, РанееИсчисленныеВзносы.ПФРСтраховаяОборот, РанееИсчисленныеВзносы.ПФРНакопительнаяЕНВДОборот, РанееИсчисленныеВзносы.ПФРСтраховаяЕНВДОборот, РанееИсчисленныеВзносы.ПФРПоДополнительномуТарифуОборот ПОМЕСТИТЬ ВТРанееИсчисленныеВзносыПоМесяцам ИЗ РегистрНакопления.СтраховыеВзносыИсчисленные.Обороты( &парамНачалоГода, &парамКонецМесяцаПериодаРегистрации, Месяц, Организация = &парамГоловнаяОрганизация И ФизЛицо В (ВЫБРАТЬ СписокСотрудников.ФизЛицо ИЗ ВТСписокСотрудников КАК СписокСотрудников)) КАК РанееИсчисленныеВзносы
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ СтраховыеВзносыИсчисленные.ФизЛицо, МЕСЯЦ(СтраховыеВзносыИсчисленные.Период), -СтраховыеВзносыИсчисленные.ФСС, -СтраховыеВзносыИсчисленные.ФФОМС, -СтраховыеВзносыИсчисленные.ТФОМС, -СтраховыеВзносыИсчисленные.ПФРНакопительная, -СтраховыеВзносыИсчисленные.ПФРСтраховая, -СтраховыеВзносыИсчисленные.ПФРНакопительнаяЕНВД, -СтраховыеВзносыИсчисленные.ПФРСтраховаяЕНВД, -СтраховыеВзносыИсчисленные.ПФРПоДополнительномуТарифу ИЗ РегистрНакопления.СтраховыеВзносыИсчисленные КАК СтраховыеВзносыИсчисленные ГДЕ СтраховыеВзносыИсчисленные.Регистратор = &Регистратор И СтраховыеВзносыИсчисленные.Организация = &парамГоловнаяОрганизация И СтраховыеВзносыИсчисленные.ФизЛицо В (ВЫБРАТЬ СписокСотрудников.ФизЛицо ИЗ ВТСписокСотрудников КАК СписокСотрудников)
ИНДЕКСИРОВАТЬ ПО Месяц, ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РанееИсчисленныеВзносы.ФизЛицо КАК ФизЛицо, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ NULL ТОГДА РанееИсчисленныеВзносы.ФССОборот ИНАЧЕ 0 КОНЕЦ) КАК ФССОборот, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ NULL ТОГДА РанееИсчисленныеВзносы.ФФОМСОборот ИНАЧЕ 0 КОНЕЦ) КАК ФФОМСОборот, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ NULL ТОГДА РанееИсчисленныеВзносы.ТФОМСОборот ИНАЧЕ 0 КОНЕЦ) КАК ТФОМСОборот, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА РанееИсчисленныеВзносы.ФССОборот ИНАЧЕ 0 КОНЕЦ) КАК ФССОборотИнвалида, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА РанееИсчисленныеВзносы.ФФОМСОборот ИНАЧЕ 0 КОНЕЦ) КАК ФФОМСОборотИнвалида, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА РанееИсчисленныеВзносы.ТФОМСОборот ИНАЧЕ 0 КОНЕЦ) КАК ТФОМСОборотИнвалида, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА РанееИсчисленныеВзносы.ПФРНакопительнаяОборот + РанееИсчисленныеВзносы.ПФРНакопительнаяЕНВДОборот ИНАЧЕ 0 КОНЕЦ) КАК ПФРНакопительнаяОборотИнвалида, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА РанееИсчисленныеВзносы.ПФРСтраховаяОборот + РанееИсчисленныеВзносы.ПФРСтраховаяЕНВДОборот ИНАЧЕ 0 КОНЕЦ) КАК ПФРСтраховаяОборотИнвалида, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ NULL ТОГДА РанееИсчисленныеВзносы.ПФРНакопительнаяОборот ИНАЧЕ 0 КОНЕЦ) КАК ПФРНакопительнаяОборот, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ NULL ТОГДА РанееИсчисленныеВзносы.ПФРСтраховаяОборот ИНАЧЕ 0 КОНЕЦ) КАК ПФРСтраховаяОборот, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ NULL ТОГДА РанееИсчисленныеВзносы.ПФРНакопительнаяЕНВДОборот ИНАЧЕ 0 КОНЕЦ) КАК ПФРНакопительнаяЕНВДОборот, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ NULL ТОГДА РанееИсчисленныеВзносы.ПФРСтраховаяЕНВДОборот ИНАЧЕ 0 КОНЕЦ) КАК ПФРСтраховаяЕНВДОборот, СУММА(РанееИсчисленныеВзносы.ПФРПоДополнительномуТарифуОборот) КАК ПФРПоДополнительномуТарифуОборот ПОМЕСТИТЬ ВТРанееИсчисленныеВзносы ИЗ ВТРанееИсчисленныеВзносыПоМесяцам КАК РанееИсчисленныеВзносы ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОбИнвалидности КАК Инвалид ПО РанееИсчисленныеВзносы.ФизЛицо = Инвалид.Физлицо И РанееИсчисленныеВзносы.Месяц = Инвалид.Месяц
СГРУППИРОВАТЬ ПО РанееИсчисленныеВзносы.ФизЛицо
ИНДЕКСИРОВАТЬ ПО ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Основная.ФизЛицо КАК ФизЛицо, Основная.Месяц КАК Месяц, СУММА(ВЫБОР КОГДА (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуПФР ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаПФР, СУММА(ВЫБОР КОГДА (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуФСС ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаФСС, СУММА(ВЫБОР КОГДА (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаМедицинскоеСтрахование)) И Основная.ВходитВБазуФОМС ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаФОМС, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL И (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуПФР ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаПФРИнвалида, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL И (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуПФР И Основная.ОблагаетсяЕНВД ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаПФРИнвалидаЕНВД, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА 0 КОГДА Основная.ОблагаетсяЕНВД ТОГДА 0 КОГДА (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуПФР ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаПФРПоОсновномуТарифу, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА 0 КОГДА Основная.ОблагаетсяЕНВД И (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуПФР ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаПФРЕНВД, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL И (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуФСС ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаФССИнвалида, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА 0 КОГДА Основная.ОблагаетсяЕНВД ТОГДА 0 КОГДА (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуФСС ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаФССПоОсновномуТарифу, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА 0 КОГДА Основная.ОблагаетсяЕНВД И (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуФСС ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаФССЕНВД, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL И (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуФОМС ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаФОМСИнвалида, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА 0 КОГДА Основная.ОблагаетсяЕНВД ТОГДА 0 КОГДА (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаМедицинскоеСтрахование)) И Основная.ВходитВБазуФОМС ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаФОМСПоОсновномуТарифу, СУММА(ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА 0 КОГДА Основная.ОблагаетсяЕНВД И (Иностр.Физлицо ЕСТЬ NULL ИЛИ (НЕ Иностр.НеИмеетПравоНаПенсию)) И Основная.ВходитВБазуФОМС ТОГДА Основная.ОблагаемыйДоход ИНАЧЕ 0 КОНЕЦ) КАК БазаФОМСЕНВД ПОМЕСТИТЬ ВТДоходыЗастрахованныхЛиц ИЗ ВТДоходыПоФизлицамМесяцам КАК Основная ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОПравеНаПенсию КАК Иностр ПО Основная.ФизЛицо = Иностр.Физлицо И Основная.Месяц = Иностр.Месяц ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОбИнвалидности КАК Инвалид ПО Основная.ФизЛицо = Инвалид.Физлицо И Основная.Месяц = Инвалид.Месяц
СГРУППИРОВАТЬ ПО Основная.ФизЛицо, Основная.Месяц
ИНДЕКСИРОВАТЬ ПО Месяц, ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МЕСЯЦ(Периоды.Период) КАК Месяц, ДоходыЗастрахованныхЛиц.ФизЛицо КАК ФизЛицо, СУММА(ДоходыЗастрахованныхЛиц.БазаПФР) КАК БазаПФР, СУММА(ДоходыЗастрахованныхЛиц.БазаФСС) КАК БазаФСС, СУММА(ДоходыЗастрахованныхЛиц.БазаФОМС) КАК БазаФОМС ПОМЕСТИТЬ ВТНакопленнаяОблагаемаяБаза ИЗ ВТПериоды КАК Периоды ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыЗастрахованныхЛиц КАК ДоходыЗастрахованныхЛиц ПО (ДоходыЗастрахованныхЛиц.Месяц МЕЖДУ 1 И МЕСЯЦ(Периоды.Период))
СГРУППИРОВАТЬ ПО ДоходыЗастрахованныхЛиц.ФизЛицо, МЕСЯЦ(Периоды.Период)
ИНДЕКСИРОВАТЬ ПО Месяц, ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДоходыЗастрахованныхЛиц.ФизЛицо КАК ФизЛицо, СУММА(ДоходыЗастрахованныхЛиц.БазаПФРИнвалида) КАК БазаПФРИнвалидаВсего, СУММА(ДоходыЗастрахованныхЛиц.БазаПФРИнвалидаЕНВД) КАК БазаПФРИнвалидаЕНВД ПОМЕСТИТЬ ВТБазаПФРПоИнвалидам ИЗ ВТДоходыЗастрахованныхЛиц КАК ДоходыЗастрахованныхЛиц ГДЕ ДоходыЗастрахованныхЛиц.Месяц = &парамМесяцРасчета
СГРУППИРОВАТЬ ПО ДоходыЗастрахованныхЛиц.ФизЛицо
ИНДЕКСИРОВАТЬ ПО ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ База.Месяц КАК Месяц, База.ФизЛицо КАК ФизЛицо, ВЫБОР КОГДА База.БазаПФР <= &ПредельнаяСумма ТОГДА 1 КОГДА База.БазаПФР = ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаПФР, 0) ТОГДА 1 КОГДА ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаПФР, 0) >= &ПредельнаяСумма ТОГДА 0 ИНАЧЕ (&ПредельнаяСумма - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаПФР, 0)) / (База.БазаПФР - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаПФР, 0)) КОНЕЦ КАК КоэффициентОбложенияПФР, ВЫБОР КОГДА База.БазаФСС <= &ПредельнаяСумма ТОГДА 1 КОГДА База.БазаФСС = ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФСС, 0) ТОГДА 1 КОГДА ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФСС, 0) >= &ПредельнаяСумма ТОГДА 0 ИНАЧЕ (&ПредельнаяСумма - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФСС, 0)) / (База.БазаФСС - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФСС, 0)) КОНЕЦ КАК КоэффициентОбложенияФСС, ВЫБОР КОГДА База.БазаФОМС <= &ПредельнаяСумма ТОГДА 1 КОГДА База.БазаФОМС = ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФОМС, 0) ТОГДА 1 КОГДА ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФОМС, 0) >= &ПредельнаяСумма ТОГДА 0 ИНАЧЕ (&ПредельнаяСумма - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФОМС, 0)) / (База.БазаФОМС - ЕСТЬNULL(НакопленоПоПрошлыйМесяц.БазаФОМС, 0)) КОНЕЦ КАК КоэффициентОбложенияФОМС ПОМЕСТИТЬ ВТКоэффициентыДостиженияПредельнойСуммы ИЗ ВТНакопленнаяОблагаемаяБаза КАК База ЛЕВОЕ СОЕДИНЕНИЕ ВТНакопленнаяОблагаемаяБаза КАК НакопленоПоПрошлыйМесяц ПО (База.Месяц - 1 = НакопленоПоПрошлыйМесяц.Месяц) И База.ФизЛицо = НакопленоПоПрошлыйМесяц.ФизЛицо
ИНДЕКСИРОВАТЬ ПО Месяц, ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДоходыЗастрахованныхЛиц.ФизЛицо КАК ФизЛицо, ДоходыЗастрахованныхЛиц.Месяц КАК Месяц, ИспользуемыеТарифы.ВидТарифаСтраховыхВзносов, ВЫБОР КОГДА Коэффициенты.КоэффициентОбложенияПФР = 1 ТОГДА ДоходыЗастрахованныхЛиц.БазаПФРИнвалида КОГДА Коэффициенты.КоэффициентОбложенияПФР = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаПФРИнвалида = 0 ТОГДА 0 ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаПФР, 0) КОНЕЦ КАК БазаПФРИнвалида, ВЫБОР КОГДА Коэффициенты.КоэффициентОбложенияПФР = 1 ТОГДА ДоходыЗастрахованныхЛиц.БазаПФРПоОсновномуТарифу КОГДА Коэффициенты.КоэффициентОбложенияПФР = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаПФРПоОсновномуТарифу = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаПФРЕНВД = 0 ТОГДА &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаПФР, 0) ИНАЧЕ ВЫРАЗИТЬ((&ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаПФР, 0)) * ДоходыЗастрахованныхЛиц.БазаПФРПоОсновномуТарифу / (ДоходыЗастрахованныхЛиц.БазаПФРПоОсновномуТарифу + ДоходыЗастрахованныхЛиц.БазаПФРЕНВД) КАК ЧИСЛО(15, 2)) КОНЕЦ КАК БазаПФРПоОсновномуТарифу, ВЫБОР КОГДА Коэффициенты.КоэффициентОбложенияПФР = 1 ТОГДА ДоходыЗастрахованныхЛиц.БазаПФРЕНВД КОГДА Коэффициенты.КоэффициентОбложенияПФР = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаПФРЕНВД = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаПФРПоОсновномуТарифу = 0 ТОГДА &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаПФР, 0) ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаПФР, 0) - (ВЫРАЗИТЬ((&ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаПФР, 0)) * ДоходыЗастрахованныхЛиц.БазаПФРПоОсновномуТарифу / (ДоходыЗастрахованныхЛиц.БазаПФРПоОсновномуТарифу + ДоходыЗастрахованныхЛиц.БазаПФРЕНВД) КАК ЧИСЛО(15, 2))) КОНЕЦ КАК БазаПФРЕНВД, ВЫБОР КОГДА Коэффициенты.КоэффициентОбложенияФСС = 1 ТОГДА ДоходыЗастрахованныхЛиц.БазаФССИнвалида КОГДА Коэффициенты.КоэффициентОбложенияФСС = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФССИнвалида = 0 ТОГДА 0 ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФСС, 0) КОНЕЦ КАК БазаФССИнвалида, ВЫБОР КОГДА Коэффициенты.КоэффициентОбложенияФСС = 1 ТОГДА ДоходыЗастрахованныхЛиц.БазаФССПоОсновномуТарифу КОГДА Коэффициенты.КоэффициентОбложенияФСС = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФССПоОсновномуТарифу = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФССЕНВД = 0 ТОГДА &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФСС, 0) ИНАЧЕ ВЫРАЗИТЬ((&ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФСС, 0)) * ДоходыЗастрахованныхЛиц.БазаФССПоОсновномуТарифу / (ДоходыЗастрахованныхЛиц.БазаФССПоОсновномуТарифу + ДоходыЗастрахованныхЛиц.БазаФССЕНВД) КАК ЧИСЛО(15, 2)) КОНЕЦ КАК БазаФССПоОсновномуТарифу, ВЫБОР КОГДА Коэффициенты.КоэффициентОбложенияФСС = 1 ТОГДА ДоходыЗастрахованныхЛиц.БазаФССЕНВД КОГДА Коэффициенты.КоэффициентОбложенияФСС = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФССЕНВД = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФССПоОсновномуТарифу = 0 ТОГДА &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФСС, 0) ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФСС, 0) - (ВЫРАЗИТЬ((&ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФСС, 0)) * ДоходыЗастрахованныхЛиц.БазаФССПоОсновномуТарифу / (ДоходыЗастрахованныхЛиц.БазаФССПоОсновномуТарифу + ДоходыЗастрахованныхЛиц.БазаФССЕНВД) КАК ЧИСЛО(15, 2))) КОНЕЦ КАК БазаФССЕНВД, ВЫБОР КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 1 ТОГДА ДоходыЗастрахованныхЛиц.БазаФОМСИнвалида КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФОМСИнвалида = 0 ТОГДА 0 ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФОМС, 0) КОНЕЦ КАК БазаФОМСИнвалида, ВЫБОР КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 1 ТОГДА ДоходыЗастрахованныхЛиц.БазаФОМСПоОсновномуТарифу КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФОМСПоОсновномуТарифу = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФОМСЕНВД = 0 ТОГДА &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФОМС, 0) ИНАЧЕ ВЫРАЗИТЬ((&ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФОМС, 0)) * ДоходыЗастрахованныхЛиц.БазаФОМСПоОсновномуТарифу / (ДоходыЗастрахованныхЛиц.БазаФОМСПоОсновномуТарифу + ДоходыЗастрахованныхЛиц.БазаФОМСЕНВД) КАК ЧИСЛО(15, 2)) КОНЕЦ КАК БазаФОМСПоОсновномуТарифу, ВЫБОР КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 1 ТОГДА ДоходыЗастрахованныхЛиц.БазаФОМСЕНВД КОГДА Коэффициенты.КоэффициентОбложенияФОМС = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФОМСЕНВД = 0 ТОГДА 0 КОГДА ДоходыЗастрахованныхЛиц.БазаФОМСПоОсновномуТарифу = 0 ТОГДА &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФОМС, 0) ИНАЧЕ &ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФОМС, 0) - (ВЫРАЗИТЬ((&ПредельнаяСумма - ЕСТЬNULL(НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.БазаФОМС, 0)) * ДоходыЗастрахованныхЛиц.БазаФОМСПоОсновномуТарифу / (ДоходыЗастрахованныхЛиц.БазаФОМСПоОсновномуТарифу + ДоходыЗастрахованныхЛиц.БазаФОМСЕНВД) КАК ЧИСЛО(15, 2))) КОНЕЦ КАК БазаФОМСЕНВД ПОМЕСТИТЬ ВТОграниченнаяОблагаемаяБаза ИЗ ВТДоходыЗастрахованныхЛиц КАК ДоходыЗастрахованныхЛиц ЛЕВОЕ СОЕДИНЕНИЕ ВТКоэффициентыДостиженияПредельнойСуммы КАК Коэффициенты ПО ДоходыЗастрахованныхЛиц.ФизЛицо = Коэффициенты.ФизЛицо И ДоходыЗастрахованныхЛиц.Месяц = Коэффициенты.Месяц ЛЕВОЕ СОЕДИНЕНИЕ ВТНакопленнаяОблагаемаяБаза КАК НакопленнаяОблагаемаяБазаПоПредыдущийМесяц ПО ДоходыЗастрахованныхЛиц.ФизЛицо = НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.ФизЛицо И (ДоходыЗастрахованныхЛиц.Месяц - 1 = НакопленнаяОблагаемаяБазаПоПредыдущийМесяц.Месяц) ЛЕВОЕ СОЕДИНЕНИЕ ВТИспользуемыеТарифы КАК ИспользуемыеТарифы ПО ДоходыЗастрахованныхЛиц.Месяц = ИспользуемыеТарифы.Месяц
ИНДЕКСИРОВАТЬ ПО Месяц, ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОграниченнаяОблагаемаяБаза.ФизЛицо КАК ФизЛицо, ОграниченнаяОблагаемаяБаза.ВидТарифаСтраховыхВзносов, ВЫБОР КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967 ТОГДА 0 ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРПоОсновномуТарифу) * ОсновнойТариф.ПФРНакопительная / 100 КАК ЧИСЛО(15, 2)) КОНЕЦ КАК РезультатПФРНакопительная, ВЫБОР КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967 ТОГДА ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРПоОсновномуТарифу) * ОсновнойТариф.ПФР / 100 КАК ЧИСЛО(15, 2)) ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРПоОсновномуТарифу) * (ОсновнойТариф.ПФР - ОсновнойТариф.ПФРНакопительная) / 100 КАК ЧИСЛО(15, 2)) КОНЕЦ КАК РезультатПФРСтраховая, ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФССПоОсновномуТарифу) * ОсновнойТариф.ФСС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатФСС, ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФОМСПоОсновномуТарифу) * ОсновнойТариф.ФФОМС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатФФОМС, ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФОМСПоОсновномуТарифу) * ОсновнойТариф.ТФОМС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатТФОМС ПОМЕСТИТЬ ВТИсчисленоПоОсновномуТарифу ИЗ ВТОграниченнаяОблагаемаяБаза КАК ОграниченнаяОблагаемаяБаза ЛЕВОЕ СОЕДИНЕНИЕ ВТТарифы КАК ОсновнойТариф ПО ОграниченнаяОблагаемаяБаза.ВидТарифаСтраховыхВзносов = ОсновнойТариф.ВидТарифа
СГРУППИРОВАТЬ ПО ОсновнойТариф.ПФРНакопительная, ОсновнойТариф.ПФР, ОсновнойТариф.ФСС, ОсновнойТариф.ФФОМС, ОсновнойТариф.ТФОМС, ОграниченнаяОблагаемаяБаза.ВидТарифаСтраховыхВзносов, ОграниченнаяОблагаемаяБаза.ФизЛицо, ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения
ИНДЕКСИРОВАТЬ ПО ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОграниченнаяОблагаемаяБаза.ФизЛицо КАК ФизЛицо, ВЫБОР КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967 ТОГДА 0 ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРИнвалида) * ТарифИнвалида.ПФРНакопительная / 100 КАК ЧИСЛО(15, 2)) КОНЕЦ КАК РезультатПФРНакопительнаяИнвалида, ВЫБОР КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967 ТОГДА ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРИнвалида) * ТарифИнвалида.ПФР / 100 КАК ЧИСЛО(15, 2)) ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРИнвалида) * (ТарифИнвалида.ПФР - ТарифИнвалида.ПФРНакопительная) / 100 КАК ЧИСЛО(15, 2)) КОНЕЦ КАК РезультатПФРСтраховаяИнвалида, ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФССИнвалида) * ТарифИнвалида.ФСС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатФССИнвалида, ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФОМСИнвалида) * ТарифИнвалида.ФФОМС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатФФОМСИнвалида, ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаФОМСИнвалида) * ТарифИнвалида.ТФОМС / 100 КАК ЧИСЛО(15, 2)) КАК РезультатТФОМСИнвалида, ВЫБОР КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967 ТОГДА 0 ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРЕНВД) * ТарифЕНВД.ПФРНакопительная / 100 КАК ЧИСЛО(15, 2)) КОНЕЦ КАК РезультатПФРНакопительнаяЕНВД, ВЫБОР КОГДА ГОД(ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения) < 1967 ТОГДА ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРЕНВД) * ТарифЕНВД.ПФР / 100 КАК ЧИСЛО(15, 2)) ИНАЧЕ ВЫРАЗИТЬ(СУММА(ОграниченнаяОблагаемаяБаза.БазаПФРЕНВД) * (ТарифЕНВД.ПФР - ТарифЕНВД.ПФРНакопительная) / 100 КАК ЧИСЛО(15, 2)) КОНЕЦ КАК РезультатПФРСтраховаяЕНВД ПОМЕСТИТЬ ВТИсчисленоПоЛьготномуТарифу ИЗ ВТОграниченнаяОблагаемаяБаза КАК ОграниченнаяОблагаемаяБаза ЛЕВОЕ СОЕДИНЕНИЕ ВТТарифы КАК ТарифЕНВД ПО (ТарифЕНВД.ВидТарифа = ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ЕНВД)) ЛЕВОЕ СОЕДИНЕНИЕ ВТТарифы КАК ТарифИнвалида ПО (ТарифИнвалида.ВидТарифа = ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацияИнвалидов))
СГРУППИРОВАТЬ ПО ТарифИнвалида.ПФРНакопительная, ТарифИнвалида.ПФР, ТарифИнвалида.ФСС, ТарифИнвалида.ФФОМС, ТарифИнвалида.ТФОМС, ТарифЕНВД.ПФРНакопительная, ТарифЕНВД.ПФР, ТарифЕНВД.ФСС, ТарифЕНВД.ФФОМС, ТарифЕНВД.ТФОМС, ОграниченнаяОблагаемаяБаза.ФизЛицо, ОграниченнаяОблагаемаяБаза.ФизЛицо.ДатаРождения
ИНДЕКСИРОВАТЬ ПО ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(СУММА(ДоходыФизлиц.ОблагаемыйДоход) * 0.14 КАК ЧИСЛО(15, 2)) КАК РезультатПоДополнительномуТарифу, ДоходыФизлиц.ФизЛицо КАК ФизЛицо ПОМЕСТИТЬ ВТВзносыПоДополнительномуТарифу ИЗ ВТДоходыПоФизлицамМесяцам КАК ДоходыФизлиц ГДЕ ДоходыФизлиц.ОблагаетсяПоДополнительномуТарифу
СГРУППИРОВАТЬ ПО ДоходыФизлиц.ФизЛицо
ИНДЕКСИРОВАТЬ ПО ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Начислено.ФизЛицо КАК ФизЛицо, СУММА(Начислено.ОблагаемаяБаза) КАК ОблагаемаяБаза, СУММА(Начислено.ОблагаемаяБазаИнвалида) КАК ОблагаемаяБазаИнвалида, ВЫРАЗИТЬ(СУММА(Начислено.ОблагаемаяБаза) * &СтавкаВзносаФСС_НС_ПЗ КАК ЧИСЛО(15, 2)) КАК Взносов, ВЫРАЗИТЬ(СУММА(Начислено.ОблагаемаяБазаИнвалида) * &СтавкаВзносаФСС_НС_ПЗ * 0.6 КАК ЧИСЛО(15, 2)) КАК ВзносовПоИнвалидам ПОМЕСТИТЬ ВТБазаВзносовФСС_НС_ПЗ ИЗ (ВЫБРАТЬ ОсновныеНачисления.ФизЛицо КАК ФизЛицо, ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ NULL ТОГДА ОсновныеНачисления.Результат ИНАЧЕ 0 КОНЕЦ КАК ОблагаемаяБаза, ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА ОсновныеНачисления.Результат ИНАЧЕ 0 КОНЕЦ КАК ОблагаемаяБазаИнвалида ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОбИнвалидности КАК Инвалид ПО ОсновныеНачисления.ФизЛицо = Инвалид.Физлицо И (Инвалид.Месяц = &парамМесяцРасчета) ГДЕ ОсновныеНачисления.ПериодРегистрации = &парамПериодРегистрации И ОсновныеНачисления.ОбособленноеПодразделение = &парамОбособленноеПодразделение И ОсновныеНачисления.ФизЛицо В (ВЫБРАТЬ СписокСотрудников.ФизЛицо ИЗ ВТСписокСотрудников КАК СписокСотрудников) И ОсновныеНачисления.ВидРасчета.КодДоходаФСС_НС = ЗНАЧЕНИЕ(Перечисление.ДоходыФСС_НС.Облагается) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДополнительныеНачисления.ФизЛицо, ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ NULL ТОГДА ДополнительныеНачисления.Результат ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА Инвалид.Физлицо ЕСТЬ НЕ NULL ТОГДА ДополнительныеНачисления.Результат ИНАЧЕ 0 КОНЕЦ ИЗ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисления ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОбИнвалидности КАК Инвалид ПО ДополнительныеНачисления.ФизЛицо = Инвалид.Физлицо И (Инвалид.Месяц = &парамМесяцРасчета) ГДЕ НАЧАЛОПЕРИОДА(ДополнительныеНачисления.ПериодРегистрации, МЕСЯЦ) = &парамПериодРегистрации И ДополнительныеНачисления.ВидРасчета.КодДоходаФСС_НС = ЗНАЧЕНИЕ(Перечисление.ДоходыФСС_НС.Облагается) И ДополнительныеНачисления.ФизЛицо В (ВЫБРАТЬ СписокСотрудников.ФизЛицо ИЗ ВТСписокСотрудников КАК СписокСотрудников) И ДополнительныеНачисления.ОбособленноеПодразделение = &парамОбособленноеПодразделение) КАК Начислено
СГРУППИРОВАТЬ ПО Начислено.ФизЛицо
ИНДЕКСИРОВАТЬ ПО ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(БазаВзносовФСС_НС_ПЗ.ОблагаемаяБаза) КАК МаксимумБазы, МАКСИМУМ(БазаВзносовФСС_НС_ПЗ.ОблагаемаяБазаИнвалида) КАК МаксимумБазыИнвалида ПОМЕСТИТЬ ВТМаксимумыОблагаемойБазыПоНС_ПЗ ИЗ ВТБазаВзносовФСС_НС_ПЗ КАК БазаВзносовФСС_НС_ПЗ ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(БазаВзносовФСС_НС_ПЗ.ФизЛицо) КАК ФизЛицо, МАКСИМУМ(БазаВзносовФСС_НС_ПЗИнвалида.ФизЛицо) КАК ФизЛицоИнвалид ПОМЕСТИТЬ ВТФизлицаОкругления ИЗ ВТМаксимумыОблагаемойБазыПоНС_ПЗ КАК Максимумы ЛЕВОЕ СОЕДИНЕНИЕ ВТБазаВзносовФСС_НС_ПЗ КАК БазаВзносовФСС_НС_ПЗ ПО (Максимумы.МаксимумБазы > 0) И Максимумы.МаксимумБазы = БазаВзносовФСС_НС_ПЗ.ОблагаемаяБаза ЛЕВОЕ СОЕДИНЕНИЕ ВТБазаВзносовФСС_НС_ПЗ КАК БазаВзносовФСС_НС_ПЗИнвалида ПО (Максимумы.МаксимумБазыИнвалида > 0) И Максимумы.МаксимумБазыИнвалида = БазаВзносовФСС_НС_ПЗИнвалида.ОблагаемаяБазаИнвалида ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(СУММА(БазаВзносовФСС_НС_ПЗ.ОблагаемаяБаза) * &СтавкаВзносаФСС_НС_ПЗ КАК ЧИСЛО(15, 2)) КАК РассчитаноВзносов, ВЫРАЗИТЬ(СУММА(БазаВзносовФСС_НС_ПЗ.ОблагаемаяБазаИнвалида) * &СтавкаВзносаФСС_НС_ПЗ * 0.6 КАК ЧИСЛО(15, 2)) КАК РассчитаноВзносовПоИнвалидам, СУММА(ВЫБОР КОГДА БазаВзносовФСС_НС_ПЗ.ФизЛицо = ФизлицоОкругления.ФизЛицо ТОГДА 0 ИНАЧЕ БазаВзносовФСС_НС_ПЗ.Взносов КОНЕЦ) КАК ПросуммированоВзносов, СУММА(ВЫБОР КОГДА БазаВзносовФСС_НС_ПЗ.ФизЛицо = ФизлицоОкругления.ФизЛицоИнвалид ТОГДА 0 ИНАЧЕ БазаВзносовФСС_НС_ПЗ.ВзносовПоИнвалидам КОНЕЦ) КАК ПросуммированоВзносовПоИнвалидам ПОМЕСТИТЬ ВТИтогоВзносовФСС_НС_ПЗ ИЗ ВТБазаВзносовФСС_НС_ПЗ КАК БазаВзносовФСС_НС_ПЗ ЛЕВОЕ СОЕДИНЕНИЕ ВТФизлицаОкругления КАК ФизлицоОкругления ПО (ИСТИНА) ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ БазаВзносовФСС_НС_ПЗ.ФизЛицо КАК ФизЛицо, БазаВзносовФСС_НС_ПЗ.Взносов + БазаВзносовФСС_НС_ПЗ.ВзносовПоИнвалидам КАК Взносов ПОМЕСТИТЬ ВТВзносыФС_НС_ПЗ ИЗ ВТБазаВзносовФСС_НС_ПЗ КАК БазаВзносовФСС_НС_ПЗ ГДЕ (НЕ БазаВзносовФСС_НС_ПЗ.ФизЛицо В (ВЫБРАТЬ ФизлицоОкругления.ФизЛицо ИЗ ВТФизлицаОкругления КАК ФизлицоОкругления ГДЕ ФизлицоОкругления.ФизЛицо <> ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ФизлицоОкругления.ФизЛицоИнвалид ИЗ ВТФизлицаОкругления КАК ФизлицоОкругления ГДЕ ФизлицоОкругления.ФизЛицоИнвалид <> ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка))) И БазаВзносовФСС_НС_ПЗ.Взносов + БазаВзносовФСС_НС_ПЗ.ВзносовПоИнвалидам <> 0
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ФизлицоОкругления.ФизЛицо, ИтогоВзносовФСС_НС_ПЗ.РассчитаноВзносов - ИтогоВзносовФСС_НС_ПЗ.ПросуммированоВзносов ИЗ ВТФизлицаОкругления КАК ФизлицоОкругления ЛЕВОЕ СОЕДИНЕНИЕ ВТИтогоВзносовФСС_НС_ПЗ КАК ИтогоВзносовФСС_НС_ПЗ ПО (ИСТИНА) ГДЕ ИтогоВзносовФСС_НС_ПЗ.РассчитаноВзносов <> ИтогоВзносовФСС_НС_ПЗ.ПросуммированоВзносов И ФизлицоОкругления.ФизЛицо <> ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ФизлицоОкругления.ФизЛицоИнвалид, ИтогоВзносовФСС_НС_ПЗ.РассчитаноВзносовПоИнвалидам - ИтогоВзносовФСС_НС_ПЗ.ПросуммированоВзносовПоИнвалидам ИЗ ВТФизлицаОкругления КАК ФизлицоОкругления ЛЕВОЕ СОЕДИНЕНИЕ ВТИтогоВзносовФСС_НС_ПЗ КАК ИтогоВзносовФСС_НС_ПЗ ПО (ИСТИНА) ГДЕ ИтогоВзносовФСС_НС_ПЗ.РассчитаноВзносовПоИнвалидам <> ИтогоВзносовФСС_НС_ПЗ.ПросуммированоВзносовПоИнвалидам И ФизлицоОкругления.ФизЛицоИнвалид <> ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ СтраховыеВзносыИсчисленныеОбороты.ФизЛицо, -СтраховыеВзносыИсчисленныеОбороты.ФССНесчастныеСлучаиОборот ИЗ РегистрНакопления.СтраховыеВзносыИсчисленные.Обороты( &парамПериодРегистрации, &парамКонецМесяцаПериодаРегистрации, , ФизЛицо В (ВЫБРАТЬ СписокСотрудников.ФизЛицо ИЗ ВТСписокСотрудников КАК СписокСотрудников) И ОбособленноеПодразделение = &парамОбособленноеПодразделение) КАК СтраховыеВзносыИсчисленныеОбороты
ИНДЕКСИРОВАТЬ ПО ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВсегоИсчислено.ФизЛицо КАК ФизЛицо, ВсегоИсчислено.Порядок, СУММА(ВсегоИсчислено.РезультатПФРНакопительная) КАК РезультатПФРНакопительная, СУММА(ВсегоИсчислено.РезультатПФРСтраховая) КАК РезультатПФРСтраховая, СУММА(ВсегоИсчислено.РезультатПФРНакопительнаяЕНВД) КАК РезультатПФРНакопительнаяЕНВД, СУММА(ВсегоИсчислено.РезультатПФРСтраховаяЕНВД) КАК РезультатПФРСтраховаяЕНВД, СУММА(ВсегоИсчислено.РезультатФСС) КАК РезультатФСС, СУММА(ВсегоИсчислено.РезультатФФОМС) КАК РезультатФФОМС, СУММА(ВсегоИсчислено.РезультатТФОМС) КАК РезультатТФОМС, СУММА(ВсегоИсчислено.РезультатПФРНакопительнаяИнвалида) КАК РезультатПФРНакопительнаяИнвалида, СУММА(ВсегоИсчислено.РезультатПФРСтраховаяИнвалида) КАК РезультатПФРСтраховаяИнвалида, СУММА(ВсегоИсчислено.РезультатПоДополнительномуТарифу) КАК РезультатПоДополнительномуТарифу, СУММА(ВсегоИсчислено.РезультатФССНесчастныеСлучаи) КАК РезультатФССНесчастныеСлучаи ПОМЕСТИТЬ ВТСуммыВзносовНарастающимИтогом ИЗ (ВЫБРАТЬ ИсчисленоПоОсновномуТарифу.ФизЛицо КАК ФизЛицо, ИсчисленоПоОсновномуТарифу.ФизЛицо.Наименование КАК Порядок, ИсчисленоПоОсновномуТарифу.РезультатПФРНакопительная КАК РезультатПФРНакопительная, ИсчисленоПоОсновномуТарифу.РезультатПФРСтраховая КАК РезультатПФРСтраховая, ИсчисленоПоОсновномуТарифу.РезультатФСС КАК РезультатФСС, ИсчисленоПоОсновномуТарифу.РезультатФФОМС КАК РезультатФФОМС, ИсчисленоПоОсновномуТарифу.РезультатТФОМС КАК РезультатТФОМС, 0 КАК РезультатПФРНакопительнаяЕНВД, 0 КАК РезультатПФРСтраховаяЕНВД, 0 КАК РезультатПФРНакопительнаяИнвалида, 0 КАК РезультатПФРСтраховаяИнвалида, 0 КАК РезультатПоДополнительномуТарифу, 0 КАК РезультатФССНесчастныеСлучаи ИЗ ВТИсчисленоПоОсновномуТарифу КАК ИсчисленоПоОсновномуТарифу ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ИсчисленоПоЛьготномуТарифу.ФизЛицо, ИсчисленоПоЛьготномуТарифу.ФизЛицо.Наименование, 0, 0, ИсчисленоПоЛьготномуТарифу.РезультатФССИнвалида, ИсчисленоПоЛьготномуТарифу.РезультатФФОМСИнвалида, ИсчисленоПоЛьготномуТарифу.РезультатТФОМСИнвалида, ИсчисленоПоЛьготномуТарифу.РезультатПФРНакопительнаяЕНВД, ИсчисленоПоЛьготномуТарифу.РезультатПФРСтраховаяЕНВД, ИсчисленоПоЛьготномуТарифу.РезультатПФРНакопительнаяИнвалида, ИсчисленоПоЛьготномуТарифу.РезультатПФРСтраховаяИнвалида, 0, 0 ИЗ ВТИсчисленоПоЛьготномуТарифу КАК ИсчисленоПоЛьготномуТарифу ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВзносыПоДополнительномуТарифу.ФизЛицо, ВзносыПоДополнительномуТарифу.ФизЛицо.Наименование, 0, 0, 0, 0, 0, 0, 0, 0, 0, ВзносыПоДополнительномуТарифу.РезультатПоДополнительномуТарифу, 0 ИЗ ВТВзносыПоДополнительномуТарифу КАК ВзносыПоДополнительномуТарифу ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВзносыФС_НС_ПЗ.ФизЛицо, ВзносыФС_НС_ПЗ.ФизЛицо.Наименование, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ВзносыФС_НС_ПЗ.Взносов ИЗ ВТВзносыФС_НС_ПЗ КАК ВзносыФС_НС_ПЗ) КАК ВсегоИсчислено
СГРУППИРОВАТЬ ПО ВсегоИсчислено.ФизЛицо, ВсегоИсчислено.Порядок
ИНДЕКСИРОВАТЬ ПО ФизЛицо ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СуммыНарастающимИтогом.ФизЛицо КАК ФизЛицо, СуммыНарастающимИтогом.Порядок КАК Порядок, СуммыНарастающимИтогом.РезультатФСС - ЕСТЬNULL(ИсчисленныеВзносы.ФССОборот, 0) - ЕСТЬNULL(ИсчисленныеВзносы.ФССОборотИнвалида, 0) КАК ФСС, СуммыНарастающимИтогом.РезультатФФОМС - ЕСТЬNULL(ИсчисленныеВзносы.ФФОМСОборот, 0) - ЕСТЬNULL(ИсчисленныеВзносы.ФФОМСОборотИнвалида, 0) КАК ФФОМС, СуммыНарастающимИтогом.РезультатТФОМС - ЕСТЬNULL(ИсчисленныеВзносы.ТФОМСОборот, 0) - ЕСТЬNULL(ИсчисленныеВзносы.ТФОМСОборотИнвалида, 0) КАК ТФОМС, СуммыНарастающимИтогом.РезультатПФРНакопительная - ЕСТЬNULL(ИсчисленныеВзносы.ПФРНакопительнаяОборот, 0) + ВЫБОР КОГДА МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего <> 0 И МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаЕНВД <> 0 ТОГДА ВЫРАЗИТЬ((СуммыНарастающимИтогом.РезультатПФРНакопительнаяИнвалида - ЕСТЬNULL(ИсчисленныеВзносы.ПФРНакопительнаяОборотИнвалида, 0)) * (МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего - МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаЕНВД) / МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего КАК ЧИСЛО(15, 2)) ИНАЧЕ СуммыНарастающимИтогом.РезультатПФРНакопительнаяИнвалида - ЕСТЬNULL(ИсчисленныеВзносы.ПФРНакопительнаяОборотИнвалида, 0) КОНЕЦ КАК ПФРНакопительная, СуммыНарастающимИтогом.РезультатПФРСтраховая - ЕСТЬNULL(ИсчисленныеВзносы.ПФРСтраховаяОборот, 0) + ВЫБОР КОГДА МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего <> 0 И МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаЕНВД <> 0 ТОГДА ВЫРАЗИТЬ((СуммыНарастающимИтогом.РезультатПФРСтраховаяИнвалида - ЕСТЬNULL(ИсчисленныеВзносы.ПФРСтраховаяОборотИнвалида, 0)) * (МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего - МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаЕНВД) / МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего КАК ЧИСЛО(15, 2)) ИНАЧЕ СуммыНарастающимИтогом.РезультатПФРСтраховаяИнвалида - ЕСТЬNULL(ИсчисленныеВзносы.ПФРСтраховаяОборотИнвалида, 0) КОНЕЦ КАК ПФРСтраховая, СуммыНарастающимИтогом.РезультатПФРНакопительнаяЕНВД - ЕСТЬNULL(ИсчисленныеВзносы.ПФРНакопительнаяЕНВДОборот, 0) + ВЫБОР КОГДА МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего <> 0 И МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаЕНВД <> 0 ТОГДА СуммыНарастающимИтогом.РезультатПФРНакопительнаяИнвалида - ЕСТЬNULL(ИсчисленныеВзносы.ПФРНакопительнаяОборотИнвалида, 0) - (ВЫРАЗИТЬ((СуммыНарастающимИтогом.РезультатПФРНакопительнаяИнвалида - ЕСТЬNULL(ИсчисленныеВзносы.ПФРНакопительнаяОборотИнвалида, 0)) * (МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего - МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаЕНВД) / МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего КАК ЧИСЛО(15, 2))) ИНАЧЕ 0 КОНЕЦ КАК ПФРНакопительнаяЕНВД, СуммыНарастающимИтогом.РезультатПФРСтраховаяЕНВД - ЕСТЬNULL(ИсчисленныеВзносы.ПФРСтраховаяЕНВДОборот, 0) + ВЫБОР КОГДА МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего <> 0 И МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаЕНВД <> 0 ТОГДА СуммыНарастающимИтогом.РезультатПФРСтраховаяИнвалида - ЕСТЬNULL(ИсчисленныеВзносы.ПФРСтраховаяОборотИнвалида, 0) - (ВЫРАЗИТЬ((СуммыНарастающимИтогом.РезультатПФРСтраховаяИнвалида - ЕСТЬNULL(ИсчисленныеВзносы.ПФРСтраховаяОборотИнвалида, 0)) * (МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего - МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаЕНВД) / МесячнаяБазаПФРПоИнвалидам.БазаПФРИнвалидаВсего КАК ЧИСЛО(15, 2))) ИНАЧЕ 0 КОНЕЦ КАК ПФРСтраховаяЕНВД, СуммыНарастающимИтогом.РезультатПоДополнительномуТарифу - ЕСТЬNULL(ИсчисленныеВзносы.ПФРПоДополнительномуТарифуОборот, 0) КАК ПоДополнительномуТарифу, СуммыНарастающимИтогом.РезультатФССНесчастныеСлучаи КАК ФССНесчастныеСлучаи ПОМЕСТИТЬ ВТВзносыЗаМесяц ИЗ ВТСуммыВзносовНарастающимИтогом КАК СуммыНарастающимИтогом ЛЕВОЕ СОЕДИНЕНИЕ ВТРанееИсчисленныеВзносы КАК ИсчисленныеВзносы ПО СуммыНарастающимИтогом.ФизЛицо = ИсчисленныеВзносы.ФизЛицо ЛЕВОЕ СОЕДИНЕНИЕ ВТБазаПФРПоИнвалидам КАК МесячнаяБазаПФРПоИнвалидам ПО СуммыНарастающимИтогом.ФизЛицо = МесячнаяБазаПФРПоИнвалидам.ФизЛицо
ИНДЕКСИРОВАТЬ ПО Порядок ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Взносы.ФизЛицо, Взносы.ФСС, Взносы.ФФОМС, Взносы.ТФОМС, Взносы.ПФРНакопительная, Взносы.ПФРСтраховая, Взносы.ПФРНакопительнаяЕНВД, Взносы.ПФРСтраховаяЕНВД, Взносы.ПоДополнительномуТарифу КАК ПФРПоДополнительномуТарифу, Взносы.ФССНесчастныеСлучаи ИЗ ВТВзносыЗаМесяц КАК Взносы ГДЕ (Взносы.ФСС <> 0 ИЛИ Взносы.ФФОМС <> 0 ИЛИ Взносы.ТФОМС <> 0 ИЛИ Взносы.ПФРНакопительная <> 0 ИЛИ Взносы.ПФРСтраховая <> 0 ИЛИ Взносы.ПФРНакопительнаяЕНВД <> 0 ИЛИ Взносы.ПФРСтраховаяЕНВД <> 0 ИЛИ Взносы.ПоДополнительномуТарифу <> 0 ИЛИ Взносы.ФССНесчастныеСлучаи <> 0)
УПОРЯДОЧИТЬ ПО Взносы.Порядок
|