#Область ОбработчикиСобытий
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
РасчетЗарплатыРасширенныйВызовСервера.НачисленияОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
Настройки.ПриПолученииСлужебныхРеквизитов = Истина;
КонецПроцедуры
Процедура ПриПолученииСлужебныхРеквизитов(Реквизиты) Экспорт
Реквизиты.Добавить("ДоступнаСтратегияОтраженияКакЗаданоВидуРасчета");
Реквизиты.Добавить("КоличествоОтображаемыхПоказателей");
Реквизиты.Добавить("КоличествоПоказателейИспользуемыхПриРасчете");
Реквизиты.Добавить("КоличествоПостоянныхПоказателей");
Реквизиты.Добавить("ОкруглятьРезультатРаспределения");
Реквизиты.Добавить("ОчередностьОтраженияВУчете");
Реквизиты.Добавить("ОчередностьРасчета");
Реквизиты.Добавить("ТребуетсяРасчетБазы");
Реквизиты.Добавить("ТребуетсяРасчетБазыИсполнительногоЛиста");
Реквизиты.Добавить("ОчередностьОтраженияВУчете");
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Функция ИмяПланаВидовПодключаемыхХарактеристикЗарплатаКадры() Экспорт
Возврат "НачисленияПодключаемыеХарактеристики";
КонецФункции
Функция СвойстваНачисленияПоКатегорииПоУмолчанию() Экспорт
Описание = Новый Структура(
"СпособВыполненияНачисления,
|СпособРасчета,
|ФормулаРасчета,
|ВидДокументаНачисления,
|ВидПособияСоциальногоСтрахования,
|ВидВремени,
|ОбозначениеВТабелеУчетаРабочегоВремени,
|ВидОтпуска,
|ВидОперацииПоЗарплате,
|ПериодРасчетаБазовыхНачислений,
|КоличествоМесяцевБазовогоПериода,
|СдвигБазовогоПериода,
|ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка,
|КодДоходаНДФЛ,
|КатегорияДохода,
|КодДоходаСтраховыеВзносы,
|КодДоходаСтраховыеВзносы2017,
|ВидСтажаСЗВ,
|ВидСтажаПФР2014,
|ВидНачисленияДляНУ,
|ЗачетНормыВремени,
|ЗачетОтработанногоВремени,
|НачисляетсяПриРасчетеПервойПоловиныМесяца,
|ОтборБазовых,
|ОтборВытесняющих,
|ОтборВедущих,
|ИменаИнструкций,
|ПараметрыВыбора,
|НедоступныеСвойства,
|СтратегияОтраженияВСреднемЗаработке,
|ВключатьВСреднийЗаработокОбщий,
|СреднийЗаработокОбщий,
|ИндексируетсяСреднийЗаработокОбщий,
|ВключатьВСреднийЗаработокФСС,
|ВключатьВСреднийЗаработокФСС2010,
|СпособОтраженияЗарплатыВБухучете,
|ОтношениеКЕНВД,
|СтатьяФинансирования,
|СтатьяРасходов,
|СтратегияОтраженияВУчете,
|ЯвляетсяДоходомВНатуральнойФорме,
|КатегорияСтатистическогоНаблюдения,
|КатегорияСтатистическогоНаблюдения2019,
|ВидДоходаИсполнительногоПроизводства,
|ВидДоходаИсполнительногоПроизводства2022,
|ВключатьВФОТ,
|Рассчитывается,
|ПоддерживаетНесколькоПлановыхНачислений,
|УчитыватьИзменениеЗначенийПоказателейВБазовомПериоде,
|ДоступенПустойВидНачисленийДляНУ,
|ПериодичностьНачисления,
|ОсновнойВидРасчета,
|ДополнительныеФормулыРасчета");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПустаяСсылка();
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПустаяСсылка();
Описание.ФормулаРасчета = "";
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПустаяСсылка();
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.ПустаяСсылка();
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ПустаяСсылка();
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.КодДоходаПоУмолчанию;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.НачисленоДоход;
Описание.СтратегияОтраженияВСреднемЗаработке = Перечисления.СтратегииОтраженияВУчетеНачисленийУдержаний.КакЗаданоВидуРасчета;
Описание.СтратегияОтраженияВУчете = Перечисления.СтратегииОтраженияВУчетеНачисленийУдержаний.ПоДаннымОСотрудникеИЕгоПлановыхНачислениях;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ЗаработнаяПлатаРаботников;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ЗаработнаяПлатаРаботников;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения;
Описание.Рассчитывается = Истина;
Описание.ПоддерживаетНесколькоПлановыхНачислений = Ложь;
Описание.УчитыватьИзменениеЗначенийПоказателейВБазовомПериоде = Истина;
Описание.ДоступенПустойВидНачисленийДляНУ = Ложь;
Описание.ПериодичностьНачисления = Перечисления.ПериодичностьНачисления.ПустаяСсылка();
НедоступныеСвойстваПоУмолчанию = Новый Массив;
НедоступныеСвойстваПоУмолчанию.Добавить("ВключатьВСреднийЗаработокОбщий");
НедоступныеСвойстваПоУмолчанию.Добавить("СреднийЗаработокОбщий");
НедоступныеСвойстваПоУмолчанию.Добавить("ИндексируетсяСреднийЗаработокОбщий");
НедоступныеСвойстваПоУмолчанию.Добавить("ВключатьВСреднийЗаработокФСС");
НедоступныеСвойстваПоУмолчанию.Добавить("ВидНачисленияДляНУ");
НедоступныеСвойстваПоУмолчанию.Добавить("КодДоходаНДФЛ");
НедоступныеСвойстваПоУмолчанию.Добавить("КодДоходаСтраховыеВзносы");
НедоступныеСвойстваПоУмолчанию.Добавить("КодДоходаСтраховыеВзносы2017");
НедоступныеСвойстваПоУмолчанию.Добавить("СпособВыполненияНачисления");
НедоступныеСвойстваПоУмолчанию.Добавить("ВидСтажаСЗВ");
НедоступныеСвойстваПоУмолчанию.Добавить("ВидСтажаПФР2014");
НедоступныеСвойстваПоУмолчанию.Добавить("ВидОтпуска");
НедоступныеСвойстваПоУмолчанию.Добавить("ВидДокументаНачисления");
НедоступныеСвойстваПоУмолчанию.Добавить("КатегорияСтатистическогоНаблюдения");
НедоступныеСвойстваПоУмолчанию.Добавить("ОсновнойВидРасчета");
Описание.НедоступныеСвойства = НедоступныеСвойстваПоУмолчанию;
ДополнительныеФормулыРасчета = Новый Структура;
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаПредыдущая");
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиРК");
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиСН");
Описание.ДополнительныеФормулыРасчета = ДополнительныеФормулыРасчета;
Описание.ИменаИнструкций = "НедоступныеСвойства,КлючевыеСвойства,ИменаИнструкций,ПараметрыВыбора,ОтборБазовых,ОтборВытесняющих,ОтборВедущих,ДоступенПустойВидНачисленийДляНУ,ДополнительныеФормулыРасчета";
Возврат Описание;
КонецФункции
Функция ОписаниеНачисления() Экспорт
Описание = Новый Структура(
"Код,
|РеквизитДопУпорядочивания,
|Наименование,
|КраткоеНаименование,
|КатегорияНачисленияИлиНеоплаченногоВремени,
|ВидНачисленияДляНУ,
|КодДоходаНДФЛ,
|КатегорияДохода,
|КодДоходаСтраховыеВзносы,
|КодДоходаСтраховыеВзносы2017,
|СпособВыполненияНачисления,
|ВидДокументаНачисления,
|СпособРасчета,
|ФормулаРасчета,
|НачисляетсяПриРасчетеПервойПоловиныМесяца,
|НачисляетсяТолькоПриРасчетеПервойПоловиныМесяца,
|ВидВремени,
|ОбозначениеВТабелеУчетаРабочегоВремени,
|ЗачетНормыВремени,
|ЗачетОтработанногоВремени,
|ИспользоватьОперативныеПоказателиВЦеломЗаМесяц,
|ОтношениеКЕНВД,
|ВидПособияСоциальногоСтрахования,
|ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка,
|ПериодРасчетаБазовыхНачислений,
|КоличествоМесяцевБазовогоПериода,
|СдвигБазовогоПериода,
|ОтборБазовых,
|СтратегияОтраженияВСреднемЗаработке,
|СреднийЗаработокОбщий,
|ВключатьВСреднийЗаработокОбщий,
|СреднийЗаработокФСС,
|ВключатьВСреднийЗаработокФСС,
|ВключатьВСреднийЗаработокФСС2010,
|КлючевыеСвойства,
|ВидОперацииПоЗарплате,
|ВидОтпуска,
|ВидСтажаСЗВ,
|ВидСтажаПФР2014,
|УчетВремениВЧасах,
|ОпределяющиеПоказатели,
|ЗапрашиваемыеПоказатели,
|СвойстваПоКатегории,
|МесяцыНачисления,
|ЯвляетсяДоходомВНатуральнойФорме,
|Рассчитывается,
|КатегорияСтатистическогоНаблюдения,
|КатегорияСтатистическогоНаблюдения2019,
|ВидДоходаИсполнительногоПроизводства,
|ВидДоходаИсполнительногоПроизводства2022,
|ПоддерживаетНесколькоПлановыхНачислений,
|УчитыватьИзменениеЗначенийПоказателейВБазовомПериоде,
|ВключатьВФОТ,
|ПоказателиЗадающиеБухучет,
|СтратегияОтраженияВУчете,
|ПериодичностьНачисления,
|СсылкаНаОбъект");
Возврат Описание;
КонецФункции
Функция ОтборБазовыхПоУмолчанию() Экспорт
ОбозначенияВТабеле = Новый Массив;
ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Явка"));
ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РаботаНочныеЧасы"));
ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РаботаВечерниеЧасы"));
ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Сверхурочные"));
ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Праздники"));
ОтборБазовых = Новый Структура;
ОтборБазовых.Вставить("КатегорияНачисленияИлиНеоплаченногоВремени", КатегорииБазаНадбавок());
ОтборБазовых.Вставить("ТребуетсяРасчетБазы", Ложь);
ОтборБазовых.Вставить("ОбозначениеВТабелеУчетаРабочегоВремени", ОбозначенияВТабеле);
Возврат ОтборБазовых;
КонецФункции
Процедура СоздатьИзменитьНачисленияПоОписанию(Коллектор, Описание, ПроверятьНаличиеНачислений = Истина, ОбновлятьНачисленияПоСсылке = Ложь) Экспорт
НачислениеОбъект = Неопределено;
ДополнитьОписаниеПоСвойствамКатегории(Описание);
Если ПроверятьНаличиеНачислений Тогда
Если Описание.КлючевыеСвойства = "Ссылка" Тогда
НачислениеОбъект = НачислениеОбъектПоСсылке(Описание.СсылкаНаОбъект);
Если Не ОбновлятьНачисленияПоСсылке И НачислениеОбъект <> Неопределено Тогда
УстановитьИспользованиеНачислений(Коллектор, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Описание.СсылкаНаОбъект), Истина);
Возврат;
КонецЕсли;
Иначе
НачисленияПоОписанию = НачисленияПоОписанию(Описание);
Если НачисленияПоОписанию.Количество() > 0 Тогда
УстановитьИспользованиеНачислений(Коллектор, НачисленияПоОписанию, Истина);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если НачислениеОбъект = Неопределено Тогда
НачислениеОбъект = ПланыВидовРасчета.Начисления.СоздатьВидРасчета();
НачислениеСсылка = ПланыВидовРасчета.Начисления.ПолучитьСсылку();
Описание.СсылкаНаОбъект = НачислениеСсылка;
НачислениеОбъект.УстановитьСсылкуНового(НачислениеСсылка);
Иначе
НачислениеСсылка = НачислениеОбъект.Ссылка;
НачислениеОбъект.ВАрхиве = Ложь;
НачислениеОбъект.ПометкаУдаления = Ложь;
КонецЕсли;
Коллектор.Вставить(НачислениеСсылка, НачислениеОбъект);
СвойстваПоКатегории = Описание.СвойстваПоКатегории;
ЗаполнитьЗначенияСвойств(НачислениеОбъект, Описание);
НачислениеОбъект.МесяцыНачисления.Очистить();
Если Описание.МесяцыНачисления <> Неопределено Тогда
Для каждого МесяцНачисления Из Описание.МесяцыНачисления Цикл
НовыйМесяц = НачислениеОбъект.МесяцыНачисления.Добавить();
НовыйМесяц.Месяц = МесяцНачисления;
КонецЦикла;
КонецЕсли;
РасчетЗарплатыРасширенный.ЗаполнитьТаблицуПоказателейВидаРасчета(НачислениеОбъект, Коллектор);
НачислениеОбъект.СреднийЗаработокОбщий.Очистить();
Если СвойстваПоКатегории.ВключатьВСреднийЗаработокОбщий Тогда
НоваяСтрока = НачислениеОбъект.СреднийЗаработокОбщий.Добавить();
НоваяСтрока.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаОбщий.Постановление2010;
НоваяСтрока.Значение = Описание.СреднийЗаработокОбщий;
Если Не ЗначениеЗаполнено(Описание.СреднийЗаработокОбщий) Тогда
НоваяСтрока.Значение = СвойстваПоКатегории.СреднийЗаработокОбщий;
КонецЕсли;
НоваяСтрока.Индексируется = Истина;
КонецЕсли;
НачислениеОбъект.СреднийЗаработокФСС.Очистить();
Если СвойстваПоКатегории.ВключатьВСреднийЗаработокФСС Тогда
НоваяСтрока = НачислениеОбъект.СреднийЗаработокФСС.Добавить();
НоваяСтрока.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаФСС.Постановление2011;
НоваяСтрока.Значение = Перечисления.УчетНачисленийВСреднемЗаработкеФСС.Включать;
КонецЕсли;
Если СвойстваПоКатегории.ВключатьВСреднийЗаработокФСС2010 = Неопределено Тогда
СвойстваПоКатегории.ВключатьВСреднийЗаработокФСС2010 = СвойстваПоКатегории.ВключатьВСреднийЗаработокФСС;
КонецЕсли;
Если СвойстваПоКатегории.ВключатьВСреднийЗаработокФСС2010 Тогда
НоваяСтрока = НачислениеОбъект.СреднийЗаработокФСС.Добавить();
НоваяСтрока.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаФСС.Постановление2010;
НоваяСтрока.Значение = Перечисления.УчетНачисленийВСреднемЗаработкеФСС.Включать;
КонецЕсли;
НачислениеОбъект.ДополнительныеСвойства.Вставить("ОтборБазовых", Описание.ОтборБазовых);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.РасчетДенежногоДовольствия") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("РасчетДенежногоДовольствия");
Модуль.УстановитьДополнительныеСвойстваНачисления(НачислениеОбъект, Описание);
КонецЕсли;
ЗарплатаКадрыРасширенный.ОтметитьОпределяющиеПоказатели(НачислениеОбъект, Описание.ОпределяющиеПоказатели);
ЗарплатаКадрыРасширенный.ОтметитьЗапрашиваемыеПоказатели(НачислениеОбъект, Описание.ЗапрашиваемыеПоказатели);
ЗарплатаКадрыРасширенный.ОтметитьПоказателиЗадающиеБухучет(НачислениеОбъект, Описание.ПоказателиЗадающиеБухучет);
НачислениеОбъект.НачисляетсяВЦеломЗаМесяц = РасчетЗарплатыРасширенный.НачислениеВыполняетсяВЦеломЗаМесяц(НачислениеОбъект);
НачислениеОбъект.ТребуетсяРасчетБазы = РасчетЗарплатыРасширенный.ЕстьПоказательВКоллекции(НачислениеОбъект.Показатели, "РасчетнаяБаза");
НачислениеОбъект.УчетВремениВЧасах = РасчетЗарплатыРасширенный.НачислениеРассчитываетсяПоЧасам(НачислениеОбъект);
НачислениеОбъект.ПериодДействияБазовый = РасчетЗарплатыРасширенный.БазовыйПериодНачисленияКакПериодДействия(НачислениеОбъект);
НачислениеОбъект.ЗачетОтработанногоВремени = ЗарплатаКадрыРасширенныйКлиентСервер.ЗачетОтработанногоВремени(НачислениеОбъект.ВидВремени);
КонецПроцедуры
Процедура ОтключитьИспользованиеНачисленийПоОписанию(Коллектор, Описание) Экспорт
УстановитьИспользованиеНачислений(Коллектор, НачисленияПоОписанию(Описание), Ложь);
КонецПроцедуры
Процедура ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний = Неопределено) Экспорт
НастроитьСвязиНачислений(КоллекторНачислений, СвойстваНачислений);
Если КоллекторУдержаний <> Неопределено Тогда
НастроитьБазовыеНачисленияУдержаний(КоллекторНачислений, КоллекторУдержаний);
КонецЕсли;
ЗаполнитьПорядокНачислений(КоллекторНачислений);
РасчетЗарплатыРасширенный.ДозаполнитьВидыРасчета(КоллекторНачислений);
ПакетВидовРасчета = Новый Соответствие;
Для Каждого КлючИЗначение Из КоллекторНачислений Цикл
ПакетВидовРасчета.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
Если КоллекторУдержаний <> Неопределено Тогда
Для Каждого КлючИЗначение Из КоллекторУдержаний Цикл
ПакетВидовРасчета.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
КонецЕсли;
Для Каждого КлючИЗначение Из ПакетВидовРасчета Цикл
КлючИЗначение.Значение.ДополнительныеСвойства.Вставить("ИзменениеПланаВидовРасчетаПоНастройкам", Истина);
КонецЦикла;
РасчетЗарплатыРасширенный.ЗаписатьПакетВидовРасчета(ПакетВидовРасчета);
ОбновитьОперативныеПоказателиДляВыявленияНачислений();
ОбновитьВидыВремениДляВыявленияНачислений();
КонецПроцедуры
#Область БлокФункцийПервоначальногоЗаполненияИОбновленияИБ
Процедура СоздатьНачисленияПоНастройкам(ПараметрыПланаВидовРасчета = Неопределено, НачальноеЗаполнение = Ложь, ТекущиеНастройки = Неопределено) Экспорт
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
ТекущиеНастройкиРасчетаЗарплаты = Неопределено;
Если ТекущиеНастройки <> Неопределено Тогда
ТекущиеНастройки.Свойство("НастройкиРасчетаЗарплаты", ТекущиеНастройкиРасчетаЗарплаты);
КонецЕсли;
Если ПараметрыПланаВидовРасчета = Неопределено Тогда
ПараметрыПланаВидовРасчета = РасчетЗарплатыРасширенный.ОписаниеПараметровПланаВидовРасчета();
КонецЕсли;
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
Справочники.ПоказателиРасчетаЗарплаты.СоздатьПоказателиПоНастройкам(НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета, ТекущиеНастройкиРасчетаЗарплаты);
УчетРабочегоВремени.СоздатьВидыИспользованияРабочегоВремениПоНастройкам(НастройкиРасчетаЗарплаты);
Справочники.ВидыОтпусков.ОписатьВидОтпускаОсновнойОтпуск();
Справочники.ВидыОтпусков.ОписатьВидОтпускаДополнительныйОтпускНаСанаторноКурортноеЛечение();
Справочники.ВидыОтпусков.СоздатьВидыОтпусковПоНастройкам(ПараметрыПланаВидовРасчета, НастройкиРасчетаЗарплаты);
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
Справочники.ВидыДоходовНДФЛ.НачальноеЗаполнение();
КонецЕсли;
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
Если НачальноеЗаполнение Тогда
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОКЛ'");
Описание.Наименование = НСтр("ru = 'Оплата по окладу'");
Описание.КраткоеНаименование = НСтр("ru = 'Оклад'");
Описание.ФормулаРасчета = "Оклад * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеВПределахНормы;
Описание.УчетВремениВЧасах = Ложь;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя");
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Оклад");
Описание.КлючевыеСвойства = "СпособВыполненияНачисления,ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени,УчетВремениВЧасах";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ТРФД'");
Описание.Наименование = НСтр("ru = 'Оплата по дневному тарифу'");
Описание.КраткоеНаименование = НСтр("ru = 'Опл. по дням'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеВПределахНормы;
Описание.ФормулаРасчета = "ТарифнаяСтавкаДневная * ВремяВДнях";
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя");
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("ТарифнаяСтавкаДневная");
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ОкладПоДням;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПланаВидовРасчета.ИспользоватьПодневнуюОплатуТруда Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ОкладПоДням = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
СоздатьНачисленияПремий(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаЗаСовмещение;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'СОВМ'");
Описание.Наименование = НСтр("ru = 'Доплата за совмещение должностей, исполнение обязанностей'");
Описание.КраткоеНаименование = НСтр("ru = 'Совмещение'");
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("РазмерДоплатыЗаСовмещение");
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьСовмещениеПрофессийДолжностей", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьСовмещениеПрофессийДолжностей Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаДоСреднегоЗаработка;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ДПСРЗ'");
Описание.Наименование = НСтр("ru = 'Доплата до среднего заработка'");
Описание.КраткоеНаименование = НСтр("ru = 'Допл. до среднего'");
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьДоплатуДоСреднегоЗаработка", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьДоплатуДоСреднегоЗаработка Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаДоСреднегоЗаработкаЗаДниБолезни;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ДПФСС'");
Описание.Наименование = НСтр("ru = 'Доплата за дни болезни'");
Описание.КраткоеНаименование = НСтр("ru = 'Допл. за дни болезни'");
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьДоплатуЗаДниБолезни", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьДоплатуЗаДниБолезни Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Если НачальноеЗаполнение Тогда
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛиста;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'БЛН'");
Описание.Наименование = НСтр("ru = 'Больничный'");
Описание.КраткоеНаименование = НСтр("ru = 'Больничный'");
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛистаЗаСчетРаботодателя;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'БЛРДТ'");
Описание.Наименование = НСтр("ru = 'Больничный за счет работодателя'");
Описание.КраткоеНаименование = НСтр("ru = 'Больн. (работодат.)'");
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодам;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОТБРР'");
Описание.Наименование = НСтр("ru = 'Отпуск по беременности и родам'");
Описание.КраткоеНаименование = НСтр("ru = 'Отп. по берем.'");
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка();
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоНесчастныйСлучайНаПроизводстве;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'БЛТП'");
Описание.Наименование = НСтр("ru = 'Больничный при травме на производстве'");
Описание.КраткоеНаименование = НСтр("ru = 'Больн. при травме'");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка();
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоПрофзаболевание;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'БЛПЗ'");
Описание.Наименование = НСтр("ru = 'Больничный при профзаболевании'");
Описание.КраткоеНаименование = НСтр("ru = 'Больн. при профзаб.'");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка();
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.БолезньБезОплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОБ'");
Описание.Наименование = НСтр("ru = 'Отсутствие по болезни'");
Описание.КраткоеНаименование = НСтр("ru = 'Неявка по болезни'");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка();
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамБезОплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОББР'");
Описание.Наименование = НСтр("ru = 'Неоплачиваемые дни отпуска по беременности и родам'");
Описание.КраткоеНаименование = НСтр("ru = 'Отп. по берем. без опл.'");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка();
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ВыходноеПособие;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Наименование = НСтр("ru = 'Компенсация при увольнении (выходное пособие)'");
Описание.КраткоеНаименование = НСтр("ru = 'Выходн. пособие'");
Описание.Код = НСтр("ru = 'КПУ'");
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2014");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'КОМНД'");
Описание.Наименование = НСтр("ru = 'Командировка'");
Описание.КраткоеНаименование = НСтр("ru = 'Командировка'");
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("СреднийЗаработокОбщий");
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуКомандировок", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуКомандировок Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаКомандировки;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ДОПЛК'");
Описание.Наименование = НСтр("ru = 'Доплата за время командировки'");
Описание.КраткоеНаименование = НСтр("ru = 'Доплата за время командировки'");
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("СреднийЗаработокОбщий");
Описание.КлючевыеСвойства = "КатегорияНачисленияИлиНеоплаченногоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьДоплатуЗаКомандировкиПоПостановлению1099",
НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьДоплатуЗаКомандировкиПоПостановлению1099 Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОТПОЗ'");
Описание.Наименование = НСтр("ru = 'Отпуск без оплаты согласно ТК РФ'");
Описание.КраткоеНаименование = НСтр("ru = 'Отп. без опл.'");
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеоплачиваемыйОтпускПоЗаконодательству");
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускБезОплатыПоТКРФ");
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени,ВидОтпуска";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтпускаБезОплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтпускаБезОплаты Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОТПДО'");
Описание.Наименование = НСтр("ru = 'Отпуск за свой счет'");
Описание.КраткоеНаименование = НСтр("ru = 'Отп. за свой счет'");
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеоплачиваемыйОтпускПоРазрешениюРаботодателя");
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускЗаСвойСчет");
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени,ВидОтпуска";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтпускаБезОплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтпускаБезОплаты Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска;
Описание.СвойстваПоКатегории = КоллекцииБЗК.СкопироватьСтруктуру(СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени]);
Описание.Код = НСтр("ru = 'УЧЕБН'");
Описание.Наименование = НСтр("ru = 'Дополнительный учебный отпуск (оплачиваемый)'");
Описание.КраткоеНаименование = НСтр("ru = 'Учебн. отп.'");
Описание.ФормулаРасчета = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * КалендарныеДниМесяца > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН))* КалендарныеДниМесяца, УчитыватьМРОТ * МРОТ) / КалендарныеДниМесяца * КоличествоДнейОтпуска";
ДополнительныеФормулыРасчета = Новый Структура;
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиРК", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * КалендарныеДниМесяца > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * КалендарныеДниМесяца, 0) / КалендарныеДниМесяца * КоличествоДнейОтпуска");
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиСН", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * КалендарныеДниМесяца > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * КалендарныеДниМесяца, 0) / КалендарныеДниМесяца * КоличествоДнейОтпуска");
Описание.СвойстваПоКатегории.Вставить("ДополнительныеФормулыРасчета", ДополнительныеФормулыРасчета);
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускНаОбучение");
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускУчебный");
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.УЧОТПУСК;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп13ст255;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени,ВидОтпуска";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтпускаУчебные", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтпускаУчебные Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОТПУД'");
Описание.Наименование = НСтр("ru = 'Дополнительный учебный отпуск без оплаты'");
Описание.КраткоеНаименование = НСтр("ru = 'Учебн. отп. без опл.'");
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускНаОбучениеНеоплачиваемый");
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускБезОплатыУчебный");
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.УЧОТПУСК;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени,ВидОтпуска";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтпускаБезОплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтпускаБезОплаты Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ДОЧАЭС'");
Описание.Наименование = НСтр("ru = 'Дополнительный отпуск пострадавшим в аварии на ЧАЭС'");
Описание.КраткоеНаименование = НСтр("ru = 'Доп. отп. ЧАЭС'");
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныйОтпуск");
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускПострадавшимВАварииЧАЭС");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ЧАЭС;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени,ВидОтпуска";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтпускаДляПострадавшихВАварииЧАЭС", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтпускаДляПострадавшихВАварииЧАЭС Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоНевыясненнымПричинам;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'НЕВЫХ'");
Описание.Наименование = НСтр("ru = 'Отсутствие по невыясненной причине'");
Описание.КраткоеНаименование = НСтр("ru = 'Неявка'");
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеявкиПоНевыясненнымПричинам");
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетПрочихНевыходов", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетПрочихНевыходов Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прогул;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРГУЛ'");
Описание.Наименование = НСтр("ru = 'Прогул'");
Описание.КраткоеНаименование = НСтр("ru = 'Прогул'");
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Прогулы");
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетПрочихНевыходов", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетПрочихНевыходов Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Отгул;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОТГУЛ'");
Описание.Наименование = НСтр("ru = 'Отгул'");
Описание.КраткоеНаименование = НСтр("ru = 'Отгул'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныеВыходныеДниНеОплачиваемые");
Описание.КлючевыеСвойства = "ВидВремени,КатегорияНачисленияИлиНеоплаченногоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтгулы", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтгулы Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
СоздатьНачисленияПростоев(КоллекторНачислений, НастройкиРасчетаЗарплаты, СвойстваНачислений);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощь;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'МАТПМ'");
Описание.Наименование = НСтр("ru = 'Материальная помощь'");
Описание.КраткоеНаименование = НСтр("ru = 'Мат. пом.'");
Описание.ФормулаРасчета = "";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.КлючевыеСвойства = "КодДоходаСтраховыеВзносы2017";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьМатериальнуюПомощь", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьМатериальнуюПомощь Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощь;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'МТПМР'");
Описание.Наименование = НСтр("ru = 'Материальная помощь при рождении ребенка'");
Описание.КраткоеНаименование = НСтр("ru = 'Мат. пом. при рожд. реб.'");
Описание.ФормулаРасчета = "";
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенка;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенка;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеЕдиновременные;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код2762;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.КлючевыеСвойства = "КодДоходаСтраховыеВзносы2017";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьМатериальнуюПомощь", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьМатериальнуюПомощь Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощь;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'МТПМН'");
Описание.Наименование = НСтр("ru = 'Материальная помощь, не облагаемая налогами'");
Описание.КраткоеНаименование = НСтр("ru = 'Мат. пом. не обл. нал.'");
Описание.ФормулаРасчета = "";
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.ПустаяСсылка();
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.КлючевыеСвойства = "КодДоходаСтраховыеВзносы2017";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьМатериальнуюПомощь", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьМатериальнуюПомощь Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
КоличествоОкладовДляМатериальнойПомощи = СтрЗаменить(Строка(ПараметрыПланаВидовРасчета.КоличествоОкладовДляМатериальнойПомощи),",",".");
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'МТПОМ'");
Описание.Наименование = НСтр("ru = 'Материальная помощь к отпуску'");
Описание.КраткоеНаименование = НСтр("ru = 'Мат. пом. к отп.'");
Описание.ПериодичностьНачисления = Перечисления.ПериодичностьНачисления.РазВГод;
Описание.ФормулаРасчета = "Оклад * " + КоличествоОкладовДляМатериальнойПомощи;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьМатериальнуюПомощьПриОтпуске", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьМатериальнуюПомощьПриОтпуске Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
КоличествоОкладовДляВыплатыКОтпуску = СтрЗаменить(Строка(ПараметрыПланаВидовРасчета.КоличествоОкладовДляВыплатыКОтпуску),",",".");
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпуску;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЕВОТП'");
Описание.ФормулаРасчета = "Оклад * " + КоличествоОкладовДляВыплатыКОтпуску;
Описание.Наименование = НСтр("ru = 'Единовременная выплата к отпуску'");
Описание.КраткоеНаименование = НСтр("ru = 'Выпл. к отп.'");
Описание.ПериодичностьНачисления = Перечисления.ПериодичностьНачисления.РазВГод;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьЕдиновременнуюВыплатуКОтпуску", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьЕдиновременнуюВыплатуКОтпуску Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ДОНОР'");
Описание.Наименование = НСтр("ru = 'Оплата за дни сдачи крови и ее компонентов'");
Описание.КраткоеНаименование = НСтр("ru = 'Донорство'");
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ГосударственныеОбязанности");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп20ст255;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код4800;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ПрочиеДоходы;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.СДКРОВ;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ОплатаДнейСдачиКрови;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПланаВидовРасчета.ИспользоватьОплатуДнейСдачиКрови Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ОплатаДнейСдачиКрови = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЕДВР'");
Описание.Наименование = НСтр("ru = 'Единовременное начисление'");
Описание.КраткоеНаименование = НСтр("ru = 'Единовр. начисл.'");
Описание.ФормулаРасчета = "";
Описание.Рассчитывается = Ложь;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.РазовоеНачисление;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("4800");
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ПрочиеДоходыВДенежнойФормеОтТрудовойДеятельности;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.РазовоеНачисление;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПланаВидовРасчета.ИспользоватьРазовоеНачисление Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.РазовоеНачисление = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Если НачальноеЗаполнение Тогда
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛет;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'РЕБ15'");
Описание.Наименование = НСтр("ru = 'Пособие по уходу за ребенком до полутора лет'");
Описание.КраткоеНаименование = НСтр("ru = 'Уход за реб. до 1,5'");
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Если НачальноеЗаполнение Тогда
СоздатьНачислениеДниОплаченныеДоНачалаЭксплуатации(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СдельнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'СДЛОК'");
Описание.Наименование = НСтр("ru = 'Сдельный заработок (для работающих по окладу)'");
Описание.КраткоеНаименование = НСтр("ru = 'Сдельно'");
Описание.ФормулаРасчета = "Макс(СдельныйЗаработок, Оклад * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней)";
Описание.ЗапрашиваемыеПоказатели= ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Оклад");
Описание.УчетВремениВЧасах = Ложь;
Описание.КлючевыеСвойства = "УчетВремениВЧасах";
Описание.ИспользоватьОперативныеПоказателиВЦеломЗаМесяц = Истина;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьСдельныйЗаработок", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьСдельныйЗаработок Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
СоздатьНачислениеНадбавкаЗаКвалификационнуюКатегорию(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты);
СоздатьНачислениеОплатаДнейУходаЗаДетьмиИнвалидами(КоллекторНачислений, СвойстваНачислений);
СоздатьНачисленияДляУчетаВремениСотрудниковВЧасах(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета, ТекущиеНастройки);
СоздатьНачисленияЕжегодногоОтпуска(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
СоздатьНачисленияЕжегодногоОтпускаГосслужащих(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
СоздатьНачисленияДополнительныеОтпуска(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, ПараметрыПланаВидовРасчета);
СоздатьНачисленияОтпускаНаСанаторноКурортноеЛечениеЗаСчетФСС(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
СоздатьНачисленияНадбавки(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета);
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьНадбавкуЗаВредность", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
СоздатьНачислениеНадбавкаЗаВредность(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты);
КонецЕсли;
СоздатьНачисленияКомпенсационныеВыплаты(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета);
СоздатьНачисленияНатуральныеДоходы(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета, НастройкиРасчетаЗарплаты);
СоздатьНачисленияРКиСН(КоллекторНачислений, СвойстваНачислений);
СоздатьНачислениеДоплатаЗаПереработкиПоСуммированномуУчету(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты);
СоздатьНачисленияКомпенсацииНеИспользованныхДнейЧасовОтдыха(НастройкиРасчетаЗарплаты, КоллекторНачислений, СвойстваНачислений);
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетПрочихНевыходов", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
СоздатьНачисленияНеявкаПоБолезни(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, НастройкиРасчетаЗарплаты);
КонецЕсли;
СоздатьНачисленияПриостановкиРаботы(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты);
Если НачальноеЗаполнение Тогда
СоздатьНачислениеКомпенсацияМоральногоВреда(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
СоздатьНачислениеОплатаВынужденногоПростоя(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы") Тогда
СоздатьНачислениеКомпенсацияЗаНеотработанныеДниЧасыПриУвольнении(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
СоздатьНачислениеКомпенсацияЗаНеотработанныеДниПриУвольненииГосслужащего(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
КонецЕсли;
ЕстьНачисленияГосслужбы = Ложь;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.РасчетДенежногоСодержания") Тогда
ЕстьНачисленияГосслужбы = Истина;
Модуль = ОбщегоНазначения.ОбщийМодуль("РасчетДенежногоСодержания");
Модуль.СоздатьНачисленияДенежногоСодержания(НастройкиРасчетаЗарплаты, КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета, ТекущиеНастройки);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.РасчетДенежногоДовольствия") Тогда
ЕстьНачисленияГосслужбы = Истина;
Модуль = ОбщегоНазначения.ОбщийМодуль("РасчетДенежногоДовольствия");
Модуль.СоздатьНачисленияДенежногоДовольствия(НастройкиРасчетаЗарплаты, КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета);
КонецЕсли;
Если ЕстьНачисленияГосслужбы Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужба");
Модуль.ЗаполнитьДополнительныеСвойстваНачисленийРКиСН();
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КлючевыеПоказателиЭффективности") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("КлючевыеПоказателиЭффективности");
Модуль.СоздатьНачислениеДоплатаПоРезультатамОценкиЭффективности(ПараметрыПланаВидовРасчета, СвойстваНачислений, КоллекторНачислений);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОбразовательныеУчреждения") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ОбразовательныеУчреждения");
Модуль.СоздатьНачисленияОбразовательныхУчреждений(ПараметрыПланаВидовРасчета, СвойстваНачислений, КоллекторНачислений);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("Медицина");
Модуль.СоздатьНачисленияМедицинскихУчреждений(НастройкиРасчетаЗарплаты, КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплата");
Модуль.ПриСозданииПланаВидовРасчетаПоНастройкам(ПараметрыПланаВидовРасчета, СвойстваНачислений, КоллекторНачислений);
КонецЕсли;
СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений, СвойстваНачислений);
ПланыВидовРасчета.Удержания.СоздатьУдержанияПоНастройкам(НастройкиРасчетаЗарплаты, КоллекторУдержаний, ПараметрыПланаВидовРасчета, ТекущиеНастройкиРасчетаЗарплаты);
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
Справочники.ВидыДокументовВводДанныхДляРасчетаЗарплаты.СоздатьВидыДокументовПоНастройкам(НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета);
КонецПроцедуры
Процедура СоздатьНачисленияРКиСН(КоллекторНачислений = Неопределено, СвойстваНачислений = Неопределено) Экспорт
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
ВостребованностьРКиСН = РасчетЗарплаты.ВостребованностьРКиСН();
Справочники.ПоказателиРасчетаЗарплаты.СоздатьПоказателиРКиСН(ВостребованностьРКиСН);
Справочники.ВидыОтпусков.ОписатьВидОтпускаСеверныйОтпуск(ВостребованностьРКиСН.СевернаяНадбавка);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.РайонныйКоэффициент;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'РК'");
Описание.Наименование = НСтр("ru = 'Районный коэффициент'");
Описание.КраткоеНаименование = НСтр("ru = 'Районн. коэфф.'");
Описание.КлючевыеСвойства = "КатегорияНачисленияИлиНеоплаченногоВремени";
Если ВостребованностьРКиСН.РайонныйКоэффициент Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СевернаяНадбавка;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'СН'");
Описание.Наименование = НСтр("ru = 'Северная надбавка'");
Описание.КраткоеНаименование = НСтр("ru = 'Северн. надб.'");
Описание.КлючевыеСвойства = "КатегорияНачисленияИлиНеоплаченногоВремени";
Если ВостребованностьРКиСН.СевернаяНадбавка Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Справочники.ВидыСтажа.СоздатьСтажРаботыНаСевере();
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
ВидОтпускаСеверный = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Северный");
Если ВидОтпускаСеверный <> Неопределено Тогда
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Наименование = НСтр("ru = 'Отпуск лицам, работающим в районах Крайнего Севера'");
Описание.КраткоеНаименование = НСтр("ru = 'Отп. северн.'");
Описание.ВидОтпуска = ВидОтпускаСеверный;
Описание.КлючевыеСвойства = "ВидОтпуска";
КоллекторУдержаний = Новый Соответствие;
Если ВостребованностьРКиСН.СевернаяНадбавка Тогда
СоздатьНачисленияОтпускаИКомпенсации(Описание.ВидОтпуска, Описание.Наименование, Истина, Истина, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
НастройкиПриложения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
Если НастройкиПриложения.ИспользоватьРасчетСохраняемогоДенежногоСодержания Тогда
СоздатьНачисленияОтпускаИКомпенсации(Описание.ВидОтпуска, Описание.Наименование, Истина, Истина, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, Истина);
КонецЕсли;
КонецЕсли;
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияОтпуска;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Если ЗаписыватьНачисления Тогда
СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений, СвойстваНачислений, ВостребованностьРКиСН);
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужба");
Модуль.ЗаполнитьДополнительныеСвойстваНачисленийРКиСН();
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачисленияОтпускаИКомпенсации(ВидОтпуска, НаименованиеОтпуска, СоздаватьНачислениеОтпуска = Истина, СоздаватьНачислениеКомпенсацииОтпуска = Ложь, КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено, ДенежноеСодержание = Ложь, КраткоеНаименование = "") Экспорт
ОбновитьПовторноИспользуемыеЗначения();
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено Или КоллекторУдержаний = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
ДополнениеКода = ДополнениеКодаНачисленияОтпускаПоВидуОтпуска(ВидОтпуска);
Если СоздаватьНачислениеОтпуска Тогда
СоздатьНачислениеОтпуска(ВидОтпуска, НаименованиеОтпуска, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, ДенежноеСодержание, КраткоеНаименование, ДополнениеКода);
КонецЕсли;
Если СоздаватьНачислениеКомпенсацииОтпуска Тогда
СоздатьНачислениеКомпенсацииОтпуска(ВидОтпуска, НаименованиеОтпуска, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, ДенежноеСодержание, ДополнениеКода);
КонецЕсли;
Если ЗаписыватьНачисления Тогда
СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений, СвойстваНачислений);
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачислениеОтпуска(ВидОтпуска, НаименованиеОтпуска, КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено, ДенежноеСодержание = Ложь, КраткоеНаименование = "" , ДополнениеКода = Неопределено) Экспорт
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено Или КоллекторУдержаний = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Если ДополнениеКода = Неопределено Тогда
ДополнениеКода = ДополнениеКодаНачисленияОтпускаПоВидуОтпуска(ВидОтпуска);
КонецЕсли;
ЭтоОтпускБезОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидОтпуска, "ОтпускБезОплаты");
Описание = ОписаниеНачисления();
Если ЭтоОтпускБезОплаты Тогда
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты;
Иначе
Если ДенежноеСодержание Тогда
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпуска;
Иначе
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска;
КонецЕсли;
ВидИспользованияВремени = ?(ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Основной"), "ОсновнойОтпуск", "ДополнительныйОтпуск");
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени." + ВидИспользованияВремени);
КонецЕсли;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Наименование = НаименованиеОтпуска;
Описание.КраткоеНаименование = КраткоеНаименование;
Описание.Код = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'ОТ%1'"), ДополнениеКода);
Описание.ВидОтпуска = ВидОтпуска;
Описание.КлючевыеСвойства = "ВидОтпуска,КатегорияНачисленияИлиНеоплаченногоВремени";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Если ЗаписыватьНачисления Тогда
СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений, СвойстваНачислений);
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачислениеКомпенсацииОтпуска(ВидОтпуска, НаименованиеОтпуска, КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено, ДенежноеСодержание = Ложь, ДополнениеКода = Неопределено, ПроверятьНаличиеНачислений = Истина) Экспорт
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено Или КоллекторУдержаний = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Если ДополнениеКода = Неопределено Тогда
ДополнениеКода = ДополнениеКодаНачисленияОтпускаПоВидуОтпуска(ВидОтпуска);
КонецЕсли;
ДополнениеКодаКомпенсацииУдержания = ДополнениеКодаНачисленияКомпенсацииОтпускаПоВидуОтпуска(ДополнениеКода, ВидОтпуска);
Описание = ОписаниеНачисления();
Если ДенежноеСодержание Тогда
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеКомпенсацияОтпуска;
Иначе
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияОтпуска;
КонецЕсли;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Наименование = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Компенсация отпуска (%1)'"), НаименованиеОтпуска);
Описание.Код = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'КОТ%1'"), ДополнениеКодаКомпенсацииУдержания);
Описание.ВидОтпуска = ВидОтпуска;
Описание.КлючевыеСвойства = "ВидОтпуска,КатегорияНачисленияИлиНеоплаченногоВремени";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание, ПроверятьНаличиеНачислений);
ПланыВидовРасчета.Удержания.СоздатьУдержаниеЗаНеотработанныеДниОтпуска(ВидОтпуска, НаименованиеОтпуска, ДополнениеКодаКомпенсацииУдержания, КоллекторУдержаний, ДенежноеСодержание, ПроверятьНаличиеНачислений);
Если ЗаписыватьНачисления Тогда
СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений, СвойстваНачислений);
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
КонецПроцедуры
Функция ДополнениеКодаНачисленияОтпускаПоВидуОтпуска(ВидОтпуска) Экспорт
ДополнениеКода = "";
Если ВидОтпуска <> ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Основной") Тогда
Если ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Северный") Тогда
ДополнениеКода = "СВР";
Иначе
ДополнениеКода = Формат(Справочники.ВидыОтпусков.КоличествоВидовОтпуска(), "ЧЦ=3; ЧВН=");
КонецЕсли;
КонецЕсли;
Возврат ДополнениеКода;
КонецФункции
Функция ДополнениеКодаНачисленияКомпенсацииОтпускаПоВидуОтпуска(ДополнениеКода, ВидОтпуска) Экспорт
ДополнениеКодаКомпенсацииУдержания = "";
Если ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Северный") Тогда
ДополнениеКодаКомпенсацииУдержания = "СВР";
Иначе
ДополнениеКодаКомпенсацииУдержания = Прав(ДополнениеКода, 2);
КонецЕсли;
Возврат ДополнениеКодаКомпенсацииУдержания;
КонецФункции
Процедура СоздатьНачислениеОплатаДнейУходаЗаДетьмиИнвалидами(КоллекторНачислений = Неопределено, СвойстваНачислений = Неопределено) Экспорт
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ИНВ'");
Описание.Наименование = НСтр("ru = 'Оплата дней ухода за детьми-инвалидами'");
Описание.КраткоеНаименование = НСтр("ru = 'Уход за детьми-инв.'");
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений);
КонецЕсли;
КонецПроцедуры
Функция СвойстваНачисленийПоКатегориям() Экспорт
СвойстваПоКатегориям = Новый Соответствие;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПустаяСсылка(), СвойстваНачисленияПоКатегорииПоУмолчанию());
ДоступныеКоды = Новый Массив;
ДоступныеКоды.Добавить("2000");
ДоступныеКоды.Добавить("2003");
ДоступныеКоды.Добавить("4800");
ПараметрыВыбораНДФЛ = Новый Структура("Отбор_Код", ДоступныеКоды);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.ВключатьВФОТ = Истина;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп1ст255;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СпособВыполненияНачисления");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ИндексируетсяСреднийЗаработокОбщий");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2004");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("ДСВО");
ВидыДокументов = Новый Массив;
ВидыДокументов.Добавить(Перечисления.ВидыДокументовНачисления.РазовоеНачисление);
ВидыДокументов.Добавить(Перечисления.ВидыДокументовНачисления.Отпуск);
Описание.ПараметрыВыбора.ВидДокументаНачисления = Новый Структура("Отбор_Ссылка", ВидыДокументов);
Описание.ОтборБазовых = ОтборБазовыхПоУмолчанию();
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОплатыТруда();
Описание.ОтборВедущих = ОтборВедущихПоУмолчанию();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.ВключатьВФОТ = Истина;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "СдельныйЗаработок";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеВПределахНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя");
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.НачисленоСдельноДоход;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп1ст255;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("СпособВыполненияНачисления");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СпособВыполненияНачисления");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОплатыТруда();
Описание.ОтборВедущих = ОтборВедущихПоУмолчанию();
Описание.СтратегияОтраженияВУчете = Перечисления.СтратегииОтраженияВУчетеНачисленийУдержаний.ПоСдельномуЗаработку;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СдельнаяОплатаТруда, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.ВключатьВФОТ = Истина;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.ЯвляетсяДоходомВНатуральнойФорме = Истина;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп1ст255;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код2530;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СпособВыполненияНачисления");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидДокументаНачисления");
ПараметрыВыбораВидаДокумента = Новый Структура("КатегорияНачисления", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда);
Описание.ВидДокументаНачисления = ПараметрыВыбораВидаДокумента;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2530");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2791");
ВидыДокументов = Новый Массив;
ВидыДокументов.Добавить(Перечисления.ВидыДокументовНачисления.ДоходВНатуральнойФорме);
Описание.ПараметрыВыбора.ВидДокументаНачисления = Новый Структура("Отбор_Ссылка", ВидыДокументов);
Описание.ОтборБазовых = ОтборБазовыхПоУмолчанию();
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОплатыТруда();
Описание.ОтборВедущих = ОтборВедущихПоУмолчанию();
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.НатуральныйДоход;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаТрудаВНатуральнойФорме, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ДоходВНатуральнойФорме;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ЯвляетсяДоходомВНатуральнойФорме = Истина;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НеВключаетсяВСтраховойСтаж;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код2510;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.ВидНачисленияДляНУ = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.Рассчитывается = Ложь;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВключатьВСреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СпособВыполненияНачисления");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2003");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2010");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2015");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2016");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2017");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2018");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2201");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2202");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2203");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2204");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2205");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2206");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2207");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2208");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2209");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2510");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2520");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2630");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2750");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2760");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2763");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("4800");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликомНеОблагаемыеФСС_НС);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеЯвляетсяОбъектом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенка);
ДоступныеВидыНачисленияДляНУ = Новый Массив;
ДоступныеВидыНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка());
ДоступныеВидыНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255);
ДоступныеВидыНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп24_2ст255);
ДоступныеВидыНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп7ст255);
ДоступныеВидыНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп4ст255);
Описание.ПараметрыВыбора.ВидНачисленияДляНУ = Новый Структура("Отбор_Ссылка", ДоступныеВидыНачисленияДляНУ);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.НатуральныйДоход;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоходВНатуральнойФорме, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.РазовоеНачисление;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НеВключаетсяВСтраховойСтаж;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код4800;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ПрочиеДоходы;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеЕдиновременные;
Описание.ВидНачисленияДляНУ = Неопределено;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СпособВыполненияНачисления");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("1400");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2000");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2003");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2014");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2017");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2018");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("4800");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликомНеОблагаемыеФСС_НС);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеЯвляетсяОбъектом);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсационныеВыплаты, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Премия;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ПремияФиксированнойСуммой;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп2ст255;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
ДоступныеВидНачисленияДляНУ = Новый Массив;
ДоступныеВидНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп2ст255);
ДоступныеВидНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка());
Описание.ДоступенПустойВидНачисленийДляНУ = Истина;
Описание.ПараметрыВыбора.ВидНачисленияДляНУ = Новый Структура("Отбор_Ссылка", ДоступныеВидНачисленияДляНУ);
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СпособВыполненияНачисления");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора.СреднийЗаработокОбщий = Новый Структура("ТолькоПремия", Истина);
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("ДСВО");
Описание.ОтборБазовых = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени", КатегорииБазаПремии());
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия, Описание);
Описание = ОбщегоНазначения.СкопироватьРекурсивно(Описание);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КвартальнаяПремия, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.ВключатьВФОТ = Истина;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(Макс(РайонныйКоэффициент, 1) - 1) * РасчетнаяБаза";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп11ст255;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ОтборБазовых = ОтборБазаРКиСН();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.РайонныйКоэффициент, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.ВключатьВФОТ = Истина;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "СевернаяНадбавка / 100 * РасчетнаяБаза";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп12ст255;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ОтборБазовых = ОтборБазаРКиСН();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СевернаяНадбавка, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.ВключатьВФОТ = Истина;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "ПроцентНадбавкиЗаВредность / 100 * РасчетнаяБаза";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ОтборБазовых = ОтборБазаРКиСН();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НадбавкаЗаВредность, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * КалендарныеДниМесяцаБезПраздников > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН))* КалендарныеДниМесяцаБезПраздников, УчитыватьМРОТ * МРОТ) / КалендарныеДниМесяцаБезПраздников * КоличествоДнейОтпуска";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * КалендарныеДниМесяцаБезПраздников > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * КалендарныеДниМесяцаБезПраздников, 0) / КалендарныеДниМесяцаБезПраздников * КоличествоДнейОтпуска";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * КалендарныеДниМесяцаБезПраздников > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * КалендарныеДниМесяцаБезПраздников, 0) / КалендарныеДниМесяцаБезПраздников * КоличествоДнейОтпуска";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОсновнойОтпуск");
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2012");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.ВидОтпуска = Справочники.ВидыОтпусков.ПараметрыВыбораВидаОтпуска();
Описание.ПараметрыВыбора.ВидОтпуска.Удалить("Отбор_ОтпускЯвляетсяЕжегодным");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп7ст255;
ДоступныеВидНачисленияДляНУ = Новый Массив;
ДоступныеВидНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп7ст255);
ДоступныеВидНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп24ст255);
ДоступныеВидНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255);
Описание.ДоступенПустойВидНачисленийДляНУ = Истина;
Описание.ПараметрыВыбора.ВидНачисленияДляНУ = Новый Структура("Отбор_Ссылка", ДоступныеВидНачисленияДляНУ);
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ДЛОТПУСК;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидОтпуска");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликомНеОблагаемыеФСС_НС);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеЯвляетсяОбъектом);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
ДоступныеОбозначенияВТабелеУчетаРабочегоВремени = Новый Массив;
ДоступныеОбозначенияВТабелеУчетаРабочегоВремени.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОсновнойОтпуск"));
ДоступныеОбозначенияВТабелеУчетаРабочегоВремени.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныйОтпуск"));
ДоступныеОбозначенияВТабелеУчетаРабочегоВремени.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускНаОбучение"));
Описание.ПараметрыВыбора.ОбозначениеВТабелеУчетаРабочегоВремени = Новый Структура("Отбор_Ссылка", ДоступныеОбозначенияВТабелеУчетаРабочегоВремени);
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОтпуска();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "ОКР(?(Макс((СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеНеИндексируемое) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемое, УчитыватьМРОТ * МРОТ)=УчитыватьМРОТ * МРОТ,УчитыватьМРОТ * МРОТ,(СохраняемоеДенежноеСодержание - (СохраняемоеДенежноеСодержаниеРК + СохраняемоеДенежноеСодержаниеСН) - (СохраняемоеДенежноеСодержаниеНеИндексируемое-(СохраняемоеДенежноеСодержаниеНеИндексируемоеРК+СохраняемоеДенежноеСодержаниеНеИндексируемоеСН))) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемое-(СохраняемоеДенежноеСодержаниеНеИндексируемоеРК+СохраняемоеДенежноеСодержаниеНеИндексируемоеСН))/ СреднемесячноеКоличествоКалендарныхДнейОтпускаГосслужащих, 2) * КоличествоДнейОтпуска";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "?(Макс((СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеНеИндексируемое) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемое, УчитыватьМРОТ * МРОТ)=УчитыватьМРОТ * МРОТ,0,((СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеНеИндексируемоеРК) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемоеРК)) / СреднемесячноеКоличествоКалендарныхДнейОтпускаГосслужащих * КоличествоДнейОтпуска";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "?(Макс((СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеНеИндексируемое) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемое, УчитыватьМРОТ * МРОТ)=УчитыватьМРОТ * МРОТ,0,((СохраняемоеДенежноеСодержаниеСН - СохраняемоеДенежноеСодержаниеНеИндексируемоеСН) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемоеСН)) / СреднемесячноеКоличествоКалендарныхДнейОтпускаГосслужащих * КоличествоДнейОтпуска";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОсновнойОтпуск");
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2012");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп7ст255;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.ВидОтпуска = Справочники.ВидыОтпусков.ПараметрыВыбораВидаОтпуска();
Описание.ПараметрыВыбора.ВидОтпуска.Удалить("Отбор_ОтпускЯвляетсяЕжегодным");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ДЛОТПУСК;
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидОтпуска");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОтпуска();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпуска, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "?(СреднийЗаработокОбщий * КалендарныеДниМесяцаБезПраздников > УчитыватьМРОТ * МРОТ, (СреднийЗаработокОбщий - СреднийЗаработокРК - СреднийЗаработокСН)* КалендарныеДниМесяцаБезПраздников, УчитыватьМРОТ * МРОТ) / КалендарныеДниМесяцаБезПраздников * КоличествоДнейКомпенсации";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "?(СреднийЗаработокОбщий * КалендарныеДниМесяцаБезПраздников > УчитыватьМРОТ * МРОТ, СреднийЗаработокРК * КалендарныеДниМесяцаБезПраздников, 0) / КалендарныеДниМесяцаБезПраздников * КоличествоДнейКомпенсации";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "?(СреднийЗаработокОбщий * КалендарныеДниМесяцаБезПраздников > УчитыватьМРОТ * МРОТ, СреднийЗаработокСН * КалендарныеДниМесяцаБезПраздников, 0) / КалендарныеДниМесяцаБезПраздников * КоличествоДнейКомпенсации";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код2013;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп8ст255;
ДоступныеВидНачисленияДляНУ = Новый Массив;
ДоступныеВидНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп8ст255);
Описание.ДоступенПустойВидНачисленийДляНУ = Истина;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.ВидНачисленияДляНУ = Новый Структура("Отбор_Ссылка", ДоступныеВидНачисленияДляНУ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2013");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("4800");
Описание.ПараметрыВыбора.ВидОтпуска = Справочники.ВидыОтпусков.ПараметрыВыбораВидаОтпуска();
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидОтпуска");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияОтпуска, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "ОКР(?(Макс(МесячноеДенежноеСодержание, УчитыватьМРОТ * МРОТ) = МесячноеДенежноеСодержание, МесячноеДенежноеСодержание - СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеСН, УчитыватьМРОТ * МРОТ) / СреднемесячноеКоличествоКалендарныхДнейОтпускаГосслужащих, 2) * КоличествоДнейКомпенсации";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "ОКР(?(Макс(МесячноеДенежноеСодержание, УчитыватьМРОТ * МРОТ) = МесячноеДенежноеСодержание, СохраняемоеДенежноеСодержаниеРК, 0) / СреднемесячноеКоличествоКалендарныхДнейОтпускаГосслужащих, 2) * КоличествоДнейКомпенсации";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "ОКР(?(Макс(МесячноеДенежноеСодержание, УчитыватьМРОТ * МРОТ) = МесячноеДенежноеСодержание, СохраняемоеДенежноеСодержаниеСН, 0) / СреднемесячноеКоличествоКалендарныхДнейОтпускаГосслужащих, 2) * КоличествоДнейКомпенсации";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код2013;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп8ст255;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ПараметрыВыбора.ВидОтпуска = Справочники.ВидыОтпусков.ПараметрыВыбораВидаОтпуска();
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидОтпуска");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеКомпенсацияОтпуска, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.МатериальнаяПомощь;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.МатериальнаяПомощь;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НеВключаетсяВСтраховойСтаж;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код2760;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь;
Описание.ВидНачисленияДляНУ = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.Рассчитывается = Ложь;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2710");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2760");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2761");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2762");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2763");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("ДСВО");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенка);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеЯвляетсяОбъектом);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
ДоступныеВидыНачисленияДляНУ = Новый Массив;
ДоступныеВидыНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка());
ДоступныеВидыНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255);
Описание.ПараметрыВыбора.ВидНачисленияДляНУ = Новый Структура("Отбор_Ссылка", ДоступныеВидыНачисленияДляНУ);
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВключатьВСреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СпособВыполненияНачисления");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощь, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НеВключаетсяВСтраховойСтаж;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код2760;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255;
Описание.ДоступенПустойВидНачисленийДляНУ = Истина;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
ДоступныеВидНачисленияДляНУ = Новый Массив;
ДоступныеВидНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255);
ДоступныеВидНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка());
Описание.ПараметрыВыбора.ВидНачисленияДляНУ = Новый Структура("Отбор_Ссылка", ДоступныеВидНачисленияДляНУ);
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВключатьВСреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.ПериодичностьНачисления = Перечисления.ПериодичностьНачисления.РазВГод;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НеВключаетсяВСтраховойСтаж;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код2760;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВключатьВСреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СреднийЗаработокОбщий");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.ПериодичностьНачисления = Перечисления.ПериодичностьНачисления.РазВГод;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеГосслужащего, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОтпускВоеннослужащего;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НеВключаетсяВСтраховойСтаж;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код2760;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ВидПособияСоциальногоСтрахования = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.Матпомощь;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВключатьВСреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеВоеннослужащего, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НеВключаетсяВСтраховойСтаж;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.КодДоходаПоУмолчанию;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.ВидНачисленияДляНУ = Неопределено;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("4800");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2000");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеЯвляетсяОбъектом);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
ДоступныеВидыНачисленияДляНУ = Новый Массив;
ДоступныеВидыНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка());
ДоступныеВидыНачисленияДляНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255);
Описание.ПараметрыВыбора.ВидНачисленияДляНУ = Новый Структура("Отбор_Ссылка", ДоступныеВидыНачисленияДляНУ);
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВключатьВСреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.ПериодичностьНачисления = Перечисления.ПериодичностьНачисления.РазВГод;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпуску, Описание);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпускуГосслужащего, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОтпускБезСохраненияОплаты;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "0";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеоплачиваемыйОтпускПоЗаконодательству");
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускБезОплатыПоТКРФ");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ОтпускБезСохраненияЗарплаты;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ОтпускБезСохраненияЗарплаты;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Неопределено;
Описание.КодДоходаСтраховыеВзносы2017 = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.ВидОтпуска = Справочники.ВидыОтпусков.ПараметрыВыбораВидаОтпуска();
Описание.ПараметрыВыбора.ВидОтпуска.Отбор_ОтпускБезОплаты = Истина;
Описание.ПараметрыВыбора.ВидОтпуска.Отбор_ОтпускЯвляетсяЕжегодным = Ложь;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидОтпуска");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОтпуска();
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отгул;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "0";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныеВыходныеДниНеОплачиваемые");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Неопределено;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Неопределено;
Описание.КодДоходаСтраховыеВзносы2017 = Неопределено;
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОтпуска();
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Отгул, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПрогулНеявка;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "0";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеявкиПоНевыясненнымПричинам");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НеВключаетсяВСтраховойСтаж;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Неопределено;
Описание.КодДоходаСтраховыеВзносы2017 = Неопределено;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
КатегорииВытесняющих = КатегорииВременнойНетрудоспособности();
КатегорииВытесняющих.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прогул);
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесняющих;
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоНевыясненнымПричинам, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПрогулНеявка;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "0";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Болезнь");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВременнаяНетрудоспособность;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВременнаяНетрудоспособность;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Неопределено;
Описание.КодДоходаСтраховыеВзносы2017 = Неопределено;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
КатегорииВытесняющих = КатегорииВременнойНетрудоспособности();
КатегорииВытесняющих.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прогул);
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесняющих;
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоБолезни, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПрогулНеявка;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "0";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Прогулы");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НЕОПЛ;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Неопределено;
Описание.КодДоходаСтраховыеВзносы2017 = Неопределено;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВременнойНетрудоспособности();
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прогул, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПростойСотрудников;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "0";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ПростойПоВинеРаботника");
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Неопределено;
Описание.КодДоходаСтраховыеВзносы2017 = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НеВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НеВключаетсяВСтраховойСтаж;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВременнойНетрудоспособности();
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПростойПоВинеРаботника, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПростойСотрудников;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * НормаДнейЧасов, УчитыватьМРОТ * МРОТ) / НормаДнейЧасов * (2/3) * ВремяВДняхЧасах";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * НормаДнейЧасов, 0) / НормаДнейЧасов * (2/3) * ВремяВДняхЧасах";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * НормаДнейЧасов, 0) / НормаДнейЧасов * (2/3) * ВремяВДняхЧасах";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ПростойПоВинеРаботодателя");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ПРОСТОЙ;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВременнойНетрудоспособности();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПростойСотрудников;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ОплатаПростоя;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Простой");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ПРОСТОЙ;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВременнойНетрудоспособности();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоНезависящимОтРаботодателяПричинам, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Командировка;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * НормаДнейЧасов, УчитыватьМРОТ * МРОТ) / НормаДнейЧасов * ВремяВДняхЧасах";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * НормаДнейЧасов, 0) / НормаДнейЧасов * ВремяВДняхЧасах";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * НормаДнейЧасов, 0) / НормаДнейЧасов * ВремяВДняхЧасах";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Командировка");
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
Описание.ПоддерживаетНесколькоПлановыхНачислений = Истина;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.НедоступныеСвойства.Добавить("ПоддерживаетНесколькоПлановыхНачислений");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияКомандировки();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Командировка;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН))* ВремяВДняхЧасах";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "(СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК)* ВремяВДняхЧасах";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "(СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)* ВремяВДняхЧасах";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Командировка");
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
Описание.ПоддерживаетНесколькоПлановыхНачислений = Истина;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияКомандировки();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаКомандировки, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Командировка;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеСН) * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеСодержаниеРК * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеСодержаниеСН * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Командировка");
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияКомандировки();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодКомандировки, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Командировка;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеСН) * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеСодержаниеРК * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеСодержаниеСН * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Командировка");
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
Описание.ПоддерживаетНесколькоПлановыхНачислений = Истина;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияКомандировки();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеДоплатаКомандировки, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОплатаПоСреднемуЗаработку;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * НормаДнейЧасов, УчитыватьМРОТ * МРОТ) / НормаДнейЧасов * ВремяВДняхЧасах * (ПроцентОплатыПоСреднему / 100)";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * НормаДнейЧасов, 0) / НормаДнейЧасов * ВремяВДняхЧасах * (ПроцентОплатыПоСреднему / 100)";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * НормаДнейЧасов, 0) / НормаДнейЧасов * ВремяВДняхЧасах * (ПроцентОплатыПоСреднему / 100)";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
Описание.ДоступенПустойВидНачисленийДляНУ = Истина;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СпособВыполненияНачисления");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВременнойНетрудоспособности();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОплатаПоСреднемуЗаработку;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеСН) * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * (ПроцентОплатыСохраняемогоДенежногоСодержания / 100) * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеСодержаниеРК * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * (ПроцентОплатыСохраняемогоДенежногоСодержания / 100) * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеСодержаниеСН * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * (ПроцентОплатыСохраняемогоДенежногоСодержания / 100) * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВременнойНетрудоспособности();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СохраняемоеДенежноеСодержание, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.ВключатьВФОТ = Истина;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ДоплатаДоСреднегоЗаработка;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
Описание.КоличествоМесяцевБазовогоПериода = 1;
Описание.СдвигБазовогоПериода = 1;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОплатыТруда();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаДоСреднегоЗаработка, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.ВключатьВФОТ = Истина;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "РазмерДоплатыЗаСовмещение * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.ПоддерживаетНесколькоПлановыхНачислений = Истина;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.НедоступныеСвойства.Добавить("ПоддерживаетНесколькоПлановыхНачислений");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОплатыТруда();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаЗаСовмещение, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ОплатаБольничного;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Болезнь");
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.Нетрудоспособность;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2300");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФСС;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВременнаяНетрудоспособность;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВременнаяНетрудоспособность;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛиста, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ОплатаБольничного;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Болезнь");
Описание.ВидПособияСоциальногоСтрахования = Неопределено;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2300");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюРаботодатель;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВременнаяНетрудоспособность;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВременнаяНетрудоспособность;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп48ст266;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛистаЗаСчетРаботодателя, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ОплатаБольничного;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускПоБеременностиИРодам");
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.БеременностьРоды;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеПериодические;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФСС;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.Декрет;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.Декрет;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодам, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОтпускПоБеременностиИРодамВоеннослужащего;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "СохраняемоеДенежноеДовольствие * КоэффициентИндексацииСохраняемогоДенежногоДовольствия * КалендарныеДни / КалендарныеДниМесяца";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускПоБеременностиИРодам");
Описание.ВидПособияСоциальногоСтрахования = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеПериодические;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюБюджет;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.Декрет;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.Декрет;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамВоеннослужащего, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.СохраняемоеДенежноеДовольствие;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(СохраняемоеДенежноеДовольствие - СохраняемоеДенежноеДовольствиеРК - СохраняемоеДенежноеДовольствиеСН)* ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоДовольствия";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеДовольствиеРК * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоДовольствия";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеДовольствиеСН * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоДовольствия";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныеВыходныеДниОплачиваемые");
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.КомпенсацииОблагаемыеВзносами;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.КомпенсацииОблагаемыеВзносами;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.НачисленоДоход;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ДОПВЫХ;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("ДСВО");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликомНеОблагаемыеФСС_НС);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.КомпенсацииОблагаемыеВзносами);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СохраняемоеДенежноеДовольствие, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОплатаСверхурочныхВоеннослужащим;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(СохраняемоеДенежноеДовольствие - СохраняемоеДенежноеДовольствиеРК - СохраняемоеДенежноеДовольствиеСН)/ СреднемесячноеКоличествоДнейВС * КоличествоДнейКомпенсацииВС";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеДовольствиеРК / СреднемесячноеКоличествоДнейВС * КоличествоДнейКомпенсацииВС";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеДовольствиеСН / СреднемесячноеКоличествоДнейВС * КоличествоДнейКомпенсацииВС";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеСверхНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Сверхурочные");
Описание.ВидПособияСоциальногоСтрахования = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.КодДоходаПоУмолчанию;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаСверхурочныхВоеннослужащим, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ИсключениеИзСписковЧасти;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(СохраняемоеДенежноеДовольствие - СохраняемоеДенежноеДовольствиеРК - СохраняемоеДенежноеДовольствиеСН ) / СреднемесячноеКоличествоДнейВС * КоличествоДнейКомпенсации";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеДовольствиеРК / СреднемесячноеКоличествоДнейВС * КоличествоДнейКомпенсации";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеДовольствиеСН / СреднемесячноеКоличествоДнейВС * КоличествоДнейКомпенсации";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидПособияСоциальногоСтрахования = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.КодДоходаПоУмолчанию;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидОтпуска");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеДовольствиеКомпенсацияОтпуска, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ОплатаБольничного;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Болезнь");
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.НетрудоспособностьПрофзаболевание;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2300");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС_НС;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС_НС;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФССНС;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВременнаяНетрудоспособность;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВременнаяНетрудоспособность;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоПрофзаболевание, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ОплатаБольничного;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Болезнь");
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.НетрудоспособностьНесчастныйСлучай;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2300");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС_НС;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС_НС;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФССНС;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВременнаяНетрудоспособность;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВременнаяНетрудоспособность;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоНесчастныйСлучайНаПроизводстве, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускНаСанаторноКурортноеЛечение");
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * КоличествоДнейОтпуска";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "(СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * КоличествоДнейОтпуска";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "(СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * КоличествоДнейОтпуска";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныйОтпуск");
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.ДополнительныйОтпускПослеНесчастныхСлучаев;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2012");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2012");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС_НС;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС_НС;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеЕдиновременные;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФССНС;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ДЛОТПУСК;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ФормулаРасчета");
ИндексНедоступногоСвойства = Описание.НедоступныеСвойства.Найти("КатегорияСтатистическогоНаблюдения");
Если ИндексНедоступногоСвойства <> Неопределено Тогда
Описание.НедоступныеСвойства.Удалить(ИндексНедоступногоСвойства);
КонецЕсли;
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОтпускаНаСанаторноКурортноеЛечение();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускНаСанаторноКурортноеЛечение, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ДоплатаДоСреднегоЗаработкаФСС;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
Описание.КоличествоМесяцевБазовогоПериода = 1;
Описание.СдвигБазовогоПериода = 1;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("4800");
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ПрочиеДоходыВДенежнойФормеОтТрудовойДеятельности;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2002");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаДоСреднегоЗаработкаЗаДниБолезни, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "0";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.БолезньБезОплаты");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВременнаяНетрудоспособность;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВременнаяНетрудоспособность;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Неопределено;
Описание.КодДоходаСтраховыеВзносы2017 = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.БолезньБезОплаты, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "0";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускПоБеременностиИРодам");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.НЕОПЛ;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.НЕОПЛ;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Неопределено;
Описание.КодДоходаСтраховыеВзносы2017 = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ВидДоходаИсполнительногоПроизводства");
Описание.НедоступныеСвойства.Добавить("ВидДоходаИсполнительногоПроизводства2022");
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамБезОплаты, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПособиеПоУходуЗаРебенкомДоПолутораЛет;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.ПоУходуЗаРебенком;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеПериодические;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускПоУходуЗаРебенком");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.Дети;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.Дети;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФСС;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛет, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПособиеПоУходуЗаРебенкомДоПолутораЛетНезастрахованным;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВидПособияСоциальногоСтрахования = Неопределено;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеПериодические;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускПоУходуЗаРебенком");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.Дети;
Описание.ВидСтажаПФР2014 = Неопределено;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюБюджет;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛетВоеннослужащим, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеПериодические;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускПоУходуЗаРебенком");
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ДЛДЕТИ;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ДЛДЕТИ;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВключатьВСреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "СреднийЗаработокОбщий");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликомНеОблагаемыеФСС_НС);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеЯвляетсяОбъектом);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
ДоступныеВидыНачисленияНУ = Новый Массив;
ДоступныеВидыНачисленияНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп7ст255);
ДоступныеВидыНачисленияНУ.Добавить(Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255);
Описание.ПараметрыВыбора.ВидНачисленияДляНУ = Новый Структура("Отбор_Ссылка", ДоступныеВидыНачисленияНУ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2760");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоТрехЛет, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Увольнение;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(СреднийЗаработокОбщий - СреднийЗаработокРК - СреднийЗаработокСН) * ДнейЧасовВыходногоПособия";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СреднийЗаработокРК * ДнейЧасовВыходногоПособия";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СреднийЗаработокСН * ДнейЧасовВыходногоПособия";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольнении;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольнении;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп9ст255;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2014");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольнении);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольненииСтудентовИзСтудотряда);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольненииПрокуроров);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ВыходноеПособие, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Увольнение;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(МесячноеДенежноеСодержание - СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеСН)* МесяцевВыплатыКомпенсации";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеСодержаниеРК * МесяцевВыплатыКомпенсации";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеСодержаниеСН * МесяцевВыплатыКомпенсации";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольнении;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольнении;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп9ст255;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2014");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольнении);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольненииСтудентовИзСтудотряда);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольненииПрокуроров);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ВыходноеПособиеМесячноеДенежноеСодержание, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОплатаДнейУходаЗаДетьмиИнвалидами;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ОплатаДнейУходаЗаДетьмиИнвалидами;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныеВыходныеДниОплачиваемые");
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.ВключатьВСреднийЗаработокФСС2010 = Ложь;
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФСС;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.КомпенсацииОблагаемыеВзносами;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.КомпенсацииОблагаемыеВзносами;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ДОПВЫХ;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликомНеОблагаемыеФСС_НС);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.КомпенсацииОблагаемыеВзносами);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОплатаДнейУходаЗаДетьмиИнвалидами;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "Макс(СохраняемоеДенежноеСодержание * КоэффициентИндексацииСохраняемогоДенежногоСодержания, УчитыватьМРОТ * МРОТ) * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныеВыходныеДниОплачиваемые");
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.ВключатьВСреднийЗаработокФСС2010 = Ложь;
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФСС;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.КомпенсацииОблагаемыеВзносами;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.КомпенсацииОблагаемыеВзносами;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтраховойСтаж;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ДОПВЫХ;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликомНеОблагаемыеФСС_НС);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.КомпенсацииОблагаемыеВзносами);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеОплатаДнейУходаЗаДетьмиИнвалидами, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускНаСанаторноКурортноеЛечение");
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "ОКР(?(Макс((СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеНеИндексируемое) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемое, УчитыватьМРОТ * МРОТ) = УчитыватьМРОТ * МРОТ, УчитыватьМРОТ * МРОТ, (СохраняемоеДенежноеСодержание - (СохраняемоеДенежноеСодержаниеРК + СохраняемоеДенежноеСодержаниеСН) - (СохраняемоеДенежноеСодержаниеНеИндексируемое - (СохраняемоеДенежноеСодержаниеНеИндексируемоеРК + СохраняемоеДенежноеСодержаниеНеИндексируемоеСН))) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемое - (СохраняемоеДенежноеСодержаниеНеИндексируемоеРК+СохраняемоеДенежноеСодержаниеНеИндексируемоеСН)) / СреднемесячноеКоличествоКалендарныхДнейОтпускаГосслужащих, 2) * КоличествоДнейОтпуска";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "?(Макс((СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеНеИндексируемое) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемое, УчитыватьМРОТ * МРОТ) = УчитыватьМРОТ * МРОТ, 0, ((СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеНеИндексируемоеРК) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемоеРК)) / СреднемесячноеКоличествоКалендарныхДнейОтпускаГосслужащих * КоличествоДнейОтпуска";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "?(Макс((СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеНеИндексируемое) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемое, УчитыватьМРОТ * МРОТ) = УчитыватьМРОТ * МРОТ, 0, ((СохраняемоеДенежноеСодержаниеСН - СохраняемоеДенежноеСодержаниеНеИндексируемоеСН) * КоэффициентИндексацииСохраняемогоДенежногоСодержания + СохраняемоеДенежноеСодержаниеНеИндексируемоеСН)) / СреднемесячноеКоличествоКалендарныхДнейОтпускаГосслужащих * КоличествоДнейОтпуска";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныеВыходныеДниОплачиваемые");
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.ДополнительныйОтпускПослеНесчастныхСлучаев;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2012");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2012");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС_НС;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ПособияЗаСчетФСС_НС;
Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеЕдиновременные;
Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФССНС;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ДЛОТПУСК;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
ИндексНедоступногоСвойства = Описание.НедоступныеСвойства.Найти("КатегорияСтатистическогоНаблюдения");
Если ИндексНедоступногоСвойства <> Неопределено Тогда
Описание.НедоступныеСвойства.Удалить(ИндексНедоступногоСвойства);
КонецЕсли;
ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(Описание.НедоступныеСвойства);
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОтпускаНаСанаторноКурортноеЛечение();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпускаНаСанаторноКурортноеЛечение, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.РазовоеНачисление;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.ВключатьВСреднийЗаработокФСС2010 = Истина;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
Описание.НедоступныеСвойства.Очистить();
Описание.НедоступныеСвойства.Добавить("ВидОтпуска");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
СписокКодовДохода09 = Справочники.ВидыДоходовНДФЛ.ДоходыПоСтавке09(Год(ТекущаяДатаСеанса()));
СписокКодовДохода30 = Справочники.ВидыДоходовНДФЛ.ДоходыПоСтавке30(Год(ТекущаяДатаСеанса()));
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(СписокКодовДохода09, СписокКодовДохода30, Истина);
КодыДоходов = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(СписокКодовДохода09, "Код");
Для Каждого КлючИЗначение Из КодыДоходов Цикл
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить(КлючИЗначение.Значение);
КонецЦикла;
ДоступныеВидыДоходов = Новый Массив;
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликомНеОблагаемыеФСС_НС);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.НеЯвляетсяОбъектом);
ДоступныеВидыДоходов.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.ВыплатыПриУвольнении);
Описание.ПараметрыВыбора.КодДоходаСтраховыеВзносы = Новый Структура("Отбор_Ссылка", ДоступныеВидыДоходов);
ВидыДокументов = Новый Массив;
ВидыДокументов.Добавить(Перечисления.ВидыДокументовНачисления.РазовоеНачисление);
ВидыДокументов.Добавить(Перечисления.ВидыДокументовНачисления.Премия);
Описание.ПараметрыВыбора.ВидДокументаНачисления = Новый Структура("Отбор_Ссылка", ВидыДокументов);
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прочее, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ОсновнойВидРасчета");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2300");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСреднемЗаработке, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ОсновнойВидРасчета");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2300");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДС, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ОсновнойВидРасчета");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2300");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДД, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ОсновнойВидРасчета");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2300");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСреднемЗаработке, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ОсновнойВидРасчета");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2300");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДС, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ОсновнойВидРасчета");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2300");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("РКСН");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДД, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп1ст255;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
ПараметрыВыбораВидаДокумента = Новый Структура("КатегорияНачисления", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда);
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2530");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2791");
Описание.ПараметрыВыбора.ВидДокументаНачисления = ПараметрыВыбораВидаДокумента;
Описание.ОтборБазовых = ОтборБазовыхПоУмолчанию();
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОплатыТруда();
Описание.ОтборВедущих = ОтборВедущихПоУмолчанию();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Льгота, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
Описание.ВключатьВСреднийЗаработокФСС = Ложь;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп1ст255;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидНачисленияДляНУ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
ПараметрыВыбораВидаДокумента = Новый Структура("КатегорияНачисления", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда);
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2530");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2791");
Описание.ПараметрыВыбора.ВидДокументаНачисления = ПараметрыВыбораВидаДокумента;
Описание.ОтборБазовых = ОтборБазовыхПоУмолчанию();
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияОплатыТруда();
Описание.ОтборВедущих = ОтборВедущихПоУмолчанию();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ВыбираемаяСотрудникомЛьгота, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ДоплатаДоСохраняемогоДенежногоСодержанияЗаДниБолезни;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
Описание.КоличествоМесяцевБазовогоПериода = 1;
Описание.СдвигБазовогоПериода = 1;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаДоДенежногоСодержанияЗаДниБолезни, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "0";
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПустаяСсылка();
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Неопределено;
Описание.КодДоходаСтраховыеВзносы2017 = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения = Неопределено;
Описание.КатегорияСтатистическогоНаблюдения2019 = Неопределено;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
Описание.НедоступныеСвойства.Добавить("Зависимости");
Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВременнойНетрудоспособности();
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПредыдущимиДокументами, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.РазовоеНачисление;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.Рассчитывается = Ложь;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаСтраховыеВзносы2017");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияМоральногоВреда, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Увольнение;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(СреднийЗаработокОбщий - СреднийЗаработокРК - СреднийЗаработокСН) * ДнейЧасовКомпенсацииЗаНеотработанноеВремяПриУвольнении";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СреднийЗаработокРК * ДнейЧасовКомпенсацииЗаНеотработанноеВремяПриУвольнении";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СреднийЗаработокСН * ДнейЧасовКомпенсацииЗаНеотработанноеВремяПриУвольнении";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп9ст255;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2014");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниЧасыПриУвольнении, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Увольнение;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ФормулаРасчета = "(СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеСН) / 21 * ДнейКомпенсацииЗаНеотработанноеВремяПриУвольнении";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеСодержаниеРК / 21 * ДнейКомпенсацииЗаНеотработанноеВремяПриУвольнении";
Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеСодержаниеСН / 21 * ДнейКомпенсацииЗаНеотработанноеВремяПриУвольнении";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.КодДоходаНДФЛ = Неопределено;
Описание.КатегорияДохода = Неопределено;
Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп9ст255;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2014");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниПриУвольненииГосслужащего, Описание);
Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Увольнение;
Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
Описание.ВключатьВСреднийЗаработокОбщий = Истина;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.ВключатьВСреднийЗаработокФСС = Истина;
Описание.НедоступныеСвойства.Добавить("ВидВремени");
Описание.НедоступныеСвойства.Добавить("ОбозначениеВТабелеУчетаРабочегоВремени");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КатегорияСтатистическогоНаблюдения");
Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
Описание.ПараметрыВыбора.КодДоходаНДФЛ = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбораНДФЛ);
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Очистить();
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("2000");
Описание.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Добавить("4800");
СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияНеИспользованныхДнейЧасовОтдыха, Описание);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплата");
Модуль.ПриОписанииСвойствНачисленийПоКатегориям(СвойстваПоКатегориям);
КонецЕсли;
Возврат СвойстваПоКатегориям;
КонецФункции
Функция КатегорииПоСвойствамНачислений(СвойстваПоКатегориям = Неопределено) Экспорт
Если СвойстваПоКатегориям = Неопределено Тогда
СвойстваПоКатегориям = ПланыВидовРасчета.Начисления.СвойстваНачисленийПоКатегориям();
КонецЕсли;
КатегорииПоСвойствам = Новый Структура(
"ОтработанноеВремя,
|НеоплачиваемоеВремя,
|КодДоходаСтраховыеВзносыНеЗаполняется,
|КодДоходаНДФЛНеЗаполняется,
|ВидНачисленияДляНУНеЗаполняется");
МассивОтработанноеВремя = Новый Массив;
МассивНеоплачиваемоеВремя = Новый Массив;
МассивКодДоходаНДФЛНеЗаполняется = Новый Массив;
МассивКодДоходаСтраховыеВзносыНеЗаполняется = Новый Массив;
МассивВидНачисленияДляНУНеЗаполняется = Новый Массив;
ВидыОтработанногоВремени = Перечисления.ВидыРабочегоВремениСотрудников.ВидыОтработанногоВремени();
Для Каждого КлючИЗначение Из СвойстваПоКатегориям Цикл
Категория = КлючИЗначение.Ключ;
СвойстваНачислений = КлючИЗначение.Значение;
Если ВидыОтработанногоВремени.Найти(СвойстваНачислений.ВидВремени) <> Неопределено Тогда
МассивОтработанноеВремя.Добавить(Категория);
КонецЕсли;
Если СвойстваНачислений.ФормулаРасчета = "0" Тогда
МассивНеоплачиваемоеВремя.Добавить(Категория);
КонецЕсли;
Если СвойстваНачислений.КодДоходаНДФЛ = Неопределено Тогда
МассивКодДоходаНДФЛНеЗаполняется.Добавить(Категория);
Иначе
Если СвойстваНачислений.НедоступныеСвойства.Найти("КодДоходаНДФЛ") = Неопределено Тогда
МассивКодДоходаНДФЛНеЗаполняется.Добавить(Категория);
Если СвойстваНачислений.ПараметрыВыбора <> Неопределено
И СвойстваНачислений.ПараметрыВыбора.КодДоходаНДФЛ <> Неопределено
И СвойстваНачислений.ПараметрыВыбора.КодДоходаНДФЛ.Свойство("Отбор_Код")
И СвойстваНачислений.ПараметрыВыбора.КодДоходаНДФЛ.Отбор_Код.Найти("") = Неопределено Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(МассивКодДоходаНДФЛНеЗаполняется, Категория);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если СвойстваНачислений.КодДоходаСтраховыеВзносы2017 = Неопределено Тогда
МассивКодДоходаСтраховыеВзносыНеЗаполняется.Добавить(Категория);
КонецЕсли;
Если СвойстваНачислений.ВидНачисленияДляНУ = Неопределено
Или СвойстваНачислений.ДоступенПустойВидНачисленийДляНУ Тогда
МассивВидНачисленияДляНУНеЗаполняется.Добавить(Категория);
КонецЕсли;
КонецЦикла;
КатегорииПоСвойствам.ОтработанноеВремя = МассивОтработанноеВремя;
КатегорииПоСвойствам.НеоплачиваемоеВремя = МассивНеоплачиваемоеВремя;
КатегорииПоСвойствам.КодДоходаНДФЛНеЗаполняется = МассивКодДоходаНДФЛНеЗаполняется;
КатегорииПоСвойствам.КодДоходаСтраховыеВзносыНеЗаполняется = МассивКодДоходаСтраховыеВзносыНеЗаполняется;
КатегорииПоСвойствам.ВидНачисленияДляНУНеЗаполняется = МассивВидНачисленияДляНУНеЗаполняется;
Возврат КатегорииПоСвойствам;
КонецФункции
Процедура НастроитьСвязиНачислений(КоллекторНачислений, СвойстваНачислений, ОбновлятьЗависимостиПоБазе = Истина) Экспорт
КатегорииКоллектора = Новый Соответствие;
КатегорииНеВытесняющиеОплатуСверхНормы = Новый Массив;
КатегорииНеВытесняющиеОплатуСверхНормы.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки);
КатегорииНеВытесняющиеОплатуСверхНормы.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодКомандировки);
Для Каждого КлючИЗначение Из СвойстваНачислений Цикл
КатегорияНачисления = КлючИЗначение.Ключ;
СвойстваНачисления = КлючИЗначение.Значение;
ОтборВытесняющих = СвойстваНачисления.ОтборВытесняющих;
Если ОтборВытесняющих <> Неопределено Тогда
Если ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени.Найти(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки) <> Неопределено
Или ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени.Найти(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодКомандировки) <> Неопределено Тогда
КатегорииНеВытесняющиеОплатуСверхНормы.Добавить(КатегорияНачисления);
КонецЕсли;
КонецЕсли;
КонецЦикла;
ДополнительныеНачисления = Новый Соответствие;
КатегорииОплатыДолейРКСН = КатегорииНачисленийОплатыДолейРКиСН();
Для Каждого КлючИЗначение Из КоллекторНачислений Цикл
Если КатегорииОплатыДолейРКСН.Найти(КлючИЗначение.Значение.КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено Тогда
ДанныеОсновногоВидаРасчета = ДополнительныеНачисления.Получить(КлючИЗначение.Значение.ОсновнойВидРасчета);
Если ДанныеОсновногоВидаРасчета = Неопределено Тогда
ДополнительныеНачисленияОсновногоВидаРасчета = Новый Структура;
ДополнительныеНачисленияОсновногоВидаРасчета.Вставить("ВидРасчетаДолиРК");
ДополнительныеНачисленияОсновногоВидаРасчета.Вставить("ВидРасчетаДолиСН");
ЗаполнитьСтруктуруДополнительнымиВидамиРасчета(ДополнительныеНачисленияОсновногоВидаРасчета, КлючИЗначение);
ДополнительныеНачисления.Вставить(КлючИЗначение.Значение.ОсновнойВидРасчета, ДополнительныеНачисленияОсновногоВидаРасчета);
Иначе
ЗаполнитьСтруктуруДополнительнымиВидамиРасчета(ДанныеОсновногоВидаРасчета, КлючИЗначение);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого КлючИЗначение Из КоллекторНачислений Цикл
НачислениеСсылка = КлючИЗначение.Ключ;
НачислениеОбъект = КлючИЗначение.Значение;
ЭтоНовоеНачисление = Не ЗначениеЗаполнено(НачислениеОбъект.Ссылка);
КатегорияНачисления = НачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени;
СвойстваНачисления = СвойстваНачислений[НачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени];
КатегорииКоллектора.Вставить(НачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени, Истина);
ОтборВытесняющих = СвойстваНачисления.ОтборВытесняющих;
Если ОтборВытесняющих <> Неопределено
И (Не НачислениеОбъект.НачисляетсяВЦеломЗаМесяц
Или НачислениеОбъект.ИспользоватьОперативныеПоказателиВЦеломЗаМесяц) Тогда
ОтборВытесняющих = ОбщегоНазначения.СкопироватьРекурсивно(СвойстваНачисления.ОтборВытесняющих);
Категория = ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени;
ОтборВытесняющих.Удалить("КатегорияНачисленияИлиНеоплаченногоВремени");
Если НачислениеОбъект.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеСверхНормы Тогда
Категория = ОбщегоНазначенияКлиентСервер.РазностьМассивов(Категория, КатегорииНеВытесняющиеОплатуСверхНормы);
КонецЕсли;
ВытесняющиеНачисления = ВидыРасчетаКоллектораПоКатегории(КоллекторНачислений, Категория, ОтборВытесняющих);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(
ВытесняющиеНачисления, НачисленияПоКатегории(Категория, ОтборВытесняющих), Истина);
Для Каждого ВытесняющееНачисление Из ВытесняющиеНачисления Цикл
Если НачислениеОбъект.ВытесняющиеВидыРасчета.Найти(ВытесняющееНачисление, "ВидРасчета") = Неопределено
И НачислениеСсылка <> ВытесняющееНачисление Тогда
НачислениеОбъект.ВытесняющиеВидыРасчета.Добавить().ВидРасчета = ВытесняющееНачисление;
КонецЕсли;
ДополнительныеНачисленияПоВидуРасчета = ДополнительныеНачисления.Получить(НачислениеСсылка);
Если ДополнительныеНачисленияПоВидуРасчета <> Неопределено Тогда
Для Каждого КлючИЗначение Из ДополнительныеНачисленияПоВидуРасчета Цикл
ДополнительноеНачислениеОбъект = ДополнительныеНачисленияПоВидуРасчета[КлючИЗначение.Ключ];
Если ДополнительноеНачислениеОбъект <> Неопределено Тогда
Если ДополнительноеНачислениеОбъект.ВытесняющиеВидыРасчета.Найти(ВытесняющееНачисление, "ВидРасчета") = Неопределено Тогда
ДополнительноеНачислениеОбъект.ВытесняющиеВидыРасчета.Добавить().ВидРасчета = ВытесняющееНачисление;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ОбновлятьЗависимостиПоБазе Тогда
ОтборБазовых = Неопределено;
Если НачислениеОбъект.ДополнительныеСвойства.Свойство("ОтборБазовых") Тогда
ОтборБазовых = НачислениеОбъект.ДополнительныеСвойства.ОтборБазовых;
КонецЕсли;
Если ОтборБазовых <> Неопределено И РасчетЗарплатыРасширенный.ЕстьПоказательВКоллекции(НачислениеОбъект.Показатели, "РасчетнаяБаза") Тогда
ОтборБазовых = ОбщегоНазначения.СкопироватьРекурсивно(ОтборБазовых);
Категория = ОтборБазовых.КатегорияНачисленияИлиНеоплаченногоВремени;
ОтборБазовых.Удалить("КатегорияНачисленияИлиНеоплаченногоВремени");
БазовыеНачисления = ВидыРасчетаКоллектораПоКатегории(КоллекторНачислений, Категория, ОтборБазовых);
Если ОтборБазовых.Свойство("ОтборПоДополнительнымСвойствамНачисления") Тогда
ОтборБазовых.Удалить("ОтборПоДополнительнымСвойствамНачисления");
КонецЕсли;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(
БазовыеНачисления, НачисленияПоКатегории(Категория, ОтборБазовых), Истина);
Для Каждого БазовоеНачисление Из БазовыеНачисления Цикл
Если НачислениеОбъект.БазовыеВидыРасчета.Найти(БазовоеНачисление, "ВидРасчета") = Неопределено
И НачислениеСсылка <> БазовоеНачисление Тогда
БазовоеНачислениеОбъект = КоллекторНачислений[БазовоеНачисление];
Если БазовоеНачислениеОбъект = Неопределено Тогда
БазовоеНачислениеОбъект = БазовоеНачисление.ПолучитьОбъект();
КоллекторНачислений.Вставить(БазовоеНачисление, БазовоеНачислениеОбъект);
КонецЕсли;
ЭтоНовоеБазовоеНачисление = Не ЗначениеЗаполнено(БазовоеНачислениеОбъект.Ссылка);
Если Не ЭтоНовоеНачисление И Не ЭтоНовоеБазовоеНачисление Тогда
Продолжить;
КонецЕсли;
Если Не ЭтоНовоеНачисление
И КатегорияНачисления <> Перечисления.КатегорииНачисленийИНеоплаченногоВремени.РайонныйКоэффициент
И КатегорияНачисления <> Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СевернаяНадбавка Тогда
Продолжить;
КонецЕсли;
Если БазовоеНачислениеОбъект.БазовыеВидыРасчета.Найти(НачислениеСсылка, "ВидРасчета") = Неопределено Тогда
НачислениеОбъект.БазовыеВидыРасчета.Добавить().ВидРасчета = БазовоеНачисление;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ОтборТолькоПочасоваяОплата = Новый Структура;
ОтборТолькоПочасоваяОплата.Вставить("ВидВремени", ЗарплатаКадрыРасширенныйКлиентСервер.ВидыОтработанногоВремени());
ОтборТолькоПочасоваяОплата.Вставить("УчетВремениВЧасах", Истина);
ОтборТолькоСПериодомДействия = Новый Структура("НачисляетсяВЦеломЗаМесяц", Ложь);
Для Каждого КлючИЗначение Из СвойстваНачислений Цикл
КатегорияНачисления = КлючИЗначение.Ключ;
СвойстваНачисления = КлючИЗначение.Значение;
Если Не ЗначениеЗаполнено(КатегорияНачисления) Тогда
Продолжить;
КонецЕсли;
ОтборВытесняющих = СвойстваНачисления.ОтборВытесняющих;
Если ОтборВытесняющих <> Неопределено Тогда
ОтборВытесняющих = ОбщегоНазначения.СкопироватьРекурсивно(СвойстваНачисления.ОтборВытесняющих);
Категория = ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени;
ОтборВытесняющих.Удалить("КатегорияНачисленияИлиНеоплаченногоВремени");
ВытесняющиеНачисления = ВидыРасчетаКоллектораПоКатегории(КоллекторНачислений, Категория, ОтборВытесняющих);
Если ВытесняющиеНачисления.Количество() > 0 Тогда
ВытесняемыеНачисления = ВидыРасчетаКоллектораПоКатегории(КоллекторНачислений, КатегорияНачисления, ОтборТолькоСПериодомДействия);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ВытесняемыеНачисления,
НачисленияПоКатегории(КатегорияНачисления, ОтборТолькоСПериодомДействия), Истина);
Для Каждого ВытесняемоеНачисление Из ВытесняемыеНачисления Цикл
ВытесняемоеНачислениеОбъект = КоллекторНачислений[ВытесняемоеНачисление];
ДобавленоВКоллектор = Ложь;
Если ВытесняемоеНачислениеОбъект = Неопределено Тогда
ВытесняемоеНачислениеОбъект = ВытесняемоеНачисление.ПолучитьОбъект();
КоллекторНачислений.Вставить(ВытесняемоеНачисление, ВытесняемоеНачислениеОбъект);
ДобавленоВКоллектор = Истина;
КонецЕсли;
Обновлено = Ложь;
Для Каждого ВытесняющееНачисление Из ВытесняющиеНачисления Цикл
ВытесняющееНачислениеОбъект = КоллекторНачислений[ВытесняющееНачисление];
Если КатегорииНеВытесняющиеОплатуСверхНормы.Найти(ВытесняющееНачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено Тогда
Если ВытесняемоеНачислениеОбъект.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеСверхНормы Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если ВытесняемоеНачислениеОбъект.ВытесняющиеВидыРасчета.Найти(ВытесняющееНачисление, "ВидРасчета") = Неопределено
И ВытесняемоеНачисление <> ВытесняющееНачисление Тогда
ВытесняемоеНачислениеОбъект.ВытесняющиеВидыРасчета.Добавить().ВидРасчета = ВытесняющееНачисление;
Обновлено = Истина;
КонецЕсли;
КонецЦикла;
Если ДобавленоВКоллектор И Не Обновлено Тогда
КоллекторНачислений.Удалить(ВытесняемоеНачисление);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ОтборБазовых = СвойстваНачисления.ОтборБазовых;
Если ОбновлятьЗависимостиПоБазе И ОтборБазовых <> Неопределено Тогда
ОтборБазовых = ОбщегоНазначения.СкопироватьРекурсивно(ОтборБазовых);
Категория = ОтборБазовых.КатегорияНачисленияИлиНеоплаченногоВремени;
ОтборБазовых.Удалить("КатегорияНачисленияИлиНеоплаченногоВремени");
БазовыеНачисления = ВидыРасчетаКоллектораПоКатегории(КоллекторНачислений, Категория, ОтборБазовых);
Если БазовыеНачисления.Количество() > 0 Тогда
ЗависимыеНачисления = ВидыРасчетаКоллектораПоКатегории(КоллекторНачислений, КатегорияНачисления);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ЗависимыеНачисления,
НачисленияПоКатегории(КатегорияНачисления), Истина);
Для Каждого ЗависимоеНачисление Из ЗависимыеНачисления Цикл
ЗависимоеНачислениеОбъект = КоллекторНачислений[ЗависимоеНачисление];
ДобавленоВКоллектор = Ложь;
Если ЗависимоеНачислениеОбъект = Неопределено Тогда
ЗависимоеНачислениеОбъект = ЗависимоеНачисление.ПолучитьОбъект();
КоллекторНачислений.Вставить(ЗависимоеНачисление, ЗависимоеНачислениеОбъект);
ДобавленоВКоллектор = Истина;
КонецЕсли;
ЭтоНовоеЗависимоеНачисление = Не ЗначениеЗаполнено(ЗависимоеНачислениеОбъект.Ссылка);
Обновлено = Ложь;
Если РасчетЗарплатыРасширенный.ЕстьПоказательВКоллекции(ЗависимоеНачислениеОбъект.Показатели, "РасчетнаяБаза") Тогда
Для Каждого БазовоеНачисление Из БазовыеНачисления Цикл
Если ЗависимоеНачислениеОбъект.БазовыеВидыРасчета.Найти(БазовоеНачисление, "ВидРасчета") = Неопределено
И ЗависимоеНачисление <> БазовоеНачисление Тогда
БазовоеНачислениеОбъект = КоллекторНачислений[БазовоеНачисление];
Если БазовоеНачислениеОбъект = Неопределено Тогда
БазовоеНачислениеОбъект = БазовоеНачисление.ПолучитьОбъект();
КоллекторНачислений.Вставить(БазовоеНачисление, БазовоеНачислениеОбъект);
КонецЕсли;
ЭтоНовоеБазовоеНачисление = Не ЗначениеЗаполнено(БазовоеНачислениеОбъект.Ссылка);
Если Не ЭтоНовоеЗависимоеНачисление И Не ЭтоНовоеБазовоеНачисление Тогда
Продолжить;
КонецЕсли;
Если Не ЭтоНовоеЗависимоеНачисление
И КатегорияНачисления <> Перечисления.КатегорииНачисленийИНеоплаченногоВремени.РайонныйКоэффициент
И КатегорияНачисления <> Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СевернаяНадбавка Тогда
Продолжить;
КонецЕсли;
Если БазовоеНачислениеОбъект.БазовыеВидыРасчета.Найти(ЗависимоеНачисление, "ВидРасчета") = Неопределено Тогда
ЗависимоеНачислениеОбъект.БазовыеВидыРасчета.Добавить().ВидРасчета = БазовоеНачисление;
Обновлено = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ДобавленоВКоллектор И Не Обновлено Тогда
КоллекторНачислений.Удалить(ЗависимоеНачисление);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ОтборВедущих = СвойстваНачисления.ОтборВедущих;
Если ОтборВедущих <> Неопределено Тогда
ОтборВедущих = ОбщегоНазначения.СкопироватьРекурсивно(СвойстваНачисления.ОтборВедущих);
ВедущиеНачисления = ВидыРасчетаКоллектораПоОтбору(КоллекторНачислений, ОтборВедущих);
ОтборПоОсновномуВидуРасчета = Новый Структура("ОсновнойВидРасчета", ВедущиеНачисления);
ВедущиеНачисленияПоОсновномуВидуРасчета = ВидыРасчетаКоллектораПоОтбору(КоллекторНачислений, ОтборПоОсновномуВидуРасчета);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ВедущиеНачисления, ВедущиеНачисленияПоОсновномуВидуРасчета, Истина);
Если ВедущиеНачисления.Количество() > 0 Тогда
ВедомыеНачисления = ВидыРасчетаКоллектораПоКатегории(КоллекторНачислений, КатегорияНачисления, ОтборТолькоПочасоваяОплата);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ВедомыеНачисления,
НачисленияПоКатегории(КатегорияНачисления, ОтборТолькоПочасоваяОплата), Истина);
Для Каждого ВедомоеНачисление Из ВедомыеНачисления Цикл
ВедомоеНачислениеОбъект = КоллекторНачислений[ВедомоеНачисление];
ДобавленоВКоллектор = Ложь;
Если ВедомоеНачислениеОбъект = Неопределено Тогда
ВедомоеНачислениеОбъект = ВедомоеНачисление.ПолучитьОбъект();
КоллекторНачислений.Вставить(ВедомоеНачисление, ВедомоеНачислениеОбъект);
ДобавленоВКоллектор = Истина;
КонецЕсли;
Обновлено = Ложь;
Для Каждого ВедущееНачисление Из ВедущиеНачисления Цикл
Если ВедомоеНачислениеОбъект.ВедущиеВидыРасчета.Найти(ВедущееНачисление, "ВидРасчета") = Неопределено
И ВедомоеНачисление <> ВедущееНачисление Тогда
ВедомоеНачислениеОбъект.ВедущиеВидыРасчета.Добавить().ВидРасчета = ВедущееНачисление;
Обновлено = Истина;
КонецЕсли;
КонецЦикла;
Если ДобавленоВКоллектор И Не Обновлено Тогда
КоллекторНачислений.Удалить(ВедомоеНачисление);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция ВидРасчетаСоответствуетОтбору(ВидРасчетаОбъект, КатегорияОтбор, Отбор = Неопределено) Экспорт
КатегорияВидаРасчета = КатегорияВидаРасчета(ВидРасчетаОбъект);
Если ТипЗнч(КатегорияОтбор) = Тип("Массив") Тогда
Если КатегорияОтбор.Найти(КатегорияВидаРасчета) = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Иначе
Если КатегорияВидаРасчета <> КатегорияОтбор Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Если Отбор <> Неопределено И Отбор.Количество() > 0 Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.РасчетДенежногоДовольствия") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("РасчетДенежногоДовольствия");
Если Не Модуль.ВидРасчетаСоответствуетОтбору(ВидРасчетаОбъект, Отбор) Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Для Каждого ЭлементОтбора Из Отбор Цикл
ПолеОтбора = ЭлементОтбора.Ключ;
Если ПолеОтбора = "ОтборПоДополнительнымСвойствамНачисления" Тогда
Продолжить;
КонецЕсли;
ЗначениеОтбора = ЭлементОтбора.Значение;
Если ТипЗнч(ЗначениеОтбора) = Тип("Массив") Тогда
Если ЗначениеОтбора.Найти(ВидРасчетаОбъект[ПолеОтбора]) = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Иначе
Если ВидРасчетаОбъект[ПолеОтбора] <> ЗначениеОтбора Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат Истина;
КонецФункции
Процедура ОбновитьНачисленияПростоев() Экспорт
СоздатьНачисленияПростоев();
КонецПроцедуры
Процедура СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений = Неопределено, СвойстваНачислений = Неопределено, СозданиеРКСН = Неопределено)
Если КоллекторНачислений = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Начисления = Новый Массив;
МассивОсновныхВидовРасчета = Новый Массив;
КатегорииОплатПоСреднему = КатегорииНачисленийОплатПоСреднему();
СписокСвойств = НаследуемыеСвойстваОсновногоНачисления();
ВостребованностьРКиСН = РасчетЗарплаты.ВостребованностьРКиСН();
Для Каждого КлючИЗначение Из КоллекторНачислений Цикл
Если КатегорииОплатПоСреднему.Найти(КлючИЗначение.Значение.КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено И ЗначениеЗаполнено(КлючИЗначение.Значение.КодДоходаНДФЛ) Тогда
ОсновнойВидРасчетаОбъект = КлючИЗначение.Значение;
Если Не ЗначениеЗаполнено(ОсновнойВидРасчетаОбъект.Ссылка) Тогда
ФормулаВидаРасчета = СтрЗаменить(ОсновнойВидРасчетаОбъект.ФормулаРасчета, " ", "");
ФормулаВидаРасчетаПоКатегории = СтрЗаменить(ФормулаВидаРасчетаПоКатегории(СвойстваНачислений, ОсновнойВидРасчетаОбъект), " ", "");
Если СтрСравнить(ФормулаВидаРасчета, ФормулаВидаРасчетаПоКатегории) <> 0 Тогда
Продолжить;
КонецЕсли;
Если ВостребованностьРКиСН.РайонныйКоэффициент Тогда
Описание = ОписаниеДолиРКСН(Истина, СвойстваНачислений, ОсновнойВидРасчетаОбъект, КлючИЗначение.Ключ);
ПланыВидовРасчета.Начисления.СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание, Ложь, Ложь);
КонецЕсли;
Если ВостребованностьРКиСН.СевернаяНадбавка Тогда
Описание = ОписаниеДолиРКСН(Ложь, СвойстваНачислений, ОсновнойВидРасчетаОбъект, КлючИЗначение.Ключ);
ПланыВидовРасчета.Начисления.СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание, Ложь, Ложь);
КонецЕсли;
Иначе
МассивОсновныхВидовРасчета.Добавить(ОсновнойВидРасчетаОбъект.Ссылка);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если СозданиеРКСН <> Неопределено Или МассивОсновныхВидовРасчета.Количество() > 0 Тогда
ЭтоСозданиеРК = ?(СозданиеРКСН <> Неопределено, СозданиеРКСН.РайонныйКоэффициент, Ложь);
ЭтоСозданиеСН = ?(СозданиеРКСН <> Неопределено, СозданиеРКСН.СевернаяНадбавка, Ложь);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Начисления.Ссылка КАК ДополнительныйВидРасчета,
| Начисления.ОсновнойВидРасчета КАК ОсновнойВидРасчета
|ПОМЕСТИТЬ ВТДополнительныеВидыРасчетаРК
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени В(&КатегорииНачисленийРК)
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК ДополнительныйВидРасчета,
| Начисления.ОсновнойВидРасчета КАК ОсновнойВидРасчета
|ПОМЕСТИТЬ ВТДополнительныеВидыРасчетаСН
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени В(&КатегорииНачисленийСН)
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК ОсновнойВидРасчета,
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени КАК КатегорияНачисления,
| ВТДополнительныеВидыРасчетаРК.ДополнительныйВидРасчета КАК ВидРасчетаДолиРК,
| ВТДополнительныеВидыРасчетаСН.ДополнительныйВидРасчета КАК ВидРасчетаДолиСН,
| Начисления.ВидВремени КАК ВидВремени,
| Начисления.ВидОтпуска КАК ВидОтпуска,
| Начисления.ОбозначениеВТабелеУчетаРабочегоВремени КАК ОбозначениеВТабелеУчетаРабочегоВремени
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДополнительныеВидыРасчетаРК КАК ВТДополнительныеВидыРасчетаРК
| ПО Начисления.Ссылка = ВТДополнительныеВидыРасчетаРК.ОсновнойВидРасчета
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДополнительныеВидыРасчетаСН КАК ВТДополнительныеВидыРасчетаСН
| ПО Начисления.Ссылка = ВТДополнительныеВидыРасчетаСН.ОсновнойВидРасчета
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени В(&КатегорииОплатПоСреднему)
| И Начисления.КодДоходаНДФЛ <> ЗНАЧЕНИЕ(Справочник.ВидыДоходовНДФЛ.ПустаяСсылка)
| И НЕ Начисления.ПометкаУдаления
| И &Отбор";
ТекстУсловия = ?(ЭтоСозданиеРК Или ЭтоСозданиеСН, "Истина", "Начисления.Ссылка В (&ОсновныеВидыРасчета)");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Отбор", ТекстУсловия);
Запрос.УстановитьПараметр("КатегорииОплатПоСреднему", КатегорииОплатПоСреднему);
Запрос.УстановитьПараметр("ОсновныеВидыРасчета", МассивОсновныхВидовРасчета);
Запрос.УстановитьПараметр("КатегорииНачисленийРК", ПланыВидовРасчета.Начисления.КатегорииНачисленийОплатыДолиРК());
Запрос.УстановитьПараметр("КатегорииНачисленийСН", ПланыВидовРасчета.Начисления.КатегорииНачисленийОплатыДолиСН());
ДанныеОсновныхВидовРасчета = Запрос.Выполнить().Выгрузить();
ЗначенияСвойствОсновныхВидовРасчета = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(ДанныеОсновныхВидовРасчета.ВыгрузитьКолонку("ОсновнойВидРасчета"), СписокСвойств);
Для Каждого Стр Из ДанныеОсновныхВидовРасчета Цикл
ДанныеОсновногоВидаРасчета = КоллекторНачислений.Получить(Стр.ОсновнойВидРасчета);
Если ДанныеОсновногоВидаРасчета = Неопределено Тогда
ДанныеОсновногоВидаРасчета = ЗначенияСвойствОсновныхВидовРасчета.Получить(Стр.ОсновнойВидРасчета);
КонецЕсли;
ФормулаВидаРасчета = СтрЗаменить(ДанныеОсновногоВидаРасчета.ФормулаРасчета, " ", "");
ФормулаВидаРасчетаПоКатегории = СтрЗаменить(ФормулаВидаРасчетаПоКатегории(СвойстваНачислений, ДанныеОсновногоВидаРасчета), " ", "");
Если СтрСравнить(ФормулаВидаРасчета, ФормулаВидаРасчетаПоКатегории) <> 0 Тогда
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(Стр.ВидРасчетаДолиРК) Тогда
КоллекторНачислений.Вставить(Стр.ВидРасчетаДолиРК, Стр.ВидРасчетаДолиРК.ПолучитьОбъект());
Начисления.Добавить(Стр.ВидРасчетаДолиРК);
ИначеЕсли ЭтоСозданиеРК Тогда
Описание = ОписаниеДолиРКСН(Истина, СвойстваНачислений, ДанныеОсновногоВидаРасчета, Стр.ОсновнойВидРасчета);
ПланыВидовРасчета.Начисления.СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание, Ложь, Ложь);
КонецЕсли;
Если ЗначениеЗаполнено(Стр.ВидРасчетаДолиСН) Тогда
КоллекторНачислений.Вставить(Стр.ВидРасчетаДолиСН, Стр.ВидРасчетаДолиСН.ПолучитьОбъект());
Начисления.Добавить(Стр.ВидРасчетаДолиСН);
ИначеЕсли ЭтоСозданиеСН Тогда
Описание = ОписаниеДолиРКСН(Ложь, СвойстваНачислений, ДанныеОсновногоВидаРасчета, Стр.ОсновнойВидРасчета);
ПланыВидовРасчета.Начисления.СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание, Ложь, Ложь);
КонецЕсли;
УстановитьИспользованиеНачислений(КоллекторНачислений, Начисления, Не ДанныеОсновногоВидаРасчета.ВАрхиве);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
Функция ВидыДокументовНачислений() Экспорт
ВидыДокументовНачислений = Новый Соответствие;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.ВидДокументаНачисления КАК ВидДокументаНачисления,
| Начисления.Ссылка КАК Начисление
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.СпособВыполненияНачисления = ЗНАЧЕНИЕ(Перечисление.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета)
|
|УПОРЯДОЧИТЬ ПО
| ВидДокументаНачисления";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("ВидДокументаНачисления") Цикл
ВидДокументаНачисления = Выборка.ВидДокументаНачисления;
Начисления = Новый Массив;
Пока Выборка.Следующий() Цикл
Начисления.Добавить(Выборка.Начисление);
КонецЦикла;
ВидыДокументовНачислений.Вставить(ВидДокументаНачисления, Начисления);
КонецЦикла;
Возврат ВидыДокументовНачислений;
КонецФункции
Функция КатегорииОплатыБольничного() Экспорт
Категории = Новый Массив;
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛиста);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛистаЗаСчетРаботодателя);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоНесчастныйСлучайНаПроизводстве);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоПрофзаболевание);
Возврат Категории;
КонецФункции
Функция КатегорииПособийПоУходуЗаРебенком() Экспорт
Категории = Новый Массив;
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛет);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоТрехЛет);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛетВоеннослужащим);
Возврат Категории;
КонецФункции
Функция КатегорииОтпускаПоБеременностиИРодам() Экспорт
Категории = Новый Массив;
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодам);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамВоеннослужащего);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамБезОплаты);
Возврат Категории;
КонецФункции
Функция КатегорииМатериальнойПомощи() Экспорт
Категории = Новый Массив;
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеВоеннослужащего);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеГосслужащего);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощь);
Возврат Категории;
КонецФункции
Функция КатегорииПрогула() Экспорт
КатегорииНачислений = Новый Массив;
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прогул);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПростойПоВинеРаботника);
Возврат КатегорииНачислений;
КонецФункции
Функция КатегорииОтгула() Экспорт
КатегорииНачислений = Новый Массив;
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Отгул);
Возврат КатегорииНачислений;
КонецФункции
Функция КатегорииНеоплачиваемыхОтсутствий() Экспорт
КатегорииПоСвойствам = КатегорииПоСвойствамНачислений();
Возврат КатегорииПоСвойствам.НеоплачиваемоеВремя;
КонецФункции
Функция КатегорииНадбавокПоБазе() Экспорт
Категории = Новый Массив;
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.РайонныйКоэффициент);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СевернаяНадбавка);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НадбавкаЗаВредность);
Возврат Категории;
КонецФункции
Функция КатегорияСтатистическогоНаблюдения57Т(КатегорияНачисленияИлиНеоплаченногоВремени) Экспорт
Если КатегорииНачисленийСтатистическогоУчетаТ57ТарифногоЗаработка().Найти(КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено Тогда
Возврат Перечисления.КатегорииСтатистическогоНаблюдения57Т.ТарифныйЗаработок;
ИначеЕсли КатегорииНачисленийСтатистическогоУчетаТ57ВыплатПоРайонномуРегулированию().Найти(КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено Тогда
Возврат Перечисления.КатегорииСтатистическогоНаблюдения57Т.ВыплатыПоРайонномуРегулированию;
ИначеЕсли КатегорииНачисленийСтатистическогоУчетаТ57ДругихВыплат().Найти(КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено Тогда
Возврат Перечисления.КатегорииСтатистическогоНаблюдения57Т.ДругиеВыплаты;
КонецЕсли;
Возврат Перечисления.КатегорииСтатистическогоНаблюдения57Т.ПустаяСсылка();
КонецФункции
Функция ВидыДоходовИсполнительногоПроизводства(Период) Экспорт
ИмяРеквизита = ?(ВидыДоходовИсполнительногоПроизводстваВызовСервера.ВступилиВСилуИзменения353ФЗ(Период),
"ВидДоходаИсполнительногоПроизводства2022",
"ВидДоходаИсполнительногоПроизводства");
Возврат УчетНачисленнойЗарплаты.ВидыДоходовИсполнительногоПроизводстваОбъектов(
Метаданные.ПланыВидовРасчета.Начисления, ИмяРеквизита);
КонецФункции
Функция ГодовыеПремии() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияСреднийЗаработокОбщий.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления.СреднийЗаработокОбщий КАК НачисленияСреднийЗаработокОбщий
|ГДЕ
| НачисленияСреднийЗаработокОбщий.Значение В (ЗНАЧЕНИЕ(Перечисление.УчетНачисленийВСреднемЗаработкеОбщий.ПремияГодоваяФиксированнойСуммой), ЗНАЧЕНИЕ(Перечисление.УчетНачисленийВСреднемЗаработкеОбщий.ПремияГодоваяПроцентом))";
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
Функция ПоказателиНачислений(ОтборНачислений) Экспорт
ПоказателиНачислений = Новый Соответствие;
ПоляСвойствПоказателя = "Показатель, ЗапрашиватьПриВводе, ОперативныйПоказательСотрудника,
|ОперативныйПоказательОрганизации, ОперативныйПоказательПодразделения, ИдентификаторПоказателя,
|ОтображатьВДокументахНачисления, ОпределяющийПоказатель, ПериодическийПоказательСотрудника,
|ПериодическийПоказательОрганизации, ПериодическийПоказательПодразделения, РазовыйПоказательСотрудника,
|РазовыйПоказательОрганизации, РазовыйПоказательПодразделения,СчитатьКакПремиюЗаДИДОНаНачалоМесяца";
СписокПоказателей = Новый Массив;
СписокПоказателей.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.Оклад"));
СписокПоказателей.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОкладПоДолжности"));
СписокПоказателей.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОкладЗаКлассныйЧин"));
СписокПоказателей.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОкладПоВоинскомуЗванию"));
СписокПоказателей.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОкладПоСпециальномуЗванию"));
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
РасчетЗарплаты.СоздатьВТДополнительныеСвойстваНачислений(Запрос.МенеджерВременныхТаблиц);
Запрос.УстановитьПараметр("ПоказателиНаНачалоМесяца", СписокПоказателей);
Запрос.УстановитьПараметр("ОтборНачислений", ОтборНачислений);
Запрос.Текст =
"ВЫБРАТЬ
| НачисленияПоказатели.Ссылка КАК Ссылка,
| НачисленияПоказатели.Показатель КАК Показатель,
| НачисленияПоказатели.ЗапрашиватьПриВводе КАК ЗапрашиватьПриВводе,
| НачисленияПоказатели.Показатель.ОперативныйПоказательСотрудника КАК ОперативныйПоказательСотрудника,
| НачисленияПоказатели.Показатель.ОперативныйПоказательОрганизации КАК ОперативныйПоказательОрганизации,
| НачисленияПоказатели.Показатель.ОперативныйПоказательПодразделения КАК ОперативныйПоказательПодразделения,
| НачисленияПоказатели.Показатель.Идентификатор КАК ИдентификаторПоказателя,
| НачисленияПоказатели.Показатель.ОтображатьВДокументахНачисления КАК ОтображатьВДокументахНачисления,
| НачисленияПоказатели.ОпределяющийПоказатель КАК ОпределяющийПоказатель,
| НачисленияПоказатели.Показатель.ПериодическийПоказательСотрудника КАК ПериодическийПоказательСотрудника,
| НачисленияПоказатели.Показатель.ПериодическийПоказательОрганизации КАК ПериодическийПоказательОрганизации,
| НачисленияПоказатели.Показатель.ПериодическийПоказательПодразделения КАК ПериодическийПоказательПодразделения,
| НачисленияПоказатели.Показатель.РазовыйПоказательСотрудника КАК РазовыйПоказательСотрудника,
| НачисленияПоказатели.Показатель.РазовыйПоказательОрганизации КАК РазовыйПоказательОрганизации,
| НачисленияПоказатели.Показатель.РазовыйПоказательПодразделения КАК РазовыйПоказательПодразделения,
| ВЫБОР
| КОГДА ЕСТЬNULL(СвойстваНачислений.ЯвляетсяПремиейДИДОНаНачалоМесяца, ЛОЖЬ)
| И НачисленияПоказатели.Показатель В(&ПоказателиНаНачалоМесяца)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СчитатьКакПремиюЗаДИДОНаНачалоМесяца
|ИЗ
| ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДополнительныеСвойстваНачислений КАК СвойстваНачислений
| ПО (СвойстваНачислений.Начисление = НачисленияПоказатели.Ссылка)
|ГДЕ
| НачисленияПоказатели.Ссылка В(&ОтборНачислений)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("Ссылка") Цикл
Показатели = Новый Массив;
ПоказателиНачислений.Вставить(Выборка.Ссылка, Показатели);
Пока Выборка.Следующий() Цикл
СвойстваПоказателя = Новый Структура(ПоляСвойствПоказателя);
ЗаполнитьЗначенияСвойств(СвойстваПоказателя, Выборка);
Показатели.Добавить(СвойстваПоказателя);
КонецЦикла;
КонецЦикла;
Возврат ПоказателиНачислений;
КонецФункции
Функция ТребованияНачисленийТаблица(НачисленияОтбор) Экспорт
ТребованияНачислений = Новый Соответствие();
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("НачисленияОтбор", НачисленияОтбор);
Запрос.УстановитьПараметр("ПоказателиТерриторийУсловийТруда", Справочники.ПоказателиРасчетаЗарплаты.ПоказателиПоТерриториямУсловиямТруда());
Запрос.УстановитьПараметр("ПоказательРайонныйКоэффициент", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РайонныйКоэффициент"));
Запрос.УстановитьПараметр("ПоказательНадбавкаЗаВредность", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ПроцентНадбавкиЗаВредность"));
Запрос.УстановитьПараметр("КалендарныеДни", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КалендарныеДни"));
Запрос.УстановитьПараметр("КалендарныеДниМесяца", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КалендарныеДниМесяца"));
Запрос.УстановитьПараметр("НормаДней", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НормаДней"));
Запрос.УстановитьПараметр("НормаДнейЧасов", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НормаДнейЧасов"));
Запрос.УстановитьПараметр("НормаВремениВДнях", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НормаВремениВДнях"));
Запрос.УстановитьПараметр("НормаВремениВЧасах", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НормаВремениВЧасах"));
Запрос.УстановитьПараметр("ВремяВДнях", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ВремяВДнях"));
Запрос.УстановитьПараметр("ВремяВДняхЧасах", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ВремяВДняхЧасах"));
Запрос.УстановитьПараметр("ВремяВЧасах", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ВремяВЧасах"));
Запрос.УстановитьПараметр("ОтработаноСверхурочно", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноСверхурочно"));
Запрос.УстановитьПараметр("ОтработаноСверхурочноВПределах2Часов", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноСверхурочноВПределах2Часов"));
Запрос.УстановитьПараметр("КалендарныеДниБезПраздников", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КалендарныеДниБезПраздников"));
Запрос.УстановитьПараметр("ОтработаноДней", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноДней"));
Запрос.УстановитьПараметр("ОтработаноЧасов", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноЧасов"));
Запрос.УстановитьПараметр("КоличествоДнейОтпуска", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КоличествоДнейОтпуска"));
Запрос.УстановитьПараметр("СдельныйЗаработок", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СдельныйЗаработок"));
Запрос.УстановитьПараметр("КоэффициентИндексацииСреднегоЗаработка", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КоэффициентИндексацииСреднегоЗаработка"));
Запрос.УстановитьПараметр("КоэффициентИндексацииСохраняемогоДенежногоСодержания", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КоэффициентИндексацииСохраняемогоДенежногоСодержания"));
Запрос.УстановитьПараметр("КоэффициентИндексацииСохраняемогоДенежногоДовольствия", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КоэффициентИндексацииСохраняемогоДенежногоДовольствия"));
Запрос.УстановитьПараметр("ДоляНеполногоРабочегоВремени", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ДоляНеполногоРабочегоВремени"));
Запрос.УстановитьПараметр("СтоимостьЧаса", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьЧаса"));
Запрос.УстановитьПараметр("СтоимостьДня", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьДня"));
Запрос.УстановитьПараметр("СтоимостьДняЧаса", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьДняЧаса"));
Запрос.УстановитьПараметр("СтоимостьДняЧасаСУчетомРазовыхНачислений", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьДняЧасаСУчетомРазовыхНачислений"));
Запрос.УстановитьПараметр("РазмерПособияДоТрехЛет", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РазмерПособияПоУходуЗаРебенкомДоТрехЛет"));
Запрос.УстановитьПараметр("ПроцентСевернойНадбавки", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СевернаяНадбавка"));
Запрос.УстановитьПараметр("РайонныйКоэффициентРФ", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РайонныйКоэффициентРФ"));
Запрос.УстановитьПараметр("ПроцентДоплатыЗаНочные", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ПроцентДоплатыЗаРаботуВНочноеВремя"));
Запрос.УстановитьПараметр("ПроцентДоплатыЗаВечерние", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ПроцентДоплатыЗаРаботуВВечернееВремя"));
Запрос.УстановитьПараметр("БазовыйТарифГруппы", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.БазовыйТарифГруппы"));
Запрос.УстановитьПараметр("ОтработаноСмен", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноСмен"));
Запрос.УстановитьПараметр("Праздники", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Праздники"));
Запрос.УстановитьПараметр("РабочееВремя", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя"));
Запрос.УстановитьПараметр("КатегорииНачисленияРассчитываемыхНаДатуНачала", КатегорииНачисленияРассчитываемыхНаДатуНачала());
Запрос.УстановитьПараметр("КатегорииНачисленийОплатыДолейРКиСН", КатегорииНачисленийОплатыДолейРКиСН());
Запрос.УстановитьПараметр("КатегорииРазбиваемыхНачислений", КатегорииРазбиваемыхНачислений());
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПериодическийПоказательСотрудника, ЛОЖЬ)) КАК ТребуютсяЗначенияПериодическихПоказателейСотрудников,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПериодическийПоказательОрганизации, ЛОЖЬ)) КАК ТребуютсяЗначенияПериодическихПоказателейОрганизаций,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПериодическийПоказательПодразделения, ЛОЖЬ)) КАК ТребуютсяЗначенияПериодическихПоказателейПодразделений,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.РазовыйПоказательСотрудника, ЛОЖЬ)) КАК ТребуютсяЗначенияРазовыхПоказателейСотрудников,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.РазовыйПоказательОрганизации, ЛОЖЬ)) КАК ТребуютсяЗначенияРазовыхПоказателейОрганизаций,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.РазовыйПоказательПодразделения, ЛОЖЬ)) КАК ТребуютсяЗначенияРазовыхПоказателейПодразделений,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ОперативныйПоказательСотрудника, ЛОЖЬ)) КАК ТребуютсяЗначенияОперативныхПоказателейСотрудников,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ОперативныйПоказательОрганизации, ЛОЖЬ)) КАК ТребуютсяЗначенияОперативныхПоказателейОрганизаций,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ОперативныйПоказательПодразделения, ЛОЖЬ)) КАК ТребуютсяЗначенияОперативныхПоказателейПодразделений,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.УчитыватьИзмененияВремяВЧасах, ЛОЖЬ)) КАК УчитыватьИзмененияВремяВЧасах,
| МАКСИМУМ(ПоказателиРасчета.ТребуютсяФиксированныеСуммы) КАК ТребуютсяФиксированныеСуммы,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.УчетВремениВДняхЧасах, ЛОЖЬ)) КАК ТребуютсяВремяВДняхЧасах,
| МАКСИМУМ(ВЫБОР
| КОГДА ПоказателиРасчета.СпособВыполненияНачисления = ЗНАЧЕНИЕ(Перечисление.СпособыВыполненияНачислений.ЗаПраздничныеДниПриОкончательномРасчете)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ) КАК ТребуютсяЗаПраздничныеДниПриОкончательномРасчете,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательКалендарныеДни, ЛОЖЬ)) КАК ТребуетсяПоказательКалендарныеДни,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательРайонныйКоэффициент, ЛОЖЬ)) КАК ТребуетсяПоказательРайонныйКоэффициент,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательНадбавкаЗаВредность, ЛОЖЬ)) КАК ТребуетсяПоказательНадбавкаЗаВредность,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательНормаВремени, ЛОЖЬ)) КАК ТребуетсяПоказательНормаВремени,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательНормаДнейЧасов, ЛОЖЬ)) КАК ТребуетсяПоказательНормаДнейЧасов,
| МАКСИМУМ(ПоказателиРасчета.ПоказательРабочегоВремени) КАК ТребуетсяПоказательРабочегоВремени,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательОтработаноСверхурочно, ЛОЖЬ)) КАК ТребуетсяПоказательОтработаноСверхурочно,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательКалендарныеДниБезПраздников, ЛОЖЬ)) КАК ТребуетсяПоказательКалендарныеДниБезПраздников,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательОтработаноВсего, ЛОЖЬ)) КАК ТребуетсяПоказательОтработаноВсего,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательКоличествоДнейОтпуска, ЛОЖЬ)) КАК ТребуетсяПоказательКоличествоДнейОтпуска,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательСдельныйЗаработок, ЛОЖЬ)) КАК ТребуетсяПоказательСдельныйЗаработок,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательКоэффициентИндексации, ЛОЖЬ)) КАК ТребуетсяПоказательКоэффициентИндексации,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательКоэффициентИндексацииСреднегоЗаработка, ЛОЖЬ)) КАК ТребуетсяПоказательКоэффициентИндексацииСреднегоЗаработка,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательКоэффициентИндексацииСохраняемогоДенежногоСодержания, ЛОЖЬ)) КАК ТребуетсяПоказательКоэффициентИндексацииСохраняемогоДенежногоСодержания,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательКоэффициентИндексацииСохраняемогоДенежногоДовольствия, ЛОЖЬ)) КАК ТребуетсяПоказательКоэффициентИндексацииСохраняемогоДенежногоДовольствия,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательДоляНеполногоРабочегоВремени, ЛОЖЬ)) КАК ТребуетсяПоказательДоляНеполногоРабочегоВремени,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательСтоимостьЧаса, ЛОЖЬ)) КАК ТребуетсяПоказательСтоимостьЧаса,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательРазмерПособияДоТрехЛет, ЛОЖЬ)) КАК ТребуетсяПоказательРазмерПособияДоТрехЛет,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательПроцентСевернойНадбавки, ЛОЖЬ)) КАК ТребуетсяПоказательПроцентСевернойНадбавки,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательРайонныйКоэффициентРФ, ЛОЖЬ)) КАК ТребуетсяПоказательРайонныйКоэффициентРФ,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательПроцентДоплатыЗаНочные, ЛОЖЬ)) КАК ТребуетсяПоказательПроцентДоплатыЗаНочные,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательПроцентДоплатыЗаВечерние, ЛОЖЬ)) КАК ТребуетсяПоказательПроцентДоплатыЗаВечерние,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательБазовыйТарифГруппы, ЛОЖЬ)) КАК ТребуетсяПоказательБазовыйТарифГруппы,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательЧисловойЗависящийОтСтажа, ЛОЖЬ)) КАК ТребуетсяПоказательЧисловойЗависящийОтСтажа,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.ПоказательОтработаноСмен, ЛОЖЬ)) КАК ТребуетсяПоказательОтработаноСмен,
| МАКСИМУМ(ВЫБОР
| КОГДА ЕСТЬNULL(ПоказателиРасчета.ТребуетсяРасчетВремени, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ПоказателиРасчета.ТребуетсяРасчетНормыВремени, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ПоказателиРасчета.ТребуетсяРасчетКалендарныхДнейБезПраздников, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ПоказателиРасчета.ПоказательКоличествоДнейОтпуска, ЛОЖЬ)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ) КАК ТребуетсяОбщийГрафик,
| ПоказателиРасчета.ВидРасчета КАК ВидРасчета,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.УчитыватьИзмененияВкладаВФОТ, ЛОЖЬ)) КАК УчитыватьИзмененияВкладаВФОТ,
| МАКСИМУМ(ЕСТЬNULL(ПоказателиРасчета.УчитыватьУсловийОплатыПособия, ЛОЖЬ)) КАК УчитыватьУсловийОплатыПособия,
| МАКСИМУМ(ИСТИНА) КАК ТребуютсяКадровыеДанные,
| ИСТИНА КАК ТребуютсяВидыЗанятости,
| ИСТИНА КАК РаспределятьПоТерриториямУсловиямТруда,
| НЕ МАКСИМУМ(ВЫБОР
| КОГДА ПоказателиРасчета.КатегорияНачисленияИлиНеоплаченногоВремени В (&КатегорииРазбиваемыхНачислений)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ПоказателиРасчета.НачисляетсяВЦеломЗаМесяц
| КОНЕЦ) КАК Разбивать,
| МАКСИМУМ(ПоказателиРасчета.УчитыватьИзмененияПлановыхНачислений) КАК УчитыватьИзмененияПлановыхНачислений,
| МАКСИМУМ(ВЫБОР
| КОГДА ЕСТЬNULL(ПоказателиРасчета.ПоказательДоляНеполногоРабочегоВремени, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ПоказателиРасчета.ПоказательСтоимостьЧаса, ЛОЖЬ)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ) КАК НеобходимыДанныеОбщегоГрафика,
| МАКСИМУМ(ПоказателиРасчета.НачисляетсяВЦеломЗаМесяц) КАК НачисляетсяВЦеломЗаМесяц,
| МАКСИМУМ(ВЫБОР
| КОГДА (ПоказателиРасчета.ВидВремени = ЗНАЧЕНИЕ(Перечисление.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное)
| ИЛИ ПоказателиРасчета.ВидВремени = ЗНАЧЕНИЕ(Перечисление.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное))
| И ПоказателиРасчета.СпособВыполненияНачисления = ЗНАЧЕНИЕ(Перечисление.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ) КАК ПриОтсутствииЗарегистрированныхДанныхПоучатьНорму,
| МИНИМУМ(ПоказателиРасчета.УчитыватьВидВремениПоУмолчанию) КАК УчитыватьВидВремениПоУмолчанию,
| МАКСИМУМ(ПоказателиРасчета.ИспользоватьОперативныеПоказателиВЦеломЗаМесяц) КАК ИспользоватьОперативныеПоказателиВЦеломЗаМесяц,
| МАКСИМУМ(ПоказателиРасчета.ИспользуетФормулу) КАК ИспользуетФормулу,
| МАКСИМУМ(ПоказателиРасчета.НулеваяСумма) КАК НулеваяСумма,
| МАКСИМУМ(ПоказателиРасчета.ЗачетНормыВремени) КАК ЗачетНормыВремени,
| МАКСИМУМ(ПоказателиРасчета.ВидВремени) КАК ВидВремени,
| МАКСИМУМ(ПоказателиРасчета.ПоказательНормаВремениВДнях) КАК ТребуетсяНормаВДняхПолная,
| МАКСИМУМ(ПоказателиРасчета.ПоказательНормаДней) КАК ТребуетсяНормаДней,
| МАКСИМУМ(ПоказателиРасчета.ПериодДействияБазовый) КАК ПериодДействияБазовый,
| МАКСИМУМ(ПоказателиРасчета.ТребуетсяРасчетБазы) КАК ТребуетсяРасчетБазы,
| МАКСИМУМ(ПоказателиРасчета.ВидОтпуска) КАК ВидОтпуска,
| МАКСИМУМ(ВЫБОР
| КОГДА ПоказателиРасчета.ПоказательКоличествоДнейОтпуска
| ИЛИ ПоказателиРасчета.ПоказательКалендарныеДни
| ИЛИ ПоказателиРасчета.ПоказательКалендарныеДниБезПраздников
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ) КАК РаспределятьПоКалендарнымДням,
| МИНИМУМ(ПоказателиРасчета.ОчередностьРасчета) КАК ОчередностьРасчета,
| МАКСИМУМ(ПоказателиРасчета.ПоказательТерриторийУсловийТруда) КАК ТребуетсяРаспределениеПоказателей,
| МАКСИМУМ(ПоказателиРасчета.СпособРасчета) КАК СпособРасчета,
| МАКСИМУМ(ПоказателиРасчета.ТребуетсяРасчетВремени) КАК ТребуетсяРасчетВремени,
| МАКСИМУМ(ПоказателиРасчета.ТребуетсяРасчетНормыВремени) КАК ТребуетсяРасчетНормыВремени,
| МАКСИМУМ(ПоказателиРасчета.СпособВыполненияНачисления) КАК СпособВыполненияНачисления,
| МАКСИМУМ(ПоказателиРасчета.ЗачетОтработанногоВремени) КАК ЗачетОтработанногоВремени,
| ПоказателиРасчета.КатегорияНачисленияИлиНеоплаченногоВремени КАК КатегорияНачисленияИлиНеоплаченногоВремени,
| МАКСИМУМ(ПоказателиРасчета.ПериодРасчетаБазовыхНачислений) КАК ПериодРасчетаБазовыхНачислений,
| МАКСИМУМ(ПоказателиРасчета.Рассчитывается) КАК Рассчитывается,
| МАКСИМУМ(ПоказателиРасчета.КоличествоМесяцевБазовогоПериода) КАК КоличествоМесяцевБазовогоПериода,
| МАКСИМУМ(ПоказателиРасчета.СдвигБазовогоПериода) КАК СдвигБазовогоПериода,
| МАКСИМУМ(ПоказателиРасчета.ВыполнятьВДокументахРазовыхНачислений) КАК ВыполнятьВДокументахРазовыхНачислений,
| МАКСИМУМ(ПоказателиРасчета.ДублироватьДляВнутреннихСовместителейИПодработок) КАК ДублироватьДляВнутреннихСовместителейИПодработок,
| МАКСИМУМ(ПоказателиРасчета.ПолучатьДанныеНаНачало) КАК ПолучатьДанныеНаНачало,
| МАКСИМУМ(ИСТИНА) КАК ТребуетсяБухучетНачислений,
| МАКСИМУМ(ПоказателиРасчета.ОсновнойВидРасчета) КАК ОсновнойВидРасчета
|ИЗ
| (ВЫБРАТЬ
| ВидыРасчета.Ссылка КАК ВидРасчета,
| ВидыРасчета.СпособРасчета КАК СпособРасчета,
| ВидыРасчета.НачисляетсяВЦеломЗаМесяц КАК НачисляетсяВЦеломЗаМесяц,
| ВидыРасчета.ТребуетсяРасчетБазы КАК ТребуетсяРасчетБазы,
| ВидыРасчета.ТребуетсяРасчетВремени КАК ТребуетсяРасчетВремени,
| ВидыРасчета.ИспользованиеПериода КАК ИспользованиеПериода,
| ВидыРасчета.ВидВремени КАК ВидВремени,
| ВидыРасчета.ТребуетсяРасчетНормыВремени КАК ТребуетсяРасчетНормыВремени,
| ВидыРасчета.ТребуетсяРасчетКалендарныхДнейБезПраздников КАК ТребуетсяРасчетКалендарныхДнейБезПраздников,
| ПоказателиРасчета.Показатель КАК Показатель,
| ПоказателиРасчета.ЗапрашиватьПриВводе КАК ЗапрашиваетсяПриВводеНачисления,
| СправочникПоказатели.ЗначениеРассчитываетсяАвтоматически КАК ЗначениеРассчитываетсяАвтоматически,
| ВЫБОР
| КОГДА ВидыРасчета.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛет)
| ИЛИ ВидыРасчета.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛетВоеннослужащим)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УчитыватьУсловийОплатыПособия,
| ВЫБОР
| КОГДА ПоказателиРасчета.Ссылка.СпособВыполненияНачисления = ЗНАЧЕНИЕ(Перечисление.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете)
| И ПоказателиРасчета.ОпределяющийПоказатель
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ОпределяющийПоказательНачисления,
| ВЫБОР
| КОГДА СправочникПоказатели.СпособВводаЗначений = ЗНАЧЕНИЕ(Перечисление.СпособыВводаЗначенийПоказателейРасчетаЗарплаты.ВводитсяПриРасчете)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ВводитсяПриРасчете,
| СправочникПоказатели.ПериодическийПоказательСотрудника КАК ПериодическийПоказательСотрудника,
| СправочникПоказатели.ПериодическийПоказательОрганизации КАК ПериодическийПоказательОрганизации,
| СправочникПоказатели.ПериодическийПоказательПодразделения КАК ПериодическийПоказательПодразделения,
| СправочникПоказатели.РазовыйПоказательСотрудника КАК РазовыйПоказательСотрудника,
| СправочникПоказатели.РазовыйПоказательОрганизации КАК РазовыйПоказательОрганизации,
| СправочникПоказатели.РазовыйПоказательПодразделения КАК РазовыйПоказательПодразделения,
| СправочникПоказатели.ОперативныйПоказательСотрудника КАК ОперативныйПоказательСотрудника,
| СправочникПоказатели.ОперативныйПоказательОрганизации КАК ОперативныйПоказательОрганизации,
| СправочникПоказатели.ОперативныйПоказательПодразделения КАК ОперативныйПоказательПодразделения,
| ВЫБОР
| КОГДА СправочникПоказатели.Ссылка В (&ПоказателиТерриторийУсловийТруда)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательТерриторийУсловийТруда,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &КалендарныеДни
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &КалендарныеДниМесяца
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &НормаДней
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &НормаДнейЧасов
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &НормаВремениВДнях
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &НормаВремениВЧасах
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ВремяВДнях
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ВремяВДняхЧасах
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ВремяВЧасах
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ОтработаноСверхурочно
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ОтработаноСверхурочноВПределах2Часов
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &КалендарныеДниБезПраздников
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ОтработаноДней
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ОтработаноЧасов
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &КоличествоДнейОтпуска
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательВремени,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &КалендарныеДни
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &КалендарныеДниМесяца
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательКалендарныеДни,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &НормаДней
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &НормаДнейЧасов
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &НормаВремениВДнях
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &НормаВремениВЧасах
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательНормаВремени,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &НормаДнейЧасов
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательНормаДнейЧасов,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &НормаВремениВДнях
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательНормаВремениВДнях,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &НормаДней
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательНормаДней,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ВремяВДнях
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ВремяВДняхЧасах
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ВремяВЧасах
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательРабочегоВремени,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ОтработаноСверхурочно
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ОтработаноСверхурочноВПределах2Часов
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательОтработаноСверхурочно,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &КалендарныеДниБезПраздников
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательКалендарныеДниБезПраздников,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ОтработаноДней
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &ОтработаноЧасов
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательОтработаноВсего,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &КоличествоДнейОтпуска
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательКоличествоДнейОтпуска,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &СдельныйЗаработок
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательСдельныйЗаработок,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &КоэффициентИндексацииСреднегоЗаработка
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &КоэффициентИндексацииСохраняемогоДенежногоСодержания
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &КоэффициентИндексацииСохраняемогоДенежногоДовольствия
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательКоэффициентИндексации,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &КоэффициентИндексацииСреднегоЗаработка
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательКоэффициентИндексацииСреднегоЗаработка,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &КоэффициентИндексацииСохраняемогоДенежногоСодержания
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательКоэффициентИндексацииСохраняемогоДенежногоСодержания,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &КоэффициентИндексацииСохраняемогоДенежногоДовольствия
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательКоэффициентИндексацииСохраняемогоДенежногоДовольствия,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ДоляНеполногоРабочегоВремени
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательДоляНеполногоРабочегоВремени,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &СтоимостьЧаса
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &СтоимостьДня
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &СтоимостьДняЧаса
| ТОГДА ИСТИНА
| КОГДА ПоказателиРасчета.Показатель = &СтоимостьДняЧасаСУчетомРазовыхНачислений
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательСтоимостьЧаса,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &РазмерПособияДоТрехЛет
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательРазмерПособияДоТрехЛет,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ПроцентСевернойНадбавки
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательПроцентСевернойНадбавки,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &РайонныйКоэффициентРФ
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательРайонныйКоэффициентРФ,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ПроцентДоплатыЗаНочные
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательПроцентДоплатыЗаНочные,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ПроцентДоплатыЗаВечерние
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательПроцентДоплатыЗаВечерние,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &БазовыйТарифГруппы
| И НЕ ПоказателиРасчета.ЗапрашиватьПриВводе
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательБазовыйТарифГруппы,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ОтработаноСмен
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательОтработаноСмен,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейРасчетаЗарплаты.ЧисловойЗависящийОтСтажа)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательЧисловойЗависящийОтСтажа,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &СтоимостьДняЧасаСУчетомРазовыхНачислений
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УчитыватьИзмененияВкладаВФОТ,
| ВидыРасчета.УчитыватьИзмененияВремяВЧасах КАК УчитыватьИзмененияВремяВЧасах,
| НЕ ВидыРасчета.Рассчитывается КАК ТребуютсяФиксированныеСуммы,
| ВидыРасчета.УчетВремениВДняхЧасах КАК УчетВремениВДняхЧасах,
| ВидыРасчета.СпособВыполненияНачисления КАК СпособВыполненияНачисления,
| ВЫБОР
| КОГДА ВидыРасчета.СпособВыполненияНачисления В (ЗНАЧЕНИЕ(Перечисление.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете), ЗНАЧЕНИЕ(Перечисление.СпособыВыполненияНачислений.ВЗаданныхМесяцахПриОкончательномРасчете))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УчитыватьИзмененияПлановыхНачислений,
| ВЫБОР
| КОГДА ВидыВремениВидаРасчета.ВидВремени ЕСТЬ NULL
| ИЛИ ВидыВремениВидаРасчета.ВидВремени = &РабочееВремя
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК УчитыватьВидВремениПоУмолчанию,
| ВидыРасчета.ИспользоватьОперативныеПоказателиВЦеломЗаМесяц КАК ИспользоватьОперативныеПоказателиВЦеломЗаМесяц,
| ВидыРасчета.ИспользуетФормулу КАК ИспользуетФормулу,
| ВЫБОР
| КОГДА ВидыРасчета.ФормулаРасчета ПОДОБНО ""0""
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК НулеваяСумма,
| ВидыРасчета.ЗачетНормыВремени КАК ЗачетНормыВремени,
| ВидыРасчета.ПериодДействияБазовый КАК ПериодДействияБазовый,
| ВЫБОР
| КОГДА ВидыРасчета.КатегорияНачисленияИлиНеоплаченногоВремени В(&КатегорииНачисленийОплатыДолейРКиСН)
| ТОГДА ВидыРасчета.ОсновнойВидРасчета.ВидОтпуска
| ИНАЧЕ ВидыРасчета.ВидОтпуска
| КОНЕЦ КАК ВидОтпуска,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ПоказательРайонныйКоэффициент
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательРайонныйКоэффициент,
| ВЫБОР
| КОГДА ПоказателиРасчета.Показатель = &ПоказательНадбавкаЗаВредность
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПоказательНадбавкаЗаВредность,
| ВидыРасчета.ОчередностьРасчета КАК ОчередностьРасчета,
| ВидыРасчета.ЗачетОтработанногоВремени КАК ЗачетОтработанногоВремени,
| ВидыРасчета.КатегорияНачисленияИлиНеоплаченногоВремени КАК КатегорияНачисленияИлиНеоплаченногоВремени,
| ВидыРасчета.ПериодРасчетаБазовыхНачислений КАК ПериодРасчетаБазовыхНачислений,
| ВидыРасчета.Рассчитывается КАК Рассчитывается,
| ВидыРасчета.КоличествоМесяцевБазовогоПериода КАК КоличествоМесяцевБазовогоПериода,
| ВидыРасчета.СдвигБазовогоПериода КАК СдвигБазовогоПериода,
| ВидыРасчета.ВыполнятьВДокументахРазовыхНачислений КАК ВыполнятьВДокументахРазовыхНачислений,
| ВидыРасчета.ДублироватьДляВнутреннихСовместителейИПодработок КАК ДублироватьДляВнутреннихСовместителейИПодработок,
| ВидыРасчета.ОсновнойВидРасчета КАК ОсновнойВидРасчета,
| ВЫБОР
| КОГДА ВидыРасчета.КатегорияНачисленияИлиНеоплаченногоВремени В(&КатегорииНачисленияРассчитываемыхНаДатуНачала)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПолучатьДанныеНаНачало
| ИЗ
| ПланВидовРасчета.Начисления КАК ВидыРасчета
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления.Показатели КАК ПоказателиРасчета
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПоказателиРасчетаЗарплаты КАК СправочникПоказатели
| ПО (СправочникПоказатели.Ссылка = ПоказателиРасчета.Показатель)
| ПО (ПоказателиРасчета.Ссылка = ВидыРасчета.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления.ВидыВремени КАК ВидыВремениВидаРасчета
| ПО (ВидыВремениВидаРасчета.Ссылка = ВидыРасчета.Ссылка)
| ГДЕ
| ВидыРасчета.Ссылка В(&НачисленияОтбор)) КАК ПоказателиРасчета
|
|СГРУППИРОВАТЬ ПО
| ПоказателиРасчета.ВидРасчета,
| ПоказателиРасчета.КатегорияНачисленияИлиНеоплаченногоВремени";
РезультатЗапроса = Запрос.Выполнить();
ПоляСтруктуры = Новый Массив;
Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл
Если Колонка.Имя <> "ВидРасчета" Тогда
ПоляСтруктуры.Добавить(Колонка.Имя);
КонецЕсли;
КонецЦикла;
ПоляСтруктурыСтрокой = СтрСоединить(ПоляСтруктуры, ",");
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ТребованияТекущегоНачисления = Новый Структура(ПоляСтруктурыСтрокой);
ЗаполнитьЗначенияСвойств(ТребованияТекущегоНачисления, Выборка);
ТребованияНачислений.Вставить(Выборка.ВидРасчета, ТребованияТекущегоНачисления);
КонецЦикла;
Возврат ТребованияНачислений;
КонецФункции
#Область ПолучениеНачислений
Функция НачислениеПоУмолчанию(Отбор, ВСлучаеОтсутствия = Неопределено, Количество = 1) Экспорт
Отбор.Вставить("ПометкаУдаления", Ложь);
Отбор.Вставить("ВАрхиве", Ложь);
Запрос = ЗапросПоНачислениям(Отбор, "РеквизитДопУпорядочивания", Количество);
Выборка = Запрос.Выполнить().Выбрать();
Количество = Выборка.Количество();
Если Выборка.Следующий() Тогда
Возврат Выборка.Ссылка;
ИначеЕсли ВСлучаеОтсутствия <> Неопределено Тогда
ТекстОшибки = СтрШаблон(
НСтр("ru = 'В программе отсутствует начисление с параметрами (%1).
|Настройте список начислений, дополнив его одним или несколькими начислениями указанного назначения.'"),
ПредставлениеОтбораНачислений(Отбор));
Если ВСлучаеОтсутствия = "ВозвращатьТекстОшибки" Тогда
Возврат ТекстОшибки;
ИначеЕсли ВСлучаеОтсутствия = "ВызыватьИсключение" Тогда
ВызватьИсключение ТекстОшибки;
ИначеЕсли ВСлучаеОтсутствия = "СообщатьОбОшибке" Тогда
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки);
КонецЕсли;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция НачисленияПоОтбору(Отбор, ПоляУпорядочивания = "") Экспорт
Запрос = ЗапросПоНачислениям(Отбор, ПоляУпорядочивания, 0);
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
Функция НачисленияПоКатегории(КатегорияНачисления, Отбор = Неопределено) Экспорт
Если Отбор = Неопределено Тогда
Отбор = Новый Структура;
КонецЕсли;
Отбор.Вставить("КатегорияНачисленияИлиНеоплаченногоВремени", КатегорияНачисления);
Отбор.Вставить("ПометкаУдаления", Ложь);
Отбор.Вставить("ВАрхиве", Ложь);
Возврат НачисленияПоОтбору(Отбор, "РеквизитДопУпорядочивания");
КонецФункции
Функция УстановитьНачислениеПоУмолчаниюВФорме(Форма, ИмяПоляВвода, ДополнительныеПараметрыВыбора = Неопределено, ПервичнаяИнициализацияФормы = Ложь, ПутьКРеквизиту = Неопределено, Обязательное = Ложь, УстановитьВидимость = Ложь) Экспорт
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная") Тогда
Возврат Ложь;
КонецЕсли;
ВСлучаеОтсутствия = ?(Обязательное, ?(ПервичнаяИнициализацияФормы, "ВызыватьИсключение", "СообщатьОбОшибке"), Неопределено);
ПолеВвода = Форма.Элементы.Найти(ИмяПоляВвода);
Если ПолеВвода = Неопределено Тогда
Если ПутьКРеквизиту = Неопределено Тогда
Объект = Форма.Объект;
ПутьКРеквизитуОбъекта = ИмяПоляВвода;
Иначе
МассивСтрок = СтрРазделить(ПутьКРеквизиту, ".", Ложь);
Объект = Форма[МассивСтрок[0]];
МассивСтрок.Удалить(0);
ПутьКРеквизитуОбъекта = СтрСоединить(МассивСтрок, ".");
КонецЕсли;
МетаданныеРеквизита = Объект.Ссылка.Метаданные().Реквизиты.Найти(ПутьКРеквизитуОбъекта);
Если МетаданныеРеквизита = Неопределено Тогда
ТекстОшибки = СтрШаблон(
НСтр("ru = 'Ошибка при вызове ""%1"": реквизит %2 не найден'"),
"ПланыВидовРасчета.Начисления.УстановитьНачислениеПоУмолчаниюВФорме",
ПутьКРеквизитуОбъекта);
ВызватьИсключение ТекстОшибки;
КонецЕсли;
Параметры = ОбщегоНазначенияБЗК.ПараметрыВыбораВСтруктуру(Объект, МетаданныеРеквизита, ДополнительныеПараметрыВыбора);
СтароеЗначение = ОбщегоНазначенияКлиентСервер.ПолучитьРеквизитФормыПоПути(Объект, ПутьКРеквизитуОбъекта);
Если Не ЗначениеЗаполнено(СтароеЗначение) Тогда
УстановитьЗначение = Истина;
Иначе
УстановитьЗначение = Не ПервичнаяИнициализацияФормы И Не СсылкаСоответствуетОтбору(СтароеЗначение, Параметры.Отбор);
КонецЕсли;
Если УстановитьЗначение Тогда
НовоеЗначение = НачислениеПоУмолчанию(Параметры.Отбор, ВСлучаеОтсутствия);
ОбщегоНазначенияКлиентСервер.УстановитьРеквизитФормыПоПути(Объект, ПутьКРеквизитуОбъекта, НовоеЗначение);
Возврат НовоеЗначение <> СтароеЗначение;
КонецЕсли;
Иначе
Параметры = Неопределено;
Если ЗначениеЗаполнено(ДополнительныеПараметрыВыбора)
И ДополнительныеПараметрыВыбора["ОтборНачисленийГосслужбы"] <> Неопределено Тогда
ОтборНачисленийГосслужбы = ДополнительныеПараметрыВыбора["ОтборНачисленийГосслужбы"];
ДополнительныеПараметрыВыбора.Удалить("ОтборНачисленийГосслужбы");
КонецЕсли;
ПараметрыВыбораИзменились = ОбщегоНазначенияБЗК.УстановитьПараметрыВыбора(ПолеВвода, ДополнительныеПараметрыВыбора);
Если ПутьКРеквизиту = Неопределено Тогда
ПутьКРеквизиту = ПолеВвода.ПутьКДанным;
КонецЕсли;
СтароеЗначение = ОбщегоНазначенияКлиентСервер.ПолучитьРеквизитФормыПоПути(Форма, ПутьКРеквизиту);
Если ПервичнаяИнициализацияФормы Тогда
УстановитьЗначение = Не ЗначениеЗаполнено(СтароеЗначение);
Иначе
Параметры = ОбщегоНазначенияБЗК.ПараметрыВыбораВСтруктуру(Форма, ПолеВвода);
УстановитьЗначение = Не ЗначениеЗаполнено(СтароеЗначение)
Или ПараметрыВыбораИзменились
Или Не СсылкаСоответствуетОтбору(СтароеЗначение, Параметры.Отбор);
КонецЕсли;
Если УстановитьЗначение Или УстановитьВидимость Тогда
Если Параметры = Неопределено Тогда
Параметры = ОбщегоНазначенияБЗК.ПараметрыВыбораВСтруктуру(Форма, ПолеВвода);
КонецЕсли;
Количество = ?(УстановитьВидимость, 2, 1);
Если ЗначениеЗаполнено(ОтборНачисленийГосслужбы) Тогда
Параметры.Отбор.Вставить("Ссылка",ОтборНачисленийГосслужбы);
КонецЕсли;
НовоеЗначение = НачислениеПоУмолчанию(Параметры.Отбор, ВСлучаеОтсутствия, Количество);
Если УстановитьВидимость Тогда
ПолеВвода.Видимость = (Количество <> 1);
КонецЕсли;
Если УстановитьЗначение Тогда
ОбщегоНазначенияКлиентСервер.УстановитьРеквизитФормыПоПути(Форма, ПутьКРеквизиту, НовоеЗначение);
Возврат НовоеЗначение <> СтароеЗначение;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат Ложь;
КонецФункции
Функция УстановитьНачислениеПоУмолчаниюВОбъекте(ДокументОбъект, ИмяРеквизита, ДополнительныеПараметрыВыбора = Неопределено, Обязательное = Ложь) Экспорт
ВСлучаеОтсутствия = ?(Обязательное, "ВызыватьИсключение", Неопределено);
МетаданныеРеквизита = ДокументОбъект.Ссылка.Метаданные().Реквизиты.Найти(ИмяРеквизита);
Параметры = ОбщегоНазначенияБЗК.ПараметрыВыбораВСтруктуру(ДокументОбъект, МетаданныеРеквизита, ДополнительныеПараметрыВыбора);
НовоеЗначение = НачислениеПоУмолчанию(Параметры.Отбор, ВСлучаеОтсутствия);
СтароеЗначение = ОбщегоНазначенияКлиентСервер.ПолучитьРеквизитФормыПоПути(ДокументОбъект, ИмяРеквизита);
ОбщегоНазначенияКлиентСервер.УстановитьРеквизитФормыПоПути(ДокументОбъект, ИмяРеквизита, НовоеЗначение);
Возврат ЗначениеЗаполнено(НовоеЗначение) И НовоеЗначение <> СтароеЗначение;
КонецФункции
Функция УстановитьДополнительныеНачисления(Объект, СоответствиеИменРеквизитов, ОсновнойВидРасчета) Экспорт
ДополнительныеНачисления = РасчетЗарплатыРасширенный.ДополнительныеНачисленияОсновныхВидовРасчета(ОсновнойВидРасчета).Получить(ОсновнойВидРасчета);
ЗаполнятьДополнительныеНачисления = ДополнительныеНачисления <> Неопределено;
Для Каждого КлючИЗначение Из СоответствиеИменРеквизитов Цикл
Если ЗаполнятьДополнительныеНачисления Тогда
Объект[КлючИЗначение.Значение] = ДополнительныеНачисления[КлючИЗначение.Ключ];
Иначе
Объект[КлючИЗначение.Значение] = ПланыВидовРасчета.Начисления.ПустаяСсылка();
КонецЕсли;
КонецЦикла;
КонецФункции
Функция НачислениеРайонныйКоэффициент() Экспорт
Отбор = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.РайонныйКоэффициент);
Возврат НачислениеПоУмолчанию(Отбор);
КонецФункции
Функция НачислениеСевернаяНадбавка() Экспорт
Отбор = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СевернаяНадбавка);
Возврат НачислениеПоУмолчанию(Отбор);
КонецФункции
Функция НачислениеНадбавкаЗаВредность() Экспорт
Отбор = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НадбавкаЗаВредность);
Возврат НачислениеПоУмолчанию(Отбор);
КонецФункции
Функция НачислениеКвалификационнаяНадбавка() Экспорт
Если Не ПолучитьФункциональнуюОпцию("РаботаВБюджетномУчреждении") Тогда
Возврат Неопределено;
КонецЕсли;
ПоказательКвалификационнаяНадбавка = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
МодульМедицина = ОбщегоНазначения.ОбщийМодуль("Медицина");
Если МодульМедицина.РаботаВМедицинскомУчреждении() Тогда
ПоказательКвалификационнаяНадбавка = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ПроцентНадбавкиЗаКатегорию");
КонецЕсли;
КонецЕсли;
Если ПоказательКвалификационнаяНадбавка = Неопределено Тогда
ПоказательКвалификационнаяНадбавка = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КвалификационнаяНадбавка");
КонецЕсли;
Если ПоказательКвалификационнаяНадбавка = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| НачисленияПоказатели.Ссылка
|ИЗ
| ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
|ГДЕ
| НачисленияПоказатели.ЗапрашиватьПриВводе = ИСТИНА
| И НачисленияПоказатели.ИспользоватьПриРасчете = ИСТИНА
| И НачисленияПоказатели.Показатель = &Показатель";
Запрос.УстановитьПараметр("Показатель", ПоказательКвалификационнаяНадбавка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() И Выборка.Количество() = 1 Тогда
Возврат Выборка.Ссылка;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция РазовыеНачисления() Экспорт
РазовыеНачисления = Новый Массив;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.СпособВыполненияНачисления = ЗНАЧЕНИЕ(Перечисление.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета)
| И Начисления.ВидДокументаНачисления В(&ВидыДокументовРазовыхНачислений)
| И ВЫБОР
| КОГДА Начисления.ВидДокументаНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыДокументовНачисления.Отпуск)
| ТОГДА Начисления.КатегорияНачисленияИлиНеоплаченногоВремени В (&КатегорииРазовыхНачисленийПриОтпуске)
| ИНАЧЕ ИСТИНА
| КОНЕЦ";
ВидыДокументовРазовыхНачислений = Новый Массив;
ВидыДокументовРазовыхНачислений.Добавить(Перечисления.ВидыДокументовНачисления.ДоходВНатуральнойФорме);
ВидыДокументовРазовыхНачислений.Добавить(Перечисления.ВидыДокументовНачисления.МатериальнаяПомощь);
ВидыДокументовРазовыхНачислений.Добавить(Перечисления.ВидыДокументовНачисления.РазовоеНачисление);
ВидыДокументовРазовыхНачислений.Добавить(Перечисления.ВидыДокументовНачисления.Премия);
ВидыДокументовРазовыхНачислений.Добавить(Перечисления.ВидыДокументовНачисления.Отпуск);
КатегорииРазовыхНачисленийПриОтпуске = Новый Массив;
КатегорииРазовыхНачисленийПриОтпуске.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске);
КатегорииРазовыхНачисленийПриОтпуске.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеГосслужащего);
КатегорииРазовыхНачисленийПриОтпуске.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеВоеннослужащего);
КатегорииРазовыхНачисленийПриОтпуске.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпуску);
КатегорииРазовыхНачисленийПриОтпуске.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпускуГосслужащего);
Запрос.УстановитьПараметр("ВидыДокументовРазовыхНачислений", ВидыДокументовРазовыхНачислений);
Запрос.УстановитьПараметр("КатегорииРазовыхНачисленийПриОтпуске", КатегорииРазовыхНачисленийПриОтпуске);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РазовыеНачисления.Добавить(Выборка.ССылка);
КонецЦикла;
Возврат РазовыеНачисления;
КонецФункции
Функция ЗависимостиНачисленийПоБазе(ОтборВедущихНачислений = Неопределено, ОтборЗависимыхНачислений = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НачисленияБазовыеВидыРасчета.Ссылка КАК ЗависимоеНачисление,
| НачисленияБазовыеВидыРасчета.ВидРасчета КАК БазовоеНачисление
|ИЗ
| ПланВидовРасчета.Начисления.БазовыеВидыРасчета КАК НачисленияБазовыеВидыРасчета";
Схема = Новый СхемаЗапроса;
Схема.УстановитьТекстЗапроса(Запрос.Текст);
Если ОтборЗависимыхНачислений <> Неопределено Тогда
Схема.ПакетЗапросов[0].Операторы[0].Отбор.Добавить("НачисленияБазовыеВидыРасчета.Ссылка В(&ОтборЗависимыхНачислений)");
Запрос.УстановитьПараметр("ОтборЗависимыхНачислений", ОтборЗависимыхНачислений);
КонецЕсли;
Если ОтборВедущихНачислений <> Неопределено Тогда
Схема.ПакетЗапросов[0].Операторы[0].Отбор.Добавить("НачисленияБазовыеВидыРасчета.ВидРасчета В(&ОтборВедущихНачислений)");
Запрос.УстановитьПараметр("ОтборВедущихНачислений", ОтборВедущихНачислений);
КонецЕсли;
Запрос.Текст = Схема.ПолучитьТекстЗапроса();
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
Функция ВыполнениеНачисленияВДокументахРазовыхНачисленийВозможно(НачислениеОбъект) Экспорт
Если НачислениеОбъект.ТребуетсяРасчетБазы
И НачислениеОбъект.ПериодРасчетаБазовыхНачислений = ПредопределенноеЗначение("Перечисление.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц")
И НачислениеОбъект.СпособВыполненияНачисления = ПредопределенноеЗначение("Перечисление.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете") Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
Функция НачисленияВЗачетНормы() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НачисленияВидыВремени.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления.ВидыВремени КАК НачисленияВидыВремени
|ГДЕ
| НачисленияВидыВремени.ВидВремени.ОсновноеВремя В(&ВидыВремениВЗачетНормы)
| И НачисленияВидыВремени.Ссылка.ВидВремени <> ЗНАЧЕНИЕ(Перечисление.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы)
| И НачисленияВидыВремени.Ссылка.ЗачетНормыВремени
| И НачисленияВидыВремени.Ссылка.КатегорияНачисленияИлиНеоплаченногоВремени <> ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска)";
ВидыВремениВЗачетНормы = УчетРабочегоВремениРасширенный.ВидыВремениВЗачетНормыСуммированногоУчета();
ВидыВремениВЗачетНормы.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя"));
Запрос.УстановитьПараметр("ВидыВремениВЗачетНормы", ВидыВремениВЗачетНормы);
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
Функция НачисленияБезОплаты() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ИспользуетФормулу
| И Начисления.ФормулаРасчета ПОДОБНО ""0""";
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
#КонецОбласти
Функция СвойстваНачислений(СписокНачислений, СписокСвойств = Неопределено) Экспорт
СписокНачислений = ОбщегоНазначенияКлиентСервер.СвернутьМассив(СписокНачислений);
СпособВыполненияВЗаданныхМесяцах = Перечисления.СпособыВыполненияНачислений.ВЗаданныхМесяцахПриОкончательномРасчете;
ПолучаемыеСвойстваШапки =
"СпособВыполненияНачисления,
|КатегорияНачисленияИлиНеоплаченногоВремени,
|НачисляетсяПриРасчетеПервойПоловиныМесяца,
|НачисляетсяТолькоПриРасчетеПервойПоловиныМесяца,
|НачисляетсяВЦеломЗаМесяц,
|ПериодРасчетаБазовыхНачислений,
|СдвигБазовогоПериода,
|КоличествоМесяцевБазовогоПериода,
|ИспользуетСреднийЗаработокОбщий,
|УчетВремениВДняхЧасах,
|УчетВремениВЧасах,
|ИспользоватьОперативныеПоказателиВЦеломЗаМесяц,
|ВыполнятьВДокументахРазовыхНачислений,
|ЯвляетсяЛьготой,
|НачисляетсяВОтпускеПоУходу";
СвойстваНачислений = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(СписокНачислений, ПолучаемыеСвойстваШапки);
КатегорииНачисленийПособийПоПрямымВыплатамФСС = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КатегорииПрямыхВыплатФСС();
СписокНачисленийДляПолученияМесяцевВыполнения = Новый Массив;
Для Каждого КлючЗначение Из СвойстваНачислений Цикл
КлючЗначение.Значение.Вставить("Разбивать",
Не КлючЗначение.Значение.НачисляетсяВЦеломЗаМесяц Или КлючЗначение.Значение.ИспользоватьОперативныеПоказателиВЦеломЗаМесяц);
Если КлючЗначение.Значение.СпособВыполненияНачисления = СпособВыполненияВЗаданныхМесяцах Тогда
СписокНачисленийДляПолученияМесяцевВыполнения.Добавить(КлючЗначение.Ключ);
КлючЗначение.Значение.Вставить("МесяцыВыполнения", Новый Соответствие);
Иначе
КлючЗначение.Значение.Вставить("МесяцыВыполнения", Неопределено);
КонецЕсли;
КлючЗначение.Значение.Вставить("ПособиеПоПрямымВыплатамФСС",
КатегорииНачисленийПособийПоПрямымВыплатамФСС.Найти(КлючЗначение.Значение.КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено);
КонецЦикла;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("СписокНачислений", СписокНачисленийДляПолученияМесяцевВыполнения);
Запрос.Текст =
"ВЫБРАТЬ
| НачисленияМесяцыНачисления.Ссылка КАК Ссылка,
| НачисленияМесяцыНачисления.Месяц КАК Месяц
|ИЗ
| ПланВидовРасчета.Начисления.МесяцыНачисления КАК НачисленияМесяцыНачисления
|ГДЕ
| НачисленияМесяцыНачисления.Ссылка В(&СписокНачислений)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("Ссылка") Цикл
СвойстваТекущегоНачисления = СвойстваНачислений[Выборка.Ссылка];
Пока Выборка.Следующий() Цикл
СвойстваТекущегоНачисления.МесяцыВыполнения.Вставить(Выборка.Месяц, Истина);
КонецЦикла;
КонецЦикла;
Возврат СвойстваНачислений;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ОбновитьЗависимостиНачислений() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияВытесняющиеВидыРасчета.Ссылка КАК Начисление,
| НачисленияВытесняющиеВидыРасчета.ВидРасчета КАК ЗависимоеНачисление
|ИЗ
| ПланВидовРасчета.Начисления.ВытесняющиеВидыРасчета КАК НачисленияВытесняющиеВидыРасчета";
Набор = РегистрыСведений.ЗависимостиНачисленийПоФПД.СоздатьНаборЗаписей();
Зависимости = Запрос.Выполнить().Выгрузить();
Зависимости.Колонки.Добавить("Вытесняет", Новый ОписаниеТипов("Булево"));
Зависимости.Колонки.Добавить("Вытесняется", Новый ОписаниеТипов("Булево"));
Зависимости.ЗаполнитьЗначения(Истина, "Вытесняет");
ЗависимостиДоп = Зависимости.Скопировать();
ЗависимостиДоп.Колонки.Начисление.Имя = "НачислениеВрем";
ЗависимостиДоп.Колонки.ЗависимоеНачисление.Имя = "Начисление";
ЗависимостиДоп.Колонки.НачислениеВрем.Имя = "ЗависимоеНачисление";
ЗависимостиДоп.ЗаполнитьЗначения(Истина, "Вытесняется");
ЗависимостиДоп.ЗаполнитьЗначения(Ложь, "Вытесняет");
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ЗависимостиДоп, Зависимости);
Зависимости = КоллекцииБЗК.СгруппироватьТаблицу(Зависимости, "Начисление, ЗависимоеНачисление", "МАКСИМУМ(Вытесняется), МАКСИМУМ(Вытесняет)");
Набор.Загрузить(Зависимости);
Набор.Записать();
КонецПроцедуры
Процедура ОбновитьВидыВремениДляВыявленияНачислений() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияВидыВремени.ВидВремени КАК ВидВремени,
| НачисленияВидыВремени.ОпределяющийЗаПраздничныеДни КАК ОпределяющийЗаПраздничныеДни
|ИЗ
| ПланВидовРасчета.Начисления.ВидыВремени КАК НачисленияВидыВремени";
РезультатЗапроса = Запрос.Выполнить();
Набор = РегистрыСведений.ВидыВремениДляВыявленияНачислений.СоздатьНаборЗаписей();
Набор.Загрузить(РезультатЗапроса.Выгрузить());
Набор.Записать();
КонецПроцедуры
Процедура ОбновитьОперативныеПоказателиДляВыявленияНачислений() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Показатели.Показатель КАК Показатель,
| Показатели.Ссылка.ИспользоватьОперативныеПоказателиВЦеломЗаМесяц КАК ПолучатьВЦеломЗаМесяц
|ИЗ
| ПланВидовРасчета.Начисления.Показатели КАК Показатели
|ГДЕ
| Показатели.ОпределяющийПоказатель
| И Показатели.Показатель.ОперативныйПоказательСотрудника";
РезультатЗапроса = Запрос.Выполнить();
Набор = РегистрыСведений.ОперативныеПоказателиДляВыявленияНачислений.СоздатьНаборЗаписей();
Набор.Загрузить(РезультатЗапроса.Выгрузить());
Набор.Записать();
КонецПроцедуры
Процедура СоздатьНачисленияПростоев(КоллекторНачислений = Неопределено, НастройкиРасчетаЗарплаты = Неопределено, СвойстваНачислений = Неопределено)
Если КоллекторНачислений = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КонецЕсли;
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПростойПоВинеРаботника;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРОВР'");
Описание.Наименование = НСтр("ru = 'Простой по вине работника'");
Описание.КраткоеНаименование = НСтр("ru = 'Простой без опл.'");
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ПростойПоВинеРаботника");
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоНезависящимОтРаботодателяПричинам;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРОКД'");
Описание.Наименование = НСтр("ru = 'Оплата простоя по независящим от работодателя причинам'");
Описание.КраткоеНаименование = НСтр("ru = 'Простой незав. прич.'");
Описание.КлючевыеСвойства = "ВидВремени";
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРСРД'");
Описание.Наименование = НСтр("ru = 'Оплата простоя по среднему заработку'");
Описание.КраткоеНаименование = НСтр("ru = 'Простой по средн.'");
Описание.КлючевыеСвойства = "ВидВремени";
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачислениеНадбавкаЗаВредность(КоллекторНачислений = Неопределено, СвойстваНачислений = Неопределено, НастройкиРасчетаЗарплаты = Неопределено)
ОбновитьПовторноИспользуемыеЗначения();
УстановитьПривилегированныйРежим(Истина);
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
КонецЕсли;
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Справочники.ПоказателиРасчетаЗарплаты.СоздатьПоказательНадбавкаЗаВредность(НастройкиРасчетаЗарплаты);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НадбавкаЗаВредность;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'НВР'");
Описание.Наименование = НСтр("ru = 'Надбавка за вредные условия труда'");
Описание.КраткоеНаименование = НСтр("ru = 'Вредность'");
Описание.ФормулаРасчета = "ПроцентНадбавкиЗаВредность / 100 * РасчетнаяБаза";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Если НастройкиРасчетаЗарплаты.ИспользоватьНадбавкуЗаВредность Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачисленияНадбавки(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета)
Надбавки = ПараметрыПланаВидовРасчета.Надбавки;
ОтборБазовыхНачисленийНадбавок = ОтборБазовыхПоУмолчанию();
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'НВЛ'");
Описание.Наименование = НСтр("ru = 'Надбавка за выслугу лет'");
Описание.КраткоеНаименование = НСтр("ru = 'Выслуга лет'");
Описание.ФормулаРасчета = "ПроцентНадбавкиЗаВыслугуЛет / 100 * РасчетнаяБаза";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп2ст255;
Описание.ОтборБазовых = ОтборБазовыхНачисленийНадбавок;
Описание.КлючевыеСвойства = "Код";
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.НадбавкаЗаВыслугуЛет;
Описание.КлючевыеСвойства = "Ссылка";
Если Надбавки.ИспользоватьНадбавкуЗаВыслугуЛет Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.НадбавкаЗаВыслугуЛет = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
ПрочиеНадбавкиПроцентом = Надбавки.НадбавкиПроцентом;
Если ПрочиеНадбавкиПроцентом.Количество() > 0 Тогда
ИдентификаторыНадбавокПроцентом = Надбавки.ИдентификаторыНадбавокПроцентом;
Для Сч = 1 По ПрочиеНадбавкиПроцентом.Количество() Цикл
Индекс = Сч-1;
Надбавка = СокрЛП(ПрочиеНадбавкиПроцентом[Индекс]);
Если ПустаяСтрока(Надбавка) Тогда
Продолжить;
КонецЕсли;
ИдентификаторНадбавки = ИдентификаторыНадбавокПроцентом[Индекс];
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРН'") + ?(Индекс = 0,"", Индекс);
Описание.Наименование = Надбавка;
Описание.ФормулаРасчета = ИдентификаторНадбавки + " / 100 * РасчетнаяБаза";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.ОтборБазовых = ОтборБазовыхНачисленийНадбавок;
Описание.КлючевыеСвойства = "Наименование";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
КонецЦикла;
КонецЕсли;
ПрочиеНадбавкиСуммой = Надбавки.НадбавкиСуммой;
Если ПрочиеНадбавкиСуммой.Количество() > 0 Тогда
ИдентификаторыНадбавокСуммой = Надбавки.ИдентификаторыНадбавокСуммой;
Для Сч = 1 По ПрочиеНадбавкиСуммой.Количество() Цикл
Индекс = Сч-1;
Надбавка = СокрЛП(ПрочиеНадбавкиСуммой[Индекс]);
Если ПустаяСтрока(Надбавка) Тогда
Продолжить;
КонецЕсли;
ИдентификаторНадбавки = ИдентификаторыНадбавокСуммой[Индекс];
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'НСУМ'") + ?(Индекс = 0,"", Индекс);
Описание.Наименование = Надбавка;
Описание.ФормулаРасчета = ИдентификаторНадбавки + " * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.КлючевыеСвойства = "Наименование";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачислениеДоплатаЗаПереработкиПоСуммированномуУчету(КоллекторНачислений = Неопределено, СвойстваНачислений = Неопределено, НастройкиРасчетаЗарплаты = Неопределено, ТекущиеНастройкиРасчетаЗарплаты = Неопределено)
УстановитьПривилегированныйРежим(Истина);
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
КонецЕсли;
ИспользоватьОплатуПереработокСуммированногоУчета = НастройкиРасчетаЗарплаты.ИспользоватьОплатуПереработокСуммированногоУчета;
ИспользоватьУчетВремениСотрудниковВЧасах = НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах;
Справочники.ПоказателиРасчетаЗарплаты.СоздатьПоказателиСуммированногоУчета();
ОпределяющиеПоказатели = Новый Массив;
ОпределяющиеПоказатели.Добавить("ПереработаноПоСуммированномуУчету");
ОпределяющиеПоказатели.Добавить("ПереработаноПоСуммированномуУчетуВПределах2Часов");
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРБТС'");
Описание.Наименование = НСтр("ru = 'Доплата за переработки при суммированном учете рабочего времени'");
Описание.КраткоеНаименование = НСтр("ru = 'Переработки при сумм. учете'");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете;
Описание.ФормулаРасчета = "(ПереработаноПоСуммированномуУчетуВПределах2Часов * 0.5 + (ПереработаноПоСуммированномуУчету - ПереработаноПоСуммированномуУчетуВПределах2Часов)) * СтоимостьЧаса";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.ОпределяющиеПоказатели = ОпределяющиеПоказатели;
Описание.КлючевыеСвойства = "ОпределяющиеПоказатели";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПереработокСуммированногоУчета", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если ИспользоватьОплатуПереработокСуммированногоУчета И ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений);
КонецЕсли;
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
Процедура СоздатьНачисленияКомпенсационныеВыплаты(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета)
КомпенсационныеВыплаты = ПараметрыПланаВидовРасчета.КомпенсационныеВыплаты;
Если КомпенсационныеВыплаты.Количество() > 0 Тогда
Для каждого Выплата Из КомпенсационныеВыплаты Цикл
Если ПустаяСтрока(Выплата.Название) Тогда
Продолжить;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсационныеВыплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'КМПВ'");
Описание.Наименование = Выплата.Название;
Если Выплата.ПорядокНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете Тогда
Описание.ФормулаРасчета = СОКРЛП(Выплата.Показатель) + " * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней";
Иначе
Описание.ФормулаРасчета = СОКРЛП(Выплата.Показатель);
КонецЕсли;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.СпособВыполненияНачисления = Выплата.ПорядокНачисления;
Описание.КодДоходаНДФЛ = Выплата.КодДоходаНДФЛ;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ПрочиеДоходы;
Описание.КодДоходаСтраховыеВзносы = Выплата.КодДоходаСтраховыеВзносы;
Описание.КодДоходаСтраховыеВзносы2017 = Выплата.КодДоходаСтраховыеВзносы2017;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп25ст255;
Описание.КлючевыеСвойства = "Наименование";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачисленияНатуральныеДоходы(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета, НастройкиРасчетаЗарплаты)
НатуральныеДоходы = ПараметрыПланаВидовРасчета.НатуральныеДоходы;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаТрудаВНатуральнойФорме;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'НТОПЛ'");
Описание.Наименование = НСтр("ru = 'Оплата в натуральной форме'");
Описание.КраткоеНаименование = НСтр("ru = 'Оплата в натур. форме'");
Описание.ФормулаРасчета = "НатуральнаяОплата * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней";
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя");
Описание.УчетВремениВЧасах = Ложь;
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("НатуральнаяОплата");
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ОплатаТрудаВНатуральнойФорме;
Описание.КлючевыеСвойства = "Ссылка";
Если НатуральныеДоходы.ОплатаТрудаВНатуральнойФорме Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ОплатаТрудаВНатуральнойФорме = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Если Не НастройкиРасчетаЗарплаты.ИспользоватьДоходыВНатуральнойФорме Тогда
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоходВНатуральнойФорме;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
Возврат;
КонецЕсли;
СписокНатуральныхДоходов = НатуральныеДоходы.НатуральныеДоходы;
Если СписокНатуральныхДоходов.Количество() > 0 Тогда
Для Сч = 1 По СписокНатуральныхДоходов.Количество() Цикл
Индекс = Сч-1;
Доход = СокрЛП(СписокНатуральныхДоходов[Индекс]);
Если ПустаяСтрока(Доход) Тогда
Продолжить;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоходВНатуральнойФорме;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'НТ%1'"), Формат(Сч, "ЧЦ=3; ЧВН="));
Описание.Наименование = Доход;
Описание.ФормулаРасчета = "";
Описание.Рассчитывается = Ложь;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.КлючевыеСвойства = "Наименование";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
КонецЦикла;
Иначе
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоходВНатуральнойФорме;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'НАТДХ'") + ?(Индекс = 0,"", Индекс);
Описание.Наименование = НСтр("ru = 'Натуральный доход'");
Описание.КраткоеНаименование = НСтр("ru = 'Натур. доход'");
Описание.ФормулаРасчета = "";
Описание.Рассчитывается = Ложь;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.КлючевыеСвойства = "КатегорияНачисленияИлиНеоплаченногоВремени";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачисленияПремий(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета)
ПараметрыПремии = ПараметрыПланаВидовРасчета.ЕжемесячнаяПремия;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРЕМП'");
Описание.Наименование = НСтр("ru = 'Премия ежемесячная процентом'");
Описание.КраткоеНаименование = НСтр("ru = 'Премия мес.'");
Описание.ФормулаРасчета = "ПроцентЕжемесячнойПремии / 100 * РасчетнаяБаза";
Описание.КоличествоМесяцевБазовогоПериода = 1;
Описание.СдвигБазовогоПериода = 1;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ПремияПроцентом;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Если ЗначениеЗаполнено(ПараметрыПремии.КодДохода) Тогда
Описание.КодДоходаНДФЛ = ПараметрыПремии.КодДохода;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
КонецЕсли;
Если ПараметрыПремии.БазовыйПериодПрошлыйМесяц Тогда
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ПредыдущийМесяц;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Иначе
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
КонецЕсли;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ЕжемесячнаяПремияПроцентом;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПремии.ИспользоватьПремиюПроцентом Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ЕжемесячнаяПремияПроцентом = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРЕМС'");
Описание.Наименование = НСтр("ru = 'Премия ежемесячная суммой'");
Описание.КраткоеНаименование = НСтр("ru = 'Премия мес.'");
Описание.ФормулаРасчета = "РазмерЕжемесячнойПремии * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Истина;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ПремияПроцентом;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ЕжемесячнаяПремияСуммой;
Описание.КлючевыеСвойства = "Ссылка";
Если ЗначениеЗаполнено(ПараметрыПремии.КодДохода) Тогда
Описание.КодДоходаНДФЛ = ПараметрыПремии.КодДохода;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
КонецЕсли;
Если ПараметрыПремии.ИспользоватьПремиюСуммой Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ЕжемесячнаяПремияСуммой = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
ПараметрыПремии = ПараметрыПланаВидовРасчета.ГодоваяПремия;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРГП'");
Описание.Наименование = НСтр("ru = 'Премия за год (процентом)'");
Описание.КраткоеНаименование = НСтр("ru = 'Премия год.'");
Описание.ФормулаРасчета = "ПроцентГодовойПремии / 100 * РасчетнаяБаза";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.КоличествоМесяцевБазовогоПериода = 12;
Описание.СдвигБазовогоПериода = 1;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ПремияГодоваяПроцентом;
Если ЗначениеЗаполнено(ПараметрыПремии.КодДохода) Тогда
Описание.КодДоходаНДФЛ = ПараметрыПремии.КодДохода;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
КонецЕсли;
Если ПараметрыПремии.НачисляетсяПоЗначениюПоказателей Тогда
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете;
Описание.ОпределяющиеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("ПроцентГодовойПремии");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийГод;
ИначеЕсли ПараметрыПремии.НачисляетсяВМесяцах Тогда
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ВЗаданныхМесяцахПриОкончательномРасчете;
Если ПараметрыПремии.НомерМесяцаНачисленияГодовойПремии = 12 Тогда
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийГод;
Иначе
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ПредыдущийГод;
КонецЕсли;
Описание.МесяцыНачисления = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПараметрыПремии.НомерМесяцаНачисленияГодовойПремии);
Иначе
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ПредыдущийГод;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Премия;
КонецЕсли;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ГодоваяПремияПроцентом;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПремии.ИспользоватьПремиюПроцентом Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ГодоваяПремияПроцентом = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРГС'");
Описание.Наименование = НСтр("ru = 'Премия за год (суммой)'");
Описание.КраткоеНаименование = НСтр("ru = 'Премия год.'");
Описание.ФормулаРасчета = "РазмерГодовойПремии";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.КоличествоМесяцевБазовогоПериода = 12;
Описание.СдвигБазовогоПериода = 1;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ПремияГодоваяФиксированнойСуммой;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ПредыдущийГод;
Если ЗначениеЗаполнено(ПараметрыПремии.КодДохода) Тогда
Описание.КодДоходаНДФЛ = ПараметрыПремии.КодДохода;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
КонецЕсли;
Если ПараметрыПремии.НачисляетсяПоЗначениюПоказателей Тогда
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете;
Описание.ОпределяющиеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("РазмерГодовойПремии");
ИначеЕсли ПараметрыПремии.НачисляетсяВМесяцах Тогда
Описание.ФормулаРасчета = "";
Описание.Рассчитывается = Ложь;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ВЗаданныхМесяцахПриОкончательномРасчете;
Описание.МесяцыНачисления = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПараметрыПремии.НомерМесяцаНачисленияГодовойПремии);
Иначе
Описание.ФормулаРасчета = "";
Описание.Рассчитывается = Ложь;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Премия;
КонецЕсли;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ГодоваяПремияСуммой;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПремии.ИспользоватьПремиюСуммой Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ГодоваяПремияСуммой = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
ПараметрыПремии = ПараметрыПланаВидовРасчета.КвартальнаяПремия;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КвартальнаяПремия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРКП'");
Описание.Наименование = НСтр("ru = 'Премия за квартал (процентом)'");
Описание.КраткоеНаименование = НСтр("ru = 'Премия кварт.'");
Описание.ФормулаРасчета = "ПроцентКвартальнойПремии / 100 * РасчетнаяБаза";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.КоличествоМесяцевБазовогоПериода = 3;
Описание.СдвигБазовогоПериода = 1;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ПремияПроцентом;
МесяцыНачисления = ПараметрыПремии.НомераМесяцевНачисленияКвартальнойПремии;
Если ЗначениеЗаполнено(ПараметрыПремии.КодДохода) Тогда
Описание.КодДоходаНДФЛ = ПараметрыПремии.КодДохода;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
КонецЕсли;
Если ПараметрыПремии.НачисляетсяПоЗначениюПоказателей Тогда
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете;
Описание.ОпределяющиеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("ПроцентКвартальнойПремии");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ПредыдущийКвартал;
ИначеЕсли ПараметрыПремии.НачисляетсяВМесяцах Тогда
ПервыйМесяц = 12;
Для каждого МесяцНачисления Из МесяцыНачисления Цикл
Если ПервыйМесяц > МесяцНачисления Тогда
ПервыйМесяц = МесяцНачисления;
КонецЕсли;
КонецЦикла;
Если ПервыйМесяц = 3 Тогда
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийКвартал;
Иначе
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ПредыдущийКвартал;
КонецЕсли;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ВЗаданныхМесяцахПриОкончательномРасчете;
Описание.МесяцыНачисления = МесяцыНачисления;
Иначе
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Премия;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ПредыдущийКвартал;
КонецЕсли;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.КвартальнаяПремияПроцентом;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПремии.ИспользоватьПремиюПроцентом Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.КвартальнаяПремияПроцентом = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КвартальнаяПремия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРКС'");
Описание.Наименование = НСтр("ru = 'Премия за квартал (суммой)'");
Описание.КраткоеНаименование = НСтр("ru = 'Премия кварт.'");
Описание.ФормулаРасчета = "РазмерКвартальнойПремии";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.КоличествоМесяцевБазовогоПериода = 3;
Описание.СдвигБазовогоПериода = 1;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ПремияФиксированнойСуммой;
МесяцыНачисления = ПараметрыПремии.НомераМесяцевНачисленияКвартальнойПремии;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.НесколькоПредыдущихМесяцев;
Если ЗначениеЗаполнено(ПараметрыПремии.КодДохода) Тогда
Описание.КодДоходаНДФЛ = ПараметрыПремии.КодДохода;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
КонецЕсли;
Если ПараметрыПремии.НачисляетсяПоЗначениюПоказателей Тогда
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете;
Описание.ОпределяющиеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("РазмерКвартальнойПремии");
ИначеЕсли ПараметрыПремии.НачисляетсяВМесяцах Тогда
Описание.ФормулаРасчета = "";
Описание.Рассчитывается = Ложь;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ВЗаданныхМесяцахПриОкончательномРасчете;
Описание.МесяцыНачисления = МесяцыНачисления;
Иначе
Описание.ФормулаРасчета = "";
Описание.Рассчитывается = Ложь;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Премия;
КонецЕсли;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.КвартальнаяПремияСуммой;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПремии.ИспользоватьПремиюСуммой Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.КвартальнаяПремияСуммой = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
ПараметрыПремии = ПараметрыПланаВидовРасчета.РазоваяПремия;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРРП'");
Описание.Наименование = НСтр("ru = 'Премия разовая (процентом)'");
Описание.КраткоеНаименование = НСтр("ru = 'Премия разов.'");
Описание.ФормулаРасчета = "ПроцентРазовойПремии / 100 * РасчетнаяБаза";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ПремияПроцентом;
Описание.КоличествоМесяцевБазовогоПериода = ПараметрыПремии.ЧислоМесяцевПериодаРазовойПремии;
Описание.СдвигБазовогоПериода = 1;
Если Описание.КоличествоМесяцевБазовогоПериода = 1 Тогда
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
Иначе
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.НесколькоПредыдущихМесяцев;
КонецЕсли;
Если ПараметрыПремии.НачисляетсяПоЗначениюПоказателей Тогда
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете;
Описание.ОпределяющиеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("ПроцентРазовойПремии");
Описание.ВидДокументаНачисления = Неопределено;
Иначе
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ПредыдущийМесяц;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Премия;
КонецЕсли;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.РазоваяПремияПроцентом;
Описание.КлючевыеСвойства = "Ссылка";
Если ЗначениеЗаполнено(ПараметрыПремии.КодДохода) Тогда
Описание.КодДоходаНДФЛ = ПараметрыПремии.КодДохода;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
КонецЕсли;
Если ПараметрыПремии.ИспользоватьПремиюПроцентом Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.РазоваяПремияПроцентом = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРРС'");
Описание.Наименование = НСтр("ru = 'Премия разовая (суммой)'");
Описание.КраткоеНаименование = НСтр("ru = 'Премия разов.'");
Описание.ФормулаРасчета = "РазмерРазовойПремии";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.СреднийЗаработокОбщий = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ПремияФиксированнойСуммой;
Описание.КоличествоМесяцевБазовогоПериода = ПараметрыПремии.ЧислоМесяцевПериодаРазовойПремии;
Описание.СдвигБазовогоПериода = 1;
Если ПараметрыПремии.НачисляетсяПоЗначениюПоказателей Тогда
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете;
Описание.ОпределяющиеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("РазмерРазовойПремии");
Описание.ВидДокументаНачисления = Неопределено;
Иначе
Описание.ФормулаРасчета = "";
Описание.Рассчитывается = Ложь;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Премия;
КонецЕсли;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.РазоваяПремияСуммой;
Описание.КлючевыеСвойства = "Ссылка";
Если ЗначениеЗаполнено(ПараметрыПремии.КодДохода) Тогда
Описание.КодДоходаНДФЛ = ПараметрыПремии.КодДохода;
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
КонецЕсли;
Если ПараметрыПремии.ИспользоватьПремиюСуммой Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.РазоваяПремияСуммой = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ДПВРЧ'");
Описание.Наименование = НСтр("ru = 'Доплата за выручку от реализации'");
Описание.КраткоеНаименование = НСтр("ru = 'Допл. от реализ.'");
Описание.ФормулаРасчета = "Выручка * ПроцентДоплатыЗаВыручку / 100";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете;
Описание.ОпределяющиеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Выручка");
Описание.СреднийЗаработокФСС = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ДоплатаЗаВыручкуОтРеализации;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПланаВидовРасчета.ИспользоватьДоплатуЗаВыручкуОтРеализации Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ДоплатаЗаВыручкуОтРеализации = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ДППЛН'");
Описание.Наименование = НСтр("ru = 'Доплата за выполнение плана'");
Описание.КраткоеНаименование = НСтр("ru = 'Допл. за выполн. плана'");
Описание.ФормулаРасчета = "?(ВыполнениеПлана >= План, ВыполнениеПлана / План, 0) * РасчетнаяБаза";
Описание.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюПоказателяПриОкончательномРасчете;
Описание.ОпределяющиеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("ВыполнениеПлана");
Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
Описание.КоличествоМесяцевБазовогоПериода = 1;
Описание.СдвигБазовогоПериода = 1;
Описание.СреднийЗаработокФСС = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ДоплатаЗаВыполнениеПлана;
Описание.КлючевыеСвойства = "Ссылка";
Если ПараметрыПланаВидовРасчета.ИспользоватьДоплатуЗаВыполнениеПлана Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ДоплатаЗаВыполнениеПлана = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачисленияЕжегодногоОтпуска(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений)
ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Основной");
НаименованиеОтпуска = НСтр("ru = 'Отпуск основной'");
КраткоеНаименование = НСтр("ru = 'Отпуск'");
СоздаватьКомпенсацию = Истина;
СоздатьНачисленияОтпускаИКомпенсации(ВидОтпуска, НаименованиеОтпуска, Истина, СоздаватьКомпенсацию, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, , КраткоеНаименование);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
НастройкиПриложения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
Если НастройкиПриложения.ИспользоватьРасчетСохраняемогоДенежногоСодержания Тогда
ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Основной");
НаименованиеОтпуска = НСтр("ru = 'Отпуск основной (сохр. ден. содержание)'");
КраткоеНаименование = НСтр("ru = 'Отпуск'");
СоздаватьКомпенсацию = Истина;
СоздатьНачисленияОтпускаИКомпенсации(ВидОтпуска, НаименованиеОтпуска, Истина, СоздаватьКомпенсацию, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, Истина, КраткоеНаименование);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачисленияОтпускаНаСанаторноКурортноеЛечениеЗаСчетФСС(КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено)
ОбновитьПовторноИспользуемыеЗначения();
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено
Или КоллекторУдержаний = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускНаСанаторноКурортноеЛечение;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныйОтпуск");
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Наименование = НСтр("ru = 'Отпуск на период санаторно-курортного лечения (за счет ФСС)'");
Описание.КраткоеНаименование = НСтр("ru = 'Отпуск на СКЛ (ФСС)'");
Описание.Код = НСтр("ru = 'СКЛ'");
Описание.КлючевыеСвойства = "КатегорияНачисленияИлиНеоплаченногоВремени";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачисленияЕжегодногоОтпускаГосслужащих(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений)
Если Не ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
Возврат;
КонецЕсли;
НастройкиПриложения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
Если Не НастройкиПриложения.РаботаВБюджетномУчреждении Тогда
Возврат;
КонецЕсли;
ИспользоватьГосударственнуюСлужбу = НастройкиПриложения.ИспользоватьГосударственнуюСлужбу;
ИспользоватьМуниципальнуюСлужбу = НастройкиПриложения.ИспользоватьМуниципальнуюСлужбу;
ИспользоватьРасчетСохраняемогоДенежногоСодержания = НастройкиПриложения.ИспользоватьРасчетСохраняемогоДенежногоСодержания;
Если (ИспользоватьГосударственнуюСлужбу Или ИспользоватьМуниципальнуюСлужбу)
И ИспользоватьРасчетСохраняемогоДенежногоСодержания Тогда
ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускЗаВыслугуЛетНаГосударственнойСлужбе");
Если ИспользоватьГосударственнуюСлужбу Тогда
НаименованиеОтпуска = НСтр("ru = 'Отпуск за выслугу лет на государственной службе'");
КраткоеНаименование = НСтр("ru = 'Отп. (выслуга лет)'");
Иначе
НаименованиеОтпуска = НСтр("ru = 'Отпуск за выслугу лет на муниципальной службе'");
КраткоеНаименование = НСтр("ru = 'Отп. (выслуга лет)'");
КонецЕсли;
СоздаватьКомпенсацию = Истина;
СоздатьНачисленияОтпускаИКомпенсации(ВидОтпуска, НаименованиеОтпуска, Истина, СоздаватьКомпенсацию, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, НастройкиПриложения.ИспользоватьРасчетСохраняемогоДенежногоСодержания, КраткоеНаименование);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачисленияДополнительныеОтпуска(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, ПараметрыПланаВидовРасчета)
ДополнительныеОтпуска = ПараметрыПланаВидовРасчета.ДополнительныеОтпуска;
ДополнительныеОтпуска = ДополнительныеОтпуска.ДополнительныеОтпуска;
Если ДополнительныеОтпуска.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Для Каждого ДополнительныйОтпуск Из ДополнительныеОтпуска Цикл
ВидОтпуска = ДополнительныйОтпуск.ВидОтпуска;
НаименованиеОтпуска = ДополнительныйОтпуск.Наименование;
Если ПустаяСтрока(НаименованиеОтпуска) Тогда
Продолжить;
КонецЕсли;
СоздаватьКомпенсацию = ДополнительныйОтпуск.ОтпускЯвляетсяЕжегодным;
СоздатьНачисленияОтпускаИКомпенсации(ВидОтпуска, НаименованиеОтпуска, Истина, СоздаватьКомпенсацию, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
КонецЦикла;
КонецПроцедуры
Процедура СоздатьНачисленияДляУчетаВремениСотрудниковВЧасах(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета, ТекущиеНастройки = Неопределено)
ТекущиеНастройкиРасчетаЗарплаты = Неопределено;
ТекущиеНастройкиУчетаВремени = Неопределено;
Если ТекущиеНастройки <> Неопределено Тогда
ТекущиеНастройки.Свойство("НастройкиРасчетаЗарплаты", ТекущиеНастройкиРасчетаЗарплаты);
ТекущиеНастройки.Свойство("НастройкиУчетаВремени", ТекущиеНастройкиУчетаВремени);
КонецЕсли;
ИспользоватьУчетВремениСотрудниковВЧасах = НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах;
ПовременнаяПочасоваяОплата = Новый Массив;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОКЛЧС'");
Описание.Наименование = НСтр("ru = 'Оплата по окладу (по часам)'");
Описание.КраткоеНаименование = НСтр("ru = 'Оклад (по часам)'");
Описание.ФормулаРасчета = "Оклад * ВремяВЧасах / НормаЧасов";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеВПределахНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя");
Описание.УчетВремениВЧасах = Истина;
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Оклад");
Описание.КлючевыеСвойства = "УчетВремениВЧасах,ОбозначениеВТабелеУчетаРабочегоВремени";
ПовременнаяПочасоваяОплата.Добавить(Описание);
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ТРФЧС'");
Описание.Наименование = НСтр("ru = 'Оплата по часовому тарифу'");
Описание.КраткоеНаименование = НСтр("ru = 'Часовой тариф'");
Описание.ФормулаРасчета = "ТарифнаяСтавкаЧасовая * ВремяВЧасах";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеВПределахНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя");
Описание.УчетВремениВЧасах = Истина;
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("ТарифнаяСтавкаЧасовая");
Описание.КлючевыеСвойства = "УчетВремениВЧасах,ОбозначениеВТабелеУчетаРабочегоВремени";
ПовременнаяПочасоваяОплата.Добавить(Описание);
Если ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписаниям(КоллекторНачислений, ПовременнаяПочасоваяОплата);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СдельнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'СДЛЧС'");
Описание.Наименование = НСтр("ru = 'Сдельный заработок (для работающих по часовому тарифу)'");
Описание.КраткоеНаименование = НСтр("ru = 'Сдельно'");
Описание.ФормулаРасчета = "Макс(СдельныйЗаработок, ТарифнаяСтавкаЧасовая * ВремяВЧасах)";
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("ТарифнаяСтавкаЧасовая");
Описание.УчетВремениВЧасах = Истина;
Описание.КлючевыеСвойства = "УчетВремениВЧасах";
Описание.ИспользоватьОперативныеПоказателиВЦеломЗаМесяц = Истина;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьСдельныйЗаработок", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если ИспользоватьУчетВремениСотрудниковВЧасах
И НастройкиРасчетаЗарплаты.ИспользоватьСдельныйЗаработок Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
НастройкиУчетаВремени = УчетРабочегоВремениРасширенный.НастройкиУчетаВремени();
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'НОЧН'");
Описание.Наименование = НСтр("ru = 'Доплата за работу в ночное время'");
Описание.КраткоеНаименование = НСтр("ru = 'Ночные часы'");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюВидаВремениПриОкончательномРасчете;
Описание.ФормулаРасчета = "СтоимостьЧаса * ВремяВЧасах * ПроцентДоплатыЗаРаботуВНочноеВремя / 100";
Описание.ВключатьВФОТ = Ложь;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РаботаНочныеЧасы");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("УчитыватьНочныеЧасы", НастройкиУчетаВремени, ТекущиеНастройкиУчетаВремени) Тогда
Если ИспользоватьУчетВремениСотрудниковВЧасах
И НастройкиУчетаВремени.УчитыватьНочныеЧасы Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРНОЧ'");
Описание.Наименование = НСтр("ru = 'Доплата за работу в праздничные дни (ночное время)'");
Описание.КраткоеНаименование = НСтр("ru = 'Ночные часы (праздн.)'");
Описание.ФормулаРасчета = "СтоимостьЧаса * ВремяВЧасах";
Описание.ВключатьВФОТ = Ложь;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РаботаНочныеЧасы");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЗаПраздничныеДниПриОкончательномРасчете;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени,СпособВыполненияНачисления";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПраздничныхИВыходных", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("УчитыватьНочныеЧасы", НастройкиУчетаВремени, ТекущиеНастройкиУчетаВремени) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПраздничныхИВыходных
И НастройкиУчетаВремени.УчитыватьНочныеЧасы
И ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ВЕЧЕР'");
Описание.Наименование = НСтр("ru = 'Доплата за работу в вечернее время'");
Описание.КраткоеНаименование = НСтр("ru = 'Вечерние часы'");
Описание.ФормулаРасчета = "СтоимостьЧаса * ВремяВЧасах * ПроцентДоплатыЗаРаботуВВечернееВремя / 100";
Описание.ВключатьВФОТ = Ложь;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РаботаВечерниеЧасы");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюВидаВремениПриОкончательномРасчете;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("УчитыватьВечерниеЧасы", НастройкиУчетаВремени, ТекущиеНастройкиУчетаВремени) Тогда
Если ИспользоватьУчетВремениСотрудниковВЧасах
И НастройкиУчетаВремени.УчитыватьВечерниеЧасы Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРВЕЧ'");
Описание.Наименование = НСтр("ru = 'Доплата за работу в праздничные дни (вечернее время)'");
Описание.КраткоеНаименование = НСтр("ru = 'Вечерние часы (праздн.)'");
Описание.ФормулаРасчета = "СтоимостьЧаса * ВремяВЧасах";
Описание.ВключатьВФОТ = Ложь;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РаботаВечерниеЧасы");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЗаПраздничныеДниПриОкончательномРасчете;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени,СпособВыполненияНачисления";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПраздничныхИВыходных", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("УчитыватьВечерниеЧасы", НастройкиУчетаВремени, ТекущиеНастройкиУчетаВремени) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПраздничныхИВыходных
И НастройкиУчетаВремени.УчитыватьВечерниеЧасы
И ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'КОРМЛ'");
Описание.Наименование = НСтр("ru = 'Оплата времени кормления ребенка'");
Описание.КраткоеНаименование = НСтр("ru = 'Кормл. ребенка'");
Описание.ФормулаРасчета = "Макс(СреднийЗаработокОбщий * НормаЧасов, УчитыватьМРОТ * МРОТ) / НормаЧасов * ВремяВЧасах";
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюВидаВремениПриОкончательномРасчете;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.КормлениеРебенка");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеВПределахНормы;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп7ст255;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("УчитыватьВремяНаКормлениеРебенка", НастройкиУчетаВремени, ТекущиеНастройкиУчетаВремени) Тогда
Если ИспользоватьУчетВремениСотрудниковВЧасах
И НастройкиУчетаВремени.УчитыватьВремяНаКормлениеРебенка Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'СВХУР'");
Описание.Наименование = НСтр("ru = 'Оплата сверхурочных часов'");
Описание.КраткоеНаименование = НСтр("ru = 'Сверхурочно'");
Описание.ФормулаРасчета = "(ОтработаноСверхурочноВПределах2Часов * 1.5 + (ОтработаноСверхурочно - ОтработаноСверхурочноВПределах2Часов) * 2) * СтоимостьЧаса";
Описание.ВключатьВФОТ = Ложь;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Сверхурочные");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюВидаВремениПриОкончательномРасчете;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеСверхНормы;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуСверхурочных", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если ИспользоватьУчетВремениСотрудниковВЧасах
И НастройкиРасчетаЗарплаты.ИспользоватьОплатуСверхурочных Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРОПЛ'");
Описание.Наименование = НСтр("ru = 'Оплата работы в праздничные и выходные дни'");
Описание.КраткоеНаименование = НСтр("ru = 'Праздн. и выходн.'");
Описание.ФормулаРасчета = "ВремяВДняхЧасах * СтоимостьДняЧаса * 2";
Описание.ВключатьВФОТ = Ложь;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеСверхНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Праздники");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюВидаВремениПриОкончательномРасчете;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПраздничныхИВыходных", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПраздничныхИВыходных Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРДОП'");
Описание.Наименование = НСтр("ru = 'Доплата за работу в праздничные дни (дневное время)'");
Описание.КраткоеНаименование = НСтр("ru = 'Праздн. и выходн.'");
Описание.ФормулаРасчета = "ВремяВДняхЧасах * СтоимостьДняЧаса";
Описание.ВключатьВФОТ = Ложь;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Явка");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЗаПраздничныеДниПриОкончательномРасчете;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени,СпособВыполненияНачисления";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПраздничныхИВыходных", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПраздничныхИВыходных Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'СВУРН'");
Описание.Наименование = НСтр("ru = 'Оплата сверхурочных часов без повышенной оплаты'");
Описание.КраткоеНаименование = НСтр("ru = 'Сверхурочно норм.'");
Описание.ФормулаРасчета = "ОтработаноСверхурочно * СтоимостьЧаса";
Описание.ВключатьВФОТ = Ложь;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.СверхурочныеБезПовышеннойОплаты");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюВидаВремениПриОкончательномРасчете;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеСверхНормы;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтгулы", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуСверхурочных", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтгулы
И НастройкиРасчетаЗарплаты.ИспользоватьОплатуСверхурочных
И ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРОПН'");
Описание.Наименование = НСтр("ru = 'Оплата работы в праздничные и выходные дни без повышенной оплаты'");
Описание.КраткоеНаименование = НСтр("ru = 'Праздн. и выходн. норм.'");
Описание.ФормулаРасчета = "ВремяВДняхЧасах * СтоимостьДняЧаса";
Описание.ВключатьВФОТ = Ложь;
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеСверхНормы;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ПраздникиБезПовышеннойОплаты");
Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоЗначениюВидаВремениПриОкончательномРасчете;
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
Описание.КлючевыеСвойства = "ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтгулы", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПраздничныхИВыходных", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтгулы
И НастройкиРасчетаЗарплаты.ИспользоватьОплатуПраздничныхИВыходных Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
СоздатьВнутрисменныеОтклонения(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета, ТекущиеНастройкиРасчетаЗарплаты);
Если Не ИспользоватьУчетВремениСотрудниковВЧасах Тогда
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Начисления.Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.УчетВремениВЧасах
| И Начисления.СпособРасчета <> ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаНачислений.ОплатаПростоя)");
Выборка = Запрос.Выполнить().Выбрать();
ПочасовыеНачисления = Новый Массив;
Пока Выборка.Следующий() Цикл
ПочасовыеНачисления.Добавить(Выборка.Ссылка);
КонецЦикла;
УстановитьИспользованиеНачислений(КоллекторНачислений, ПочасовыеНачисления, Ложь);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачислениеНадбавкаЗаКвалификационнуюКатегорию(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты)
ИспользоватьНадбавкуЗаКвалификационнуюКатегорию = НастройкиРасчетаЗарплаты.ИспользоватьКвалификационнуюНадбавку;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("Медицина");
ИспользоватьНадбавкуЗаКвалификационнуюКатегорию = ИспользоватьНадбавкуЗаКвалификационнуюКатегорию И НЕ Модуль.РаботаВМедицинскомУчреждении();
КонецЕсли;
КвалификационнаяНадбавка = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КвалификационнаяНадбавка");
НадбавкиЗаКвалификационнуюКатегорию = Новый Массив;
Если КвалификационнаяНадбавка <> Неопределено Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Показатель", КвалификационнаяНадбавка);
Запрос.Текст = "ВЫБРАТЬ
| НачисленияПоказатели.Ссылка
|ИЗ
| ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
|ГДЕ
| НачисленияПоказатели.Показатель = &Показатель";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НадбавкиЗаКвалификационнуюКатегорию.Добавить(Выборка.Ссылка);
КонецЦикла;
КонецЕсли;
Если НадбавкиЗаКвалификационнуюКатегорию.Количество() > 0 Тогда
Если ИспользоватьНадбавкуЗаКвалификационнуюКатегорию Тогда
УстановитьИспользованиеНачислений(КоллекторНачислений, НадбавкиЗаКвалификационнуюКатегорию, Истина);
Иначе
УстановитьИспользованиеНачислений(КоллекторНачислений, НадбавкиЗаКвалификационнуюКатегорию, Ложь);
КонецЕсли;
Возврат;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'НКК'");
Описание.Наименование = НСтр("ru = 'Надбавка за квалификационную категорию'");
Описание.КраткоеНаименование = НСтр("ru = 'Квалиф. категория'");
Описание.ФормулаРасчета = "КвалификационнаяНадбавка * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней";
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.УчетВремениВЧасах = Ложь;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РабочееВремя");
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("КвалификационнаяНадбавка");
Описание.КлючевыеСвойства = "Ссылка";
Если ИспользоватьНадбавкуЗаКвалификационнуюКатегорию Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьВнутрисменныеОтклонения(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета, ТекущиеНастройкиРасчетаЗарплаты = Неопределено)
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки;
Описание.СвойстваПоКатегории = КоллекцииБЗК.СкопироватьСтруктуру(СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени]);
Описание.Код = НСтр("ru = 'ЧСКМД'");
Описание.Наименование = НСтр("ru = 'Командировка (внутрисменная)'");
Описание.КраткоеНаименование = НСтр("ru = 'Командировка'");
Описание.ФормулаРасчета = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * НормаЧасов, УчитыватьМРОТ * МРОТ) / НормаЧасов * ВремяВЧасах";
ДополнительныеФормулыРасчета = Новый Структура;
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиРК", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * НормаЧасов, 0) / НормаЧасов * ВремяВЧасах");
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиСН", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * НормаЧасов, 0) / НормаЧасов * ВремяВЧасах");
Описание.СвойстваПоКатегории.Вставить("ДополнительныеФормулыРасчета", ДополнительныеФормулыРасчета);
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Описание.ЗапрашиваемыеПоказатели = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("СреднийЗаработокОбщий");
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуКомандировок", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуВнутрисменныхКомандировок", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуКомандировок
И НастройкиРасчетаЗарплаты.ИспользоватьОплатуВнутрисменныхКомандировок
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЧСДОНОР'");
Описание.Наименование = НСтр("ru = 'Оплата за дни сдачи крови и ее компонентов (внутрисменная)'");
Описание.КраткоеНаименование = НСтр("ru = 'Донорство'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ГосударственныеОбязанности");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп20ст255;
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.Код4800;
Описание.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.ПрочиеДоходы;
Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ОплатаДнейСдачиКровиВнутрисменная;
Описание.КлючевыеСвойства = "Ссылка";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах
И ПараметрыПланаВидовРасчета.ИспользоватьОплатуДнейСдачиКрови
И ПараметрыПланаВидовРасчета.ИспользоватьОплатуДнейСдачиКровиВнутрисменных Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ОплатаДнейСдачиКровиВнутрисменная = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах
И ПараметрыПланаВидовРасчета.ИспользоватьОплатуДнейСдачиКрови
И ПараметрыПланаВидовРасчета.ИспользоватьОплатуДнейСдачиКровиВнутрисменных Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.ОплатаДнейСдачиКровиВнутрисменная = Описание.СсылкаНаОбъект;
ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЧСОЗ'");
Описание.Наименование = НСтр("ru = 'Отпуск без оплаты согласно ТК РФ (внутрисменный)'");
Описание.КраткоеНаименование = НСтр("ru = 'Отп. без опл.'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеоплачиваемыйОтпускПоЗаконодательству");
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускБезОплатыПоТКРФ");
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени,ВидОтпуска";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтпускаБезОплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьВнутрисменныеОтпускаБезОплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтпускаБезОплаты
И НастройкиРасчетаЗарплаты.ИспользоватьВнутрисменныеОтпускаБезОплаты
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЧСДО'");
Описание.Наименование = НСтр("ru = 'Отпуск за свой счет (внутрисменный)'");
Описание.КраткоеНаименование = НСтр("ru = 'Отп. за свой счет'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеоплачиваемыйОтпускПоРазрешениюРаботодателя");
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускЗаСвойСчет");
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени,ВидОтпуска";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтпускаБезОплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьВнутрисменныеОтпускаБезОплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтпускаБезОплаты
И НастройкиРасчетаЗарплаты.ИспользоватьВнутрисменныеОтпускаБезОплаты
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЧСУД'");
Описание.Наименование = НСтр("ru = 'Дополнительный учебный отпуск без оплаты (внутрисменный)'");
Описание.КраткоеНаименование = НСтр("ru = 'Учебн. отп. без опл'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтпускНаОбучениеНеоплачиваемый");
Описание.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускБезОплатыУчебный");
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.УЧОТПУСК;
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени,ВидОтпуска";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтпускаБезОплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьВнутрисменныеОтпускаБезОплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтпускаБезОплаты
И НастройкиРасчетаЗарплаты.ИспользоватьВнутрисменныеОтпускаБезОплаты
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоНевыясненнымПричинам;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЧСНВХ'");
Описание.Наименование = НСтр("ru = 'Отсутствие по невыясненной причине (внутрисменное)'");
Описание.КраткоеНаименование = НСтр("ru = 'Неявка'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеявкиПоНевыясненнымПричинам");
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетПрочихНевыходов", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВнутрисменныхПрочихНевыходов", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетПрочихНевыходов
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВнутрисменныхПрочихНевыходов
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прогул;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЧСПРГ'");
Описание.Наименование = НСтр("ru = 'Внутрисменный прогул'");
Описание.КраткоеНаименование = НСтр("ru = 'Прогул'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Прогулы");
Описание.КлючевыеСвойства = "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетПрочихНевыходов", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВнутрисменныхПрочихНевыходов", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетПрочихНевыходов
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВнутрисменныхПрочихНевыходов
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПростойПоВинеРаботника;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРВРЧ'");
Описание.Наименование = НСтр("ru = 'Внутрисменный простой по вине работника'");
Описание.КраткоеНаименование = НСтр("ru = 'Простой без опл.'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.КлючевыеСвойства = "ВидВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуВнутрисменныхПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьОплатуВнутрисменныхПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоНезависящимОтРаботодателяПричинам;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЧСПРО'");
Описание.Наименование = НСтр("ru = 'Оплата часового простоя от оклада по часам'");
Описание.КраткоеНаименование = НСтр("ru = 'Простой'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.КлючевыеСвойства = "ВидВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуВнутрисменныхПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьОплатуВнутрисменныхПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя;
Описание.СвойстваПоКатегории = КоллекцииБЗК.СкопироватьСтруктуру(СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени]);
Описание.Код = НСтр("ru = 'ПРСРЧ'");
Описание.Наименование = НСтр("ru = 'Оплата часового простоя по среднему заработку'");
Описание.КраткоеНаименование = НСтр("ru = 'Простой'");
Описание.ФормулаРасчета = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * НормаЧасов, УчитыватьМРОТ * МРОТ) / НормаЧасов * (2/3) * ВремяВЧасах";
ДополнительныеФормулыРасчета = Новый Структура;
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиРК", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * НормаЧасов, 0) / НормаЧасов * (2/3) * ВремяВЧасах");
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиСН", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * НормаЧасов, 0) / НормаЧасов * (2/3) * ВремяВЧасах");
Описание.СвойстваПоКатегории.Вставить("ДополнительныеФормулыРасчета", ДополнительныеФормулыРасчета);
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.КлючевыеСвойства = "ВидВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуВнутрисменныхПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьОплатуВнутрисменныхПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Отгул;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОТГВС'");
Описание.Наименование = НСтр("ru = 'Отгул (внутрисменный)'");
Описание.КраткоеНаименование = НСтр("ru = 'Отгул (внутрисменный)'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныеВыходныеДниНеОплачиваемые");
Описание.КлючевыеСвойства = "ВидВремени,КатегорияНачисленияИлиНеоплаченногоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОтгулы", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьВнутрисменныеОтгулы", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОтгулы
И НастройкиРасчетаЗарплаты.ИспользоватьВнутрисменныеОтгулы
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПростойПоВинеРаботника;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРОНЧ'");
Описание.Наименование = НСтр("ru = 'Приостановка работы внутрисменная без оплаты (отстранение)'");
Описание.КраткоеНаименование = НСтр("ru = 'Отстранение без опл.'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтстранениеОтРаботыБезОплаты");
Описание.КлючевыеСвойства = "ВидВремени,КатегорияНачисленияИлиНеоплаченногоВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуВнутрисменныхПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьОплатуВнутрисменныхПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоНезависящимОтРаботодателяПричинам;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРООЧ'");
Описание.Наименование = НСтр("ru = 'Приостановка работы внутрисменная с оплатой (отстранение)'");
Описание.КраткоеНаименование = НСтр("ru = 'Отстранение с оплатой'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ОТСТРАН;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтстранениеОтРаботыСОплатой");
Описание.КлючевыеСвойства = "ВидВремени,КатегорияНачисленияИлиНеоплаченногоВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуВнутрисменныхПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетВремениСотрудниковВЧасах", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьОплатуВнутрисменныхПростоев
И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачислениеДниОплаченныеДоНачалаЭксплуатации(КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено)
ОбновитьПовторноИспользуемыеЗначения();
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено
Или КоллекторУдержаний = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПредыдущимиДокументами;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'УЧТДН'");
Описание.Наименование = НСтр("ru = 'Дни, учтенные до начала эксплуатации'");
Описание.КраткоеНаименование = НСтр("ru = 'Дни, уже учтенные ранее'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.КлючевыеСвойства = "КатегорияНачисленияИлиНеоплаченногоВремени";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачислениеКомпенсацияМоральногоВреда(КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено)
НачатьТранзакцию();
Попытка
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено
Или КоллекторУдержаний = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияМоральногоВреда;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'КМВ'");
Описание.Наименование = НСтр("ru = 'Компенсация морального вреда'");
Описание.КраткоеНаименование = НСтр("ru = 'Морал. вред'");
Описание.УчетВремениВЧасах = Ложь;
Описание.КлючевыеСвойства = "Ссылка";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Ошибка создания начисления «Компенсация морального вреда»'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение,
Метаданные.ПланыВидовРасчета.Начисления, ,
НСтр("ru = 'Не удалось создать начисление «Компенсация морального вреда» из-за предположительно неверной (зацикленной) настройки плана видов расчета.'",
ОбщегоНазначения.КодОсновногоЯзыка()));
КонецПопытки;
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
Процедура СоздатьНачислениеОплатаВынужденногоПростоя(КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено)
НачатьТранзакцию();
Попытка
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено
Или КоллекторУдержаний = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ВынужденныйПрогул");
Описание.Код = НСтр("ru = 'ОВП'");
Описание.Наименование = НСтр("ru = 'Оплата вынужденного простоя'");
Описание.КраткоеНаименование = НСтр("ru = 'Вынужд. простой'");
Описание.УчетВремениВЧасах = Ложь;
Описание.КлючевыеСвойства = "Ссылка";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Ошибка создания начисления ""Оплата вынужденного простоя""'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение,
Метаданные.ПланыВидовРасчета.Начисления, ,
НСтр("ru = 'Не удалось создать начисление ""Оплата вынужденного простоя"" из-за предположительно неверной (зацикленной) настройки плана видов расчета.'",
ОбщегоНазначения.КодОсновногоЯзыка()));
КонецПопытки;
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
Процедура СоздатьНачисленияНеявкаПоБолезни(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, НастройкиРасчетаЗарплаты)
УстановитьПривилегированныйРежим(Истина);
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоБолезни;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ОБНЗ'");
Описание.Наименование = НСтр("ru = 'Отсутствие по болезни (больничный еще не закрыт)'");
Описание.КраткоеНаименование = НСтр("ru = 'Болезнь'");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка();
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Болезнь");
Описание.КлючевыеСвойства = "ВидВремени,КатегорияНачисленияИлиНеоплаченногоВремени";
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетПрочихНевыходов Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Если ЗаписыватьНачисления Тогда
Для Каждого КлючИЗначение Из КоллекторНачислений Цикл
КлючИЗначение.Значение.ДополнительныеСвойства.Вставить("ИзменениеПланаВидовРасчетаПоНастройкам", Истина);
КонецЦикла;
НастроитьСвязиНачислений(КоллекторНачислений, СвойстваНачислений);
ЗаполнитьПорядокНачислений(КоллекторНачислений);
РасчетЗарплатыРасширенный.ДозаполнитьВидыРасчета(КоллекторНачислений);
РасчетЗарплатыРасширенный.ЗаписатьПакетВидовРасчета(КоллекторНачислений);
КонецЕсли;
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
Процедура СоздатьНачисленияПриостановкиРаботы(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты = Неопределено)
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПростойПоВинеРаботника;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРОН'");
Описание.Наименование = НСтр("ru = 'Приостановка работы без оплаты (отстранение)'");
Описание.КраткоеНаименование = НСтр("ru = 'Отстранение без опл.'");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка();
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтстранениеОтРаботыБезОплаты");
Описание.КлючевыеСвойства = "ВидВремени,КатегорияНачисленияИлиНеоплаченногоВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоНезависящимОтРаботодателяПричинам;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ПРОО'");
Описание.Наименование = НСтр("ru = 'Приостановка работы с оплатой (отстранение)'");
Описание.КраткоеНаименование = НСтр("ru = 'Отстранение с оплатой'");
Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ОТСТРАН;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОтстранениеОтРаботыСОплатой");
Описание.КлючевыеСвойства = "ВидВремени,КатегорияНачисленияИлиНеоплаченногоВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя;
Описание.СвойстваПоКатегории = КоллекцииБЗК.СкопироватьСтруктуру(СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени]);
Описание.Код = НСтр("ru = 'ПРЗВ'");
Описание.Наименование = НСтр("ru = 'Приостановка работы по причине задержки выплаты зарплаты'");
Описание.КраткоеНаименование = НСтр("ru = 'Приостановка работы'");
Описание.ФормулаРасчета = "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * НормаДнейЧасов, УчитыватьМРОТ * МРОТ) / НормаДнейЧасов * ВремяВДняхЧасах";
ДополнительныеФормулыРасчета = Новый Структура;
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиРК", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * НормаДнейЧасов, 0) / НормаДнейЧасов * ВремяВДняхЧасах");
ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиСН", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * НормаДнейЧасов, 0) / НормаДнейЧасов * ВремяВДняхЧасах");
Описание.СвойстваПоКатегории.Вставить("ДополнительныеФормулыРасчета", ДополнительныеФормулыРасчета);
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ЗадержкаВыплатыЗаработнойПлаты");
Описание.КлючевыеСвойства = "ВидВремени,КатегорияНачисленияИлиНеоплаченногоВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачислениеКомпенсацияЗаНеотработанныеДниЧасыПриУвольнении(КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено)
НачатьТранзакцию();
Попытка
Справочники.ПоказателиРасчетаЗарплаты.СоздатьПоказателиВремениКомпенсацииПриУвольнении();
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено
Или КоллекторУдержаний = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниЧасыПриУвольнении;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'КУВ'");
Описание.Наименование = НСтр("ru = 'Компенсация за неотработанные дни при увольнении'");
Описание.КраткоеНаименование = НСтр("ru = 'Комп. при увольнении'");
Описание.УчетВремениВЧасах = Ложь;
Описание.КлючевыеСвойства = "Ссылка";
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2014");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
НачисленияКатегории = НачисленияПоКатегории(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниЧасыПриУвольнении);
Если НачисленияКатегории.Количество() > 0 Тогда
Описание.СсылкаНаОбъект = НачисленияКатегории[0];
КонецЕсли;
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Ошибка создания начисления «Компенсация за неотработанные дни при увольнении»'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение,
Метаданные.ПланыВидовРасчета.Начисления, ,
НСтр("ru = 'Не удалось создать начисление «Компенсация за неотработанные дни при увольнении» из-за предположительно неверной (зацикленной) настройки плана видов расчета.'",
ОбщегоНазначения.КодОсновногоЯзыка()));
КонецПопытки;
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
Процедура СоздатьНачислениеКомпенсацияЗаНеотработанныеДниПриУвольненииГосслужащего(КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено, ПроверятьНаличиеНачислений = Истина) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
Возврат;
КонецЕсли;
НастройкиПриложения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
Если Не НастройкиПриложения.РаботаВБюджетномУчреждении Тогда
Возврат;
КонецЕсли;
ИспользоватьГосударственнуюСлужбу = НастройкиПриложения.ИспользоватьГосударственнуюСлужбу;
ИспользоватьМуниципальнуюСлужбу = НастройкиПриложения.ИспользоватьМуниципальнуюСлужбу;
ИспользоватьРасчетСохраняемогоДенежногоСодержания = НастройкиПриложения.ИспользоватьРасчетСохраняемогоДенежногоСодержания;
Если (ИспользоватьГосударственнуюСлужбу ИЛИ ИспользоватьМуниципальнуюСлужбу)
И ИспользоватьРасчетСохраняемогоДенежногоСодержания Тогда
НачатьТранзакцию();
Попытка
Справочники.ПоказателиРасчетаЗарплаты.СоздатьПоказателиВремениКомпенсацииПриУвольнении();
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено
Или КоллекторУдержаний = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
КоллекторУдержаний = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниПриУвольненииГосслужащего;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Если ИспользоватьГосударственнуюСлужбу Тогда
Описание.Код = НСтр("ru = 'КУГ'");
Описание.Наименование = НСтр("ru = 'Компенсация за неотработанные дни при увольнении ГС (сохр. ден. содержание)'");
Описание.КраткоеНаименование = НСтр("ru = 'Комп. при увольн. гос. сл.'");
Иначе
Описание.Код = НСтр("ru = 'КУМ'");
Описание.Наименование = НСтр("ru = 'Компенсация за неотработанные дни при увольнении МС (сохр. ден. содержание)'");
Описание.КраткоеНаименование = НСтр("ru = 'Комп. при увольн. мун. сл.'");
КонецЕсли;
Описание.УчетВремениВЧасах = Ложь;
Описание.КлючевыеСвойства = "Ссылка";
Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("2014");
Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
НачисленияКатегории = НачисленияПоКатегории(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниПриУвольненииГосслужащего);
Если ПроверятьНаличиеНачислений И НачисленияКатегории.Количество() > 0 Тогда
Описание.СсылкаНаОбъект = НачисленияКатегории[0];
КонецЕсли;
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание, ПроверятьНаличиеНачислений);
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Ошибка создания начисления «Компенсация за неотработанные дни при увольнении»'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение,
Метаданные.ПланыВидовРасчета.Начисления, ,
НСтр("ru = 'Не удалось создать начисление «Компенсация за неотработанные дни при увольнении» из-за предположительно неверной (зацикленной) настройки плана видов расчета.'",
ОбщегоНазначения.КодОсновногоЯзыка()));
КонецПопытки;
ОбновитьПовторноИспользуемыеЗначения();
КонецЕсли;
КонецПроцедуры
Функция ПараметрыВыбораСвойствНачисления()
СтруктураПараметровВыбора = Новый Структура(
"КодДоходаНДФЛ,
|КодДоходаСтраховыеВзносы,
|ВидНачисленияДляНУ,
|ВидДокументаНачисления,
|СреднийЗаработокОбщий,
|ВидОтпуска,
|ОбозначениеВТабелеУчетаРабочегоВремени");
Возврат СтруктураПараметровВыбора;
КонецФункции
Процедура СоздатьИзменитьНачисленияПоОписаниям(Коллектор, МассивОписаний)
Если МассивОписаний.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ОписаниеКлючевыхСвойств = МассивОписаний[0];
НачисленияПоОписанию = НачисленияПоОписанию(МассивОписаний[0]);
Если НачисленияПоОписанию.Количество() > 0 Тогда
УстановитьИспользованиеНачислений(Коллектор, НачисленияПоОписанию, Истина);
Возврат;
КонецЕсли;
Для Каждого Описание Из МассивОписаний Цикл
ДополнитьОписаниеПоСвойствамКатегории(Описание);
СоздатьИзменитьНачисленияПоОписанию(Коллектор, Описание, Ложь);
КонецЦикла;
КонецПроцедуры
Процедура УстановитьИспользованиеНачислений(Коллектор, Начисления, Использование)
Индекс = 0;
Пока Индекс < Начисления.Количество() Цикл
Начисление = Начисления[Индекс];
НачислениеОбъект = Коллектор[Начисление];
Если НачислениеОбъект = Неопределено Тогда
Индекс = Индекс + 1;
Продолжить;
КонецЕсли;
НачислениеОбъект.ВАрхиве = Не Использование;
Если Использование Тогда
НачислениеОбъект.ПометкаУдаления = Ложь;
КонецЕсли;
Начисления.Удалить(Индекс);
КонецЦикла;
Если Начисления.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| Начисления.Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.Ссылка В(&Начисления)
| И Начисления.ВАрхиве <> &ВАрхиве
| И Начисления.ПометкаУдаления = ЛОЖЬ";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Начисления", Начисления);
Запрос.УстановитьПараметр("ВАрхиве", Не Использование);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НачислениеОбъект = Коллектор[Выборка.Ссылка];
Если НачислениеОбъект = Неопределено Тогда
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
Коллектор.Вставить(Выборка.Ссылка, НачислениеОбъект);
КонецЕсли;
НачислениеОбъект.ВАрхиве = Не Использование;
Если Использование Тогда
НачислениеОбъект.ПометкаУдаления = Ложь;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ДополнитьОписаниеПоСвойствамКатегории(Описание)
СвойстваПоКатегории = Описание.СвойстваПоКатегории;
Для Каждого КлючИЗначение Из СвойстваПоКатегории Цикл
Если Не Описание.Свойство(КлючИЗначение.Ключ) Тогда
Продолжить;
КонецЕсли;
Если КлючИЗначение.Значение <> Неопределено
И Описание[КлючИЗначение.Ключ] = Неопределено Тогда
Описание[КлючИЗначение.Ключ] = КлючИЗначение.Значение;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция НачисленияПоОписанию(Описание)
ДополнитьОписаниеПоСвойствамКатегории(Описание);
Если ЗначениеЗаполнено(Описание.КлючевыеСвойства) Тогда
Отбор = Новый Структура(Описание.КлючевыеСвойства);
ЗаполнитьЗначенияСвойств(Отбор, Описание);
Для Каждого КлючИЗначение Из Отбор Цикл
Если Не ЗначениеЗаполнено(КлючИЗначение.Значение) Тогда
Возврат Новый Массив;
КонецЕсли;
КонецЦикла;
Отбор.Вставить("ПометкаУдаления", Ложь);
Иначе
Отбор = Новый Структура("ПометкаУдаления", Ложь);
КонецЕсли;
Отбор.Вставить("КатегорияНачисленияИлиНеоплаченногоВремени", Описание.КатегорияНачисленияИлиНеоплаченногоВремени);
Отбор.Вставить("ПометкаУдаления", Ложь);
Возврат НачисленияПоОтбору(Отбор, "РеквизитДопУпорядочивания");
КонецФункции
Функция ВидыРасчетаКоллектораПоКатегории(Коллектор, КатегорияОтбор, Отбор = Неопределено)
ВидыРасчетаПоКатегории = Новый Массив;
Для Каждого КлючИЗначение Из Коллектор Цикл
ВидРасчетаСсылка = КлючИЗначение.Ключ;
ВидРасчетаОбъект = КлючИЗначение.Значение;
Если ВидРасчетаСоответствуетОтбору(ВидРасчетаОбъект, КатегорияОтбор, Отбор) Тогда
ВидыРасчетаПоКатегории.Добавить(ВидРасчетаСсылка);
КонецЕсли;
КонецЦикла;
Возврат ВидыРасчетаПоКатегории;
КонецФункции
Функция ВидыРасчетаКоллектораПоОтбору(Коллектор, Отбор) Экспорт
ВидыРасчета = Новый Массив;
Для Каждого КлючИЗначение Из Коллектор Цикл
ВидРасчетаСсылка = КлючИЗначение.Ключ;
ВидРасчетаОбъект = КлючИЗначение.Значение;
СоответствуетОтбору = Истина;
Для Каждого ЭлементОтбора Из Отбор Цикл
ПолеОтбора = ЭлементОтбора.Ключ;
ЗначениеОтбора = ЭлементОтбора.Значение;
Если ТипЗнч(ЗначениеОтбора) = Тип("Массив") Тогда
Если ЗначениеОтбора.Найти(ВидРасчетаОбъект[ПолеОтбора]) = Неопределено Тогда
СоответствуетОтбору = Ложь;
Прервать;
КонецЕсли;
Иначе
Если ВидРасчетаОбъект[ПолеОтбора] <> ЗначениеОтбора Тогда
СоответствуетОтбору = Ложь;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если СоответствуетОтбору Тогда
ВидыРасчета.Добавить(ВидРасчетаСсылка);
КонецЕсли;
КонецЦикла;
Возврат ВидыРасчета;
КонецФункции
Функция КатегорияВидаРасчета(ВидРасчетаОбъект)
Если ТипЗнч(ВидРасчетаОбъект) = Тип("ПланВидовРасчетаОбъект.Начисления") Тогда
Возврат ВидРасчетаОбъект.КатегорияНачисленияИлиНеоплаченногоВремени;
КонецЕсли;
Если ТипЗнч(ВидРасчетаОбъект) = Тип("ПланВидовРасчетаОбъект.Удержания") Тогда
Возврат ВидРасчетаОбъект.КатегорияУдержания;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура НастроитьБазовыеНачисленияУдержаний(КоллекторНачислений, КоллекторУдержаний)
Для Каждого КлючИЗначение Из КоллекторУдержаний Цикл
УдержаниеСсылка = КлючИЗначение.Ключ;
УдержаниеОбъект = КлючИЗначение.Значение;
ЭтоНовоеУдержание = ЗначениеЗаполнено(УдержаниеОбъект.Ссылка);
КатегорияУдержания = УдержаниеОбъект.КатегорияУдержания;
ОтборБазовых = Неопределено;
Если УдержаниеОбъект.ДополнительныеСвойства.Свойство("ОтборБазовых") Тогда
ОтборБазовых = УдержаниеОбъект.ДополнительныеСвойства.ОтборБазовых;
КонецЕсли;
Если ОтборБазовых <> Неопределено
И (РасчетЗарплатыРасширенный.ЕстьПоказательВКоллекции(УдержаниеОбъект.Показатели, "РасчетнаяБаза")
Или РасчетЗарплатыРасширенный.ЕстьПоказательВКоллекции(УдержаниеОбъект.Показатели, "РасчетнаяБазаИсполнительногоЛиста")) Тогда
ОтборБазовых = ОбщегоНазначения.СкопироватьРекурсивно(ОтборБазовых);
Категория = ОтборБазовых.КатегорияНачисления;
ОтборБазовых.Удалить("КатегорияНачисления");
БазовыеНачисления = ВидыРасчетаКоллектораПоКатегории(КоллекторНачислений, Категория, ОтборБазовых);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(
БазовыеНачисления, НачисленияПоКатегории(Категория, ОтборБазовых), Истина);
Для Каждого БазовоеНачисление Из БазовыеНачисления Цикл
ЭтоНовоеБазовоеНачисление = Ложь;
БазовоеНачислениеОбъект = КоллекторНачислений[БазовоеНачисление];
Если БазовоеНачислениеОбъект <> Неопределено Тогда
ЭтоНовоеБазовоеНачисление = Не ЗначениеЗаполнено(БазовоеНачислениеОбъект.Ссылка);
КонецЕсли;
Если Не ЭтоНовоеУдержание И Не ЭтоНовоеБазовоеНачисление Тогда
Продолжить;
КонецЕсли;
Если Не ЭтоНовоеУдержание
И КатегорияУдержания <> Перечисления.КатегорииУдержаний.ИсполнительныйЛист
И КатегорияУдержания <> Перечисления.КатегорииУдержаний.ПрофсоюзныеВзносы Тогда
Продолжить;
КонецЕсли;
Если УдержаниеОбъект.БазовыеВидыРасчета.Найти(БазовоеНачисление, "ВидРасчета") = Неопределено Тогда
УдержаниеОбъект.БазовыеВидыРасчета.Добавить().ВидРасчета = БазовоеНачисление;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
СвойстваУдержаний = ПланыВидовРасчета.Удержания.СвойстваУдержанийПоКатегориям();
Для Каждого КлючИЗначение Из СвойстваУдержаний Цикл
КатегорияУдержания = КлючИЗначение.Ключ;
СвойстваУдержания = КлючИЗначение.Значение;
Если Не ЗначениеЗаполнено(КатегорияУдержания) Тогда
Продолжить;
КонецЕсли;
ОтборБазовых = СвойстваУдержания.ОтборБазовых;
Если ОтборБазовых <> Неопределено Тогда
ОтборБазовых = ОбщегоНазначения.СкопироватьРекурсивно(ОтборБазовых);
Категория = ОтборБазовых.КатегорияНачисления;
ОтборБазовых.Удалить("КатегорияНачисления");
БазовыеНачисления = ВидыРасчетаКоллектораПоКатегории(КоллекторНачислений, Категория, ОтборБазовых);
Если БазовыеНачисления.Количество() > 0 Тогда
ЗависимыеУдержания = ВидыРасчетаКоллектораПоКатегории(КоллекторУдержаний, КатегорияУдержания);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ЗависимыеУдержания,
РасчетЗарплаты.УдержанияПоКатегории(КатегорияУдержания), Истина);
Для Каждого ЗависимоеУдержание Из ЗависимыеУдержания Цикл
ЗависимоеУдержаниеОбъект = КоллекторУдержаний[ЗависимоеУдержание];
ДобавленоВКоллектор = Ложь;
Если ЗависимоеУдержаниеОбъект = Неопределено Тогда
ЗависимоеУдержаниеОбъект = ЗависимоеУдержание.ПолучитьОбъект();
КоллекторУдержаний.Вставить(ЗависимоеУдержание, ЗависимоеУдержаниеОбъект);
ДобавленоВКоллектор = Истина;
КонецЕсли;
ЭтоНовоеЗависимоеУдержание = Не ЗначениеЗаполнено(ЗависимоеУдержаниеОбъект.Ссылка);
Обновлено = Ложь;
Если РасчетЗарплатыРасширенный.ЕстьПоказательВКоллекции(ЗависимоеУдержаниеОбъект.Показатели, "РасчетнаяБаза")
Или РасчетЗарплатыРасширенный.ЕстьПоказательВКоллекции(ЗависимоеУдержаниеОбъект.Показатели, "РасчетнаяБазаИсполнительногоЛиста") Тогда
Для Каждого БазовоеНачисление Из БазовыеНачисления Цикл
ЭтоНовоеБазовоеНачисление = Ложь;
БазовоеНачислениеОбъект = КоллекторНачислений[БазовоеНачисление];
Если БазовоеНачислениеОбъект <> Неопределено Тогда
ЭтоНовоеБазовоеНачисление = Не ЗначениеЗаполнено(БазовоеНачислениеОбъект.Ссылка);
КонецЕсли;
Если Не ЭтоНовоеЗависимоеУдержание И Не ЭтоНовоеБазовоеНачисление Тогда
Продолжить;
КонецЕсли;
Если Не ЭтоНовоеЗависимоеУдержание
И КатегорияУдержания <> Перечисления.КатегорииУдержаний.ИсполнительныйЛист
И КатегорияУдержания <> Перечисления.КатегорииУдержаний.ПрофсоюзныеВзносы Тогда
Продолжить;
КонецЕсли;
Если ЗависимоеУдержаниеОбъект.БазовыеВидыРасчета.Найти(БазовоеНачисление, "ВидРасчета") = Неопределено Тогда
ЗависимоеУдержаниеОбъект.БазовыеВидыРасчета.Добавить().ВидРасчета = БазовоеНачисление;
Обновлено = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ДобавленоВКоллектор И Не Обновлено Тогда
КоллекторУдержаний.Удалить(ЗависимоеУдержание);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ЗаполнитьПорядокНачислений(КоллекторНачислений)
ПорядокКатегорий = Новый Соответствие;
Индекс = 0;
Для Каждого ЗначениеПеречисления Из Метаданные.Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЗначенияПеречисления Цикл
ПорядокКатегорий.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени[ЗначениеПеречисления.Имя], Индекс);
Индекс = Индекс + 1;
КонецЦикла;
ТаблицаСортировки = Новый ТаблицаЗначений;
ТаблицаСортировки.Колонки.Добавить("ПорядокКатегории", Новый ОписаниеТипов("Число"));
ТаблицаСортировки.Колонки.Добавить("КатегорияНачисления", Новый ОписаниеТипов("ПеречислениеСсылка.КатегорииНачисленийИНеоплаченногоВремени"));
ТаблицаСортировки.Колонки.Добавить("Начисление", Новый ОписаниеТипов("ПланВидовРасчетаСсылка.Начисления"));
ТаблицаСортировки.Колонки.Добавить("ВновьСоздано", Новый ОписаниеТипов("Булево"));
ТаблицаСортировки.Колонки.Добавить("РеквизитДопУпорядочивания", Новый ОписаниеТипов("Число"));
НачисленияКоллектора = Новый Массив;
Для Каждого КлючИЗначение Из КоллекторНачислений Цикл
НачислениеСсылка = КлючИЗначение.Ключ;
НачислениеОбъект = КлючИЗначение.Значение;
НачисленияКоллектора.Добавить(НачислениеСсылка);
ПорядокКатегории = ПорядокКатегорий[НачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени];
НоваяСтрока = ТаблицаСортировки.Добавить();
НоваяСтрока.ПорядокКатегории = ПорядокКатегории;
НоваяСтрока.КатегорияНачисления = НачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени;
НоваяСтрока.Начисление = НачислениеСсылка;
НоваяСтрока.ВновьСоздано = НачислениеОбъект.Ссылка.Пустая();
НоваяСтрока.РеквизитДопУпорядочивания = НачислениеОбъект.РеквизитДопУпорядочивания;
КонецЦикла;
Если ТаблицаСортировки.НайтиСтроки(Новый Структура("ВновьСоздано", Истина)).Количество() = 0 Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаСортировки.Начисление,
| ТаблицаСортировки.КатегорияНачисления,
| ТаблицаСортировки.ВновьСоздано
|ПОМЕСТИТЬ ВТТаблицаСортировки
|ИЗ
| &ТаблицаСортировки КАК ТаблицаСортировки
|;
|
|
|ВЫБРАТЬ
| ТаблицаСортировки.Начисление,
| МИНИМУМ(ВЫБОР
| КОГДА Начисления.КатегорияНачисленияИлиНеоплаченногоВремени.Порядок > Категории.Порядок
| ТОГДА Начисления.РеквизитДопУпорядочивания
| КОНЕЦ) КАК РеквизитУпорядочивания,
| МАКСИМУМ(Начисления.РеквизитДопУпорядочивания) КАК МаксимальныйРеквизитУпорядочивания
|ИЗ
| ВТТаблицаСортировки КАК ТаблицаСортировки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Перечисление.КатегорииНачисленийИНеоплаченногоВремени КАК Категории
| ПО (Категории.Ссылка = ТаблицаСортировки.КатегорияНачисления)
| И (ТаблицаСортировки.ВновьСоздано)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления КАК Начисления
| ПО (ИСТИНА)
|
|СГРУППИРОВАТЬ ПО
| ТаблицаСортировки.Начисление";
Запрос.УстановитьПараметр("ТаблицаСортировки", ТаблицаСортировки);
РезультатЗапроса = Запрос.Выполнить();
МинимальныйРеквизитУпорядочивания = Неопределено;
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
СтрокаТаблицы = ТаблицаСортировки.Найти(Выборка.Начисление, "Начисление");
Если Выборка.РеквизитУпорядочивания = Null Тогда
СтрокаТаблицы.РеквизитДопУпорядочивания = Выборка.МаксимальныйРеквизитУпорядочивания;
Иначе
СтрокаТаблицы.РеквизитДопУпорядочивания = Выборка.РеквизитУпорядочивания;
Если МинимальныйРеквизитУпорядочивания = Неопределено Тогда
МинимальныйРеквизитУпорядочивания = СтрокаТаблицы.РеквизитДопУпорядочивания;
Иначе
Если СтрокаТаблицы.РеквизитДопУпорядочивания < МинимальныйРеквизитУпорядочивания Тогда
МинимальныйРеквизитУпорядочивания = СтрокаТаблицы.РеквизитДопУпорядочивания;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если МинимальныйРеквизитУпорядочивания <> Неопределено Тогда
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка,
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени КАК КатегорияНачисления,
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени.Порядок КАК ПорядокКатегории,
| Начисления.РеквизитДопУпорядочивания
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.РеквизитДопУпорядочивания >= &РеквизитУпорядочивания
| И НЕ Начисления.Ссылка В (&НачисленияКоллектора)";
Запрос.УстановитьПараметр("НачисленияКоллектора", НачисленияКоллектора);
Запрос.УстановитьПараметр("РеквизитУпорядочивания", МинимальныйРеквизитУпорядочивания);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
КоллекторНачислений.Вставить(Выборка.Ссылка, Выборка.Ссылка.ПолучитьОбъект());
НоваяСтрока = ТаблицаСортировки.Добавить();
НоваяСтрока.ПорядокКатегории = Выборка.ПорядокКатегории;
НоваяСтрока.КатегорияНачисления = Выборка.КатегорияНачисления;
НоваяСтрока.Начисление = Выборка.Ссылка;
НоваяСтрока.РеквизитДопУпорядочивания = Выборка.РеквизитДопУпорядочивания;
НоваяСтрока.ВновьСоздано = Ложь;
КонецЦикла;
КонецЕсли;
ТаблицаСортировки.Сортировать("РеквизитДопУпорядочивания, ВновьСоздано УБЫВ, ПорядокКатегории");
РеквизитУпорядочивания = Неопределено;
Для Каждого СтрокаТаблицы Из ТаблицаСортировки Цикл
Если РеквизитУпорядочивания = Неопределено Тогда
РеквизитУпорядочивания = СтрокаТаблицы.РеквизитДопУпорядочивания;
Если РеквизитУпорядочивания = 0 Тогда
РеквизитУпорядочивания = 1;
СтрокаТаблицы.РеквизитДопУпорядочивания = РеквизитУпорядочивания;
КонецЕсли;
Продолжить;
КонецЕсли;
Если СтрокаТаблицы.РеквизитДопУпорядочивания > РеквизитУпорядочивания Тогда
РеквизитУпорядочивания = СтрокаТаблицы.РеквизитДопУпорядочивания;
Продолжить;
КонецЕсли;
РеквизитУпорядочивания = РеквизитУпорядочивания + 1;
СтрокаТаблицы.РеквизитДопУпорядочивания = РеквизитУпорядочивания;
КонецЦикла;
Для Каждого СтрокаТаблицы Из ТаблицаСортировки Цикл
НачислениеОбъект = КоллекторНачислений[СтрокаТаблицы.Начисление];
НачислениеОбъект.РеквизитДопУпорядочивания = СтрокаТаблицы.РеквизитДопУпорядочивания;
КонецЦикла;
КонецПроцедуры
Функция КатегорииВременнойНетрудоспособности()
Категории = Новый Массив;
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.БолезньБезОплаты);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛиста);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛистаЗаСчетРаботодателя);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоНесчастныйСлучайНаПроизводстве);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоПрофзаболевание);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеОплатаДнейУходаЗаДетьмиИнвалидами);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодам);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамБезОплаты);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускНаСанаторноКурортноеЛечение);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпускаНаСанаторноКурортноеЛечение);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамВоеннослужащего);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СохраняемоеДенежноеДовольствие);
Возврат Категории;
КонецФункции
Функция КатегорииВытесненияКомандировки()
Категории = Новый Массив;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Категории, КатегорииВременнойНетрудоспособности());
Возврат Категории;
КонецФункции
Функция КатегорииВытесненияОтпускаНаСанаторноКурортноеЛечение()
Категории = Новый Массив;
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.БолезньБезОплаты);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛиста);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛистаЗаСчетРаботодателя);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоНесчастныйСлучайНаПроизводстве);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоПрофзаболевание);
Возврат Категории;
КонецФункции
Функция КатегорииВытесненияОтпуска()
Категории = Новый Массив;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Категории, КатегорииВременнойНетрудоспособности());
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Категории, КатегорииВытесненияКомандировки());
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодКомандировки);
Возврат Категории;
КонецФункции
Функция КатегорииВытесненияОплатыТруда()
Категории = Новый Массив;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Категории, КатегорииВременнойНетрудоспособности());
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Категории, КатегорииВытесненияКомандировки());
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Категории, КатегорииВытесненияОтпуска());
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоНевыясненнымПричинам);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоБолезни);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прогул);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПростойПоВинеРаботника);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Отгул);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоНезависящимОтРаботодателяПричинам);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпуска);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СохраняемоеДенежноеСодержание);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПредыдущимиДокументами);
Возврат Категории;
КонецФункции
Функция КатегорииБазаНадбавок()
КатегорииБазовыхНачисленийНадбавок = Новый Массив;
КатегорииБазовыхНачисленийНадбавок.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда);
КатегорииБазовыхНачисленийНадбавок.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СдельнаяОплатаТруда);
Возврат КатегорииБазовыхНачисленийНадбавок;
КонецФункции
Функция ОтборБазаРКиСН()
Категории = Новый Массив;
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СдельнаяОплатаТруда);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаЗаСовмещение);
ОтборБазовых = Новый Структура;
ОтборБазовых.Вставить("КатегорияНачисленияИлиНеоплаченногоВремени", Категории);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.РасчетДенежногоДовольствия") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("РасчетДенежногоДовольствия");
Модуль.ДополнитьОписаниеОтбораНачисленийБазаРКиСН(ОтборБазовых);
КонецЕсли;
Возврат ОтборБазовых;
КонецФункции
Функция КатегорииБазаПремии()
Категории = Новый Массив;
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СдельнаяОплатаТруда);
Категории.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаЗаСовмещение);
Возврат Категории;
КонецФункции
Функция ОтборВытесняющихПоУмолчанию()
ОтборВытесняющих = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени, ВидВремени");
ОтборВытесняющих.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневныеВидыРабочегоВремени();
Возврат ОтборВытесняющих;
КонецФункции
Функция ОтборВедущихПоУмолчанию()
ОтборВедущих = Новый Структура("ВидВремени");
ОтборВедущих.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Возврат ОтборВедущих;
КонецФункции
Функция НачислениеОбъектПоСсылке(Ссылка)
НачислениеОбъект = Неопределено;
Если Ссылка <> Неопределено Тогда
НачислениеОбъект = Ссылка.ПолучитьОбъект();
КонецЕсли;
Возврат НачислениеОбъект;
КонецФункции
Процедура ДополнитьНедоступныеСвойстваПолямиОтраженияВБухУчете(НедоступныеСвойства) Экспорт
НедоступныеСвойства.Добавить("СпособОтраженияЗарплатыВБухучете");
НедоступныеСвойства.Добавить("ОтношениеКЕНВД");
НедоступныеСвойства.Добавить("СтатьяФинансирования");
НедоступныеСвойства.Добавить("СтатьяРасходов");
НедоступныеСвойства.Добавить("СтратегияОтраженияВУчете");
КонецПроцедуры
Функция РезультатПроверкиНастройкиПриоритетаНачислений(СписокНачислений, ИмяТаблицы) Экспорт
ТребуетсяДобавить = Новый Массив;
ТребуетсяУдалить = Новый Массив;
УникальныеНачисленияДляДобавления = Новый Соответствие;
УникальныеНачисленияДляУдаления = Новый Соответствие;
Если ИмяТаблицы = "ВытесняющиеВидыРасчета" Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("СписокНачислений", СписокНачислений);
Запрос.Текст = "ВЫБРАТЬ
| НачисленияВытесняющиеВидыРасчета.Ссылка,
| НачисленияВытесняющиеВидыРасчета.ВидРасчета
|ИЗ
| ПланВидовРасчета.Начисления.ВытесняющиеВидыРасчета КАК НачисленияВытесняющиеВидыРасчета
|ГДЕ
| НачисленияВытесняющиеВидыРасчета.Ссылка В(&СписокНачислений)
| И НЕ НачисленияВытесняющиеВидыРасчета.ВидРасчета В (&СписокНачислений)";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если УникальныеНачисленияДляДобавления[Выборка.ВидРасчета] = Неопределено Тогда
ТребуетсяДобавить.Добавить(Выборка.ВидРасчета);
УникальныеНачисленияДляДобавления.Вставить(Выборка.ВидРасчета, Истина);
КонецЕсли;
Если УникальныеНачисленияДляУдаления[Выборка.Ссылка] = Неопределено Тогда
ТребуетсяУдалить.Добавить(Выборка.Ссылка);
УникальныеНачисленияДляУдаления.Вставить(Выборка.Ссылка, Истина);
КонецЕсли;
КонецЦикла;
Иначе
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("СписокНачислений", СписокНачислений);
Запрос.Текст = "ВЫБРАТЬ
| НачисленияВытесняющиеВидыРасчета.Ссылка,
| НачисленияВытесняющиеВидыРасчета.ВидРасчета
|ИЗ
| ПланВидовРасчета.Начисления.ВытесняющиеВидыРасчета КАК НачисленияВытесняющиеВидыРасчета
|ГДЕ
| НачисленияВытесняющиеВидыРасчета.ВидРасчета В(&СписокНачислений)
| И НЕ НачисленияВытесняющиеВидыРасчета.Ссылка В (&СписокНачислений)";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если УникальныеНачисленияДляДобавления[Выборка.Ссылка] = Неопределено Тогда
ТребуетсяДобавить.Добавить(Выборка.Ссылка);
УникальныеНачисленияДляДобавления.Вставить(Выборка.Ссылка, Истина);
КонецЕсли;
Если УникальныеНачисленияДляУдаления[Выборка.ВидРасчета] = Неопределено Тогда
ТребуетсяУдалить.Добавить(Выборка.ВидРасчета);
УникальныеНачисленияДляУдаления.Вставить(Выборка.ВидРасчета, Истина);
КонецЕсли;
КонецЦикла;
КонецЕсли;
РезультатПроверки = Новый Структура("ТребуетсяДобавить, ТребуетсяУдалить", ТребуетсяДобавить, ТребуетсяУдалить);
Возврат РезультатПроверки;
КонецФункции
Функция КатегорииНачисленияРассчитываемыхНаДатуНачала()
КатегорииРазовыхНачислений = Новый Массив();
КатегорииРазовыхНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпуску);
КатегорииРазовыхНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпускуГосслужащего);
КатегорииРазовыхНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске);
КатегорииРазовыхНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеГосслужащего);
КатегорииРазовыхНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеВоеннослужащего);
Возврат КатегорииРазовыхНачислений;
КонецФункции
Функция КатегорииНачисленийВнутреннихСовместителейИПодработок() Экспорт
СписокКатегорий = Новый Массив;
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.БолезньБезОплаты);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛиста);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛистаЗаСчетРаботодателя);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоНесчастныйСлучайНаПроизводстве);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоПрофзаболевание);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодам);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамБезОплаты);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамВоеннослужащего);
Возврат СписокКатегорий;
КонецФункции
Функция КатегорииНачисленийПодработок() Экспорт
СписокКатегорий = Новый Массив;
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоНевыясненнымПричинам);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоБолезни);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прогул);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеОплатаДнейУходаЗаДетьмиИнвалидами);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Отгул);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускНаСанаторноКурортноеЛечение);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпускаНаСанаторноКурортноеЛечение);
Возврат СписокКатегорий;
КонецФункции
Функция КатегорииНачисленийСтатистическогоУчетаТ57ТарифногоЗаработка()
СписокКатегорий = Новый Массив;
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СдельнаяОплатаТруда);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаЗаСовмещение);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НадбавкаЗаВредность);
Возврат СписокКатегорий;
КонецФункции
Функция КатегорииНачисленийСтатистическогоУчетаТ57ВыплатПоРайонномуРегулированию()
СписокКатегорий = Новый Массив;
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.РайонныйКоэффициент);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СевернаяНадбавка);
Возврат СписокКатегорий;
КонецФункции
Функция КатегорииНачисленийСтатистическогоУчетаТ57ДругихВыплат()
СписокКатегорий = Новый Массив;
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Премия);
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаТрудаВНатуральнойФорме);
Возврат СписокКатегорий;
КонецФункции
Функция ДополнительныеФормулыНередактируемыхНачислений() Экспорт
Результат = Новый Соответствие();
ФормулаРасчета = "?(СреднийЗаработокОбщий * НормаЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокОбщий - СреднийЗаработокРК - СреднийЗаработокСН) * НормаЧасов, УчитыватьМРОТ * МРОТ) / НормаЧасов * ВремяВЧасах";
ДополнительныеФормулыРасчета = Новый Структура("ФормулаРасчетаДолиРК,ФормулаРасчетаДолиСН");
ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "?(СреднийЗаработокОбщий * НормаЧасов > УчитыватьМРОТ * МРОТ, СреднийЗаработокРК * НормаЧасов , 0) / НормаЧасов * ВремяВЧасах";
ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "?(СреднийЗаработокОбщий * НормаЧасов > УчитыватьМРОТ * МРОТ, СреднийЗаработокСН * НормаЧасов , 0) / НормаЧасов * ВремяВЧасах";
Результат.Вставить(ФормулаРасчета, ДополнительныеФормулыРасчета);
Возврат Результат;
КонецФункции
Функция КатегорииНачисленийОплатыДолейРКиСН() Экспорт
СписокНачислений = Новый Массив;
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСреднемЗаработке);
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСреднемЗаработке);
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДС);
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДС);
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДД);
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДД);
Возврат СписокНачислений;
КонецФункции
Функция КатегорииНачисленийОплатыДолиРК() Экспорт
СписокНачислений = Новый Массив;
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСреднемЗаработке);
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДС);
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДД);
Возврат СписокНачислений;
КонецФункции
Функция КатегорииНачисленийОплатыДолиСН() Экспорт
СписокНачислений = Новый Массив;
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСреднемЗаработке);
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДС);
СписокНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДД);
Возврат СписокНачислений;
КонецФункции
Функция НачисленияОплатыДолейРКиСН() Экспорт
Отбор = Новый Структура;
Отбор.Вставить("КатегорияНачисленияИлиНеоплаченногоВремени", КатегорииНачисленийОплатыДолейРКиСН());
Возврат НачисленияПоОтбору(Отбор, "РеквизитДопУпорядочивания");
КонецФункции
#Область ПолучениеНачислений
Функция ЗапросПоНачислениям(Отбор, ПоляУпорядочивания, КоличествоПервых)
Запрос = Новый Запрос;
Если КоличествоПервых = 0 Тогда
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления";
Иначе
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ "+ Формат(КоличествоПервых, "ЧГ=") +"
| Начисления.Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления";
КонецЕсли;
ФрагментыУсловий = Новый Массив;
Для Каждого КлючИЗначение Из Отбор Цикл
ИмяОтбора = КлючИЗначение.Ключ;
ЗначениеОтбора = КлючИЗначение.Значение;
Если ТипЗнч(ЗначениеОтбора) = Тип("ФиксированныйМассив") Тогда
ЗначениеОтбора = Новый Массив(ЗначениеОтбора);
КонецЕсли;
Запрос.УстановитьПараметр(ИмяОтбора, ЗначениеОтбора);
Если ИмяОтбора = "ОпределяющиеПоказатели" Тогда
ФрагментыУсловий.Добавить("
| ИСТИНА В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
| ИЗ
| ПланВидовРасчета.Начисления.Показатели КАК ПоказателиНачислений
| ГДЕ
| ПоказателиНачислений.Ссылка = Начисления.Ссылка
| И ПоказателиНачислений.ОпределяющийПоказатель = ИСТИНА
| И ПоказателиНачислений.Показатель.ИмяПредопределенныхДанных В (&ОпределяющиеПоказатели))");
ИначеЕсли ТипЗнч(ЗначениеОтбора) = Тип("Массив") Тогда
ФрагментыУсловий.Добавить(СтрШаблон("Начисления.%1 В (&%1)", ИмяОтбора))
Иначе
ФрагментыУсловий.Добавить(СтрШаблон("Начисления.%1 = &%1", ИмяОтбора))
КонецЕсли;
КонецЦикла;
Если ФрагментыУсловий.Количество() > 0 Тогда
Запрос.Текст = Запрос.Текст + "
|ГДЕ
| " + СтрСоединить(ФрагментыУсловий, " И ");
КонецЕсли;
Если ЗначениеЗаполнено(ПоляУпорядочивания) Тогда
Запрос.Текст = Запрос.Текст + "
|
|УПОРЯДОЧИТЬ ПО
| " + ПоляУпорядочивания;
КонецЕсли;
Возврат Запрос;
КонецФункции
Функция ПредставлениеОтбораНачислений(Знач Отбор)
Если Отбор.Количество() = 0 Тогда
Возврат "";
Иначе
СписокПредставлений = Новый СписокЗначений;
Для Каждого КлючИЗначение Из Отбор Цикл
Если КлючИЗначение.Ключ = "ВидДокументаНачисления"
Или КлючИЗначение.Ключ = "КатегорияНачисленияИлиНеоплаченногоВремени" Тогда
Приоритет = "1.";
ИначеЕсли КлючИЗначение.Ключ = "ВАрхиве"
Или КлючИЗначение.Ключ = "ПометкаУдаления" Тогда
Приоритет = "3.";
Иначе
Приоритет = "2.";
КонецЕсли;
Представление = КлючИЗначение.Ключ + " (" + Строка(КлючИЗначение.Значение) + ")";
СписокПредставлений.Добавить(Представление, Приоритет + Представление);
КонецЦикла;
СписокПредставлений.СортироватьПоПредставлению();
Возврат СтрСоединить(СписокПредставлений.ВыгрузитьЗначения(), ", ");
КонецЕсли;
КонецФункции
Функция СсылкаСоответствуетОтбору(Ссылка, Отбор)
ИменаРеквизитов = Новый Массив;
Для Каждого КлючИЗначение Из Отбор Цикл
ИменаРеквизитов.Добавить(КлючИЗначение.Ключ);
КонецЦикла;
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, ИменаРеквизитов);
Для Каждого КлючИЗначение Из Отбор Цикл
Если ЗначенияРеквизитов[КлючИЗначение.Ключ] <> КлючИЗначение.Значение Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецФункции
#КонецОбласти
Функция ВариантыПодбораНачисленийВДокументах()
ТаблицаОписаний = Новый ТаблицаЗначений;
ТаблицаОписаний.Колонки.Добавить("ПолноеИмяОМ");
ТаблицаОписаний.Колонки.Добавить("ИмяРеквизита", Новый ОписаниеТипов("Строка"));
ТаблицаОписаний.Колонки.Добавить("ФиксированныеОтборы");
ТаблицаОписаний.Колонки.Добавить("ДинамическиеОтборы");
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.БольничныйЛист";
Описание.ИмяРеквизита = "ВидОплатыПособия";
Описание.ФиксированныеОтборы = Новый Структура("ЯвляетсяЛьготой, ВидДокументаНачисления, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛиста);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодам);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоНесчастныйСлучайНаПроизводстве);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоПрофзаболевание);
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.БольничныйЛист";
Описание.ИмяРеквизита = "ВидОплатыЗаСчетРаботодателя";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени, ВидДокументаНачисления, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаБольничногоЛистаЗаСчетРаботодателя;
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.БольничныйЛист";
Описание.ИмяРеквизита = "ВидНеоплачиваемогоВремени";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени, ВидДокументаНачисления, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.БолезньБезОплаты;
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.БолезньБезОплаты);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускПоБеременностиИРодамБезОплаты);
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.БольничныйЛист";
Описание.ИмяРеквизита = "ВидРасчетаДоплаты";
Описание.ФиксированныеОтборы = Новый Структура("СпособРасчета, ВидДокументаНачисления, ЯвляетсяЛьготой");
Описание.ФиксированныеОтборы.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ДоплатаДоСреднегоЗаработкаФСС;
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.БольничныйЛист;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаДоДенежногоСодержанияЗаДниБолезни);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаДоСреднегоЗаработкаЗаДниБолезни);
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ДоходВНатуральнойФорме";
Описание.ИмяРеквизита = "Начисление";
Описание.ФиксированныеОтборы = Новый Структура("ЯвляетсяДоходомВНатуральнойФорме, ЯвляетсяЛьготой, ВидДокументаНачисления, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ЯвляетсяДоходомВНатуральнойФорме = Истина;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ДоходВНатуральнойФорме;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Командировка";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Командировка;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени, ВидВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодКомандировки);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки);
Описание.ДинамическиеОтборы.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ВидыВремениДокументовОтклонений();
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.МатериальнаяПомощь";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.МатериальнаяПомощь;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ОплатаДнейУходаЗаДетьмиИнвалидами";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОплатаДнейУходаЗаДетьмиИнвалидами;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеОплатаДнейУходаЗаДетьмиИнвалидами);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами);
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ОплатаПоСреднемуЗаработку";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОплатаПоСреднемуЗаработку;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("ОбозначениеВТабелеУчетаРабочегоВремени, КатегорияНачисленияИлиНеоплаченногоВремени, ВидВремени");
Описание.ДинамическиеОтборы.ОбозначениеВТабелеУчетаРабочегоВремени = "ВЫБРАТЬ Ссылка ИЗ Справочник.ВидыИспользованияРабочегоВремени";
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СохраняемоеДенежноеСодержание);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку);
Описание.ДинамическиеОтборы.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ВидыВремениДокументовОтклонений();
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.СохраняемоеДенежноеДовольствие";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.СохраняемоеДенежноеДовольствие;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ОплатаСверхурочныхВоеннослужащим";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОплатаСверхурочныхВоеннослужащим;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ИсключениеИзСписковЧасти";
Описание.ИмяРеквизита = "ВидРасчетаКомпенсацииОтпуска";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ИсключениеИзСписковЧасти;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеДовольствиеКомпенсацияОтпуска);
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Отгул, Документ.ОтгулСписком";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отгул;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("ВидВремени");
Описание.ДинамическиеОтборы.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ВидыВремениДокументовОтклонений();
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Отпуск";
Описание.ИмяРеквизита = "ВидРасчетаОсновногоОтпуска";
Описание.ФиксированныеОтборы = Новый Структура("ВидОтпуска, ИспользованиеПериода, ЯвляетсяЛьготой, ВидВремени, ВидДокументаНачисления, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Основной");
Описание.ФиксированныеОтборы.ИспользованиеПериода = Перечисления.ВариантыИспользованияПериодаНачисления.ПериодДействия;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпуска);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска);
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Отпуск";
Описание.ИмяРеквизита = "ВидРасчетаКомпенсацииОсновногоОтпуска";
Описание.ФиксированныеОтборы = Новый Структура("ВидОтпуска, ИспользованиеПериода, ЯвляетсяЛьготой, ВидДокументаНачисления, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Основной");
Описание.ФиксированныеОтборы.ИспользованиеПериода = Перечисления.ВариантыИспользованияПериодаНачисления.НеИспользовать;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Отпуск;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеКомпенсацияОтпуска);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияОтпуска);
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Отпуск";
Описание.ИмяРеквизита = "ВидРасчетаМатериальнойПомощиПриОтпуске";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеГосслужащего);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске);
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Отпуск";
Описание.ИмяРеквизита = "ВидРасчетаЕдиновременнойВыплатыКОтпуску";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпуску;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпускуГосслужащего);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпуску);
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Отпуск";
Описание.ИмяРеквизита = "ВидРасчетаОтгул";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени, ВидВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Отгул;
Описание.ФиксированныеОтборы.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ОтпускВоеннослужащего";
Описание.ИмяРеквизита = "ВидРасчетаМатериальнойПомощиПриОтпуске";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеВоеннослужащего;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ОтпускБезСохраненияОплаты, Документ.ОтпускБезСохраненияОплатыСписком";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОтпускБезСохраненияОплаты;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("ВидОтпуска, ВидВремени");
Описание.ДинамическиеОтборы.ВидОтпуска = "ВЫБРАТЬ Ссылка ИЗ Справочник.ВидыОтпусков";
Описание.ДинамическиеОтборы.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ВидыВремениДокументовОтклонений();
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ОтпускПоБеременностиИРодамВоеннослужащего";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ОтпускПоБеременностиИРодамВоеннослужащего;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ОтпускПоУходуЗаРебенком, Документ.ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком";
Описание.ИмяРеквизита = "ПособиеДоПолутораЛет";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛет;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ОтпускПоУходуЗаРебенком, Документ.ОтпускПоУходуЗаРебенкомВоеннослужащего, Документ.ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком, Документ.ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенкомВоеннослужащего";
Описание.ИмяРеквизита = "ПособиеДоТрехЛет";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоТрехЛет;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ОтпускПоУходуЗаРебенкомВоеннослужащего, Документ.ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенкомВоеннослужащего";
Описание.ИмяРеквизита = "ПособиеДоПолутораЛет";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛетВоеннослужащим;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ПереводНаОплатуПоСреднемуЗаработку";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ПериодыОплаченныеДоНачалаЭксплуатации";
Описание.ИмяРеквизита = "ВидРасчета";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПредыдущимиДокументами;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Премия";
Описание.ИмяРеквизита = "ВидПремии";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Премия;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ПриказНаДоплатуДоСреднегоЗаработка, Документ.ОтменаДоплатыДоСреднегоЗаработка";
Описание.ИмяРеквизита = "Начисление";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаДоСреднегоЗаработка;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ПрогулНеявка";
Описание.ИмяРеквизита = "ВидОтсутствия";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПрогулНеявка;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени, ВидВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.Прогул);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоНевыясненнымПричинам);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоБолезни);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПростойПоВинеРаботника);
Описание.ДинамическиеОтборы.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ВидыВремениДокументовОтклонений();
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.ПростойСотрудников";
Описание.ИмяРеквизита = "Начисление";
Описание.ФиксированныеОтборы = Новый Структура("ВидДокументаНачисления, ЯвляетсяЛьготой, СпособВыполненияНачисления");
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПростойСотрудников;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ДинамическиеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени, ВидВремени");
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Новый Массив;
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПростойПоВинеРаботника);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя);
Описание.ДинамическиеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоНезависящимОтРаботодателяПричинам);
Описание.ДинамическиеОтборы.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ВидыВремениДокументовОтклонений();
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.РазовоеНачисление";
Описание.ИмяРеквизита = "Начисление";
Описание.ФиксированныеОтборы = Новый Структура("СпособВыполненияНачисления, ВидДокументаНачисления, ЯвляетсяЛьготой");
Описание.ФиксированныеОтборы.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
Описание.ФиксированныеОтборы.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.РазовоеНачисление;
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Совмещение, Документ.ОтменаСовмещения";
Описание.ИмяРеквизита = "Начисление";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаЗаСовмещение;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Увольнение";
Описание.ИмяРеквизита = "ВыходноеПособие";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ВыходноеПособие;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Увольнение";
Описание.ИмяРеквизита = "ВидРасчетаМесячноеДенежноеСодержание";
Описание.ФиксированныеОтборы = Новый Структура("ЯвляетсяЛьготой, КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.ЯвляетсяЛьготой = Ложь;
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ВыходноеПособиеМесячноеДенежноеСодержание;
Описание = ТаблицаОписаний.Добавить();
Описание.ПолноеИмяОМ = "Документ.Увольнение";
Описание.ИмяРеквизита = "КомпенсацияЗаНеотработанныеДниЧасыПриУвольнении";
Описание.ФиксированныеОтборы = Новый Структура("КатегорияНачисленияИлиНеоплаченногоВремени");
Описание.ФиксированныеОтборы.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниЧасыПриУвольнении;
Возврат ТаблицаОписаний;
КонецФункции
#Область ОбновлениеИнформационнойБазы
Процедура ЗарегистрироватьОбработчикиОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.6.21";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ОтключитьНачислениеОтсутствиеПоБолезниВнутрисменное";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("d9a5eb0b-5cb4-482e-af06-b1ae9e3c740e");
Обработчик.Комментарий = НСтр("ru = 'Отключение начисления ""Отсутствие по болезни (внутрисменное)"".'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.7.6";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ЗаполнитьПоказателиНачисленияОтпускаПострадавшимВАварииЧАЭС";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("9741b4f0-3d15-45cd-a7e9-22ce3b94a9b3");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.8.20";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.УстановитьПериодичностьПроверяемыхНачислений";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("14a7913a-27fd-46af-b799-81c7ab1803e1");
Обработчик.Комментарий = НСтр("ru = 'Установка периодичности контроля проверяемых начислений.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.8.28";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.УточнитьПризнакУчитыватьИзмененияВремяВЧасах";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("66f686bd-bc80-4dbe-a907-b8949310b74b");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.8.31";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("5c49d062-6186-11e8-a373-5404a6a6895d");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ВосстановитьПорядокНачисленийПодбираемыхПоУмолчанию";
Обработчик.Комментарий = НСтр("ru = 'Восстановление порядка начислений, выбираемых ""по умолчанию"" в документах.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.9.32";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("8f5340e6-f3f6-4246-a18c-ac694ad0ec4d");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ОбновитьВторичныеДанныеНачисленийСНакапливаемымиПоказателями";
Обработчик.Комментарий = НСтр("ru = 'Установка признака использования накапливаемых показателей в формуле начисления.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.9.39";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("4c22f3c2-f08e-4e06-9f0a-08bf1a788b22");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.УточнитьФормулыНачисленийЗависящихОтСреднегоЗаработка";
Обработчик.Комментарий = НСтр("ru = 'Изменение формул начислений, зависящих от среднего заработка.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.9.42";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("1ae469a4-048e-42be-aa92-75e60bb0e981");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ЗаполнитьРегистрВидыВремениДляВыявленияНачислений";
Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра ВидыВремениДляВыявленияНачислений'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.10.9";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("3ac16cc6-b80f-4146-943c-7d7473b7668f");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ЗаполнитьРегистрОперативныеПоказателиДляВыявленияНачислений";
Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра ОперативныеПоказателиДляВыявленияНачислений'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.10.15";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("1d459fc3-0df3-48af-9602-13aa19931a73");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ОтключитьПризнакПособийНачисляетсяПриРасчетеПервойПоловиныМесяца";
Обработчик.Комментарий = НСтр("ru = 'Отключение признака пособий НачисляетсяПриРасчетеПервойПоловиныМесяца'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.11.5";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("b1fa46d2-c718-4704-b995-fda069ba0e14");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ЗаполнитьРегистрЗависимостиНачислений";
Обработчик.Комментарий = НСтр("ru = 'Заполнение регистра ЗависимостиНачисленийПоФПД'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.11.21";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("caaa6c89-a2ca-45c9-af9a-b8940151487d");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.СоздатьНачисленияПростойОтстранениеПриостановкаРаботы";
Обработчик.Комментарий = НСтр("ru = 'Создание начислений приостановки работы (простой, отстранение)'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.11.64";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("1df5ffb3-818a-4f7f-b01d-a41fb8d061ca");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ОчиститьКатегориюСтатистическогоНаблюденияДоходаВНатуральнойФорме";
Обработчик.Комментарий = НСтр("ru = 'Очистка категории статистического наблюдения дохода в натуральной форме'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.13.8";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("134e5426-f666-11e9-80d3-4cedfb43b11a");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ЗаполнитьКатегориюСтатистикиПособийПоУходуЗаРебенкомДоТрехЛет";
Обработчик.Комментарий = НСтр("ru = 'Заполнение категории статистического наблюдения пособий по уходу за ребенком до трех лет.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.13.72";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("6155ea2a-1dae-11ea-b5df-4cedfb43b11a");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ЗаполнитьКатегориюСтатистики2020";
Обработчик.Комментарий = НСтр("ru = 'Заполнение категории статистического наблюдения применяемой с 2020 года.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.13.104";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("7c49b7cd-35b0-4328-94dd-7f32d15f34c8");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.УстановитьПризнакИспользоватьПособиеПоУходуЗаРебенкомДоТрехЛет";
Обработчик.Комментарий = НСтр("ru = 'Установка признака использования пособий по уходу за ребенком до трех лет.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.14.26";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ЗаполнитьВидДоходаИсполнительногоПроизводства";
Обработчик.РежимВыполнения = "Монопольно";
Обработчик.Комментарий = НСтр("ru = 'Заполнение вида дохода исполнительного производства в начислениях'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.14.78";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("f49abc1e-6db5-4bbd-84ed-133a7f3b8a9c");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.УстановитьПризнакУчитыватьВесьЗаработок";
Обработчик.Комментарий = НСтр("ru = 'Установка признака УчитыватьВесьЗаработок.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.14.93";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("4141add1-b7e2-4320-9d27-09adc4bfad33");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ЗаполнитьВидДоходаИсполнительногоПроизводстваМатпомощиПриРожденииРебенка";
Обработчик.Комментарий = НСтр("ru = 'Заполнение вида дохода исполнительного производства материальной помощи при рождении ребенка'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.22.46";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ЗаполнитьВидДоходаИсполнительногоПроизводства2022";
Обработчик.РежимВыполнения = "Монопольно";
Обработчик.Комментарий = НСтр("ru = 'Заполнение новых видов доходов исполнительного производства в начислениях'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.29.11";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("41c4886d-bbd0-4f49-97aa-8b175a4943f7");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.ОплатаДнейУходаЗаДетьмиИнвалидамиПредопределеннымСпособом";
Обработчик.Комментарий = НСтр("ru = 'Запрещает использовать формулу для расчета ухода за детьми-инвалидами'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.31.26";
Обработчик.РежимВыполнения = "Монопольно";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.УточнитьКодДоходаНДФЛКатегориюОписаниеРКиСН";
Обработчик.Комментарий = НСтр("ru = 'Уточнение кода дохода, категории по НДФЛ для РК и СН'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.32.6";
Обработчик.РежимВыполнения = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОсновнойРежимВыполненияОбновления();
Обработчик.Идентификатор = Новый УникальныйИдентификатор("ff8e2970-c9a7-4590-b3df-23260f8120b3");
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.СоздатьНачисленияКомпенсацииНеИспользованныхОтгулов";
Обработчик.Комментарий = НСтр("ru = 'Создание начислений компенсации неиспользованных отгулов'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.32.63";
Обработчик.РежимВыполнения = "Монопольно";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.УточнитьСвойстваНДФЛСтраховыхВзносовКатегорииКомпенсацияНеИспользованныхДнейЧасовОтдыха";
Обработчик.Комментарий = НСтр("ru = 'Изменение настроек НДФЛ, страховых взносов начислений с категорией ""Компенсация неиспользованных дней часов отдыха""'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.34.125";
Обработчик.РежимВыполнения = "Монопольно";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.УточнитьВидНачисленияДляНУКатегорииКомпенсацияНеИспользованныхДнейЧасовОтдыха";
Обработчик.Комментарий = НСтр("ru = 'Изменение вида начисления для НУ начислений с категорией ""Компенсация неиспользованных дней часов отдыха""'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.34.128";
Обработчик.РежимВыполнения = "Монопольно";
Обработчик.Процедура = "ПланыВидовРасчета.Начисления.УточнитьВхождениеВУчетСреднегоЗаработкаКомпенсацииНеИспользованныхДнейЧасовОтдыха";
Обработчик.Комментарий = НСтр("ru = 'Изменение признака учета в среднем заработке начислений с категорией ""Компенсация неиспользованных дней часов отдыха""'");
КонецПроцедуры
Процедура ОтключитьНачислениеОтсутствиеПоБолезниВнутрисменное(ПараметрыОбновления = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
КоллекторНачислений = Новый Соответствие;
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.НеявкаПоБолезни;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'ЧСОБН'");
Описание.Наименование = НСтр("ru = 'Отсутствие по болезни (внутрисменное)'");
Описание.КраткоеНаименование = НСтр("ru = 'Болезнь'");
Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.ПустаяСсылка();
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное;
Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Болезнь");
Описание.КлючевыеСвойства = "ВидВремени,КатегорияНачисленияИлиНеоплаченногоВремени";
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура ЗаполнитьПоказателиНачисленияОтпускаПострадавшимВАварииЧАЭС(ПараметрыОбновления = Неопределено) Экспорт
ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускПострадавшимВАварииЧАЭС");
Если Не ЗначениеЗаполнено(ВидОтпуска) Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Возврат;
КонецЕсли;
ПоказательКалендарныеДниБезПраздников = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КалендарныеДниБезПраздников");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ВидОтпуска", ВидОтпуска);
Запрос.УстановитьПараметр("ПоказательКалендарныеДниБезПраздников", ПоказательКалендарныеДниБезПраздников);
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
| ПО Начисления.Ссылка = НачисленияПоказатели.Ссылка
| И (НачисленияПоказатели.Показатель = &ПоказательКалендарныеДниБезПраздников)
|ГДЕ
| Начисления.ВидОтпуска = &ВидОтпуска
| И Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты)
| И НачисленияПоказатели.Ссылка ЕСТЬ NULL";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ОбменДанными.Загрузка = Истина;
СтрокаПоказателя = НачислениеОбъект.Показатели.Добавить();
СтрокаПоказателя.Показатель = ПоказательКалендарныеДниБезПраздников;
НачислениеОбъект.Записать();
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
КонецПроцедуры
Процедура УстановитьПериодичностьПроверяемыхНачислений(ПараметрыОбновления = Неопределено) Экспорт
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ПериодичностьНачисления = ЗНАЧЕНИЕ(Перечисление.ПериодичностьНачисления.ПустаяСсылка)
| И (Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске)
| ИЛИ Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпуску)
| ИЛИ Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеГосслужащего)
| ИЛИ Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпускуГосслужащего))";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Возврат;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ПериодичностьНачисления = Перечисления.ПериодичностьНачисления.РазВГод;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(НачислениеОбъект);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
КонецПроцедуры
Процедура УточнитьПризнакУчитыватьИзмененияВремяВЧасах(ПараметрыОбновления = Неопределено) Экспорт
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияВидыВремени.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления.ВидыВремени КАК НачисленияВидыВремени
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления КАК Начисления
| ПО (Начисления.Ссылка = НачисленияВидыВремени.Ссылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыИспользованияРабочегоВремени КАК ВидыИспользованияРабочегоВремени
| ПО НачисленияВидыВремени.ВидВремени = ВидыИспользованияРабочегоВремени.Ссылка
| И (ВидыИспользованияРабочегоВремени.ОсновноеВремя = &Праздники)
|ГДЕ
| Начисления.УчетВремениВДняхЧасах
| И Начисления.СпособВыполненияНачисления = ЗНАЧЕНИЕ(Перечисление.СпособыВыполненияНачислений.ПоЗначениюВидаВремениПриОкончательномРасчете)
| И НЕ Начисления.УчитыватьИзмененияВремяВЧасах";
Запрос.УстановитьПараметр("Праздники", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Праздники"));
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Возврат;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.УчитыватьИзмененияВремяВЧасах = Истина;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(НачислениеОбъект);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
КонецПроцедуры
Процедура ВосстановитьПорядокНачисленийПодбираемыхПоУмолчанию(ПараметрыОбновления = Неопределено) Экспорт
НастройкиВосстановленияПорядкаНачислений = НастройкиВосстановленияПорядкаНачислений();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка,
| Начисления.Представление КАК Представление,
| Начисления.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания,
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени КАК КатегорияНачисленияИлиНеоплаченногоВремени,
| Начисления.СпособВыполненияНачисления КАК СпособВыполненияНачисления,
| Начисления.СпособРасчета КАК СпособРасчета,
| Начисления.ВидДокументаНачисления КАК ВидДокументаНачисления,
| Начисления.ВидВремени КАК ВидВремени,
| Начисления.ВидОтпуска КАК ВидОтпуска,
| Начисления.ОбозначениеВТабелеУчетаРабочегоВремени КАК ОбозначениеВТабелеУчетаРабочегоВремени,
| Начисления.ЯвляетсяЛьготой КАК ЯвляетсяЛьготой,
| Начисления.ЯвляетсяДоходомВНатуральнойФорме КАК ЯвляетсяДоходомВНатуральнойФорме,
| Начисления.ИспользованиеПериода КАК ИспользованиеПериода
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ПометкаУдаления = ЛОЖЬ
| И Начисления.ВАрхиве = ЛОЖЬ";
ВсеНачисления = Запрос.Выполнить().Выгрузить();
ВсеНачисления.Колонки.Добавить("УникальныйИдентификатор", Новый ОписаниеТипов("УникальныйИдентификатор"));
Для Каждого СтрокаТаблицы Из ВсеНачисления Цикл
СтрокаТаблицы.УникальныйИдентификатор = СтрокаТаблицы.Ссылка.УникальныйИдентификатор();
КонецЦикла;
ВсеОбъектыОбработаны = Истина;
Блокировки = Новый Массив;
Блокировки.Добавить(ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОписаниеБлокируемыхДанных(Метаданные.ПланыВидовРасчета.Начисления));
Блокировки.Добавить(ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОписаниеБлокируемыхДанных(Метаданные.ПланыВидовРасчета.Начисления));
Для Каждого НастройкиПодбораНачисления Из НастройкиВосстановленияПорядкаНачислений Цикл
Отбор = Новый Структура(НастройкиПодбораНачисления.ИменаПолей);
ЗаполнитьЗначенияСвойств(Отбор, НастройкиПодбораНачисления, НастройкиПодбораНачисления.ИменаПолей);
НайденныеНачисления = ВсеНачисления.Скопировать(Отбор);
Если НайденныеНачисления.Количество() < 2 Тогда
Продолжить;
КонецЕсли;
НайденныеНачисления.Сортировать("УникальныйИдентификатор");
РеквизитыНачисленияПоСсылке = НайденныеНачисления[0];
НайденныеНачисления.Сортировать("РеквизитДопУпорядочивания, УникальныйИдентификатор");
РеквизитыНачисленияПоПорядку = НайденныеНачисления[0];
Если РеквизитыНачисленияПоСсылке.Ссылка = РеквизитыНачисленияПоПорядку.Ссылка Тогда
Продолжить;
КонецЕсли;
Блокировки[0].ПоляБлокировки.Ссылка = РеквизитыНачисленияПоСсылке.Ссылка;
Блокировки[1].ПоляБлокировки.Ссылка = РеквизитыНачисленияПоПорядку.Ссылка;
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.НачатьОбновлениеДанных(Блокировки, ПараметрыОбновления) Тогда
ВсеОбъектыОбработаны = Ложь;
Продолжить;
КонецЕсли;
ОбъектПоСсылке = РеквизитыНачисленияПоСсылке.Ссылка.ПолучитьОбъект();
ОбъектПоПорядку = РеквизитыНачисленияПоПорядку.Ссылка.ПолучитьОбъект();
ОбъектПоСсылке.РеквизитДопУпорядочивания = РеквизитыНачисленияПоПорядку.РеквизитДопУпорядочивания;
ОбъектПоПорядку.РеквизитДопУпорядочивания = РеквизитыНачисленияПоСсылке.РеквизитДопУпорядочивания;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ОбъектПоСсылке);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ОбъектПоПорядку);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
Текст = СтрШаблон(
НСтр("ru = 'Восстановлен порядок начисления ""%1 (%2)"" (обменялись с ""%3 (%4)"").'"),
ОбъектПоСсылке.Наименование,
ОбъектПоСсылке.Код,
ОбъектПоПорядку.Наименование,
ОбъектПоПорядку.Код);
ЗаписьЖурналаРегистрации(
ИмяСобытияПодборНачислений(),
УровеньЖурналаРегистрации.Примечание,
Метаданные.ПланыВидовРасчета.Начисления,
РеквизитыНачисленияПоСсылке.Ссылка,
Текст);
КонецЦикла;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", ВсеОбъектыОбработаны);
КонецПроцедуры
Процедура ОбновитьВторичныеДанныеНачисленийСНакапливаемымиПоказателями(ПараметрыОбновления = Неопределено) Экспорт
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияПоказатели.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПоказателиРасчетаЗарплаты КАК ПоказателиРасчетаЗарплаты
| ПО (ПоказателиРасчетаЗарплаты.Ссылка = НачисленияПоказатели.Показатель)
| И (ПоказателиРасчетаЗарплаты.СпособВводаЗначений = ЗНАЧЕНИЕ(Перечисление.СпособыВводаЗначенийПоказателейРасчетаЗарплаты.НакапливаетсяПоОтдельнымЗначениям))
|ГДЕ
| НЕ НачисленияПоказатели.Ссылка.ЕстьНакапливаемыеПоказатели");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ВидРасчетаОбъект = Выборка.Ссылка.ПолучитьОбъект();
ВидРасчетаОбъект.ЕстьНакапливаемыеПоказатели = Истина;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВидРасчетаОбъект);
КонецЦикла;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура УточнитьФормулыНачисленийЗависящихОтСреднегоЗаработка(ПараметрыОбновления = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ОплатаОтпуска", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска);
Запрос.УстановитьПараметр("ФормулаОплатыОтпуска", "СреднийЗаработокОбщий * КоличествоДнейОтпуска * КоэффициентИндексацииСреднегоЗаработка");
Запрос.УстановитьПараметр("КомпенсацияОтпуска", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияОтпуска);
Запрос.УстановитьПараметр("ФормулаКомпенсацииОтпуска", "СреднийЗаработокОбщий * КоличествоДнейКомпенсации");
Запрос.УстановитьПараметр("ОплатаКомандировки", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки);
Запрос.УстановитьПараметр("ФормулаОплатыКомандировки", "СреднийЗаработокОбщий * ВремяВДняхЧасах * КоэффициентИндексацииСреднегоЗаработка");
Запрос.УстановитьПараметр("ФормулаОплатыВнутрисменнойКомандировки", "СреднийЗаработокОбщий * ВремяВЧасах");
Запрос.УстановитьПараметр("ОплатаПоСреднемуЗаработку", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку);
Запрос.УстановитьПараметр("ФормулаОплатыПоСреднемуЗаработку", "СреднийЗаработокОбщий * ВремяВДняхЧасах * (ПроцентОплатыПоСреднему / 100) * КоэффициентИндексацииСреднегоЗаработка");
Запрос.УстановитьПараметр("ОплатаПростояПоВинеРаботодателя", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя);
Запрос.УстановитьПараметр("ФормулаОплатыПростояПоВинеРаботодателя", "СреднийЗаработокОбщий * (2/3) * ВремяВДняхЧасах * КоэффициентИндексацииСреднегоЗаработка");
Запрос.УстановитьПараметр("ОплатаДнейУходаЗаДетьмиИнвалидами", Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами);
Запрос.УстановитьПараметр("УчитыватьМРОТ", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.УчитыватьМРОТ"));
Запрос.Текст = "ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка,
| Начисления.ВидОтпуска.ОтпускЯвляетсяЕжегодным КАК ОтпускЯвляетсяЕжегодным
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = &ОплатаОтпуска
| И Начисления.ФормулаРасчета ПОДОБНО &ФормулаОплатыОтпуска
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка,
| Начисления.ВидОтпуска.ОтпускЯвляетсяЕжегодным КАК ОтпускЯвляетсяЕжегодным
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = &КомпенсацияОтпуска
| И Начисления.ФормулаРасчета ПОДОБНО &ФормулаКомпенсацииОтпуска
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = &ОплатаКомандировки
| И Начисления.ФормулаРасчета ПОДОБНО &ФормулаОплатыКомандировки
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = &ОплатаКомандировки
| И Начисления.ФормулаРасчета ПОДОБНО &ФормулаОплатыВнутрисменнойКомандировки
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = &ОплатаПоСреднемуЗаработку
| И Начисления.ФормулаРасчета ПОДОБНО &ФормулаОплатыПоСреднемуЗаработку
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = &ОплатаПростояПоВинеРаботодателя
| И Начисления.ФормулаРасчета ПОДОБНО &ФормулаОплатыПростояПоВинеРаботодателя
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = &ОплатаДнейУходаЗаДетьмиИнвалидами
| И НЕ Начисления.Ссылка В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияПоказатели.Ссылка КАК Ссылка
| ИЗ
| ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
| ГДЕ
| НачисленияПоказатели.Ссылка.КатегорияНачисленияИлиНеоплаченногоВремени = &ОплатаДнейУходаЗаДетьмиИнвалидами
| И НачисленияПоказатели.Показатель = &УчитыватьМРОТ)";
РезультатыЗапроса = Запрос.ВыполнитьПакет();
ОбработкаЗавершена = Истина;
Для Каждого РезультатЗапроса Из РезультатыЗапроса Цикл
Если Не РезультатЗапроса.Пустой() Тогда
ОбработкаЗавершена = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ОбработкаЗавершена Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
ФормулаРасчета = "Макс(СреднийЗаработокОбщий * КалендарныеДниМесяцаБезПраздников, УчитыватьМРОТ * МРОТ) / КалендарныеДниМесяцаБезПраздников * КоличествоДнейОтпуска * КоэффициентИндексацииСреднегоЗаработка";
Выборка = РезультатыЗапроса[0].Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ФормулаРасчета = ФормулаРасчета;
Если Выборка.ОтпускЯвляетсяЕжегодным <> Истина Тогда
НачислениеОбъект.ФормулаРасчета = СтрЗаменить(НачислениеОбъект.ФормулаРасчета, "КалендарныеДниМесяцаБезПраздников", "КалендарныеДниМесяца");
КонецЕсли;
ЗарплатаКадрыРасширенный.ОбновитьПоказателиФормулыРасчета(НачислениеОбъект, Ложь);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОПоказателяхВидаРасчета(НачислениеОбъект);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОбУчетеВремени(НачислениеОбъект);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
ФормулаРасчета = "Макс(СреднийЗаработокОбщий * КалендарныеДниМесяцаБезПраздников, УчитыватьМРОТ * МРОТ) / КалендарныеДниМесяцаБезПраздников * КоличествоДнейКомпенсации";
Выборка = РезультатыЗапроса[1].Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ФормулаРасчета = ФормулаРасчета;
Если Выборка.ОтпускЯвляетсяЕжегодным <> Истина Тогда
НачислениеОбъект.ФормулаРасчета = СтрЗаменить(НачислениеОбъект.ФормулаРасчета, "КалендарныеДниМесяцаБезПраздников", "КалендарныеДниМесяца");
КонецЕсли;
ЗарплатаКадрыРасширенный.ОбновитьПоказателиФормулыРасчета(НачислениеОбъект, Ложь);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОПоказателяхВидаРасчета(НачислениеОбъект);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОбУчетеВремени(НачислениеОбъект);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
ФормулаРасчета = "Макс(СреднийЗаработокОбщий * НормаДнейЧасов, УчитыватьМРОТ * МРОТ) / НормаДнейЧасов * ВремяВДняхЧасах * КоэффициентИндексацииСреднегоЗаработка";
Выборка = РезультатыЗапроса[2].Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ФормулаРасчета = ФормулаРасчета;
ЗарплатаКадрыРасширенный.ОбновитьПоказателиФормулыРасчета(НачислениеОбъект, Ложь);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОПоказателяхВидаРасчета(НачислениеОбъект);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОбУчетеВремени(НачислениеОбъект);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
ФормулаРасчета = "Макс(СреднийЗаработокОбщий * НормаЧасов, УчитыватьМРОТ * МРОТ) / НормаЧасов * ВремяВЧасах";
Выборка = РезультатыЗапроса[3].Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ФормулаРасчета = ФормулаРасчета;
ЗарплатаКадрыРасширенный.ОбновитьПоказателиФормулыРасчета(НачислениеОбъект, Ложь);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОПоказателяхВидаРасчета(НачислениеОбъект);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОбУчетеВремени(НачислениеОбъект);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
ФормулаРасчета = "Макс(СреднийЗаработокОбщий * НормаДнейЧасов, УчитыватьМРОТ * МРОТ) / НормаДнейЧасов * ВремяВДняхЧасах * (ПроцентОплатыПоСреднему / 100) * КоэффициентИндексацииСреднегоЗаработка";
Выборка = РезультатыЗапроса[4].Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ФормулаРасчета = ФормулаРасчета;
ЗарплатаКадрыРасширенный.ОбновитьПоказателиФормулыРасчета(НачислениеОбъект, Ложь);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОПоказателяхВидаРасчета(НачислениеОбъект);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОбУчетеВремени(НачислениеОбъект);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
ФормулаРасчета = "Макс(СреднийЗаработокОбщий * НормаДнейЧасов, УчитыватьМРОТ * МРОТ) / НормаДнейЧасов * (2/3) * ВремяВДняхЧасах * КоэффициентИндексацииСреднегоЗаработка";
Выборка = РезультатыЗапроса[5].Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ФормулаРасчета = ФормулаРасчета;
ЗарплатаКадрыРасширенный.ОбновитьПоказателиФормулыРасчета(НачислениеОбъект, Ложь);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОПоказателяхВидаРасчета(НачислениеОбъект);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОбУчетеВремени(НачислениеОбъект);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
Выборка = РезультатыЗапроса[6].Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.Показатели.Очистить();
ЗарплатаКадрыРасширенный.ЗаполнитьПоказателиПредопределенногоСпособаРасчета(НачислениеОбъект.СпособРасчета, НачислениеОбъект.Показатели);
ЗарплатаКадрыРасширенный.ОбновитьПоказателиФормулыРасчета(НачислениеОбъект, Ложь);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОПоказателяхВидаРасчета(НачислениеОбъект);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОбУчетеВремени(НачислениеОбъект);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
КонецПроцедуры
Процедура ЗаполнитьРегистрВидыВремениДляВыявленияНачислений(ПараметрыОбновления = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияВидыВремени.ВидВремени КАК ВидВремени,
| НачисленияВидыВремени.ОпределяющийЗаПраздничныеДни КАК ОпределяющийЗаПраздничныеДни
|ИЗ
| ПланВидовРасчета.Начисления.ВидыВремени КАК НачисленияВидыВремени
|ГДЕ
| НачисленияВидыВремени.ОпределяющийВидВремени
| И НЕ 1 В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| 1
| ИЗ
| РегистрСведений.ВидыВремениДляВыявленияНачислений)";
РезультатЗапроса = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ВыполнитьЗапросПолученияОбновляемыхДанных(Запрос, ПараметрыОбновления,, Неопределено);
Если РезультатЗапроса.Пустой() Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбработчик(ПараметрыОбновления);
Возврат;
КонецЕсли;
ОписаниеБлокировки = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОписаниеБлокируемыхДанных(Метаданные.РегистрыСведений.ВидыВремениДляВыявленияНачислений);
Если ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.НачатьОбновлениеДанных(ОписаниеБлокировки, ПараметрыОбновления) Тогда
Набор = РегистрыСведений.ВидыВремениДляВыявленияНачислений.СоздатьНаборЗаписей();
Набор.Загрузить(РезультатЗапроса.Выгрузить());
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(Набор);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбработчик(ПараметрыОбновления);
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьРегистрОперативныеПоказателиДляВыявленияНачислений(ПараметрыОбновления = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Показатели.Показатель КАК Показатель,
| Показатели.Ссылка.ИспользоватьОперативныеПоказателиВЦеломЗаМесяц КАК ПолучатьВЦеломЗаМесяц
|ИЗ
| ПланВидовРасчета.Начисления.Показатели КАК Показатели
|ГДЕ
| Показатели.ОпределяющийПоказатель";
РезультатЗапроса = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ВыполнитьЗапросПолученияОбновляемыхДанных(Запрос, ПараметрыОбновления,, Неопределено);
Если РезультатЗапроса.Пустой() Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбработчик(ПараметрыОбновления);
Возврат;
КонецЕсли;
ОписаниеБлокировки = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОписаниеБлокируемыхДанных(Метаданные.РегистрыСведений.ОперативныеПоказателиДляВыявленияНачислений);
Если ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.НачатьОбновлениеДанных(ОписаниеБлокировки, ПараметрыОбновления) Тогда
Набор = РегистрыСведений.ОперативныеПоказателиДляВыявленияНачислений.СоздатьНаборЗаписей();
Набор.Загрузить(РезультатЗапроса.Выгрузить());
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(Набор);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбработчик(ПараметрыОбновления);
Иначе
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПродолжитьОбработчик(ПараметрыОбновления);
КонецЕсли;
КонецПроцедуры
Процедура ОтключитьПризнакПособийНачисляетсяПриРасчетеПервойПоловиныМесяца(ПараметрыОбновления = Неопределено) Экспорт
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.НачисляетсяПриРасчетеПервойПоловиныМесяца
| И Начисления.КатегорияНачисленияИлиНеоплаченногоВремени В (&Пособия)");
Запрос.УстановитьПараметр("Пособия", КатегорииПособийПоУходуЗаРебенком());
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ВидРасчетаОбъект = Выборка.Ссылка.ПолучитьОбъект();
ВидРасчетаОбъект.НачисляетсяПриРасчетеПервойПоловиныМесяца = Ложь;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВидРасчетаОбъект);
КонецЦикла;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура ЗаполнитьРегистрЗависимостиНачислений(ПараметрыОбновления = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияВытесняющиеВидыРасчета.Ссылка КАК Начисление,
| НачисленияВытесняющиеВидыРасчета.ВидРасчета КАК ЗависимоеНачисление
|ИЗ
| ПланВидовРасчета.Начисления.ВытесняющиеВидыРасчета КАК НачисленияВытесняющиеВидыРасчета
|ГДЕ
| НЕ 1 В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| 1
| ИЗ
| РегистрСведений.ЗависимостиНачисленийПоФПД КАК ЗависимостиНачисленийПоФПД
| ГДЕ
| ЗависимостиНачисленийПоФПД.Начисление = НачисленияВытесняющиеВидыРасчета.Ссылка
| И ЗависимостиНачисленийПоФПД.ЗависимоеНачисление = НачисленияВытесняющиеВидыРасчета.ВидРасчета)";
РезультатЗапроса = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ВыполнитьЗапросПолученияОбновляемыхДанных(Запрос, ПараметрыОбновления,, Неопределено);
Если РезультатЗапроса.Пустой() Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбработчик(ПараметрыОбновления);
Возврат;
КонецЕсли;
ОписаниеБлокировки = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОписаниеБлокируемыхДанных(Метаданные.РегистрыСведений.ЗависимостиНачисленийПоФПД);
Если ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.НачатьОбновлениеДанных(ОписаниеБлокировки, ПараметрыОбновления) Тогда
Набор = РегистрыСведений.ЗависимостиНачисленийПоФПД.СоздатьНаборЗаписей();
Зависимости = РезультатЗапроса.Выгрузить();
Зависимости.Колонки.Добавить("Вытесняет", Новый ОписаниеТипов("Булево"));
Зависимости.Колонки.Добавить("Вытесняется", Новый ОписаниеТипов("Булево"));
Зависимости.ЗаполнитьЗначения(Истина, "Вытесняет");
ЗависимостиДоп = Зависимости.Скопировать();
ЗависимостиДоп.Колонки.Начисление.Имя = "НачислениеВрем";
ЗависимостиДоп.Колонки.ЗависимоеНачисление.Имя = "Начисление";
ЗависимостиДоп.Колонки.НачислениеВрем.Имя = "ЗависимоеНачисление";
ЗависимостиДоп.ЗаполнитьЗначения(Истина, "Вытесняется");
ЗависимостиДоп.ЗаполнитьЗначения(Ложь, "Вытесняет");
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ЗависимостиДоп, Зависимости);
Зависимости = КоллекцииБЗК.СгруппироватьТаблицу(Зависимости, "Начисление, ЗависимоеНачисление", "МАКСИМУМ(Вытесняется), МАКСИМУМ(Вытесняет)");
Набор.Загрузить(Зависимости);
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(Набор);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбработчик(ПараметрыОбновления);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьНачисленияПростойОтстранениеПриостановкаРаботы(ПараметрыОбновления = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
КоллекторНачислений = Новый Соответствие;
ПараметрыПланаВидовРасчета = РасчетЗарплатыРасширенный.ОписаниеПараметровПланаВидовРасчета();
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
СоздатьВнутрисменныеОтклонения(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета);
СоздатьНачисленияПриостановкиРаботы(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты);
Попытка
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений);
Исключение
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Ошибка создания начислений типа ""Приостановка работы""'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение,
Метаданные.ПланыВидовРасчета.Начисления, ,
НСтр("ru = 'Не удалось создать начисления типа ""Приостановка работы"" из-за предположительно неверной (зацикленной) настройки плана видов расчета.'",
ОбщегоНазначения.КодОсновногоЯзыка()));
КонецПопытки;
ОбновитьПовторноИспользуемыеЗначения();
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура ОчиститьКатегориюСтатистическогоНаблюденияДоходаВНатуральнойФорме(ПараметрыОбновления = Неопределено) Экспорт
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ДоходВНатуральнойФорме)
| И Начисления.КатегорияСтатистическогоНаблюдения <> ЗНАЧЕНИЕ(Перечисление.КатегорииСтатистическогоНаблюдения.ПустаяСсылка)");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ВидРасчетаОбъект = Выборка.Ссылка.ПолучитьОбъект();
ВидРасчетаОбъект.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ПустаяСсылка();
ВидРасчетаОбъект.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ПустаяСсылка();
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВидРасчетаОбъект);
КонецЦикла;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура ОплатаДнейУходаЗаДетьмиИнвалидамиПредопределеннымСпособом(ПараметрыОбновления = Неопределено) Экспорт
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами)");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ВидРасчетаОбъект = Выборка.Ссылка.ПолучитьОбъект();
ВидРасчетаОбъект.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ОплатаДнейУходаЗаДетьмиИнвалидами;
ВидРасчетаОбъект.ФормулаРасчета = "0";
ВидРасчетаОбъект.Показатели.Очистить();
ЗарплатаКадрыРасширенный.ЗаполнитьПоказателиПредопределенногоСпособаРасчета(ВидРасчетаОбъект.СпособРасчета, ВидРасчетаОбъект.Показатели);
Попытка
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВидРасчетаОбъект, , Истина);
Исключение
ЗаписьЖурналаРегистрации("Ошибка записи начисления при обновлении", УровеньЖурналаРегистрации.Ошибка, ВидРасчетаОбъект.Метаданные(), , ОписаниеОшибки(), РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
Конецпопытки;
КонецЦикла;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура ЗаполнитьКатегориюСтатистикиПособийПоУходуЗаРебенкомДоТрехЛет(ПараметрыОбновления = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка,
| Начисления.КатегорияСтатистическогоНаблюдения КАК КатегорияСтатистическогоНаблюдения
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоТрехЛет)";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.КатегорияСтатистическогоНаблюдения) Тогда
Продолжить;
КонецЕсли;
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
НачислениеОбъект.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ВыплатаСоциальногоХарактера;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
КонецЦикла;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура ЗаполнитьКатегориюСтатистики2020(ПараметрыОбновления = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияСтатистическогоНаблюдения2019 <> ЗНАЧЕНИЕ(Перечисление.КатегорииСтатистическогоНаблюдения.ПустаяСсылка)
| И Начисления.КатегорияСтатистическогоНаблюдения = ЗНАЧЕНИЕ(Перечисление.КатегорииСтатистическогоНаблюдения.ПустаяСсылка)";
МатериальнаяПомощьПриОтпуске = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске;
ОплатаДнейУходаЗаДетьмиИнвалидами = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами;
ЗаработнаяПлатаРаботников = Перечисления.КатегорииСтатистическогоНаблюдения.ЗаработнаяПлатаРаботников;
НеУчитываетсяВСтатистике = Перечисления.КатегорииСтатистическогоНаблюдения.ПустаяСсылка();
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
Если ЗначениеЗаполнено(НачислениеОбъект.КатегорияСтатистическогоНаблюдения) Тогда
Продолжить;
КонецЕсли;
Если НачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени = МатериальнаяПомощьПриОтпуске Тогда
НачислениеОбъект.КатегорияСтатистическогоНаблюдения = ЗаработнаяПлатаРаботников;
ИначеЕсли НачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени = ОплатаДнейУходаЗаДетьмиИнвалидами Тогда
НачислениеОбъект.КатегорияСтатистическогоНаблюдения = НеУчитываетсяВСтатистике;
Иначе
НачислениеОбъект.КатегорияСтатистическогоНаблюдения = НачислениеОбъект.КатегорияСтатистическогоНаблюдения2019;
КонецЕсли;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
КонецЦикла;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура УстановитьПризнакИспользоватьПособиеПоУходуЗаРебенкомДоТрехЛет(ПараметрыОбновления = Неопределено) Экспорт
Настройки = РегистрыСведений.НастройкиРасчетаЗарплатыРасширенный.СоздатьНаборЗаписей();
Настройки.Прочитать();
Если Настройки.Количество() = 0 Тогда
ЗаписьНабора = Настройки.Добавить();
Иначе
ЗаписьНабора = Настройки[0];
КонецЕсли;
ЗаписьНабора.ИспользоватьПособиеПоУходуЗаРебенкомДоТрехЛет = Истина;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Настройки);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура ЗаполнитьВидДоходаИсполнительногоПроизводства() Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПустаяСсылка", Перечисления.ВидыДоходовИсполнительногоПроизводства.ПустаяСсылка());
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ВидДоходаИсполнительногоПроизводства = &ПустаяСсылка";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат
КонецЕсли;
СвойстваПоКатегориям = СвойстваНачисленийПоКатегориям();
Начисления = РезультатЗапроса.Выбрать();
Пока Начисления.Следующий() Цикл
Начисление = Начисления.Ссылка.ПолучитьОбъект();
СвойстваПоКатегории = СвойстваПоКатегориям[Начисление.КатегорияНачисленияИлиНеоплаченногоВремени];
Если СвойстваПоКатегории = Неопределено Тогда
ВидДохода = Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения;
Иначе
ВидДохода = СвойстваПоКатегории.ВидДоходаИсполнительногоПроизводства
КонецЕсли;
Начисление.ВидДоходаИсполнительногоПроизводства = ВидДохода;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Начисление);
КонецЦикла
КонецПроцедуры
Процедура ЗаполнитьВидДоходаИсполнительногоПроизводства2022() Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПустаяСсылка", Перечисления.ВидыДоходовИсполнительногоПроизводства.ПустаяСсылка());
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ВидДоходаИсполнительногоПроизводства2022 = &ПустаяСсылка";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат
КонецЕсли;
Начисления = РезультатЗапроса.Выбрать();
Пока Начисления.Следующий() Цикл
Начисление = Начисления.Ссылка.ПолучитьОбъект();
Если Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.ДоходыБезОграниченияВзысканий
Или Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения Тогда
Начисление.ВидДоходаИсполнительногоПроизводства2022 = Начисление.ВидДоходаИсполнительногоПроизводства;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Начисление);
Продолжить;
ИначеЕсли Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые Тогда
ВидДохода = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеПериодические;
ИначеЕсли Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииОблагаемые Тогда
ВидДохода = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииОблагаемыеПериодические;
КонецЕсли;
СвойстваПоКатегориям = СвойстваНачисленийПоКатегориям();
МатпомощьПриРожденииРебенка = Новый Массив;
МатпомощьПриРожденииРебенка.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенка);
МатпомощьПриРожденииРебенка.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенкаПрокуроров);
СвойстваПоКатегории = СвойстваПоКатегориям[Начисление.КатегорияНачисленияИлиНеоплаченногоВремени];
Если Начисление.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощь
И МатпомощьПриРожденииРебенка.Найти(Начисление.КодДоходаСтраховыеВзносы2017) <> Неопределено Тогда
ВидДохода = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеЕдиновременные;
ИначеЕсли СвойстваПоКатегории <> Неопределено
И Начисление.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете
И Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые Тогда
ВидДохода = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеПериодические;
ИначеЕсли СвойстваПоКатегории <> Неопределено
И Начисление.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ЕжемесячноПриОкончательномРасчете
И Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииОблагаемые Тогда
ВидДохода = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииОблагаемыеПериодические;
ИначеЕсли СвойстваПоКатегории <> Неопределено
И (Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые
Или Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииОблагаемые)
И СвойстваПоКатегории.ВидДоходаИсполнительногоПроизводства2022 <> Перечисления.ВидыДоходовИсполнительногоПроизводства.ДоходыБезОграниченияВзысканий
И СвойстваПоКатегории.ВидДоходаИсполнительногоПроизводства2022 <> Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения Тогда
ВидДохода = СвойстваПоКатегории.ВидДоходаИсполнительногоПроизводства2022;
КонецЕсли;
Начисление.ВидДоходаИсполнительногоПроизводства2022 = ВидДохода;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Начисление);
КонецЦикла;
КонецПроцедуры
Процедура УстановитьПризнакУчитыватьВесьЗаработок(ПараметрыОбновления = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.УчитыватьВесьЗаработок";
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Возврат;
КонецЕсли;
Запрос.УстановитьПараметр("СдельныйЗаработок", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СдельныйЗаработок"));
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НачисленияПоказатели.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
|ГДЕ
| НачисленияПоказатели.Ссылка.ВходитВУчетОбщегоСреднегоЗаработка
| И НачисленияПоказатели.Показатель = &СдельныйЗаработок
| И НЕ НачисленияПоказатели.Ссылка.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Начисление = Выборка.Ссылка.ПолучитьОбъект();
Начисление.УчитыватьВесьЗаработок = Истина;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Начисление);
КонецЦикла;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура ЗаполнитьВидДоходаИсполнительногоПроизводстваМатпомощиПриРожденииРебенка(ПараметрыОбновления = Неопределено) Экспорт
МатпомощьПриРожденииРебенка = Новый Массив;
МатпомощьПриРожденииРебенка.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенка);
МатпомощьПриРожденииРебенка.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенкаПрокуроров);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МатпомощьПриРожденииРебенка", МатпомощьПриРожденииРебенка);
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощь)
| И Начисления.КодДоходаСтраховыеВзносы2017 В(&МатпомощьПриРожденииРебенка)
| И Начисления.ВидДоходаИсполнительногоПроизводства <> ЗНАЧЕНИЕ(Перечисление.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые)";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
КонецЦикла;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура УточнитьКодДоходаНДФЛКатегориюОписаниеРКиСН() Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("РайонныйКоэффициент", Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп11ст255);
Запрос.УстановитьПараметр("СевернаяНадбавка", Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп12ст255);
МассивОбработанныхКатегорий = Новый Массив;
МассивОбработанныхКатегорий.Добавить(Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавкиАУСН);
МассивОбработанныхКатегорий.Добавить(Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки);
Запрос.УстановитьПараметр("ОбработанныеКатегории", МассивОбработанныхКатегорий);
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА Начисления.КатегорияДохода = ЗНАЧЕНИЕ(Перечисление.КатегорииДоходовНДФЛ.ОплатаТрудаАУСН)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК КатегорияДоходаАУСН
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ВидНачисленияДляНУ = &РайонныйКоэффициент
| И НЕ Начисления.КатегорияДохода В (&ОбработанныеКатегории)
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА Начисления.КатегорияДохода = ЗНАЧЕНИЕ(Перечисление.КатегорииДоходовНДФЛ.ОплатаТрудаАУСН)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК КатегорияДоходаАУСН
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.ВидНачисленияДляНУ = &СевернаяНадбавка
| И НЕ Начисления.КатегорияДохода В (&ОбработанныеКатегории)";
РезультатыЗапроса = Запрос.ВыполнитьПакет();
ВыборкаРайонныйКоэфициент = РезультатыЗапроса[0].Выбрать();
ВыборкаСевернаяНадбавка = РезультатыЗапроса[1].Выбрать();
Пока ВыборкаРайонныйКоэфициент.Следующий() Цикл
Начисление = ВыборкаРайонныйКоэфициент.Ссылка.ПолучитьОбъект();
Если ВыборкаРайонныйКоэфициент.КатегорияДоходаАУСН Тогда
Начисление.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавкиАУСН;
Иначе
Начисление.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
КонецЕсли;
Начисление.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Начисление);
КонецЦикла;
Пока ВыборкаСевернаяНадбавка.Следующий() Цикл
Начисление = ВыборкаСевернаяНадбавка.Ссылка.ПолучитьОбъект();
Если ВыборкаСевернаяНадбавка.КатегорияДоходаАУСН Тогда
Начисление.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавкиАУСН;
Иначе
Начисление.КатегорияДохода = Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
КонецЕсли;
Начисление.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Начисление);
КонецЦикла;
КонецПроцедуры
Функция ИмяСобытияПодборНачислений()
Возврат НСтр("ru = 'Подбор начислений'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецФункции
Функция НастройкиВосстановленияПорядкаНачислений()
НастройкиПодбора = ВариантыПодбораНачисленийВДокументах();
ТаблицаРезультат = Новый ТаблицаЗначений;
ТаблицаРезультат.Колонки.Добавить("ПолноеИмяОМ");
ТаблицаРезультат.Колонки.Добавить("ИмяРеквизита", Новый ОписаниеТипов("Строка"));
ТаблицаРезультат.Колонки.Добавить("ИменаПолей");
РеквизитыНачислений = Метаданные.ПланыВидовРасчета.Начисления.Реквизиты;
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.КатегорияНачисленияИлиНеоплаченногоВремени);
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.СпособВыполненияНачисления);
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.СпособРасчета);
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ВидДокументаНачисления);
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ВидВремени);
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ВидОтпуска);
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ОбозначениеВТабелеУчетаРабочегоВремени);
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ЯвляетсяЛьготой);
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ЯвляетсяДоходомВНатуральнойФорме);
ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ИспользованиеПериода);
Для Каждого ОписаниеПодбора Из НастройкиПодбора Цикл
ФиксированныеОтборы = ОписаниеПодбора.ФиксированныеОтборы;
ФиксированныеОтборы = ?(ФиксированныеОтборы = Неопределено, Новый Структура, ФиксированныеОтборы);
ДинамическиеОтборы = ОписаниеПодбора.ДинамическиеОтборы;
ДинамическиеОтборы = ?(ДинамическиеОтборы = Неопределено, Новый Структура, ДинамическиеОтборы);
ИменаПолей = Новый СписокЗначений;
Для Каждого КлючИЗначение Из ФиксированныеОтборы Цикл
ИменаПолей.Добавить(КлючИЗначение.Ключ);
КонецЦикла;
СписокДинамическихОтборов = Новый СписокЗначений;
Для Каждого КлючИЗначение Из ДинамическиеОтборы Цикл
Значение = КлючИЗначение.Значение;
Если ТипЗнч(Значение) = Тип("Строка")
И СтрНачинаетсяС(Значение, "ВЫБРАТЬ") Тогда
Запрос = Новый Запрос(Значение);
Значение = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецЕсли;
СписокДинамическихОтборов.Добавить(Значение, КлючИЗначение.Ключ);
ИменаПолей.Добавить(КлючИЗначение.Ключ);
КонецЦикла;
ИменаПолей.СортироватьПоЗначению(НаправлениеСортировки.Возр);
ЗначенияПолейУровня0 = ОписаниеПодбора.ФиксированныеОтборы;
ЗначенияПолейУровня0.Вставить("ПолноеИмяОМ", ОписаниеПодбора.ПолноеИмяОМ);
ЗначенияПолейУровня0.Вставить("ИмяРеквизита", ОписаниеПодбора.ИмяРеквизита);
ЗначенияПолейУровня0.Вставить("ИменаПолей", СтрСоединить(ИменаПолей.ВыгрузитьЗначения(), ", "));
Количество = СписокДинамическихОтборов.Количество();
Если Количество > 0 Тогда
Ключ1 = СписокДинамическихОтборов[0].Представление;
МассивЗначений1 = СписокДинамическихОтборов[0].Значение;
ЗначенияПолейУровня1 = Новый Структура(Новый ФиксированнаяСтруктура(ЗначенияПолейУровня0));
Для Каждого Значение1 Из МассивЗначений1 Цикл
ЗначенияПолейУровня1.Вставить(Ключ1, Значение1);
Если Количество > 1 Тогда
Ключ2 = СписокДинамическихОтборов[1].Представление;
МассивЗначений2 = СписокДинамическихОтборов[1].Значение;
ЗначенияПолейУровня2 = Новый Структура(Новый ФиксированнаяСтруктура(ЗначенияПолейУровня1));
Для Каждого Значение2 Из МассивЗначений2 Цикл
ЗначенияПолейУровня2.Вставить(Ключ2, Значение2);
Если Количество > 2 Тогда
Ключ3 = СписокДинамическихОтборов[2].Представление;
МассивЗначений3 = СписокДинамическихОтборов[2].Значение;
ЗначенияПолейУровня3 = Новый Структура(Новый ФиксированнаяСтруктура(ЗначенияПолейУровня2));
Для Каждого Значение3 Из МассивЗначений3 Цикл
ЗначенияПолейУровня3.Вставить(Ключ3, Значение3);
ЗаполнитьЗначенияСвойств(ТаблицаРезультат.Добавить(), ЗначенияПолейУровня3);
КонецЦикла;
Иначе
ЗаполнитьЗначенияСвойств(ТаблицаРезультат.Добавить(), ЗначенияПолейУровня2);
КонецЕсли;
КонецЦикла;
Иначе
ЗаполнитьЗначенияСвойств(ТаблицаРезультат.Добавить(), ЗначенияПолейУровня1);
КонецЕсли;
КонецЦикла;
Иначе
ЗаполнитьЗначенияСвойств(ТаблицаРезультат.Добавить(), ЗначенияПолейУровня0);
КонецЕсли;
КонецЦикла;
Возврат ТаблицаРезультат;
КонецФункции
Процедура ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаЗначений, РеквизитМетаданных)
ТаблицаЗначений.Колонки.Добавить(РеквизитМетаданных.Имя, РеквизитМетаданных.Тип);
КонецПроцедуры
Процедура СоздатьНачисленияКомпенсацииНеИспользованныхОтгулов(ПараметрыОбновления = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
СоздатьНачисленияКомпенсацииНеИспользованныхДнейЧасовОтдыха();
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура ЗаполнитьСтруктуруДополнительнымиВидамиРасчета(СтруктураЗаполнения, КлючИЗначение)
Если КлючИЗначение.Значение.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСреднемЗаработке Тогда
СтруктураЗаполнения.Вставить("ВидРасчетаДолиРК", КлючИЗначение.Значение);
ИначеЕсли КлючИЗначение.Значение.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДС Тогда
СтруктураЗаполнения.Вставить("ВидРасчетаДолиРК", КлючИЗначение.Значение);
ИначеЕсли КлючИЗначение.Значение.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДД Тогда
СтруктураЗаполнения.Вставить("ВидРасчетаДолиРК", КлючИЗначение.Значение);
ИначеЕсли КлючИЗначение.Значение.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСреднемЗаработке Тогда
СтруктураЗаполнения.Вставить("ВидРасчетаДолиСН", КлючИЗначение.Значение);
ИначеЕсли КлючИЗначение.Значение.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДС Тогда
СтруктураЗаполнения.Вставить("ВидРасчетаДолиСН", КлючИЗначение.Значение);
ИначеЕсли КлючИЗначение.Значение.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДД Тогда
СтруктураЗаполнения.Вставить("ВидРасчетаДолиСН", КлючИЗначение.Значение);
КонецЕсли;
КонецПроцедуры
Функция ФормулаВнутрисменнойКомандировки(ВидФормулы) Экспорт
ФормулыРасчета = Новый Структура;
ФормулыРасчета.Вставить("ФормулаРасчета", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * НормаЧасов, УчитыватьМРОТ * МРОТ) / НормаЧасов * ВремяВЧасах");
ФормулыРасчета.Вставить("ФормулаРасчетаДолиРК", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * НормаЧасов, 0) / НормаЧасов * ВремяВЧасах");
ФормулыРасчета.Вставить("ФормулаРасчетаДолиСН", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * НормаЧасов, 0) / НормаЧасов * ВремяВЧасах");
Возврат ФормулыРасчета[ВидФормулы];
КонецФункции
Функция ФормулаУчебногоОтпуска(ВидФормулы) Экспорт
ФормулыРасчета = Новый Структура;
ФормулыРасчета.Вставить("ФормулаРасчета", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * КалендарныеДниМесяца > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН))* КалендарныеДниМесяца, УчитыватьМРОТ * МРОТ) / КалендарныеДниМесяца * КоличествоДнейОтпуска");
ФормулыРасчета.Вставить("ФормулаРасчетаДолиРК", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * КалендарныеДниМесяца > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * КалендарныеДниМесяца, 0) / КалендарныеДниМесяца * КоличествоДнейОтпуска");
ФормулыРасчета.Вставить("ФормулаРасчетаДолиСН", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * КалендарныеДниМесяца > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * КалендарныеДниМесяца, 0) / КалендарныеДниМесяца * КоличествоДнейОтпуска");
Возврат ФормулыРасчета[ВидФормулы];
КонецФункции
Функция ФормулаЧасовогоПростояПоВинеРаботодателя(ВидФормулы) Экспорт
ФормулыРасчета = Новый Структура;
ФормулыРасчета.Вставить("ФормулаРасчета", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * НормаЧасов, УчитыватьМРОТ * МРОТ) / НормаЧасов * (2/3) * ВремяВЧасах");
ФормулыРасчета.Вставить("ФормулаРасчетаДолиРК", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * НормаЧасов, 0) / НормаЧасов * (2/3) * ВремяВЧасах");
ФормулыРасчета.Вставить("ФормулаРасчетаДолиСН", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * НормаЧасов, 0) / НормаЧасов * (2/3) * ВремяВЧасах");
Возврат ФормулыРасчета[ВидФормулы];
КонецФункции
Функция ФормулаПриостановкиРаботыПоПричинеЗадержкиВыплатыЗарплаты(ВидФормулы) Экспорт
ФормулыРасчета = Новый Структура;
ФормулыРасчета.Вставить("ФормулаРасчета", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, ((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)) * НормаДнейЧасов, УчитыватьМРОТ * МРОТ) / НормаДнейЧасов * ВремяВДняхЧасах");
ФормулыРасчета.Вставить("ФормулаРасчетаДолиРК", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) * НормаДнейЧасов, 0) / НормаДнейЧасов * ВремяВДняхЧасах");
ФормулыРасчета.Вставить("ФормулаРасчетаДолиСН", "?((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) * НормаДнейЧасов > УчитыватьМРОТ * МРОТ, (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН) * НормаДнейЧасов, 0) / НормаДнейЧасов * ВремяВДняхЧасах");
Возврат ФормулыРасчета[ВидФормулы];
КонецФункции
Процедура УточнитьСвойстваНДФЛСтраховыхВзносовКатегорииКомпенсацияНеИспользованныхДнейЧасовОтдыха() Экспорт
КодДоходаСтраховыеВзносыНеОблагаетсяЦеликом = Справочники.ВидыДоходовПоСтраховымВзносам.НеОблагаетсяЦеликом;
КодДоходаСтраховыеВзносыОблагаетсяЦеликом = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
КодДоходаНДФЛ2000 = Справочники.ВидыДоходовНДФЛ.КодДоходаПоУмолчанию;
КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(КодДоходаНДФЛ2000);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка,
| Начисления.КодДоходаНДФЛ КАК КодДоходаНДФЛ,
| Начисления.КодДоходаСтраховыеВзносы2017 КАК КодДоходаСтраховыеВзносы2017
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияНеИспользованныхДнейЧасовОтдыха)
| И Начисления.КодДоходаНДФЛ = ЗНАЧЕНИЕ(Справочник.ВидыДоходовНДФЛ.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| Начисления.Ссылка,
| Начисления.КодДоходаНДФЛ,
| Начисления.КодДоходаСтраховыеВзносы2017
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияНеИспользованныхДнейЧасовОтдыха)
| И Начисления.КодДоходаСтраховыеВзносы2017 = &КодДоходаСтраховыеВзносы";
Запрос.УстановитьПараметр("КодДоходаСтраховыеВзносы", КодДоходаСтраховыеВзносыНеОблагаетсяЦеликом);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
Если Выборка.КодДоходаНДФЛ.Пустая() Тогда
НачислениеОбъект.КодДоходаНДФЛ = КодДоходаНДФЛ2000;
НачислениеОбъект.КатегорияДохода = КатегорияДохода;
КонецЕсли;
НачислениеОбъект.КодДоходаСтраховыеВзносы2017 = КодДоходаСтраховыеВзносыОблагаетсяЦеликом;
НачислениеОбъект.КодДоходаСтраховыеВзносы = КодДоходаСтраховыеВзносыОблагаетсяЦеликом;
НачислениеОбъект.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
КонецЦикла;
КонецПроцедуры
Процедура УточнитьВидНачисленияДляНУКатегорииКомпенсацияНеИспользованныхДнейЧасовОтдыха() Экспорт
ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп9ст255;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияНеИспользованныхДнейЧасовОтдыха)
| И Начисления.ВидНачисленияДляНУ = &ВидНачисленияДляНУ";
Запрос.УстановитьПараметр("ВидНачисленияДляНУ", ВидНачисленияДляНУ);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп3ст255;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
КонецЦикла;
КонецПроцедуры
Процедура УточнитьВхождениеВУчетСреднегоЗаработкаКомпенсацииНеИспользованныхДнейЧасовОтдыха() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Начисления.Ссылка КАК Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияНеИспользованныхДнейЧасовОтдыха)
| И (НЕ Начисления.ВходитВУчетОбщегоСреднегоЗаработка
| ИЛИ НЕ Начисления.ВходитВУчетСреднегоЗаработкаФСС)";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
НачислениеОбъект.ВходитВУчетОбщегоСреднегоЗаработка = Истина;
НачислениеОбъект.ВходитВУчетСреднегоЗаработкаФСС = Истина;
Если НачислениеОбъект.СреднийЗаработокОбщий.Количество() = 0 Тогда
НоваяСтрока = НачислениеОбъект.СреднийЗаработокОбщий.Добавить();
НоваяСтрока.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаОбщий.Постановление2010;
НоваяСтрока.Значение = Перечисления.УчетНачисленийВСреднемЗаработкеОбщий.ОбщийЗаработок;
НоваяСтрока.Индексируется = Истина;
КонецЕсли;
Если НачислениеОбъект.СреднийЗаработокФСС.Количество() = 0 Тогда
НоваяСтрока = НачислениеОбъект.СреднийЗаработокФСС.Добавить();
НоваяСтрока.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаФСС.Постановление2011;
НоваяСтрока.Значение = Перечисления.УчетНачисленийВСреднемЗаработкеФСС.Включать;
КонецЕсли;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
Функция ОписаниеДолиРКСН(СозданиеДолиРК, СвойстваНачислений, ДанныеОсновногоВидаРасчета, ОсновнойВидрасчетаСсылка)
Если СозданиеДолиРК Тогда
Если КатегорииДенежногоДовольствия().Найти(ДанныеОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено Тогда
КатегорияНачисления = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДД;
ИначеЕсли КатегорииДенежногоСодержания().Найти(ДанныеОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено Тогда
КатегорияНачисления = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСДС;
Иначе
КатегорияНачисления = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиРайонногоКоэффициентаВСреднемЗаработке;
КонецЕсли;
Постфикс = "(доля РК)";
Иначе
Если КатегорииДенежногоДовольствия().Найти(ДанныеОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено Тогда
КатегорияНачисления = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДД;
ИначеЕсли КатегорииДенежногоСодержания().Найти(ДанныеОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени) <> Неопределено Тогда
КатегорияНачисления = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСДС;
Иначе
КатегорияНачисления = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДолиСевернойНадбавкиВСреднемЗаработке;
КонецЕсли;
Постфикс = "(доля СН)";
КонецЕсли;
СвойстваПоКатегории = СвойстваНачислений.Получить(КатегорияНачисления);
СвойстваОсновногоВидаРасчета = СвойстваНачислений.Получить(ДанныеОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени);
Описание = ПланыВидовРасчета.Начисления.ОписаниеНачисления();
Описание.Вставить("ОсновнойВидРасчета", ОсновнойВидрасчетаСсылка);
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорияНачисления;
Описание.СвойстваПоКатегории = СвойстваПоКатегории;
Описание.Наименование = СтрШаблон(НСтр("ru = '%1 %2'"), СокрЛП(ДанныеОсновногоВидаРасчета.Наименование), Постфикс);
КраткоеНаименование = СокрЛП(ДанныеОсновногоВидаРасчета.КраткоеНаименование);
Если КраткоеНаименование <> "" Тогда
Описание.КраткоеНаименование = СтрШаблон(НСтр("ru = '%1 %2'"), КраткоеНаименование, Постфикс);
КонецЕсли;
ЗаполнитьЗначенияСвойств(Описание.СвойстваПоКатегории, ДанныеОсновногоВидаРасчета, , "КодДоходаНДФЛ, КатегорияДохода, ВидВремени");
ВидФормулы = ?(СозданиеДолиРК, "ФормулаРасчетаДолиРК", "ФормулаРасчетаДолиСН");
Описание.СвойстваПоКатегории.ФормулаРасчета = ФормулаВидаРасчетаПоКатегории(СвойстваНачислений, ДанныеОсновногоВидаРасчета, ВидФормулы);
Возврат Описание;
КонецФункции
Функция НаследуемыеСвойстваОсновногоНачисления() Экспорт
СписокСвойств = "ВАрхиве, СпособВыполненияНачисления, СпособРасчета, ВидДокументаНачисления, ФормулаРасчета,
|НачисляетсяВЦеломЗаМесяц, НачисляетсяПриРасчетеПервойПоловиныМесяца, ОбозначениеВТабелеУчетаРабочегоВремени,
|ВидНачисленияДляНУ, КодДоходаСтраховыеВзносы, ВидПособияСоциальногоСтрахования, ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка, КоличествоМесяцевРасчетаСреднегоЗаработка,
|ВидОтпуска, ВидСтажаСЗВ, ВидСтажаПФР2014, ОчередностьРасчета, ВидОперацииПоЗарплате,
|ВходитВУчетСреднегоЗаработкаФСС, КатегорияСтатистическогоНаблюдения2019, ПоддерживаетНесколькоПлановыхНачислений,
|ВключатьВФОТ, КодДоходаСтраховыеВзносы2017, ПорядокОпределенияМесяцаДоходаВВидеОплатыТруда, КатегорияСтатистическогоНаблюдения,
|ВидДоходаИсполнительногоПроизводства, НачисляетсяВОтпускеПоУходу, СтрокаРаздела2Расчета6НДФЛ, ВидДоходаИсполнительногоПроизводства2022,
|НачисляетсяТолькоПриРасчетеПервойПоловиныМесяца, КатегорияСтатистическогоНаблюденияЗаКлассноеРуководство, Наименование, КраткоеНаименование, КатегорияНачисленияИлиНеоплаченногоВремени,
|ПериодРасчетаБазовыхНачислений, КоличествоМесяцевБазовогоПериода, СдвигБазовогоПериода, ВидВремени, КодДоходаНДФЛ, КатегорияДохода";
Возврат СписокСвойств;
КонецФункции
Функция ФормулаВидаРасчетаПоКатегории(СвойстваНачислений, ЗначенияСвойствОсновногоВидаРасчета, ВидФормулы = "ФормулаРасчета")
ФормулаРасчетаЧастногоСлучая = Неопределено;
Если ВидФормулы = "ФормулаРасчета" Тогда
ФормулаРасчета = СвойстваНачислений.Получить(ЗначенияСвойствОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени).ФормулаРасчета;
Иначе
ФормулаРасчета = СвойстваНачислений.Получить(ЗначенияСвойствОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени).ДополнительныеФормулыРасчета[ВидФормулы];
КонецЕсли;
Если ЗначенияСвойствОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска И
ЗначенияСвойствОсновногоВидаРасчета.ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.ОтпускУчебный") Тогда
ФормулаРасчетаЧастногоСлучая = ФормулаУчебногоОтпуска(ВидФормулы);
ИначеЕсли ЗначенияСвойствОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки И
ЗначенияСвойствОсновногоВидаРасчета.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное Тогда
ФормулаРасчетаЧастногоСлучая = ФормулаВнутрисменнойКомандировки(ВидФормулы);
ИначеЕсли ЗначенияСвойствОсновногоВидаРасчета.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ЗадержкаВыплатыЗаработнойПлаты") И
ЗначенияСвойствОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя Тогда
ФормулаРасчетаЧастногоСлучая = ФормулаПриостановкиРаботыПоПричинеЗадержкиВыплатыЗарплаты(ВидФормулы);
ИначеЕсли ЗначенияСвойствОсновногоВидаРасчета.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя И
ЗначенияСвойствОсновногоВидаРасчета.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЧасовоеНеотработанное Тогда
ФормулаРасчетаЧастногоСлучая = ФормулаЧасовогоПростояПоВинеРаботодателя(ВидФормулы);
КонецЕсли;
Возврат ?(ФормулаРасчетаЧастногоСлучая = Неопределено, ФормулаРасчета, ФормулаРасчетаЧастногоСлучая);
КонецФункции
Функция КатегорииДенежногоСодержания()
КатегорииДенежногоСодержания = Новый Массив();
КатегорииДенежногоСодержания.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеДоплатаКомандировки);
КатегорииДенежногоСодержания.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниПриУвольненииГосслужащего);
КатегорииДенежногоСодержания.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ВыходноеПособиеМесячноеДенежноеСодержание);
КатегорииДенежногоСодержания.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СохраняемоеДенежноеСодержание);
КатегорииДенежногоСодержания.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпускаНаСанаторноКурортноеЛечение);
КатегорииДенежногоСодержания.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпуска);
КатегорииДенежногоСодержания.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодКомандировки);
КатегорииДенежногоСодержания.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеКомпенсацияОтпуска);
Возврат КатегорииДенежногоСодержания;
КонецФункции
Функция КатегорииДенежногоДовольствия()
КатегорииДенежногоДовольствия = Новый Массив();
КатегорииДенежногоДовольствия.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СохраняемоеДенежноеДовольствие);
КатегорииДенежногоДовольствия.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаСверхурочныхВоеннослужащим);
КатегорииДенежногоДовольствия.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеДовольствиеКомпенсацияОтпуска);
Возврат КатегорииДенежногоДовольствия;
КонецФункции
Функция КатегорииНачисленийОплатПоСреднему()
КатегорииНачислений = Новый Массив;
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпуска);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияОтпуска);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеКомпенсацияОтпуска);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодКомандировки);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СохраняемоеДенежноеСодержание);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаКомандировки);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеДоплатаКомандировки);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеДовольствиеКомпенсацияОтпуска);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускНаСанаторноКурортноеЛечение);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ВыходноеПособие);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ВыходноеПособиеМесячноеДенежноеСодержание);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпускаНаСанаторноКурортноеЛечение);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниЧасыПриУвольнении);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияЗаНеотработанныеДниПриУвольненииГосслужащего);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПростояПоВинеРаботодателя);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаСверхурочныхВоеннослужащим);
КатегорииНачислений.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СохраняемоеДенежноеДовольствие);
Возврат КатегорииНачислений;
КонецФункции
Процедура СоздатьНачисленияКомпенсацииНеИспользованныхДнейЧасовОтдыха(НастройкиРасчетаЗарплаты = Неопределено, КоллекторНачислений = Неопределено, СвойстваНачислений = Неопределено)
НачатьТранзакцию();
Попытка
ЗаписыватьНачисления = Ложь;
Если КоллекторНачислений = Неопределено Тогда
КоллекторНачислений = Новый Соответствие;
ЗаписыватьНачисления = Истина;
КонецЕсли;
Если СвойстваНачислений = Неопределено Тогда
СвойстваНачислений = СвойстваНачисленийПоКатегориям();
КонецЕсли;
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
КонецЕсли;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияНеИспользованныхДнейЧасовОтдыха;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'КДО'");
Описание.Наименование = НСтр("ru = 'Компенсация неиспользованных дней отдыха'");
Описание.КраткоеНаименование = НСтр("ru = 'Комп. дни отгулов'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ФормулаРасчета = "КоличествоДнейЧасовКомпенсацииОтгулов * СтоимостьДня";
Описание.УчетВремениВЧасах = Ложь;
Описание.КлючевыеСвойства = "КатегорияНачисленияИлиНеоплаченногоВремени, УчетВремениВЧасах";
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
ИспользоватьУчетВремениСотрудниковВЧасах = НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах;
Описание = ОписаниеНачисления();
Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияНеИспользованныхДнейЧасовОтдыха;
Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
Описание.Код = НСтр("ru = 'КЧО'");
Описание.Наименование = НСтр("ru = 'Компенсация неиспользованных часов отдыха'");
Описание.КраткоеНаименование = НСтр("ru = 'Комп. часы отгулов'");
Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
Описание.ФормулаРасчета = "КоличествоДнейЧасовКомпенсацииОтгулов * СтоимостьЧаса";
Описание.УчетВремениВЧасах = Истина;
Описание.КлючевыеСвойства = "КатегорияНачисленияИлиНеоплаченногоВремени, УчетВремениВЧасах";
Если ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
Иначе
ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
КонецЕсли;
Если ЗаписыватьНачисления Тогда
ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
Ошибка = ИнформацияОбОшибке();
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Ошибка создания начислений «Компенсации не испольованного времени отдыха»'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение,
Метаданные.ПланыВидовРасчета.Начисления, ,
НСтр("ru = 'Не удалось создать начисления «Компенсации не испольованного времени отдыха» из-за предположительно неверной (зацикленной) настройки плана видов расчета.'",
ОбщегоНазначения.КодОсновногоЯзыка()));
КонецПопытки;
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
Функция КатегорииРазбиваемыхНачислений()
СписокКатегорий = Новый Массив;
СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияНеИспользованныхДнейЧасовОтдыха);
Возврат СписокКатегорий;
КонецФункции
#КонецОбласти
#КонецЕсли