Отражение зарплаты в финансовом учете / Форма документа / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем КэшированныеЗначения;

&НаКлиенте
Перем ПараметрыОбработчикаОжидания;

&НаКлиенте
Перем ФормаДлительнойОперации;

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

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

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДате(ЭтаФорма, "Объект.ПериодРегистрации", "ПериодРегистрацииСтрокой");
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

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

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

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
	
	НастройкаСчетовУчетаСервер.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

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

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	Оповестить("Запись_ОтражениеЗарплатыВФинансовомУчете", ПараметрыЗаписи, Объект.Ссылка);
	
	ИсправлениеДокументовКлиент.ПослеЗаписи(Объект);
	
КонецПроцедуры

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
	
	СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
	
КонецПроцедуры

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

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

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	ОрганизацияПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ПериодРегистрацииПриИзменении(Элемент)
	ЗарплатаКадрыКлиент.ВводМесяцаПриИзменении(ЭтотОбъект, "Объект.ПериодРегистрации", "ПериодРегистрацииСтрокой", Модифицированность);
	ПериодРегистрацииПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ПериодРегистрацииНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	Оповещение = Новый ОписаниеОповещения("ПериодРегистрацииНачалоВыбораЗавершение", ЭтотОбъект);
	ЗарплатаКадрыКлиент.ВводМесяцаНачалоВыбора(ЭтотОбъект, ЭтотОбъект, "Объект.ПериодРегистрации", "ПериодРегистрацииСтрокой", , Оповещение);
КонецПроцедуры

&НаКлиенте
Процедура ПериодРегистрацииНачалоВыбораЗавершение(ЗначениеВыбрано, ДополнительныеПараметры) Экспорт
	Если ЗначениеВыбрано Тогда
		ПериодРегистрацииПриИзмененииНаСервере();
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПериодРегистрацииРегулирование(Элемент, Направление, СтандартнаяОбработка)
	ЗарплатаКадрыКлиент.ВводМесяцаРегулирование(ЭтотОбъект, "Объект.ПериодРегистрации", "ПериодРегистрацииСтрокой", Направление, Модифицированность);
	ПодключитьОбработчикОжидания("ОбработчикОжиданияПериодРегистрацииПриИзменении", 0.3, Истина);
КонецПроцедуры

&НаКлиенте
Процедура ПериодРегистрацииАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка)
	ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура ПериодРегистрацииОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
	ЗарплатаКадрыКлиент.ВводМесяцаОкончаниеВводаТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура ОбработчикОжиданияПериодРегистрацииПриИзменении()
	ПериодРегистрацииПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура СводноПриИзменении(Элемент)
	
	ТекстВопроса = "";
	
	Если Сводно И (Объект.НачисленнаяЗарплатаИВзносыПоФизлицам.Количество() > 0 Или Объект.НачисленныйНДФЛ.Количество() > 0) Тогда
		ТекстВопроса = НСтр("ru = 'Сведения о работниках организации будут удалены. Продолжить?'");
	ИначеЕсли Не Сводно И (Объект.НачисленнаяЗарплатаИВзносы.Количество() > 0 Или Объект.НачисленныйНДФЛ.Количество() > 0) Тогда
		ТекстВопроса = НСтр("ru = 'Списки ""Начисленная зарплата и взносы"" и ""Начисленный НДФЛ"" будет очищены. Продолжить?'");
	КонецЕсли;
	
	Если Не ПустаяСтрока(ТекстВопроса) Тогда
		ПоказатьВопрос(Новый ОписаниеОповещения("СводноПриИзмененииЗавершение", ЭтотОбъект), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
		Возврат;
	КонецЕсли;
	
	Объект.Сводно = Сводно;
	УстановитьВидимостьИДоступность();
	
КонецПроцедуры

&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура СводноПриИзмененииЗавершение(Ответ, ДополнительныеПараметры) Экспорт
	
	Если Ответ <> КодВозвратаДиалога.Да Тогда
		Сводно = Не Сводно;
		Возврат;
	КонецЕсли;
	
	Объект.Сводно = Сводно;
	
	Если Сводно Тогда
		СвернутьТаблицыНаСервере();
	Иначе
		Объект.НачисленнаяЗарплатаИВзносы.Очистить();
		Объект.НачисленныйНДФЛ.Очистить();
	КонецЕсли;
	
	УстановитьВидимостьИДоступность();
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыНачисленнаяЗарплатаИВзносы

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

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

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

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

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

&НаКлиенте
Процедура НачисленнаяЗарплатаИВзносыПередУдалением(Элемент, Отказ)
	
	Если Не Объект.Сводно Тогда
		НачисленнаяЗарплатаИВзносыПередУдалениемНаСервере(Элементы.НачисленнаяЗарплатаИВзносы.ВыделенныеСтроки);
	КонецЕсли;
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыУдержаннаяЗарплата

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

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

&НаКлиенте
Процедура УдержаннаяЗарплатаФизическоеЛицоПриИзменении(Элемент)
	ЗаполнитьСтатьюАналитикуРасходовСтроки(Элементы.УдержаннаяЗарплата.ТекущаяСтрока);
КонецПроцедуры

&НаКлиенте
Процедура УдержаннаяЗарплатаПодразделениеПредприятияПриИзменении(Элемент)
	ЗаполнитьСтатьюАналитикуРасходовСтроки(Элементы.УдержаннаяЗарплата.ТекущаяСтрока);
КонецПроцедуры

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

&НаКлиенте
Процедура УдержаннаяЗарплатаСтатьяАктивовПассивовПриИзменении(Элемент)
	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры

&НаКлиенте
Процедура УдержаннаяЗарплатаСтатьяДоходовПриИзменении(Элемент)
	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры

&НаКлиенте
Процедура УдержаннаяЗарплатаСтатьяАктивовПассивовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура УдержаннаяЗарплатаАналитикаАктивовПассивовПриИзменении(Элемент)
	ДоходыИРасходыКлиентСервер.АналитикаАктивовПассивовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры

&НаКлиенте
Процедура УдержаннаяЗарплатаСтатьяДоходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыНачисленныеПроцентыПоЗаймам

&НаКлиенте
Процедура НачисленныеПроцентыПоЗаймамФизическоеЛицоПриИзменении(Элемент)
	ЗаполнитьСтатьюАналитикуДоходовСтроки(Элементы.НачисленныеПроцентыПоЗаймам.ТекущиеДанные);
КонецПроцедуры

&НаКлиенте
Процедура НачисленныеПроцентыПоЗаймамПодразделениеПредприятияПриИзменении(Элемент)
	ЗаполнитьСтатьюАналитикуДоходовСтроки(Элементы.НачисленныеПроцентыПоЗаймам.ТекущиеДанные);
КонецПроцедуры

&НаКлиенте
Процедура НачисленныеПроцентыПоЗаймамСтатьяДоходовПриИзменении(Элемент)
	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры

&НаКлиенте
Процедура НачисленныеПроцентыПоЗаймамСтатьяДоходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры

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

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьДокумент(Команда)
	
	СписокТаблиц = Новый СписокЗначений();
	СписокТаблиц.Добавить("НачисленнаяЗарплатаИВзносы",  Нстр("ru = 'Начисленная зарплата и взносы'"));
	СписокТаблиц.Добавить("НачисленныйНДФЛ",             Нстр("ru = 'Начисленный НДФЛ'"));
	СписокТаблиц.Добавить("УдержаннаяЗарплата",          Нстр("ru = 'Удержанная зарплата'"));
	СписокТаблиц.Добавить("НачисленныеПроцентыПоЗаймам", Нстр("ru = 'Начисленные проценты по займам'"));
	СписокТаблиц.Добавить("ВыплатаЗаСчетРезервов",       НСтр("ru = 'Выплата за счет резервов'"));
	
	ЗаполнитьТаблицу(СписокТаблиц);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьНачисленнаяЗарплата(Команда)
	
	СписокТаблиц = Новый СписокЗначений();
	СписокТаблиц.Добавить("НачисленнаяЗарплатаИВзносы",  Нстр("ru = 'Начисленная зарплата и взносы'"));
	
	ЗаполнитьТаблицу(СписокТаблиц);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьНачисленныйНДФЛ(Команда)
	
	СписокТаблиц = Новый СписокЗначений();
	СписокТаблиц.Добавить("НачисленныйНДФЛ",             Нстр("ru = 'Начисленный НДФЛ'"));
	
	ЗаполнитьТаблицу(СписокТаблиц);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьУдержаннуюЗарплату(Команда)
	
	СписокТаблиц = Новый СписокЗначений();
	СписокТаблиц.Добавить("УдержаннаяЗарплата",          Нстр("ru = 'Удержанная зарплата'"));
	
	ЗаполнитьТаблицу(СписокТаблиц);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьНачисленныеПроценты(Команда)
	
	СписокТаблиц = Новый СписокЗначений();
	СписокТаблиц.Добавить("НачисленныеПроцентыПоЗаймам", Нстр("ru = 'Начисленные проценты по займам'"));
	
	ЗаполнитьТаблицу(СписокТаблиц);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьСтатьиДоходовНачисленныеПроценты(Команда)
	
	Если Объект.НачисленныеПроцентыПоЗаймам.Количество() > 0 Тогда
		ОписаниеОповещения = Новый ОписаниеОповещения("ЗаполнитьСтатьюДоходовЗавершение", ЭтотОбъект);
		ОткрытьФорму("ПланВидовХарактеристик.СтатьиДоходов.ФормаВыбора",, ЭтаФорма,,,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьСтатьюДоходовЗавершение(СтатьяДоходов, ДополнительныеПараметры) Экспорт
	
	Если ЗначениеЗаполнено(СтатьяДоходов) Тогда
		УстановитьСтатьюДоходовСервер(СтатьяДоходов);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
	
	ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПоказатьВыплатуЗаСчетРезервов(Команда)
	
	ПоказатьВыплатуЗаСчетРезервов = Не ПоказатьВыплатуЗаСчетРезервов;
	Элементы.ПоказатьВыплатуЗаСчетРезервов.Пометка = ПоказатьВыплатуЗаСчетРезервов;
	Элементы.ГруппаВыплатаЗаСчетРезервов.Видимость = ПоказатьВыплатуЗаСчетРезервов;
	
КонецПроцедуры

&НаКлиенте
Процедура ПоказатьВзносыПодробно(Команда)
	
	ПоказатьВзносыПодробно = Не ПоказатьВзносыПодробно;
	Элементы.ПоказатьВзносыПодробно.Пометка = ПоказатьВзносыПодробно;
	УстановитьОтображениеВзносов();
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПровестиДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
	
	ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма);
	
КонецПроцедуры

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

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

// СтандартныеПодсистемы.Свойства
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
	УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Свойства

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

#Область СлужебныеПроцедурыИФункции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ЗаполнитьТаблицуЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	СписокТаблиц = ДополнительныеПараметры.СписокТаблиц;
	
	Ответ = РезультатВопроса;
	Если Ответ = КодВозвратаДиалога.Нет Тогда
		Возврат;
	КонецЕсли;
	
	ЗаполнитьТаблицуФрагмент(СписокТаблиц);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьТаблицуФрагмент(Знач СписокТаблиц)
	
	Результат = РезультатЗаполненияВДлительнойОперации(СписокТаблиц);
	
	Если Результат.ЗаданиеВыполнено Тогда
		
		ОповеститьОбИзменении(Объект.Ссылка);
		
		ПоказатьОповещениеПользователя(
			Результат.ТекстОповещения,
			,
			Результат.ПояснениеОповещения,
			БиблиотекаКартинок.Информация32);
		
	Иначе
		
		ИдентификаторЗадания = Результат.ИдентификаторЗадания;
		АдресХранилища		 = Результат.АдресХранилища;
		
		ДлительныеОперацииКлиент.ИнициализироватьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания);
		ПодключитьОбработчикОжидания("Подключаемый_ПроверитьВыполнениеЗадания", 1, Истина);
		ФормаДлительнойОперации = ДлительныеОперацииКлиент.ОткрытьФормуДлительнойОперации(ЭтотОбъект, ИдентификаторЗадания);
		
	КонецЕсли;
	
КонецПроцедуры

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

&НаСервереБезКонтекста
Функция СтатьяАктивовПассивовПоУмолчанию(ФизическоеЛицо, ПодразделениеПредприятия, ВидОперации, Контрагент, ТекущийДокумент, ДатаАктуальности)
	
	Возврат Документы.ОтражениеЗарплатыВФинансовомУчете.СтатьяАктивовПассивовПоУмолчанию(ФизическоеЛицо, ПодразделениеПредприятия, ВидОперации, Контрагент, ТекущийДокумент, ДатаАктуальности);
	
КонецФункции

&НаСервереБезКонтекста
Функция СтатьяДоходовПоУмолчанию(ФизическоеЛицо, ПодразделениеПредприятия, ТекущийДокумент, ДатаАктуальности)
	
	Возврат Документы.ОтражениеЗарплатыВФинансовомУчете.СтатьяДоходовПоУмолчанию(ФизическоеЛицо, ПодразделениеПредприятия, ТекущийДокумент, ДатаАктуальности);
	
КонецФункции

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

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

&НаКлиенте
Процедура ЗаполнитьСтатьюАналитикуДоходовСтроки(ДанныеСтроки)
	
	СтатьяДоходовАналитика = СтатьяДоходовПоУмолчанию(
								ДанныеСтроки.ФизическоеЛицо,
								ДанныеСтроки.ПодразделениеПредприятия, 
								Объект.Ссылка, 
								Объект.Дата);
								
	ЗаполнитьЗначенияСвойств(ДанныеСтроки, СтатьяДоходовАналитика);
	
