Вход | Регистрация
 

Установка значения в модуле формы и получение его в модуле объекта

Установка значения в модуле формы и получение его в модуле объекта
Я
   NIGHTHUNTER
 
15.09.21 - 09:04
Внешний отчет. Устанавливаю значение в модуле формы, и значение реквизита формы и значение реквизита объекта.

Но потом в модуле объекта, в этом реквизите нет значения. Как правильно его там получить?

Установка в модуле формы:
    ЭтотОбъект.ИмяМакетаРеквФ    = РезультатВыбора.Значение;
    //
    ВнешнийОтчет                 = РеквизитФормыВЗначение("Отчет");    
    ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение;

Получение в модуле объекта:

Как получить эти значения в модуле объекта внешнего отчета?
   NIGHTHUNTER
 
1 - 15.09.21 - 09:05
В модуле объекта, 

ЭтотОбъект.ИмяМакетаРеквОб

пусто, хотя устанавливалось в модуле формы.
   Ненавижу 1С
 
2 - 15.09.21 - 09:11
ЭтотОбъект.Отчет.ИмяМакетаРеквФ    = РезультатВыбора.Значение;
    //

    ВнешнийОтчет                 = РеквизитФормыВЗначение("Отчет");    
    ПолучаемоеЗначение = ВнешнийОтчет.ИмяМакетаРеквОб;
   acht
 
3 - 15.09.21 - 09:20
(2) ИмяМакетаРеквФ, ИмяМакетаРеквОб - какая, в сущности, разница. Сейчас мы его взорвем =)

В форме на сервере:
ВнешнийОтчет = РеквизитФормыВЗначение("Отчет");    
ВнешнийОтчет.МоеЗначение = РезультатВыбора.Значение; 
ВнешнийОтчет.МойМетод();

В модуле отчета:
Перем МоеЗначение Экспорт
Процедура МойМетод()
    Сообщить(МоеЗначение);
КонецПроцедуры
   NIGHTHUNTER
 
4 - 15.09.21 - 09:25
(2) В модуле объекта там пусто.

То есть при открытии формы. В модуле формы там устанавливается значение. А потом при нажатии кнопки в открытой уже форме,
в модуле объекта, в этом значении пусто.
   Ненавижу 1С
 
5 - 15.09.21 - 09:35
(4) короче, надо заполнять реквизит именно объекта
(3) не заметил, что у него они называются по разному
   acht
 
6 - 15.09.21 - 09:37
   NIGHTHUNTER
 
7 - 15.09.21 - 09:46
вот, провожу тест.
При открытии внешнего отчета, в модуле формы, -

http://joxi.ru/KAx3R4VTvwYQL2

потом в модуле объекта, внешнего отчета там пусто (((

http://joxi.ru/YmEbex8CBLezg2
   NIGHTHUNTER
 
8 - 15.09.21 - 09:48
(7) ну то есть ЭтотОбъект.ИмяМакетаРеквФ - там не доступен, а в ЭтотОбъект.ИмяМакетаРеквОб - пусто
   NIGHTHUNTER
 
9 - 15.09.21 - 09:50
Если тут все заполнилось

http://joxi.ru/KAx3R4VTvwYQL2

Как это получить в модуле объекта?
   acht
 
10 - 15.09.21 - 09:52
(9) Об этом тебе расскажут в части "Взаимодействие модуля формы с модулями объектов и менеджеров" курса.
   ДенисЧ
 
11 - 15.09.21 - 09:52
Вот смотри. Ты реквизитФормыВЗначение() сделал, данные написал. А обратно объект кто будет пихать? Откуда взял, туда и положи, раз уж так перанусно ходишь...
   NIGHTHUNTER
 
12 - 15.09.21 - 09:53
(2) ЭтотОбъект.Отчет - тут вообще нет никаких реквизитов
   NIGHTHUNTER
 
13 - 15.09.21 - 09:54
(11) Рк, сейчас попробую.
   NIGHTHUNTER
 
14 - 15.09.21 - 09:56
(11) Так ли будет?

    ВнешнийОтчет                 = РеквизитФормыВЗначение("Отчет");    
    ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение;
    ЗначениеВРеквизитФормы(ВнешнийОтчет.ИмяМакетаРеквОб, "ИмяМакетаРеквОб");
   acht
 
15 - 15.09.21 - 09:58
(11) Ну все, Денис. Взялся - возись =]
   NIGHTHUNTER
 
16 - 15.09.21 - 09:59
ВнешнийОтчет                 = РеквизитФормыВЗначение("Отчет");    
    ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение;
    ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет");
    //ЗначениеВРеквизитФормы(ВнешнийОтчет.ИмяМакетаРеквОб, "ИмяМакетаРеквОб");



ошибку выдает

по причине:
Недопустимое значение параметра (параметр номер '2')

вроде же все правильно!
   acht
 
17 - 15.09.21 - 10:01
Андрей, у тебя ж в этом году юбилей -  30 лет. Сколько из них ты уже с 1С мучаешся?
Может, пока не поздно, ну его, а?
   Ненавижу 1С
 
18 - 15.09.21 - 10:06
не надо там РеквизитФормыВЗначение
сразу в форме заполняй реквизит объекта:

ЭтотОбъект.Отчет.ИмяМакетаРеквОб = ...
   acht
 
19 - 15.09.21 - 10:16
Я бы вообще дополнительные свойства настроек компоновщика использовал. Они, собственно, для этого и предназначены.
   ptiz
 
20 - 15.09.21 - 10:19
(0)  РеквизитФормыВЗначение("Отчет") - этот код создаёт из Данных формы Новый экземпляр Объекта. Ты или должен его обратно превратить Объект в Данные формы, либо тут же, в этой же процедуре использовать этот экземпляр объекта. По-твоему коду непонятно - что ты дальше делаешь с этим экземпляром.
   NIGHTHUNTER
 
21 - 15.09.21 - 10:31
(18) тут нет никаких реквизитов http://joxi.ru/DrlGP4NfGdevLA
   NIGHTHUNTER
 
22 - 15.09.21 - 10:33
(20) Я задал реквизиту значение, затем хочу сохранить его
ВнешнийОтчет                 = РеквизитФормыВЗначение("Отчет");    
ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение;
ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет");

что не так в этой инструкции

ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет");
   NIGHTHUNTER
 
23 - 15.09.21 - 10:34
(20) как будет правильно превратить, Объект в данные формы?
   vicof
 
24 - 15.09.21 - 10:42
Поколдовать, епта
   NIGHTHUNTER
 
25 - 15.09.21 - 10:44
(20) я же так и делаю, но идет ошибка

ВнешнийОтчет                 = РеквизитФормыВЗначение("Отчет");    
ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение;
ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет");

по причине:
Недопустимое значение параметра (параметр номер '2')
   NIGHTHUNTER
 
26 - 15.09.21 - 10:47
(11) я вот делаю в (25), как правильно?
   ptiz
 
27 - 15.09.21 - 10:49
(25) Какие типы значений у ВнешнийОтчет.ИмяМакетаРеквОб и РезультатВыбора.Значение ? Посмотри в отладчике.
   runoff_runoff
 
28 - 15.09.21 - 10:50
(0) ответ в (19)
   NIGHTHUNTER
 
29 - 15.09.21 - 10:55
(27) строка, это название макета

http://joxi.ru/BA08ePMCvqdXYA
   NIGHTHUNTER
 
30 - 15.09.21 - 10:56
(28) Мне они не известны, делаю пока по найденному примеру, но столкнулся что в нем не все работает.
Пробую разрешить это.

А (19) вообще не знакомо.
 
 
   runoff_runoff
 
31 - 15.09.21 - 11:01
(30) структура Отчет.КомпоновщикНастроек.ДополнительныеСвойства
   NIGHTHUNTER
 
32 - 15.09.21 - 11:20
(31) пустая структура, или даже 3 структуры, что с ними делать?

http://joxi.ru/RmznO4eijV71Xm

я хочу просто передать значение и получить его, из реквизиты формы или объекта.
   NIGHTHUNTER
 
33 - 15.09.21 - 11:23
вот есть пример, он работает http://joxi.ru/bmo5Q4kU7lwa0A

почему мой код не работает ?
   hhhh
 
34 - 15.09.21 - 11:25
(33) в этом примере реквизиты не присваиваются.
   NIGHTHUNTER
 
35 - 15.09.21 - 11:57
(34) вот это не работает
ВнешнийОтчет                 = РеквизитФормыВЗначение("Отчет");    
ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение;
ЗначениеВРеквизитФормы(ВнешнийОтчет, "Отчет");

как последнюю строку задать что бы работала?

Там задается значение реквизита. Как мне сделать что бы увидеть результат?
   runoff_runoff
 
36 - 15.09.21 - 12:01
Отчет.КомпоновщикНастроек.ДополнительныеСвойства.Вставить("ИмяМакетаРеквОб", "ФакинЧикенШит");
   NIGHTHUNTER
 
37 - 15.09.21 - 12:05
(36) Так, так , так .... сойчас испробую. Спасибо вам. За продвижение вопроса!!!! Буду испытывать!
   NIGHTHUNTER
 
38 - 15.09.21 - 12:08
(36) Один момент, - такого нет Отчет.КомпоновщикНастроек.ДополнительныеСвойства

Есть

Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства
Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства
Отчет.КомпоновщикНастроек.ФиксированныеНастройки.ДополнительныеСвойства

прав ли я что ваш пример вызовет ошибку?
   NIGHTHUNTER
 
39 - 15.09.21 - 12:08
(36) в какую структуру все же вставлять?
   Вафель
 
40 - 15.09.21 - 12:10
(39) ну возьми первую
   NIGHTHUNTER
 
41 - 15.09.21 - 12:10
(40) пробую!
   NIGHTHUNTER
 
42 - 15.09.21 - 13:03
При открытии отчета, в структуру значение прописалось

http://joxi.ru/eAObaQlC6GqRQ2

но при формировании, в модуле объекта, нет этого значения ((((

http://joxi.ru/n2Yl73nC70dKRm
   Kassern
 
43 - 15.09.21 - 13:11
(42) нда...Только что спецом даже проверил. Все работает!
Скорее всего у тебя в коде при компановке настройки сбрасываются или переопределяются.
   NIGHTHUNTER
 
44 - 15.09.21 - 13:15
(43) понятно, как бы это определить!
   Kassern
 
45 - 15.09.21 - 13:17
   NIGHTHUNTER
 
46 - 15.09.21 - 13:18
(43) Спасибо, да это работает. В самый конец перенес строку
    ИсточникНастроек   = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресВремХран);
    Отчет.КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
    Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);
    //

    Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ИмяМакета", РезультатВыбора.Значение);    
КонецПроцедуры
   Kassern
 
47 - 15.09.21 - 13:18
(44) ну так встань ты точкой останова в начале процедуры и посмотри передается или нет)
   Kassern
 
48 - 15.09.21 - 13:18
(46) ну вот
   NIGHTHUNTER
 
49 - 15.09.21 - 13:37
(48) да они там перетирались видимо у меня.

Да это работает.

То есть выявилось. что создаешь хоть реквизит формы, хоть реквизит объекта, в модуле объекта его не увидеть?
   Kassern
 
50 - 15.09.21 - 13:44
(49) ну так всегда и было, реквизиты формы доступны лишь на форме. Модуль объекта о них ни слухом ни духом.
А по поводу реквизита объекта - все нормально передается без всяких проблем.
Создаешь реквизит, на форме Отчет.ТвойРеквизит="Бла бла бла";
Потом в модуле объекта просто обращаешься ТвойРеквизит, он будет твое значение содержать.
   Kassern
 
51 - 15.09.21 - 13:45
(50) реквизит создаешь у объекта, а не на форме, чтобы так работало.
   Kassern
 
52 - 15.09.21 - 13:45
(49) в итоге выяснилось, что у вас большие проблемы с УФ)
   hhhh
 
53 - 15.09.21 - 14:19
(51) не работает так. там реально пусто в процедуре ПриКомпоновкеРезультата. Потому что это 2 разных объекта.
   Kassern
 
54 - 15.09.21 - 14:25
(53) я только что проверял, все работает
   Kassern
 
55 - 15.09.21 - 14:29
(53) онли фо ю) https://ibb.co/f4L2pnz
   hhhh
 
56 - 15.09.21 - 14:43
(54) Тогда что не так у тс? Родился под несчастливой звездой?
   Kassern
 
57 - 15.09.21 - 14:53
(56) да хз что там у него. Значит как то не так заполняет либо плавает в понятиях.
   NIGHTHUNTER
 
58 - 15.09.21 - 15:39
(57) у меня нет такого реквизита http://joxi.ru/L21NePvtzDx8nA

у отчета он есть http://joxi.ru/BA08ePMCvqXJYA
   Kassern
 
59 - 15.09.21 - 15:43
(58) сравни свое обращение к реквизиту объекта и мое и найди различие
   NIGHTHUNTER
 
60 - 15.09.21 - 15:57
(59)

задавать я смог только так
    ВнешнийОтчет                 = РеквизитФормыВЗначение("Отчет");    
    ВнешнийОтчет.ИмяМакетаРеквОб = РезультатВыбора.Значение;

и потом его нет в при компоновке результата в модуле объекта

а вы просто задаете Отчет.Тестовый =

у меня в Отчет. нет реквизита моего, хлотя он есть у объекта http://joxi.ru/BA08ePMCvqXJYA
 
 
   Kassern
 
61 - 15.09.21 - 15:59
(60) по кнопке на форме на сервере ты же можешь тупо написать Отчет.ИмяМакетаРеквОб ="Бла бла" ?
А дальше при компоновке просто обратиться к ИмяМакетаРеквОб
   Kassern
 
62 - 15.09.21 - 16:01
(60) в твоем случае основной реквизит формы это отчет? Он жирным выделен в реквизитах формы. Для внешнего отчета у него тип ВнешнийОтчет.ИмяОтчета.
   Kassern
 
63 - 15.09.21 - 16:02
вот к нему и обращаешься на форме чтобы заполнить реквизит объекта. А в модуле объекта на прямую обращаешься к реквизитам объекта.
   NIGHTHUNTER
 
64 - 15.09.21 - 16:18
(61) нет там в Отчет. реквизитов
   NIGHTHUNTER
 
65 - 15.09.21 - 16:21
(62) ну да http://joxi.ru/8AnQDeGsoKk4K2

Только Отчет как у вас не содержит реквизитов там
   NIGHTHUNTER
 
66 - 15.09.21 - 16:25
http://joxi.ru/krDbeX8CgdXVJ2

тестовый , как у вас Отчет.Тестовый =
тут не присвоится.
   runoff_runoff
 
67 - 15.09.21 - 16:29
(66) у него форма своя, а не общая.. для общей не работает..
   Kassern
 
68 - 15.09.21 - 16:30
(67) а он общую форму ковырял?) Я думал вообще у него своя форма со своим блекджеком и....
   NIGHTHUNTER
 
69 - 15.09.21 - 16:31
(67) Ясно.

(68) По примеру делаю. Там нужно было взять общую форму БСП.
   NIGHTHUNTER
 
70 - 15.09.21 - 16:33
Ну тогда в общей форме решается через,

Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ИмяМакета", РезультатВыбора.Значение)


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.