Имя: Пароль:
1C
1С v8
вопрос по управляемым формам
,
0 dreamoff
 
29.10.12
09:09
это мой первый опыт с управляемыми формами.
возникла проблемы с получением значений реквизитов формы в модуле объекта.если в форме можно получить через РеквизитФормыВЗначение,то как получить в модуле,подскажите?
1 cw014
 
29.10.12
09:10
А зачем тебе реквизиты в модуле объекта?
2 Живой Ископаемый
 
29.10.12
09:10
загнать в структуру.
3 cw014
 
29.10.12
09:10
Так заганяй на форме и передавай структуру в модуль (читай "На сервер")
4 Shurjk
 
29.10.12
09:11
По имени реквизиты, который привязан к элементу формы.
5 Stim
 
29.10.12
09:11
реквизиты объекта доступны в модуле объекта
6 Живой Ископаемый
 
29.10.12
09:12
2(5) Это отлично. что станешь делать когда у тебя форма не привязанная к объкту, в которой пользователь должен заполнить реквизиты, и все это должно быть записано во внешнюю по отношению к 1С БД на сервере?
7 Живой Ископаемый
 
29.10.12
09:15
ну или в случае автора, форма даже привязанная к объекту, только все эти реквизиты в 1С все равно храниться не будут
8 dreamoff
 
29.10.12
09:17
а можно пример.я так не понимаю((
есть на форме реквизит ДатаНачала,как его в модуле объекта получить?
9 Stim
 
29.10.12
09:17
аа, реквизиты формы. не проснулся) тогда да, структура)
можно еще через дополнительные реквизиты
10 Stim
 
29.10.12
09:20
тьфу. доп свойства

ДополнительныеСвойства (AdditionalProperties)
Использование:

Только чтение.
Описание:

Тип: Структура.
Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события.

Доступность:

Сервер, толстый клиент, внешнее соединение.
11 Stim
 
29.10.12
09:20
типа
МойОбъект = РеквизитФормыВЗначение("Объект");
МойОбъект.ДополнительныеСвойства.Вставить("МояДата",мояДата);
12 dreamoff
 
29.10.12
09:24
(11)и как теперь это вызвать в модуле,не в модуле формы,а в модуле объекта?
13 Stim
 
29.10.12
09:31
(12) ты какую-то функцию в модуле вызываешь, ведь так?
вот и вызывай. а в модуле объекта у тебя будет доступ к
ЭтотОбъект.ДополнительныеСвойства
14 dreamoff
 
29.10.12
09:36
(13)например
в форме

&НаКлиенте
Процедура НачПериодаПриИзменении(Элемент)
   МойОбъект = РеквизитФормыВЗначение("Объект");
   МойОбъект.ДополнительныеСвойства.Вставить("НачПериода",НачПериода);
КонецПроцедуры


в модуле
функция моя()
пер=ЭтотОбъект.ДополнительныеСвойства.КонПериода;
КонецФункции

я правильно понял?
15 Живой Ископаемый
 
29.10.12
09:48
2(14) не пробуй пока ответа не дождешься...
16 dreamoff
 
29.10.12
09:49
(15) я спросил,потому что попробовал и не работает(
17 Stim
 
29.10.12
09:50
(14) не совсем так. должно быть:

в форме

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



в модуле
функция моя() экспорт
пер=ЭтотОбъект.ДополнительныеСвойства.КонПериода;
КонецФункции


тогда сработает. причем сначала в доп свойствах неплохо бы поискать по ключу, прежде чм обращаться к нему
18 Stim
 
29.10.12
09:51
+ а если у тебя не так - тогда я не понимаю, зачем  тебе нужно использовать реквизиты форму в модуле, ведь реквизиты формы "живы", пока жива форма
19 Defender aka LINN
 
29.10.12
09:52
(17) Так "должно быть" у рукозадых одинэснегов. У нормальных должен вызываться модуль менеджера.
20 Stim
 
29.10.12
10:20
(19) а в чем сакральный смысл отказа от использования модуля объекта? религия не позволяет?
21 Defender aka LINN
 
29.10.12
10:34
(20) Сакральный смысл в том, что я не создаю нафиг никому не нужный экземпляр объекта. Ну и про отказ я не говорил, я говорил, что в данном случае должен использоваться модуль менеджера.
22 Stim
 
29.10.12
11:29
(21) можно подумать, в модуле менеджеры вы не создаете "нафиг никому не нужный экземпляр объекта"
23 Defender aka LINN
 
29.10.12
12:29
(22) Представь себе, не создаю. За остальных, конечно, не поручусь.