Имя: Пароль:
1C
 
v8: 8.2 Отображение значения реквизита формы.
0 Aswed
 
11.05.10
17:43
Программно открываю форму, перед её открытие, одному из значений объекта, который и выведен на форму, присваиваю значение. На форме это значение не отображается. Как вывести правильно?

   //открываем выбранную форму обработки
   Форма.Объект.ВидКИ = ВыбранноеЗначение;
   Форма.Владелец = ЭтаФорма.Владелец;
   Форма.ОткрытьМодально();
1 Aswed
 
11.05.10
17:43
Блин, ужо задолбался с 8.2 биться)
2 XLife
 
11.05.10
17:45
присваиваешь объекту?!
3 Aswed
 
11.05.10
17:46
(2) Ага, как теперь эту фигню присвоить так что бы было видно на форме.
4 Aswed
 
11.05.10
17:47
+ 3 пытался присвоить элементу, матюкается что поле не доступно для записи.
5 XLife
 
11.05.10
17:48
мож я че не понимаю... либо надо записать этот реквизит для объекта, либо присваивать элементу формы... не?
6 Aswed
 
11.05.10
17:49
(5) А как присваивать реквизит объекту, когда получена только форма?
7 Aswed
 
11.05.10
17:49
+ 6 это я скорее не понимаю)))
Голова кругом идёт перескакивать с 8.1 на 8.2 и сразу обратно.
8 XLife
 
11.05.10
17:51
(6) "объект" это что?
9 Aswed
 
11.05.10
17:57
(8) Смотри.
Есть обработка. У неё несколько форм.
Открывается вначале главная форма в которой выбирается тип вводимой информации.
В зависимости от выбранного типа открывается одна из двух оставшихся форм.
Вот в значение этой формы и хочу подставить тот тип информации который был выбран на первой форме.
Вообще присваивал значение и просто
Объект.ВидКи = ВыбранноеЗначение;

Т.к. формы разные но реквизиты то объекта у них одинаковые для всех, т.к. это одна и та же обработка. Но всё равно на открываемой форме это выбранное значение не отображается. Почему так не могу понять.
10 Elena_KR
 
11.05.10
18:00
насколько я помню надо передать на сервер, там записать, передать форму обратно на клиента
11 Aswed
 
11.05.10
18:01
(10) Трандец извращение, если так в самом деле надо делать.
12 Elena_KR
 
11.05.10
18:02
ну просто если меняешь объект - ты его можешь поменять только на сервере, вродь )))
13 Aswed
 
11.05.10
18:03
(12) Ясно, следующий
14 XLife
 
11.05.10
18:14
у тебя на 2 формах одинаковый реквизит?

Форма = ПолучитьФорму("Обработка.Обработка.Форма.ФормаДоп1");
Форма.Реквизит1 = Реквизит1;
Форма.ОткрытьМодально();
15 Aswed
 
11.05.10
18:15
ВидКи является полем ввода на форме, связанно с реквизитом ВидКи, который имеет тип Справочник
16 Aswed
 
11.05.10
18:15
(14) Да.
17 Aswed
 
11.05.10
18:16
Дело в том что проверяю. Реквизит самой обработки имеет присвоенное значение, а вот на форме он скотина не отображается.
18 XLife
 
11.05.10
18:18
у меня код из (14) работает... в текущей форме есть реквизит с типом, например, перечисление. по нажатию на кнопку открывается доп.форма на которой есть такой же реквизит(перечисление) и он заполнен
19 Aswed
 
11.05.10
18:19
Млять, достала эта 1С!!!
С"ка блин долбанная, уже нерв нет ни каких.
Перегрузил комп, всё стало отображаться.
20 Aswed
 
11.05.10
18:20
(18) Дык и у меня работать должен был. Но из-за каких то глюков движка ни хрена не срабатывал. Пипец блин.
21 sda553
 
11.05.10
21:09
Форма.Владелец = ЭтаФорма.Владелец;
   Форма.ОткрытьМодально();
Вам просто надо понять "философию" этой 8.2.

То что есть
   Форма.Объект.ВидКИ = ВыбранноеЗначение;
Неправильно потому что Объект в этом случае - это не то что объект в 8.1. Здесь это сериализованная упаковка объекта полученная при создании формы и помещенная в ее реквизит. Меняете этот объект в форме - для других форм это не видно.
Что можно сделать?
Во первых можно получить привычный "Объект" рассериализовав упаковку
РеквизитФормыВЗначение("Объект").ВидКИ = ВыбранноеЗначение;
Но этого мало, обекту вы реквизит заполните, но чтобы другая форма его считала(в ней тоже пока упаковка своя в реквизите) надо перечитать данные формы или выполнить обратную операцию ЗначениеВРеквизитФОрмы.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн