СКД на форме по таблице значений УФ

Готовые тексты модулей и решений
Ответить
Аватара пользователя
admin
Администратор
Сообщения: 61
Зарегистрирован: 06 июл 2017 09:26

СКД на форме по таблице значений УФ

Сообщение admin » 12 ноя 2018 10:00

Продолжение топика viewtopic.php?f=3&t=3
Оказывается, что в интерактивном режиме пропадали доступные поля, и тут есть одна особенность, что инициализация доступных параметров должна проходить через урл схемы помещенной во временное хранилище, и не важно что весь код на сервере, пример кода:

Код: Выделить всё

			Запрос=Новый Запрос;
			Запрос.Текст="ВЫБРАТЬ
			             |	Контрагенты.Ссылка КАК Ссылка,
			             |	Контрагенты.Наименование КАК Наименование,
			             |	Контрагенты.ИНН КАК ИНН,
			             |	Контрагенты.КПП КАК КПП,
			             |	Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо
			             |ИЗ
			             |	Справочник.Контрагенты КАК Контрагенты";
			ТЗ=Запрос.Выполнить().Выгрузить();
			
			ДанныеРасшифровкиРезультат = Новый ДанныеРасшифровкиКомпоновкиДанных;//наш реквизит формы, который будет доступен в других процедура
			ВнешниеНаборыДанных =  новый Структура ;
			ВнешниеНаборыДанных.Вставить( "ТЗ" , ТЗ ) ;//в скд внешнему набору мы дали имя, вот тут его указать
			СКД =Обработки.Рар_ОбменСДилерскимПорталом.ПолучитьМакет("Контрагенты");	//имя скд макета, тут же, забыл, СКДрезультат тоже должна быть доступна в другой прцоедуре, по этому тоже сделать реквизит формы
			URLСхемы = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор());
			Объект.КомпоновщикНастроек.Инициализировать(новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы) ) ;
			//Объект.КомпоновщикНастроек.Инициализировать(новый ИсточникДоступныхНастроекКомпоновкиДанных (СКД) ) ;
			Объект.КомпоновщикНастроек.ЗагрузитьНастройки(СКД.ВариантыНастроек["Основной"].Настройки ) ;
			////////Если ПосмотретьНулевыеЦены Тогда//необязательное условие, рещил тут же показать как поставить отбор
			////////	УсловиеНаНулевуюЦену=КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			////////	ПолеОтбора = Новый ПолеКомпоновкиДанных("Цена");
			////////	УсловиеНаНулевуюЦену.ЛевоеЗначение = ПолеОтбора;
			////////	УсловиеНаНулевуюЦену.Использование = Истина;
			////////	УсловиеНаНулевуюЦену.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
			////////	УсловиеНаНулевуюЦену.ПравоеЗначение = 0;
			////////КонецЕсли;
			КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;		
			МакетКомпоновки   = КомпоновщикМакета.Выполнить(СКД, Объект.КомпоновщикНастроек.Настройки,ДанныеРасшифровкиРезультат , , Тип("ГенераторМакетаКомпоновкиДанных"));
			ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;                         
			ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных,ДанныеРасшифровкиРезультат, Истина);
			КонтрагентыРезультат.Очистить();
			ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
			ПроцессорВывода.УстановитьДокумент(КонтрагентыРезультат);
			ПроцессорВывода.Вывести(ПроцессорКомпоновки);

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей