Имя: Пароль:
1C
1С v8
Табличное поле. Как указать владельца справочника при выборе значения в колонке?
0 1Сергей
 
27.09.12
12:53
Есть ТП с колонками Контрагент и Договоров - справочники-ссылки. Нужно, чтобы при выборе договора автоматически задавался владелец договора.

Пока сделал так

Процедура ТабличноеПолеУсловияВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   Если Колонка.Имя = "Договор" Тогда
       
       СтандартнаяОбработка = Ложь;
       
       Отбор = Новый Структура("Владелец", ВыбраннаяСтрока.Контрагент);
       П = Новый Структура("Отбор", Отбор);
       Форма = ПолучитьФорму("Справочник.ДоговорыКонтрагентов.ФормаВыбора", П);
       Договор = Форма.ОткрытьМодально();
       
       Если ЗначениеЗаполнено(Договор) Тогда
           ТАР_Условие = ВыбраннаяСтрока.Ссылка.ПолучитьОбъект();
           ТАР_Условие.Договор = Договор;
           ТАР_Условие.Записать();
           ВыбраннаяСтрока.Договор = ТАР_Условие.Договор;
       КонецЕсли;
       
   КонецЕсли;
КонецПроцедуры

при двойном клике в ячейке отрабатывает нормально. Но через кнопку Tab сначала открывается справочник контрагентов, а потом уже договоров.

Может есть какой-то другой способ указать владельца?
И если нет, то какое событие возникает при начале выбора значения в колонке ТП по клавише Tab?
1 1Сергей
 
27.09.12
12:54
Забыл уточнить, форма обычная
2 hhhh
 
27.09.12
13:00
(1) в свойствах поля ввода договора укажите владельца.
3 1Сергей
 
27.09.12
13:00
(2) какого поля ввода?
4 1Сергей
 
27.09.12
13:01
ТП генерится на лету
5 hhhh
 
27.09.12
13:04
(4) всё равно, генерится ведь и поле ввода, тоже на лету, и у этого поля ввода генерятся все его чудо-свойства, которые можно посмотреть в синтакс-помощнике.
6 Kreont
 
27.09.12
13:06
Форма = ПолучитьФорму("Справочник.ДоговорыКонтрагентов.ФормаВыбора");
Форма.Отбор.Владелец = ВыбраннаяСтрока.Контрагент;
Договор = Форма.ОткрытьМодально();
7 Mort
 
27.09.12
13:06
На программную настройку связи по владельцу разработчики 1С забили болт.
8 1Сергей
 
27.09.12
13:12
(5) вот нету там свойства такого
9 Kreont
 
27.09.12
13:12
Точнее даже так вставить в середину (6):
Форма.Отбор.Владелец.ВидСравнения  = ВидСравнения.Равно;
Форма.Отбор.Владелец.Значение      = ВыбраннаяСтрока.Контрагент;
Форма.Отбор.Владелец.Использование = Истина;
10 Kreont
 
27.09.12
13:13
(8) как, проверяешь, через подсказку после "." ? ТОгда да нету, вручную написать и будет :)
11 1Сергей
 
27.09.12
13:16
(10) через СП проверяю. Скажи название свойства ПоляВыбора, где указывается Владелец
12 1Сергей
 
27.09.12
13:23
Спасибо, ребята, помогли.

Сделал так:

Процедура ТабличноеПолеУсловияПередНачаломИзменения(Элемент, Отказ)
   ЭлементыФормы.ТабличноеПолеУсловия.Колонки[7].ЭлементУправления.ВыборПоВладельцу = ЭлементыФормы.ТабличноеПолеУсловия.ТекущиеДанные.Контрагент;
КонецПроцедуры
13 hhhh
 
27.09.12
13:23
(10) что-то вы не туда совсем
(11)

ЭлементыФормы.ТвоеТабличноеПоле.Колонки.Договор.ЭлементУправления.ВыборПоВладельцу = ЭлементыФормы.ТвоеТабличноеПоле.ТекущиеДанные.Контрагент;
14 zladenuw
 
27.09.12
13:23
ЭлементыФормы.ТабличноеПоле.Колонки.Колонка1.ЭлементУправления.ВыборПоВладельцу = ЭлементыФормы.ТабличноеПоле.ТекущиеДанные.Колонка2;
(13) опередил :)