Тарификационные списки работников для конфигурации Зарплата и кадры государственного учреждения 3. Группировки: Подразделение, Тарификационная группа (реквизит должности), Сотрудник.
Основные отличия от типового отчета заключаться:
- Различные колонки
- Расчет стажа рассчитывается для физического лица и учитывается только мед. стаж
- Надбавка за стаж рассчитывается относительно выбранного показателя в заголовке отчета
Отчет проверялся на конфигурация «1С:Зарплата и кадры государственного учреждения» ред. 3.1 (3.1.6.6), платформа 8.3.10.2667.
Для работы отчета нужно добавить общий модуль ВКТ_Стаж с функциями
Функция ВКТ_ПродолжительностьСтажа(ФизическоеЛицо, ДатаАктуальности) Экспорт
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| СтажиФизическихЛицСрезПоследних.Период КАК Период,
| СтажиФизическихЛицСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
| СтажиФизическихЛицСрезПоследних.ВидСтажа КАК ВидСтажа,
| СтажиФизическихЛицСрезПоследних.ДатаОтсчета КАК ДатаОтсчета,
| СтажиФизическихЛицСрезПоследних.РазмерМесяцев КАК РазмерМесяцев,
| СтажиФизическихЛицСрезПоследних.РазмерДней КАК РазмерДней,
| СтажиФизическихЛицСрезПоследних.ИсчисляетсяСДатыПриема КАК ИсчисляетсяСДатыПриема,
| СтажиФизическихЛицСрезПоследних.Прерван КАК Прерван,
| ВЫБОР
| КОГДА (ВЫРАЗИТЬ(СтажиФизическихЛицСрезПоследних.РазмерМесяцев / 12 КАК ЧИСЛО(15, 0))) > СтажиФизическихЛицСрезПоследних.РазмерМесяцев
| ТОГДА (ВЫРАЗИТЬ(СтажиФизическихЛицСрезПоследних.РазмерМесяцев / 12 КАК ЧИСЛО(15, 0))) - 1
| ИНАЧЕ ВЫРАЗИТЬ(СтажиФизическихЛицСрезПоследних.РазмерМесяцев / 12 КАК ЧИСЛО(15, 0))
| КОНЕЦ КАК Лет
|ИЗ
| РегистрСведений.СтажиФизическихЛиц.СрезПоследних(
| &ДатаАктуальности,
| ФизическоеЛицо = &ФизическоеЛицо
| И ВидСтажа = &ВидСтажа) КАК СтажиФизическихЛицСрезПоследних";
Запрос.УстановитьПараметр("ДатаАктуальности", ДатаАктуальности);
Запрос.УстановитьПараметр("ФизическоеЛицо", ФизическоеЛицо);
Запрос.УстановитьПараметр("ВидСтажа", Справочники.ВидыСтажа.НайтиПоКоду("000000009"));
Ответ = Запрос.Выполнить().Выгрузить();
ДанныеСтажа = ЗарплатаКадрыРасширенныйКлиентСервер.СведенияОСтаже();
Для Каждого СТР Из Ответ Цикл
ДанныеСтажа.ДатаОтсчета = СТР.ДатаОтсчета;
ДанныеСтажа.ИсчисляетсяСДатыПриема = СТР.ИсчисляетсяСДатыПриема;
ДанныеСтажа.Лет = СТР.Лет;
ДанныеСтажа.Месяцев = СТР.РазмерМесяцев - СТР.Лет*12;
ДанныеСтажа.Дней = СТР.РазмерДней;
ДанныеСтажа.Прерван = СТР.Прерван;
КонецЦикла;
ПродолжительностьСтажа = ЗарплатаКадрыРасширенныйКлиентСервер.ПродолжительностьСтажа(ДанныеСтажа, ДатаАктуальности);
Подсказка = ПредставлениеПодсказкиСтажа(ДанныеСтажа, ДатаАктуальности, ПродолжительностьСтажа);
Возврат Подсказка
КонецФункции
Функция ПредставлениеПодсказкиСтажа(ДанныеСтажа, ДатаСведений, ПродолжительностьСтажа)
ПредставлениеСтажа = ЗарплатаКадрыРасширенныйКлиентСервер.ПредставлениеСтажа(
ПродолжительностьСтажа.Лет, ПродолжительностьСтажа.Месяцев, ПродолжительностьСтажа.Дней);
ТекстПодсказки = НСтр("ru = '%2'");
ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстПодсказки , Формат(ДатаСведений, "ДЛФ=Д"), ПредставлениеСтажа);
Возврат ТекстПодсказки;
КонецФункции