|
Установка значения в модуле формы и получение его в модуле объекта | ☑ | ||
---|---|---|---|---|
0
NIGHTHUNTER
15.09.21
✎
09:04
|
Внешний отчет. Устанавливаю значение в модуле формы, и значение реквизита формы и значение реквизита объекта.
Но потом в модуле объекта, в этом реквизите нет значения. Как правильно его там получить? Установка в модуле формы: ЭтотОбъект.ИмяМакетаРеквФ = РезультатВыбора.Значение; // ВнешнийОтчет = РеквизитФормыВЗначение("Отчет"); ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение; Получение в модуле объекта: Как получить эти значения в модуле объекта внешнего отчета? |
|||
1
NIGHTHUNTER
15.09.21
✎
09:05
|
В модуле объекта,
ЭтотОбъект.ИмяМакетаРеквОб пусто, хотя устанавливалось в модуле формы. |
|||
2
Ненавижу 1С
гуру
15.09.21
✎
09:11
|
ЭтотОбъект.Отчет.ИмяМакетаРеквФ = РезультатВыбора.Значение;
// ВнешнийОтчет = РеквизитФормыВЗначение("Отчет"); ПолучаемоеЗначение = ВнешнийОтчет.ИмяМакетаРеквОб; |
|||
3
acht
15.09.21
✎
09:20
|
(2) ИмяМакетаРеквФ, ИмяМакетаРеквОб - какая, в сущности, разница. Сейчас мы его взорвем =)
В форме на сервере: ВнешнийОтчет = РеквизитФормыВЗначение("Отчет"); ВнешнийОтчет.МоеЗначение = РезультатВыбора.Значение; ВнешнийОтчет.МойМетод(); В модуле отчета: Перем МоеЗначение Экспорт Процедура МойМетод() Сообщить(МоеЗначение); КонецПроцедуры |
|||
4
NIGHTHUNTER
15.09.21
✎
09:25
|
(2) В модуле объекта там пусто.
То есть при открытии формы. В модуле формы там устанавливается значение. А потом при нажатии кнопки в открытой уже форме, в модуле объекта, в этом значении пусто. |
|||
5
Ненавижу 1С
гуру
15.09.21
✎
09:35
|
(4) короче, надо заполнять реквизит именно объекта
(3) не заметил, что у него они называются по разному |
|||
6
acht
15.09.21
✎
09:37
|
||||
7
NIGHTHUNTER
15.09.21
✎
09:46
|
вот, провожу тест.
При открытии внешнего отчета, в модуле формы, - http://joxi.ru/KAx3R4VTvwYQL2 потом в модуле объекта, внешнего отчета там пусто ((( http://joxi.ru/YmEbex8CBLezg2 |
|||
8
NIGHTHUNTER
15.09.21
✎
09:48
|
(7) ну то есть ЭтотОбъект.ИмяМакетаРеквФ - там не доступен, а в ЭтотОбъект.ИмяМакетаРеквОб - пусто
|
|||
9
NIGHTHUNTER
15.09.21
✎
09:50
|
||||
10
acht
15.09.21
✎
09:52
|
(9) Об этом тебе расскажут в части "Взаимодействие модуля формы с модулями объектов и менеджеров" курса.
|
|||
11
ДенисЧ
15.09.21
✎
09:52
|
Вот смотри. Ты реквизитФормыВЗначение() сделал, данные написал. А обратно объект кто будет пихать? Откуда взял, туда и положи, раз уж так перанусно ходишь...
|
|||
12
NIGHTHUNTER
15.09.21
✎
09:53
|
(2) ЭтотОбъект.Отчет - тут вообще нет никаких реквизитов
|
|||
13
NIGHTHUNTER
15.09.21
✎
09:54
|
(11) Рк, сейчас попробую.
|
|||
14
NIGHTHUNTER
15.09.21
✎
09:56
|
(11) Так ли будет?
ВнешнийОтчет = РеквизитФормыВЗначение("Отчет"); ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение; ЗначениеВРеквизитФормы(ВнешнийОтчет.ИмяМакетаРеквОб, "ИмяМакетаРеквОб"); |
|||
15
acht
15.09.21
✎
09:58
|
(11) Ну все, Денис. Взялся - возись =]
|
|||
16
NIGHTHUNTER
15.09.21
✎
09:59
|
ВнешнийОтчет = РеквизитФормыВЗначение("Отчет");
ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение; ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет"); //ЗначениеВРеквизитФормы(ВнешнийОтчет.ИмяМакетаРеквОб, "ИмяМакетаРеквОб"); ошибку выдает по причине: Недопустимое значение параметра (параметр номер '2') вроде же все правильно! |
|||
17
acht
15.09.21
✎
10:01
|
Андрей, у тебя ж в этом году юбилей - 30 лет. Сколько из них ты уже с 1С мучаешся?
Может, пока не поздно, ну его, а? |
|||
18
Ненавижу 1С
гуру
15.09.21
✎
10:06
|
не надо там РеквизитФормыВЗначение
сразу в форме заполняй реквизит объекта: ЭтотОбъект.Отчет.ИмяМакетаРеквОб = ... |
|||
19
acht
15.09.21
✎
10:16
|
Я бы вообще дополнительные свойства настроек компоновщика использовал. Они, собственно, для этого и предназначены.
|
|||
20
ptiz
15.09.21
✎
10:19
|
(0) РеквизитФормыВЗначение("Отчет") - этот код создаёт из Данных формы Новый экземпляр Объекта. Ты или должен его обратно превратить Объект в Данные формы, либо тут же, в этой же процедуре использовать этот экземпляр объекта. По-твоему коду непонятно - что ты дальше делаешь с этим экземпляром.
|
|||
21
NIGHTHUNTER
15.09.21
✎
10:31
|
(18) тут нет никаких реквизитов http://joxi.ru/DrlGP4NfGdevLA
|
|||
22
NIGHTHUNTER
15.09.21
✎
10:33
|
(20) Я задал реквизиту значение, затем хочу сохранить его
ВнешнийОтчет = РеквизитФормыВЗначение("Отчет"); ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение; ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет"); что не так в этой инструкции ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет"); |
|||
23
NIGHTHUNTER
15.09.21
✎
10:34
|
(20) как будет правильно превратить, Объект в данные формы?
|
|||
24
vicof
15.09.21
✎
10:42
|
Поколдовать, епта
|
|||
25
NIGHTHUNTER
15.09.21
✎
10:44
|
(20) я же так и делаю, но идет ошибка
ВнешнийОтчет = РеквизитФормыВЗначение("Отчет"); ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение; ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет"); по причине: Недопустимое значение параметра (параметр номер '2') |
|||
26
NIGHTHUNTER
15.09.21
✎
10:47
|
(11) я вот делаю в (25), как правильно?
|
|||
27
ptiz
15.09.21
✎
10:49
|
(25) Какие типы значений у ВнешнийОтчет.ИмяМакетаРеквОб и РезультатВыбора.Значение ? Посмотри в отладчике.
|
|||
28
runoff_runoff
15.09.21
✎
10:50
|
(0) ответ в (19)
|
|||
29
NIGHTHUNTER
15.09.21
✎
10:55
|
||||
30
NIGHTHUNTER
15.09.21
✎
10:56
|
(28) Мне они не известны, делаю пока по найденному примеру, но столкнулся что в нем не все работает.
Пробую разрешить это. А (19) вообще не знакомо. |
|||
31
runoff_runoff
15.09.21
✎
11:01
|
(30) структура Отчет.КомпоновщикНастроек.ДополнительныеСвойства
|
|||
32
NIGHTHUNTER
15.09.21
✎
11:20
|
(31) пустая структура, или даже 3 структуры, что с ними делать?
http://joxi.ru/RmznO4eijV71Xm я хочу просто передать значение и получить его, из реквизиты формы или объекта. |
|||
33
NIGHTHUNTER
15.09.21
✎
11:23
|
||||
34
hhhh
15.09.21
✎
11:25
|
(33) в этом примере реквизиты не присваиваются.
|
|||
35
NIGHTHUNTER
15.09.21
✎
11:57
|
(34) вот это не работает
ВнешнийОтчет = РеквизитФормыВЗначение("Отчет"); ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение; ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет"); как последнюю строку задать что бы работала? Там задается значение реквизита. Как мне сделать что бы увидеть результат? |
|||
36
runoff_runoff
15.09.21
✎
12:01
|
Отчет.КомпоновщикНастроек.ДополнительныеСвойства.Вставить("ИмяМакетаРеквОб", "ФакинЧикенШит");
|
|||
37
NIGHTHUNTER
15.09.21
✎
12:05
|
(36) Так, так , так .... сойчас испробую. Спасибо вам. За продвижение вопроса!!!! Буду испытывать!
|
|||
38
NIGHTHUNTER
15.09.21
✎
12:08
|
(36) Один момент, - такого нет Отчет.КомпоновщикНастроек.ДополнительныеСвойства
Есть Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства Отчет.КомпоновщикНастроек.ФиксированныеНастройки.ДополнительныеСвойства прав ли я что ваш пример вызовет ошибку? |
|||
39
NIGHTHUNTER
15.09.21
✎
12:08
|
(36) в какую структуру все же вставлять?
|
|||
40
Вафель
15.09.21
✎
12:10
|
(39) ну возьми первую
|
|||
41
NIGHTHUNTER
15.09.21
✎
12:10
|
(40) пробую!
|
|||
42
NIGHTHUNTER
15.09.21
✎
13:03
|
При открытии отчета, в структуру значение прописалось
http://joxi.ru/eAObaQlC6GqRQ2 но при формировании, в модуле объекта, нет этого значения (((( http://joxi.ru/n2Yl73nC70dKRm |
|||
43
Kassern
15.09.21
✎
13:11
|
(42) нда...Только что спецом даже проверил. Все работает!
Скорее всего у тебя в коде при компановке настройки сбрасываются или переопределяются. |
|||
44
NIGHTHUNTER
15.09.21
✎
13:15
|
(43) понятно, как бы это определить!
|
|||
45
Kassern
15.09.21
✎
13:17
|
||||
46
NIGHTHUNTER
15.09.21
✎
13:18
|
(43) Спасибо, да это работает. В самый конец перенес строку
ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресВремХран); Отчет.КомпоновщикНастроек.Инициализировать(ИсточникНастроек); Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию); // Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ИмяМакета", РезультатВыбора.Значение); КонецПроцедуры |
|||
47
Kassern
15.09.21
✎
13:18
|
(44) ну так встань ты точкой останова в начале процедуры и посмотри передается или нет)
|
|||
48
Kassern
15.09.21
✎
13:18
|
(46) ну вот
|
|||
49
NIGHTHUNTER
15.09.21
✎
13:37
|
(48) да они там перетирались видимо у меня.
Да это работает. То есть выявилось. что создаешь хоть реквизит формы, хоть реквизит объекта, в модуле объекта его не увидеть? |
|||
50
Kassern
15.09.21
✎
13:44
|
(49) ну так всегда и было, реквизиты формы доступны лишь на форме. Модуль объекта о них ни слухом ни духом.
А по поводу реквизита объекта - все нормально передается без всяких проблем. Создаешь реквизит, на форме Отчет.ТвойРеквизит="Бла бла бла"; Потом в модуле объекта просто обращаешься ТвойРеквизит, он будет твое значение содержать. |
|||
51
Kassern
15.09.21
✎
13:45
|
(50) реквизит создаешь у объекта, а не на форме, чтобы так работало.
|
|||
52
Kassern
15.09.21
✎
13:45
|
(49) в итоге выяснилось, что у вас большие проблемы с УФ)
|
|||
53
hhhh
15.09.21
✎
14:19
|
(51) не работает так. там реально пусто в процедуре ПриКомпоновкеРезультата. Потому что это 2 разных объекта.
|
|||
54
Kassern
15.09.21
✎
14:25
|
(53) я только что проверял, все работает
|
|||
55
Kassern
15.09.21
✎
14:29
|
(53) онли фо ю) https://ibb.co/f4L2pnz
|
|||
56
hhhh
15.09.21
✎
14:43
|
(54) Тогда что не так у тс? Родился под несчастливой звездой?
|
|||
57
Kassern
15.09.21
✎
14:53
|
(56) да хз что там у него. Значит как то не так заполняет либо плавает в понятиях.
|
|||
58
NIGHTHUNTER
15.09.21
✎
15:39
|
(57) у меня нет такого реквизита http://joxi.ru/L21NePvtzDx8nA
у отчета он есть http://joxi.ru/BA08ePMCvqXJYA |
|||
59
Kassern
15.09.21
✎
15:43
|
(58) сравни свое обращение к реквизиту объекта и мое и найди различие
|
|||
60
NIGHTHUNTER
15.09.21
✎
15:57
|
(59)
задавать я смог только так ВнешнийОтчет = РеквизитФормыВЗначение("Отчет"); ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение; и потом его нет в при компоновке результата в модуле объекта а вы просто задаете Отчет.Тестовый = у меня в Отчет. нет реквизита моего, хлотя он есть у объекта http://joxi.ru/BA08ePMCvqXJYA |
|||
61
Kassern
15.09.21
✎
15:59
|
(60) по кнопке на форме на сервере ты же можешь тупо написать Отчет.ИмяМакетаРеквОб ="Бла бла" ?
А дальше при компоновке просто обратиться к ИмяМакетаРеквОб |
|||
62
Kassern
15.09.21
✎
16:01
|
(60) в твоем случае основной реквизит формы это отчет? Он жирным выделен в реквизитах формы. Для внешнего отчета у него тип ВнешнийОтчет.ИмяОтчета.
|
|||
63
Kassern
15.09.21
✎
16:02
|
вот к нему и обращаешься на форме чтобы заполнить реквизит объекта. А в модуле объекта на прямую обращаешься к реквизитам объекта.
|
|||
64
NIGHTHUNTER
15.09.21
✎
16:18
|
(61) нет там в Отчет. реквизитов
|
|||
65
NIGHTHUNTER
15.09.21
✎
16:21
|
||||
66
NIGHTHUNTER
15.09.21
✎
16:25
|
||||
67
runoff_runoff
15.09.21
✎
16:29
|
(66) у него форма своя, а не общая.. для общей не работает..
|
|||
68
Kassern
15.09.21
✎
16:30
|
(67) а он общую форму ковырял?) Я думал вообще у него своя форма со своим блекджеком и....
|
|||
69
NIGHTHUNTER
15.09.21
✎
16:31
|
(67) Ясно.
(68) По примеру делаю. Там нужно было взять общую форму БСП. |
|||
70
NIGHTHUNTER
15.09.21
✎
16:33
|
Ну тогда в общей форме решается через,
Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ИмяМакета", РезультатВыбора.Значение) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |