Капитально об программе 1С 8.0-8.3-8.4, 7.7

Программное переключение выводимой таблицы СКД в обычном приложении

В данной статье приведен пример реализации одного из вариантов создания диалога переключения активной таблицы СКД

Цель:

Создать диалог быстрого выбора отображаемой таблицы и понятного по имени результата

План действий

Решение

Код ПередОткрытием()  из первого варианта собирает список таблиц и устанавливает значение по умолчанию для поля

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

Для корректного представления в списке выбора зайдите в конфигураторе в настроки СКД и задайте имя для всех таблиц, иначе будет пустое представление и код будет неработоспособен

Код обработчика ПриИзменении()

Процедура СписокТаблицПриИзменении(Элемент)
	
	Если ЗначениеЗаполнено(СписокТаблиц) Тогда
		Для каждого Структура из КомпоновщикНастроек.Настройки.Структура Цикл
			Структура.Использование = (Структура.Имя = СписокТаблиц)
		КонецЦикла; 
		//Здесь можно сразу вызвать обновление отчета
	Иначе
		//Для каждого Структура из КомпоновщикНастроек.Настройки.Структура Цикл
			//Ничего не делаем
			//Структура.Использование = ИСТИНА;
		//КонецЦикла; 
	КонецЕсли;	 
КонецПроцедуры

В контексте моей задачи получился вот такой результат: