Начисления / Модуль менеджера

файл
#Область ОбработчикиСобытий

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	РасчетЗарплатыРасширенныйВызовСервера.НачисленияОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
КонецПроцедуры

#КонецОбласти

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
	
	Настройки.ПриПолученииСлужебныхРеквизитов = Истина;
	
КонецПроцедуры

// Ограничивает видимость реквизитов объекта в отчете по версии.
//
// Параметры:
//  Реквизиты - Массив - список имен реквизитов объекта.
Процедура ПриПолученииСлужебныхРеквизитов(Реквизиты) Экспорт
	
    Реквизиты.Добавить("ДоступнаСтратегияОтраженияКакЗаданоВидуРасчета");
	Реквизиты.Добавить("КоличествоОтображаемыхПоказателей");
	Реквизиты.Добавить("КоличествоПоказателейИспользуемыхПриРасчете");
	Реквизиты.Добавить("КоличествоПостоянныхПоказателей");
	Реквизиты.Добавить("ОкруглятьРезультатРаспределения");
	Реквизиты.Добавить("ОчередностьОтраженияВУчете");
	Реквизиты.Добавить("ОчередностьРасчета");
	Реквизиты.Добавить("ТребуетсяРасчетБазы");
	Реквизиты.Добавить("ТребуетсяРасчетБазыИсполнительногоЛиста");
	Реквизиты.Добавить("ОчередностьОтраженияВУчете");
	
КонецПроцедуры

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

#КонецОбласти

#КонецОбласти

#Область СлужебныйПрограммныйИнтерфейс

// Подключаемые характеристики
Функция ИмяПланаВидовПодключаемыхХарактеристикЗарплатаКадры() Экспорт
	Возврат "НачисленияПодключаемыеХарактеристики";
КонецФункции

Функция СвойстваНачисленияПоКатегорииПоУмолчанию() Экспорт
	
	Описание = Новый Структура(
	"СпособВыполненияНачисления, 
	|СпособРасчета, 
	|ФормулаРасчета,
	|ВидДокументаНачисления, 
	|ВидПособияСоциальногоСтрахования, 
	|ВидВремени, 
	|ОбозначениеВТабелеУчетаРабочегоВремени,
	|ВидОтпуска, 
	|ВидОперацииПоЗарплате,
	|ПериодРасчетаБазовыхНачислений,
	|КоличествоМесяцевБазовогоПериода,
	|СдвигБазовогоПериода,
	|ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка,
	|КодДоходаНДФЛ,
	|КатегорияДохода,
	|КодДоходаСтраховыеВзносы,
	|КодДоходаСтраховыеВзносы2017,
	|ВидСтажаСЗВ,
	|ВидСтажаПФР2014,
	|ВидНачисленияДляНУ,
	|ЗачетНормыВремени,
	|ЗачетОтработанногоВремени,
	|НачисляетсяПриРасчетеПервойПоловиныМесяца,
	|ОтборБазовых,
	|ОтборВытесняющих,
	|ОтборВедущих,
	|ИменаИнструкций, 
	|ПараметрыВыбора, 
	|НедоступныеСвойства, 
	|СтратегияОтраженияВСреднемЗаработке,           
	|ВключатьВСреднийЗаработокОбщий, 
	|СреднийЗаработокОбщий, 
	|ИндексируетсяСреднийЗаработокОбщий,
	|ВключатьВСреднийЗаработокФСС,
	|ВключатьВСреднийЗаработокФСС2010,
	|СпособОтраженияЗарплатыВБухучете, 
	|ОтношениеКЕНВД, 
	|СтатьяФинансирования, 
	|СтатьяРасходов, 
	|СтратегияОтраженияВУчете,           
	|ЯвляетсяДоходомВНатуральнойФорме,
	|КатегорияСтатистическогоНаблюдения,
	|КатегорияСтатистическогоНаблюдения2019,
	|ВидДоходаИсполнительногоПроизводства,
	|ВидДоходаИсполнительногоПроизводства2022,
	|ВключатьВФОТ,
	|Рассчитывается,
	|ПоддерживаетНесколькоПлановыхНачислений,
	|УчитыватьИзменениеЗначенийПоказателейВБазовомПериоде,
	|ДоступенПустойВидНачисленийДляНУ,
	|ПериодичностьНачисления,
	|ОсновнойВидРасчета,
	|ДополнительныеФормулыРасчета");
	
	// Недоступные свойства: строка, в которой перечислены имена свойств начислений, 
	// выбор которых недоступен для указанной категории.
	
	// Свойства по умолчанию	
	Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПустаяСсылка();
	Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПустаяСсылка();
	Описание.ФормулаРасчета = "";
	Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.ПустаяСсылка();
	Описание.ВидПособияСоциальногоСтрахования = Перечисления.ПереченьПособийСоциальногоСтрахования.ПустаяСсылка();
	Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ПустаяСсылка();
	Описание.ПериодРасчетаБазовыхНачислений = Перечисления.ПериодыРасчетаБазовыхНачислений.ТекущийМесяц;
	Описание.ВключатьВСреднийЗаработокОбщий = Ложь;
	Описание.ВключатьВСреднийЗаработокФСС = Ложь;
	Описание.КодДоходаНДФЛ = Справочники.ВидыДоходовНДФЛ.КодДоходаПоУмолчанию;
	Описание.КатегорияДохода = УчетНДФЛПовтИсп.КатегорияДоходаПоЕгоКоду(Описание.КодДоходаНДФЛ);
	Описание.КодДоходаСтраховыеВзносы = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
	Описание.КодДоходаСтраховыеВзносы2017 = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
	Описание.ВидОперацииПоЗарплате = Перечисления.ВидыОперацийПоЗарплате.НачисленоДоход;
	Описание.СтратегияОтраженияВСреднемЗаработке = Перечисления.СтратегииОтраженияВУчетеНачисленийУдержаний.КакЗаданоВидуРасчета;
	Описание.СтратегияОтраженияВУчете = Перечисления.СтратегииОтраженияВУчетеНачисленийУдержаний.ПоДаннымОСотрудникеИЕгоПлановыхНачислениях;
	Описание.КатегорияСтатистическогоНаблюдения = Перечисления.КатегорииСтатистическогоНаблюдения.ЗаработнаяПлатаРаботников;
	Описание.КатегорияСтатистическогоНаблюдения2019 = Перечисления.КатегорииСтатистическогоНаблюдения.ЗаработнаяПлатаРаботников;
	Описание.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения;
	Описание.ВидДоходаИсполнительногоПроизводства2022 = Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения;
	Описание.Рассчитывается = Истина;
	Описание.ПоддерживаетНесколькоПлановыхНачислений = Ложь;
	Описание.УчитыватьИзменениеЗначенийПоказателейВБазовомПериоде = Истина;
	Описание.ДоступенПустойВидНачисленийДляНУ = Ложь;
	Описание.ПериодичностьНачисления = Перечисления.ПериодичностьНачисления.ПустаяСсылка();
	
	// Самый распространенный набор недоступных полей.
	НедоступныеСвойстваПоУмолчанию = Новый Массив;
	НедоступныеСвойстваПоУмолчанию.Добавить("ВключатьВСреднийЗаработокОбщий");
	НедоступныеСвойстваПоУмолчанию.Добавить("СреднийЗаработокОбщий");
	НедоступныеСвойстваПоУмолчанию.Добавить("ИндексируетсяСреднийЗаработокОбщий");
	НедоступныеСвойстваПоУмолчанию.Добавить("ВключатьВСреднийЗаработокФСС");
	НедоступныеСвойстваПоУмолчанию.Добавить("ВидНачисленияДляНУ");
	НедоступныеСвойстваПоУмолчанию.Добавить("КодДоходаНДФЛ");
	НедоступныеСвойстваПоУмолчанию.Добавить("КодДоходаСтраховыеВзносы");
	НедоступныеСвойстваПоУмолчанию.Добавить("КодДоходаСтраховыеВзносы2017");
	НедоступныеСвойстваПоУмолчанию.Добавить("СпособВыполненияНачисления");
	НедоступныеСвойстваПоУмолчанию.Добавить("ВидСтажаСЗВ");
	НедоступныеСвойстваПоУмолчанию.Добавить("ВидСтажаПФР2014");
	НедоступныеСвойстваПоУмолчанию.Добавить("ВидОтпуска");
	НедоступныеСвойстваПоУмолчанию.Добавить("ВидДокументаНачисления");
	НедоступныеСвойстваПоУмолчанию.Добавить("КатегорияСтатистическогоНаблюдения");
	НедоступныеСвойстваПоУмолчанию.Добавить("ОсновнойВидРасчета");
	Описание.НедоступныеСвойства = НедоступныеСвойстваПоУмолчанию;
	
	//Формулы расчета для служебных целей
	ДополнительныеФормулыРасчета = Новый Структура;
	ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаПредыдущая");
	ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиРК");
	ДополнительныеФормулыРасчета.Вставить("ФормулаРасчетаДолиСН");
	Описание.ДополнительныеФормулыРасчета = ДополнительныеФормулыРасчета;
	
	Описание.ИменаИнструкций = "НедоступныеСвойства,КлючевыеСвойства,ИменаИнструкций,ПараметрыВыбора,ОтборБазовых,ОтборВытесняющих,ОтборВедущих,ДоступенПустойВидНачисленийДляНУ,ДополнительныеФормулыРасчета"; 
	
	Возврат Описание;
	
КонецФункции

// Конструирует структуру для описания создаваемого или изменяемого начисления.
//
Функция ОписаниеНачисления() Экспорт 
	
	Описание = Новый Структура(
	"Код,
	|РеквизитДопУпорядочивания,
	|Наименование,
	|КраткоеНаименование,
	|КатегорияНачисленияИлиНеоплаченногоВремени,
	|ВидНачисленияДляНУ,
	|КодДоходаНДФЛ,
	|КатегорияДохода,
	|КодДоходаСтраховыеВзносы,
	|КодДоходаСтраховыеВзносы2017,
	|СпособВыполненияНачисления,
	|ВидДокументаНачисления,
	|СпособРасчета,
	|ФормулаРасчета,
	|НачисляетсяПриРасчетеПервойПоловиныМесяца,
	|НачисляетсяТолькоПриРасчетеПервойПоловиныМесяца,
	|ВидВремени,
	|ОбозначениеВТабелеУчетаРабочегоВремени,
	|ЗачетНормыВремени,
	|ЗачетОтработанногоВремени,
	|ИспользоватьОперативныеПоказателиВЦеломЗаМесяц,
	|ОтношениеКЕНВД,
	|ВидПособияСоциальногоСтрахования,
	|ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка,
	|ПериодРасчетаБазовыхНачислений,
	|КоличествоМесяцевБазовогоПериода,
	|СдвигБазовогоПериода,
	|ОтборБазовых,
	|СтратегияОтраженияВСреднемЗаработке,
	|СреднийЗаработокОбщий,
	|ВключатьВСреднийЗаработокОбщий,
	|СреднийЗаработокФСС,
	|ВключатьВСреднийЗаработокФСС,
	|ВключатьВСреднийЗаработокФСС2010,
	|КлючевыеСвойства,
	|ВидОперацииПоЗарплате,
	|ВидОтпуска,
	|ВидСтажаСЗВ,
	|ВидСтажаПФР2014,
	|УчетВремениВЧасах,
	|ОпределяющиеПоказатели,
	|ЗапрашиваемыеПоказатели,
	|СвойстваПоКатегории,
	|МесяцыНачисления,
	|ЯвляетсяДоходомВНатуральнойФорме,
	|Рассчитывается,
	|КатегорияСтатистическогоНаблюдения,
	|КатегорияСтатистическогоНаблюдения2019,
	|ВидДоходаИсполнительногоПроизводства,
	|ВидДоходаИсполнительногоПроизводства2022,
	|ПоддерживаетНесколькоПлановыхНачислений,
	|УчитыватьИзменениеЗначенийПоказателейВБазовомПериоде,
	|ВключатьВФОТ,
	|ПоказателиЗадающиеБухучет,
	|СтратегияОтраженияВУчете,
	|ПериодичностьНачисления,
	|СсылкаНаОбъект"); // Содержит ссылку на объект, который уже был создан Из помощника начальной настройки программы.
	
	Возврат Описание;
	
КонецФункции

Функция ОтборБазовыхПоУмолчанию() Экспорт 
	
	ОбозначенияВТабеле = Новый Массив;
	ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Явка"));
	ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РаботаНочныеЧасы"));
	ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.РаботаВечерниеЧасы"));
	ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Сверхурочные"));
	ОбозначенияВТабеле.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Праздники"));
	
	ОтборБазовых = Новый Структура;
	ОтборБазовых.Вставить("КатегорияНачисленияИлиНеоплаченногоВремени", КатегорииБазаНадбавок());
	ОтборБазовых.Вставить("ТребуетсяРасчетБазы", Ложь);
	ОтборБазовых.Вставить("ОбозначениеВТабелеУчетаРабочегоВремени", ОбозначенияВТабеле);

	Возврат ОтборБазовых;
	
КонецФункции

// Процедура получает объекты видов расчета по указанному описанию, 
// устанавливает им использование и добавляет в коллектор, 
// если начислений с указанным описанием не обнаружено, 
// они создаются и так же добавляются в коллектор.
//
// Параметры:
// 	- Коллектор - соответствие, где ключ ссылка, а значение объект вида расчета.
//	- Описание - структура с описанием начисления.
//	- ПроверятьНаличиеНачислений - признак того, что создавать начисления нужно только в случае их отсутствия.
//	- ОбновлятьНачисленияПоСсылке, если Истина, начисления, для которых ключевым свойством является Ссылка, и которые уже существуют, будут обновлены данными из описания.
//
Процедура СоздатьИзменитьНачисленияПоОписанию(Коллектор, Описание, ПроверятьНаличиеНачислений = Истина, ОбновлятьНачисленияПоСсылке = Ложь) Экспорт 
	
	НачислениеОбъект = Неопределено;
	
	ДополнитьОписаниеПоСвойствамКатегории(Описание);
	
	Если ПроверятьНаличиеНачислений Тогда
		Если Описание.КлючевыеСвойства = "Ссылка" Тогда
			НачислениеОбъект = НачислениеОбъектПоСсылке(Описание.СсылкаНаОбъект);
			Если Не ОбновлятьНачисленияПоСсылке И НачислениеОбъект <> Неопределено Тогда
				УстановитьИспользованиеНачислений(Коллектор, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Описание.СсылкаНаОбъект), Истина);
				Возврат;
			КонецЕсли;
		Иначе
			НачисленияПоОписанию = НачисленияПоОписанию(Описание);
			Если НачисленияПоОписанию.Количество() > 0 Тогда
				// Если начисления по такому описанию уже существуют, 
				// надо проверить все ли они используются, если нет - нужно их «включить».
				УстановитьИспользованиеНачислений(Коллектор, НачисленияПоОписанию, Истина);
				Возврат;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
	
	Если НачислениеОбъект = Неопределено Тогда
		// Если начислений по указанному описанию не существует, создаем их.
		НачислениеОбъект = ПланыВидовРасчета.Начисления.СоздатьВидРасчета();
		
		// Устанавливаем ссылку новому объекту.
		НачислениеСсылка = ПланыВидовРасчета.Начисления.ПолучитьСсылку();
		Описание.СсылкаНаОбъект = НачислениеСсылка;
		НачислениеОбъект.УстановитьСсылкуНового(НачислениеСсылка);	
	Иначе
		НачислениеСсылка = НачислениеОбъект.Ссылка;
		НачислениеОбъект.ВАрхиве = Ложь;
		НачислениеОбъект.ПометкаУдаления = Ложь;
	КонецЕсли;
	Коллектор.Вставить(НачислениеСсылка, НачислениеОбъект);
	
	СвойстваПоКатегории = Описание.СвойстваПоКатегории;
	
	ЗаполнитьЗначенияСвойств(НачислениеОбъект, Описание);
	
	НачислениеОбъект.МесяцыНачисления.Очистить();
	Если Описание.МесяцыНачисления <> Неопределено Тогда
		Для каждого МесяцНачисления Из Описание.МесяцыНачисления Цикл
			НовыйМесяц = НачислениеОбъект.МесяцыНачисления.Добавить();
			НовыйМесяц.Месяц = МесяцНачисления;
		КонецЦикла;
	КонецЕсли;
	
	РасчетЗарплатыРасширенный.ЗаполнитьТаблицуПоказателейВидаРасчета(НачислениеОбъект, Коллектор);
	
	// Средний заработок (общий)
	НачислениеОбъект.СреднийЗаработокОбщий.Очистить();
	Если СвойстваПоКатегории.ВключатьВСреднийЗаработокОбщий Тогда
		НоваяСтрока = НачислениеОбъект.СреднийЗаработокОбщий.Добавить();
		НоваяСтрока.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаОбщий.Постановление2010;
		НоваяСтрока.Значение = Описание.СреднийЗаработокОбщий;
		Если Не ЗначениеЗаполнено(Описание.СреднийЗаработокОбщий) Тогда
			НоваяСтрока.Значение = СвойстваПоКатегории.СреднийЗаработокОбщий;
		КонецЕсли;
		НоваяСтрока.Индексируется = Истина;
	КонецЕсли;
	
	// Средний заработок (ФСС)
	НачислениеОбъект.СреднийЗаработокФСС.Очистить();
	Если СвойстваПоКатегории.ВключатьВСреднийЗаработокФСС Тогда
		// 2011
		НоваяСтрока = НачислениеОбъект.СреднийЗаработокФСС.Добавить();
		НоваяСтрока.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаФСС.Постановление2011;
		НоваяСтрока.Значение = Перечисления.УчетНачисленийВСреднемЗаработкеФСС.Включать;
	КонецЕсли;
	// База для расчета в порядке 2010 года может отличаться.
	Если СвойстваПоКатегории.ВключатьВСреднийЗаработокФСС2010 = Неопределено Тогда
		СвойстваПоКатегории.ВключатьВСреднийЗаработокФСС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 = 'Командировка'");
	Описание.КлючевыеСвойства		= "ВидВремени,ОбозначениеВТабелеУчетаРабочегоВремени";
	Описание.ЗапрашиваемыеПоказатели  = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("СреднийЗаработокОбщий");
	Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуКомандировок", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
		Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуКомандировок Тогда
			СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
		Иначе
			ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
		КонецЕсли;
	КонецЕсли;
	
	// Доплата за командировку по постановлению 1099
	Описание = ОписаниеНачисления();
	Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаКомандировки;
	Описание.СвойстваПоКатегории 	= СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
	Описание.Код					= НСтр("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 = Справочники.ВидыДоходовПоСтраховымВзносам.ОблагаетсяЦеликом;
	Описание.СсылкаНаОбъект = ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.РазовоеНачисление;
	Описание.КлючевыеСвойства = "Ссылка";
	Если ПараметрыПланаВидовРасчета.ИспользоватьРазовоеНачисление Тогда
		СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание,,ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы);
		ПараметрыПланаВидовРасчета.СсылкиНачисленийУдержаний.РазовоеНачисление = Описание.СсылкаНаОбъект;
	ИначеЕсли ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы Тогда
		Описание.Вставить("Ссылка", Описание.СсылкаНаОбъект);
		ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
	КонецЕсли;
	
	Если НачальноеЗаполнение Тогда
		// Безусловно создаем отпуск по уходу за ребенком до 1.5 лет.
		Описание = ОписаниеНачисления();
		Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛет;
		Описание.СвойстваПоКатегории 	= СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
		Описание.Код					= НСтр("ru = 'РЕБ15'");
		Описание.Наименование			= НСтр("ru = 'Пособие по уходу за ребенком до полутора лет'");
		Описание.КраткоеНаименование 	= НСтр("ru = 'Уход за реб. до 1,5'");
		СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
	КонецЕсли;
	
	Если НачальноеЗаполнение Тогда
		// Безусловно создаем уже учтенные дни.
		СоздатьНачислениеДниОплаченныеДоНачалаЭксплуатации(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
	КонецЕсли;
		
	// Сдельный заработок (c минимальной оплатой по окладу).
	Описание = ОписаниеНачисления();
	Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СдельнаяОплатаТруда;
	Описание.СвойстваПоКатегории 	= СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
	Описание.Код					= НСтр("ru = 'СДЛОК'");
	Описание.Наименование			= НСтр("ru = 'Сдельный заработок (для работающих по окладу)'");
	Описание.КраткоеНаименование 	= НСтр("ru = 'Сдельно'");
	Описание.ФормулаРасчета 		= "Макс(СдельныйЗаработок, Оклад * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней)";
	Описание.ЗапрашиваемыеПоказатели= ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Оклад");
	Описание.УчетВремениВЧасах 		= Ложь;
	Описание.КлючевыеСвойства  		= "УчетВремениВЧасах";
	Описание.ИспользоватьОперативныеПоказателиВЦеломЗаМесяц = Истина;
	Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьСдельныйЗаработок", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
		Если НастройкиРасчетаЗарплаты.ИспользоватьСдельныйЗаработок Тогда
			СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
		Иначе
			ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
		КонецЕсли;
	КонецЕсли;
	
	СоздатьНачислениеНадбавкаЗаКвалификационнуюКатегорию(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты);
	
	// Безусловно создаем оплату дней ухода за детьми-инвалидами.
	СоздатьНачислениеОплатаДнейУходаЗаДетьмиИнвалидами(КоллекторНачислений, СвойстваНачислений);
	
	// Начисления, которые нужны только, если ведется учет времени в часах.
	СоздатьНачисленияДляУчетаВремениСотрудниковВЧасах(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета, ТекущиеНастройки);
	
	СоздатьНачисленияЕжегодногоОтпуска(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
	
	СоздатьНачисленияЕжегодногоОтпускаГосслужащих(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
	
	СоздатьНачисленияДополнительныеОтпуска(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, ПараметрыПланаВидовРасчета);
	
	СоздатьНачисленияОтпускаНаСанаторноКурортноеЛечениеЗаСчетФСС(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
	
	СоздатьНачисленияНадбавки(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета);
	
	Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьНадбавкуЗаВредность", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
		СоздатьНачислениеНадбавкаЗаВредность(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты);
	КонецЕсли;
	
	СоздатьНачисленияКомпенсационныеВыплаты(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета);
	
	СоздатьНачисленияНатуральныеДоходы(КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета, НастройкиРасчетаЗарплаты);
	
	СоздатьНачисленияРКиСН(КоллекторНачислений, СвойстваНачислений);
	
	СоздатьНачислениеДоплатаЗаПереработкиПоСуммированномуУчету(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты);
	
	СоздатьНачисленияКомпенсацииНеИспользованныхДнейЧасовОтдыха(НастройкиРасчетаЗарплаты, КоллекторНачислений, СвойстваНачислений);
	
	Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьУчетПрочихНевыходов", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
		СоздатьНачисленияНеявкаПоБолезни(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, НастройкиРасчетаЗарплаты);
	КонецЕсли;
	
	СоздатьНачисленияПриостановкиРаботы(КоллекторНачислений, СвойстваНачислений, НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты);
	
	Если НачальноеЗаполнение Тогда
		СоздатьНачислениеКомпенсацияМоральногоВреда(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
		СоздатьНачислениеОплатаВынужденногоПростоя(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы") Тогда
		СоздатьНачислениеКомпенсацияЗаНеотработанныеДниЧасыПриУвольнении(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
		СоздатьНачислениеКомпенсацияЗаНеотработанныеДниПриУвольненииГосслужащего(КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
	КонецЕсли;
	
	ЕстьНачисленияГосслужбы = Ложь;
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.РасчетДенежногоСодержания") Тогда 
		ЕстьНачисленияГосслужбы = Истина;
		Модуль = ОбщегоНазначения.ОбщийМодуль("РасчетДенежногоСодержания");
		Модуль.СоздатьНачисленияДенежногоСодержания(НастройкиРасчетаЗарплаты, КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета, ТекущиеНастройки);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.РасчетДенежногоДовольствия") Тогда 
		ЕстьНачисленияГосслужбы = Истина;
		Модуль = ОбщегоНазначения.ОбщийМодуль("РасчетДенежногоДовольствия");
		Модуль.СоздатьНачисленияДенежногоДовольствия(НастройкиРасчетаЗарплаты, КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета);
	КонецЕсли;
	
	Если ЕстьНачисленияГосслужбы Тогда
		Модуль = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужба");
		Модуль.ЗаполнитьДополнительныеСвойстваНачисленийРКиСН();
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КлючевыеПоказателиЭффективности") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("КлючевыеПоказателиЭффективности");
		Модуль.СоздатьНачислениеДоплатаПоРезультатамОценкиЭффективности(ПараметрыПланаВидовРасчета, СвойстваНачислений, КоллекторНачислений);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОбразовательныеУчреждения") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("ОбразовательныеУчреждения");
		Модуль.СоздатьНачисленияОбразовательныхУчреждений(ПараметрыПланаВидовРасчета, СвойстваНачислений, КоллекторНачислений);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("Медицина");
		Модуль.СоздатьНачисленияМедицинскихУчреждений(НастройкиРасчетаЗарплаты, КоллекторНачислений, СвойстваНачислений, ПараметрыПланаВидовРасчета);
	КонецЕсли;

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

// Создает или отключает в зависимости от настроек начисления.
// «Районный коэффициент» и «Северная надбавка».
// 
Процедура СоздатьНачисленияРКиСН(КоллекторНачислений = Неопределено, СвойстваНачислений = Неопределено) Экспорт
	
	ЗаписыватьНачисления = Ложь;
	Если КоллекторНачислений = Неопределено Тогда
		// Если метод используется отдельно от формирования плана видов расчета по настройкам, 
		// то запись начислений производится в нем, локально.
		КоллекторНачислений = Новый Соответствие;
		ЗаписыватьНачисления = Истина;
	КонецЕсли;
	
	Если СвойстваНачислений = Неопределено Тогда
		СвойстваНачислений = СвойстваНачисленийПоКатегориям();
	КонецЕсли;
	
	ВостребованностьРКиСН = РасчетЗарплаты.ВостребованностьРКиСН();	
	
	// Сначала нужно убедиться, что созданы соответствующие показатели расчета.
	Справочники.ПоказателиРасчетаЗарплаты.СоздатьПоказателиРКиСН(ВостребованностьРКиСН);
	
	// Также обновим используемость Северного вида отпуска.
	Справочники.ВидыОтпусков.ОписатьВидОтпускаСеверныйОтпуск(ВостребованностьРКиСН.СевернаяНадбавка);
	
	// Районный коэффициент
	Описание = ОписаниеНачисления();
	Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.РайонныйКоэффициент;
	Описание.СвойстваПоКатегории 	= СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
	Описание.Код					= НСтр("ru = 'РК'");
	Описание.Наименование			= НСтр("ru = 'Районный коэффициент'");
	Описание.КраткоеНаименование 	= НСтр("ru = 'Районн. коэфф.'");
	Описание.КлючевыеСвойства		= "КатегорияНачисленияИлиНеоплаченногоВремени";
	Если ВостребованностьРКиСН.РайонныйКоэффициент Тогда
		СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
	Иначе
		ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
	КонецЕсли;
	
	// Северная надбавка 
	Описание = ОписаниеНачисления();
	Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.СевернаяНадбавка;
	Описание.СвойстваПоКатегории 	= СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
	Описание.Код					= НСтр("ru = 'СН'");
	Описание.Наименование			= НСтр("ru = 'Северная надбавка'");
	Описание.КраткоеНаименование 	= НСтр("ru = 'Северн. надб.'");
	Описание.КлючевыеСвойства		= "КатегорияНачисленияИлиНеоплаченногоВремени";
	Если ВостребованностьРКиСН.СевернаяНадбавка Тогда
		СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
		Справочники.ВидыСтажа.СоздатьСтажРаботыНаСевере();
	Иначе
		ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
	КонецЕсли;
	
	// Если не создан северный вид отпуска , то и начисления для этого отпуска не обрабатываем.
	ВидОтпускаСеверный = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Северный");
	Если ВидОтпускаСеверный <> Неопределено Тогда
		// ...и северный отпуск
		Описание = ОписаниеНачисления();
		Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска;
		Описание.СвойстваПоКатегории 	= СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
		Описание.Наименование			= НСтр("ru = 'Отпуск лицам, работающим в районах Крайнего Севера'");
		Описание.КраткоеНаименование 	= НСтр("ru = 'Отп. северн.'");
		Описание.ВидОтпуска 			= ВидОтпускаСеверный;
		Описание.КлючевыеСвойства		= "ВидОтпуска";
		КоллекторУдержаний = Новый Соответствие;
		Если ВостребованностьРКиСН.СевернаяНадбавка Тогда	
			СоздатьНачисленияОтпускаИКомпенсации(Описание.ВидОтпуска, Описание.Наименование, Истина, Истина, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений);
			Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
				НастройкиПриложения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
				Если НастройкиПриложения.ИспользоватьРасчетСохраняемогоДенежногоСодержания Тогда
					СоздатьНачисленияОтпускаИКомпенсации(Описание.ВидОтпуска, Описание.Наименование, Истина, Истина, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, Истина);
				КонецЕсли;
			КонецЕсли;
		Иначе
			// надо отключить отпуск
			ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
			
			// ...и компенсацию
			Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияОтпуска;
			Описание.СвойстваПоКатегории 	= СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
			ОтключитьИспользованиеНачисленийПоОписанию(КоллекторНачислений, Описание);
		КонецЕсли;
	КонецЕсли;
	
	Если ЗаписыватьНачисления Тогда
		
		СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений, СвойстваНачислений, ВостребованностьРКиСН);
		ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
		
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
		Модуль = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужба");
		Модуль.ЗаполнитьДополнительныеСвойстваНачисленийРКиСН();
	КонецЕсли;
	
КонецПроцедуры

// Процедура создает в плане видов расчета элементы для отпуска и компенсации, 
// используемые в документе "Отпуск" и "Увольнение".
//
Процедура СоздатьНачисленияОтпускаИКомпенсации(ВидОтпуска, НаименованиеОтпуска, СоздаватьНачислениеОтпуска = Истина, СоздаватьНачислениеКомпенсацииОтпуска = Ложь, КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено, ДенежноеСодержание = Ложь, КраткоеНаименование = "") Экспорт
	
	ОбновитьПовторноИспользуемыеЗначения();
	
	ЗаписыватьНачисления = Ложь;
	
	Если КоллекторНачислений = Неопределено Или КоллекторУдержаний = Неопределено Тогда
		// Если метод используется отдельно от формирования плана видов расчета по настройкам, 
		// то запись начислений производится в нем, локально.
		КоллекторНачислений = Новый Соответствие;
		КоллекторУдержаний = Новый Соответствие;
		ЗаписыватьНачисления = Истина;
	КонецЕсли;
	
	Если СвойстваНачислений = Неопределено Тогда
		СвойстваНачислений = СвойстваНачисленийПоКатегориям();
	КонецЕсли;
	
	ДополнениеКода = ДополнениеКодаНачисленияОтпускаПоВидуОтпуска(ВидОтпуска);
	
	Если СоздаватьНачислениеОтпуска Тогда
		СоздатьНачислениеОтпуска(ВидОтпуска, НаименованиеОтпуска, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, ДенежноеСодержание, КраткоеНаименование, ДополнениеКода);		
	КонецЕсли;
	
	Если СоздаватьНачислениеКомпенсацииОтпуска Тогда
		СоздатьНачислениеКомпенсацииОтпуска(ВидОтпуска, НаименованиеОтпуска, КоллекторНачислений, КоллекторУдержаний, СвойстваНачислений, ДенежноеСодержание, ДополнениеКода);
	КонецЕсли;
	
	Если ЗаписыватьНачисления Тогда
		СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений, СвойстваНачислений);
		ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
	КонецЕсли;
	
КонецПроцедуры

Процедура СоздатьНачислениеОтпуска(ВидОтпуска, НаименованиеОтпуска, КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено, ДенежноеСодержание = Ложь, КраткоеНаименование = "" , ДополнениеКода = Неопределено) Экспорт
	
	ЗаписыватьНачисления = Ложь;
	
	Если КоллекторНачислений = Неопределено Или КоллекторУдержаний = Неопределено Тогда
		// Если метод используется отдельно от формирования плана видов расчета по настройкам, 
		// то запись начислений производится в нем, локально.
		КоллекторНачислений = Новый Соответствие;
		КоллекторУдержаний = Новый Соответствие;
		ЗаписыватьНачисления = Истина;
	КонецЕсли;
	
	Если СвойстваНачислений = Неопределено Тогда
		СвойстваНачислений = СвойстваНачисленийПоКатегориям();
	КонецЕсли;
	
	Если ДополнениеКода = Неопределено Тогда
		ДополнениеКода = ДополнениеКодаНачисленияОтпускаПоВидуОтпуска(ВидОтпуска);
	КонецЕсли;
	
	ЭтоОтпускБезОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидОтпуска, "ОтпускБезОплаты");
	
	// Отпуск
	Описание = ОписаниеНачисления();
	Если ЭтоОтпускБезОплаты Тогда
		Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОтпускБезОплаты;
	Иначе
		Если ДенежноеСодержание Тогда
			Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодОтпуска;
		Иначе
			Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаОтпуска;
		КонецЕсли;
		ВидИспользованияВремени = ?(ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Основной"), "ОсновнойОтпуск", "ДополнительныйОтпуск");
		Описание.ОбозначениеВТабелеУчетаРабочегоВремени	= ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени." + ВидИспользованияВремени);
	КонецЕсли;
	Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
	Описание.Наименование = НаименованиеОтпуска;
	Описание.КраткоеНаименование = КраткоеНаименование;
	Описание.Код = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'ОТ%1'"), ДополнениеКода);
	Описание.ВидОтпуска = ВидОтпуска;
	Описание.КлючевыеСвойства = "ВидОтпуска,КатегорияНачисленияИлиНеоплаченногоВремени";
	СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
	
	Если ЗаписыватьНачисления Тогда
		СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений, СвойстваНачислений);
		ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
	КонецЕсли;
	
КонецПроцедуры

Процедура СоздатьНачислениеКомпенсацииОтпуска(ВидОтпуска, НаименованиеОтпуска, КоллекторНачислений = Неопределено, КоллекторУдержаний = Неопределено, СвойстваНачислений = Неопределено, ДенежноеСодержание = Ложь, ДополнениеКода = Неопределено, ПроверятьНаличиеНачислений = Истина) Экспорт
	
	ЗаписыватьНачисления = Ложь;
	
	Если КоллекторНачислений = Неопределено Или КоллекторУдержаний = Неопределено Тогда
		// Если метод используется отдельно от формирования плана видов расчета по настройкам, 
		// то запись начислений производится в нем, локально.
		КоллекторНачислений = Новый Соответствие;
		КоллекторУдержаний = Новый Соответствие;
		ЗаписыватьНачисления = Истина;
	КонецЕсли;
	
	Если СвойстваНачислений = Неопределено Тогда
		СвойстваНачислений = СвойстваНачисленийПоКатегориям();
	КонецЕсли;
	
	Если ДополнениеКода = Неопределено Тогда
		ДополнениеКода = ДополнениеКодаНачисленияОтпускаПоВидуОтпуска(ВидОтпуска);
	КонецЕсли;
	
	ДополнениеКодаКомпенсацииУдержания = ДополнениеКодаНачисленияКомпенсацииОтпускаПоВидуОтпуска(ДополнениеКода, ВидОтпуска);
	
	// Компенсация отпуска
	Описание = ОписаниеНачисления();
	Если ДенежноеСодержание Тогда
		Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеКомпенсацияОтпуска;
	Иначе
		Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияОтпуска;
	КонецЕсли;
	Описание.СвойстваПоКатегории = СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
	Описание.Наименование = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Компенсация отпуска (%1)'"), НаименованиеОтпуска); 
	Описание.Код = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'КОТ%1'"), ДополнениеКодаКомпенсацииУдержания);
	Описание.ВидОтпуска = ВидОтпуска;
	Описание.КлючевыеСвойства = "ВидОтпуска,КатегорияНачисленияИлиНеоплаченногоВремени";
	СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание, ПроверятьНаличиеНачислений);
	
	// И удержание за неотработанные дни отпуска.
	ПланыВидовРасчета.Удержания.СоздатьУдержаниеЗаНеотработанныеДниОтпуска(ВидОтпуска, НаименованиеОтпуска, ДополнениеКодаКомпенсацииУдержания, КоллекторУдержаний, ДенежноеСодержание, ПроверятьНаличиеНачислений);
	
	Если ЗаписыватьНачисления Тогда
		СоздатьНачисленияОплатыДолейРКСН(КоллекторНачислений, СвойстваНачислений);
		ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений, КоллекторУдержаний);
	КонецЕсли;

КонецПроцедуры

Функция ДополнениеКодаНачисленияОтпускаПоВидуОтпуска(ВидОтпуска) Экспорт
	
	ДополнениеКода = "";
	
	Если ВидОтпуска <> ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Основной") Тогда
		Если ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Северный") Тогда
			ДополнениеКода = "СВР";
		Иначе
			ДополнениеКода = Формат(Справочники.ВидыОтпусков.КоличествоВидовОтпуска(), "ЧЦ=3; ЧВН=");
		КонецЕсли;
	КонецЕсли;
	
	Возврат ДополнениеКода;
	
КонецФункции 

Функция ДополнениеКодаНачисленияКомпенсацииОтпускаПоВидуОтпуска(ДополнениеКода, ВидОтпуска) Экспорт
	
	ДополнениеКодаКомпенсацииУдержания = "";
	
	Если ВидОтпуска = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыОтпусков.Северный") Тогда
		ДополнениеКодаКомпенсацииУдержания = "СВР";
	Иначе
		ДополнениеКодаКомпенсацииУдержания = Прав(ДополнениеКода, 2);
	КонецЕсли;
	
	Возврат ДополнениеКодаКомпенсацииУдержания;
	
КонецФункции 

Процедура СоздатьНачислениеОплатаДнейУходаЗаДетьмиИнвалидами(КоллекторНачислений = Неопределено, СвойстваНачислений = Неопределено) Экспорт 
	
	ЗаписыватьНачисления = Ложь;
	Если КоллекторНачислений = Неопределено Тогда
		// Если метод используется отдельно от формирования плана видов расчета по настройкам, 
		// то запись начислений производится в нем, локально.
		КоллекторНачислений = Новый Соответствие;
		ЗаписыватьНачисления = Истина;
	КонецЕсли;
	
	Если СвойстваНачислений = Неопределено Тогда
		СвойстваНачислений = СвойстваНачисленийПоКатегориям();
	КонецЕсли;
	
	Описание = ОписаниеНачисления();
	Описание.КатегорияНачисленияИлиНеоплаченногоВремени = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами;
	Описание.СвойстваПоКатегории 	= СвойстваНачислений[Описание.КатегорияНачисленияИлиНеоплаченногоВремени];
	Описание.Код					= НСтр("ru = 'ИНВ'");
	Описание.Наименование			= НСтр("ru = 'Оплата дней ухода за детьми-инвалидами'");
	Описание.КраткоеНаименование 	= НСтр("ru = 'Уход за детьми-инв.'");
	СоздатьИзменитьНачисленияПоОписанию(КоллекторНачислений, Описание);
	
	Если ЗаписыватьНачисления Тогда
		ЗаписатьВидыРасчетаКоллектора(КоллекторНачислений, СвойстваНачислений);
	КонецЕсли;
	
КонецПроцедуры

// Создает и заполняет соответствие, ключом которого является категория начисления, 
// а значением - структура значений, определяющая заполнение свойств начисления данной категории.
//
// Параметры:
//	- КатегорияНачисления - ПеречислениеСсылка.КатегорииНачисленийИНеоплаченногоВремени.
//
// Возвращаемое значение - соответствие.
//
Функция СвойстваНачисленийПоКатегориям() Экспорт
	
	СвойстваПоКатегориям = Новый Соответствие;
	
	// Значение по умолчанию
	СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПустаяСсылка(), СвойстваНачисленияПоКатегорииПоУмолчанию());
	
	// Для некоторых категорий доступен выбор кода 4800 или 2760.
	ДоступныеКоды = Новый Массив;
	ДоступныеКоды.Добавить("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");
	ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
	Описание.НедоступныеСвойства.Добавить("ПоддерживаетНесколькоПлановыхНачислений");
	Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
	Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
	Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
	Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияКомандировки();
	СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки, Описание);
	
	// Доплата за время командировки по постановлению 1099
	Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
	Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
	Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Командировка;
	Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
	Описание.ФормулаРасчета	= "((СреднийЗаработокИндексируемый * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемый) - (СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК) - (СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН))* ВремяВДняхЧасах";
	Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "(СреднийЗаработокИндексируемыйРК * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйРК)* ВремяВДняхЧасах";
	Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "(СреднийЗаработокИндексируемыйСН * КоэффициентИндексацииСреднегоЗаработка + СреднийЗаработокНеиндексируемыйСН)* ВремяВДняхЧасах";
	Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
	Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Командировка");
	Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
	Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
	Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
	Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
	Описание.ПоддерживаетНесколькоПлановыхНачислений = Истина;
	ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
	ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
	ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
	Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
	Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
	Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
	Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияКомандировки();
	СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДоплатаКомандировки, Описание);
	
	// Командировка, сохраняемое денежное содержание.
	Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
	Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
	Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Командировка;
	Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
	Описание.ФормулаРасчета	= "(СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеСН) * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
	Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеСодержаниеРК * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
	Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеСодержаниеСН * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
	Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ЦелодневноеНеотработанное;
	Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Командировка");
	Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
	Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
	Описание.ВидСтажаПФР2014 = Перечисления.ВидыСтажаПФР2014.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
	Описание.ВидНачисленияДляНУ = Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп6ст255;
	ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаСЗВ");
	ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "ВидСтажаПФР2014");
	ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Описание.НедоступныеСвойства, "КодДоходаНДФЛ");
	Описание.ПараметрыВыбора = ПараметрыВыбораСвойствНачисления();
	Описание.ПараметрыВыбора.КодДоходаНДФЛ = ПараметрыВыбораНДФЛ;
	Описание.ОтборВытесняющих = ОтборВытесняющихПоУмолчанию();
	Описание.ОтборВытесняющих.КатегорияНачисленияИлиНеоплаченногоВремени = КатегорииВытесненияКомандировки();
	СвойстваПоКатегориям.Вставить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ДенежноеСодержаниеНаПериодКомандировки, Описание);
	
	// Доплата за время командировки по Указу Президента РФ от 17.10.2022 № 75
	Описание = СвойстваНачисленияПоКатегорииПоУмолчанию();
	Описание.СпособВыполненияНачисления = Перечисления.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета;
	Описание.ВидДокументаНачисления = Перечисления.ВидыДокументовНачисления.Командировка;
	Описание.СпособРасчета = Перечисления.СпособыРасчетаНачислений.ПроизвольнаяФормула;
	Описание.ФормулаРасчета	= "(СохраняемоеДенежноеСодержание - СохраняемоеДенежноеСодержаниеРК - СохраняемоеДенежноеСодержаниеСН) * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
	Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиРК = "СохраняемоеДенежноеСодержаниеРК * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
	Описание.ДополнительныеФормулыРасчета.ФормулаРасчетаДолиСН = "СохраняемоеДенежноеСодержаниеСН * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней * КоэффициентИндексацииСохраняемогоДенежногоСодержания";
	Описание.ВидВремени = Перечисления.ВидыРабочегоВремениСотрудников.ДополнительноОплачиваемоеВПределахНормы;
	Описание.ОбозначениеВТабелеУчетаРабочегоВремени = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Командировка");
	Описание.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка = Перечисления.ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
	Описание.ВидСтажаСЗВ = Перечисления.ВидыСтажаСЗВ.ВключаетсяВСтажДляДосрочногоНазначенияПенсии;
	Описание.ВидСтажаПФР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 Тогда
				// В коллекторе есть начисления, являющиеся базовыми для данной категории удержания.
				// Зависимые удержания могут быть как в ИБ, так и в коллекторе.
				// Сначала собираем по коллектору...
				ЗависимыеУдержания = ВидыРасчетаКоллектораПоКатегории(КоллекторУдержаний, КатегорияУдержания);
				// .. Дополняем из базы данных.
				ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ЗависимыеУдержания, 
					РасчетЗарплаты.УдержанияПоКатегории(КатегорияУдержания), Истина);
				Для Каждого ЗависимоеУдержание Из ЗависимыеУдержания Цикл
					ЗависимоеУдержаниеОбъект = КоллекторУдержаний[ЗависимоеУдержание];
					ДобавленоВКоллектор = Ложь;
					Если ЗависимоеУдержаниеОбъект = Неопределено Тогда
						ЗависимоеУдержаниеОбъект = ЗависимоеУдержание.ПолучитьОбъект();
						КоллекторУдержаний.Вставить(ЗависимоеУдержание, ЗависимоеУдержаниеОбъект);
						ДобавленоВКоллектор = Истина;
					КонецЕсли;
					ЭтоНовоеЗависимоеУдержание = Не ЗначениеЗаполнено(ЗависимоеУдержаниеОбъект.Ссылка);
					// Определяем, если вообще зависимому начислению нужен список базовых видов расчета.
					Обновлено = Ложь;
					Если РасчетЗарплатыРасширенный.ЕстьПоказательВКоллекции(ЗависимоеУдержаниеОбъект.Показатели, "РасчетнаяБаза")
						Или РасчетЗарплатыРасширенный.ЕстьПоказательВКоллекции(ЗависимоеУдержаниеОбъект.Показатели, "РасчетнаяБазаИсполнительногоЛиста") Тогда
						Для Каждого БазовоеНачисление Из БазовыеНачисления Цикл
							ЭтоНовоеБазовоеНачисление = Ложь;
							БазовоеНачислениеОбъект = КоллекторНачислений[БазовоеНачисление];
							Если БазовоеНачислениеОбъект <> Неопределено Тогда 
								ЭтоНовоеБазовоеНачисление = Не ЗначениеЗаполнено(БазовоеНачислениеОбъект.Ссылка);
							КонецЕсли;
							Если Не ЭтоНовоеЗависимоеУдержание И Не ЭтоНовоеБазовоеНачисление Тогда 
								Продолжить;
							КонецЕсли;
							// Меняем базу существующего удержания, только если это исполнительный лист или профвзносы.
							Если Не ЭтоНовоеЗависимоеУдержание 
								И КатегорияУдержания <> Перечисления.КатегорииУдержаний.ИсполнительныйЛист
								И КатегорияУдержания <> Перечисления.КатегорииУдержаний.ПрофсоюзныеВзносы Тогда 
								Продолжить;
							КонецЕсли;
							Если ЗависимоеУдержаниеОбъект.БазовыеВидыРасчета.Найти(БазовоеНачисление, "ВидРасчета") = Неопределено Тогда
								ЗависимоеУдержаниеОбъект.БазовыеВидыРасчета.Добавить().ВидРасчета = БазовоеНачисление;
								Обновлено = Истина;
							КонецЕсли;
						КонецЦикла;
					КонецЕсли;
					Если ДобавленоВКоллектор И Не Обновлено Тогда 
						// Удаляем, чтобы избежать "холостой" записи.
						КоллекторУдержаний.Удалить(ЗависимоеУдержание);
					КонецЕсли;
				КонецЦикла;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

