Имя: Пароль:
1C
1С v8
Как программно активизировать строку в табличном поле?
, ,
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.ТекущаяСтрока = Выборка.Ссылка;
    КонецЕсли;
КонецПроцедуры