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


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

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

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


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

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

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

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

В ДополнительнойФорме Добавить Параметры на закладке "Параметры" (там же, где команды и реквизиты)
Ключевой Параметр живет пока открыта форма, неключевой - только во время ПриСозданииНаСервере()
Процедура ПриСозданииНаСервере()// ПриОткрытии()
НужныйРеквизит = Параметры.НужныйРеквизит;
КонецПроцедуры
15 AlexBor
 
naïve
13.05.21
11:49
(14) (13) (10) (7) Друзья вы мне очень помогли я разобрался у меня все получилось. Спасибо вам за помощь.
2 + 2 = 3.9999999999999999999999999999999...