Имя: Пароль:
1C
 
Подскажите с компоновщиком настроек
0 Klesk666
 
23.10.15
03:32
у Объекта нет реквизитов,  только макет
ОтобранныеКонтрагенты - таблица реквизит на форме
КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных реквизит на форме
АдресСхемыКомпоновкиДанных - реквизит Произвольный на форме

Отбор появляется, но при заполнении ТаблицаЗначений пустая, что не так?

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

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

&НаКлиенте
Процедура Заполнить(Команда)
    ЗаполнитьНаСервере();      
КонецПроцедуры

&НаСервере  
Процедура ЗаполнитьНаСервере()
      ОтобранныеКонтрагенты.Очистить();
    ЭтотОбъект = РеквизитФормыВЗначение("Объект");
    СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет("Макет");
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;        
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(ПолучитьИзВременногоХранилища(АдресСхемыКомпоновкиДанных), КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); //АдресСхемыКомпоновкиДанных - строковый реквизит для хранения адреса
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
    ТаблицаЗначений=Новый ТаблицаЗначений;
    ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);        
    Для каждого Строка из ТаблицаЗначений Цикл
        НСтрока = ОтобранныеКонтрагенты.Добавить();
        НСтрока.Контрагент= Строка.Ссылка;                     
    КонецЦикла;    
КонецПроцедуры
1 Klesk666
 
23.10.15
10:37
поможите
2 Klesk666
 
25.10.15
13:23
ап
3 Nexux
 
25.10.15
13:43
СхемаКомпоновкиДанных настроен вывод в список (одна группировка, детальные записи)?
4 Franchiser
 
гуру
25.10.15
13:52
Попробуй ЗначениеВРеквизитФОрмы(ЭтотОбъект,"Объект");
5 Записьдампа
 
25.10.15
13:53
(3) +1

(0)У тебя из-за жонглирования схемами теряется структура вывода.

Надо убедится, что в момент программного формирования в Настройки.Структура есть нужная группировка с нужными колонками. Если нет - можно добавить группировку программно с элементами по данным полей выбора или доступных полей выбора
6 Franchiser
 
гуру
25.10.15
13:55
И вообще лучше не использовать ЭтотОбъект - это зарезервированное слово
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.