|
Вывод результата компоновки в таблицу значений | ☑ | ||
---|---|---|---|---|
0
Zixxx
02.10.13
✎
16:32
|
Есть отчет, он выводить заказы покупателей и количество товара которое осталось отгрузить. Пользователи накладывают отборы, а после я получают ТЗ из компоновки и создаю заказ поставщику. Данные собираю следующим кодом:
СхемаКомпоновкиДанных = ОтчетОбъект.СхемаКомпоновкиДанных; // Подготовка компоновщика макета компоновки данных. КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, ОтчетОбъект.КомпоновщикНастроек.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКД = Новый ПроцессорКомпоновкиДанных; ПроцессорКД.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.ОтображатьПроцентВывода = Истина; ДеревоРезультата = Новый ДеревоЗначений; ПроцессорВывода.УстановитьОбъект(ДеревоРезультата); ПроцессорВывода.Вывести(ПроцессорКД); Проблема в том что пользователи могут убрать группировку или колонку, что приведет к ошибке. Например для заказа поставщику мне нужно количество, я ожидаю его получить в соответствующей колонке, которой нет. Пробовал получить настройки по умолчанию но ничего не вышло. Подскажите как получить настройки по умолчанию и сохранить при этом отборы. |
|||
1
samozvanec
02.10.13
✎
16:43
|
1. запомнить отборы
2. восстановить настройки по умолчанию 3. восстановить отборы |
|||
2
Zixxx
02.10.13
✎
16:56
|
(1) Уже пробовал, делал так...
СхемаКомпоновкиДанных = ОтчетОбъект.СхемаКомпоновкиДанных; НастройкиПоУмолчанию = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; // Подготовка компоновщика макета компоновки данных. КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиПоУмолчанию,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); Выводит все поля пустые, пусто |
|||
3
samozvanec
02.10.13
✎
16:58
|
(2) где запоминаешь и восстанавливаешь отборы? настройки не пустые?
|
|||
4
Zixxx
02.10.13
✎
17:44
|
(3) Отборы пока можно опустить, как быть с настройками по умолчанию? Почему когда я их выдергиваю из схемы и подставляю в КомпоновщикМакета результат пустой?
По этапам и так понятно что нужно сохранить, получить и восстановить, как кодом это реализовать? |
|||
5
samozvanec
02.10.13
✎
18:20
|
(4) в отладчике посмотри, когда настройки по умолчанию получаешь - они заполнены?
|
|||
6
Лефмихалыч
02.10.13
✎
18:32
|
может дело в том, что компоновщик как-то черезжопно колонки переименовывает? Глянь отладчиком, может данные есть, но колонки по-другому называются
|
|||
7
Zixxx
02.10.13
✎
18:57
|
Не выводит данные потому что не установлены параметры в запросе. При открытии получаю элементы в "Настройки.ПараметрыДанных.Элементы" и устанавливаю для каждого нужное значение.
Но когда получаю настройки по умолчанию в "Настройки.ПараметрыДанных.Элементы" нет ни одного параметра, каким методом их можно получить из запроса? |
|||
8
Очкарик
02.10.13
✎
18:59
|
Напиши макет компоновки кодом и не парь мозги.
|
|||
9
Zixxx
02.10.13
✎
19:00
|
(8) например?
|
|||
10
Очкарик
02.10.13
✎
19:01
|
Только ответь на один вопрос, набуя тебе компоновка если ты не хочешь чтобы юзеры ей управляли?
|
|||
11
Очкарик
02.10.13
✎
19:02
|
(9) Создаешь все кодом и ни один юзер ничего не сделает.
|
|||
12
Zixxx
02.10.13
✎
19:06
|
(10) Вроде наоборот хочу чтобы управляли, а где сказал что не хочу?
|
|||
13
Очкарик
02.10.13
✎
19:09
|
(12) Запрети пользователям менять группировки.
|
|||
14
Zixxx
02.10.13
✎
19:12
|
(13) Так это ты только это сказал, до тебя такого никто не говорил
|
|||
15
Zixxx
02.10.13
✎
19:44
|
Сделал так, херня какая-то, проще никак?
// 1 Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; Для Каждого Параметр Из ОтчетОбъект.КомпоновщикНастроек.ФиксированныеНастройки.ПараметрыДанных.Элементы Цикл НовыйПараметр = Настройки.ПараметрыДанных.Элементы.Добавить(); ЗаполнитьЗначенияСвойств(НовыйПараметр, Параметр); КонецЦикла; ОтчетСвойствоНомерМашины = Настройки.ПараметрыДанных.Элементы.Найти("Код"); // Конец периода Если Не ЗначениеЗаполнено(ОтчетСвойствоНомерМашины.Значение) Тогда КонецПериода = КонецМесяца(ТекущаяДата()); ПараметрДатаКон = ОтчетСвойствоНомерМашины; ПараметрДатаКон.Использование = Истина; ПараметрДатаКон.Значение = "978"; КонецЕсли; // 2 Для Каждого Отбор Из ОтчетОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл НовыйОтбор = СхемаКомпоновкиДанных.ВариантыНастроек.Основной.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЗаполнитьЗначенияСвойств(НовыйОтбор, Отбор); КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |