|
Данные реквизита типа "Табличная часть" внешней обработки не видны во второй форме | ☑ | ||
---|---|---|---|---|
0
Elkin-Palkin
16.04.20
✎
13:42
|
Есть внешняя обработка, управляемые формы. В обработке есть реквизит типа "Табличная часть" - МояТЧ. Так же в обработке есть две формы.
В обеих формах в качестве основного реквизита указан объект обработки. В одной форме я заполнил этот реквизит МояТЧ, а во второй хочу использовать. В первой форме перед самым открытием второй формы я вижу, что МояТЧ - заполнена. Однако, в процедуре-обработчике ПриСозданииНаСервере() во второй форме сразу после ОбработкаОбъект = РеквизитФормыВЗначение("Объект") вижу, что ОбработкаОбъект.Количество() = 0 , т.е. как будто бы МояТЧ - пустая. Подскажите, как мне увидеть во второй форме этот реквизит обработки заполненным? |
|||
1
Ненавижу 1С
гуру
16.04.20
✎
13:46
|
(0) почему решили, что это формы одного и того-же объекта?
|
|||
2
patria0muerte
16.04.20
✎
13:46
|
(0) Передавать параметром. В данном случае - на второй форме у тебя новый экземпляр обработки.
Либо можно попробовать перед открытием второй формы сделать что-то типа КопироватьДанныеФормы |
|||
3
Elkin-Palkin
16.04.20
✎
13:48
|
(1) По аналогии с обычными формами
|
|||
4
Ненавижу 1С
гуру
16.04.20
✎
13:50
|
(3) и в обычных формах не всегда один и тот же объект в формах
|
|||
5
Elkin-Palkin
16.04.20
✎
13:54
|
(3) Может быть. Но конкретно у меня такое вот проканывало - в любой форме из ОДНОЙ И ТОЙ ЖЕ обработки я видел все реквизиты обработки.
|
|||
6
Elkin-Palkin
16.04.20
✎
13:55
|
(5) было к (4)
|
|||
7
Ненавижу 1С
гуру
16.04.20
✎
14:00
|
ок, как открываете вторую форму? если из первой, то надо передавать объект
|
|||
8
Elkin-Palkin
16.04.20
✎
14:05
|
(7) Вот так:
ВтораяФорма = ПолучитьПолноеИмяФормы("МояВтораяФорма"); ОткрытьФорму(ВтораяФорма); ПолучитьПолноеИмяФормы() - функция, которая возвращает полное название с названием моей обработки. Т.е. ВнешняяОбработка.МояВнешняяОбработка.Форма.МояВтораяФорма Если нифига с этим реквизитом не получится, то придётся использовать вариант с параметрами, как посоветовал в (1) |
|||
9
Ненавижу 1С
гуру
16.04.20
✎
14:10
|
(8) так и не получится, вторая обработка ничего не знает об экземпляре объекта первой формы
|
|||
10
Ненавижу 1С
гуру
16.04.20
✎
14:13
|
Форма2 = ПолучитьФорму("ИмяФормы",,ЭтаФорма);
КопироватьДанныеФормы(Объект,Форма2.Объект); Форма2.Открыть(); |
|||
11
Elkin-Palkin
16.04.20
✎
14:17
|
(8) Ты хотел сказать не вторая "обработка", а вторая "форма"? Да? Я же использую вторую форму ТОЙ ЖЕ обработки.
|
|||
12
Elkin-Palkin
16.04.20
✎
14:18
|
Бл%! Опять промахнулся. (11) к (9)
|
|||
13
Ненавижу 1С
гуру
16.04.20
✎
14:21
|
(11) с чего ты так решил? ПолучитьФорму теперь метод глобального контекста
|
|||
14
Elkin-Palkin
16.04.20
✎
14:33
|
С чего я решил? Ну это ведь две формы в одной и той же обработке! С этого я и решил :)
Видимо, я всё ещё мыслю категориями обычных форм, а в управляемых формах по другому: при открытии второй формы, которая хоть и находится в этой же обработке, создаётся ВТОРОЙ экземпляр, который не знает о первом экземпляре ничего. В том числе о заполненных реквизитах обработки. Я правильно понимаю? |
|||
15
Elkin-Palkin
16.04.20
✎
14:34
|
Перечитал (9). Похоже это ответ на мой заданный вопрос.
|
|||
16
Ненавижу 1С
гуру
16.04.20
✎
14:41
|
(14)
1. в обычных формах методы самого объекта были доступны из формы, поэтому прямо из формы можно было вызывать метод объекта ПолучитьФорму - естественно создавалась форма объекта его вызывавшего 2. теперь объект на сервере живет и поэтому у него не может быть методов ПолучитьФорму, эти процедуры стали глобальным контекстом, доступным на клиенте - но теперь данные объекта надо передавать явно |
|||
17
Elkin-Palkin
16.04.20
✎
15:07
|
Спасибо!
Трудно, ох трудно менять подход к РАЗНОМУ поведению объектов 1С в обычных и управляемых формах. Воспользуюсь предложенным вариантом в (2), а Обожателю1С :) спасибо за развёрнутое пояснение. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |