Имя: Пароль:
1C
1С v8
настройщик полей компоновки связь с СКД
0 _Ramzes
 
01.09.11
13:24
Есть желание для формирования табличной части обработки сделать заполнение на основании СКД, т.е. чтобы пользователь заполнял отборы на пользовательских настройках СКД, а потом нажал кнопку заполнить и таблица формировалась на основании СКД

Данный код формирует табличный документ


   СхемаКомпоновкиДанных = Обработки.БИТ_ГрупповаяОбработкаАвансовыхОтчетов.ПолучитьМакет("ОсновнаяСхемаКомпоновки");
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   
   
   Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
   
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
   
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);
   
   ДокументРезультат = Таб;
   ДокументРезультат.Очистить();
   ДокументРезультат.АвтоМасштаб = Истина;
   
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


На форме есть реквизит НастройкиКомпоновки с типом КомпоновщикНастроекКомпоновкиДанных, но непонятно как связать схему компоновки данных с данным реквизитом.

Т.е. хочется чтобы пользователь при открытии заполнял пользовательские отборы, настроенные в СКД, потом нажимал на кнопку заполнить и таблица значений заполнялась.
1 ssh2006
 
01.09.11
13:31
НастройкиКомпоновки.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроекМинуса.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
2 ssh2006
 
01.09.11
13:32
поправка - вторая строка
НастройкиКомпоновки.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
3 ssh2006
 
01.09.11
13:37
В коде формирования
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки.Настройки, ДанныеРасшифровки);
4 _Ramzes
 
01.09.11
13:37
Если делаю

   СхемаКомпоновкиДанных = Обработки.БИТ_ГрупповаяОбработкаАвансовыхОтчетов.ПолучитьМакет("ОсновнаяСхемаКомпоновки");
   НастройкиКомпоновки.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   НастройкиКомпоновки.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

То вылетает ошибка 1С, системная, которая завершает работу. В принципе если эта связка работает то вопрос снимается, сейчас попробую заменить схему компоновки на какую-нибудь типовую
5 _Ramzes
 
01.09.11
13:38
Я данный код инициализирую при создании на сервере - в этом не может быть ошибки?
6 _Ramzes
 
01.09.11
13:40
все работает на выборке. Сейчас буду исправлять схему компоновки. Спасибо
7 _Ramzes
 
01.09.11
14:58
Появилась следующая проблема

Делаю установку настроек для компоновщика


   СхемаКомпоновкиДанных = Обработки.БИТ_ГрупповаяОбработкаАвансовыхОтчетов.ПолучитьМакет("Макет");
   НастройкиКомпоновки.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   НастройкиКомпоновки.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);


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

Причем загружаю данную схему в отчет, ставлю в качестве основной схемы компоновки, и в отчете в пользовательских настройках все отображается верно. Подскажите в чем может быть ошибка.
8 _Ramzes
 
01.09.11
15:01
На партнерском форуме помогли

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