gifts2017

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

Опубликовал Константин Кандауров (KandKonst) в раздел Программирование - Практика программирования

Доработка типовой конфигурации Зарплата и Управление Персоналом 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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Алексей (Gaffer) 07.09.11 15:02
Гхм.. что мешало сделать внешней?
Не ради критики, а просто понять причину хочу.

Не хватает скринов в пользовательском режиме.
Проблема с доп.листами тут решена? (см. http://infostart.ru/public/19746/)
2. Константин Кандауров (KandKonst) 07.09.11 16:09
Специально делал так, чтобы было проще кадровикам. Типовой отчет периодически глючит и запускается после пляски с бубном вокруг настройки структуры СКД. На счет проблемы с доп. листами не в курсе. Ваша ссылка не открылась(. Проверьте ссылку плиз.
3. ИН Север (i-sever) 08.09.11 15:17
Ссылка по проблеме с доп.листами не открывается ! А что это за проблема?
4. Алекс Ю (AlexO) 02.12.11 01:20
(2) KandKonst,
подтверждаю - не только в ЗУП, но и в УПП (КА) эта дурацкая Т-2 на СКД скачет и прыгает - то выводится все нормально, то - запоминаются автоматом настройки предыдущего отбора, и объединяются с текущим.. в результате - пустой вывод.
И сборосить это довольно сложно...
А почему реализовано из справочника? т.е. это как дополнение или замена типовому отчету в ЗУП?
5. Алекс Ю (AlexO) 02.12.11 01:21
Также - никто не знает, что там в Макетах отчета УнифицированнаяФормаТ2 делают бинарные даные под видом "макет УнифицированнаяФормаТ2"??
Для чего они там и что это?
6. Константин Кандауров (KandKonst) 05.12.11 11:46
(4) Делал из справочника, так как у каждого сотрудника у меня доработано несколько дополнительных печатных форм. Оригинал отчета оставил, чтобы в случае чего с ним можно было свериться. Но основной рабочий вариант- из конкретного сотрудника.
7. Константин Кандауров (KandKonst) 05.12.11 11:48
(5) Бинарные данные это настройка варианта отчета

<НАСТРОЙКА_ВАРИАНТА_ОТЧЕТА>
<ВЕРСИЯ>1.0</ВЕРСИЯ>
<НАИМЕНОВАНИЕ>Унифицированная форма Т-2</НАИМЕНОВАНИЕ>
<ОБЪЕКТ>ОтчетОбъект.УнифицированнаяФормаТ2</ОБЪЕКТ>
<ОПИСАНИЕ>Выводит унифицированную форму Т-2</ОПИСАНИЕ>
...
8. Алекс Ю (AlexO) 05.12.11 16:33
(7) KandKonst,
так а зачем в такой загадочной форме, что там хранится на самом деле (а отчет ли? может, вирус какой :)) ?), и где это вызывается - в самой Т2 вызовов этого загадочного нечто нет...
Это ЧТО-ТО можно посмотреть в более читабельном виде?
9. Константин Кандауров (KandKonst) 06.12.11 11:26
(8) В самой Т-2 вызывается при нажатии кнопки Открыть (внизу справа) и выборе сохраненного варианта. То есть это настройки варианта отчета для сброса по-умолчанию.
Читабельный вид - это врятли. Все что возможно было прочитать - я написал)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа