Имя: Пароль:
1C
1С v8
КомпоновщикНастроек на форме
0 Sasha_H
 
03.04.12
10:46
Преветствую.

Не получается на форме обработки программно подружить Настройки СКД. Эта обработка не имеет основной СКД для формы, так как здесь должно быть несколько схем компоновки и на закладках формы должны выводится определенные результаты со-но чтобы можно было донастроить каждую из них.

Для реализации сего я разбил формы по закладкам и к примеру на закладки "Продажи" помещаю "КомпоновщикНастроекКомпоновкиДанных" и перетаскиваю для визуализации (ПараметрыДанных, НастройкиОтбор, НастройкиВыбор).

Есть сам макет скд (продажи). Так вот начинаю в коде все это обрабатывать:

МОДУЛЬОБЪЕКТА:

Функция ПолучитьСхемуПродажи() Экспорт
   Возврат ПолучитьМакет("Продажи");
КонецФункции    

МОДУЛЬФОРМЫ:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
    УстановитьНачальныеНастройкиВыгрузки();
   
КонецПроцедуры

&НаСервере
Процедура УстановитьНачальныеНастройкиВыгрузки()
   
   ЭтотОбъект = РеквизитФормыВЗначение("Объект");
   
   СхемаКомпоновкиПродажи = ЭтотОбъект.ПолучитьСхемуПродажи();
   КомпоновщикНастроекПродаж.ЗагрузитьНастройки(СхемаКомпоновкиПродажи.НастройкиПоУмолчанию);
   КомпоновщикНастроекПродаж.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиПродажи));
   
КонецПроцедуры

Результат на форме удивил:
http://gyazo.com/50a14b1e893bd2906baa19e1cbca690f
поля выбора не найдены.

А вот программный код команды "Отобразить продажи":
&НаКлиенте
Процедура ОтобразитьПродажи(Команда)
   
   ПрочитатьДанныеПоПродажам();
   
КонецПроцедуры

&НаСервере
Процедура ПрочитатьДанныеПоПродажам()
   
   
   РезультатПродажи.Очистить();
   
   ЭтотОбъект = РеквизитФормыВЗначение("Объект");
   СхемаКомпоновкиПродажи = ЭтотОбъект.ПолучитьСхемуПродажи();
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   //Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиПродажи,СхемаКомпоновкиПродажи.НастройкиПоУмолчанию);
   Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиПродажи,КомпоновщикНастроекПродаж.ПолучитьНастройки());
   
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(Макет);
   
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   
   ПроцессорВывода.УстановитьДокумент(РезультатПродажи);
   ПроцессорВывода.Вывести(ПроцессорКомпоновки);
   
КонецПроцедуры

И результат на форме отображается по настройкам СКД макета (Продажи).

Подскажите, почему настройки не до конча отображаются. И если я на форме указываю период то он не влияет на формирование результата....

Очень буду благодарен.
1 Sasha_H
 
03.04.12
10:51
Еще дополню, что тестировал на отчете отдельном без программной реализации, все нормально работает, период, отборы все нормально проходит.
2 Sasha_H
 
03.04.12
11:04
Люди разве никто не сталкивался, я тут на форуме поиском прошуршал делали такое, что я не так делаю, почему программно не отображаются корректно настройки?!
3 Sasha_H
 
03.04.12
11:27
+ап
4 Sasha_H
 
03.04.12
11:52
еще разок апну
5 Sasha_H
 
03.04.12
12:30
Найдено, моет кому понадобится:

Редактирование настроек для не основной схемы компоновки данных

Иногда требуется обеспечить редактирование настроек компоновки данных не для основной схемы компоновки данных отчета, либо вообще не в отчете.

Для обеспечения редактирования настроек произвольной схемы компоновки данных нужно инициализировать компоновщик настроек источником доступных настроек. После инициализации компоновщика настроек он будет оперировать доступными полями схемы, источник которой ему установлен.

В обычной форме можно использовать источник доступных настроек для схемы компоновки данных.

Пример:


КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема));
В данном примере предполагается, что в переменной Схема находится схема компоновки данных.

В управляемой форме источник доступных настроек для схемы компоновки данных на клиенте работать не может. Поэтому в управляемой форме нужно создавать источник доступных настроек для адреса схемы компоновки данных.

В качестве адреса схемы компоновки данных может выступать адрес во временном хранилище, в которое поместили схему компоновки данных, или адрес значения в записи базы данных.

Пример создания источника доступных настроек для схемы, помещенной во временное хранилище:

АдресСхемы = ПоместитьВоВременноеХранилище(Схема, УникальныйИдентификатор);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));
В данном примере во временное хранилище помещается схема компоновки данных, находящаяся в переменной Схема.

Пример создания источника доступных настроек для схемы, расположенной в базе данных:

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