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