Добрый день, коллеги!
Представляю Вашему вниманию один из вариантов унифицированной формы Т-2, широко используемой кадровыми специалистами в типовой конфигурации Зарплата и управление персоналом. Данная статья представляет собой доработку типовой конфигурации Зарплата и Управление Персоналом.
Многие пользовались типовым отчетом УнифицированнаяФормаТ-2 в ЗУПе, и большинство кадровых работников сталкивалось и продолжает сталкиваться со сложностью настройки отчета на СКД. Также поискав в интернете и не обнаружив готовых решений формы с наличием фото сотрудника на первой странице, возникла необходимость ее модификации. Таким образом типовой отчет был переработан в печатную форму, открывающуюся из формы элемента справочника СотрудникиОрганизации.
Для работы кода, необходимо предварительно скопировать макет печатной формы Т2_от_5_1_2004 из типового отчета. Фото реализовано в виде элемента с типом Рисунок с именем ФотоНаПропуск. На форме элемента справочника СотрудникиОрганизаций создается кнопка с действием ОсновныеДействияФормыДействиеФормаТ2.
Код модуля формы элемента справочника СотрудникиОрганизации:
Процедура ОсновныеДействияФормыДействиеФормаТ2(Кнопка)
Отказ = Ложь;
Если Модифицированность() Тогда
Если Вопрос("Данные сотрудника еще не записаны! Записать?", РежимДиалогаВопрос.ОКОтмена,, КодВозвратаДиалога.ОК,) = КодВозвратаДиалога.ОК Тогда
Отказ = Не ЗаписатьВФорме();
Иначе
Возврат
КонецЕсли;
КонецЕсли;
Если Не Отказ Тогда
ФормаТ2();
КонецЕсли;
КонецПроцедуры
Код модуля объекта справочника СотрудникиОрганизации:
Функция ФормаТ2(ТабДокумент = Неопределено) Экспорт
Если ТабДокумент = Неопределено Тогда
ТабДокумент = Новый ТабличныйДокумент;
ВыводитьНаПечать = Истина;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ДатаАктуальности=КонецДня(ТекущаяДата());
Запрос.УстановитьПараметр("ДатаАктуальности", ДатаАктуальности);
Запрос.УстановитьПараметр("Физлицо", Физлицо);
Запрос.УстановитьПараметр("Сотрудник", Ссылка);
СписокОфицерскихЗваний = Новый Массив;
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.МладшийЛейтенант);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.Лейтенант);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.СтаршийЛейтенант);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.Капитан);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.Майор);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.Подполковник);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.Полковник);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.ГенералМайор);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.ГенералЛейтенант);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.ГенералПолковник);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.ГенералАрмии);
СписокОфицерскихЗваний.Добавить(Справочники.ЗваниеГражданскогоВоинскогоУчета.МаршалРоссийскойФедерации);
Запрос.УстановитьПараметр("Офицеры", СписокОфицерскихЗваний);
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Справочники.ПоказателиСхемМотивации.ТарифнаяСтавкаДневная);
СписокЗначений.Добавить(Справочники.ПоказателиСхемМотивации.ТарифнаяСтавкаМесячная);
СписокЗначений.Добавить(Справочники.ПоказателиСхемМотивации.ТарифнаяСтавкаЧасовая);
Запрос.УстановитьПараметр("ТарифнаяСтавкаОклад", СписокЗначений);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВЫБОР
| КОГДА СотрудникиОрганизаций.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
| ТОГДА ""Основная""
| ИНАЧЕ ""По совместительству""
| КОНЕЦ КАК ВидРаботы,
| СотрудникиОрганизаций.Код КАК ТабельныйНомер,
| СотрудникиОрганизаций.НомерДоговора КАК ТрудовойДоговорНомер,
| СотрудникиОрганизаций.ДатаДоговора КАК ТрудовойДоговорДата,
| СотрудникиОрганизаций.Физлицо.Наименование КАК Представление,
| СотрудникиОрганизаций.Физлицо.ДатаРождения КАК ДатаРождения,
| СотрудникиОрганизаций.Физлицо.МестоРождения КАК МестоРождения,
| СотрудникиОрганизаций.Физлицо.МестоРожденияКодПоОКАТО КАК МестоРожденияКодПоОКАТО,
| СотрудникиОрганизаций.Физлицо.Пол КАК Пол,
| СотрудникиОрганизаций.Физлицо.ИНН КАК ИНН,
| СотрудникиОрганизаций.Физлицо.СтраховойНомерПФР КАК СтраховойНомерПФР,
| ФИОФизЛицСрезПоследних.Фамилия,
| ФИОФизЛицСрезПоследних.Имя,
| ФИОФизЛицСрезПоследних.Отчество,
| ВЫБОР
| КОГДА ЕСТЬNULL(ГражданствоФизЛицСрезПоследних.Страна, ЗНАЧЕНИЕ(Справочник.КлассификаторСтранМира.Россия)) = ЗНАЧЕНИЕ(Справочник.КлассификаторСтранМира.Россия)
| ТОГДА ""Гражданин Российской Федерации""
| КОГДА ГражданствоФизЛицСрезПоследних.Страна = ЗНАЧЕНИЕ(Справочник.КлассификаторСтранМира.ПустаяССылка)
| ТОГДА ""Гражданин Российской Федерации""
| КОГДА ГражданствоФизЛицСрезПоследних.Страна = ЗНАЧЕНИЕ(Справочник.КлассификаторСтранМира.ЛицоБезГражданства)
| ТОГДА ""Лицо без гражданства""
| ИНАЧЕ ""Иностранный гражданин""
| КОНЕЦ КАК Гражданство,
| ВЫБОР
| КОГДА ЕСТЬNULL(ГражданствоФизЛицСрезПоследних.Страна, ЗНАЧЕНИЕ(Справочник.КлассификаторСтранМира.Россия)) = ЗНАЧЕНИЕ(Справочник.КлассификаторСтранМира.Россия)
| ТОГДА ""1""
| ИНАЧЕ ""3""
| КОНЕЦ КАК ГражданствоКодПоОКИН,
| СемейноеПоложениеФизЛицСрезПоследних.СемейноеПоложение.Наименование КАК СемейноеПоложение,
| СемейноеПоложениеФизЛицСрезПоследних.СемейноеПоложение.Код КАК СемейноеПоложениеКодПоОКИН,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид.Наименование КАК ВидДокумента,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид КАК ВидДокументаСсылка,
| ВЫРАЗИТЬ(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан КАК СТРОКА(300)) КАК ДокументКемВыдан,
| ЕСТЬNULL(ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КАК ДатаВыдачи,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументКодПодразделения,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
| КонтактнаяИнформацияАдрес.Представление КАК АдресПоПаспорту,
| КонтактнаяИнформацияАдрес1.Представление КАК АдресФактический,
| КонтактнаяИнформацияАдрес.Поле1 КАК ИндексАдресПоПаспорту,
| КонтактнаяИнформацияАдрес1.Поле1 КАК ИндексАдресФактический,
| ПаспортныеДанныеФизЛицСрезПоследних.ДатаРегистрацииПоМестуЖительства,
| КонтактнаяИнформацияТелефон.Представление КАК Телефон,
| ВЫБОР
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности = ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Военнообязанный)
| И (НЕ ВоинскийУчетСрезПоследних.Звание В (&Офицеры))
| ТОГДА ВоинскийУчетСрезПоследних.КатегорияЗапаса
| ИНАЧЕ """"
| КОНЕЦ КАК КатегорияЗапаса,
| ВЫБОР
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности = ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Призывник)
| ТОГДА ""Подлежит призыву""
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности = ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Военнообязанный)
| ТОГДА ВоинскийУчетСрезПоследних.Звание.Наименование
| ИНАЧЕ """"
| КОНЕЦ КАК ВоинскоеЗвание,
| ВЫБОР
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности = ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Военнообязанный)
| ТОГДА ВоинскийУчетСрезПоследних.Состав
| ИНАЧЕ """"
| КОНЕЦ КАК Состав,
| ВЫБОР
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности = ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Военнообязанный)
| ТОГДА ВоинскийУчетСрезПоследних.ВУС
| ИНАЧЕ """"
| КОНЕЦ КАК ВУС,
| ВЫБОР
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности В (ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Призывник), ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Военнообязанный))
| ТОГДА ВоинскийУчетСрезПоследних.Годность
| ИНАЧЕ """"
| КОНЕЦ КАК Годность,
| ВЫБОР
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности В (ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Призывник), ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Военнообязанный))
| ТОГДА ВоинскийУчетСрезПоследних.Военкомат.Наименование
| ИНАЧЕ """"
| КОНЕЦ КАК НаименованиеВоенкомата,
| ВЫБОР
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности = ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Военнообязанный)
| И ВоинскийУчетСрезПоследних.НаличиеМобпредписания
| ТОГДА ВоинскийУчетСрезПоследних.НомерКомандыПартии
| ИНАЧЕ """"
| КОНЕЦ КАК НомерКомандыПартии,
| ВЫБОР
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности = ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Военнообязанный)
| И ВоинскийУчетСрезПоследних.ЗабронированОрганизацией <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
| ТОГДА ""Забронирован "" + ВоинскийУчетСрезПоследних.ЗабронированОрганизацией.Наименование
| ИНАЧЕ """"
| КОНЕЦ КАК ЗабронированОрганизацией,
| ВЫБОР
| КОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскойОбязанности В (ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Призывник), ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскойОбязанности.Военнообязанный))
| И ВоинскийУчетСрезПоследних.ОтношениеКВоинскомуУчету В (ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскомуУчету.СнятПоВозрасту), ЗНАЧЕНИЕ(Перечисление.ОтношениеКВоинскомуУчету.СнятПоСостояниюЗдоровья))
| ТОГДА ВоинскийУчетСрезПоследних.ОтношениеКВоинскомуУчету
| ИНАЧЕ """"
| КОНЕЦ КАК СнятиеСУчета,
| РаботникиОрганизацииСрезПоследних.ОбособленноеПодразделение КАК ОрганизацияПриема,
| РаботникиОрганизацииСрезПоследних.ОбособленноеПодразделение.НаименованиеПолное КАК НаименованиеОрганизации,
| РаботникиОрганизацииСрезПоследних.ОбособленноеПодразделение.КодПоОКПО КАК КодПоОКПО,
| СотрудникиОрганизаций.Ссылка КАК Сотрудник
|ИЗ
| Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| &ДатаАктуальности,
| Сотрудник = &Сотрудник
| И ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)) КАК РаботникиОрганизацииСрезПоследних
| ПО СотрудникиОрганизаций.Ссылка = РаботникиОрганизацииСрезПоследних.Сотрудник
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(&ДатаАктуальности, ФизЛицо =&ФизЛицо) КАК ПаспортныеДанныеФизЛицСрезПоследних
| ПО СотрудникиОрганизаций.Физлицо = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизЛиц.СрезПоследних(&ДатаАктуальности, ФизЛицо =&ФизЛицо) КАК ГражданствоФизЛицСрезПоследних
| ПО СотрудникиОрганизаций.Физлицо = ГражданствоФизЛицСрезПоследних.ФизЛицо
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаАктуальности, ФизЛицо =&ФизЛицо) КАК ФИОФизЛицСрезПоследних
| ПО СотрудникиОрганизаций.Физлицо = ФИОФизЛицСрезПоследних.ФизЛицо
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВоинскийУчет.СрезПоследних(&ДатаАктуальности, ФизЛицо =&ФизЛицо) КАК ВоинскийУчетСрезПоследних
| ПО СотрудникиОрганизаций.Физлицо = ВоинскийУчетСрезПоследних.Физлицо
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СемейноеПоложениеФизЛиц.СрезПоследних(&ДатаАктуальности, ФизЛицо =&ФизЛицо) КАК СемейноеПоложениеФизЛицСрезПоследних
| ПО СотрудникиОрганизаций.Физлицо = СемейноеПоложениеФизЛицСрезПоследних.ФизЛицо
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияАдрес
| ПО СотрудникиОрганизаций.Физлицо = КонтактнаяИнформацияАдрес.Объект
| И (КонтактнаяИнформацияАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
| И (КонтактнаяИнформацияАдрес.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресФизЛица))
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияАдрес1
| ПО СотрудникиОрганизаций.Физлицо = КонтактнаяИнформацияАдрес1.Объект
| И (КонтактнаяИнформацияАдрес1.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
| И (КонтактнаяИнформацияАдрес1.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресФизЛица))
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияТелефон
| ПО СотрудникиОрганизаций.Физлицо = КонтактнаяИнформацияТелефон.Объект
| И (КонтактнаяИнформацияТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
| И (КонтактнаяИнформацияТелефон.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонФизЛица))
|ГДЕ
| СотрудникиОрганизаций.Ссылка = &Сотрудник";
ВыборкаРезультата = Запрос.Выполнить().Выбрать();
ТабДокумент.Очистить();
Макет = ПолучитьМакет("Т2_от_5_1_2004");
ПерваяСтраницаТ2 = Макет.ПолучитьОбласть("ПерваяСтраницаТ2");
ВтораяСтраницаТ2 = Макет.ПолучитьОбласть("ВтораяСтраницаТ2");
ТретьяСтраницаТ2 = Макет.ПолучитьОбласть("ТретьяСтраницаТ2");
ЧетвертаяСтраницаТ2 = Макет.ПолучитьОбласть("ЧетвертаяСтраницаТ2");
// ФОТО
Запрос.Текст =
"ВЫБРАТЬ
| ХранилищеДополнительнойИнформации.Наименование КАК ОписаниеИзображения,
| ХранилищеДополнительнойИнформации.Хранилище КАК Данные
|ИЗ
| Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
| ХранилищеДополнительнойИнформации.Объект = &ФизЛицо";
ВыборкаОсновноеФото = Запрос.Выполнить().Выбрать();
Если ВыборкаОсновноеФото.Следующий() Тогда
ДанныеДляФото = ВыборкаОсновноеФото.Данные;
Если ДанныеДляФото <> Null Тогда
ФотоНаПропуск = ДанныеДляФото.Получить();
Если ФотоНаПропуск <> Неопределено Тогда
ПерваяСтраницаТ2.Рисунки.ФотоНаПропуск.Картинка = ФотоНаПропуск;
КонецЕсли;
КонецЕсли;
КонецЕсли;
// СТАЖИ
ВыводитьДатуСтажа = Ложь;
ВыборкаПоСтажу = ПроведениеРасчетов.ВыбратьСтажиРаботника(Физлицо);
ВыведенПроизвольныйСтаж = Ложь;
Пока ВыборкаПоСтажу.Следующий() Цикл
ДатаНачалаОтсчетаСтажа = ДобавитьМесяц(ВыборкаПоСтажу.ДатаОтсчета, - ВыборкаПоСтажу.РазмерМесяцев) - ВыборкаПоСтажу.РазмерДней*86400;
Лет = 0;
Месяцев = 0;
Дней = 0;
ОбщегоНазначения.РазобратьРазностьДат(ДатаАктуальности, ДатаНачалаОтсчетаСтажа, Лет, Месяцев, Дней);
Если ВыборкаПоСтажу.ВидСтажа = Справочники.ВидыСтажа.НепрерывныйСтаж Тогда
ВтораяСтраницаТ2.Параметры["ДнейСтажа2"] = формат(Дней,"ЧДЦ=0");
ВтораяСтраницаТ2.Параметры["МесяцевСтажа2"] = Месяцев;
ВтораяСтраницаТ2.Параметры["ЛетСтажа2"] = Лет;
ВыводитьДатуСтажа = Истина;
ИначеЕсли ВыборкаПоСтажу.ВидСтажа = Справочники.ВидыСтажа.ОбщийСтаж Тогда
ВтораяСтраницаТ2.Параметры["ДнейСтажа1"] = формат(Дней,"ЧДЦ=0");
ВтораяСтраницаТ2.Параметры["МесяцевСтажа1"] = Месяцев;
ВтораяСтраницаТ2.Параметры["ЛетСтажа1"] = Лет;
ВыводитьДатуСтажа = Истина;
ИначеЕсли ВыборкаПоСтажу.ВидСтажа = Справочники.ВидыСтажа.СтажНаНадбавкуЗаВыслугуЛет Тогда
ВтораяСтраницаТ2.Параметры["ДнейСтажа3"] = формат(Дней,"ЧДЦ=0");
ВтораяСтраницаТ2.Параметры["МесяцевСтажа3"] = Месяцев;
ВтораяСтраницаТ2.Параметры["ЛетСтажа3"] = Лет;
ВыводитьДатуСтажа = Истина;
ИначеЕсли Не ВыведенПроизвольныйСтаж Тогда
ВыведенПроизвольныйСтаж = Истина;
ВтораяСтраницаТ2.Параметры["ДнейСтажа4"] = формат(Дней,"ЧДЦ=0");
ВтораяСтраницаТ2.Параметры["МесяцевСтажа4"] = Месяцев;
ВтораяСтраницаТ2.Параметры["ЛетСтажа4"] = Лет;
ВтораяСтраницаТ2.Параметры["ВидСтажа"] = ВыборкаПоСтажу.ВидСтажа;
ВыводитьДатуСтажа = Истина;
КонецЕсли;
КонецЦикла;
// Дата стажа
Если ВыводитьДатуСтажа И ЗначениеЗаполнено(ДатаАктуальности)Тогда
ВтораяСтраницаТ2.Параметры["ДатаСтажа"] = "8. Стаж работы (по состоянию на " + Формат(ДатаАктуальности, "ДЛФ=DD") + "):"
Иначе
ВтораяСтраницаТ2.Параметры["ДатаСтажа"] = "8. Стаж работы (по состоянию на "" "" _________ 20 г.):"
КонецЕсли;
ВтораяСтраницаТ2.Параметры.НомерДокумента = "№";
Если ВыборкаРезультата.Следующий() тогда
Запрос.УстановитьПараметр("ОрганизацияПриема", ВыборкаРезультата.ОрганизацияПриема);
ПерваяСтраницаТ2.Параметры.Заполнить(ВыборкаРезультата);
ВтораяСтраницаТ2.Параметры.Заполнить(ВыборкаРезультата);
Если ВыборкаРезультата.Фамилия = NULL тогда
ФИО = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ВыборкаРезультата.Представление, " ");
Если ФИО.Количество() > 0 тогда
Фамилия = ФИО[0];
КонецЕсли;
Если ФИО.Количество() > 1 тогда
Имя = ФИО[1];
КонецЕсли;
Если ФИО.Количество() > 2 тогда
Отчество= ФИО[2];
КонецЕсли;
// ФИО
ПерваяСтраницаТ2.Параметры.Фамилия = Фамилия;
ПерваяСтраницаТ2.Параметры.Имя = Имя;
ПерваяСтраницаТ2.Параметры.Отчество = Отчество;
КонецЕсли;
ПерваяСтраницаТ2.Параметры.ПерваяБукваФамилии = Лев(ПерваяСтраницаТ2.Параметры.Фамилия, 1);
МестоРождения = РегламентированнаяОтчетность.ПредставлениеМестаРождения(ВыборкаРезультата.МестоРождения);
ПерваяСтраницаТ2.Параметры.МестоРождения = СтрЗаменить(МестоРождения, "Населенный пункт: ", "");
ПерваяСтраницаТ2.Параметры.ДатаАктуальности = ДатаАктуальности;
// ПАСПОРТ
Если ВыборкаРезультата.ВидДокумента <> Null Тогда
Если ВыборкаРезультата.ВидДокументаСсылка <> Справочники.ДокументыУдостоверяющиеЛичность.ИМНС21 И
ВыборкаРезультата.ВидДокументаСсылка <> Справочники.ДокументыУдостоверяющиеЛичность.ИМНС01 Тогда
ВтораяСтраницаТ2.Параметры.ДатаВыдачи = "";
ВтораяСтраницаТ2.Параметры.ДругойДокумент = ?(ЗначениеЗаполнено(ВыборкаРезультата.ВидДокумента),ВыборкаРезультата.ВидДокумента,"<вид документа не указан>") +
" №" + ?(ЗначениеЗаполнено(ВыборкаРезультата.ДокументНомер),ВыборкаРезультата.ДокументНомер + " ","<номер документа не указан>") + ?(ЗначениеЗаполнено(ВыборкаРезультата.ДокументСерия),ВыборкаРезультата.ДокументСерия,"") + "; выдан: " + ?(ЗначениеЗаполнено(СОКРЛП(ВыборкаРезультата.ДокументКемВыдан)),СОКРЛП(ВыборкаРезультата.ДокументКемВыдан),"<не указано> ") + " "+ Формат(ВыборкаРезультата.ДатаВыдачи,"ДЛФ=DD");
Иначе
ВтораяСтраницаТ2.Параметры.ВидДокумента = " серия " + ?(ЗначениеЗаполнено(ВыборкаРезультата.ДокументСерия),ВыборкаРезультата.ДокументСерия,"") + " № " + ?(ЗначениеЗаполнено(ВыборкаРезультата.ДокументНомер),ВыборкаРезультата.ДокументНомер + " ","");
ВтораяСтраницаТ2.Параметры.ДатаВыдачи = Формат(ВыборкаРезультата.ДатаВыдачи, "ДФ=dd.MM.yyyy");
ВтораяСтраницаТ2.Параметры.КемВыданДокумент = ?(ЗначениеЗаполнено(СОКРЛП(ВыборкаРезультата.ДокументКемВыдан)), СОКРЛП(ВыборкаРезультата.ДокументКемВыдан),"") + ?(ЗначениеЗаполнено(ВыборкаРезультата.ДокументКодПодразделения)," № подразделения " + ВыборкаРезультата.ДокументКодПодразделения,"");
КонецЕсли;
КонецЕсли;
// АДРЕСА
Если ЗначениеЗаполнено(ВыборкаРезультата.ИндексАдресФактический) Тогда
ВтораяСтраницаТ2.Параметры.АдресФактический = СтрЗаменить(ВыборкаРезультата.АдресФактический,ВыборкаРезультата.ИндексАдресФактический + ",","");
КонецЕсли;
Если ЗначениеЗаполнено(ВыборкаРезультата.ИндексАдресПоПаспорту) Тогда
ВтораяСтраницаТ2.Параметры.АдресПоПаспорту = СтрЗаменить(ВыборкаРезультата.АдресПоПаспорту,ВыборкаРезультата.ИндексАдресПоПаспорту + ",","");
КонецЕсли;
// Воинский учет
ВтораяСтраницаТ2.Параметры.КатегорияЗапаса = Лев(ВтораяСтраницаТ2.Параметры.КатегорияЗапаса,1);
ВтораяСтраницаТ2.Параметры.Годность = Лев(ВтораяСтраницаТ2.Параметры.Годность,1);
Иначе
Запрос.УстановитьПараметр("ОрганизацияПриема", Справочники.Организации.ПустаяСсылка());
КонецЕсли;
//ЗНАНИЕ ЯЗЫКА
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ФизическиеЛицаЗнаниеЯзыков.Ссылка КАК ФизЛицо,
| ФизическиеЛицаЗнаниеЯзыков.СтепеньЗнанияЯзыка.Наименование КАК СтепеньЗнанияЯзыка,
| ФизическиеЛицаЗнаниеЯзыков.Язык.Наименование КАК Язык,
| ФизическиеЛицаЗнаниеЯзыков.Язык.Код КАК ЯзыкКодПоОКИН
|ИЗ
| Справочник.ФизическиеЛица.ЗнаниеЯзыков КАК ФизическиеЛицаЗнаниеЯзыков
|ГДЕ
| ФизическиеЛицаЗнаниеЯзыков.Ссылка = &Физлицо
|
|УПОРЯДОЧИТЬ ПО
| ФизическиеЛицаЗнаниеЯзыков.НомерСтроки";
ИностраныйЯзык = Запрос.Выполнить().Выбрать();
ИностраныйЯзык.Сбросить();
инд = 0;
Пока ИностраныйЯзык.НайтиСледующий(физлицо) Цикл
инд = 1 + инд;
ПерваяСтраницаТ2.Параметры["НаименованиеЯзыка"+инд] = ИностраныйЯзык.Язык;
ПерваяСтраницаТ2.Параметры["СтепеньЗнанияЯзыка"+инд] = ИностраныйЯзык.СтепеньЗнанияЯзыка;
ПерваяСтраницаТ2.Параметры["ЯзыкКодПоОКИН"+инд] = ИностраныйЯзык.ЯзыкКодПоОКИН;
Если инд = 2 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
// ОБРАЗОВАНИЕ
СписокПослеВузовскоеОбразование = Новый СписокЗначений;
СписокПослеВузовскоеОбразование.Добавить(Справочники.ВидыОбразованияФизЛиц.АспирантураОрдинатураАдъюнктура);
СписокПослеВузовскоеОбразование.Добавить(Справочники.ВидыОбразованияФизЛиц.Докторантура);
ПослевузовскоеОбразование = Справочники.ВидыОбразованияФизЛиц.НайтиПоНаименованию("Послевузовское образование");
Если ЗначениеЗаполнено(ПослевузовскоеОбразование) Тогда
СписокПослеВузовскоеОбразование.Добавить(ПослевузовскоеОбразование);
КонецЕсли;
Запрос.УстановитьПараметр("СписокПослеВузовскоеОбразование", СписокПослеВузовскоеОбразование);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ФизическиеЛицаОбразование.Ссылка КАК ФизЛицо,
| ФизическиеЛицаОбразование.ВидОбразования.Наименование КАК ВидОбразования,
| ФизическиеЛицаОбразование.Специальность.Наименование КАК Специальность,
| ФизическиеЛицаОбразование.УчебноеЗаведение.Наименование КАК УчебноеЗаведение,
| ВЫБОР
| КОГДА ФизическиеЛицаОбразование.ВидОбразования В (&СписокПослеВузовскоеОбразование)
| ТОГДА 2
| ИНАЧЕ 1
| КОНЕЦ КАК ПорядокОбразования,
| ФизическиеЛицаОбразование.ВидОбразования.Код КАК ОбразованиеКодПоОКИН,
| ФизическиеЛицаОбразование.ГодОкончания,
| ФизическиеЛицаОбразование.Диплом,
| ФизическиеЛицаОбразование.Квалификация,
| ФизическиеЛицаОбразование.Специальность.Код КАК КодПоОКСО
|ИЗ
| Справочник.ФизическиеЛица.Образование КАК ФизическиеЛицаОбразование
|ГДЕ
| ФизическиеЛицаОбразование.Ссылка = &Физлицо
|
|УПОРЯДОЧИТЬ ПО
| ПорядокОбразования";
Образование = Запрос.Выполнить().Выбрать();
Образование.Сбросить();
НомерОбразованияВВУЗЕ = 0;
Пока Образование.НайтиСледующий(физлицо) Цикл
// Для вузовского образования отводится 2 строки
Если (Образование.ПорядокОбразования = 1) тогда
НомерОбразованияВВУЗЕ = НомерОбразованияВВУЗЕ + 1;
Если (НомерОбразованияВВУЗЕ >2 ) Тогда
Продолжить;
КонецЕсли;
Если НомерОбразованияВВУЗЕ = 1 тогда
ПерваяСтраницаТ2.Параметры["Образование1"] = Образование.ВидОбразования;
ПерваяСтраницаТ2.Параметры["ОбразованиеКодПоОКИН1"] = Образование.ОбразованиеКодПоОКИН;
Иначе
ПерваяСтраницаТ2.Параметры["Образование1"] = "" + ПерваяСтраницаТ2.Параметры["Образование1"] + ", " + Образование.ВидОбразования;
КонецЕсли;
ПерваяСтраницаТ2.Параметры["ОбразовательноеУчреждение"+НомерОбразованияВВУЗЕ] = Образование.УчебноеЗаведение;
ПерваяСтраницаТ2.Параметры["ДипломСерияНомер"+НомерОбразованияВВУЗЕ] = Образование.Диплом;
ПерваяСтраницаТ2.Параметры["ГодОкончания"+НомерОбразованияВВУЗЕ] = Формат(Образование.ГодОкончания, "ЧГ=");
ПерваяСтраницаТ2.Параметры["КвалификацияПоДиплому"+НомерОбразованияВВУЗЕ] = Образование.Квалификация;
ПерваяСтраницаТ2.Параметры["СпециальностьПоДиплому"+НомерОбразованияВВУЗЕ] = Образование.Специальность;
ПерваяСтраницаТ2.Параметры["КодПоОКСО"+НомерОбразованияВВУЗЕ] = Образование.КодПоОКСО;
Иначе// Послевузовское образование
ПерваяСтраницаТ2.Параметры["Образование3"] = Образование.ВидОбразования;
ПерваяСтраницаТ2.Параметры["ОбразованиеКодПоОКИН3"] = Образование.ОбразованиеКодПоОКИН;
ПерваяСтраницаТ2.Параметры["ОбразовательноеУчреждение3"] = Образование.УчебноеЗаведение;
ПерваяСтраницаТ2.Параметры["ДипломСерияНомер3"] = Образование.Диплом;
ПерваяСтраницаТ2.Параметры["ГодОкончания3"] = Формат(Образование.ГодОкончания, "ЧГ=");
ПерваяСтраницаТ2.Параметры["СпециальностьПоДиплому3"] = Образование.Специальность;
ПерваяСтраницаТ2.Параметры["КодПоОКСО3"] = Образование.КодПоОКСО;
// Вывод сведений об образовании на этом заканчивается
Прервать;
КонецЕсли;
КонецЦикла;
// СОСТАВ СЕМЬИ
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ФизическиеЛицаСоставСемьи.Ссылка КАК ФизЛицо,
| ФизическиеЛицаСоставСемьи.Имя КАК Родственник,
| ФизическиеЛицаСоставСемьи.СтепеньРодства.Наименование КАК СтепеньРодства,
| ФизическиеЛицаСоставСемьи.ДатаРождения
|ИЗ
| Справочник.ФизическиеЛица.СоставСемьи КАК ФизическиеЛицаСоставСемьи
|ГДЕ
| ФизическиеЛицаСоставСемьи.Ссылка = &Физлицо";
СоставСемьи = Запрос.Выполнить().Выбрать();
СоставСемьи.Сбросить();
инд = 0;
Пока СоставСемьи.НайтиСледующий(ФизЛицо) Цикл
инд = 1 + инд;
Если инд >= 7 тогда
Прервать;
КонецЕсли;
ВтораяСтраницаТ2.Параметры["СтепеньРодства"+инд] = СоставСемьи.СтепеньРодства;
ВтораяСтраницаТ2.Параметры["ФИОРодственника"+инд] = СоставСемьи.Родственник;
ВтораяСтраницаТ2.Параметры["ГодРожденияРодственника"+инд] = Формат(СоставСемьи.ДатаРождения, "ДФ=yyyy");
КонецЦикла;
// Профессии
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ФизическиеЛицаПрофессии.Ссылка КАК ФизЛицо,
| ФизическиеЛицаПрофессии.Профессия.Код КАК КодПоОКПДТР,
| ФизическиеЛицаПрофессии.Профессия.Наименование КАК Профессия
|ИЗ
| Справочник.ФизическиеЛица.Профессии КАК ФизическиеЛицаПрофессии
|ГДЕ
| ФизическиеЛицаПрофессии.Ссылка В (&Физлицо)
|
|УПОРЯДОЧИТЬ ПО
| ФизическиеЛицаПрофессии.НомерСтроки";
Профессии = Запрос.Выполнить().Выбрать();
инд = 0;
Профессии.Сбросить();
Пока Профессии.НайтиСледующий(физлицо) И Инд <= 1 Цикл
инд = 1 + инд;
ПерваяСтраницаТ2.Параметры["Профессия"+инд] = Профессии.Профессия;
ПерваяСтраницаТ2.Параметры["КодПоОКПДТР"+инд] = Профессии.КодПоОКПДТР;
КонецЦикла;
// ОТПУСКА
СписокОтпусков = Новый Массив;
СписокОтпусков.Добавить(Перечисления.СостоянияРаботникаОрганизации.ОтпускЕжегодный);
СписокОтпусков.Добавить(Перечисления.СостоянияРаботникаОрганизации.ОтпускБезСохраненияЗарплаты);
СписокОтпусков.Добавить(Перечисления.СостоянияРаботникаОрганизации.ОтпускУчебный);
СписокОтпусков.Добавить(Перечисления.СостоянияРаботникаОрганизации.ОтпускУчебныйНеоплачиваемый);
СписокОтпусков.Добавить(Перечисления.СостоянияРаботникаОрганизации.ОтпускПоУходуЗаРебенком);
Запрос.УстановитьПараметр("СписокОтпусков", СписокОтпусков);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ОтпускаРаботника.ДатаС КАК ДатаС,
| ОтпускаРаботника.ДатаПо КАК ДатаПо,
| ВЫБОР
| КОГДА ОтпускаРаботника.ПричинаОтсутствия = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускЕжегодный)
| ТОГДА ""Ежегодный""
| КОГДА ОтпускаРаботника.ПричинаОтсутствия = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускБезСохраненияЗарплаты)
| ТОГДА ""Без сохранения заработной платы""
| КОГДА ОтпускаРаботника.ПричинаОтсутствия = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускУчебный)
| ТОГДА ""Учебный оплачиваемый""
| КОГДА ОтпускаРаботника.ПричинаОтсутствия = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускУчебныйНеоплачиваемый)
| ТОГДА ""Учебный неоплачиваемый""
| КОГДА ОтпускаРаботника.ПричинаОтсутствия = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускПоУходуЗаРебенком)
| ТОГДА ""По уходу за ребенком""
| ИНАЧЕ """"
| КОНЕЦ КАК ПричинаОтсутствия,
| ОтпускаРаботника.ДополнительныйОтпуск,
| ОтпускаРаботника.ДатаНачалаДоп,
| ОтпускаРаботника.ДатаОкончанияДоп,
| ОтпускаРаботника.Регистратор,
| ОтпускаРаботника.ДатаПриказа,
| ОтпускаРаботника.НомерПриказа,
| ОтпускаРаботника.Продолжительность,
| ОтпускаРаботника.ПродолжительностьДоп,
| ОтпускаОрганизацийРаботникиОрганизации.РабочийГодС КАК РабочийГодС,
| ОтпускаОрганизацийРаботникиОрганизации.РабочийГодПо КАК РабочийГодПо,
| ОтпускаОрганизацийРаботникиОрганизации.Основание КАК Основание,
| ОтпускаРаботника.Сотрудник КАК Сотрудник
|ИЗ
| (ВЫБРАТЬ
| ОтпускаРаботника.ДатаС КАК ДатаС,
| ОтпускаРаботника.ДатаПо КАК ДатаПо,
| ОтпускаРаботника.ПричинаОтсутствия КАК ПричинаОтсутствия,
| ОтпускаРаботника.ДополнительныйОтпуск КАК ДополнительныйОтпуск,
| ОтпускаРаботника.ДатаНачалаДоп КАК ДатаНачалаДоп,
| ОтпускаРаботника.ДатаОкончанияДоп КАК ДатаОкончанияДоп,
| ОтпускаРаботника.Регистратор КАК Регистратор,
| ОтпускаРаботника.ДатаПриказа КАК ДатаПриказа,
| ОтпускаРаботника.НомерСтроки КАК НомерСтроки,
| ОтпускаРаботника.НомерПриказа КАК НомерПриказа,
| ВЫБОР
| КОГДА ОтпускаРаботника.ПричинаОтсутствия <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускЕжегодный)
| ТОГДА РАЗНОСТЬДАТ(ОтпускаРаботника.ДатаС, ОтпускаРаботника.ДатаПо, ДЕНЬ) + 1
| ИНАЧЕ ЕСТЬNULL(СУММА(ВЫБОР
| КОГДА РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ ОтпускаРаботника.ДатаС И ОтпускаРаботника.ДатаПо
| ТОГДА РегламентированныйПроизводственныйКалендарь.КалендарныеДни
| ИНАЧЕ 0
| КОНЕЦ), 0)
| КОНЕЦ КАК Продолжительность,
| ВЫБОР
| КОГДА ОтпускаРаботника.ПричинаОтсутствия <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускЕжегодный)
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(СУММА(ВЫБОР
| КОГДА РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ ОтпускаРаботника.ДатаНачалаДоп И ОтпускаРаботника.ДатаОкончанияДоп
| ТОГДА РегламентированныйПроизводственныйКалендарь.КалендарныеДни
| ИНАЧЕ 0
| КОНЕЦ), 0)
| КОНЕЦ КАК ПродолжительностьДоп,
| ОтпускаРаботника.Сотрудник КАК Сотрудник
| ИЗ
| (ВЫБРАТЬ
| ПериодыОтпуска.ДатаС КАК ДатаС,
| ВЫБОР
| КОГДА ПериодыОтпуска.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускЕжегодный)
| ТОГДА ВЫБОР
| КОГДА ОтпускаОрганизацииРаботники.ДатаНачалаДоп = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА ПериодыОтпуска.ДатаПо
| ИНАЧЕ ВЫБОР
| КОГДА ПериодыОтпуска.ДатаПо < ОтпускаОрганизацииРаботники.ДатаНачалаДоп
| ТОГДА ПериодыОтпуска.ДатаПо
| ИНАЧЕ ДОБАВИТЬКДАТЕ(ОтпускаОрганизацииРаботники.ДатаНачалаДоп, ДЕНЬ, -1)
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ ПериодыОтпуска.ДатаПо
| КОНЕЦ КАК ДатаПо,
| ПериодыОтпуска.Состояние КАК ПричинаОтсутствия,
| ОтпускаОрганизацииРаботники.ВидДополнительногоОтпуска.Наименование КАК ДополнительныйОтпуск,
| ОтпускаОрганизацииРаботники.ДатаНачалаДоп КАК ДатаНачалаДоп,
| ВЫБОР
| КОГДА ОтпускаОрганизацииРаботники.ДатаНачалаДоп = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ИНАЧЕ ПериодыОтпуска.ДатаПо
| КОНЕЦ КАК ДатаОкончанияДоп,
| ОтпускаОрганизацииРаботники.НомерСтроки КАК НомерСтроки,
| ПериодыОтпуска.Регистратор КАК Регистратор,
| ПериодыОтпуска.Сотрудник КАК Сотрудник,
| ПериодыОтпуска.Регистратор.Дата КАК ДатаПриказа,
| ПериодыОтпуска.Регистратор.Номер КАК НомерПриказа
| ИЗ
| (ВЫБРАТЬ
| ДатыУходаВОтпуск.Период КАК ДатаС,
| ДОБАВИТЬКДАТЕ(ВЫБОР
| КОГДА ДатыУходаВОтпуск.ПериодЗавершения >= МИНИМУМ(ДатыВозвращенияИзОтпуска.Период)
| ИЛИ ДатыУходаВОтпуск.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА МИНИМУМ(ДатыВозвращенияИзОтпуска.Период)
| ИНАЧЕ ДатыУходаВОтпуск.ПериодЗавершения
| КОНЕЦ, ДЕНЬ, -1) КАК ДатаПо,
| ДатыУходаВОтпуск.ПервичныйДокумент КАК Регистратор,
| ДатыУходаВОтпуск.Сотрудник КАК Сотрудник,
| ДатыУходаВОтпуск.Состояние КАК Состояние
| ИЗ
| РегистрСведений.СостояниеРаботниковОрганизаций КАК ДатыУходаВОтпуск
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций КАК ДатыВозвращенияИзОтпуска
| ПО ДатыУходаВОтпуск.Период < ДатыВозвращенияИзОтпуска.Период
| И ДатыУходаВОтпуск.Сотрудник = ДатыВозвращенияИзОтпуска.Сотрудник
| ГДЕ
| ДатыУходаВОтпуск.Период <= &ДатаАктуальности
| И ДатыУходаВОтпуск.Состояние В(&СписокОтпусков)
| И ДатыУходаВОтпуск.Сотрудник В(&Сотрудник)
|
| СГРУППИРОВАТЬ ПО
| ДатыУходаВОтпуск.Период,
| ДатыУходаВОтпуск.ПериодЗавершения,
| ДатыУходаВОтпуск.ПервичныйДокумент,
| ДатыУходаВОтпуск.Сотрудник,
| ДатыУходаВОтпуск.Состояние) КАК ПериодыОтпуска
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ОтпускаОрганизацииРаботники
| ПО ПериодыОтпуска.ДатаС = ОтпускаОрганизацииРаботники.ДатаНачала
| И ПериодыОтпуска.Регистратор = ОтпускаОрганизацииРаботники.Ссылка
| И ПериодыОтпуска.Сотрудник = ОтпускаОрганизацииРаботники.Сотрудник
| И ((НЕ ОтпускаОрганизацииРаботники.Сторно))) КАК ОтпускаРаботника
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
| ПО (РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ ОтпускаРаботника.ДатаС И ОтпускаРаботника.ДатаПо
| ИЛИ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ ОтпускаРаботника.ДатаНачалаДоп И ОтпускаРаботника.ДатаОкончанияДоп)
| И (РегламентированныйПроизводственныйКалендарь.ВидДня <> ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Праздник))
|
| СГРУППИРОВАТЬ ПО
| ОтпускаРаботника.ДатаС,
| ОтпускаРаботника.ДатаПо,
| ОтпускаРаботника.ПричинаОтсутствия,
| ОтпускаРаботника.ДополнительныйОтпуск,
| ОтпускаРаботника.ДатаНачалаДоп,
| ОтпускаРаботника.ДатаОкончанияДоп,
| ОтпускаРаботника.Регистратор,
| ОтпускаРаботника.ДатаПриказа,
| ОтпускаРаботника.НомерСтроки,
| ОтпускаРаботника.НомерПриказа,
| ОтпускаРаботника.Сотрудник) КАК ОтпускаРаботника
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ОтпускаОрганизацийРаботникиОрганизации
| ПО ОтпускаРаботника.Регистратор = ОтпускаОрганизацийРаботникиОрганизации.Ссылка
| И ОтпускаРаботника.НомерСтроки = ОтпускаОрганизацийРаботникиОрганизации.НомерСтроки
| И ((НЕ ОтпускаОрганизацийРаботникиОрганизации.Сторно))
|
|УПОРЯДОЧИТЬ ПО
| Сотрудник,
| ДатаС,
| ДатаПо";
Отпуска = Запрос.Выполнить().Выбрать();
ПоместилисьВсеОтпуска = Истина;
ВывестиТолькоДопОтпуск = Ложь;
инд = 0;
Отпуска.Сбросить();
Пока Отпуска.НайтиСледующий(ссылка) Цикл
Если инд >= 14 Тогда
ПоместилисьВсеОтпуска = ложь;
Прервать
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Отпуска.ДатаНачалаДоп) или Отпуска.ДатаС < Отпуска.ДатаНачалаДоп Тогда
инд = инд + 1;
// Вид отпуска
ЧетвертаяСтраницаТ2.Параметры["ВидОтпуска"+инд] = Отпуска.ПричинаОтсутствия;
// Период отпуска
ЧетвертаяСтраницаТ2.Параметры["ДатаС"+инд] = Отпуска.ДатаС;
ЧетвертаяСтраницаТ2.Параметры["ДатаПо"+инд] = Отпуска.ДатаПо;
ЧетвертаяСтраницаТ2.Параметры["ДнейОтпуска"+инд] = Отпуска.Продолжительность;
ЧетвертаяСтраницаТ2.Параметры["РабочийГодС"+инд] = Отпуска.РабочийГодС;
ЧетвертаяСтраницаТ2.Параметры["РабочийГодПо"+инд] = Отпуска.РабочийГодПо;
ЧетвертаяСтраницаТ2.Параметры["ОснованиеОтпуска"+инд] = "Пр.№ "+ СокрЛП(Отпуска.НомерПриказа) +" от " + Формат(Отпуска.ДатаПриказа, "ДФ=dd.MM.yyyy") + " " + Отпуска.Основание;
КонецЕсли;
Если ЗначениеЗаполнено(Отпуска.ДополнительныйОтпуск) и ЗначениеЗаполнено(Отпуска.ДатаНачалаДоп) и ЗначениеЗаполнено(Отпуска.ДатаОкончанияДоп) и Отпуска.ДатаНачалаДоп <= Отпуска.ДатаОкончанияДоп Тогда
инд = инд + 1;
Если инд >= 14 Тогда
ПоместилисьВсеОтпуска = ложь;
ВывестиТолькоДопОтпуск = Истина;
Прервать
КонецЕсли;
// Вид отпуска
ЧетвертаяСтраницаТ2.Параметры["ВидОтпуска"+инд] = Отпуска.ДополнительныйОтпуск;
// Период отпуска
ЧетвертаяСтраницаТ2.Параметры["ДатаС"+инд] = Отпуска.ДатаНачалаДоп;
ЧетвертаяСтраницаТ2.Параметры["ДатаПо"+инд] = Отпуска.ДатаОкончанияДоп;
ЧетвертаяСтраницаТ2.Параметры["ДнейОтпуска"+инд] = Отпуска.ПродолжительностьДоп;
ЧетвертаяСтраницаТ2.Параметры["РабочийГодС"+инд] = Отпуска.РабочийГодС;
ЧетвертаяСтраницаТ2.Параметры["РабочийГодПо"+инд] = Отпуска.РабочийГодПо;
ЧетвертаяСтраницаТ2.Параметры["ОснованиеОтпуска"+инд] = "Пр.№ "+ СокрЛП(Отпуска.НомерПриказа) +" от " + Формат(Отпуска.ДатаПриказа, "ДФ=dd.MM.yyyy") + " " + Отпуска.Основание;
КонецЕсли;
КонецЦикла;
// ПРИЕМ И ПЕРЕВОДЫ НА ДРУГУЮ РАБОТУ
РеглВалюта = Константы.ВалютаРегламентированногоУчета.Получить();
Запрос.УстановитьПараметр("РеглВалюта",РеглВалюта);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Работники.Период КАК Период,
| Работники.Сотрудник КАК Сотрудник,
| Работники.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния,
| Работники.Должность.Наименование КАК Должность,
| Работники.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
| ВЫБОР
| КОГДА Работники.ОбособленноеПодразделение = РаботникиОрганизацийСрезПоследних.ОбособленноеПодразделение
| ТОГДА Работники.ПодразделениеОрганизации.Наименование
| ИНАЧЕ Работники.ПодразделениеОрганизации.Наименование + "" ("" + Работники.ОбособленноеПодразделение.Наименование + "")""
| КОНЕЦ КАК ПодразделениеОрганизации,
| Работники.ПервичныйДокумент КАК Регистратор,
| Работники.ПервичныйДокумент.Дата КАК ДатаПриказа,
| Работники.ПервичныйДокумент.Номер КАК НомерПриказа
|ПОМЕСТИТЬ ВТПеремещенияРаботника
|ИЗ
| РегистрСведений.РаботникиОрганизаций КАК Работники
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| &ДатаАктуальности,
| Сотрудник = &Сотрудник
| И ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)) КАК РаботникиОрганизацийСрезПоследних
| ПО Работники.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник
|ГДЕ
| Работники.Сотрудник = &Сотрудник
| И Работники.Период <= &ДатаАктуальности
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| РаботникиОрганизации.ПериодЗавершения,
| РаботникиОрганизации.Сотрудник,
| РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения,
| РаботникиОрганизации.ДолжностьЗавершения.Наименование,
| РаботникиОрганизации.ЗанимаемыхСтавокЗавершения,
| ВЫБОР
| КОГДА РаботникиОрганизации.ОбособленноеПодразделениеЗавершения = РаботникиОрганизацийСрезПоследних.ОбособленноеПодразделение
| ТОГДА РаботникиОрганизации.ПодразделениеОрганизацииЗавершения.Наименование
| ИНАЧЕ РаботникиОрганизации.ПодразделениеОрганизацииЗавершения.Наименование + "" ("" + РаботникиОрганизации.ОбособленноеПодразделениеЗавершения.Наименование + "")""
| КОНЕЦ,
| РаботникиОрганизации.ПервичныйДокумент,
| РаботникиОрганизации.ПервичныйДокумент.Дата,
| РаботникиОрганизации.ПервичныйДокумент.Номер
|ИЗ
| РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизации
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК ПериодыПерекрытия
| ПО (ПериодыПерекрытия.Период <= РаботникиОрганизации.ПериодЗавершения)
| И (ПериодыПерекрытия.Период > РаботникиОрганизации.Период)
| И (ПериодыПерекрытия.Сотрудник = РаботникиОрганизации.Сотрудник)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| &ДатаАктуальности,
| Сотрудник = &Сотрудник
| И ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)) КАК РаботникиОрганизацийСрезПоследних
| ПО РаботникиОрганизации.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник
|ГДЕ
| РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| И РаботникиОрганизации.Сотрудник =&Сотрудник
| И ПериодыПерекрытия.Период ЕСТЬ NULL
| И РаботникиОрганизации.Период <= &ДатаАктуальности
|
|ИНДЕКСИРОВАТЬ ПО
| Период";
Запрос.Выполнить();
//ПеремещенияРаботникаТекст = "ВТПеремещенияРаботника";
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Работники.Сотрудник КАК Сотрудник,
| Работники.Должность КАК Должность,
| Работники.ЗанимаемыхСтавок,
| Работники.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
| ВЫБОР
| КОГДА Работники.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
| ТОГДА ДОБАВИТЬКДАТЕ(Работники.Период, ДЕНЬ, -1)
| ИНАЧЕ Работники.Период
| КОНЕЦ КАК ДатаПеревода,
| Работники.ПричинаИзмененияСостояния,
| Работники.ДатаПриказа КАК ДатаПриказа,
| Работники.НомерПриказа КАК НомерПриказа,
| УвольненияРаботники.СтатьяТКРФ.Наименование КАК ОснованиеУвольнения,
| УвольненияРаботники.ДатаУвольнения,
| УвольненияРаботники.Ссылка.Номер КАК НомерПриказаУвольнения,
| УвольненияРаботники.Ссылка.Дата КАК ДатаПриказаУвольнения,
| ПриемНаРаботуВОрганизациюРаботники.УсловияПриемаНаРаботу КАК ХарактерРаботы,
| ЕСТЬNULL(ПлановыеНачисленияРаботниковОрганизаций.ТребуетВводаТарифногоРазряда, ЛОЖЬ) КАК ТребуетВводаТарифногоРазряда,
| ЕСТЬNULL(ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд.Наименование, """") КАК ТарифныйРазряд,
| ЕСТЬNULL(ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ТребуетВводаТарифногоРазряда
| ТОГДА РазмерыТарифныхРазрядов.Размер
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(ПлановыеНачисленияРаботниковОрганизаций.Размер, 0) = 0
| И ЕСТЬNULL(РазмерыТарифныхРазрядов.Размер, 0) <> 0
| ТОГДА РазмерыТарифныхРазрядов.Размер
| ИНАЧЕ ПлановыеНачисленияРаботниковОрганизаций.Размер
| КОНЕЦ
| КОНЕЦ, 0) КАК ТарифнаяСтавка,
| ЕСТЬNULL(ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ТребуетВводаТарифногоРазряда
| ТОГДА РазмерыТарифныхРазрядов.Валюта.Наименование
| ИНАЧЕ ПлановыеНачисленияРаботниковОрганизаций.Валюта.Наименование
| КОНЕЦ, """") КАК ИмяВалюты,
| ЕСТЬNULL(ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ТребуетВводаТарифногоРазряда
| ТОГДА РазмерыТарифныхРазрядов.Валюта
| ИНАЧЕ ПлановыеНачисленияРаботниковОрганизаций.Валюта
| КОНЕЦ, &РеглВалюта) КАК Валюта
|ИЗ
| ВТПеремещенияРаботника КАК Работники
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.УвольнениеИзОрганизаций.РаботникиОрганизации КАК УвольненияРаботники
| ПО Работники.Сотрудник = УвольненияРаботники.Сотрудник
| И Работники.Регистратор = УвольненияРаботники.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботники
| ПО Работники.Сотрудник = ПриемНаРаботуВОрганизациюРаботники.Сотрудник
| И Работники.Регистратор = ПриемНаРаботуВОрганизациюРаботники.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ВложенныйЗапрос.Сотрудник КАК Сотрудник,
| ВложенныйЗапрос.ДатаПеревода КАК ДатаПеревода,
| ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета.ТребуетВводаТарифногоРазряда КАК ТребуетВводаТарифногоРазряда,
| ПлановыеНачисленияРаботниковОрганизаций.Валюта1 КАК Валюта,
| ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета.ПроизвольнаяФормулаРасчета
| ТОГДА ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения <= ВложенныйЗапрос.ДатаПеревода
| ТОГДА ВЫБОР
| КОГДА Показатели.Показатель1.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд1Завершения
| КОГДА Показатели.Показатель2.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд2Завершения
| КОГДА Показатели.Показатель3.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд3Завершения
| КОГДА Показатели.Показатель4.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд4Завершения
| КОГДА Показатели.Показатель5.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд5Завершения
| КОГДА Показатели.Показатель6.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд6Завершения
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА Показатели.Показатель1.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд1
| КОГДА Показатели.Показатель2.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд2
| КОГДА Показатели.Показатель3.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд3
| КОГДА Показатели.Показатель4.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд4
| КОГДА Показатели.Показатель5.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд5
| КОГДА Показатели.Показатель6.ТипПоказателя = ЗНАЧЕНИЕ(Перечисление.ТипыПоказателейСхемМотивации.ТарифныйРазряд)
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд6
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета.ТребуетВводаТарифногоРазряда
| ТОГДА ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения <= ВложенныйЗапрос.ДатаПеревода
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд1Завершения
| ИНАЧЕ ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд1
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| И ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения <= ВложенныйЗапрос.ДатаПеревода
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель1Завершения
| ИНАЧЕ ПлановыеНачисленияРаботниковОрганизаций.Показатель1
| КОНЕЦ
| КОНЕЦ
| КОНЕЦ КАК ТарифныйРазряд,
| ЕСТЬNULL(ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения <= ВложенныйЗапрос.ДатаПеревода
| И ПлановыеНачисленияРаботниковОрганизаций.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ВидРасчетаЗавершения.ТребуетВводаТарифногоРазряда
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета.ПроизвольнаяФормулаРасчета
| ТОГДА ВЫБОР
| КОГДА Показатели.Показатель1 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель1.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель1Завершения
| КОГДА Показатели.Показатель2 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель2.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель2Завершения
| КОГДА Показатели.Показатель3 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель3.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель3Завершения
| КОГДА Показатели.Показатель4 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель4.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель4Завершения
| КОГДА Показатели.Показатель5 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель5.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель5Завершения
| КОГДА Показатели.Показатель6 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель6.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель6Завершения
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ ПлановыеНачисленияРаботниковОрганизаций.Показатель1Завершения
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета.ТребуетВводаТарифногоРазряда
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета.ПроизвольнаяФормулаРасчета
| ТОГДА ВЫБОР
| КОГДА Показатели.Показатель1 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель1.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель1
| КОГДА Показатели.Показатель2 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель2.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель2
| КОГДА Показатели.Показатель3 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель3.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель3
| КОГДА Показатели.Показатель4 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель4.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель4
| КОГДА Показатели.Показатель5 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель5.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель5
| КОГДА Показатели.Показатель6 В (&ТарифнаяСтавкаОклад)
| ИЛИ Показатели.Показатель6.ТарифнаяСтавка
| ТОГДА ПлановыеНачисленияРаботниковОрганизаций.Показатель6
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ ПлановыеНачисленияРаботниковОрганизаций.Показатель1
| КОНЕЦ
| КОНЕЦ
| КОНЕЦ, 0) КАК Размер
| ИЗ
| (ВЫБРАТЬ
| РаботникиОрганизаций.Период КАК ДатаПеревода,
| РаботникиОрганизаций.Сотрудник КАК Сотрудник,
| МАКСИМУМ(ПлановыеНачисленияРаботниковОрганизаций.Период) КАК Период
| ИЗ
| ВТПеремещенияРаботника КАК РаботникиОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботниковОрганизаций
| ПО РаботникиОрганизаций.Сотрудник = ПлановыеНачисленияРаботниковОрганизаций.Сотрудник
| И РаботникиОрганизаций.Период >= ПлановыеНачисленияРаботниковОрганизаций.Период
| ГДЕ
| ПлановыеНачисленияРаботниковОрганизаций.ВидРасчетаИзмерение = НЕОПРЕДЕЛЕНО
|
| СГРУППИРОВАТЬ ПО
| РаботникиОрганизаций.Период,
| РаботникиОрганизаций.Сотрудник) КАК ВложенныйЗапрос
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботниковОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| МАКСИМУМ(ВЫБОР
| КОГДА Показатели.НомерСтроки = 1
| ТОГДА Показатели.Показатель
| ИНАЧЕ NULL
| КОНЕЦ) КАК Показатель1,
| МАКСИМУМ(ВЫБОР
| КОГДА Показатели.НомерСтроки = 2
| ТОГДА Показатели.Показатель
| ИНАЧЕ NULL
| КОНЕЦ) КАК Показатель2,
| МАКСИМУМ(ВЫБОР
| КОГДА Показатели.НомерСтроки = 3
| ТОГДА Показатели.Показатель
| ИНАЧЕ NULL
| КОНЕЦ) КАК Показатель3,
| МАКСИМУМ(ВЫБОР
| КОГДА Показатели.НомерСтроки = 4
| ТОГДА Показатели.Показатель
| ИНАЧЕ NULL
| КОНЕЦ) КАК Показатель4,
| МАКСИМУМ(ВЫБОР
| КОГДА Показатели.НомерСтроки = 5
| ТОГДА Показатели.Показатель
| ИНАЧЕ NULL
| КОНЕЦ) КАК Показатель5,
| МАКСИМУМ(ВЫБОР
| КОГДА Показатели.НомерСтроки = 6
| ТОГДА Показатели.Показатель
| ИНАЧЕ NULL
| КОНЕЦ) КАК Показатель6,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Период КАК Период,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Организация КАК Организация,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаИзмерение КАК ВидРасчетаИзмерение,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ДокументОснование КАК ДокументОснование
| ИЗ
| РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследних
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовРасчета.ОсновныеНачисленияОрганизаций.Показатели КАК Показатели
| ПО (ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Период
| И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаЗавершения
| ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета
| КОНЕЦ = Показатели.Ссылка)
| ГДЕ
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета.ЗачетОтработанногоВремени
| И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаИзмерение = НЕОПРЕДЕЛЕНО
|
| СГРУППИРОВАТЬ ПО
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Период,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ДокументОснование,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Организация,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаИзмерение,
| ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Сотрудник) КАК Показатели
| ПО ПлановыеНачисленияРаботниковОрганизаций.Период = Показатели.Период
| И ПлановыеНачисленияРаботниковОрганизаций.Сотрудник = Показатели.Сотрудник
| И ПлановыеНачисленияРаботниковОрганизаций.ВидРасчетаИзмерение = Показатели.ВидРасчетаИзмерение
| И ПлановыеНачисленияРаботниковОрганизаций.Организация = Показатели.Организация
| ПО ВложенныйЗапрос.Сотрудник = ПлановыеНачисленияРаботниковОрганизаций.Сотрудник
| И ВложенныйЗапрос.Период = ПлановыеНачисленияРаботниковОрганизаций.Период
| ГДЕ
| ПлановыеНачисленияРаботниковОрганизаций.ВидРасчетаИзмерение = НЕОПРЕДЕЛЕНО) КАК ПлановыеНачисленияРаботниковОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ВложенныйЗапрос.ДатаПеревода КАК ДатаПеревода,
| РазмерТарифныхСтавок.Валюта КАК Валюта,
| РазмерТарифныхСтавок.ТарифныйРазряд КАК ТарифныйРазряд,
| РазмерТарифныхСтавок.Размер КАК Размер
| ИЗ
| (ВЫБРАТЬ
| РаботникиОрганизаций.Период КАК ДатаПеревода,
| РазмерТарифныхСтавок.ТарифныйРазряд КАК ТарифныйРазряд,
| МАКСИМУМ(РазмерТарифныхСтавок.Период) КАК Период
| ИЗ
| ВТПеремещенияРаботника КАК РаботникиОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмерТарифныхСтавок КАК РазмерТарифныхСтавок
| ПО РаботникиОрганизаций.Период >= РазмерТарифныхСтавок.Период
|
| СГРУППИРОВАТЬ ПО
| РаботникиОрганизаций.Период,
| РазмерТарифныхСтавок.ТарифныйРазряд) КАК ВложенныйЗапрос
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РазмерТарифныхСтавок КАК РазмерТарифныхСтавок
| ПО ВложенныйЗапрос.ТарифныйРазряд = РазмерТарифныхСтавок.ТарифныйРазряд
| И ВложенныйЗапрос.Период = РазмерТарифныхСтавок.Период) КАК РазмерыТарифныхРазрядов
| ПО ПлановыеНачисленияРаботниковОрганизаций.ДатаПеревода = РазмерыТарифныхРазрядов.ДатаПеревода
| И ПлановыеНачисленияРаботниковОрганизаций.ТарифныйРазряд = РазмерыТарифныхРазрядов.ТарифныйРазряд
| ПО Работники.Период = ПлановыеНачисленияРаботниковОрганизаций.ДатаПеревода
| И Работники.Сотрудник = ПлановыеНачисленияРаботниковОрганизаций.Сотрудник
|
|УПОРЯДОЧИТЬ ПО
| ДатаПеревода";
ВыборкаРезультата = Запрос.Выполнить().Выбрать();
инд = 0;
ЧетвертаяСтраницаТ2.Параметры.Приказ = "Приказ (распоряжение) № ____________ от ""____"" _______________ 20___г. ";
ЧетвертаяСтраницаТ2.Параметры.ДатаУвольнения = '00010101';
Пока ВыборкаРезультата.Следующий() Цикл
Если ВыборкаРезультата.ПричинаИзмененияСостояния = Перечисления.ПричиныИзмененияСостояния.Увольнение тогда
//Встретили увольнение документом "Прием на работу" или "Увольнение"
ЧетвертаяСтраницаТ2.Параметры["ОснованиеУвольнения"] = ВыборкаРезультата.ОснованиеУвольнения;
ЧетвертаяСтраницаТ2.Параметры["ДатаУвольнения"] = ВыборкаРезультата.ДатаУвольнения;
ЧетвертаяСтраницаТ2.Параметры["Приказ"] = "Приказ (распоряжение) № """ + СокрЛП(ВыборкаРезультата.НомерПриказаУвольнения) + """ от " + Формат(ВыборкаРезультата.ДатаПриказаУвольнения, "ДЛФ=DD");
Иначе// Кадровое назначение
ОписаниеТарифнаяСтавка = Формат(ВыборкаРезультата.ТарифнаяСтавка,"ЧЦ=15; ЧДЦ=2; ЧН=' '");
инд = инд + 1;
ТретьяСтраницаТ2.Параметры["ДатаПеревода"+инд] = ВыборкаРезультата.ДатаПеревода;
ТретьяСтраницаТ2.Параметры["ПодразделениеПеревода"+инд] = ВыборкаРезультата.ПодразделениеОрганизации;
ТретьяСтраницаТ2.Параметры["ДолжностьПеревода"+инд] = ВыборкаРезультата.Должность;
ТретьяСтраницаТ2.Параметры["ТарифнаяСтавка"+инд] = ОписаниеТарифнаяСтавка;
ТретьяСтраницаТ2.Параметры["ОснованиеПеревода"+инд] = "Пр.№ "+ СокрЛП(ВыборкаРезультата.НомерПриказа) +" от " + Формат(ВыборкаРезультата.ДатаПриказа, "ДФ=dd.MM.yyyy");
КонецЕсли;
КонецЦикла;
// Вывод страниц документа
ТабДокумент.Присоединить(ПерваяСтраницаТ2);
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабДокумент.Присоединить(ВтораяСтраницаТ2);
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабДокумент.Присоединить(ТретьяСтраницаТ2);
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабДокумент.Присоединить(ЧетвертаяСтраницаТ2);
//Параметры документа
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСправа = 0;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
//ТабДокумент.вывести(новый ТабличныйДокумент);
Если ВыводитьНаПечать Тогда
Возврат УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент,,, "Данные по: " + Наименование,,ТабДокумент);
КонецЕсли;
КонецФункции //ФормаТ2
Тестировалось только в ЗуП 2.5