8.х Как сделать выборку, не заносит данные в макет после запроса

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем katod, 30 мар 2017.

?

2*2

Голосование закрыто 31 мар 2017.
  1. 4

    0 голосов
    0,0%
  2. 5

    0 голосов
    0,0%
  1. TopicStarter Overlay
    katod
    Offline

    katod

    Регистрация:
    30 мар 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! необходимо чтобы формировался список численности по подразделениям.
    Создаю внешний отчет. 1С8.3
    Подскажите что делаю не так, если не заносятся данные в макет после выборки из запроса. в тз после запроса все правильно считается вроде.
    Код:
    ТабДок=Новый ТабличныйДокумент();
     
    Макет = Отчет.РеквизитМакет;
     
    ТЗ = Новый ТаблицаЗначений;
        ТЗ.Колонки.Добавить("Подразделение");
        ТЗ.Колонки.Добавить("РШ");
        ТЗ.Колонки.Добавить("РФ");
        ТЗ.Колонки.Добавить("РП");
        ТЗ.Колонки.Добавить("РС");
        ТЗ.Колонки.Добавить("РВР");
        ТЗ.Колонки.Добавить("РВД");
     
        ТЗ.Колонки.Добавить("СпШ");
        ТЗ.Колонки.Добавить("СпФ");
        ТЗ.Колонки.Добавить("СпП");
        ТЗ.Колонки.Добавить("СпС");
        ТЗ.Колонки.Добавить("СпВР");
        ТЗ.Колонки.Добавить("СпВД");
     
        Запрос1=Новый Запрос;
        Запрос1.Текст =
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    ТекущиеКадровые.ТекущееПодразделение КАК ТекущееПодразделение,
        |    ДопРеквизитыСрезПоследних.Категория КАК Категория,
        |    СУММА(ВЫБОР
        |            КОГДА СостоянияСотрудниковСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Факт)
        |                ТОГДА 1
        |            ИНАЧЕ 0
        |        КОНЕЦ) КАК ФАКТ,
        |    СУММА(ВЫБОР
        |            КОГДА СостоянияСотрудниковСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком)
        |                ТОГДА 1
        |            ИНАЧЕ 0
        |        КОНЕЦ) КАК ВД,
        |    СУММА(ВЫБОР
        |            КОГДА ДопРеквизитыСрезПоследних.ХарактерРаботы = ЗНАЧЕНИЕ(Перечисление.ХарактерРаботы.РаботающийНаВременнойРаботе)
        |                ТОГДА 1
        |            ИНАЧЕ 0
        |        КОНЕЦ) КАК ВР,
        |    СУММА(ВЫБОР
        |            КОГДА ИсторияСотрСрезПоследних.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство)
        |                    ИЛИ ИсторияСотрСрезПоследних.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ВнутреннееСовместительство)
        |                ТОГДА 1
        |            ИНАЧЕ 0
        |        КОНЕЦ) КАК Сов,
        |    СУММА(ВЫБОР
        |            КОГДА ДопРеквизитыСрезПоследних.ХарактерРаботы = ЗНАЧЕНИЕ(Перечисление.ХарактерРаботы.РаботающийНаПостояннойРаботе)
        |                    И СостоянияСотрудниковСрезПоследних.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком)
        |                    И ИсторияСотрСрезПоследних.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство)
        |                    И ИсторияСотрСрезПоследних.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ВнутреннееСовместительство)
        |                ТОГДА 1
        |            ИНАЧЕ 0
        |        КОНЕЦ) КАК Пост
        |ИЗ
        |    РегистрСведений.СостоянияСотрудников.СрезПоследних КАК СостоянияСотрудниковСрезПоследних
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровые КАК ТекущиеКадровые
        |        ПО СостоянияСотрудниковСрезПоследних.Сотрудник = ТекущиеКадровые.Сотрудник
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДопРеквизиты.СрезПоследних КАК ДопРеквизитыСрезПоследних
        |        ПО СостоянияСотрудниковСрезПоследних.Сотрудник = ДопРеквизитыСрезПоследних.Сотрудник
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияСотр.СрезПоследних КАК ИсторияСотрСрезПоследних
        |        ПО СостоянияСотрудниковСрезПоследних.Сотрудник = ИсторияСотрСрезПоследних.Сотрудник
        |ГДЕ
        |    ТекущиеКадровые.ТекущееПодразделение В ИЕРАРХИИ(&ТекущееПодразделение)
        |
        |СГРУППИРОВАТЬ ПО
        |    ТекущиеКадровые.ТекущееПодразделение,
        |    ДопРеквизитыСрезПоследних.Категория
        |
        |УПОРЯДОЧИТЬ ПО
        |    ТекущееПодразделение
        |ИТОГИ
        |    СУММА(ФАКТ),
        |    СУММА(ВД),
        |    СУММА(ВР),
        |    СУММА(Сов),
        |    СУММА(Пост)
        |ПО
        |    ТекущееПодразделение ТОЛЬКО ИЕРАРХИЯ";
     
        Запрос1.УстановитьПараметр("ТекущееПодразделение",Подразделение);
        РезультатЗапроса = Запрос1.Выполнить(); 
        ТабДок.Очистить();
      
        Шапка=Макет.ПолучитьОбласть("Шапка");
        Шапка.Параметры.Подразделение=Подразделение; 
        ТабДок.Вывести(Шапка);
     
        ОснБлок=Макет.ПолучитьОбласть("ОснБлок");
        
        Выборка = РезультатЗапроса.Выбрать(); 
     
        Пока Выборка.Следующий() цикл
         
            Стр = ТЗ.Добавить();
         
            Стр.Подразделение=Выборка.ТекущееПодразделение;
            ОснБлок.Параметры.Подразделение = Стр.Подразделение;
         
            ОснБлок.Параметры.Заполнить(Выборка);
            Если Выборка.Категория= Справочники.КВ_КатегорииСотрудников.НайтиПоКоду("000000001") Тогда    //специалисты
                Стр.СпФ=Выборка.Факт;
                Стр.СпП=Выборка.Пост;
                Стр.СпС= Выборка.Сов;
                Стр.СпВР= Выборка.ВР;
                Стр.СпВД= Выборка.ВД;
            ИначеЕсли  Выборка.Категория= Справочники.КВ_КатегорииСотрудников.НайтиПоКоду("000000002") Тогда  //руковод
                Стр.РФ=Выборка.Факт;
                Стр.РП=Выборка.Пост;
                Стр.РС= Выборка.Сов;
                Стр.РВР= Выборка.ВР;
                Стр.РВД= Выборка.ВД;
            КонецЕсли;
             
            ТабДок.Вывести(ОснБлок);
         
        КонецЦикла;
                   
        тз.ВыбратьСтроку(); 
     
    
    ПС.:очень мало опыта.
    Последнее редактирование: 30 мар 2017
  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.224
    Симпатии:
    15
    Баллы:
    29
    в конце это зачем тз.ВыбратьСтроку();?


    вместо этого ТабДок.Показать();
  3. TopicStarter Overlay
    katod
    Offline

    katod

    Регистрация:
    30 мар 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Спасибо! Уже мне помогли.
    Код:
     Если Выборка.Категория= Справочники.КВ_КатегорииСотрудников.НайтиПоКоду("000000001") Тогда    //специалисты
                ОснБлок.Параметры.СпФ   =Выборка.Факт;
                ОснБлок.Параметры.СпП   =Выборка.Пост;
                ОснБлок.Параметры.СпС   = Выборка.Сов;
                ОснБлок.Параметры.СпВР = Выборка.ВР;
                ОснБлок.Параметры.СпВД = Выборка.ВД;
            ИначеЕсли  Выборка.Категория= Справочники.КВ_КатегорииСотрудников.НайтиПоКоду("000000002") Тогда  //руковод
                ОснБлок.Параметры.РФ   = Выборка.Факт;
                ОснБлок.Параметры.РП   = Выборка.Пост;
                ОснБлок.Параметры.РС   = Выборка.Сов;
                ОснБлок.Параметры.РВР = Выборка.ВР;
                ОснБлок.Параметры.РВД = Выборка.ВД;
            КонецЕсли;