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

УФ. В дополнительной форме не могу заполнить реквизит почему?

УФ. В дополнительной форме не могу заполнить реквизит почему?
Я
   AlexBor
 
13.05.21 - 09:51
Здравствуйте.  База самописная УФ. Есть справочник в нем основная форма и через нее открываю дополнительную  форму (
&НаКлиенте
Процедура ЛичныеДанные(Команда)


ОткрытьФорму("Справочник.ФизическиеЛица.Форма.ЛичныеДанные");

КонецПроцедуры
) на которой разместил несколько реквизитов, но в эти реквизиты не могу занести данные почему?
 
 Партнерская программа EFSOL Oblako
   AlexBor
 
1 - 13.05.21 - 10:49
???
   Василий Алибабаевич
 
2 - 13.05.21 - 10:53
(1) Код открытия формы есть. Кода заполнения данных нет. Это такой тест на телепатические способности?
   RomanYS
 
3 - 13.05.21 - 10:57
(0) главное понять, что эти две формы не связаны общим контекстом (в отличии от ОФ)... дальше легче будет
   AlexBor
 
4 - 13.05.21 - 10:58
(2) А это что?  

&НаКлиенте
Процедура ЛичныеДанные(Команда)


ОткрытьФорму("Справочник.ФизическиеЛица.Форма.ЛичныеДанные");

КонецПроцедуры
)
   AlexBor
 
5 - 13.05.21 - 11:00
(2) Кода заполнения нет потому что я хочу руками заполнить
   AlexBor
 
6 - 13.05.21 - 11:00
(3) Хорошо как это понять ))))?
   RomanYS
 
7 - 13.05.21 - 11:12
(6) Просто прими это.
А дальше ищи похожие примеры.
1. Общего объекта у форм не будет (в УФ это просто невозможно)
2. При открытии формы неплохо бы указать, что исходная является её владельцем. Возможно ещё нужно открываемую форму заполнить
3. Возврат данных в контекст основной формы придётся обрабатывать кодом
   Василий Алибабаевич
 
8 - 13.05.21 - 11:21
(6) Это понять очень просто. Дополнительная форма существует сама по себе. И никак не связана с "основной формой" объекта. И ничего не знает о объекте, который редактируется в "основной форме". Поэтому в доп форме нужно вводить свои реквизиты. Их заполнять значениями "Основного реквизита" "основной формы". После закрытия - возвращать отредактированные значения в основную форму.
Это вам не DataEnvironment от VFP. Здесь все изолировано и взаимодействует только кодом.
   Начинающий_13
 
9 - 13.05.21 - 11:22
&НаКлиенте
Процедура ПрочиеУчетныеДанные(Команда)
    
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Заголовок"       , "Прочие данные по работнику");
    ПараметрыФормы.Вставить("ДанныеНаДату"    , ДанныеНаДату);
    ПараметрыФормы.Вставить("ФизическоеЛицо"  , Объект.Ссылка);
    Если ПараметрыФормы <> Неопределено Тогда
        ОткрытьФорму("Справочник.маСотрудники.Форма.ФормаПрочиеДанные", ПараметрыФормы,
        ЭтотОбъект, УникальныйИдентификатор);
    КонецЕсли;
    
КонецПроцедуры
   Василий Алибабаевич
 
10 - 13.05.21 - 11:25
(9) "Объект.Ссылка" - здесь может прятаться белый пушистый лис. Для (например) нового элемента.
   fisher
 
11 - 13.05.21 - 11:26
(0) И какой тип основного реквизита у этой формы (который жирненьким в списке реквизитов)? Не чего-то там "..Объект"?
   Начинающий_13
 
12 - 13.05.21 - 11:28
(10)Здесь основная форма, это форма элемента проблем нет. Параметрыформы - он может не заполнять, т.к. ручками хотит делать.
   Начинающий_13
 
13 - 13.05.21 - 11:30
(0) Если форма открывается, В процедуре присозданиинасервере пиши алгоритм заполнения.
   BaZZiL
 
14 - 13.05.21 - 11:40
Откуда открываешь форму:

Процедура ОткрытиеДополнительнойФормы()
ПараметрыОткрытияДополнительнойФормы = Новый Структура;
ПараметрыОткрытияДополнительнойФормы.Вставить("НужныйРеквизит",ЗначениеНужногоРеквизита);
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаЗакрытияДополнительнойФормы",ЭтотОбъект);
ОткрытьФорму("Справочник.ФизическиеЛица.Форма.ЛичныеДанные",ПараметрыОткрытияДополнительнойФормы,ЭтаФорма,,,,ОписаниеОповещения);
КонецПроцедуры

Процедура ОбработкаЗакрытияДополнительнойФормы()
//Сделать что надо, когда закрылась дополнительная форма

КонецПроцедуры
==========================
В ДополнительнойФорме Добавить Параметры на закладке "Параметры" (там же, где команды и реквизиты)
Ключевой Параметр живет пока открыта форма, неключевой - только во время ПриСозданииНаСервере()
Процедура ПриСозданииНаСервере(// ПриОткрытии()

НужныйРеквизит = Параметры.НужныйРеквизит;
КонецПроцедуры
   AlexBor
 
15 - 13.05.21 - 11:49
(14) (13) (10) (7) Друзья вы мне очень помогли я разобрался у меня все получилось. Спасибо вам за помощь.

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