Оповестить в команде формы после Закрытия УФ методология #716744


#0 by Franchiser
Из одной формы открываю другую. По кнопке в открытой форме в коде пишу закрыть и оповестить. В вызываемой форме срабатывает обработка оповещения, где я потом методом копироватьданныеформы перетаскиваю реквзиту. Насколько корректно то что оповестить вызывается после закрытия формы, это фича такая? Понимаю, что сейчас есть новое свойство формы описаниеоповещенияозакрытии, но он тут не совсем подходит тк нельзя использовать коппироватьданныеформы и нужно преобразовывать реквизиты формы к прикладным типам, а у меня таких 4 таблицы ДанныеформыСтруктура.
#1 by jsmith
не после закрытия, а перед закрытием
#2 by jsmith
наверно
#3 by Franchiser
Да я создал команду формы, понятно что предопределенные процедуры формы по закрытию еще должны выполниться, но разве если в обработчике команды написать этаформа.закрыть в этой же процедуре код должен дальше выполняться?
#4 by acsent
Если в кнопке формы написать Закрыть; Сообщить; Выполнится ли сообщить?
#5 by Адский плющ
Юзай ОповеститьОВыборе.
#6 by Franchiser
Да
#7 by Franchiser
мне нужен доступ к данным этой формы в вызываемой чтобы копировать реквизиты формы: объект, и еще 3 псевдотз
#8 by Адский плющ
Не нужен. Пусть весь этот шлак возвращается в параметре ОповеститьОВыборе. В нормальном клиентском виде, конечно же. Реквизиты в структурах, таблицы в адресах ВХ.
#9 by Franchiser
типы данныеформыструктура, данныеформыколлекция нельзя передавать вроде в параметры а делать лишние преобразования в тз не хочется. Нужно раскурочивать объект на части тогда, что неудобно.
#10 by Franchiser
Напишите кто нибудь почему так делать нельзя как я написал?
#11 by Адский плющ
Зато это ТРУЪ А копаться одной формой в кишках другой - однозначно г*нокод.
#12 by jsmith
Временное хранилище
#13 by Franchiser
У гилева видел  пример копания в одной форме из другой. Там сначала методом получитьформу получаем форму, затем копируют данные формы в открываемую. Тоже го-но код?
#14 by Franchiser
во временное хранилище можно передать только тз, этот вариант я знаю, в другом месте так сделал. В Вх в качестве адреса передавал УИД но форма уже закрыта и произодится ВХ удалять вручную. К тому же создавать 5 ВХ как то странно.
#15 by Franchiser
Можно в вх поместить конечно структуру с несколькими тз и реквизитами. Но вопрос интересует с точки зрения изучения.
#16 by Адский плющ
Ну да. Он родимый. Разработчика/доработчика формы должен волновать только состав получаемых формой параметров и то что форма должна вернуть. Если он решил перепилить форму полностью изменив её реквизиты, его не должно волновать что какой-то г-кодер решил, что в этой форме всегда будет таблица "ТабличноеПоле1" или что-то в этом роде.
#17 by Franchiser
Как правило нужно перегнать реквизит формы объект, а он не может быть не одинаковым, тк связан с реквизитом объекта.
#18 by Franchiser
я сейчас перевожу обработку с обычных форм на управляемые. А там много вызовов форм в модальном режиме, передача параметров между формами через переменные экспортные модуля и реквизиты объекта, а в упр форме через реквищиты объекта параметры не передаются, поэтому приходится мудрить.
#19 by Адский плющ
Вообще-то может. Есть волшебное свойство элемента коллекции "Объект" "Использовать всегда". Тут уже самому решать, быстро переделывать или качественно.
#20 by Franchiser
Спасибо.
#21 by Franchiser
Еще вопрос. при работе с временных хранилищем можно задать , например, в качестве 2го параметра гуид какой то формы, гуид новый или не задавать. Как я понял если не задавать гуид то время жизни хранилища до первого вызова общего модуля, если задать гуид формы, то время жизни формы, а если непривязанный новый гуид, то до окончания севнса.  В случае вызова модальной формы что лучше использовать? До конца сеанса вроде как долго, а вызов процедуры общего модуля может быть неявно когда угодно.
#22 by jsmith
если гуид задашь, хранилище до закрытия формы существует
#23 by jsmith
я лично использую гуид владельца
#24 by jsmith
модальные формы не использую вообще открывает новое окно в новой вкладке там пишу при закрытии оповестить о выборе а во владельце обработка выбора
#25 by Franchiser
Дело в том что у меня 2 форма как бы модальных (с блокированием интерфейса если по-новому) если задать гуид владельца то при обращении ко второй форме в хранилище записатт по тому же гуиду не получится. Когда 1 форма наверно гуид владельца правильно. А тут получается  что гуид модальной формы после ее закрытия становится непривязанным к форме и будет действовать до конца сеанса если вручную не удалить ВХ.
#26 by jsmith
ты задачу опиши
#27 by jsmith
конкретно, что ты делаешь, что тебе надо
#28 by Franchiser
сейчас вместо оповеститьовыборе в 8.3 можно обработчик оповещения передавать в метод открыть форму очень удобно, еще вариант если через получитьформу устанавливать свойство формы обработчикооповещенияозакрытии тоже очень удобно.
#29 by Franchiser
есть форма владелец. На ней есть 2 кнопки которые открывают 2 разные формы (там идет соединение по com к разным системам), оперирующие данными формы-владельца. Окончательная обработка данных осуществляется в форме владельца (создаются документы)
#30 by Franchiser
Собственно вопрос как лучше реализовать транспорт реквизитов между 3мя формами.
#31 by Franchiser
Порядок работы такой открывается форма-владелец, в нее грузятся данные из дбф, потом из нее открывается форма и получаются данные по ком, возврат в форму владелец, открывается другая форма и грузятся данные ком, возврат в форму владелец, создание документов.
#32 by jsmith
а чем оповестить о выборе и врем. хранилище не устраивает
#33 by Franchiser
Врем хранилище висит в памяти пока его не удалишь вручную и совесть неспокойна.
#34 by jsmith
забей. удаляй. всё образуется
#35 by jsmith
напиши на листочке все варианты. плюсы минусы. выбери нужное решение
#36 by Franchiser
Оповеститьовыборе ты пишешь после этоформа.закрыть? Или в призакрытии?
#37 by jsmith
при закрытии
#38 by jsmith
потому что после закрытия на сервере вроде не работает эта тема
#39 by jsmith
я делаю так на форме есть реквизит СохранитьПараметры по умолчанию ложь если нажали окей, то истина в при закрытии если сохранитьпараметры = истина, то оповестить о выборе параметры функции получаю при этом из сервера подчас то есть при закрытии идёт ещё обращение к серверу ну тема годная, мне нра
#40 by EvgeniuXP
более того если в этой форме напишешь в процедуре закрыть эту форму, а потом оповестить - она отработает :) и более коректно отработает - если после закрытия нужно другую открыть  :) - если оповещение поставишь перед - тогда две откроются и тут же обе закроются :)
#41 by Franchiser
спасибо
#42 by jsmith
кстати, заметил фичу, форма выбора всегда открывает модально. даже в такси если произвольная форма, можно ставить блокировать окно владельца, но это будет на отдельной странице. выглядит элегантно, по крайней мере
#43 by jsmith
а оповещение это для других случаев имхо когда нужно чтобы обе формы были живы
#44 by Franchiser
в типовых модальность сейчас запрещена, должно выскочить предупреждение. Не знаю про оповещение, вроде как  согласен что это когда 2 формы живы, но когда и 1 жива тоже работает, непонятно что становится с данными второй формы, видимо после обработкиоповещения удаляются.
#45 by EvgeniuXP
но она обходится просто - выставляешь блокировать весь интерфейс и всё - эффект тот же самый :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С