Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 авг 2022, 09:35

основная форма -> доп.форма

Автор andron81_81, 13 янв 2018, 18:54

0 Пользователей и 1 гость просматривают эту тему.

andron81_81

Добрый вечер.
Итак, управляемые формы.
У меня задача такая : есть кнопка в основной форме (форма документа), она открывает доп. форму (тоже форма документа) которая должна быть связана текущий объект как и основная. Можно передать параметром в доп. форму так :

П = Новый Структура("Ключ", Объект.Ссылка);
ОткрытьФорму("ДопФорма", П);

В результате доп.форма при открытии ассоциирована с тек. объектом. И все казалось бы неплохо. Но только в
том случае если объект сохранен. Если только что создан , то ассоциации не будет.
Как можно тут выкрутиться ?

LexaK

такая задача решается немного по другому
пишется некая форма Стартер, на которой выбирается нужный режим/условия и т.д.
(или просто перечень разных форм и кнопка открыть)
и в зависимости от них уже сразу запускается нужная форма создания/заполнения документа
в этом случае ни чего между формами перебрасывать/копировать не надо.
если помогло нажмите: Спасибо!

andron81_81

Цитата: LexaK от 14 янв 2018, 09:22
такая задача решается немного по другому
пишется некая форма Стартер, на которой выбирается нужный режим/условия и т.д.
(или просто перечень разных форм и кнопка открыть)
и в зависимости от них уже сразу запускается нужная форма создания/заполнения документа
в этом случае ни чего между формами перебрасывать/копировать не надо.

очень не подробно вы написали. форма стартер у меня как бы основная тут форма. условий никаких нет. только кнопка по которой должна открываться вспомогательная

LexaK

тогда просто

...
лкФорма = ПолучитьФорму(...); //получаете и открываете новую пустую форму (при создании документа, данных еще нет)
лкФорма.Открыть();
Этаформа.Закрыть(); //закрываете текущую
если помогло нажмите: Спасибо!

andron81_81

Цитата: LexaK от 14 янв 2018, 19:26
тогда просто

...
лкФорма = ПолучитьФорму(...); //получаете и открываете новую пустую форму (при создании документа, данных еще нет)
лкФорма.Открыть();
Этаформа.Закрыть(); //закрываете текущую

Ещё раз.
у меня 2 формы. Обе формы документа
1) главная с таб. частью "детали" с кнопкой
2) вспомогательная форма так же с таб. частью "детали"
Я в главной форме заполняю т.ч. детали.
А потом необходимо, чтобы при нажатии на кнопку на главной форме открывалась вспомогательная с заполненной таб. частью "детали".
Можно передать параметром в доп. форму так :

П = Новый Структура("Ключ", Объект.Ссылка);
ОткрытьФорму("ДопФорма", П);


В результате доп.форма при открытии ассоциирована с тек. объектом. Если документ сохранен, то всё работает. но для вновь созданного объекта работать не будет . так как Объект.Ссылка не существует.

Что Вы написали вообще непонятно


LexaK

да, вообще не понятна проблема!

если у вас новый документ, так просто запишите его!!! А потом открывайте вторую форму! 

    Записать();
    П = Новый Структура("Ключ", Объект.Ссылка);
    ОткрытьФорму("ДопФорма", П);
если помогло нажмите: Спасибо!

andron81_81

Цитата: LexaK от 14 янв 2018, 22:45
да, вообще не понятна проблема!

если у вас новый документ, так просто запишите его!!! А потом открывайте вторую форму! 

    Записать();
    П = Новый Структура("Ключ", Объект.Ссылка);
    ОткрытьФорму("ДопФорма", П);


хех . в смысле записать ? а если человек передумал и не хочет записывать документ ? а он уже принудительно записан.

LexaK

э-э-э, а команда удалить - на что?
если помогло нажмите: Спасибо!

andron81_81

Цитата: LexaK от 14 янв 2018, 22:48
э-э-э, а команда удалить - на что?

это костыли какие-то. не хотелось бы чтобы черновики которые может и "не пойдут в тираж" сразу сохранялись
при помощи ПолучитьСсылкуНового(), УстановитьСсылкуНового() можно как-то сработать? я просто тут не владею как ими пользоваться

LexaK

тогда не понятна ваша чехарда с формами!
смысл? вводить документ в одной форме, потом на половине ввода открывать вторую форму и продолжать ввод там?
почему сразу нельзя открыть вторую форму? и работать только в ней?
(и к стати этот вариант, как раз без костылей!)

в вашем случае еще можно попробовать заполнять вторую форму через
РеквизитФормыВЗначение(...)
ЗначениеВРеквизитФормы(...)
только всеравно не понятно а зачем это ... :fdbsdfbsd:
если помогло нажмите: Спасибо!

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск