когда у тебя интерфейс с несколькими ДинамическимиСписками на одной форме, в разных вкладках, например, и есть подчиненные таблицы/поля/элементы возникает проблема, что использование стандартной кнопки Обновить на форме для Динамического списка не покрывает всех необходимых потребностей.
Решение:
- Создать команду-аналог ОбновитьАктивныйДинамическийСписок
- В ее процедуре определять активную вкладку
- По активной владке задавать имя ДинамическогоСписка.
- Вызывать Элементы.ИмяДинамическогоСписка.Обновить() а также все вызовы для события ПриАктивизацииСтроки
Пример:
<code>// АктивныйСписок() - Возвращает ДинамическийСписок или его имя для Активной страницы ОсновнаяПанель этой формы
//
// Параметры:
// ВернутьДинамическийСписок - Булево - = Истина - функция возвращает динамический список активной страницы,
// = Ложь - функция возвращает имя динамического списка активной страницы
//
// Возвращаемое значение:
// ДинамическийСписок, Строка - СписокДокументов/СписокДляТЧ
//
&НаКлиенте
Функция АктивныйСписок(Строкой = Истина)
ИмяСтраницы = Элементы.Панель.ТекущаяСтраница.Имя;
Если ИмяСтраницы = "ГруппаФормыДокументы" Тогда
ИмяСписка = "СписокДокументов";
ИначеЕсли ИмяСтраницы = "ГруппаФормыТЧ" Тогда
ИмяСписка = "СписокДляТЧ";
КонецЕсли;
Если Строкой Тогда
Результат = ИмяСписка;
Иначе
Результат = ЭтаФорма[ИмяТекущейСтраницы];
КонецЕсли;
Возврат Результат;
КонецФункции
// Процедура - Обновить активный список - аналог системной команды платформы для динамического списка чтобы обновлять подчиненные списки без смены текущей строки
//
// Параметры:
// Команда - Команда - любая команда
//
&НаКлиенте
Процедура ОбновитьАктивныйСписок(Команда = Неопределено)
ИмяСписка = АктивныйСписок(Ложь);
Элементы[ИмяСписка].Обновить();
ОбновитьПодчиненныеДанные(ИмяСписка);
КонецПроцедуры
</code>
+ There are no comments
Add yours