// Упорядочивает начисления в плане видов расчета в соответствии с порядком категорий.
//
Процедура ЗаполнитьПорядокНачислений(КоллекторНачислений)
	
	// Порядок начислений должен соответствовать последовательности категорий.
	// Для того, чтобы "вставить" созданные начисления между существующими, 
	// придется перезаписывать все начисления, порядок которых ниже (больше то есть).
	// 1. Определяем категорию вновь созданных начислений коллектора с минимальным порядком.
	// 2. Выбираем из ИБ все начисления (исключая начисления коллектора) с категорией, порядок которой меньше указанной.
	// 3. Добавляем выбранные начисления в коллектор, параллельно заполняя таблицу с колонками ПорядокКатегории,
	// Начисление, ВновьСоздано, РеквизитДопУпорядочивания.
	// 4. Сортируем полученную таблицу значений, обходим ее, последовательно расставляя начислениям коллектора реквизит
	// доп упорядочивания.
	
	// Составляем соответствие порядка категорий.
	ПорядокКатегорий = Новый Соответствие;
	Индекс = 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";
	
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
		Возврат;
	КонецЕсли;	
	
	ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
			Продолжить;
		КонецЕсли;
		
		НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
		НачислениеОбъект.ОбменДанными.Загрузка = Истина;
		
		СтрокаПоказателя = НачислениеОбъект.Показатели.Добавить();
		СтрокаПоказателя.Показатель = ПоказательКалендарныеДниБезПраздников;
		
		НачислениеОбъект.Записать();
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);	
	КонецЦикла;		
КонецПроцедуры	

Процедура УстановитьПериодичностьПроверяемыхНачислений(ПараметрыОбновления = Неопределено) Экспорт
	
	ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Начисления.Ссылка КАК Ссылка
	|ИЗ
	|	ПланВидовРасчета.Начисления КАК Начисления
	|ГДЕ
	|	Начисления.ПериодичностьНачисления = ЗНАЧЕНИЕ(Перечисление.ПериодичностьНачисления.ПустаяСсылка)
	|	И (Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске)
	|			ИЛИ Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпуску)
	|			ИЛИ Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпускеГосслужащего)
	|			ИЛИ Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ЕдиновременнаяВыплатаКОтпускуГосслужащего))";
	
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
		Возврат;
	КонецЕсли;
	
	Выборка = РезультатЗапроса.Выбрать();
	Пока Выборка.Следующий() Цикл
		
		Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
			Продолжить;
		КонецЕсли;
		
		НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
		НачислениеОбъект.ПериодичностьНачисления = Перечисления.ПериодичностьНачисления.РазВГод;
		
		ОбновлениеИнформационнойБазы.ЗаписатьДанные(НачислениеОбъект);
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
		
	КонецЦикла;
	
КонецПроцедуры

Процедура УточнитьПризнакУчитыватьИзмененияВремяВЧасах(ПараметрыОбновления = Неопределено) Экспорт
	
	ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	НачисленияВидыВремени.Ссылка КАК Ссылка
	|ИЗ
	|	ПланВидовРасчета.Начисления.ВидыВремени КАК НачисленияВидыВремени
	|		ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления КАК Начисления
	|		ПО (Начисления.Ссылка = НачисленияВидыВремени.Ссылка)
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыИспользованияРабочегоВремени КАК ВидыИспользованияРабочегоВремени
	|		ПО НачисленияВидыВремени.ВидВремени = ВидыИспользованияРабочегоВремени.Ссылка
	|			И (ВидыИспользованияРабочегоВремени.ОсновноеВремя = &Праздники)
	|ГДЕ
	|	Начисления.УчетВремениВДняхЧасах
	|	И Начисления.СпособВыполненияНачисления = ЗНАЧЕНИЕ(Перечисление.СпособыВыполненияНачислений.ПоЗначениюВидаВремениПриОкончательномРасчете)
	|	И НЕ Начисления.УчитыватьИзмененияВремяВЧасах";
	
	Запрос.УстановитьПараметр("Праздники", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Праздники"));
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
		Возврат;
	КонецЕсли;
	
	Выборка = РезультатЗапроса.Выбрать();
	Пока Выборка.Следующий() Цикл
		
		Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "ПланВидовРасчета.Начисления", "Ссылка", Выборка.Ссылка) Тогда
			Продолжить;
		КонецЕсли;
		
		НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
		НачислениеОбъект.УчитыватьИзмененияВремяВЧасах = Истина;
		
		ОбновлениеИнформационнойБазы.ЗаписатьДанные(НачислениеОбъект);
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
		
	КонецЦикла;
	
КонецПроцедуры

// Для каждого из вариантов подбора начислений первые по ссылке начисления делаются первыми по порядку.
// Это необходимо для того, чтобы сохранить прежнее поведение,
// т.к. начиная с версии 3.1.8 начисления выбираются по порядку (ранее выбирались по ссылке).
//
Процедура ВосстановитьПорядокНачисленийПодбираемыхПоУмолчанию(ПараметрыОбновления = Неопределено) Экспорт
	
	НастройкиВосстановленияПорядкаНачислений = НастройкиВосстановленияПорядкаНачислений();
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Начисления.Ссылка КАК Ссылка,
	|	Начисления.Представление КАК Представление,
	|	Начисления.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания,
	|	Начисления.КатегорияНачисленияИлиНеоплаченногоВремени КАК КатегорияНачисленияИлиНеоплаченногоВремени,
	|	Начисления.СпособВыполненияНачисления КАК СпособВыполненияНачисления,
	|	Начисления.СпособРасчета КАК СпособРасчета,
	|	Начисления.ВидДокументаНачисления КАК ВидДокументаНачисления,
	|	Начисления.ВидВремени КАК ВидВремени,
	|	Начисления.ВидОтпуска КАК ВидОтпуска,
	|	Начисления.ОбозначениеВТабелеУчетаРабочегоВремени КАК ОбозначениеВТабелеУчетаРабочегоВремени,
	|	Начисления.ЯвляетсяЛьготой КАК ЯвляетсяЛьготой,
	|	Начисления.ЯвляетсяДоходомВНатуральнойФорме КАК ЯвляетсяДоходомВНатуральнойФорме,
	|	Начисления.ИспользованиеПериода КАК ИспользованиеПериода
	|ИЗ
	|	ПланВидовРасчета.Начисления КАК Начисления
	|ГДЕ
	|	Начисления.ПометкаУдаления = ЛОЖЬ
	|	И Начисления.ВАрхиве = ЛОЖЬ";
	
	ВсеНачисления = Запрос.Выполнить().Выгрузить();
	ВсеНачисления.Колонки.Добавить("УникальныйИдентификатор", Новый ОписаниеТипов("УникальныйИдентификатор"));
	Для Каждого СтрокаТаблицы Из ВсеНачисления Цикл
		СтрокаТаблицы.УникальныйИдентификатор = СтрокаТаблицы.Ссылка.УникальныйИдентификатор();
	КонецЦикла;
	
	ВсеОбъектыОбработаны = Истина;
	
	Блокировки = Новый Массив;
	Блокировки.Добавить(ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОписаниеБлокируемыхДанных(Метаданные.ПланыВидовРасчета.Начисления));
	Блокировки.Добавить(ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ОписаниеБлокируемыхДанных(Метаданные.ПланыВидовРасчета.Начисления));
	
	Для Каждого НастройкиПодбораНачисления Из НастройкиВосстановленияПорядкаНачислений Цикл
		
		// Поиск начислений по умолчанию.
		Отбор = Новый Структура(НастройкиПодбораНачисления.ИменаПолей);
		ЗаполнитьЗначенияСвойств(Отбор, НастройкиПодбораНачисления, НастройкиПодбораНачисления.ИменаПолей);
		
		НайденныеНачисления = ВсеНачисления.Скопировать(Отбор);
		Если НайденныеНачисления.Количество() < 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 года.
Процедура ЗаполнитьКатегориюСтатистики2020(ПараметрыОбновления = Неопределено) Экспорт
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Начисления.Ссылка КАК Ссылка
	|ИЗ
	|	ПланВидовРасчета.Начисления КАК Начисления
	|ГДЕ
	|	Начисления.КатегорияСтатистическогоНаблюдения2019 <> ЗНАЧЕНИЕ(Перечисление.КатегорииСтатистическогоНаблюдения.ПустаяСсылка)
	|	И Начисления.КатегорияСтатистическогоНаблюдения = ЗНАЧЕНИЕ(Перечисление.КатегорииСтатистическогоНаблюдения.ПустаяСсылка)";
	
	МатериальнаяПомощьПриОтпуске      = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощьПриОтпуске;
	ОплатаДнейУходаЗаДетьмиИнвалидами = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ОплатаДнейУходаЗаДетьмиИнвалидами;
	ЗаработнаяПлатаРаботников         = Перечисления.КатегорииСтатистическогоНаблюдения.ЗаработнаяПлатаРаботников;
	НеУчитываетсяВСтатистике          = Перечисления.КатегорииСтатистическогоНаблюдения.ПустаяСсылка();
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
		Если ЗначениеЗаполнено(НачислениеОбъект.КатегорияСтатистическогоНаблюдения) Тогда
			Продолжить;
		КонецЕсли;
		Если НачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени = МатериальнаяПомощьПриОтпуске Тогда
			НачислениеОбъект.КатегорияСтатистическогоНаблюдения = ЗаработнаяПлатаРаботников;
		ИначеЕсли НачислениеОбъект.КатегорияНачисленияИлиНеоплаченногоВремени = ОплатаДнейУходаЗаДетьмиИнвалидами Тогда
			НачислениеОбъект.КатегорияСтатистическогоНаблюдения = НеУчитываетсяВСтатистике;
		Иначе
			НачислениеОбъект.КатегорияСтатистическогоНаблюдения = НачислениеОбъект.КатегорияСтатистическогоНаблюдения2019;
		КонецЕсли;
		ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
	КонецЦикла;
	
	ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры

