Имя: Пароль:
1C
1С v8
как передать текущий элемент справочника в форму из формы ?
,
0 DES
 
24.05.16
09:44
открыл форму элемента справочника, в ней по кнопке открываю еще одну форму, как передать текущий элемент справочника в открываемую форму чтобы в ней сделать изменения в этом элементе справочника, в его табличной части ?
1 butterbean
 
24.05.16
09:46
через реквизит формы, например, или через экспортную переменную
2 butterbean
 
24.05.16
09:47
если упр. форма, то через параметры
3 DES
 
24.05.16
09:56
это понятно, как получить этот элемент
форма.ТекЭлем = ... // что тут присваивать ?
4 Lexey_
 
24.05.16
10:06
(3) ссылку
5 butterbean
 
24.05.16
10:07
(3) формы обычные или упр?
6 Lexey_
 
24.05.16
10:07
(3) или объект
7 SergTheGreat
 
24.05.16
10:47
Если открываемая форма - это форма элемента, тогда в вызывающей форме все делается в одно действие:
ОткрытьФорму("Справочник.МойСправочник.МояФорма", Новый Структура("Ключ", Объект.Ссылка));
Где "Объект" - это основной элемент вызывающей формы.

Если открываемая форма - произвольная, тогда в ней нужно создать параметр типа ссылки на твой справочник. В вызывающей форме:
ОткрытьФорму("Справочник.МойСправочник.МояФорма", Новый Структура("МойПараметр", Объект.Ссылка));
А в открываемой форме:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект = МойПараметр.ПолучитьОбъект();
КонецПроцедуры
8 singlych
 
24.05.16
10:55
(7) не прокатит, если объект новый
9 SergTheGreat
 
24.05.16
10:56
Но вообще открывать объект в одной форме, а затем изменять его же в другой - не очень хорошая практика. Не забудь проверять/изменять блокировку объекта и модифицированность форм.
10 SergTheGreat
 
24.05.16
10:59
(8) Согласен. Перед открытием 2й формы нужно ставить проверку пустой ссылки. Как это делается при изменении свойств, категорий и подчиненных справочников.
11 singlych
 
24.05.16
11:00
Если менять нужно только ТЧ, то проще уж ТЧ и передавать. Туда и обратно, естественно.
12 hhhh
 
24.05.16
11:17
надо использовать сериализацию

типа ХМЛСтрока = ЗначениеВСтрокуXML(Объект)

и потом обратно

Объект = ЗначениеИзСтрокиXML
13 lodger
 
24.05.16
11:26
(11) в типовых если работаем в тч, то скорее всего работаем с какой-то строкой. тогда в произвольную форму пасуются данные из строчки в виде параметров, обратно при закрытии они записываются в текущую строку через обработчик оповещения.
с точки зрения работы платформы оптимальный вариант.
если обработчики на всю тч, тогда все равно мало что меняется, только в обработчике оповещения порождается серверный контекстный вызов с исполнением выбранных обрабочиков тч.
и не надо гонять туда-сюда объект. только форму-родителя блокировать не забывайте.