КонецПроцедуры

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

&НаСервере
Процедура РассчитатьИтогиВзносовНаСервере()
	
	КолонкиВзносов = Документы.ОтражениеЗарплатыВФинансовомУчете.КолонкиВзносов();
	Для Каждого Строка Из Объект.НачисленнаяЗарплатаИВзносы Цикл
		
		Строка.ВзносыВсего = 0;
		Для Каждого Колонка Из КолонкиВзносов Цикл
			Строка.ВзносыВсего = Строка.ВзносыВсего + Строка[Колонка];
		КонецЦикла;
		
	КонецЦикла;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Функция СписокХозяйственныхОперацийСИспользованиемПолучателя()
	
	СписокЗначений = Новый СписокЗначений;
	СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ВидыОперацийПоЗарплате.АлиментыПрочиеИсполнительныеЛисты"));
	СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ВидыОперацийПоЗарплате.Профвзносы"));
	СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ВидыОперацийПоЗарплате.ПрочиеУдержания"));
	СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ВидыОперацийПоЗарплате.ВознаграждениеПлатежногоАгента"));
	
	Возврат СписокЗначений;
	
КонецФункции

&НаСервере
Функция ДетализацияНачисленийВХранилище(СтруктураОтбора)
	
	ДетализацияНачислений = Новый Структура;
	ДетализацияНачислений.Вставить("НачисленнаяЗарплатаИВзносыПоФизлицам",
		Объект.НачисленнаяЗарплатаИВзносыПоФизлицам.Выгрузить(СтруктураОтбора));
	
	Возврат ПоместитьВоВременноеХранилище(ДетализацияНачислений, УникальныйИдентификатор);
	
КонецФункции

&НаСервере
Процедура ОбработкаВыбораСпискаФизЛицНаСервере(Параметры, ИдентификаторТекущейСтроки)
	
	НайденныеСтроки = Объект.НачисленнаяЗарплатаИВзносыПоФизлицам.НайтиСтроки(Параметры.СтруктураОтбора);
	
	Для Каждого Строка Из НайденныеСтроки Цикл
		Объект.НачисленнаяЗарплатаИВзносыПоФизлицам.Удалить(Строка);
	КонецЦикла;
	
	ДетализацияНачислений = ПолучитьИзВременногоХранилища(Параметры.АдресВХранилище);
	
	Для Каждого Строка Из ДетализацияНачислений.НачисленнаяЗарплатаИВзносыПоФизлицам Цикл
		ЗаполнитьЗначенияСвойств(Объект.НачисленнаяЗарплатаИВзносыПоФизлицам.Добавить(), Строка);
	КонецЦикла;
	
	ОбновитьСводнуюТаблицуПоДетальнымЗаписям();
	
	НайденныеСтроки = Объект.НачисленнаяЗарплатаИВзносы.НайтиСтроки(Параметры.СтруктураОтбора);
	
	Если НайденныеСтроки.Количество() > 0 Тогда
		ИдентификаторТекущейСтроки = НайденныеСтроки[0].ПолучитьИдентификатор();
	КонецЕсли;
	
