Отображение разных табличных частей в одном табличном поле
Обычные формы;
В этой статье я хочу показать, как можно решить задачу переключения одной табличной части на другую в одном и том же табличном поле. Например, есть справочник с двумя табличными частями – «Ответственные» и «ИсторияОтветственных». По умолчанию на форме элемента справочника располагается табличное поле с данными табличной части «Ответственные», а при нажатии на кнопку «История» на командной панели система должна отобразить в этом же табличном поле историю ответственных, то есть соответствующую табличную часть. Повторное нажатие кнопки должно вернуть всё в первоначальный вариант.
Решение.
Процедура КоманднаяПанельИстория(Кнопка)
Если ЭлементыФормы.ТабличноеПоле.Данные = "Ответственные" Тогда
ЭлементыФормы.ТабличноеПоле.Данные = "";
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("СправочникТабличнаяЧасть.НазваниеСправочника.ИсторияОтветственных"));
ОписаниеТипаНовойТЧ = Новый ОписаниеТипов(МассивТипов);
ЭлементыФормы.ТабличноеПоле.ТипЗначения = ОписаниеТипаНовойТЧ;
ЭлементыФормы.ТабличноеПоле.Данные = "ИсторияОтветственных";
ЭлементыФормы.ТабличноеПоле.Значение = ИсторияОтветственных;
ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
Иначе
ЭлементыФормы. ТабличноеПоле.Данные = "";
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("СправочникТабличнаяЧасть.НазваниеСправочника.Ответственные"));
ОписаниеТипаНовойТЧ = Новый ОписаниеТипов(МассивТипов);
ЭлементыФормы. ТабличноеПоле.ТипЗначения = ОписаниеТипаНовойТЧ;
ЭлементыФормы.ТабличноеПоле.Данные = "Ответственные";
ЭлементыФормы.ТабличноеПоле.Значение = Ответственные;
ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
КонецЕсли;
КонецПроцедуры