public object ПолучитьТекстЗапросаНачальныеНастройкиДругиеРегистры(/*ОбработкаОбъект, СтруктураПредставлениеПолей, СтруктураФорматаПолей, СоответствиеНазначений, СтруктураДляОтбораПоКатегориям, ТаблицаПолей, СтрокаТаблицаПолей, ТекстПоляКатегорий, ТекстПоляСвойств*/)
{
//ТекстЗапроса = "";
if(true/*ОбработкаОбъект.ВыбиратьСотрудника*/)
{
/*ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.Сотрудник.Наименование КАК ФИО,
| РаботникиОрганизации.ФизЛицо КАК Физлицо,
| ВЫБОР
| КОГДА ПриказыОПриеме.Период > НАЧАЛОПЕРИОДА(&ДатаАктуальности, МЕСЯЦ)
| ТОГДА ПриказыОПриеме.Период
| ИНАЧЕ НАЧАЛОПЕРИОДА(&ДатаАктуальности, МЕСЯЦ)
| КОНЕЦ КАК ДатаНачала,
| ВЫБОР
| КОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ПриказыОбУвольнении.Период, ДЕНЬ),ДЕНЬ,-1) МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаАктуальности, МЕСЯЦ) И КОНЕЦПЕРИОДА(&ДатаАктуальности, МЕСЯЦ)
| ТОГДА ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ПриказыОбУвольнении.Период, ДЕНЬ),ДЕНЬ,-1)
| ИНАЧЕ КОНЕЦПЕРИОДА(&ДатаАктуальности, МЕСЯЦ)
| КОНЕЦ КАК ДатаОкончания,
| РаботникиОрганизации.ГрафикРаботы,
| РаботникиОрганизации.ЗанимаемыхСтавок,
| РаботникиОрганизации.Должность,
| РаботникиОрганизации.Подразделение КАК Подразделение
|ПОМЕСТИТЬ ВТСписокРаботников
|{ВЫБРАТЬ
| Сотрудник,
| ФИО,
| Физлицо,
| ДатаНачала,
| ДатаОкончания,
| ГрафикРаботы,
| ЗанимаемыхСтавок,
| Должность,
| Подразделение
|}
|ИЗ
| РегистрСведений.Работники.СрезПоследних(&ДатаАктуальности, ) КАК РаботникиОрганизации
| {ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| МАКСИМУМ(Работники.Период) КАК Период,
| РегистрРаботники.ФизЛицо КАК Физлицо
| ИЗ
| РегистрСведений.Работники.СрезПоследних(&ДатаАктуальности, ) КАК РегистрРаботники
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Работники КАК Работники
| ПО РегистрРаботники.ФизЛицо = Работники.ФизЛицо
| И Работники.Период <= РегистрРаботники.Период
| И (Работники.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу))
| {ГДЕ
| РегистрРаботники.Должность КАК Должность,
| РегистрРаботники.ГрафикРаботы КАК ГрафикРаботы,
| РегистрРаботники.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
| РегистрРаботники.Подразделение КАК Подразделение}
|
| СГРУППИРОВАТЬ ПО
| РегистрРаботники.ФизЛицо) КАК ПриказыОПриеме
| ПО ПриказыОПриеме.Физлицо = РаботникиОрганизации.ФизЛицо}
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| МАКСИМУМ(Работники.Период) КАК Период,
| РегистрРаботники.ФизЛицо КАК Физлицо
| ИЗ
| РегистрСведений.Работники.СрезПоследних(&ДатаАктуальности, ) КАК РегистрРаботники
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Работники КАК Работники
| ПО РегистрРаботники.ФизЛицо = Работники.ФизЛицо
| И (Работники.Период <= РегистрРаботники.Период)
| И (Работники.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))
| {ГДЕ
| РегистрРаботники.Должность КАК Должность,
| РегистрРаботники.ГрафикРаботы КАК ГрафикРаботы,
| РегистрРаботники.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
| РегистрРаботники.Подразделение КАК Подразделение}
|
| СГРУППИРОВАТЬ ПО
| РегистрРаботники.ФизЛицо) КАК ПриказыОбУвольнении
| ПО РаботникиОрганизации.ФизЛицо = ПриказыОбУвольнении.Физлицо
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СписокСотрудников.Сотрудник КАК Сотрудник,
| СписокСотрудников.Физлицо КАК Физлицо
| ИЗ
| (ВЫБРАТЬ
| МАКСИМУМ(РаботникиОсновноеМесто.Сотрудник) КАК Сотрудник,
| РаботникиОсновноеМесто.Сотрудник.Физлицо КАК Физлицо,
| 1 КАК Приоритет
| ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| &ДатаАктуальности,
| Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)) КАК РаботникиОсновноеМесто
| ГДЕ
| ВЫБОР
| КОГДА РаботникиОсновноеМесто.ПериодЗавершения <= &ДатаАктуальности
| И РаботникиОсновноеМесто.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА РаботникиОсновноеМесто.ПричинаИзмененияСостоянияЗавершения
| ИНАЧЕ РаботникиОсновноеМесто.ПричинаИзмененияСостояния
| КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
|
| СГРУППИРОВАТЬ ПО
| РаботникиОсновноеМесто.Сотрудник.Физлицо
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| МАКСИМУМ(РаботникиСовместительство.Сотрудник),
| РаботникиСовместительство.Сотрудник.Физлицо,
| 2
| ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| &ДатаАктуальности,
| Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.Совместительство)) КАК РаботникиСовместительство
| ГДЕ
| ВЫБОР
| КОГДА РаботникиСовместительство.ПериодЗавершения <= &ДатаАктуальности
| И РаботникиСовместительство.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА РаботникиСовместительство.ПричинаИзмененияСостоянияЗавершения
| ИНАЧЕ РаботникиСовместительство.ПричинаИзмененияСостояния
| КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
|
| СГРУППИРОВАТЬ ПО
| РаботникиСовместительство.Сотрудник.Физлицо
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| МАКСИМУМ(СотрудникиДУ.Ссылка),
| СотрудникиДУ.Физлицо,
| ВЫБОР
| КОГДА СотрудникиДУ.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.ДоговорУправленческий)
| ТОГДА 3
| КОГДА СотрудникиДУ.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.ТрудовойДоговор)
| ТОГДА 4
| ИНАЧЕ 5
| КОНЕЦ
| ИЗ
| Справочник.СотрудникиОрганизаций КАК СотрудникиДУ
|
| СГРУППИРОВАТЬ ПО
| СотрудникиДУ.Физлицо,
| ВЫБОР
| КОГДА СотрудникиДУ.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.ДоговорУправленческий)
| ТОГДА 3
| КОГДА СотрудникиДУ.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.ТрудовойДоговор)
| ТОГДА 4
| ИНАЧЕ 5
| КОНЕЦ) КАК СписокСотрудников
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СписокФизическихЛиц.Физлицо КАК Физлицо,
| МИНИМУМ(СписокФизическихЛиц.Приоритет) КАК Приоритет
| ИЗ
| (ВЫБРАТЬ
| РаботникиОсновноеМесто.Сотрудник.Физлицо КАК Физлицо,
| 1 КАК Приоритет
| ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| &ДатаАктуальности,
| Сотрудник.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.ТрудовойДоговор)
| И Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)) КАК РаботникиОсновноеМесто
| ГДЕ
| ВЫБОР
| КОГДА РаботникиОсновноеМесто.ПериодЗавершения <= &ДатаАктуальности
| И РаботникиОсновноеМесто.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА РаботникиОсновноеМесто.ПричинаИзмененияСостоянияЗавершения
| ИНАЧЕ РаботникиОсновноеМесто.ПричинаИзмененияСостояния
| КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| РаботникиСовместительство.Сотрудник.Физлицо,
| 2
| ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| &ДатаАктуальности,
| Сотрудник.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.ТрудовойДоговор)
| И Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.Совместительство)) КАК РаботникиСовместительство
| ГДЕ
| ВЫБОР
| КОГДА РаботникиСовместительство.ПериодЗавершения <= &ДатаАктуальности
| И РаботникиСовместительство.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА РаботникиСовместительство.ПричинаИзмененияСостоянияЗавершения
| ИНАЧЕ РаботникиСовместительство.ПричинаИзмененияСостояния
| КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| СотрудникиДУ.Физлицо,
| ВЫБОР
| КОГДА СотрудникиДУ.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.ДоговорУправленческий)
| ТОГДА 3
| КОГДА СотрудникиДУ.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.ТрудовойДоговор)
| ТОГДА 4
| ИНАЧЕ 5
| КОНЕЦ
| ИЗ
| Справочник.СотрудникиОрганизаций КАК СотрудникиДУ) КАК СписокФизическихЛиц
|
| СГРУППИРОВАТЬ ПО
| СписокФизическихЛиц.Физлицо) КАК СписокФизическихЛиц
| ПО СписокСотрудников.Физлицо = СписокФизическихЛиц.Физлицо
| И СписокСотрудников.Приоритет = СписокФизическихЛиц.Приоритет) КАК Сотрудники
| ПО РаботникиОрганизации.ФизЛицо = Сотрудники.Физлицо
| //ДАННЫЕ О ФИЗЛИЦЕ: СОЕДИНЕНИЯ
| //СОЕДИНЕНИЯ СВОЙСТВ И КАТЕГОРИЙ
|//УСЛОВИЕ
|{ГДЕ
| Сотрудники.Сотрудник КАК Работник,
| Сотрудники.Сотрудник.Родитель КАК Группа,
| РаботникиОрганизации.Должность.* КАК Должность,
| РаботникиОрганизации.ГрафикРаботы.* КАК ГрафикРаботы,
| РаботникиОрганизации.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
| ПриказыОПриеме.Период КАК ДатаПриема,
| РаботникиОрганизации.Подразделение КАК Подразделение
| //ДАННЫЕ О ФИЗЛИЦЕ: ПОЛЯ
| //СВОЙСТВА
| //КАТЕГОРИИ
|}
|";*/
}
if(true/*Не ОбработкаОбъект.ВключатьУволенных*/)
{
/*СтрокаУсловия =
"ГДЕ
| РаботникиОрганизации.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
|";*/
//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//УСЛОВИЕ", СтрокаУсловия);
}
/*// Преобразуем текст запроса для получения полной информации о физлице
*/
//УправлениеОтчетами.ДобавитьВТекстПостроителяДанныеОФизлице(ТекстЗапроса, СтруктураПредставлениеПолей, СтруктураФорматаПолей, "РаботникиОрганизации", "Физлицо");
if(true/*ОбработкаОбъект.ВыбиратьСотрудника*/)
{
/*// здесь добавим свойства сотрудника
*/
//СтрокаТаблицаПолей.ПутьКДанным = "Сотрудники.Сотрудник";
//СтрокаТаблицаПолей.Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_СотрудникиОрганизаций;
//НоваяСтрока = ТаблицаПолей.Добавить();
//НоваяСтрока.Представление = "физического лица";
}
/*// теперь добавим свойства физлица
*/
//НоваяСтрока.ПутьКДанным = "РаботникиОрганизации.Физлицо";
//НоваяСтрока.Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ФизическиеЛица;
/*// Добавим строки запроса, необходимые для использования свойств и категорий
*/
//ТекстПоляКатегорий = "";
//ТекстПоляСвойств = "";
//УправлениеОтчетами.ДобавитьВТекстСвойстваИКатегории(ТаблицаПолей, ТекстЗапроса, СтруктураПредставлениеПолей, СоответствиеНазначений, ОбработкаОбъект.ПостроительОтчета.Параметры,,ТекстПоляКатегорий,ТекстПоляСвойств,,,,"//СОЕДИНЕНИЯ СВОЙСТВ И КАТЕГОРИЙ",, СтруктураДляОтбораПоКатегориям);
return null;
}