Унифицированная форма Т-2 с фото сотрудника. (печатная форма для типовой конфигурации ЗУП 2.5)


Доработка типовой конфигурации Зарплата и Управление Персоналом 8.

Добрый день, коллеги!

Представляю Вашему вниманию один из вариантов унифицированной формы Т-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

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *