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