Сообщение на форуме
4 июня 2015 в 13:51:51
Зуп 2,5.90.2
есть запрс
ВЫБРАТЬ
ВЫБОР
КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период
И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РаботникиОрганизации.ПодразделениеОрганизацииЗавершения
ИНАЧЕ РаботникиОрганизации.ПодразделениеОрганизации
КОНЕЦ КАК ПодразделениеОрганизации,
ВЫБОР
КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период
И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РаботникиОрганизации.ОбособленноеПодразделениеЗавершения
ИНАЧЕ РаботникиОрганизации.ОбособленноеПодразделение
КОНЕЦ КАК ОбособленноеПодразделение,
ВЫБОР
КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период
И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РаботникиОрганизации.ДолжностьЗавершения
ИНАЧЕ РаботникиОрганизации.Должность
КОНЕЦ КАК Должность,
РаботникиОрганизации.Организация КАК Организация,
РаботникиОрганизации.Сотрудник.Код КАК ТабельныйНомер,
РаботникиОрганизации.Сотрудник КАК Сотрудник,
ВЫБОР
КОГДА ВЫБОР
КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период
И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения
ИНАЧЕ РаботникиОрганизации.ПричинаИзмененияСостояния
КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
ТОГДА ВЫБОР
КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период
И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ДОБАВИТЬКДАТЕ(РаботникиОрганизации.ПериодЗавершения, ДЕНЬ, -1)
ИНАЧЕ ДОБАВИТЬКДАТЕ(РаботникиОрганизации.Период, ДЕНЬ, -1)
КОНЕЦ
ИНАЧЕ "-"
КОНЕЦ КАК ДатаУвольнения,
РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения КАК СотрудникФизлицоДатаРождения,
РаботникиОрганизации.Сотрудник.Физлицо.Пол,
РаботникиОрганизации.Сотрудник.Физлицо.МестоРождения,
ВЫБОР
КОГДА ФИОФизЛиц.Фамилия ЕСТЬ NULL
ТОГДА РаботникиОрганизации.Сотрудник.Физлицо.Наименование
ИНАЧЕ ФИОФизЛиц.Фамилия + " " + ФИОФизЛиц.Имя + " " + ФИОФизЛиц.Отчество
КОНЕЦ КАК ФизЛицоФиоПолное,
ВЫБОР
КОГДА ФИОФизЛиц.ФизЛицо ЕСТЬ NULL
ТОГДА РаботникиОрганизации.Сотрудник.Физлицо.Наименование
ИНАЧЕ ФИОФизЛиц.Фамилия + ВЫБОР
КОГДА ПОДСТРОКА(ФИОФизЛиц.Имя, 1, 1) <> ""
ТОГДА " " + ПОДСТРОКА(ФИОФизЛиц.Имя, 1, 1) + "."
ИНАЧЕ ""
КОНЕЦ + ВЫБОР
КОГДА ПОДСТРОКА(ФИОФизЛиц.Отчество, 1, 1) <> ""
ТОГДА " " + ПОДСТРОКА(ФИОФизЛиц.Отчество, 1, 1) + "."
ИНАЧЕ ""
КОНЕЦ
КОНЕЦ КАК ФизЛицоФиоКраткое,
ВЫБОР
КОГДА ГОД(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения) = 1
ИЛИ РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения > &Период
ТОГДА 0
ИНАЧЕ ГОД(&Период) - ГОД(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения) + ВЫБОР
КОГДА МЕСЯЦ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения) * 100 + ДЕНЬ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения) > МЕСЯЦ(&Период) * 100 + ДЕНЬ(&Период)
ТОГДА -1
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ КАК ФизЛицоВозраст,
СоставСемьиФизлица.СтепеньРодства КАК ФизЛицоСтепеньРодства,
СоставСемьиФизлица.Имя КАК ФизЛицоИмяРодственника,
СоставСемьиФизлица.ДатаРождения КАК ФизЛицоГодРожденияРодственника,
ВЫБОР
КОГДА СоставСемьиФизлица.ДатаРождения = ДАТАВРЕМЯ(1, 1, 1)
ИЛИ &Период < СоставСемьиФизлица.ДатаРождения
ТОГДА 0
ИНАЧЕ ГОД(&Период) - ГОД(СоставСемьиФизлица.ДатаРождения) + ВЫБОР
КОГДА МЕСЯЦ(СоставСемьиФизлица.ДатаРождения) * 100 + ДЕНЬ(СоставСемьиФизлица.ДатаРождения) > МЕСЯЦ(&Период) * 100 + ДЕНЬ(&Период)
ТОГДА -1
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ КАК ФизЛицоВозрастРодственника,
ТрудоваяДеятельностьФизлица.ДатаНачала КАК ФизЛицоТД_ДатаНачала,
ТрудоваяДеятельностьФизлица.ДатаОкончания КАК ФизЛицоТД_ДатаОкончания,
ТрудоваяДеятельностьФизлица.Должность КАК ФизЛицоТД_Должность,
СемейноеПоложениеФизЛиц.СемейноеПоложение КАК ФизЛицоСемейноеПоложение,
ВЫБОР
КОГДА ВЫБОР
КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период
И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения
ИНАЧЕ РаботникиОрганизации.ПричинаИзмененияСостояния
КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
ТОГДА РаботникиОрганизации.ПервичныйДокумент
ИНАЧЕ "-"
КОНЕЦ КАК ПриказОбУвольнении,
ВЫБОР
КОГДА Стажи.ДатаОтсчета >= ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), МЕСЯЦ, Стажи.РазмерМесяцев), ДЕНЬ, Стажи.РазмерДней)
ТОГДА ВЫБОР
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА ДЕНЬ(КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), МЕСЯЦ)) - ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней)) + ДЕНЬ(&Период)
КОГДА ДЕНЬ(&Период) > ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА ДЕНЬ(&Период) - ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ КАК СтажДней,
ВЫБОР
КОГДА Стажи.ДатаОтсчета >= ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), МЕСЯЦ, Стажи.РазмерМесяцев), ДЕНЬ, Стажи.РазмерДней)
ТОГДА ВЫБОР
КОГДА ВЫБОР
КОГДА ДЕНЬ(&Период) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ)
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ) - 1
КОНЕЦ / 12 < (ВЫРАЗИТЬ(ВЫБОР
КОГДА ДЕНЬ(&Период) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ)
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ) - 1
КОНЕЦ / 12 КАК ЧИСЛО(7, 0)))
ТОГДА (ВЫРАЗИТЬ(ВЫБОР
КОГДА ДЕНЬ(&Период) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ)
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ) - 1
КОНЕЦ / 12 КАК ЧИСЛО(7, 0))) - 1
ИНАЧЕ ВЫРАЗИТЬ(ВЫБОР
КОГДА ДЕНЬ(&Период) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ)
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ) - 1
КОНЕЦ / 12 КАК ЧИСЛО(7, 0))
КОНЕЦ
КОНЕЦ КАК СтажЛет,
ВЫБОР
КОГДА Стажи.ДатаОтсчета >= ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), МЕСЯЦ, Стажи.РазмерМесяцев), ДЕНЬ, Стажи.РазмерДней)
ТОГДА ВЫБОР
КОГДА ДЕНЬ(&Период) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ)
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ) - 1
КОНЕЦ - ВЫБОР
КОГДА ВЫБОР
КОГДА ДЕНЬ(&Период) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ)
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ) - 1
КОНЕЦ / 12 < (ВЫРАЗИТЬ(ВЫБОР
КОГДА ДЕНЬ(&Период) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ)
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ) - 1
КОНЕЦ / 12 КАК ЧИСЛО(7, 0)))
ТОГДА (ВЫРАЗИТЬ(ВЫБОР
КОГДА ДЕНЬ(&Период) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ)
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ) - 1
КОНЕЦ / 12 КАК ЧИСЛО(7, 0))) - 1
ИНАЧЕ ВЫРАЗИТЬ(ВЫБОР
КОГДА ДЕНЬ(&Период) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ)
КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), &Период, МЕСЯЦ) - 1
КОНЕЦ / 12 КАК ЧИСЛО(7, 0))
КОНЕЦ * 12
КОНЕЦ КАК СтажМесяцев,
ВЫБОР
КОГДА РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И (ВЫРАЗИТЬ((ВЫРАЗИТЬ(РАЗНОСТЬДАТ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, &Период, ГОД) КАК ЧИСЛО(7, 0))) / 5 КАК ЧИСЛО(7, 0))) = (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, &Период, ГОД) КАК ЧИСЛО(7, 0))) / 5
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Юбиляр,
ВЫБОР
КОГДА РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ДОБАВИТЬКДАТЕ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, МЕСЯЦ, (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, &Период, ГОД) КАК ЧИСЛО(7, 0))) * 12) < &Период
ТОГДА ДОБАВИТЬКДАТЕ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, МЕСЯЦ, (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, &Период, ГОД) КАК ЧИСЛО(7, 0))) * 12 + 12)
КОГДА РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА "Дата рождения не заполнена"
ИНАЧЕ ДОБАВИТЬКДАТЕ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, МЕСЯЦ, (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, &Период, ГОД) КАК ЧИСЛО(7, 0))) * 12)
КОНЕЦ КАК ДеньРождения,
ВЫБОР
КОГДА РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ДОБАВИТЬКДАТЕ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, МЕСЯЦ, (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, &Период, ГОД) КАК ЧИСЛО(7, 0))) * 12) < НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ)
ТОГДА МЕСЯЦ(ДОБАВИТЬКДАТЕ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, МЕСЯЦ, (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, &Период, ГОД) КАК ЧИСЛО(7, 0))) * 12 + 12))
КОГДА РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА "Дата рождения не заполнена"
ИНАЧЕ МЕСЯЦ(ДОБАВИТЬКДАТЕ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, МЕСЯЦ, (ВЫРАЗИТЬ(РАЗНОСТЬДАТ(РаботникиОрганизации.Сотрудник.Физлицо.ДатаРождения, &Период, ГОД) КАК ЧИСЛО(7, 0))) * 12))
КОНЕЦ КАК Месяц,
ДатыПоследнихДвиженийРаботников.Организация КАК Организация1,
ДатыПоследнихДвиженийРаботников.Период,
ДатыПоследнихДвиженийРаботников.Сотрудник КАК Сотрудник1,
ДатыПоследнихДвиженийРаботников.Приказ,
СостояниеРаботниковОрганизации.Сотрудник КАК Сотрудник2,
СостояниеРаботниковОрганизации.СостояниеЗавершения,
ВЫБОР
КОГДА ВЫБОР
КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период
И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения
ИНАЧЕ РаботникиОрганизации.ПричинаИзмененияСостояния
КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.НеРаботает)
ИНАЧЕ ЕСТЬNULL(ВЫБОР
КОГДА &Период >= СостояниеРаботниковОрганизации.ПериодЗавершения
И СостояниеРаботниковОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА СостояниеРаботниковОрганизации.СостояниеЗавершения
ИНАЧЕ СостояниеРаботниковОрганизации.Состояние
КОНЕЦ, ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает))
КОНЕЦ КАК ТекущееСосотояние
{ВЫБРАТЬ
Сотрудник.*,
Должность.*,
ПодразделениеОрганизации.*,
ТекущееСосотояние.*}
ИЗ
РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизации
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц КАК ФИОФизЛиц
ПО РаботникиОрганизации.Сотрудник.Физлицо = ФИОФизЛиц.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СемейноеПоложениеФизЛиц КАК СемейноеПоложениеФизЛиц
ПО РаботникиОрганизации.Сотрудник.Физлицо = СемейноеПоложениеФизЛиц.ФизЛицо
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.Стажи КАК Стажи
ПО РаботникиОрганизации.Сотрудник.Физлицо = Стажи.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Константы КАК Константы
ПО (ИСТИНА)
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.ТрудоваяДеятельность КАК ТрудоваяДеятельностьФизлица
ПО РаботникиОрганизации.Сотрудник = ТрудоваяДеятельностьФизлица.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.СоставСемьи КАК СоставСемьиФизлица
ПО РаботникиОрганизации.Сотрудник.Физлицо = СоставСемьиФизлица.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ТЧРаботникиОрганизации.Организация КАК Организация,
Работники.Период КАК Период,
Работники.Сотрудник КАК Сотрудник,
ТЧРаботникиОрганизации.ПервичныйДокумент КАК Приказ
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК ТЧРаботникиОрганизации
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК Работники
ПО (Работники.Период <= ТЧРаботникиОрганизации.Период)
И (Работники.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу))
И ТЧРаботникиОрганизации.Сотрудник = Работники.Сотрудник
СГРУППИРОВАТЬ ПО
ТЧРаботникиОрганизации.Организация,
Работники.Сотрудник,
ТЧРаботникиОрганизации.ПервичныйДокумент,
Работники.Период) КАК ДатыПоследнихДвиженийРаботников
ПО РаботникиОрганизации.Сотрудник = ДатыПоследнихДвиженийРаботников.Сотрудник
И РаботникиОрганизации.Период = ДатыПоследнихДвиженийРаботников.Период
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних КАК СостояниеРаботниковОрганизации
ПО РаботникиОрганизации.Сотрудник = СостояниеРаботниковОрганизации.Сотрудник
И РаботникиОрганизации.Период = СостояниеРаботниковОрганизации.Период
И РаботникиОрганизации.Сотрудник = СостояниеРаботниковОрганизации.СостояниеЗавершения
ГДЕ
РаботникиОрганизации.Сотрудник = &Кля
{ГДЕ
РаботникиОрганизации.Сотрудник.*,
СоставСемьиФизлица.ДатаРождения,
СоставСемьиФизлица.Имя,
СоставСемьиФизлица.СтепеньРодства.*}
{ХАРАКТЕРИСТИКИ
ТИП(Справочник.СотрудникиОрганизаций)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
СвойстваОбъектов.Ссылка,
" Дополнительное свойство: " + СвойстваОбъектов.Наименование КАК Наименование,
СвойстваОбъектов.ТипЗначения
ИЗ
ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
ГДЕ
СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_СотрудникиОрганизаций)
И НЕ СвойстваОбъектов.ПометкаУдаления)
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствОбъектов
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА Свойство
ПОЛЕЗНАЧЕНИЯ Значение }
{ХАРАКТЕРИСТИКИ
ТИП(Справочник.ФизическиеЛица)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
КатегорииОбъектов.Ссылка,
" Дополнительная категория: " + КатегорииОбъектов.Наименование КАК Наименование
ИЗ
Справочник.КатегорииОбъектов КАК КатегорииОбъектов
ГДЕ
КатегорииОбъектов.НазначениеКатегории = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ФизическиеЛица)
И НЕ КатегорииОбъектов.ПометкаУдаления)
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.КатегорииОбъектов
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА Категория }
Необходимо вывести состояние на ДАТУ ОТЧЕТА! а он выводить по ходу за период. Хотя регистр взят срез последних. И как следствие выводит сотрудников с состоянием за период, и сотрудники задваиваются....