Процедура УстановитьПризнакИспользоватьПособиеПоУходуЗаРебенкомДоТрехЛет(ПараметрыОбновления = Неопределено) Экспорт
	
	Настройки = РегистрыСведений.НастройкиРасчетаЗарплатыРасширенный.СоздатьНаборЗаписей();
	Настройки.Прочитать();
	Если Настройки.Количество() = 0 Тогда
		ЗаписьНабора = Настройки.Добавить();
	Иначе
		ЗаписьНабора = Настройки[0];
	КонецЕсли;
	ЗаписьНабора.ИспользоватьПособиеПоУходуЗаРебенкомДоТрехЛет = Истина;
	ОбновлениеИнформационнойБазы.ЗаписатьДанные(Настройки);
	
	ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
	
КонецПроцедуры

Процедура ЗаполнитьВидДоходаИсполнительногоПроизводства() Экспорт
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ПустаяСсылка", Перечисления.ВидыДоходовИсполнительногоПроизводства.ПустаяСсылка());
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Начисления.Ссылка КАК Ссылка
	|ИЗ
	|	ПланВидовРасчета.Начисления КАК Начисления
	|ГДЕ
	|	Начисления.ВидДоходаИсполнительногоПроизводства = &ПустаяСсылка";
	РезультатЗапроса = Запрос.Выполнить();
	
	Если РезультатЗапроса.Пустой() Тогда
		Возврат
	КонецЕсли;	
	
	СвойстваПоКатегориям = СвойстваНачисленийПоКатегориям();
	
	Начисления = РезультатЗапроса.Выбрать();
	Пока Начисления.Следующий() Цикл
		Начисление = Начисления.Ссылка.ПолучитьОбъект();
		
		СвойстваПоКатегории  = СвойстваПоКатегориям[Начисление.КатегорияНачисленияИлиНеоплаченногоВремени];
		Если СвойстваПоКатегории = Неопределено Тогда
			ВидДохода = Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения;  
		Иначе
			ВидДохода = СвойстваПоКатегории.ВидДоходаИсполнительногоПроизводства
		КонецЕсли;	
		Начисление.ВидДоходаИсполнительногоПроизводства = ВидДохода;
		
		ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Начисление);
	КонецЦикла	
	
КонецПроцедуры

Процедура ЗаполнитьВидДоходаИсполнительногоПроизводства2022() Экспорт
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ПустаяСсылка", Перечисления.ВидыДоходовИсполнительногоПроизводства.ПустаяСсылка());
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Начисления.Ссылка КАК Ссылка
	|ИЗ
	|	ПланВидовРасчета.Начисления КАК Начисления
	|ГДЕ
	|	Начисления.ВидДоходаИсполнительногоПроизводства2022 = &ПустаяСсылка";
	РезультатЗапроса = Запрос.Выполнить();
	
	Если РезультатЗапроса.Пустой() Тогда
		Возврат
	КонецЕсли;	
	
	Начисления = РезультатЗапроса.Выбрать();
	Пока Начисления.Следующий() Цикл
		Начисление = Начисления.Ссылка.ПолучитьОбъект();
		
		Если Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.ДоходыБезОграниченияВзысканий
			Или Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения Тогда
			Начисление.ВидДоходаИсполнительногоПроизводства2022 = Начисление.ВидДоходаИсполнительногоПроизводства;
			ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Начисление);
			Продолжить;
		ИначеЕсли Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые Тогда
			ВидДохода = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемыеПериодические;
		ИначеЕсли Начисление.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииОблагаемые Тогда
			ВидДохода = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииОблагаемыеПериодические;
		КонецЕсли;
		
		СвойстваПоКатегориям = СвойстваНачисленийПоКатегориям();
		
		МатпомощьПриРожденииРебенка = Новый Массив;
		МатпомощьПриРожденииРебенка.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенка);
		МатпомощьПриРожденииРебенка.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенкаПрокуроров);

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

