8.х Не корректно сворачивает по отбору , отчет Штатная расстановка

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем kittybello, 2 июн 2015.

  1. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Есть отчет Штатная расстановка орг.
    Если формировать отчет с отбором по определенной организации , подразделению и должности , то формирутся отчет правильно (см. рис 1. На пустом сотруднике висит 25 ставок (24+1) )

    [​IMG]


    Однако, если к условиям отбора добавить Освобожденных ставок >=0,5 , тогда на пустом сотруднике показывает (даже не знаю как объяснить) 206 как на рис.2




    [​IMG]


    По идее, оно в обоих случаях должно показывать 24. Подскажите что не так? В консоли запрос отрабатывает правильно , а в СКД вот так ...





    Конфигурация УПП Зарплата 8.2 (Украина)
  2. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Код:
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
        ВложенныйЗапрос.Организация КАК Организация,
        ВложенныйЗапрос.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
        ВложенныйЗапрос.Должность КАК Должность,
        ВложенныйЗапрос.ВидТарифнойСтавки КАК ВидТарифнойСтавки,
        ВложенныйЗапрос.ГрафикРаботы КАК ГрафикРаботы,
        ВложенныйЗапрос.ВалютаТарифнойСтавки КАК ВалютаТарифнойСтавки,
        ВложенныйЗапрос.КоличествоСтавок КАК КоличествоСтавок,
        ВложенныйЗапрос.МинимальнаяТарифнаяСтавка КАК МинимальнаяТарифнаяСтавка,
        ВложенныйЗапрос.МаксимальнаяТарифнаяСтавка КАК МаксимальнаяТарифнаяСтавка,
        ВложенныйЗапрос.Сотрудник КАК Сотрудник,
        ВложенныйЗапрос.ОсвобожденныхСтавок КАК ОсвобожденныхСтавок,
        ВложенныйЗапрос.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
        ВложенныйЗапрос.Сотрудник1
    {ВЫБРАТЬ
        Организация.*,
        ПодразделениеОрганизации.*,
        Должность.*,
        ВидТарифнойСтавки.*,
        ГрафикРаботы.*,
        ВалютаТарифнойСтавки.*,
        КоличествоСтавок,
        МинимальнаяТарифнаяСтавка,
        МаксимальнаяТарифнаяСтавка,
        Сотрудник.*,
        ОсвобожденныхСтавок,
        ЗанимаемыхСтавок}
    ИЗ
        (ВЫБРАТЬ
            ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец КАК Организация,
            ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
            ШтатноеРасписаниеОрганизаций.Должность КАК Должность,
            ШтатноеРасписаниеОрганизацийСрезПоследних.ВидТарифнойСтавки КАК ВидТарифнойСтавки,
            ШтатноеРасписаниеОрганизацийСрезПоследних.ГрафикРаботы КАК ГрафикРаботы,
            ШтатноеРасписаниеОрганизацийСрезПоследних.ВалютаТарифнойСтавки КАК ВалютаТарифнойСтавки,
            ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок КАК КоличествоСтавок,
            ШтатноеРасписаниеОрганизацийСрезПоследних.МинимальнаяТарифнаяСтавка КАК МинимальнаяТарифнаяСтавка,
            ШтатноеРасписаниеОрганизацийСрезПоследних.МаксимальнаяТарифнаяСтавка КАК МаксимальнаяТарифнаяСтавка,
            РаботникиОрганизации.Сотрудник КАК Сотрудник,
            ВЫБОР
                КОГДА НЕ СтавкаОсвобождена.ОсвобождатьСтавку ЕСТЬ NULL 
                        И СтавкаОсвобождена.ОсвобождатьСтавку
                    ТОГДА РаботникиОрганизации.ЗанимаемыхСтавок
                ИНАЧЕ 0
            КОНЕЦ
            КАК ОсвобожденныхСтавок,
            РаботникиОрганизации.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
            СтавкаОсвобождена.Сотрудник КАК Сотрудник1
        {ВЫБРАТЬ
            Организация.*,
            ПодразделениеОрганизации.*,
            Должность.*,
            ВидТарифнойСтавки,
            ГрафикРаботы,
            ВалютаТарифнойСтавки,
            КоличествоСтавок,
            МинимальнаяТарифнаяСтавка,
            МаксимальнаяТарифнаяСтавка,
            ОсвобожденныхСтавок,
            Сотрудник.*,
            ЗанимаемыхСтавок}
        ИЗ
            (ВЫБРАТЬ РАЗЛИЧНЫЕ
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                ШтатноеРасписаниеОрганизаций.Должность КАК Должность
            ИЗ
                РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций
            {ГДЕ
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец.* КАК Организация,
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.* КАК ПодразделениеОрганизации,
                ШтатноеРасписаниеОрганизаций.Должность.* КАК Должность}
           
            ОБЪЕДИНИТЬ
           
            ВЫБРАТЬ РАЗЛИЧНЫЕ
                РаботникиОрганизаций.ПодразделениеОрганизации,
                РаботникиОрганизаций.Должность
            ИЗ
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                    РаботникиОрганизаций.Должность КАК Должность,
                    РаботникиОрганизаций.ОбособленноеПодразделение КАК ОбособленноеПодразделение
                ИЗ
                    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций) КАК РаботникиОрганизаций
            {ГДЕ
                РаботникиОрганизаций.ОбособленноеПодразделение.* КАК Организация,
                РаботникиОрганизаций.ПодразделениеОрганизации.* КАК ПодразделениеОрганизации,
                РаботникиОрганизаций.Должность.* КАК Должность}) КАК ШтатноеРасписаниеОрганизаций
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтатноеРасписаниеОрганизаций.СрезПоследних(&Период, {(ПодразделениеОрганизации).* КАК ПодразделениеОрганизации, (Должность).* КАК Должность, (ПодразделениеОрганизации.Владелец).* КАК Организация}) КАК ШтатноеРасписаниеОрганизацийСрезПоследних
                ПО ШтатноеРасписаниеОрганизаций.Должность = ШтатноеРасписаниеОрганизацийСрезПоследних.Должность
                    И ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации = ШтатноеРасписаниеОрганизацийСрезПоследних.ПодразделениеОрганизации
                {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, ) КАК РаботникиОрганизации
                    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                        СтавкаОсвобождена.Сотрудник КАК Сотрудник,
                        СтавкаОсвобождена.Организация КАК Организация,
                        СтавкаОсвобождена.ОсвобождатьСтавку КАК ОсвобождатьСтавку
                    ИЗ
                        (ВЫБРАТЬ
                            СтавкаОсвобождена.Сотрудник КАК Сотрудник,
                            СтавкаОсвобождена.Организация КАК Организация,
                            МАКСИМУМ(ВЫБОР
                                    КОГДА СтавкаОсвобождена.ОсвобождатьСтавку1
                                            ИЛИ СтавкаОсвобождена.ОсвобождатьСтавку2
                                            ИЛИ СтавкаОсвобождена.ОсвобождатьСтавку3
                                        ТОГДА ИСТИНА
                                    ИНАЧЕ ЛОЖЬ
                                КОНЕЦ) КАК ОсвобождатьСтавку
                        ИЗ
                            (ВЫБРАТЬ
                                СостояниеРаботниковОрганизацийСрезПоследних.Организация КАК Организация,
                                СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
                                ВЫБОР
                                    КОГДА КомандировкиОрганизацийРаботникиОрганизации.ОсвобождатьСтавку = ИСТИНА
                                        ТОГДА ИСТИНА
                                    ИНАЧЕ ЛОЖЬ
                                КОНЕЦ КАК ОсвобождатьСтавку1,
                                ВЫБОР
                                    КОГДА ОтпускаОрганизацийРаботникиОрганизации.ОсвобождатьСтавку = ИСТИНА
                                        ТОГДА ИСТИНА
                                    ИНАЧЕ ЛОЖЬ
                                КОНЕЦ КАК ОсвобождатьСтавку2,
                                ВЫБОР
                                    КОГДА ОтсутствиеНаРаботеОрганизацийРаботникиОрганизации.ОсвобождатьСтавку = ИСТИНА
                                        ТОГДА ИСТИНА
                                    ИНАЧЕ ЛОЖЬ
                                КОНЕЦ КАК ОсвобождатьСтавку3
                            ИЗ
                                РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(&период, ) КАК СостояниеРаботниковОрганизацийСрезПоследних
                                    ЛЕВОЕ СОЕДИНЕНИЕ Документ.КомандировкиОрганизаций.РаботникиОрганизации КАК КомандировкиОрганизацийРаботникиОрганизации
                                    ПО СостояниеРаботниковОрганизацийСрезПоследних.Регистратор = КомандировкиОрганизацийРаботникиОрганизации.Ссылка
                                    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ОтпускаОрганизацийРаботникиОрганизации
                                    ПО СостояниеРаботниковОрганизацийСрезПоследних.Регистратор = ОтпускаОрганизацийРаботникиОрганизации.Ссылка
                                    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтсутствиеНаРаботеОрганизаций.РаботникиОрганизации КАК ОтсутствиеНаРаботеОрганизацийРаботникиОрганизации
                                    ПО СостояниеРаботниковОрганизацийСрезПоследних.Регистратор = ОтсутствиеНаРаботеОрганизацийРаботникиОрганизации.Ссылка
                            ГДЕ
                                НЕ(СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &Период
                                            И СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))) КАК СтавкаОсвобождена
                       
                        СГРУППИРОВАТЬ ПО
                            СтавкаОсвобождена.Сотрудник,
                            СтавкаОсвобождена.Организация) КАК СтавкаОсвобождена) КАК СтавкаОсвобождена
                    ПО РаботникиОрганизации.Сотрудник = СтавкаОсвобождена.Сотрудник
                        И РаботникиОрганизации.Организация = СтавкаОсвобождена.Организация
                ПО ШтатноеРасписаниеОрганизаций.Должность = РаботникиОрганизации.Должность
                    И ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации = РаботникиОрганизации.ПодразделениеОрганизации
                    И (РаботникиОрганизации.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))}
        ГДЕ
            НЕ РаботникиОрганизации.Сотрудник ЕСТЬ NULL 
        {ГДЕ
            ШтатноеРасписаниеОрганизацийСрезПоследних.ГрафикРаботы КАК ГрафикРаботы,
            ШтатноеРасписаниеОрганизацийСрезПоследних.ВидТарифнойСтавки КАК ВидТарифнойСтавки,
            ШтатноеРасписаниеОрганизацийСрезПоследних.ВалютаТарифнойСтавки КАК ВалютаТарифнойСтавки,
            ШтатноеРасписаниеОрганизацийСрезПоследних.МинимальнаяТарифнаяСтавка,
            ШтатноеРасписаниеОрганизацийСрезПоследних.МаксимальнаяТарифнаяСтавка,
            ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок,
            РаботникиОрганизации.Сотрудник.*,
            (ВЫБОР
                    КОГДА НЕ СтавкаОсвобождена.ОсвобождатьСтавку ЕСТЬ NULL 
                            И СтавкаОсвобождена.ОсвобождатьСтавку
                        ТОГДА РаботникиОрганизации.ЗанимаемыхСтавок
                    ИНАЧЕ 0
                КОНЕЦ) КАК ОсвобожденныхСтавок,
            РаботникиОрганизации.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
            ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец.* КАК Организация,
            ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.*}
       
    
       
  3. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Код:
     
    ОБЪЕДИНИТЬ ВСЕ
       
        ВЫБРАТЬ
            ШтатнаяРасстановкаГрупп.Организация,
            ШтатнаяРасстановкаГрупп.ПодразделениеОрганизации,
            ШтатнаяРасстановкаГрупп.Должность,
            ШтатнаяРасстановкаГрупп.ВидТарифнойСтавки,
            ШтатнаяРасстановкаГрупп.ГрафикРаботы,
            ШтатнаяРасстановкаГрупп.ВалютаТарифнойСтавки,
            ШтатнаяРасстановкаГрупп.КоличествоСтавок,
            ШтатнаяРасстановкаГрупп.МинимальнаяТарифнаяСтавка,
            ШтатнаяРасстановкаГрупп.МаксимальнаяТарифнаяСтавка,
            &СотрудникПустой,
            ШтатнаяРасстановкаГрупп.ОсвобожденныхСтавок,
            ШтатнаяРасстановкаГрупп.КоличествоСтавок - ШтатнаяРасстановкаГрупп.ЗанимаемыхСтавок,
            NULL
        ИЗ
            (ВЫБРАТЬ
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец КАК Организация,
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                ШтатноеРасписаниеОрганизаций.Должность КАК Должность,
                МАКСИМУМ(ШтатноеРасписаниеОрганизацийСрезПоследних.ВидТарифнойСтавки) КАК ВидТарифнойСтавки,
                МАКСИМУМ(ШтатноеРасписаниеОрганизацийСрезПоследних.ГрафикРаботы) КАК ГрафикРаботы,
                МАКСИМУМ(ШтатноеРасписаниеОрганизацийСрезПоследних.ВалютаТарифнойСтавки) КАК ВалютаТарифнойСтавки,
                МАКСИМУМ(ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок) КАК КоличествоСтавок,
                МАКСИМУМ(ШтатноеРасписаниеОрганизацийСрезПоследних.МинимальнаяТарифнаяСтавка) КАК МинимальнаяТарифнаяСтавка,
                МАКСИМУМ(ШтатноеРасписаниеОрганизацийСрезПоследних.МаксимальнаяТарифнаяСтавка) КАК МаксимальнаяТарифнаяСтавка,
                СУММА(ВЫБОР
                        КОГДА НЕ СтавкаОсвобождена.ОсвобождатьСтавку ЕСТЬ NULL 
                                И СтавкаОсвобождена.ОсвобождатьСтавку
                            ТОГДА РаботникиОрганизации.ЗанимаемыхСтавок
                        ИНАЧЕ 0
                    КОНЕЦ) КАК ОсвобожденныхСтавок,
                СУММА(РаботникиОрганизации.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок
            ИЗ
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                    ШтатноеРасписаниеОрганизаций.Должность КАК Должность
                ИЗ
                    РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций
                {ГДЕ
                    ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец.* КАК Организация,
                    ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.* КАК ПодразделениеОрганизации,
                    ШтатноеРасписаниеОрганизаций.Должность.* КАК Должность}
               
                ОБЪЕДИНИТЬ
               
                ВЫБРАТЬ РАЗЛИЧНЫЕ
                    РаботникиОрганизаций.ПодразделениеОрганизации,
                    РаботникиОрганизаций.Должность
                ИЗ
                    (ВЫБРАТЬ РАЗЛИЧНЫЕ
                        РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                        РаботникиОрганизаций.Должность КАК Должность,
                        РаботникиОрганизаций.ОбособленноеПодразделение КАК ОбособленноеПодразделение
                    ИЗ
                        РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций) КАК РаботникиОрганизаций
                {ГДЕ
                    РаботникиОрганизаций.ОбособленноеПодразделение.* КАК Организация,
                    РаботникиОрганизаций.ПодразделениеОрганизации.* КАК ПодразделениеОрганизации,
                    РаботникиОрганизаций.Должность.* КАК Должность}) КАК ШтатноеРасписаниеОрганизаций
                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтатноеРасписаниеОрганизаций.СрезПоследних(&Период, {(ПодразделениеОрганизации).* КАК ПодразделениеОрганизации, (Должность).* КАК Должность, (ПодразделениеОрганизации.Владелец).* КАК Организация}) КАК ШтатноеРасписаниеОрганизацийСрезПоследних
                    ПО ШтатноеРасписаниеОрганизаций.Должность = ШтатноеРасписаниеОрганизацийСрезПоследних.Должность
                        И ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации = ШтатноеРасписаниеОрганизацийСрезПоследних.ПодразделениеОрганизации
                    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, ) КАК РаботникиОрганизации
                        ЛЕВОЕ СОЕДИНЕНИЕ (
                       
                        //sh 29.05.15
                        //ВЫБРАТЬ
                        //    СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
                        //    СостояниеРаботниковОрганизацийСрезПоследних.Организация КАК Организация,
                        //    НЕ ВозвратНаРаботуОрганизацийРаботникиОрганизации.ЗаниматьСтавку КАК ОсвобождатьСтавку  //sh
                        //ИЗ
                        //    Документ.ВозвратНаРаботуОрганизаций.РаботникиОрганизации КАК ВозвратНаРаботуОрганизацийРаботникиОрганизации
                        //        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(&Период, ) КАК СостояниеРаботниковОрганизацийСрезПоследних
                        //        ПО ВозвратНаРаботуОрганизацийРаботникиОрганизации.Ссылка = СостояниеРаботниковОрганизацийСрезПоследних.Регистратор
                        //            И ВозвратНаРаботуОрганизацийРаботникиОрганизации.Сотрудник = СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник
                        //            И ВозвратНаРаботуОрганизацийРаботникиОрганизации.ДатаВозврата = СостояниеРаботниковОрганизацийСрезПоследних.Период
                        //ГДЕ
                        //    НЕ(СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &Период
                        //                И СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
                        //
                        //ОБЪЕДИНИТЬ ВСЕ
                       
                        ВЫБРАТЬ
                            СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник,
                            СостояниеРаботниковОрганизацийСрезПоследних.Организация,
                            КомандировкиОрганизацийРаботникиОрганизации.ОсвобождатьСтавку
                        ИЗ
                            Документ.КомандировкиОрганизаций.РаботникиОрганизации КАК КомандировкиОрганизацийРаботникиОрганизации
                                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(&Период, ) КАК СостояниеРаботниковОрганизацийСрезПоследних
                                ПО КомандировкиОрганизацийРаботникиОрганизации.Ссылка = СостояниеРаботниковОрганизацийСрезПоследних.Регистратор
                                    И КомандировкиОрганизацийРаботникиОрганизации.Сотрудник = СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник
                                    И КомандировкиОрганизацийРаботникиОрганизации.ДатаНачала = СостояниеРаботниковОрганизацийСрезПоследних.Период
                        ГДЕ
                            НЕ(СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &Период
                                        И СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
                       
                        ОБЪЕДИНИТЬ ВСЕ
                       
                        ВЫБРАТЬ
                            СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник,
                            СостояниеРаботниковОрганизацийСрезПоследних.Организация,
                            ОтпускаОрганизацийРаботникиОрганизации.ОсвобождатьСтавку
                        ИЗ
                            Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ОтпускаОрганизацийРаботникиОрганизации
                                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(&Период, ) КАК СостояниеРаботниковОрганизацийСрезПоследних
                                ПО ОтпускаОрганизацийРаботникиОрганизации.Ссылка = СостояниеРаботниковОрганизацийСрезПоследних.Регистратор
                                    И ОтпускаОрганизацийРаботникиОрганизации.Сотрудник = СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник
                                    И ОтпускаОрганизацийРаботникиОрганизации.ДатаНачала = СостояниеРаботниковОрганизацийСрезПоследних.Период
                        ГДЕ
                            НЕ(СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &Период
                                        И СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
                       
                        ОБЪЕДИНИТЬ ВСЕ
                       
                        ВЫБРАТЬ
                            СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник,
                            СостояниеРаботниковОрганизацийСрезПоследних.Организация,
                            ОтсутствиеНаРаботеОрганизацийРаботникиОрганизации.ОсвобождатьСтавку
                        ИЗ
                            Документ.ОтсутствиеНаРаботеОрганизаций.РаботникиОрганизации КАК ОтсутствиеНаРаботеОрганизацийРаботникиОрганизации
                                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(&Период, ) КАК СостояниеРаботниковОрганизацийСрезПоследних
                                ПО ОтсутствиеНаРаботеОрганизацийРаботникиОрганизации.Ссылка = СостояниеРаботниковОрганизацийСрезПоследних.Регистратор
                                    И ОтсутствиеНаРаботеОрганизацийРаботникиОрганизации.Сотрудник = СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник
                                    И ОтсутствиеНаРаботеОрганизацийРаботникиОрганизации.ДатаНачала = СостояниеРаботниковОрганизацийСрезПоследних.Период
                        ГДЕ
                            НЕ(СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &Период
                                        И СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))) КАК СтавкаОсвобождена
                        ПО РаботникиОрганизации.Сотрудник = СтавкаОсвобождена.Сотрудник
                            И РаботникиОрганизации.Организация = СтавкаОсвобождена.Организация
                    ПО ШтатноеРасписаниеОрганизаций.Должность = РаботникиОрганизации.Должность
                        И ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации = РаботникиОрганизации.ПодразделениеОрганизации
                        И (РаботникиОрганизации.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))}
            ГДЕ
                НЕ РаботникиОрганизации.Сотрудник ЕСТЬ NULL 
            {ГДЕ
                ШтатноеРасписаниеОрганизацийСрезПоследних.ГрафикРаботы КАК ГрафикРаботы,
                ШтатноеРасписаниеОрганизацийСрезПоследних.ВидТарифнойСтавки КАК ВидТарифнойСтавки,
                ШтатноеРасписаниеОрганизацийСрезПоследних.ВалютаТарифнойСтавки КАК ВалютаТарифнойСтавки,
                ШтатноеРасписаниеОрганизацийСрезПоследних.МинимальнаяТарифнаяСтавка,
                ШтатноеРасписаниеОрганизацийСрезПоследних.МаксимальнаяТарифнаяСтавка,
                ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок,
                РаботникиОрганизации.Сотрудник.*,
                (ВЫБОР
                        КОГДА НЕ СтавкаОсвобождена.ОсвобождатьСтавку ЕСТЬ NULL 
                                И СтавкаОсвобождена.ОсвобождатьСтавку
                            ТОГДА РаботникиОрганизации.ЗанимаемыхСтавок
                        ИНАЧЕ 0
                    КОНЕЦ) КАК ОсвобожденныхСтавок,
                РаботникиОрганизации.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец.* КАК Организация,
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.*}
           
            СГРУППИРОВАТЬ ПО
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации,
                ШтатноеРасписаниеОрганизаций.Должность,
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец) КАК ШтатнаяРасстановкаГрупп
        ГДЕ
            ШтатнаяРасстановкаГрупп.КоличествоСтавок - ШтатнаяРасстановкаГрупп.ЗанимаемыхСтавок > 0
       
        ОБЪЕДИНИТЬ ВСЕ
       
        ВЫБРАТЬ
            ШтатнаяРасстановкаНН.Организация,
            ШтатнаяРасстановкаНН.ПодразделениеОрганизации,
            ШтатнаяРасстановкаНН.Должность,
            NULL,
            NULL,
            NULL,
            NULL,
            NULL,
            NULL,
            &СотрудникПустой,
            NULL,
            NULL,
            NULL
        ИЗ
            (ВЫБРАТЬ
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец КАК Организация,
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                ШтатноеРасписаниеОрганизаций.Должность КАК Должность,
                СУММА(ВЫБОР
                        КОГДА РаботникиОрганизации.ЗанимаемыхСтавок = NULL
                            ТОГДА 0
                        ИНАЧЕ РаботникиОрганизации.ЗанимаемыхСтавок
                    КОНЕЦ) КАК ЗанимаемыхСтавок
            ИЗ
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                    ШтатноеРасписаниеОрганизаций.Должность КАК Должность
                ИЗ
                    РегистрСведений.ШтатноеРасписаниеОрганизаций.СрезПоследних(&Период, ) КАК ШтатноеРасписаниеОрганизаций
                ГДЕ
                    ШтатноеРасписаниеОрганизаций.КоличествоСтавок <> 0
                {ГДЕ
                    ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец.* КАК Организация,
                    ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.* КАК ПодразделениеОрганизации,
                    ШтатноеРасписаниеОрганизаций.Должность.* КАК Должность}) КАК ШтатноеРасписаниеОрганизаций
                    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, ) КАК РаботникиОрганизации
                    ПО ШтатноеРасписаниеОрганизаций.Должность = РаботникиОрганизации.Должность
                        И ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации = РаботникиОрганизации.ПодразделениеОрганизации
                        И (РаботникиОрганизации.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))}
            ГДЕ
                РаботникиОрганизации.ЗанимаемыхСтавок ЕСТЬ NULL 
            {ГДЕ
                РаботникиОрганизации.Сотрудник.*,
                РаботникиОрганизации.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок,
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец.* КАК Организация,
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.*}
           
            СГРУППИРОВАТЬ ПО
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации,
                ШтатноеРасписаниеОрганизаций.Должность,
                ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Владелец) КАК ШтатнаяРасстановкаНН) КАК ВложенныйЗапрос
    {ГДЕ
        ВложенныйЗапрос.Организация.*,
        ВложенныйЗапрос.ПодразделениеОрганизации.*,
        ВложенныйЗапрос.Должность.*,
        ВложенныйЗапрос.ВидТарифнойСтавки.*,
        ВложенныйЗапрос.ГрафикРаботы.*,
        ВложенныйЗапрос.ВалютаТарифнойСтавки.*,
        ВложенныйЗапрос.КоличествоСтавок,
        ВложенныйЗапрос.МинимальнаяТарифнаяСтавка,
        ВложенныйЗапрос.МаксимальнаяТарифнаяСтавка,
        ВложенныйЗапрос.Сотрудник.*,
        ВложенныйЗапрос.ОсвобожденныхСтавок,
        ВложенныйЗапрос.ЗанимаемыхСтавок}
    
    УПОРЯДОЧИТЬ ПО
        Организация,
        ПодразделениеОрганизации,
        Должность,
        Сотрудник
    
    
    --- Объединение сообщений, 2 июн 2015 ---
    Весь код не влез, поэтому разбила на 2 части
  4. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
  5. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
  6. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    А че ни одной роли не назначено? Как СКД опредилить итоговые поля?
    Вы в той ссылке что я дал в последнем посту есть ссылка на статью на ИТС - почитайте
  7. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Указала роли - ничего не изменилось все лишнее сворачивается в пустого сотрудника (как на рис.2)
    [​IMG]
  8. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Пробовала также ставить Освобожденные ставки как Измерение с родителем Сотрудник - тоже без изменений(
  9. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Доброе время. Ну вы не совсем поняли смысл того что было написано
    Вот у Вас Измерение Подразделение, насколько я по скрину вижу - родитель у него Организация

    зачем поставили?

    Там же в примерах было написано что родиетль это когда идет связь типа
    Контрагент.ДоговорКонтрагента
    И вы в итогах выбираете Договоры Контрагента без самого контрагента, так вот для того что бы правильно итоги считал надо указывать родителя
    --- Объединение сообщений, 3 июн 2015 ---
    Ну тут сначало надо проанализировать запрос, на первый взгляд я так понимаю у вас есть объедениние двух запросв в певом есть сотрудники во втором - пустые как раз = правильно я понимаю?
    Еще вопрос сразу если у Вас при объединении поле Сотрудник объединяется с &пустойСотрудник, то поле Сотрудник1 с NULL, вам вообзе сотрудник 1 для чего?
    Я бы сначало взял и выполнил второй запрос отдельно с условием и посмотрел что выдает
    Последнее редактирование: 3 июн 2015

Поделиться этой страницей