8.х ПостроительОтчета

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

  1. TopicStarter Overlay
    Cobie
    Offline

    Cobie

    Регистрация:
    8 июл 2015
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Привет:) всем. Подскажите, кто сталкивался с ПостроителемОтчетов .

    Нужно доработать отчет, сформированный таким образом. Запросы я изменила, в запросах добавились поля Должность и ДолжностьКод. Но вот вывести в макет - никак не получается.
    В макете добавила колонку с параметром Должность, установила Измерение=Истина для интересующего меня Доступного поля "Должность". В ИзмеренияСтрок добавила "Должность".
    А вот в отчет все равно не выводит(


    Работаю с ПостроителемОтчетов впервые( поэтому ориентуюсь плохо. Подскажите, кто в курсе дела) как добавить колонку ?
    Если нужен показать код, пишите что именно
    --- Объединение сообщений, 24 дек 2015 ---
    Код:
    Процедура ЗаполнитьНачальныеНастройки() Экспорт
     
        ТекстСотрудникиОрганизации = ПолучитьСотрудников("И Работники.Сотрудник в (&парамФизЛицо) ");
     
        ПостроительОтчета.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    РаботникиОрганизаций.Организация.Представление КАК Организация,
        |    РаботникиОрганизаций.ПодразделениеОрганизации.Представление КАК Подразделение,
        |    РаботникиОрганизаций.Сотрудник.Физлицо.Наименование КАК ФизЛицо,
        |   РаботникиОрганизаций.Должность,
        |   РаботникиОрганизаций.ДолжностьКод,
        |    Данные.Буква КАК Буква,
        |    ВЫБОР
        |        КОГДА Данные.НормаЧасовЗаМесяц < 0
        |            ТОГДА Данные.НормаЧасовЗаМесяц * -1
        |        ИНАЧЕ Данные.НормаЧасовЗаМесяц
        |    КОНЕЦ / РаботникиОрганизаций.Ставок КАК НормаЧасовЗаМесяц,
        |    СУММА(ВЫБОР
        |            КОГДА Данные.НормаЧасовЗаМесяц ЕСТЬ NULL
        |                    ИЛИ Данные.НормаЧасовЗаМесяц = 0
        |                    ИЛИ Данные.Буква.БуквенныйКод В (""Б"", ""Пр"", ""А"", ""Ддо"", ""ПВ"", ""ПВр"", ""Спр"",""МОБ"")
        |                   ИЛИ Данные.Буква.Наименование = ""БезОпл""
        |                ТОГДА 0
        |            ИНАЧЕ Данные.НормаЧасов / (ВЫБОР
        |                    КОГДА Данные.НормаЧасовЗаМесяц < 0
        |                        ТОГДА Данные.НормаЧасовЗаМесяц * -1
        |                    ИНАЧЕ Данные.НормаЧасовЗаМесяц
        |                КОНЕЦ * Данные.КоличествоНазначений) * РаботникиОрганизаций.Ставок
        |        КОНЕЦ) КАК Средняя,
        |    СУММА(Данные.НормаЧасов * ВЫБОР
        |            КОГДА Данные.Буква.БуквенныйКод В (""Б"", ""Пр"", ""А"", ""Ддо"", ""ПВ"", ""ПВр"", ""Спр"",""МОБ"")
        |                   ИЛИ Данные.Буква.Наименование = ""БезОпл""
        |                ТОГДА -1
        |            ИНАЧЕ 1
        |        КОНЕЦ) КАК Результат,
        |    СУММА(Данные.НормаЧасов * ВЫБОР
        |            КОГДА Данные.Буква.БуквенныйКод В (""Б"", ""Пр"", ""А"", ""Ддо"", ""ПВ"", ""ПВр"", ""Спр"",""МОБ"")
        |                   ИЛИ Данные.Буква.Наименование = ""БезОпл""
        |                ТОГДА 0
        |            ИНАЧЕ 1
        |        КОНЕЦ) КАК РезультатНовый
        |ИЗ    ( " + СтрЗаменить(ТекстСотрудникиОрганизации,"РАЗРЕШЕННЫЕ","") + " ) КАК РаботникиОрганизаций
        |
        |ЛЕВОЕ СОЕДИНЕНИЕ (
        |ВЫБРАТЬ
        |    ВложенныйЗапрос.Организация,
        |    ВложенныйЗапрос.Назначение КАК Сотрудник,
        |    ВложенныйЗапрос.ПериодДействияНачало,
        |    ВложенныйЗапрос.ПериодДействияКонец,
        |    ВложенныйЗапрос.Буква,
        |    ВложенныйЗапрос.НормаЧасовЗаМесяц,
        |    ВложенныйЗапрос.НормаЧасов,
        |    ВложенныйЗапрос.КоличествоНазначений
        |ИЗ
        |    (ВЫБРАТЬ
        |        ОсновныеНачисления.Организация КАК Организация,
        |        ОсновныеНачисления.Назначение КАК Назначение,
        |        ОсновныеНачисления.ПериодДействияНачало КАК ПериодДействияНачало,
        |        ОсновныеНачисления.ПериодДействияКонец КАК ПериодДействияКонец,
        |        ОсновныеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени КАК Буква,
        |        ОсновныеНачисления.НормаЧасовЗаМесяц КАК НормаЧасовЗаМесяц,
        |        ОсновныеНачисления.НормаЧасов КАК НормаЧасов,
        |        ВложенныйЗапрос.КоличествоНазначений КАК КоличествоНазначений
        |    ИЗ
        |        РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления
        |            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ОсновныеНачисления.Организация КАК Организация,
        |                КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ОсновныеНачисления.Назначение) КАК КоличествоНазначений,
        |                ОсновныеНачисления.Сотрудник КАК Сотрудник
        |            ИЗ
        |                РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления
        |            ГДЕ
        |                ОсновныеНачисления.ПериодРегистрации <= &парамКонец
        |                И ОсновныеНачисления.ПериодДействияНачало >= &парамНачало
        |                И ОсновныеНачисления.ПериодДействияКонец <= &парамКонец
        |                И ОсновныеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени <> &парамПустаяБуква
        |                И (НЕ(ОсновныеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОтпускПоУходуЗаРебенком)
        |                            ИЛИ ОсновныеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОтпускПоБеременностиИРодам)))
        |                И ЕСТЬNULL(ОсновныеНачисления.НормаЧасов, 0) <> 0
        |         
        |            СГРУППИРОВАТЬ ПО
        |                ОсновныеНачисления.Организация,
        |                ОсновныеНачисления.Сотрудник) КАК ВложенныйЗапрос
        |            ПО ОсновныеНачисления.Сотрудник = ВложенныйЗапрос.Сотрудник
        |    ГДЕ
        |        ОсновныеНачисления.ПериодРегистрации <= &парамКонец
        |        И ОсновныеНачисления.ПериодДействияНачало >= &парамНачало
        |        И ОсновныеНачисления.ПериодДействияКонец <= &парамКонец
        |        И ОсновныеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени <> &парамПустаяБуква
        |        И (НЕ(ОсновныеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОтпускПоУходуЗаРебенком)
        |                    ИЛИ ОсновныеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОтпускПоБеременностиИРодам)))
        |        И ЕСТЬNULL(ОсновныеНачисления.НормаЧасов, 0) <> 0
        | 
        |    СГРУППИРОВАТЬ ПО
        |        ОсновныеНачисления.Организация,
        |        ОсновныеНачисления.Назначение,
        |        ОсновныеНачисления.ПериодДействияНачало,
        |        ОсновныеНачисления.ПериодДействияКонец,
        |        ОсновныеНачисления.ВидРасчета.ОбозначениеВТабелеУчетаРабочегоВремени,
        |        ОсновныеНачисления.НормаЧасовЗаМесяц,
        |        ОсновныеНачисления.НормаЧасов,
        |        ВложенныйЗапрос.КоличествоНазначений
        | 
        |    ОБЪЕДИНИТЬ ВСЕ
        | 
        |    ВЫБРАТЬ
        |        РаботникиОрганизаций.Организация,
        |        РаботникиОрганизаций.Сотрудник,
        |        Календарь.ДатаКалендаря,
        |        Календарь.ДатаКалендаря,
        |        &ОбозначениеРабочееВремя,
        |        ДЕНЬ(КОНЕЦПЕРИОДА(Календарь.ДатаКалендаря, МЕСЯЦ)),
        |        МАКСИМУМ(ВЫБОР
        |                КОГДА РаботникиОрганизаций.Сотрудник ЕСТЬ NULL
        |                    ТОГДА 0
        |                ИНАЧЕ 1
        |            КОНЕЦ),
        |        1
        |    ИЗ
        |        РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Календарь
        |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК РаботникиОрганизаций
        |            ПО (РаботникиОрганизаций.ДатаОкончания >= Календарь.ДатаКалендаря)
        |                И (РаботникиОрганизаций.ДатаНачала <= Календарь.ДатаКалендаря)
        |    ГДЕ
        |        Календарь.ДатаКалендаря >= &парамНачало
        |        И Календарь.ДатаКалендаря <= &парамКонец
        | 
        |    СГРУППИРОВАТЬ ПО
        |        РаботникиОрганизаций.Организация,
        |        РаботникиОрганизаций.Сотрудник,
        |        Календарь.ДатаКалендаря,
        |        ДЕНЬ(КОНЕЦПЕРИОДА(Календарь.ДатаКалендаря, МЕСЯЦ)),
        |        Календарь.ДатаКалендаря) КАК ВложенныйЗапрос) КАК Данные
        |ПО    РаботникиОрганизаций.Сотрудник        = Данные.Сотрудник
        |И    РаботникиОрганизаций.Организация    = Данные.Организация
        |И    РаботникиОрганизаций.Начало    <= Данные.ПериодДействияНачало
        |И    РаботникиОрганизаций.Конец    >= Данные.ПериодДействияКонец
        |
        |
        |ГДЕ    Данные.Буква ЕСТЬ НЕ NULL
        |
        |{ГДЕ РаботникиОрганизаций.Организация                 КАК Организация,
        |     РаботникиОрганизаций.ПодразделениеОрганизации КАК Подразделение,
        |     РаботникиОрганизаций.Сотрудник.ФизЛицо КАК ФизЛицо    } 
        |
        |СГРУППИРОВАТЬ ПО
        |    РаботникиОрганизаций.Организация,
        |    РаботникиОрганизаций.ПодразделениеОрганизации,
        |    РаботникиОрганизаций.Сотрудник.Физлицо,
    
        |   РаботникиОрганизаций.Должность,
        |   РаботникиОрганизаций.ДолжностьКод,
    
        |    Данные.НормаЧасовЗаМесяц,
        |    Данные.Буква,
        |    РаботникиОрганизаций.Организация.Представление,
        |    РаботникиОрганизаций.ПодразделениеОрганизации.Представление,
        |    РаботникиОрганизаций.Сотрудник.Физлицо.Наименование,
        |    ВЫБОР
        |        КОГДА Данные.НормаЧасовЗаМесяц < 0
        |            ТОГДА Данные.НормаЧасовЗаМесяц * -1
        |        ИНАЧЕ Данные.НормаЧасовЗаМесяц
        |    КОНЕЦ / РаботникиОрганизаций.Ставок
        |УПОРЯДОЧИТЬ ПО
        |    Организация,
        |    Подразделение,
        |   Должность,
        |    ФизЛицо,
        |    Буква
        | 
        | ИТОГИ СУММА(Средняя), СУММА(Результат), СУММА(РезультатНовый), Максимум(НормаЧасовЗаМесяц) ПО      // СУММА(ФОТ),
        |    Общие,
        |    Организация,
        |    Подразделение,
        |    ФизЛицо,
        |    НормаЧасовЗаМесяц
        |
        |{ИТОГИ ПО
        |    Организация,
        |    Подразделение,
        |    Должность,
        |   ФизЛицо,
        |    НормаЧасовЗаМесяц,
        |    Буква
        |   }
        |";
     
        ПостроительОтчета.ЗаполнитьНастройки();
     
        СтруктураПредставлениеПолей = Новый Структура("Физлицо,ИмяВидаРасчета,ДолжностьКод",
                                                     "Работник","Буква", "Должность");
                                             
        УправлениеОтчетами.ЗаполнитьПредставленияПолей(СтруктураПредставлениеПолей, ПостроительОтчета);
     
        ПостроительОтчета.Отбор.Добавить("Организация");
        ПостроительОтчета.Отбор.Добавить("Подразделение");
     
        ПостроительОтчета.ИзмеренияКолонки.Добавить("Буква");
    
        ПостроительОтчета.ДоступныеПоля.Найти("Должность").Измерение = Истина;
        ПостроительОтчета.ИзмеренияСтроки.Добавить("Должность");
    КонецПроцедуры
    
    
    --- Объединение сообщений, 24 дек 2015 ---
    Последнее редактирование: 25 дек 2015
  2. TopicStarter Overlay
    Cobie
    Offline

    Cobie

    Регистрация:
    8 июл 2015
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    ау-Arghh-, есть кто:(?
  3. pavl_vs
    Offline

    pavl_vs Профессионал в 1С

    Регистрация:
    18 июн 2011
    Сообщения:
    343
    Симпатии:
    27
    Баллы:
    54
    Если отчет внешний, то сбрасывайте файлом - иначе много наводящих вопросов.
    Но один сейчас - отчет используете в ЗУП?

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