Выбор варианта СКД в УТ 10.3

1. Serge_ASB 06.11.14 16:08 Сейчас в теме
Есть несколько вариантов формирования отчета СКД - по группировкам, по полям и т.п.
не получается сделать поле выбора варианта.
программа шлет лесом.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spezc 783 06.11.14 16:12 Сейчас в теме
(1) что именно не получается
3. Serge_ASB 06.11.14 16:28 Сейчас в теме
описано, что на форме создается поле ввода с произвольным типом значения. Не совсем понятно, как это.
в другом варианте подменю создается программно... не создается, хотя синтаксис помощник не ругается - не привязывается действие.
Как-то полгодика назад я делал такую штуку... теперь найти этот отчет не могу.
Странно, что в 10.3 варианты отчета СКД создать возможно, а вот воспользоваться не влезая в дебри СКД - никак.
4. svilsa 12 06.11.14 16:36 Сейчас в теме
Можно использовать шаблон - http://infostart.ru/public/272681/
или вот текст для программного формирования на форме подменю выбора вариантов отчета СКД (работает в УТ 10):

Процедура ПриОткрытии()
УстановитьВариантыНастроек();
КонецПроцедуры

Процедура УстановитьВариантыНастроек()
	
	КП = ЭлементыФормы.ДействияФормы; 
	
	//КП = ЭлементыФормы.КоманднаяПанель;
	НовоеДействие = Новый Действие("_СменаВариантаНастройки");
	ТипКнопки = ТипКнопкиКоманднойПанели.Подменю;
	НоваяКнопка = КП.Кнопки.Вставить(11, "_ВариантыОтчетов", ТипКнопки, "Варианты отчетов", НовоеДействие);
	
	ч = 1;
	Для каждого Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
		НоваяКнопка = КП.Кнопки._ВариантыОтчетов.Кнопки.Добавить("Вариант"+Строка(ч), ТипКнопкиКоманднойПанели.Действие, Настройка.Представление, НовоеДействие);
		ч = ч + 1;
	КонецЦикла;
	
КонецПроцедуры


Процедура _СменаВариантаНастройки (Элемент, Ключ = Ложь)
	//копирование отбора
	
	Отбор = КомпоновщикНастроек.Настройки.Отбор;
	Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;
	
	Для каждого Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
		Если Элемент.Текст = Настройка.Представление тогда
			КомпоновщикНастроек.ЗагрузитьНастройки(Настройка.Настройки);
			Ключ = Истина;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	КомпоновщикНастроек.Настройки.Отбор.Элементы.Очистить();
	Для каждого Элемент из Отбор.Элементы Цикл
		НовыйОтбор = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЗаполнитьЗначенияСвойств(НовыйОтбор, Элемент);
	КонецЦикла;
	
	Для каждого Элемент из Параметры.Элементы Цикл
		Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Элемент.Параметр);
		ЗаполнитьЗначенияСвойств(Параметр, Элемент);
	КонецЦикла;
	
	ГлФорма = ЭтаФорма;
	// Вызов процедуры генерации кнопок управления группировкой
	СгенерироватьКнопкиУправленияГруппировкой();
	
КонецПроцедуры
Показать
5. Serge_ASB 07.11.14 07:09 Сейчас в теме
(4) svilsa,
На какую конфигурацию это рассчитано?
Подобное я уже пробовал. Ругалось на Новое Действие (почему-то).
Допускаю, что у меня какая-то элементарная ошибка.
6. Serge_ASB 08.11.14 08:50 Сейчас в теме
Решил вопрос: нашел свой же "старый" отчет, где всё работало: варианты, параметры, отбор.
7. Chameleon1980 08.11.14 10:10 Сейчас в теме
Процедура ПриОткрытии()
СписокВариантов=ЭлементыФормы.ВариантОтчета.СписокВыбора;
Для Каждого Вариант Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
Имя=Вариант.Имя;
Представление=Вариант.Представление;
Если СписокВариантов.НайтиПоЗначению(Имя)=Неопределено Тогда
СписокВариантов.Добавить(Имя,Представление);
КонецЕсли;
КонецЦикла;
Если СхемаКомпоновкиДанных.ВариантыНастроек.Количество() > 0 Тогда
ЭлементыФормы.ВариантОтчета.Значение = СхемаКомпоновкиДанных.ВариантыНастроек[0].Имя;
КонецЕсли;
ВариантОтчетаПриИзменении(Неопределено);
КонецПроцедуры

Процедура ВариантОтчетаПриИзменении(Элемент)
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Найти(ВариантОтчета).Настройки);
КонецПроцедуры
8. Chameleon1980 08.11.14 10:11 Сейчас в теме
ой


Процедура ПриОткрытии()
	СписокВариантов=ЭлементыФормы.ВариантОтчета.СписокВыбора;
	Для Каждого Вариант Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
		Имя=Вариант.Имя;
		Представление=Вариант.Представление;
		Если СписокВариантов.НайтиПоЗначению(Имя)=Неопределено Тогда
			СписокВариантов.Добавить(Имя,Представление);
		КонецЕсли;
	КонецЦикла;
	Если СхемаКомпоновкиДанных.ВариантыНастроек.Количество() > 0 Тогда
		ЭлементыФормы.ВариантОтчета.Значение = СхемаКомпоновкиДанных.ВариантыНастроек[0].Имя;
	КонецЕсли;
	ВариантОтчетаПриИзменении(Неопределено);
КонецПроцедуры

Процедура ВариантОтчетаПриИзменении(Элемент)
	КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Найти(ВариантОтчета).Настройки);
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот