8.х Отчет "Подразделения организации"

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем reno, 14 апр 2008.

  1. TopicStarter Overlay
    reno
    Offline

    reno

    Регистрация:
    29 дек 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Подскажите как написать отчет Подразделения Организации.
    В отчет должна выводиться организация, подразделение, сотрудник и должность.
    Если подразделение имеет "в ложенные" подразделения, то это необходимо каким-то образом показать, либо в обдельной колонке, либо "Родителей" выделять цветом.

    Вот что есть на данный момент:
    Код:
    Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет");
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	Организации.Наименование КАК Организация,
    |	ПодразделенияОрганизаций.Наименование КАК Подразделение,
    |	РаботникиОрганизаций.Должность КАК Должность,
    |	РаботникиОрганизаций.Сотрудник
    |ИЗ
    |	РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
    |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДолжностиОрганизаций КАК ДолжностиОрганизаций
    |		ПО РаботникиОрганизаций.Должность = ДолжностиОрганизаций.Ссылка
    |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
    |			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
    |			ПО ПодразделенияОрганизаций.Владелец = Организации.Ссылка
    |		ПО РаботникиОрганизаций.ПодразделениеОрганизации = ПодразделенияОрганизаций.Ссылка
    |ГДЕ
    |	Организации.Ссылка = &Организация
    |
    |СГРУППИРОВАТЬ ПО
    |	Организации.Наименование,
    |	ПодразделенияОрганизаций.Наименование,
    |	РаботникиОрганизаций.Сотрудник,
    |	РаботникиОрганизаций.Должность
    |ИТОГИ ПО
    |	ОБЩИЕ,
    |	Организация,
    |	Подразделение";
    
    Запрос.УстановитьПараметр("Организация", Организация);
    
    Результат = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги");
    ОбластьОрганизация = Макет.ПолучитьОбласть("Организация");
    ОбластьПодразделение = Макет.ПолучитьОбласть("Подразделение");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    
    ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    ВыборкаОбщийИтог.Следующий();		// Общий итог
    ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
    ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень());
    
    ВыборкаОрганизация = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаОрганизация.Следующий() Цикл
    ОбластьОрганизация.Параметры.Заполнить(ВыборкаОрганизация);
    ТабДок.Вывести(ОбластьОрганизация, ВыборкаОрганизация.Уровень());
    
    ВыборкаПодразделение = ВыборкаОрганизация.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаПодразделение.Следующий() Цикл
    ОбластьПодразделение.Параметры.Заполнить(ВыборкаПодразделение);
    ТабДок.Вывести(ОбластьПодразделение, ВыборкаПодразделение.Уровень());
    
    ВыборкаДетали = ВыборкаПодразделение.Выбрать();
    
    Пока ВыборкаДетали.Следующий() Цикл
    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
    КонецЦикла;
    КонецЦикла;
    КонецЦикла;
    
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
    
    
    
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Посмотри в сторону СКД - и это покажется мелочью :)
  3. Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Возникла такая же задача.
    И очень хочу чтобы это было мелочью :)
    Что такое СКД?
  4. Neon_tmn
    Offline

    Neon_tmn Опытный в 1С

    Регистрация:
    7 окт 2009
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    26
    Система Компановки Данных. Поторопился в вопросом. буду разбираться как с этим работать )

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