Имя: Пароль:
1C
 
Как правильно поправить запрос по итогам
0 Tolstiy Beremenniy
 
03.10.18
15:14
Подскажите пожалуйста, как правильно поправить запрос по итогам.
Результат запроса, вывожу в дерево значений в табличной части
документа. Получается в ветки, по критериям я могу вывести данные.
А что бы выводить итоговые значения по должности и сотруднику,
как то нужно делать иначе запрос. Ну или дополнительные обработки,
этого. Не подскажите ли как правильно ли это сделать запросом?


    Запрос.Текст = "ВЫБРАТЬ
                   |    КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
                   |    С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Должность КАК Должность,
                   |    С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Критерий КАК Критерий,
                   |    С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.КБалл КАК КБалл,
                   |    С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.КДис КАК КДис,
                   |    С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Организация КАК Организация,
                   |    С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Подразделение КАК Подразделение,
                   |    С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.РуководительЗаполняющийБаллы КАК РуководительЗаполняющийБаллы
                   |ИЗ
                   |    РегистрСведений.С05_КритерииОценкиКачестваРаботыСотрудников.СрезПоследних(
                   |            ,
                   |            Подразделение = &Подразделение
                   |                И Организация = &Организация
                   |                И РуководительЗаполняющийБаллы = &Руководитель) КАК С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
                   |        ПО С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Организация = КадроваяИсторияСотрудниковСрезПоследних.Организация
                   |            И С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Подразделение = КадроваяИсторияСотрудниковСрезПоследних.Подразделение
                   |            И С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Должность = КадроваяИсторияСотрудниковСрезПоследних.Должность
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование";
    //Запрос.УстановитьПараметр("Период",        Объект.Период);
    Запрос.УстановитьПараметр("Организация",   Объект.Организация);
    Запрос.УстановитьПараметр("Подразделение", Объект.Подразделение);
    Запрос.УстановитьПараметр("Руководитель",  Объект.РуководительЗаполняющийБаллы);
    //Запрос.УстановитьПараметр("Руководитель",  Объект.РуководительЗаполняющийБаллы);
    Рез = Запрос.Выполнить();
    ТзИтогов = Запрос.Выполнить().Выгрузить();
    //
    ТекСотр = "";
    Если Не Рез.Пустой() Тогда
        тДерево = РеквизитФормыВЗначение("ДеревоКритериев");
        тДерево.Строки.Очистить();
        Выборка = Рез.Выбрать();
        ТекСотр = "";
        Пока Выборка.Следующий() Цикл
            Если ТекСотр = "" или ТекСотр <> Выборка.Сотрудник Тогда
                нСтр1                               = тДерево.Строки.Добавить();
                нСтр1.СтрСотрудникДолжностьКритерий = Выборка.Должность.Наименование +"-"+ Выборка.Сотрудник.Наименование;
                //
                ТзИтогов.Свернуть("Сотрудник, Должность", "КБалл");
                //
                нСтр1.КбаллМакс                     = Выборка.КБалл;
                нСтр1.КбаллФакт                     = 0.0;
                нСтр1.КдисМакс                      = Выборка.КДис;
                нСтр1.КдисФакт                      = 0.0;
                нСтр1.ЭтоСотрудник                  = Истина;
                нСтр1.Критерий                      = Справочники.C05_КритерииОценкиКачестваРаботыСотрудника.ПустаяСсылка();
                нСтр1.Сотрудник                     = Выборка.Сотрудник;
                нСтр1.Должность                     = Выборка.Должность;
                //
                нСтр2                               = нСтр1.Строки.Добавить();
                нСтр2.СтрСотрудникДолжностьКритерий = Выборка.Критерий.Наименование;
                нСтр2.КбаллМакс                     = Выборка.КБалл;
                нСтр2.КбаллФакт                     = 0.0;
                нСтр2.КдисМакс                      = Выборка.КДис;
                нСтр2.КдисФакт                      = 0.0;
                нСтр2.ЭтоСотрудник                  = Ложь;
                нСтр2.Критерий                      = Выборка.Критерий;
                нСтр2.Сотрудник                     = Справочники.Сотрудники.ПустаяСсылка();
                нСтр2.Должность                     = Справочники.Должности.ПустаяСсылка();
                //
            ИначеЕсли ТекСотр = Выборка.Сотрудник Тогда
                //
                нСтр2                               = нСтр1.Строки.Добавить();
                нСтр2.СтрСотрудникДолжностьКритерий = Выборка.Критерий.Наименование;
                нСтр2.КбаллМакс                     = Выборка.КБалл;
                нСтр2.КбаллФакт                     = 0.0;
                нСтр2.КдисМакс                      = Выборка.КДис;
                нСтр2.КдисФакт                      = 0.0;
                нСтр2.ЭтоСотрудник                  = Ложь;
                нСтр2.Критерий                      = Выборка.Критерий;
                нСтр2.Сотрудник                     = Справочники.Сотрудники.ПустаяСсылка();
                нСтр2.Должность                     = Справочники.Должности.ПустаяСсылка();
                //
                //нСтр1.Колонка1 = "Колонка 1";
                //нСтр1.Колонка2 = "Колонка 2";
                //
                //нСтр2 = нСтр1.Строки.Добавить();
                //нСтр2.Колонка1 = "Колонка 1";
                //нСтр2.Колонка2 = "Колонка 2";
            КонецЕсли;
            ТекСотр = Выборка.Сотрудник;
        КонецЦикла;
    КонецЕсли;


http://joxi.ru/Dr8XEbyU4lKRGr
1 tty12
 
03.10.18
15:24
Вкладка "Итоги" в конструкторе запросов и ОбходРезультатаЗапроса.ПоГруппировкам.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.