Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Помогите разобраться с УФ

Помогите разобраться с УФ
Я
   WaLeRa
 
06.08.19 - 06:54
Доброго всем времени суток!
Создал внеш. обработку, добавил две формы, одну основную, вторую произвольную и на нее добавил поле Календарь путь данным Объект.Календарь (СпрСсылка.Календари).
1. Из основной вызываю произвольную и в поле Календарь выбираю значение, далее закрываю произв. форму и проверяю значение Объект.Календарь в основной, оно пустое. Почему?
2. Принудительно присваиваю значение Объект.Календарь в основной, проверяю что установилось, открываю произв. форму, но значение не выбрано. Оно же ссылается на Объект.Календарь что не так?
P.S. с реквизитами формы работал, ЗначениеВРеквизитФормы и РеквизитФормыВЗначение понимаю для чего нужны, но с Объектом не могу понять как это применять
 
 
   Mankubus
 
1 - 06.08.19 - 07:31
   Пробел
 
2 - 06.08.19 - 08:06
Тип вашего объекта "ВнешняяОбработкаОбъект". Но если Вы посмотрите отладчиком в любой из форм, то увидите, что у объекта будет тип "ДанныеФормыСтруктура".

Управляемая форма не работает с объектом напрямую. Каждый раз при создании новой формы, создается, грубо говоря, отражение объекта. Причем разные отражения одного объекта независимы друг от друга.

Поскольку для внешней обработки невозможно записать объект, нужно изобретать (или погуглить) способы передачи данных из одной формы на другую.
   Провинциальный 1сник
 
3 - 06.08.19 - 08:09
Реквизит объекта (обработки) можно использовать
   WaLeRa
 
4 - 06.08.19 - 08:28
(2) прочитал и охренел, спасибо
(3) пример можно пожалуйста?
   catena
 
5 - 06.08.19 - 08:32
(4)О чем пример? Сделай реквизит обработки и используй его во всех формах.
   WaLeRa
 
6 - 06.08.19 - 08:35
(5) так в (0) написано что сделал Объект.Календарь реквизит Календарь
   hhhh
 
7 - 06.08.19 - 08:41
(6) ну, во вторую форму календарь передал, а обратно забыл передать.
   WaLeRa
 
8 - 06.08.19 - 08:52
(7) это я уже понял, спасибо, в (2) написали про записать объект если бы это был док или справочник, насколько это правильно? ведь пользователь может отказаться от сохранения изменений а данные уже записаны с целью передачи параметра в другую форму...
   Mankubus
 
9 - 06.08.19 - 08:55
(8) в (1) я скинул ссылку на пример
//На первой форме

П = Новый Структура("Параметр1", Объект.Ссылка);
ОткрытьФорму("Документ.Судебный.Форма.Форма",П, ЭтаФорма);

//На второй форме

&;НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Переменная = Параметры.П.Параметр1; 

КонецПроцедуры


что не понятно?
   WaLeRa
 
10 - 06.08.19 - 09:02
(9) это я уже понял и применил, спасибо, вопрос только в записи объекта в (8) написано
   Пробел
 
11 - 06.08.19 - 09:06
(8) Это неправильно, лучше передавать данные из формы в форму.


Самый простой способ как по мне, это:

//на первой форме

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

//на второй форме

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
    ЗаполнитьЗначенияСвойств(ВладелецФормы.Объект, Объект);
КонецПроцедуры
   WaLeRa
 
12 - 06.08.19 - 09:41
(11) Благодарю, все получилось!

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