![]() |
1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
OnePrg 11.03.21 - 13:12 | УФ
Сделал обработку, в которой в макете разместил СКД. Один из реквизитов обработки - компоновщик данных. На форме обработки разместил таблицу отбора компоновщика данных. При создании на сервере инициализирую компоновщик. Теперь нужно при нажатии по кнопке "Прочитать" выполнить СКД с заданным отбором и загрузить значение в табличную часть обработки. Подскажите как это сделать. | ||
Kassern 1 - 11.03.21 - 13:18 | ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить( СКД, Настройки, ДанныеРасшифровки,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТаблицаЗначений = Новый ТаблицаЗначений; ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); | ||
OnePrg 2 - 11.03.21 - 13:43 | (1) Спасибо. | ||
OnePrg 3 - 11.03.21 - 13:43 | Вот мой код.
&НаСервере Процедура ПрочитатьНаСервере() Обработка = РеквизитФормыВЗначение("Объект"); СхемаКомпоновкиДанных = Обработка.ПолучитьМакет("СКД"); Компоновщик = РеквизитФормыВЗначение("Объект").Компоновщик; Компоновщик.Настройки.ПараметрыДанных.Элементы[0].Значение = КонецДня(Обработка.ДатаОкончания); Компоновщик.Настройки.ПараметрыДанных.Элементы[0].Использование = Истина; Компоновщик.Настройки.ПараметрыДанных.Элементы[1].Значение = Обработка.ДатаНачала; Компоновщик.Настройки.ПараметрыДанных.Элементы[1].Использование = Истина; ВыбранныеДокументы = Обработка.ВыбранныеДокументы; ВыбранныеДокументы.Очистить(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Компоновщик.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТЗ = Новый ТаблицаЗначений;  //ТЗ = ВыбранныеДокументы.Выгрузить(); ПроцессорВывода.УстановитьОбъект(ТЗ); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ВыбранныеДокументы.Загрузить(ТЗ); КонецПроцедуры В ТЗ пустая таблица, ни колонок ни строк. Что не так? | ||
OnePrg 4 - 11.03.21 - 14:00 | |||
Вафель 5 - 11.03.21 - 14:06 | |||
Вафель 6 - 11.03.21 - 14:07 | тз = процессор. вывести | ||
OnePrg 7 - 11.03.21 - 14:09 | (6) Тоже пусто. | ||
youalex 8 - 11.03.21 - 14:18 | Структура заполнена в настройках? Выбор? | ||
toypaul 9 - 11.03.21 - 14:19 | (7) прежде чем в ТЗ выводить, надо убедиться что аналогичный отчет что-то выводит | ||
OnePrg 10 - 11.03.21 - 14:25 | Заменил компоновщик из реквизита на новый компоновщик, всё заработало
ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных; Обработка = РеквизитФормыВЗначение("Объект"); СхемаКомпоновкиДанных = Обработка.ПолучитьМакет("СКД");  //Компоновщик = РеквизитФормыВЗначение("Объект").Компоновщик; Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных; Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); Компоновщик.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); Компоновщик.Настройки.ПараметрыДанных.Элементы[0].Значение = КонецДня(Обработка.ДатаОкончания); Компоновщик.Настройки.ПараметрыДанных.Элементы[0].Использование = Истина; Компоновщик.Настройки.ПараметрыДанных.Элементы[1].Значение = Обработка.ДатаНачала; Компоновщик.Настройки.ПараметрыДанных.Элементы[1].Использование = Истина; ВыбранныеДокументы = Обработка.ВыбранныеДокументы; ВыбранныеДокументы.Очистить(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Компоновщик.Настройки,ДанныеРасшифровки,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТЗ = Новый ТаблицаЗначений;  //ТЗ = ВыбранныеДокументы.Выгрузить();  //ПроцессорВывода.УстановитьОбъект(ТЗ); ТЗ = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ВыбранныеДокументы.Загрузить(ТЗ);Теперь буду в новый компоновщик тащить отборы из компоновщика на форме. Всем спасибо! | ||
Почему 1С 11 - 11.03.21 - 15:00 | Обработка = РеквизитФормыВЗначение("Объект");
ВыбранныеДокументы = Обработка.ВыбранныеДокументы;
ВыбранныеДокументы.Очистить();
если уж делать так, то нужно и
ЗначениеВРеквизитФормы после вызвать, не? |
|
Список тем форума |