КонецПроцедуры

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

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

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

&НаКлиентеНаСервереБезКонтекста
Функция СпособОтраженияТребуется(ВидОперации)
	
	Если ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоЗарплате.ЕжегодныйОтпускОценочныеОбязательстваИРезервы")
		Или ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоЗарплате.ПособиеНаПогребение")
		Или ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФСС")
		Или ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоЗарплате.РасходыПоСтрахованиюФССНС") Тогда
		Возврат Ложь;
	КонецЕсли;
	
	Возврат Истина;
	
КонецФункции

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

&НаСервере
Процедура ЗаполнениеПослеВыполненияДлительнойОперацииНаСервере(Результат)
	
	Документы.ОтражениеЗарплатыВФинансовомУчете.ЗаполнениеПослеВыполненияДлительнойОперации(Объект, Результат);
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ЗаданиеВыполнено(ИдентификаторЗадания)
	
	Возврат ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторЗадания);
	
КонецФункции

&НаСервере
Процедура НачисленнаяЗарплатаИВзносыПередУдалениемНаСервере(Знач ВыделенныеСтроки)
	
	Для Каждого Строка Из ВыделенныеСтроки Цикл
		
		ТекущиеДанные = Объект.НачисленнаяЗарплатаИВзносы.НайтиПоИдентификатору(Строка);
		
		Если ТекущиеДанные = Неопределено Тогда
			Возврат;
		КонецЕсли;
		
		СтруктураОтбора = СтруктураПолейГруппировки();
		ЗаполнитьЗначенияСвойств(СтруктураОтбора, ТекущиеДанные);
		
		НайденныеСтроки = Объект.НачисленнаяЗарплатаИВзносыПоФизлицам.НайтиСтроки(СтруктураОтбора);
		
		Для Каждого Строка Из НайденныеСтроки Цикл
			Объект.НачисленнаяЗарплатаИВзносыПоФизлицам.Удалить(Строка);
		КонецЦикла;
		
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьСпособОтраженияЗавершение(ВыбранноеЗначение, ДополнительныеПараметры) Экспорт
	
	Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда
		
		ЗаполнитьСпособОтраженияНаСервере(ВыбранноеЗначение, ДополнительныеПараметры.Идентификаторы);
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьСпособОтраженияНаСервере(ВыбранноеЗначение, Идентификаторы)
	
	ПараметрыДетализации = СтруктураПолейГруппировки();
	
	Для каждого ИдентификаторСтроки Из Идентификаторы Цикл
		
		ДанныеСтроки = Объект.НачисленнаяЗарплатаИВзносы.НайтиПоИдентификатору(ИдентификаторСтроки);
		ЗаполнитьЗначенияСвойств(ПараметрыДетализации, ДанныеСтроки);
		
		НайденныеСтроки = Объект.НачисленнаяЗарплатаИВзносыПоФизлицам.НайтиСтроки(ПараметрыДетализации);
		Для Каждого Строка Из НайденныеСтроки Цикл
			
			Если СпособОтраженияТребуется(Строка.ВидОперации) Тогда
				Строка.СпособОтраженияЗарплатыВБухучете = ВыбранноеЗначение;
			КонецЕсли;
			
		КонецЦикла;
		
		Если СпособОтраженияТребуется(ДанныеСтроки.ВидОперации) Тогда
			ДанныеСтроки.СпособОтраженияЗарплатыВБухучете = ВыбранноеЗначение;
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

// СтандартныеПодсистемы.Свойства 
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Свойства

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры

// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

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

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