Как открыть свою, произвольную форму из документа и при закрытии этой формы передать какое-то значение?

1. Nastya_R 12.09.19 10:48 Сейчас в теме
Добрый день! Подскажите, пожалуйста, из документа открываю свою произвольную форму, там ввожу какие-то данные и как их передать обратно на форму документа, чтоб заполнить табличную часть. Заранее спасибо!
По теме из базы знаний
Найденные решения
3. YannikAlx 43 12.09.19 11:02 Сейчас в теме
Если Управляемые формы то данные хранить лучше в реквизитах объекта, тогда не придется таскать их отдельным кодом с клиента на сервер и обратно...
Они будут в таком варианте автоматически меняться, когда это необходимо...
Вот и меняйте такие данные в своей форме при условии что дополнительная форма принадлежит тому же документу, а основная форма также будет видеть прекрасно все изменения реквизитов объекта.
Если форма из внешней обработки, то при закрытии надо записать данные во временное хранилище и создать оповещение о закрытии этой формы.
А основная форма должна ловить это оповещение...
И при получении считывать данные из временного хранилища с дальнейшими действиями над полученными данными...
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
6. rusdenol 12.09.19 11:29 Сейчас в теме
(1)
1. Когда открываете форму, обязательно указываете в качестве владельца ту форму, из которой открывается Ваша форма.
2. На своей форме при нажатии на вашу кнопку (по которой должно передаваться значение) пишете код Закрыть(ДанныеКоторыеНужноПередать);
3. На форме документа находите процедуру "ОбработкаОповещения" и там по аналогии с написанным там кодом добавляете свой код
7. Nastya_R 12.09.19 11:38 Сейчас в теме
(6) Первые два пункта у меня уже реализованы. Не могли бы вы поподробнее третий пункт описать?
8. rusdenol 12.09.19 11:48 Сейчас в теме
(7) При методе Закрыть(), вызывается процедура "ОбработкаОповещения" (можно почитать в синтаксис помощнике о ней), в ней есть 3 стандартных параметра, ИмяСобытия, Параметр, Источник. Нас интересуют Параметр - это то, что Вы передали при закрытии и Источник - это Ваша форма, откуда был передан параметр. Делаете проверку
Если Источник = [ВашаФорма] Тогда
...тут ваш код или лучше вызов отдельной процедуры с вашим кодом
КонецЕсли
9. Nastya_R 12.09.19 11:54 Сейчас в теме
(8) Спасибо! А не могли бы вы ещё подсказать как открыть форму не на весь экран а всего лишь небольшое окошко?
11. rusdenol 12.09.19 11:58 Сейчас в теме
(9) У метода ОткрытьФорму есть параметр РежимОткрытияОкна - его нужно указать. В синтакс-помощнике это есть
2. YannikAlx 43 12.09.19 10:59 Сейчас в теме
Не ясно вы свою форму открываете при уже открытой основной форме документа?
4. Nastya_R 12.09.19 11:13 Сейчас в теме
3. YannikAlx 43 12.09.19 11:02 Сейчас в теме
Если Управляемые формы то данные хранить лучше в реквизитах объекта, тогда не придется таскать их отдельным кодом с клиента на сервер и обратно...
Они будут в таком варианте автоматически меняться, когда это необходимо...
Вот и меняйте такие данные в своей форме при условии что дополнительная форма принадлежит тому же документу, а основная форма также будет видеть прекрасно все изменения реквизитов объекта.
Если форма из внешней обработки, то при закрытии надо записать данные во временное хранилище и создать оповещение о закрытии этой формы.
А основная форма должна ловить это оповещение...
И при получении считывать данные из временного хранилища с дальнейшими действиями над полученными данными...
12. rusdenol 12.09.19 12:04 Сейчас в теме
(3) "а основная форма также будет видеть прекрасно все изменения реквизитов объекта"
Боюсь, что основная форма не будет видеть эти изменения, т.к. УФ работает не напрямую с объектом, а с его имитацией, и чтобы загрузить изменения сделанные в другой форме, да ещё не получить при этом конфликт блокировок нужно изрядно попотеть
13. YannikAlx 43 12.09.19 12:07 Сейчас в теме
(12)
Сошласен...
Но в текущем диалоге , эта тема уже все равно не актуальна - формы принадлежат различным объектам, и потому по любому через оповещение и временное хранилище....
14. SlavaKron 12.09.19 12:14 Сейчас в теме
(3)
надо записать данные во временное хранилище

Необязательно. Достаточно передать саму открываемую форму в качестве дополнительного параметра в описание оповещения о закрытии. Тогда, после закрытия в процедуре, указанной для оповещения о закрытии, будет доступна закрываемая форма со всеми проделанными изменениями.
15. YannikAlx 43 12.09.19 12:21 Сейчас в теме
(14) Ну мы же не знаем , а что там эта форма будет менять? может таблицу значений в пару гигов....
Временное хранилище - универсальный вариант...
А для поменять 1 букву конечно есть частные случаи...
Но автор не удосужилась описать чего она там менять намерена...
5. Nastya_R 12.09.19 11:14 Сейчас в теме
Не совсем поняла как это реализовать. Можно поподробнее или на примере)
10. YannikAlx 43 12.09.19 11:56 Сейчас в теме
Вы не описали подробно вашу ситуацию....

Что конкретно неясно в моем предложении?
Я давал самые общие принципы, не зная ваших нужд... и я их по-прежнему не знаю...
16. independ 1519 12.09.19 13:06 Сейчас в теме
Достаточно в дочерней форме через ВладелецФормы.Объект.ИмяРеквизита=, при условии, что дочерняя форма открыта с указанием владельцаформы
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)