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