#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Функция СоздатьОперативныйПоказатель(Идентификатор, Представление,
КраткоеПредставление = Неопределено, Валюта = Неопределено, Точность = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = Идентификатор;
ОписаниеПоказателя.Наименование = Представление;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Разовое;
ОписаниеПоказателя.СпособВводаЗначений = Перечисления.СпособыВводаЗначенийПоказателейРасчетаЗарплаты.НакапливаетсяПоОтдельнымЗначениям;
ОписаниеПоказателя.Предопределенный = Ложь;
Если КраткоеПредставление = Неопределено Тогда
КраткоеПредставление = Представление;
КонецЕсли;
ОписаниеПоказателя.КраткоеНаименование = КраткоеПредставление;
Если Точность <> Неопределено Тогда
ОписаниеПоказателя.Точность = Точность;
КонецЕсли;
Возврат ЗаписатьПоказатель(ОписаниеПоказателя);
КонецФункции
Функция ПоказателиУчетаВремени() Экспорт
Показатели = Новый Массив;
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ВремяВДнях"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ВремяВЧасах"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ВремяВДняхЧасах"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ДнейЧасовВыходногоПособия"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КалендарныеДни"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КалендарныеДниБезПраздников"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КоличествоДнейОтпуска"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НормаВремениВДнях"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НормаДней"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НормаВремениВЧасах"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НормаДнейЧасов"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноДней"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноЧасов"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноСмен"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноСверхурочно"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноСверхурочноВПределах2Часов"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ДоляНеполногоРабочегоВремени"));
Возврат Показатели;
КонецФункции
Функция ПоказателиУчетаВремениВЧасах() Экспорт
Показатели = Новый Массив;
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ВремяВЧасах"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НормаВремениВЧасах"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноЧасов"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноСверхурочно"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОтработаноСверхурочноВПределах2Часов"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ПереработаноПоСуммированномуУчету"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ПереработаноПоСуммированномуУчетуВПределах2Часов"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднечасовойЗаработок"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьЧаса"));
Возврат Показатели;
КонецФункции
Функция ПоказателиОпределяемыеПриРасчете() Экспорт
Показатели = Новый Массив;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Показатели, ПоказателиУчетаВремени());
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РасчетнаяБаза"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РасчетнаяБазаСтраховыеВзносы"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СдельныйЗаработок"));
Возврат Показатели;
КонецФункции
Функция ПоказателиОбщегоСреднегоЗаработка() Экспорт
Показатели = Новый Массив;
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднедневнойЗаработок"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднечасовойЗаработок"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокОбщий"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокИндексируемый"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокНеиндексируемый"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокРК"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокИндексируемыйРК"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокНеиндексируемыйРК"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокСН"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокИндексируемыйСН"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокНеиндексируемыйСН"));
Возврат Показатели;
КонецФункции
Функция ПоказателиДолейРКСН() Экспорт
Показатели = Новый Массив;
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокРК"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокИндексируемыйРК"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокНеиндексируемыйРК"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокСН"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокИндексируемыйСН"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СреднийЗаработокНеиндексируемыйСН"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СохраняемоеДенежноеДовольствиеРК"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СохраняемоеДенежноеДовольствиеСН"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СохраняемоеДенежноеСодержаниеРК"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СохраняемоеДенежноеСодержаниеСН"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СохраняемоеДенежноеСодержаниеНеИндексируемоеРК"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СохраняемоеДенежноеСодержаниеНеИндексируемоеСН"));
Возврат Показатели;
КонецФункции
Функция ПоказателиРасчетПоСовокупнойСтавке() Экспорт
Показатели = Новый Массив;
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьЧаса"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьДня"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьДняЧаса"));
Возврат Показатели;
КонецФункции
Функция ЗначенияИдентификаторовПоказателейСреднегоЗаработкаИДС() Экспорт
Показатели = Новый Массив;
Показатели.Добавить("СреднедневнойЗаработок");
Показатели.Добавить("СреднечасовойЗаработок");
Показатели.Добавить("СреднийЗаработокОбщий");
Показатели.Добавить("СреднийЗаработокИндексируемый");
Показатели.Добавить("СреднийЗаработокНеиндексируемый");
Показатели.Добавить("СохраняемоеДенежноеДовольствие");
Показатели.Добавить("СохраняемоеДенежноеСодержание");
Показатели.Добавить("СохраняемоеДенежноеСодержаниеНеИндексируемое");
Возврат Показатели;
КонецФункции
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Функция ОписаниеТиповЗначенияПоказателяРасчетаЗарплаты() Экспорт
Возврат Новый ОписаниеТипов(Метаданные.ОпределяемыеТипы.ЗначениеПоказателяРасчетаЗарплаты.Тип);
КонецФункции
Функция ПоказателиПоТерриториямУсловиямТруда() Экспорт
Возврат ЗарплатаКадрыРасширенныйПовтИсп.ПоказателиПоТерриториямУсловиямТруда();
КонецФункции
Функция ПоказателиНедоступныеДляУдержаний() Экспорт
Показатели = Новый Массив;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Показатели, ПоказателиУчетаВремени());
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.БазовыйТарифГруппы"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ДневнойТарифПоДолжности"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КоэффициентИндексацииСреднегоЗаработка"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КвалификационнаяНадбавка"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ДолжностнаяНадбавка"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НатуральнаяОплата"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.НатуральныйДоход"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.Оклад"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ОкладПоДолжности"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ПроцентДоплатыЗаДниНетрудоспособности"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ПроцентОплатыПоСреднему"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РазмерДоплатыЗаСовмещение"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РазмерПособияПоУходуЗаРебенкомДоТрехЛет"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СдельныйЗаработок"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СевернаяНадбавка"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьДня"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьДняЧаса"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьЧаса"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ТарифнаяСтавкаДневная"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ТарифнаяСтавкаЧасовая"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.ЧасовойТарифПоДолжности"));
Показатели.Добавить(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.СтоимостьДняЧасаСУчетомРазовыхНачислений"));
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Показатели, ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КоличествоДнейКомпенсации"));
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Показатели, ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.КалендарныеДни"));
Возврат Показатели;
КонецФункции
Функция ОперативныеПоказатели() Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПоказателиРасчетаЗарплаты.Ссылка
|ИЗ
| Справочник.ПоказателиРасчетаЗарплаты КАК ПоказателиРасчетаЗарплаты
|ГДЕ
| ПоказателиРасчетаЗарплаты.СпособВводаЗначений = ЗНАЧЕНИЕ(Перечисление.СпособыВводаЗначенийПоказателейРасчетаЗарплаты.НакапливаетсяПоОтдельнымЗначениям)";
ОперативныеПоказатели = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Возврат ОперативныеПоказатели;
КонецФункции
Функция СсылкиПоказателиРасчетаЗарплатыНачальнойНастройкиПрограммы() Экспорт
СсылкиПоказателиРасчетаЗарплаты = Новый Структура;
СсылкиПоказателиРасчетаЗарплаты.Вставить("ПроцентЕжемесячнойПремии", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("РазмерЕжемесячнойПремии", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("РазмерГодовойПремии", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("ПроцентГодовойПремии", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("РазмерКвартальнойПремии", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("ПроцентКвартальнойПремии", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("РазмерРазовойПремии", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("ПроцентРазовойПремии", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("Выручка", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("ПроцентДоплатыЗаВыручку", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("ВыполнениеПлана", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("План", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("РазмерЕдиновременногоНачисления", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("НатуральнаяОплата", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("Педнагрузка", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("НормаПеднагрузки", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("ОкладПреподавателя", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("КлассноеРуководство", Неопределено);
СсылкиПоказателиРасчетаЗарплаты.Вставить("ПроверкаТетрадей", Неопределено);
Возврат СсылкиПоказателиРасчетаЗарплаты;
КонецФункции
Функция ОписаниеПоказателя() Экспорт
Описание = Новый Структура("
|Наименование,
|КраткоеНаименование,
|Идентификатор,
|НазначениеПоказателя,
|СпособПримененияЗначений,
|ТипПоказателя,
|СпособВводаЗначений,
|ВидСтажа,
|Точность,
|ОтображатьВДокументахНачисления,
|ДопускаетсяНулевоеЗначение,
|ЗначениеРассчитываетсяАвтоматически,
|ВидТарифнойСтавки,
|НачальнаяНастройка,
|Предопределенный,
|ИмяПредопределенныхДанных");
Описание.НазначениеПоказателя = Перечисления.НазначенияПоказателейРасчетаЗарплаты.ДляСотрудника;
Описание.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Числовой;
Описание.ЗначениеРассчитываетсяАвтоматически = Истина;
Описание.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Разовое;
Описание.СпособВводаЗначений = Перечисления.СпособыВводаЗначенийПоказателейРасчетаЗарплаты.ВводитсяЕдиновременно;
Описание.ОтображатьВДокументахНачисления = Истина;
Описание.ДопускаетсяНулевоеЗначение = Ложь;
Описание.НачальнаяНастройка = Ложь;
Описание.Предопределенный = Истина;
Описание.ИмяПредопределенныхДанных = "";
Возврат Описание;
КонецФункции
Функция ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы = Неопределено) Экспорт
Если СозданныеЭлементы = Неопределено Тогда
СозданныеЭлементы = Новый Структура;
КонецЕсли;
ПоказательСсылка = Неопределено;
СозданныеЭлементы.Свойство(ОписаниеПоказателя.Идентификатор, ПоказательСсылка);
ИмяПредопределенныхДанных = ?(ПустаяСтрока(ОписаниеПоказателя.ИмяПредопределенныхДанных), ОписаниеПоказателя.Идентификатор, ОписаниеПоказателя.ИмяПредопределенныхДанных);
Если ОписаниеПоказателя.Предопределенный Тогда
ПоказательСсылка = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты." + ИмяПредопределенныхДанных);
ИначеЕсли Не ЗначениеЗаполнено(ПоказательСсылка) Тогда
ПоказательСсылка = ЗарплатаКадрыРасширенный.ПоказательПоИдентификатору(ОписаниеПоказателя.Идентификатор);
КонецЕсли;
НовыйПоказатель = Не ЗначениеЗаполнено(ПоказательСсылка);
Если НовыйПоказатель Тогда
ПоказательОбъект = Справочники.ПоказателиРасчетаЗарплаты.СоздатьЭлемент();
Если ОписаниеПоказателя.Предопределенный Тогда
ПоказательОбъект.ИмяПредопределенныхДанных = ИмяПредопределенныхДанных;
КонецЕсли;
Иначе
ПоказательОбъект = ПоказательСсылка.ПолучитьОбъект();
КонецЕсли;
Если НовыйПоказатель Или ОписаниеПоказателя.НачальнаяНастройка Тогда
ПоказательОбъект.Идентификатор = ОписаниеПоказателя.Идентификатор;
ПоказательОбъект.Наименование = ?(ПустаяСтрока(ОписаниеПоказателя.Наименование), ОписаниеПоказателя.Идентификатор, ОписаниеПоказателя.Наименование);
ПоказательОбъект.КраткоеНаименование = ?(ПустаяСтрока(ОписаниеПоказателя.КраткоеНаименование), ПоказательОбъект.Наименование, ОписаниеПоказателя.КраткоеНаименование);
ПоказательОбъект.НазначениеПоказателя = ОписаниеПоказателя.НазначениеПоказателя;
ПоказательОбъект.ТипПоказателя = ОписаниеПоказателя.ТипПоказателя;
ПоказательОбъект.ВидТарифнойСтавки = ОписаниеПоказателя.ВидТарифнойСтавки;
ПоказательОбъект.СпособПримененияЗначений = ОписаниеПоказателя.СпособПримененияЗначений;
ПоказательОбъект.СпособВводаЗначений = ОписаниеПоказателя.СпособВводаЗначений;
ПоказательОбъект.Точность = ОписаниеПоказателя.Точность;
ПоказательОбъект.ОтображатьВДокументахНачисления = ОписаниеПоказателя.ОтображатьВДокументахНачисления;
ПоказательОбъект.ДопускаетсяНулевоеЗначение = ОписаниеПоказателя.ДопускаетсяНулевоеЗначение;
ПоказательОбъект.ЗначениеРассчитываетсяАвтоматически = ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически;
ПоказательОбъект.ВидСтажа = ОписаниеПоказателя.ВидСтажа;
ПоказательОбъект.ПометкаУдаления = Ложь;
ПоказательОбъект.НеИспользуется = Ложь;
Иначе
ПоказательОбъект.ПометкаУдаления = Ложь;
ПоказательОбъект.НеИспользуется = Ложь;
КонецЕсли;
ПоказательОбъект.Записать();
Если Не ОписаниеПоказателя.Предопределенный Тогда
СозданныеЭлементы.Вставить(ОписаниеПоказателя.Идентификатор, ПоказательОбъект.Ссылка);
КонецЕсли;
Возврат ПоказательОбъект.Ссылка;
КонецФункции
Процедура ОтключитьИспользованиеПредопределенногоЭлемента(ИмяПредопределенныхДанных) Экспорт
Ссылка = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты." + ИмяПредопределенныхДанных);
Если ЗначениеЗаполнено(Ссылка) Тогда
Объект = Ссылка.ПолучитьОбъект();
Попытка
Объект.Заблокировать();
Исключение
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Невозможно изменить показатель """"%2"""". Возможно, он редактируется другим пользователем'"), Объект.Наименование);
ВызватьИсключение ТекстСообщения;
КонецПопытки;
Объект.НеИспользуется = Истина;
Объект.Записать();
КонецЕсли;
КонецПроцедуры
Процедура НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, Идентификатор) Экспорт
СправочникСсылка = Неопределено;
СозданныеЭлементы.Свойство(Идентификатор, СправочникСсылка);
Если СправочникСсылка <> Неопределено Тогда
СправочникОбъект = СправочникСсылка.ПолучитьОбъект();
Попытка
СправочникОбъект.Заблокировать();
Исключение
ТекстИсключения = НСтр("ru = 'Невозможно изменить Показатель """"%2"""". Возможно, объект редактируется другим пользователем'");
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстИсключения, СправочникОбъект.Наименование);
КонецПопытки;
СправочникОбъект.НеИспользуется = Истина;
СправочникОбъект.Записать();
СозданныеЭлементы.Вставить(Идентификатор, Неопределено);
КонецЕсли;
КонецПроцедуры
Процедура СоздатьПоказателиПоНастройкам(НастройкиРасчетаЗарплаты = Неопределено, ПараметрыПланаВидовРасчета = Неопределено, ТекущиеНастройкиРасчетаЗарплаты = Неопределено) Экспорт
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
КонецЕсли;
Если ПараметрыПланаВидовРасчета = Неопределено Тогда
ПараметрыПланаВидовРасчета = РасчетЗарплатыРасширенный.ОписаниеПараметровПланаВидовРасчета();
КонецЕсли;
ПараметрыПоказателей = ПараметрыПланаВидовРасчета.ПараметрыПоказателей;
СозданныеЭлементы = ПараметрыПланаВидовРасчета.СсылкиПоказателиРасчетаЗарплаты;
Если СозданныеЭлементы = Неопределено Тогда
СозданныеЭлементы = СсылкиПоказателиРасчетаЗарплатыНачальнойНастройкиПрограммы();
КонецЕсли;
ОбновитьПовторноИспользуемыеЗначения();
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ВремяВДнях";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Время в днях'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ВремяВДняхЧасах";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Время в днях (или часах)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Время в днях (часах)'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ОписаниеПоказателя.Точность = 3;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "НормаДнейПоГрафикуПолногоРабочегоВремени";
ОписаниеПоказателя.ИмяПредопределенныхДанных = "НормаВремениВДнях";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Норма дней по графику полного рабочего времени'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru='Норма дн. полн.граф.'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
СоздатьПоказательНормаДней();
СоздатьПоказательНормаДнейЧасов();
СоздатьПоказательДоляНеполногоРабочегоВремени();
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "КалендарныеДни";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Календарные дни'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Календ. дн.'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "КалендарныеДниМесяца";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Календарные дни месяца'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Календ. дн. (мес)'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "КалендарныеДниБезПраздников";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Календарные дни без праздников'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Кал. дн. без праздн.'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
СоздатьПоказательКалендарныеДниМесяцаБезПраздников();
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "МРОТ";
ОписаниеПоказателя.Наименование = НСтр("ru = 'МРОТ'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.НазначениеПоказателя = Перечисления.НазначенияПоказателейРасчетаЗарплаты.ДляОрганизации;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РайонныйКоэффициентРФ";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Районный коэффициент (утв. фед. орг. власти)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Районн. коэфф. РФ'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РасчетнаяБаза";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Расчетная база'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Расч. база'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
СоздатьПоказательУчитыватьМРОТ();
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокОбщий";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок (общий)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. заработок (общ.)'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
СоздатьПоказательСреднедневнойЗаработок();
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокФСС";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок ФСС'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. заработок (ФСС)'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "Оклад";
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = ПараметрыПоказателей.ОкладТарифТочность;
ОписаниеПоказателя.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.МесячнаяТарифнаяСтавка;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ТарифнаяСтавкаДневная";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Тарифная ставка (дневная)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Дневн. тариф'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = ПараметрыПоказателей.ОкладТарифТочность;
ОписаниеПоказателя.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.ДневнаяТарифнаяСтавка;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СтоимостьДня";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Стоимость дня'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Дневн. стоим.'");
ОписаниеПоказателя.Точность = 5;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СтоимостьЧаса";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Стоимость часа'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Час. стоим.'");
ОписаниеПоказателя.Точность = 5;
ЗаписатьПоказатель(ОписаниеПоказателя);
СоздатьПоказательСтоимостьДняЧаса();
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ОтработаноДней";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Отработано дней, в т.ч. сверхурочно'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Отраб. (дни)'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуПростоев", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуПростоев Тогда
СоздатьПоказательТарифПростоя();
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ТарифПростоя");
КонецЕсли;
КонецЕсли;
Если ПараметрыПланаВидовРасчета.НатуральныеДоходы.ОплатаТрудаВНатуральнойФорме Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "НатуральнаяОплата";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Натуральная оплата'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Натур. оплата'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = 0;
ОписаниеПоказателя.Предопределенный = Ложь;
ОписаниеПоказателя.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.МесячнаяТарифнаяСтавка;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "НатуральнаяОплата");
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьДоходыВНатуральнойФорме", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьДоходыВНатуральнойФорме Тогда
СоздатьПоказательНатуральныйДоход();
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("НатуральныйДоход");
КонецЕсли;
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьСовмещениеПрофессийДолжностей", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьСовмещениеПрофессийДолжностей Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РазмерДоплатыЗаСовмещение";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Размер доплаты за совмещение'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'За совмещ.'");
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("РазмерДоплатыЗаСовмещение");
КонецЕсли;
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьОплатуСверхурочных", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьОплатуСверхурочных Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ОтработаноСверхурочно";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Отработано сверхурочно'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Сверхурочно (всего)'");
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ОтработаноСверхурочноВПределах2Часов";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Отработано сверхурочно в пределах 2 часов'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Сверхурочно (до 2 ч)'");
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ОтработаноСверхурочно");
ОтключитьИспользованиеПредопределенногоЭлемента("ОтработаноСверхурочноВПределах2Часов");
КонецЕсли;
КонецЕсли;
СоздатьПоказателиСуммированногоУчета();
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьСдельныйЗаработок", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьСдельныйЗаработок Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СдельныйЗаработок";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Сдельный заработок'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Сдельно'");
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.СпособВводаЗначений = Перечисления.СпособыВводаЗначенийПоказателейРасчетаЗарплаты.НакапливаетсяПоОтдельнымЗначениям;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("СдельныйЗаработок");
КонецЕсли;
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьИсполнительныеЛисты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьИсполнительныеЛисты Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РасчетнаяБазаИсполнительногоЛиста";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Расчетная база исполнительного листа'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Расч. база'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ИсчисленныйПоИсполнительномуЛистуНДФЛ";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Исчисленный по исполнительному листу НДФЛ'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'НДФЛ'");
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("РасчетнаяБазаИсполнительногоЛиста");
ОтключитьИспользованиеПредопределенногоЭлемента("ИсчисленныйПоИсполнительномуЛистуНДФЛ");
КонецЕсли;
КонецЕсли;
ПараметрыПремия = ПараметрыПланаВидовРасчета.ЕжемесячнаяПремия;
Если ПараметрыПремия.ИспользоватьПремиюПроцентом Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "ПроцентЕжемесячнойПремии";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент ежемесячной премии'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% прем.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "ПроцентЕжемесячнойПремии");
КонецЕсли;
Если ПараметрыПремия.ИспользоватьПремиюСуммой Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "РазмерЕжемесячнойПремии";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Сумма ежемесячной премии'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Сумма прем.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "РазмерЕжемесячнойПремии");
КонецЕсли;
ПараметрыПремия = ПараметрыПланаВидовРасчета.ГодоваяПремия;
Если ПараметрыПремия.ИспользоватьПремиюСуммой И ПараметрыПремия.НачисляетсяПоЗначениюПоказателей Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "РазмерГодовойПремии";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Сумма годовой премии'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Сумма прем.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "РазмерГодовойПремии");
КонецЕсли;
Если ПараметрыПремия.ИспользоватьПремиюПроцентом Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "ПроцентГодовойПремии";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент годовой премии'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% прем.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.Предопределенный = Ложь;
Если ПараметрыПремия.НачисляетсяВМесяцах Тогда
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ИначеЕсли ПараметрыПремия.НачисляетсяОтдельнымДокументом Тогда
ОписаниеПоказателя.СпособВводаЗначений = Перечисления.СпособыВводаЗначенийПоказателейРасчетаЗарплаты.ВводитсяПриРасчете;
КонецЕсли;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "ПроцентГодовойПремии");
КонецЕсли;
ПараметрыПремия = ПараметрыПланаВидовРасчета.КвартальнаяПремия;
Если ПараметрыПремия.ИспользоватьПремиюСуммой И ПараметрыПремия.НачисляетсяПоЗначениюПоказателей Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "РазмерКвартальнойПремии";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Сумма квартальной премии'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Сумма прем.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "РазмерКвартальнойПремии");
КонецЕсли;
Если ПараметрыПремия.ИспользоватьПремиюПроцентом Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "ПроцентКвартальнойПремии";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент квартальной премии'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% прем.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.Предопределенный = Ложь;
Если ПараметрыПремия.НачисляетсяВМесяцах Тогда
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ИначеЕсли ПараметрыПремия.НачисляетсяОтдельнымДокументом Тогда
ОписаниеПоказателя.СпособВводаЗначений = Перечисления.СпособыВводаЗначенийПоказателейРасчетаЗарплаты.ВводитсяПриРасчете;
КонецЕсли;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "ПроцентКвартальнойПремии");
КонецЕсли;
ПараметрыПремия = ПараметрыПланаВидовРасчета.РазоваяПремия;
Если ПараметрыПремия.ИспользоватьПремиюСуммой И ПараметрыПремия.НачисляетсяПоЗначениюПоказателей Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "РазмерРазовойПремии";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Размер разовой премии'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Сумма прем.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.Предопределенный = Ложь;
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "РазмерРазовойПремии");
КонецЕсли;
Если ПараметрыПремия.ИспользоватьПремиюПроцентом Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "ПроцентРазовойПремии";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент разовой премии'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% прем.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.Предопределенный = Ложь;
ОписаниеПоказателя.Точность = 2;
Если ПараметрыПремия.НачисляетсяОтдельнымДокументом Тогда
ОписаниеПоказателя.СпособВводаЗначений = Перечисления.СпособыВводаЗначенийПоказателейРасчетаЗарплаты.ВводитсяПриРасчете;
КонецЕсли;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "ПроцентРазовойПремии");
КонецЕсли;
Если ПараметрыПланаВидовРасчета.ИспользоватьДоплатуЗаВыручкуОтРеализации Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "Выручка";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Выручка'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Выручка'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.Предопределенный = Ложь;
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "ПроцентДоплатыЗаВыручку";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент доплаты за выручку'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% за выручку'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.НазначениеПоказателя = Перечисления.НазначенияПоказателейРасчетаЗарплаты.ДляОрганизации;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Числовой;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "Выручка");
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "ПроцентДоплатыЗаВыручку");
КонецЕсли;
Если ПараметрыПланаВидовРасчета.ИспользоватьДоплатуЗаВыполнениеПлана Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = "ВыполнениеПлана";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Выполнение плана'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Вып. плана'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Числовой;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "План";
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Наименование = НСтр("ru = 'План'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'План'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.НазначениеПоказателя = Перечисления.НазначенияПоказателейРасчетаЗарплаты.ДляПодразделения;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Числовой;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя, СозданныеЭлементы);
Иначе
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "ВыполнениеПлана");
НачальнаяНастройкаОтключитьИспользованиеПоказателя(СозданныеЭлементы, "План");
КонецЕсли;
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "КоличествоДнейОтпуска";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Количество дней отпуска'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Дней отпуска'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Истина;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "КоличествоДнейКомпенсации";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Количество дней компенсации отпуска'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Дней компенсац.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Истина;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ДнейЧасовВыходногоПособия";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Количество оплачиваемых дней (часов) выходного пособия'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Дней(часов) вых. пособия.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Истина;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РазмерПособияПоУходуЗаРебенкомДоТрехЛет";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Размер пособия по уходу за ребенком до трех лет'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Пособие до трех лет'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПроцентОплатыПоСреднему";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент оплаты по среднему заработку'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% оплаты по сред.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Истина;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПроцентДоплатыЗаДниНетрудоспособности";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент доплаты за дни нетрудоспособности'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% доплаты до сред.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Истина;
ЗаписатьПоказатель(ОписаниеПоказателя);
СоздатьПоказателиРКиСН();
СоздатьПоказателиДляНадбавок(ПараметрыПланаВидовРасчета);
СоздатьПоказателиДляКомпенсационныхВыплат(ПараметрыПланаВидовРасчета);
СоздатьПоказателиДляУчетаВремениСотрудниковВЧасах(НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета);
СоздатьПоказательКоэффициентИндексацииСреднегоЗаработка();
СоздатьПоказателиИндексируемогоНеиндексируемогоСреднегоЗаработка();
СоздатьПоказательИсчисленныйНДФЛРасчетнойБазыУдержания();
СоздатьПоказательСреднемесячноеКоличествоЧасов();
СоздатьПоказательСтоимостьДняЧасаСУчетомРазовыхНачислений();
СоздатьПоказателиСреднегоЗаработкаРКиСН();
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьПрофсоюзныеВзносы", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьПрофсоюзныеВзносы Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПроцентПрофсоюзныхВзносов";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент профсоюзных взносов'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% профвзносов'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ПроцентПрофсоюзныхВзносов");
КонецЕсли;
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьДСВ", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты)
Или РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьДобровольныеВзносыВНПФ", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьДСВ
Или НастройкиРасчетаЗарплаты.ИспользоватьДобровольныеВзносыВНПФ Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РасчетнаяБазаСтраховыеВзносы";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Расчетная база страховых взносов'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Расч. база ДСВ'");
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("РасчетнаяБазаСтраховыеВзносы");
КонецЕсли;
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьДСВ", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьДСВ Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПроцентДСВ";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент добровольных страховых взносов'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% ДСВ'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ПроцентДСВ");
КонецЕсли;
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьДобровольныеВзносыВНПФ", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьДобровольныеВзносыВНПФ Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПроцентНПФ";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент добровольных взносов в НПФ'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% взносов в НПФ'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ПроцентНПФ");
КонецЕсли;
КонецЕсли;
СоздатьПоказательБазовыйТарифГруппы();
СоздатьПоказательКвалификационнаяНадбавка(НастройкиРасчетаЗарплаты);
СоздатьПоказательДолжностнаяНадбавка(НастройкиРасчетаЗарплаты);
СоздатьПоказательОкладПоДолжности(ПараметрыПланаВидовРасчета);
СоздатьПоказательДневнойТарифПоДолжности(ПараметрыПланаВидовРасчета);
СоздатьПоказательНадбавкаЗаВредность(НастройкиРасчетаЗарплаты);
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьТарифныеСеткиПриРасчетеЗарплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьТарифныеСеткиПриРасчетеЗарплаты Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РазмерДоплатыЗаКвалификацию";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Размер доплаты за квалификацию'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Доплата за квалиф.'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = ПараметрыПоказателей.ОкладТарифТочность;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("РазмерДоплатыЗаКвалификацию");
КонецЕсли;
КонецЕсли;
Если РасчетЗарплатыРасширенный.ИзмененаНастройкаРасчетаЗарплаты("ИспользоватьТарифныеСеткиПриРасчетеЗарплаты", НастройкиРасчетаЗарплаты, ТекущиеНастройкиРасчетаЗарплаты) Тогда
Если НастройкиРасчетаЗарплаты.ИспользоватьТарифныеСеткиПриРасчетеЗарплаты Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РазмерДневнойДоплатыЗаКвалификацию";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Размер дневной доплаты за квалификацию'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Дн. допл. за квалиф.'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = ПараметрыПоказателей.ОкладТарифТочность;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("РазмерДневнойДоплатыЗаКвалификацию");
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы") Тогда
СоздатьПоказателиВремениКомпенсацииПриУвольнении();
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.РасчетДенежногоСодержания") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("РасчетДенежногоСодержания");
Модуль.СоздатьПоказателиНачисленийДенежногоСодержания(ПараметрыПланаВидовРасчета);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.РасчетДенежногоДовольствия") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("РасчетДенежногоДовольствия");
Модуль.СоздатьПоказателиНачисленийДенежногоДовольствия(ПараметрыПланаВидовРасчета);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КлючевыеПоказателиЭффективности") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("КлючевыеПоказателиЭффективности");
Модуль.СоздатьПоказательЭффективностиСотрудника();
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОбразовательныеУчреждения") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ОбразовательныеУчреждения");
Модуль.СоздатьПоказателиОбразовательныхУчреждений(ПараметрыПланаВидовРасчета);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("Медицина");
Модуль.СоздатьПоказателиМедицинскихУчреждений(НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.МедицинскоеСтрахование") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("МедицинскоеСтрахование");
Модуль.СоздатьПоказателиМедицинскогоСтрахования(ПараметрыПланаВидовРасчета);
КонецЕсли;
СоздатьПоказательКоличествоДнейЧасовКомпенсацииОтгулов();
ОбновитьПовторноИспользуемыеЗначения();
ОбновитьПоказателиПредопределенныхСпособовРасчета();
КонецПроцедуры
Процедура СоздатьПоказательБазовыйТарифГруппы(НастройкиРасчетаЗарплаты = Неопределено) Экспорт
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
КонецЕсли;
Если НастройкиРасчетаЗарплаты.ИспользоватьТарифныеСеткиПриРасчетеЗарплаты Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "БазовыйТарифГруппы";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Базовый тариф группы'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Баз. тариф группы'");
ОписаниеПоказателя.НазначениеПоказателя = Перечисления.НазначенияПоказателейРасчетаЗарплаты.ДляСотрудника;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.МесячнаяТарифнаяСтавка;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("БазовыйТарифГруппы");
КонецЕсли;
КонецПроцедуры
Процедура СоздатьПоказательОтработаноСмен() Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ОтработаноСмен";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Отработано смен'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Отработано смен'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Истина;
ОписаниеПоказателя.Точность = 0;
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецПроцедуры
Процедура ОтключитьИспользованиеПоказателяОтработаноСмен() Экспорт
ОтключитьИспользованиеПредопределенногоЭлемента("ОтработаноСмен");
КонецПроцедуры
Функция СоздатьПоказательНадбавкаЗаВыслугуЛет() Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПроцентНадбавкиЗаВыслугуЛет";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент надбавки за выслугу лет'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% надб.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.ВидСтажа = Справочники.ВидыСтажа.СоздатьВидСтажаЗаВыслугуЛет();
ОписаниеПоказателя.Предопределенный = Ложь;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.ЧисловойЗависящийОтСтажа;
Возврат ЗаписатьПоказатель(ОписаниеПоказателя);
КонецФункции
Процедура СоздатьПоказательНадбавкаЗаВредность(НастройкиРасчетаЗарплаты = Неопределено) Экспорт
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
ИспользоватьНадбавкуЗаВредность = ПолучитьФункциональнуюОпцию("ИспользоватьНадбавкуЗаВредность");
Иначе
ИспользоватьНадбавкуЗаВредность = НастройкиРасчетаЗарплаты.ИспользоватьНадбавкуЗаВредность;
КонецЕсли;
Если ИспользоватьНадбавкуЗаВредность Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПроцентНадбавкиЗаВредность";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент надбавки за вредность'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% надб.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ПроцентНадбавкиЗаВредность");
КонецЕсли;
КонецПроцедуры
Процедура СоздатьПоказателиРКиСН(ВостребованностьРКиСН = Неопределено) Экспорт
Если ВостребованностьРКиСН = Неопределено Тогда
ВостребованностьРКиСН = РасчетЗарплаты.ВостребованностьРКиСН();
КонецЕсли;
Если ВостребованностьРКиСН.РайонныйКоэффициент Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РайонныйКоэффициент";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Районный коэффициент'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Районн. коэфф.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = 3;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("РайонныйКоэффициент");
КонецЕсли;
Если ВостребованностьРКиСН.СевернаяНадбавка Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СевернаяНадбавка";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Северная надбавка'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% сев. надб.'");
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("СевернаяНадбавка");
КонецЕсли;
КонецПроцедуры
Процедура СоздатьПоказательКоэффициентИндексацииСреднегоЗаработка() Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "КоэффициентИндексацииСреднегоЗаработка";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Коэффициент индексации среднего заработка'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Коэф. индекс. средн.'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецПроцедуры
Процедура СоздатьПоказателиСуммированногоУчета() Экспорт
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
ИспользоватьОплатуПереработокСуммированногоУчета = НастройкиРасчетаЗарплаты.ИспользоватьОплатуПереработокСуммированногоУчета;
ИспользоватьУчетВремениСотрудниковВЧасах = НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах;
Если ИспользоватьУчетВремениСотрудниковВЧасах И ИспользоватьОплатуПереработокСуммированногоУчета Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПереработаноПоСуммированномуУчету";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Переработано по суммированному учету'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Переработки (всего)'");
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПереработаноПоСуммированномуУчетуВПределах2Часов";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Переработано по суммированному учету в пределах 2 часов'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Переработки (до 2 ч)'");
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ПереработаноПоСуммированномуУчету");
ОтключитьИспользованиеПредопределенногоЭлемента("ПереработаноПоСуммированномуУчетуВПределах2Часов");
КонецЕсли;
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
Процедура СоздатьПоказателиВремениКомпенсацииПриУвольнении() Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ДнейЧасовКомпенсацииЗаНеотработанноеВремяПриУвольнении";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Дней/часов компенсации'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Дн./час. комп.'");
ЗаписатьПоказатель(ОписаниеПоказателя);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
НастройкиПриложения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
Если НастройкиПриложения.РаботаВБюджетномУчреждении Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ДнейКомпенсацииЗаНеотработанноеВремяПриУвольнении";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Дней компенсации'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Дн. комп.'");
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьШкалуСтажаНадбавкиЗаВыслугуЛет(Показатель, КатегорииСтажа) Экспорт
Если КатегорииСтажа = Перечисления.КатегорииСтажа.ВыслугаЛетНаГосударственнойСлужбе Тогда
ПоказательОбъект = Показатель.ПолучитьОбъект();
ПоказательОбъект.ШкалаОценкиСтажа.Очистить();
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 12;
НоваяСтрока.ЗначениеПоказателя = 0;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 60;
НоваяСтрока.ЗначениеПоказателя = 10;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 120;
НоваяСтрока.ЗначениеПоказателя = 15;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 180;
НоваяСтрока.ЗначениеПоказателя = 20;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 0;
НоваяСтрока.ЗначениеПоказателя = 30;
ПоказательОбъект.ОбменДанными.Загрузка = Истина;
ПоказательОбъект.Записать();
ИначеЕсли КатегорииСтажа = Перечисления.КатегорииСтажа.ВыслугаЛетНаВоеннойСлужбе Тогда
ПоказательОбъект = Показатель.ПолучитьОбъект();
ПоказательОбъект.ШкалаОценкиСтажа.Очистить();
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 24;
НоваяСтрока.ЗначениеПоказателя = 0;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 60;
НоваяСтрока.ЗначениеПоказателя = 10;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 120;
НоваяСтрока.ЗначениеПоказателя = 15;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 180;
НоваяСтрока.ЗначениеПоказателя = 20;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 240;
НоваяСтрока.ЗначениеПоказателя = 25;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 300;
НоваяСтрока.ЗначениеПоказателя = 30;
НоваяСтрока = ПоказательОбъект.ШкалаОценкиСтажа.Добавить();
НоваяСтрока.ВерхняяГраницаИнтервалаСтажа = 0;
НоваяСтрока.ЗначениеПоказателя = 40;
ПоказательОбъект.ОбменДанными.Загрузка = Истина;
ПоказательОбъект.Записать();
КонецЕсли;
КонецПроцедуры
Функция ОкруглениеПоУмолчаниюДляПоказателя(Показатель) Экспорт
ОкруглениеПоУмолчаниюДляПоказателей = ОкруглениеПоУмолчаниюДляПоказателей(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Показатель));
Возврат ОкруглениеПоУмолчаниюДляПоказателей[Показатель];
КонецФункции
Функция ОкруглениеПоУмолчаниюДляПоказателей(Показатели) Экспорт
СведенияОПоказателях = ЗарплатаКадрыРасширенный.СведенияОПоказателяхРасчетаЗарплаты(Показатели);
ОкруглениеДоРубляВБольшуюСторону = Справочники.СпособыОкругленияПриРасчетеЗарплаты.СпособОкругленияДоРубляВБольшуюСторону();
ОкруглениеПоУмолчанию = Справочники.СпособыОкругленияПриРасчетеЗарплаты.ПоУмолчанию();
ОкругленияДоРубляВБольшуюСторонуСуществует = ОкруглениеДоРубляВБольшуюСторону <> Неопределено;
СоответствиеПоказателейИСпособовОкругления = Новый Соответствие;
Для каждого Показатель Из Показатели Цикл
ТочностьПоказателя = СведенияОПоказателях[Показатель].Точность;
ОкруглениеДляПоказателя = Неопределено;
Если ОкругленияДоРубляВБольшуюСторонуСуществует И ТочностьПоказателя = 0 Тогда
ОкруглениеДляПоказателя = ОкруглениеДоРубляВБольшуюСторону;
Иначе
ОкруглениеДляПоказателя = ОкруглениеПоУмолчанию;
КонецЕсли;
СоответствиеПоказателейИСпособовОкругления.Вставить(Показатель, ОкруглениеДляПоказателя);
КонецЦикла;
Возврат СоответствиеПоказателейИСпособовОкругления;
КонецФункции
Функция НулевыеЗначенияПоказателейРКСН() Экспорт
НулевыеЗначенияПоказателейРКСН = Новый Структура;
НулевыеЗначенияПоказателейРКСН.Вставить("СреднийЗаработокРК", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СреднийЗаработокИндексируемыйРК", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СреднийЗаработокНеиндексируемыйРК", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СреднийЗаработокСН", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СреднийЗаработокИндексируемыйСН", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СреднийЗаработокНеиндексируемыйСН", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СохраняемоеДенежноеДовольствиеРК", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СохраняемоеДенежноеДовольствиеСН", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СохраняемоеДенежноеСодержаниеРК", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СохраняемоеДенежноеСодержаниеСН", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СохраняемоеДенежноеСодержаниеНеИндексируемоеРК", 0);
НулевыеЗначенияПоказателейРКСН.Вставить("СохраняемоеДенежноеСодержаниеНеИндексируемоеСН", 0);
Возврат НулевыеЗначенияПоказателейРКСН;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
#КонецОбласти
Функция СоздатьПоказательДоплатаЗаРаботуВНочноеВремя()
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПроцентДоплатыЗаРаботуВНочноеВремя";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент доплаты за работу в ночное время'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% допл. за ночн.'");
ОписаниеПоказателя.НазначениеПоказателя = Перечисления.НазначенияПоказателейРасчетаЗарплаты.ДляОрганизации;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
Возврат ЗаписатьПоказатель(ОписаниеПоказателя);
КонецФункции
Функция СоздатьПоказательДоплатаЗаРаботуВВечернееВремя()
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ПроцентДоплатыЗаРаботуВВечернееВремя";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Процент доплаты за работу в вечернее время'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = '% допл. за вечерн.'");
ОписаниеПоказателя.НазначениеПоказателя = Перечисления.НазначенияПоказателейРасчетаЗарплаты.ДляОрганизации;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
Возврат ЗаписатьПоказатель(ОписаниеПоказателя);
КонецФункции
Процедура СоздатьПоказательНатуральныйДоход()
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "НатуральныйДоход";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Натуральный доход'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Натур. доход'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.Точность = 0;
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецПроцедуры
Функция СоздатьПоказательСтоимостьДняЧаса()
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СтоимостьДняЧаса";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Стоимость часа (или дня)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Час. или дн. стоим.'");
ОписаниеПоказателя.Точность = 5;
Возврат ЗаписатьПоказатель(ОписаниеПоказателя);
КонецФункции
Функция СоздатьПоказательСреднечасовойЗаработок()
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднечасовойЗаработок";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Среднечасовой заработок'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. час. заработок'");
ОписаниеПоказателя.Точность = 2;
Возврат ЗаписатьПоказатель(ОписаниеПоказателя);
КонецФункции
Функция СоздатьПоказательСреднедневнойЗаработок()
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднедневнойЗаработок";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Среднедневной заработок'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. дн. заработок'");
ОписаниеПоказателя.Точность = 2;
Возврат ЗаписатьПоказатель(ОписаниеПоказателя);
КонецФункции
Процедура СоздатьПоказательНормаДней()
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "НормаДней";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Норма дней'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Норма (дн.)'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецПроцедуры
Процедура СоздатьПоказательДоляНеполногоРабочегоВремени()
ОписаниеПоказателя = ОписаниеПоказателяДоляНеполногоРабочегоВремени();
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецПроцедуры
Функция ОписаниеПоказателяДоляНеполногоРабочегоВремени()
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ДоляНеполногоРабочегоВремени";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Доля неполного рабочего времени'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Доля неполн. времени'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Истина;
ОписаниеПоказателя.Точность = 4;
Возврат ОписаниеПоказателя;
КонецФункции
Процедура СоздатьПоказателиДляНадбавок(ПараметрыПланаВидовРасчета)
Надбавки = ПараметрыПланаВидовРасчета.Надбавки;
Если Надбавки.ИспользоватьНадбавкуЗаВыслугуЛет Тогда
ПоказательСсылка = ЗарплатаКадрыРасширенный.ПоказательПоИдентификатору("ПроцентНадбавкиЗаВыслугуЛет");
Если Не ЗначениеЗаполнено(ПоказательСсылка) Тогда
СоздатьПоказательНадбавкаЗаВыслугуЛет();
КонецЕсли;
КонецЕсли;
ПрочиеНадбавкиПроцентом = Надбавки.НадбавкиПроцентом;
Если ПрочиеНадбавкиПроцентом.Количество() > 0 Тогда
Для каждого Надбавка Из ПрочиеНадбавкиПроцентом Цикл
Если ПустаяСтрока(Надбавка) Тогда
Надбавки.ИдентификаторыНадбавокПроцентом.Добавить("");
Продолжить;
КонецЕсли;
Надбавка = СОКРЛП(Надбавка);
Наименование = НСтр("ru = 'Процент надбавки'") + " " + Надбавка;
Идентификатор = НСтр("ru = 'ПроцентНадбавки'");
КраткоеНаименование = "% ";
СформироватьИдентификаторИКраткоеНаименованиеНадбавки(Надбавки, Надбавка, Надбавки.ИдентификаторыНадбавокПроцентом, Идентификатор, КраткоеНаименование);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = Идентификатор;
ОписаниеПоказателя.Наименование = Наименование;
ОписаниеПоказателя.КраткоеНаименование = КраткоеНаименование;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = 2;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецЦикла;
КонецЕсли;
ПрочиеНадбавкиСуммой = Надбавки.НадбавкиСуммой;
Если ПрочиеНадбавкиСуммой.Количество() > 0 Тогда
Для каждого Надбавка Из ПрочиеНадбавкиСуммой Цикл
Если ПустаяСтрока(Надбавка) Тогда
Надбавки.ИдентификаторыНадбавокСуммой.Добавить("");
Продолжить;
КонецЕсли;
Надбавка = СОКРЛП(Надбавка);
Наименование = Надбавка + " " + НСтр("ru = '(руб)'");
Идентификатор = НСтр("ru = 'РазмерНадбавки'");
КраткоеНаименование = "";
СформироватьИдентификаторИКраткоеНаименованиеНадбавки(Надбавки, Надбавка, Надбавки.ИдентификаторыНадбавокСуммой, Идентификатор, КраткоеНаименование);
КраткоеНаименование = КраткоеНаименование + " " + НСтр("ru = '(руб)'");
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = Идентификатор;
ОписаниеПоказателя.Наименование = Наименование;
ОписаниеПоказателя.КраткоеНаименование = КраткоеНаименование;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = 0;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура СоздатьПоказательКвалификационнаяНадбавка(НастройкиРасчетаЗарплаты = Неопределено)
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
ИспользоватьКвалификационнуюНадбавку = ПолучитьФункциональнуюОпцию("ИспользоватьКвалификационнуюНадбавку");
Иначе
ИспользоватьКвалификационнуюНадбавку = НастройкиРасчетаЗарплаты.ИспользоватьКвалификационнуюНадбавку;
КонецЕсли;
Если ИспользоватьКвалификационнуюНадбавку Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "КвалификационнаяНадбавка";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Квалификационная надбавка'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Квалиф. надбавка'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("КвалификационнаяНадбавка");
КонецЕсли;
КонецПроцедуры
Процедура СоздатьПоказательДолжностнаяНадбавка(НастройкиРасчетаЗарплаты = Неопределено)
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
ИспользоватьКвалификационнуюНадбавку = ПолучитьФункциональнуюОпцию("ИспользоватьКвалификационнуюНадбавку");
Иначе
ИспользоватьКвалификационнуюНадбавку = НастройкиРасчетаЗарплаты.ИспользоватьКвалификационнуюНадбавку;
КонецЕсли;
Если ИспользоватьКвалификационнуюНадбавку Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ДолжностнаяНадбавка";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Должностная надбавка'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Должн. надбавка'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ДолжностнаяНадбавка");
КонецЕсли;
КонецПроцедуры
Процедура СоздатьПоказательОкладПоДолжности(ПараметрыПланаВидовРасчета = Неопределено)
Если ПараметрыПланаВидовРасчета = Неопределено Тогда
ПараметрыПланаВидовРасчета = РасчетЗарплатыРасширенный.ОписаниеПараметровПланаВидовРасчета();
КонецЕсли;
ПараметрыПоказателей = ПараметрыПланаВидовРасчета.ПараметрыПоказателей;
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ОкладПоДолжности";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Оклад по должности'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Оклад по должн.'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.МесячнаяТарифнаяСтавка;
ОписаниеПоказателя.Точность = ПараметрыПоказателей.ОкладТарифТочность;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецПроцедуры
Процедура СоздатьПоказателиДляКомпенсационныхВыплат(ПараметрыПланаВидовРасчета)
КомпенсационныеВыплаты = ПараметрыПланаВидовРасчета.КомпенсационныеВыплаты;
Если КомпенсационныеВыплаты.Количество() > 0 Тогда
Для каждого Выплата Из КомпенсационныеВыплаты Цикл
Если ПустаяСтрока(Выплата.Название) Тогда
Продолжить;
КонецЕсли;
Название = СОКРЛП(Выплата.Название);
Наименование = Название + " " + НСтр("ru = '(руб)'");
Идентификатор = НСтр("ru = 'РазмерКомпенсации'");
КраткоеНаименование = "";
ИдентификаторИКраткоеНаименованиеПоТекстовойСтроке(Идентификатор,КраткоеНаименование,Название);
КраткоеНаименование = КраткоеНаименование + " " + НСтр("ru = '(руб)'");
Выплата.Показатель = Идентификатор;
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ОписаниеПоказателя.Идентификатор = Идентификатор;
ОписаниеПоказателя.Наименование = Наименование;
ОписаниеПоказателя.КраткоеНаименование = КраткоеНаименование;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = 0;
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.Предопределенный = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура СоздатьПоказательДневнойТарифПоДолжности(ПараметрыПланаВидовРасчета = Неопределено)
Если ПараметрыПланаВидовРасчета = Неопределено Тогда
ПараметрыПланаВидовРасчета = РасчетЗарплатыРасширенный.ОписаниеПараметровПланаВидовРасчета();
КонецЕсли;
ПараметрыПоказателей = ПараметрыПланаВидовРасчета.ПараметрыПоказателей;
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ДневнойТарифПоДолжности";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Тарифная ставка по должности (дневная)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Днев. тариф по долж.'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.ДневнаяТарифнаяСтавка;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = ПараметрыПоказателей.ОкладТарифТочность;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя);
КонецПроцедуры
Процедура СоздатьПоказателиДляУчетаВремениСотрудниковВЧасах(НастройкиРасчетаЗарплаты, ПараметрыПланаВидовРасчета)
ПараметрыПоказателей = ПараметрыПланаВидовРасчета.ПараметрыПоказателей;
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ВремяВЧасах";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Время в часах'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ОписаниеПоказателя.Точность = 3;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ВремяВЧасах");
КонецЕсли;
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьПоказательСреднечасовойЗаработок();
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("СреднечасовойЗаработок");
КонецЕсли;
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах
Или НастройкиРасчетаЗарплаты.ИспользоватьСдельныйЗаработок Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ТарифнаяСтавкаЧасовая";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Тарифная ставка (часовая)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Час. тариф'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = ПараметрыПоказателей.ОкладТарифЧасовойТочность;
ОписаниеПоказателя.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.ЧасоваяТарифнаяСтавка;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "НормаЧасов";
ОписаниеПоказателя.ИмяПредопределенныхДанных = "НормаВремениВЧасах";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Норма часов'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Норма (час.)'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ОтработаноЧасов";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Отработано часов, в т.ч. сверхурочно'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Отраб. (час.)'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ОписаниеПоказателя.Точность = 3;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ТарифнаяСтавкаЧасовая");
ОтключитьИспользованиеПредопределенногоЭлемента("НормаВремениВЧасах");
ОтключитьИспользованиеПредопределенногоЭлемента("ОтработаноЧасов");
КонецЕсли;
НастройкиУчетаВремени = УчетРабочегоВремениРасширенный.НастройкиУчетаВремени();
Если НастройкиУчетаВремени.УчитыватьНочныеЧасы И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьПоказательДоплатаЗаРаботуВНочноеВремя();
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ПроцентДоплатыЗаРаботуВНочноеВремя");
КонецЕсли;
Если НастройкиУчетаВремени.УчитыватьВечерниеЧасы И НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах Тогда
СоздатьПоказательДоплатаЗаРаботуВВечернееВремя();
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ПроцентДоплатыЗаРаботуВВечернееВремя");
КонецЕсли;
СоздатьПоказательЧасовойТарифПоДолжности(ПараметрыПланаВидовРасчета, НастройкиРасчетаЗарплаты);
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах
И НастройкиРасчетаЗарплаты.ИспользоватьТарифныеСеткиПриРасчетеЗарплаты Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "РазмерЧасовойДоплатыЗаКвалификацию";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Размер часовой доплаты за квалификацию'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Час. допл. за квалиф.'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = ПараметрыПоказателей.ОкладТарифТочность;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("РазмерЧасовойДоплатыЗаКвалификацию");
КонецЕсли;
КонецПроцедуры
Процедура СоздатьПоказательЧасовойТарифПоДолжности(ПараметрыПланаВидовРасчета = Неопределено, НастройкиРасчетаЗарплаты = Неопределено)
Если НастройкиРасчетаЗарплаты = Неопределено Тогда
НастройкиРасчетаЗарплаты = РасчетЗарплатыРасширенный.НастройкиРасчетаЗарплаты();
КонецЕсли;
Если ПараметрыПланаВидовРасчета = Неопределено Тогда
ПараметрыПланаВидовРасчета = РасчетЗарплатыРасширенный.ОписаниеПараметровПланаВидовРасчета();
КонецЕсли;
ПараметрыПоказателей = ПараметрыПланаВидовРасчета.ПараметрыПоказателей;
Если НастройкиРасчетаЗарплаты.ИспользоватьУчетВремениСотрудниковВЧасах
Или НастройкиРасчетаЗарплаты.ИспользоватьСдельныйЗаработок Тогда
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ЧасовойТарифПоДолжности";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Тарифная ставка по должности (часовая)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Час. тариф по долж.'");
ОписаниеПоказателя.ТипПоказателя = Перечисления.ТипыПоказателейРасчетаЗарплаты.Денежный;
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Ложь;
ОписаниеПоказателя.СпособПримененияЗначений = Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное;
ОписаниеПоказателя.Точность = ПараметрыПоказателей.ОкладТарифЧасовойТочность;
ОписаниеПоказателя.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.ЧасоваяТарифнаяСтавка;
ОписаниеПоказателя.НачальнаяНастройка = ПараметрыПланаВидовРасчета.НачальнаяНастройкаПрограммы;
ЗаписатьПоказатель(ОписаниеПоказателя);
Иначе
ОтключитьИспользованиеПредопределенногоЭлемента("ЧасовойТарифПоДолжности");
КонецЕсли;
КонецПроцедуры
Функция СоздатьПоказательТарифПростоя()
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ТарифПростоя";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Тариф простоя'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Тариф простоя'");
ОписаниеПоказателя.Точность = 3;
Возврат ЗаписатьПоказатель(ОписаниеПоказателя);
КонецФункции
Процедура СформироватьИдентификаторИКраткоеНаименованиеНадбавки(Надбавки, Надбавка, ИдентификаторыНадбавок, Идентификатор, КраткоеНаименование)
ИдентификаторИКраткоеНаименованиеПоТекстовойСтроке(Идентификатор,КраткоеНаименование,Надбавка);
ИдентификаторыНадбавок.Добавить(Идентификатор);
КонецПроцедуры
Процедура ИдентификаторИКраткоеНаименованиеПоТекстовойСтроке(Идентификатор,КраткоеНаименование,ТекстоваяСтрока)
СтрокаГласных = "а,е,ё,и,о,у,ы,э,ю,я";
МассивГласных = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаГласных, ",");
Слова = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ТекстоваяСтрока, " ");
НовыйИдентификатор = "";
Для каждого Слово Из Слова Цикл
НовыйИдентификатор = НовыйИдентификатор + Врег(Лев(Слово,1)) + Сред(Слово,2);
КонецЦикла;
Для Позиция = 1 По СтрДлина(НовыйИдентификатор) Цикл
Если Не СтроковыеФункцииКлиентСервер.ЭтоРазделительСлов(КодСимвола(НовыйИдентификатор, Позиция)) Тогда
Идентификатор = Идентификатор + Сред(НовыйИдентификатор,Позиция,1)
КонецЕсли;
КонецЦикла;
ТекстСтр = Нрег(ТекстоваяСтрока);
ДлинаСлова = СтрДлина(ТекстСтр);
Если ДлинаСлова <= 4 Тогда
КраткоеНаименование = КраткоеНаименование + ТекстСтр;
Иначе
Для каждого Слово Из Слова Цикл
Если СтрДлина(Слово) <= 4 Тогда
КраткоеНаименование = КраткоеНаименование + " "+ Слово;
Иначе
КраткоеНаименование = КраткоеНаименование + " " + Лев(Слово,3);
ОстатокСлова = Сред(Слово,4);
ДлинаСлова = СтрДлина(ОстатокСлова);
ГласнаяБуква = Ложь;
Для СчБукв = 1 По ДлинаСлова Цикл
Буква = Сред(ОстатокСлова,СчБукв,1);
ГласнаяБуква = МассивГласных.Найти(Буква) <> Неопределено;
Если ГласнаяБуква Тогда
КраткоеНаименование = КраткоеНаименование + ".";
Прервать;
Иначе
КраткоеНаименование = КраткоеНаименование + Буква;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура ОбновитьПоказателиПредопределенныхСпособовРасчета()
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаПоказателей.СпособРасчета,
| ТаблицаПоказателей.Показатель
|ПОМЕСТИТЬ ВТТаблицаПоказателей
|ИЗ
| &ТаблицаПоказателей КАК ТаблицаПоказателей
|;
|
|
|ВЫБРАТЬ
| Начисления.Ссылка КАК ВидРасчета,
| ТаблицаПоказателей.Показатель
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТТаблицаПоказателей КАК ТаблицаПоказателей
| ПО (ТаблицаПоказателей.СпособРасчета = Начисления.СпособРасчета)
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления.Показатели КАК ПоказателиНачислений
| ПО Начисления.Ссылка = ПоказателиНачислений.Ссылка
| И (ТаблицаПоказателей.Показатель = ПоказателиНачислений.Показатель)
|ГДЕ
| ПоказателиНачислений.Показатель ЕСТЬ NULL
|
|УПОРЯДОЧИТЬ ПО
| Начисления.Ссылка";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ТаблицаПоказателей", РасчетЗарплатыРасширенный.ТаблицаПоказателейПредопределенныхСпособовРасчета());
Выборка = Запрос.Выполнить().Выбрать();
ВидыРасчетаДляЗаписи = Новый Массив;
Пока Выборка.СледующийПоЗначениюПоля("ВидРасчета") Цикл
ВидРасчетаОбъект = Выборка.ВидРасчета.ПолучитьОбъект();
Пока Выборка.Следующий() Цикл
НоваяСтрока = ВидРасчетаОбъект.Показатели.Добавить();
НоваяСтрока.Показатель = Выборка.Показатель;
НоваяСтрока.ИспользоватьПриРасчете = Истина;
КонецЦикла;
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОПоказателяхВидаРасчета(ВидРасчетаОбъект);
РасчетЗарплатыРасширенный.ЗаполнитьИнформациюОбУчетеВремени(ВидРасчетаОбъект);
ВидыРасчетаДляЗаписи.Добавить(ВидРасчетаОбъект);
КонецЦикла;
РасчетЗарплатыРасширенный.ЗаписатьПакетВидовРасчета(ВидыРасчетаДляЗаписи);
КонецПроцедуры
#Область ОбновлениеИнформационнойБазы
Функция СоздатьПоказательУчитыватьМРОТ(ПараметрыОбновления = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "УчитыватьМРОТ";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Учитывать МРОТ'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Учитывать МРОТ'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Истина;
ОписаниеПоказателя.ДопускаетсяНулевоеЗначение = Истина;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецФункции
Процедура СоздатьПоказательНормаДнейЧасов(ПараметрыОбновления = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "НормаДнейЧасов";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Норма дней (или часов)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Норма дней (часов)'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ОписаниеПоказателя.Точность = 3;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура СоздатьПоказательКалендарныеДниМесяцаБезПраздников(ПараметрыОбновления = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "КалендарныеДниМесяцаБезПраздников";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Календарные дни месяца без праздников'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Кал.дн.(мес) без пр.'");
ОписаниеПоказателя.ОтображатьВДокументахНачисления = Ложь;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура УстановитьТочностьПоказателейРасчетнаяБаза(ПараметрыОбновления = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПоказательРасчетнаяБаза", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РасчетнаяБаза"));
Запрос.УстановитьПараметр("ПоказательРасчетнаяБазаИсполнительногоЛиста", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РасчетнаяБазаИсполнительногоЛиста"));
Запрос.УстановитьПараметр("ПоказательРасчетнаяБазаСтраховыеВзносы", ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РасчетнаяБазаСтраховыеВзносы"));
Запрос.Текст =
"ВЫБРАТЬ
| ПоказателиРасчетаЗарплаты.Ссылка КАК Показатель,
| 2 КАК Точность
|ИЗ
| Справочник.ПоказателиРасчетаЗарплаты КАК ПоказателиРасчетаЗарплаты
|ГДЕ
| ПоказателиРасчетаЗарплаты.Ссылка = &ПоказательРасчетнаяБаза
| И ПоказателиРасчетаЗарплаты.Точность <> 2
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ПоказателиРасчетаЗарплаты.Ссылка,
| 2
|ИЗ
| Справочник.ПоказателиРасчетаЗарплаты КАК ПоказателиРасчетаЗарплаты
|ГДЕ
| ПоказателиРасчетаЗарплаты.Ссылка = &ПоказательРасчетнаяБазаИсполнительногоЛиста
| И ПоказателиРасчетаЗарплаты.Точность <> 2
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ПоказателиРасчетаЗарплаты.Ссылка,
| 2
|ИЗ
| Справочник.ПоказателиРасчетаЗарплаты КАК ПоказателиРасчетаЗарплаты
|ГДЕ
| ПоказателиРасчетаЗарплаты.Ссылка = &ПоказательРасчетнаяБазаСтраховыеВзносы
| И ПоказателиРасчетаЗарплаты.Точность <> 2";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 0 Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(ПараметрыОбновления, "Справочник.ПоказателиРасчетаЗарплаты", "Ссылка", Выборка.Показатель) Тогда
Продолжить;
КонецЕсли;
Объект = Выборка.Показатель.ПолучитьОбъект();
Объект.Точность = Выборка.Точность;
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
КонецПроцедуры
Процедура СоздатьПоказателиИндексируемогоНеиндексируемогоСреднегоЗаработка(ПараметрыОбновления = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокИндексируемый";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок (индексируемый)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. заработок инд.'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокНеиндексируемый";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок (неиндексируемый)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. заработок неинд.'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура СоздатьПоказательСтоимостьДняЧасаСУчетомРазовыхНачислений(ПараметрыОбновления = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СтоимостьДняЧасаСУчетомРазовыхНачислений";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Стоимость дня(часа) с учетом разовых начислений'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Стоимость дня(часа) с учетом разовых начислений'");
ОписаниеПоказателя.Точность = 5;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура СоздатьПоказательСреднемесячноеКоличествоЧасов(ПараметрыОбновления = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднемесячноеКоличествоЧасов";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Среднемесячное количество часов'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Сред. колич. часов'");
ОписаниеПоказателя.Точность = 3;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура СоздатьПоказателиСреднегоЗаработкаРКиСН(ПараметрыОбновления = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокРК";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок (РК)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. заработок РК'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокСН";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок (СН)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. заработок СН'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокИндексируемыйРК";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок инд. (РК)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. зараб. инд. РК'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокИндексируемыйСН";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок инд. (СН)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. зараб. инд. СН'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокНеиндексируемыйРК";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок неинд. (РК)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. зар. неинд. РК'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "СреднийЗаработокНеиндексируемыйСН";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Средний заработок неинд. (СН)'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Ср. зар. неинд. СН'");
ОписаниеПоказателя.Точность = 2;
ЗаписатьПоказатель(ОписаниеПоказателя);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
Процедура СоздатьПоказательИсчисленныйНДФЛРасчетнойБазыУдержания(ПараметрыОбновления = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "ИсчисленныйНДФЛРасчетнойБазыУдержания";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Исчисленный НДФЛ расчетной базы удержания'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'НДФЛ'");
ЗаписатьПоказатель(ОписаниеПоказателя);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
КонецПроцедуры
#КонецОбласти
Функция СоздатьПоказательКоличествоДнейЧасовКомпенсацииОтгулов(ПараметрыОбновления = Неопределено) Экспорт
ОписаниеПоказателя = ОписаниеПоказателя();
ОписаниеПоказателя.Идентификатор = "КоличествоДнейЧасовКомпенсацииОтгулов";
ОписаниеПоказателя.Наименование = НСтр("ru = 'Количество дней/часов компенсации отгулов'");
ОписаниеПоказателя.КраткоеНаименование = НСтр("ru = 'Дн./час. комп.'");
ОписаниеПоказателя.ЗначениеРассчитываетсяАвтоматически = Истина;
Результат = ЗаписатьПоказатель(ОписаниеПоказателя);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецЕсли