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