Имя: Пароль:
1C
1С v8
Как решить задачу с построителем отчета + отбором возможно
0 skupidom
 
24.08.17
18:48
Есть процедура заполнения табличного документа из построителя отчета
Есть 5 групп проектов, в каждой группе несколько элементов.Есть рабочий отчет с использованием построителя и его отборов.Выполняется запрос с учетом параметров и отборов построителя и результат выводиться в табличный документ.Внимание ?:
Нужно пакетное формирование данных по группам проектов, но по каждой группе проектов нужно выводить отдельный табличный документ на отдельной вкладке панели.Сейчас отбор построителя работает без разъединения по каждой группе проекта и получает сводный результат в 1 табличный документ.Нужно это делать как-то в цикле с разбивкой либо отбора построителя по каждой группе проекта или как-то еще.Есть предложения?    

Процедура КнопкаСформироватьНажатие(Кнопка)
    

        СписокПроектовОтбор = ПередаваемыеНастройкиВОтчет();
        
        
        Для каждого Сп Из СписокПроектовОтбор Цикл
            
            СписокГруппПроектов = НОвый СписокЗначений;
            
            ГруппаПроектов = Сп.Значение;
            
            ЗапросПроектыГРуппы = Новый Запрос;
            ЗапросПроектыГРуппы.Текст =
            "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
            |    Проекты.Ссылка как Пр
            |ИЗ
            |    Справочник.Проекты КАК Проекты
            |ГДЕ
            |    Проекты.Родитель = &Группа";
            ЗапросПроектыГРуппы.УстановитьПараметр("Группа",ГруппаПроектов);
            ВыборкаЭлПроектов = ЗапросПроектыГРуппы.Выполнить().Выбрать();
            Пока ВыборкаЭлПроектов.Следующий() Цикл
                СписокГруппПроектов.Добавить(ВыборкаЭлПроектов.Пр);
            КонецЦикла;                
                        СформироватьОтчет(НовПоле,СписокГруппПроектов);            
        КонецЦикла;         
КонецПроцедуры
1 skupidom
 
24.08.17
21:28
Коллеги,прошу Ваших советов и внимание пожалуйста, не ужели ни у кого нет мыслей и предложений по решению задачки?
2 breezee
 
24.08.17
22:55
(1) А "Сформировать отчет" что делает? Могу поспорить, что формирует отчет и выводит его в таб.док. в своем запросе сделай итог по проектам и формируй отчет заново после каждого прохода по группировке
3 skupidom5
 
25.08.17
09:56
Не хотелось бы изменять логику уже написаных рабочих отчетов, а если рассмотреть такой вариант реализации:
в цикле по группам проектов добавлять построителю программно отбор на каждом цикле,что проекты в группе витка цикла и сразу формировать в цикле отчет и выводить в табличный документ ?
4 breezee
 
25.08.17
10:17
(3) Можно и так) А в чем, собственно, проблема?
5 skupidom5
 
25.08.17
10:22
как лучше, динамический програмно добавленный отбор может вызвать ошибку..по минимальность доработок мне кажется он лучше
6 Ёпрст
 
гуру
25.08.17
10:24
(4) проблема, в этом
http://www.forum.mista.ru/index.php?user_id=66123
7 breezee
 
25.08.17
10:26
(5) Дак вам только для одного отчета? Ну сделайте параметры, который только для этого отчета и преедавайте из этого отчета в вашу процедуру, а дельше в зависимости от того, откуда вызвано, делайте выборку по итогом и формирование разных доков или не делайте
8 skupidom5
 
25.08.17
10:33
передать параметр в процедуры формируемого отчета нужно:
1 переделать запрос = добавить в него параметр,
2 добавить сам параметр.
3 В пару-тройку процедур типового отчета передать этот параметр :(
Отчет типовой,придется переписать несколько типовых процедур отчета.Работать будет, но надо переписывать типовые инструменты.
Предлагаемое решение:
Не проще ли сделать отбором: он будет прописан только в моей не типовой обработке и не надо будет переписывать и добавлять типовые процедуры отчета ?
9 Вафель
 
25.08.17
10:34
если на отдельной вкладке - то эт 5 отчетов (схем)
10 breezee
 
25.08.17
10:37
(8) Хорошо, вы меня уговорили) Добавляйте
11 skupidom5
 
25.08.17
10:58
Я серьезно,\то будет решение или это ошибочно ?
12 breezee
 
25.08.17
11:30
(11) Я не знаю, вы задаете странные вопрос, попробуйте - если будет работать - значит решение, если не будет(на нескольких разных отчетах) - значит ошибка