|
Как программно активизировать строку в табличном поле? |
☑ |
0
xaozai
09.10.14
✎
13:16
|
На форме два табличных поля.
У первого поля данные - СправочникСписок.Справочник1, у второго - СправочникСписок.Справочник2.
Справочник 2 подчинен справочнику 1
Для второго табличного поля установлена связь по владельцу при активизации строки первого таб. поля.
Это все работает, но когда у какого-то элемента справочника 1 нет подчиненных элементов в справочнике 2, на табличном поле 2 "слетает" выделение текущей строки и при активизации другой строки в табличном поле 1 эта активизация уже не происходит.
Вот, мне нужно как-то активизировать первую строку в табличном поле 2, если строки там вообще есть (по владельцу).
Вот так не работает:
Процедура Справочник1ПриАктивизацииСтроки(Элемент)
ПЗ = Новый ПостроительЗапроса;
ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭлементыФормы.Справочник2.Значение);
Выборка = ПЗ.Результат.Выбрать();
Если Выборка.Следующий() Тогда
ЭлементыФормы.Справочник2.ТекущаяСтрока = Выборка;
КонецЕсли;
КонецПроцедуры
|
|
1
Defender aka LINN
09.10.14
✎
13:18
|
ЭлементыФормы.Справочник2.ТекущаяСтрока = Выборка;
Это что должно символизировать вообще?
|
|
2
xaozai
09.10.14
✎
13:19
|
(1) А что там можно подставить вместо Выборка?
|
|
3
xaozai
09.10.14
✎
13:20
|
(2) Или как по-другому моно сделать?
|
|
4
hhhh
09.10.14
✎
13:22
|
(3) Выборка.Ссылка может?
|
|
5
xaozai
09.10.14
✎
13:23
|
(4) Пробовал - то же самое.
Ошибка при установке значения атрибута контекста (ТекущаяСтрока): Отсутствует ключ строки
|
|
6
lxndr
09.10.14
✎
13:26
|
Процедура Справочник1ПриАктивизацииСтроки(Элемент)
Выборка = Справочники.Справочник2.Выбрать(, ЭлементыФормы.Справочник2.ТекущаяСтрока);
Если Выборка.Следующий() Тогда
ЭлементыФормы.Справочник2.ТекущаяСтрока = Выборка.Ссылка;
КонецЕсли;
КонецПроцедуры
|
|
7
hhhh
09.10.14
✎
13:30
|
может так
Выбрать(, ЭлементыФормы.Справочник1.ТекущаяСтрока);
|
|
8
lxndr
09.10.14
✎
13:33
|
(7) ага, точно
|
|
9
lxndr
09.10.14
✎
13:33
|
если надо еще и засинячить строку, добавь
ЭлементыФормы.ТабличноеПоле2.ВыделенныеСтроки.Добавить(Выборка.Ссылка);
|
|
10
xaozai
09.10.14
✎
13:36
|
Получилось вот так:
Процедура Справочник1ПриАктивизацииСтроки(Элемент)
ЭлементыФормы.Справочник2.Значение.Отбор.Владелец.Установить(Элемент.ТекущиеДанные.Ссылка);//связь, которая не программно задается, видимо, позже отрабатывает
Выборка = Справочники.Справочник2.Выбрать(, Элемент.ТекущаяСтрока.Ссылка);
Если Выборка.Следующий() Тогда
ЭлементыФормы.Справочник2.ТекущаяСтрока = Выборка.Ссылка;
КонецЕсли;
КонецПроцедуры
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший