Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Схема компоновки данных (программно)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Acid
В общем есть СКД с полями для отбора на форме обработки.
На форме устанавливается отбор по элементам. Из параметров есть только Дата.
А сама конструкция
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновки,НастройкиКомпоновкиДанных,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

Не выдает результат. Никто не сталкивался?
Vofka
А что и куда выдавать должен? Код "выдавания" где? smile.gif

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


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

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных,Истина);
Закрыть(ТаблицаСсылок);


как я понял проблема здесь:
КомпоновщикМакета.Выполнить(СхемаКомпоновки,НастройкиКомпоновкиДанных

но где именно?...
Vofka
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Vofka
Вот рабочий код:

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


И не забудьте в выбранные поля что-то добавить, а то результат будет пустой.
Acid
спасибо. но так тоже не работает sad.gif
чего-то в компоновщике не хватает. не могу понять что именно...
Vofka
100% работает, я перед тем как писать проверил. Почему у вас не работает - хз, необходимо зарегистрироваться для просмотра ссылки рабочий пример, сделанный как я писал выше.
pablo
А параметры в СКД Вы как передаете? Я делал так, когда писал свой обработчик события ПриКомпоновкеРезультата
    НастройкиКомпоновкиДанных= КомпоновщикНастроек.Настройки;  
    Для каждого Парам из КомпоновщикНастроек.ПользовательскиеНастройки.Элементы цикл
        НастройкиКомпоновкиДанных.ПараметрыДанных.УстановитьЗначениеПараметра(Парам.Параметр,Парам.Значение);
    КонецЦикла;
Acid
Пока писал развернутую речь, обнаружил, что нужный параметр пустой.smile.gif Т.е. запрос выполнялся! по пустой ссылке 09000000.gif
Все работало на самом деле. 32542620.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.