Процедура УстановитьПризнакУчитыватьВесьЗаработок(ПараметрыОбновления = Неопределено) Экспорт
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	Начисления.Ссылка КАК Ссылка
		|ИЗ
		|	ПланВидовРасчета.Начисления КАК Начисления
		|ГДЕ
		|	Начисления.УчитыватьВесьЗаработок";
	Результат = Запрос.Выполнить();
	
	Если Не Результат.Пустой() Тогда
		ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
		Возврат;
	КонецЕсли;
	
	Запрос.УстановитьПараметр("СдельныйЗаработок", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СдельныйЗаработок"));
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	НачисленияПоказатели.Ссылка КАК Ссылка
		|ИЗ
		|	ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
		|ГДЕ
		|	НачисленияПоказатели.Ссылка.ВходитВУчетОбщегоСреднегоЗаработка
		|	И НачисленияПоказатели.Показатель = &СдельныйЗаработок
		|	И НЕ НачисленияПоказатели.Ссылка.ПометкаУдаления";
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		Начисление = Выборка.Ссылка.ПолучитьОбъект();
		Начисление.УчитыватьВесьЗаработок = Истина;
		ОбновлениеИнформационнойБазы.ЗаписатьДанные(Начисление);
	КонецЦикла;
	
	ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
	
КонецПроцедуры

Процедура ЗаполнитьВидДоходаИсполнительногоПроизводстваМатпомощиПриРожденииРебенка(ПараметрыОбновления = Неопределено) Экспорт
	
	МатпомощьПриРожденииРебенка = Новый Массив;
	МатпомощьПриРожденииРебенка.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенка);
	МатпомощьПриРожденииРебенка.Добавить(Справочники.ВидыДоходовПоСтраховымВзносам.МатпомощьПриРожденииРебенкаПрокуроров);
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("МатпомощьПриРожденииРебенка", МатпомощьПриРожденииРебенка);
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Начисления.Ссылка КАК Ссылка
	|ИЗ
	|	ПланВидовРасчета.Начисления КАК Начисления
	|ГДЕ
	|	Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.МатериальнаяПомощь)
	|	И Начисления.КодДоходаСтраховыеВзносы2017 В(&МатпомощьПриРожденииРебенка)
	|	И Начисления.ВидДоходаИсполнительногоПроизводства <> ЗНАЧЕНИЕ(Перечисление.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые)";
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		НачислениеОбъект = Выборка.Ссылка.ПолучитьОбъект();
		НачислениеОбъект.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.КомпенсацииНеоблагаемые;
		ОбновлениеИнформационнойБазы.ЗаписатьОбъект(НачислениеОбъект);
	КонецЦикла;
	
	ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
	
КонецПроцедуры

Процедура УточнитьКодДоходаНДФЛКатегориюОписаниеРКиСН() Экспорт
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("РайонныйКоэффициент",	Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп11ст255);
	Запрос.УстановитьПараметр("СевернаяНадбавка",		Перечисления.ВидыНачисленийОплатыТрудаДляНУ.пп12ст255);
	МассивОбработанныхКатегорий = Новый Массив;
	МассивОбработанныхКатегорий.Добавить(Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавкиАУСН);
	МассивОбработанныхКатегорий.Добавить(Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки);
	Запрос.УстановитьПараметр("ОбработанныеКатегории",	МассивОбработанныхКатегорий);
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Начисления.Ссылка КАК Ссылка,
	|	ВЫБОР
	|		КОГДА Начисления.КатегорияДохода = ЗНАЧЕНИЕ(Перечисление.КатегорииДоходовНДФЛ.ОплатаТрудаАУСН)
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК КатегорияДоходаАУСН
	|ИЗ
	|	ПланВидовРасчета.Начисления КАК Начисления
	|ГДЕ
	|	Начисления.ВидНачисленияДляНУ = &РайонныйКоэффициент
	|	И НЕ Начисления.КатегорияДохода В (&ОбработанныеКатегории)
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	Начисления.Ссылка КАК Ссылка,
	|	ВЫБОР
	|		КОГДА Начисления.КатегорияДохода = ЗНАЧЕНИЕ(Перечисление.КатегорииДоходовНДФЛ.ОплатаТрудаАУСН)
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК КатегорияДоходаАУСН
	|ИЗ
	|	ПланВидовРасчета.Начисления КАК Начисления
	|ГДЕ
	|	Начисления.ВидНачисленияДляНУ = &СевернаяНадбавка
	|	И НЕ Начисления.КатегорияДохода В (&ОбработанныеКатегории)";
	РезультатыЗапроса = Запрос.ВыполнитьПакет();
	
	ВыборкаРайонныйКоэфициент	= РезультатыЗапроса[0].Выбрать();
	ВыборкаСевернаяНадбавка		= РезультатыЗапроса[1].Выбрать();
	
	Пока ВыборкаРайонныйКоэфициент.Следующий() Цикл
		Начисление = ВыборкаРайонныйКоэфициент.Ссылка.ПолучитьОбъект();
		Если ВыборкаРайонныйКоэфициент.КатегорияДоходаАУСН Тогда
			Начисление.КатегорияДохода	= Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавкиАУСН;
		Иначе
			Начисление.КатегорияДохода	= Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
		КонецЕсли;
		Начисление.КодДоходаНДФЛ	= Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
		ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Начисление);
	КонецЦикла;
	Пока ВыборкаСевернаяНадбавка.Следующий() Цикл
		Начисление = ВыборкаСевернаяНадбавка.Ссылка.ПолучитьОбъект();
		Если ВыборкаСевернаяНадбавка.КатегорияДоходаАУСН Тогда
			Начисление.КатегорияДохода	= Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавкиАУСН;
		Иначе
			Начисление.КатегорияДохода	= Перечисления.КатегорииДоходовНДФЛ.РайонныеСеверныеНадбавки;
		КонецЕсли;
		Начисление.КодДоходаНДФЛ	= Справочники.ВидыДоходовНДФЛ.РайонныеСеверныеНадбавки;
		ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Начисление);
	КонецЦикла;
	
КонецПроцедуры

// Имя события для журнала регистрации.
Функция ИмяСобытияПодборНачислений()
	Возврат НСтр("ru = 'Подбор начислений'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецФункции

// Возвращает развернутый набор отборов начислений, который может использоваться в данной ИБ.
Функция НастройкиВосстановленияПорядкаНачислений()
	// Получение метаинформации о подборе начислений.
	НастройкиПодбора = ВариантыПодбораНачисленийВДокументах();
	
	ТаблицаРезультат = Новый ТаблицаЗначений;
	ТаблицаРезультат.Колонки.Добавить("ПолноеИмяОМ");
	ТаблицаРезультат.Колонки.Добавить("ИмяРеквизита", Новый ОписаниеТипов("Строка"));
	ТаблицаРезультат.Колонки.Добавить("ИменаПолей");
	
	// Добавление полей, по которым отбираются начисления.
	РеквизитыНачислений = Метаданные.ПланыВидовРасчета.Начисления.Реквизиты;
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.КатегорияНачисленияИлиНеоплаченногоВремени);
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.СпособВыполненияНачисления);
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.СпособРасчета);
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ВидДокументаНачисления);
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ВидВремени);
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ВидОтпуска);
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ОбозначениеВТабелеУчетаРабочегоВремени);
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ЯвляетсяЛьготой);
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ЯвляетсяДоходомВНатуральнойФорме);
	ДобавитьКолонкуПоРеквизитуМетаданных(ТаблицаРезультат, РеквизитыНачислений.ИспользованиеПериода);
	
	// Разворачивание метаинформации в конкретные варианты подбора начислений.
	Для Каждого ОписаниеПодбора Из НастройкиПодбора Цикл
		ФиксированныеОтборы = ОписаниеПодбора.ФиксированныеОтборы;
		ФиксированныеОтборы = ?(ФиксированныеОтборы = Неопределено, Новый Структура, ФиксированныеОтборы);
		ДинамическиеОтборы  = ОписаниеПодбора.ДинамическиеОтборы;
		ДинамическиеОтборы  = ?(ДинамическиеОтборы = Неопределено, Новый Структура, ДинамическиеОтборы);
		
		// Формирование списка полей, подготовка рекурсии для перебора значений динамических отборов.
		ИменаПолей = Новый СписокЗначений;
		Для Каждого КлючИЗначение Из ФиксированныеОтборы Цикл
			ИменаПолей.Добавить(КлючИЗначение.Ключ);
		КонецЦикла;
		
		// При помощи списка значений эмулируется рекурсия с ограничением в 3 уровня.
		СписокДинамическихОтборов = Новый СписокЗначений;
		Для Каждого КлючИЗначение Из ДинамическиеОтборы Цикл
			Значение = КлючИЗначение.Значение;
			Если ТипЗнч(Значение) = Тип("Строка")
				И СтрНачинаетсяС(Значение, "ВЫБРАТЬ") Тогда
				Запрос = Новый Запрос(Значение);
				Значение = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
			КонецЕсли;
			СписокДинамическихОтборов.Добавить(Значение, КлючИЗначение.Ключ);
			ИменаПолей.Добавить(КлючИЗначение.Ключ);
		КонецЦикла;
		
		ИменаПолей.СортироватьПоЗначению(НаправлениеСортировки.Возр);
		
		ЗначенияПолейУровня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 = 'Не удалось создать начисления «Компенсации не испольованного времени отдыха» из-за предположительно неверной (зацикленной) настройки плана видов расчета.'", 
				ОбщегоНазначения.КодОсновногоЯзыка()));
		
	КонецПопытки;
		
	ОбновитьПовторноИспользуемыеЗначения();
	
КонецПроцедуры

Функция КатегорииРазбиваемыхНачислений()

	СписокКатегорий = Новый Массив;
	СписокКатегорий.Добавить(Перечисления.КатегорииНачисленийИНеоплаченногоВремени.КомпенсацияНеИспользованныхДнейЧасовОтдыха);
	
	Возврат СписокКатегорий;
	
КонецФункции

#КонецОбласти

#КонецЕсли

Связанные материалы