Имя: Пароль:
1C
 
Форма списка справочника - Как получить текущий элемент в виде объекта ?
0 ll13
 
10.11.09
17:13
Собственно сабж.
Есть форма списка справочника, как получить в виде объекта элемент, на котором в данный момент установлен курсор ?
1 Господин ПЖ
 
10.11.09
17:14
получить ссылку, от нее объект
2 almar
 
10.11.09
17:17
Ссылка - это Элементы.Список.ТекущаяСтрока
3 ll13
 
10.11.09
17:32
(2) Получилось вот что :

&НаКлиенте
Процедура МояКоманда(Команда)
   ВызовСервера();
КонецПроцедуры

&НаСервере
Процедура ВызовСервера()
СсылкаНаЭлемент = Элементы.Дерево.ТекущаяСтрока;
Если НЕ СсылкаНаЭлемент.Пустая() Тогда
   Объект = СсылкаНаЭлемент.ПолучитьОбъект();
КонецЕсли;
КонецПроцедуры

Вроде работает. Но правильно ли это с методологической точки зрения ?
4 almar
 
10.11.09
17:43
(3) А что смущает?
5 TitanLuchs
 
10.11.09
18:50
(3) Правильно
6 BabySG
 
10.11.09
21:44
(3) Все зависит от задачи
7 Serg_1960
 
10.11.09
22:04
(дух противоречия) Код, исполняемый на сервере, работает с элементами формы О_О По мне лучше так: в процедуре на форме получаем объект (или ссылку на него) и передаём через параметр процедуре, работающей на сервере.
8 ll13
 
11.11.09
00:31
(7) Вы правы )
Так наверное будет логичнее :

&НаКлиенте
Процедура МояКоманда(Команда)
  СсылкаНаЭлемент = Элементы.Дерево.ТекущаяСтрока;    
  ВызовСервера(СсылкаНаЭлемент);
КонецПроцедуры

&НаСервере
Процедура ВызовСервера(СсылкаНаЭлемент)
  Если НЕ СсылкаНаЭлемент.Пустая() Тогда
     Объект = СсылкаНаЭлемент.ПолучитьОбъект();
  КонецЕсли;
КонецПроцедуры
9 программистище
 
12.11.09
09:41
если еще так:
&НаСервереБезКонтекста
Процедура ВызовСервера(СсылкаНаЭлемент)

то и сама форма не будет передаваться на сервере
что экономит кучу времени и трафика