Имя: Пароль:
1C
1С v8
СКД. Управляемые формы. Объект данных. Быстрые настройки
0 stezhu
 
14.03.14
14:12
Добрый день, подскажите, как можно передать в скд объект данных и формировать отчёт по быстрым настройкам

Когда выполняю компоновку с настройками по умоланию - пишет что параметры не заполнены, а как вытащить быстрые - не в курсе, может у кого-то есть наработанный вариант?

Процедура ВыводОтчета(Результат, СтрукТабл)
ОбъектДокумента = РеквизитФормыВЗначение("Отчет");

//помещаем табличную часть Товары в структуру с наименованием ТоварыСКД так же, как мы указали в самой СКД имя объекта, содержащего данные

НаборДанных = Новый Структура;

НаборДанных.Вставить("НаборДанных",СтрукТабл.Таблица);

//получаем наш макет и выставляем настройки по умолчанию, чтобы все настройки вывода отчета брались из нашего макета

НашМакет = ОбъектДокумента.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

Настройки = НашМакет.НастройкиПоУмолчанию;

//создаем макет компоновки данных с нашими настройками

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновки = КомпоновщикМакета.Выполнить(НашМакет, Настройки);

//выполняем компоновку данных с нашим набором данных

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, НаборДанных);

//формируем табличный документ и выводим в него наш отчет

ДокументОтчета = Новый ТабличныйДокумент;

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВывода.УстановитьДокумент(Результат);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
1 vicof
 
14.03.14
14:31
ПараметрыСхемыКомпоновкиДанных (DataCompositionSchemaParameters)
ПараметрыСхемыКомпоновкиДанных (DataCompositionSchemaParameters)
Элементы коллекции:

ПараметрСхемыКомпоновкиДанных
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются параметры.
Возможно обращение к параметра посредством оператора [...]. В качестве аргумента передается индекс (нумерация с 0), имя параметра.

Методы:

Вставить (Insert)
Добавить (Add)
Индекс (IndexOf)
Количество (Count)
Найти (Find)
Очистить (Clear)
Получить (Get)
Сдвинуть (Move)
Удалить (Delete)

Описание:

Коллекция параметров схемы компоновки данных.

Доступность:

Сервер, толстый клиент, внешнее соединение.
См. также:

СхемаКомпоновкиДанных, свойство Параметры

--------------------------------------------------------------------------------

     Методическая информация
2 fisher
 
14.03.14
14:35
Что такое "быстрые настройки"? В смысле, пользовательские?
3 stezhu
 
14.03.14
14:39
Да, пользовательские
4 fisher
 
14.03.14
14:46
Попробуй через компоновщик настроек компоновки данных. Мне кажется, так проще всего будет. Воткни

КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НашМакет));
КомпоновщикНастроек.ЗагрузитьНастройки(НашМакет.НастройкиПоУмолчанию);
// при этом будут инициализированы и пользовательские настройки тоже. Ну а потом
МакетКомпоновки = КомпоновщикМакета.Выполнить(НашМакет, КомпоновщикНастроек.ПолучитьНастройки())
5 fisher
 
14.03.14
14:48
Ну а если их надо отредактировать, то опять же через КомпоновщикНастроек и доступаешься к ним.
6 stezhu
 
14.03.14
15:45
Получилоськак-то так, спасибо

    ОбъектДокумента = РеквизитФормыВЗначение("Отчет");
    НашМакет = ОбъектДокумента.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НашМакет));
    КомпоновщикНастроек.ЗагрузитьНастройки(НашМакет.НастройкиПоУмолчанию);
    КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Значение.Дата = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Значение.Дата;
    КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[1].Значение.Дата = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[1].Значение.Дата;
    КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[2].Значение = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[2].Значение;
    КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[3].Значение = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[3].Значение;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(НашМакет, КомпоновщикНастроек.ПолучитьНастройки());
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, СтрукТабл);
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
7 stezhu
 
14.03.14
15:47
появилась правда новая проблема - не исчезает надпись "Отчет не сформирован. Нажмите "Сформировать""

и команда
    ЭтаФорма.АвтоОтображениеСостояния = РежимАвтоОтображенияСостояния.НеОтображать;    

не помогает:(
Программист всегда исправляет последнюю ошибку.