|
как передать текущий элемент справочника в форму из формы ? | ☑ | ||
---|---|---|---|---|
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) в типовых если работаем в тч, то скорее всего работаем с какой-то строкой. тогда в произвольную форму пасуются данные из строчки в виде параметров, обратно при закрытии они записываются в текущую строку через обработчик оповещения.
с точки зрения работы платформы оптимальный вариант. если обработчики на всю тч, тогда все равно мало что меняется, только в обработчике оповещения порождается серверный контекстный вызов с исполнением выбранных обрабочиков тч. и не надо гонять туда-сюда объект. только форму-родителя блокировать не забывайте. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |