Добрый день! Подскажите, пожалуйста, из документа открываю свою произвольную форму, там ввожу какие-то данные и как их передать обратно на форму документа, чтоб заполнить табличную часть. Заранее спасибо!
---
Если Управляемые формы то данные хранить лучше в реквизитах объекта, тогда не придется таскать их отдельным кодом с клиента на сервер и обратно...
Они будут в таком варианте автоматически меняться, когда это необходимо...
Вот и меняйте такие данные в своей форме при условии что дополнительная форма принадлежит тому же документу, а основная форма также будет видеть прекрасно все изменения реквизитов объекта.
Если форма из внешней обработки, то при закрытии надо записать данные во временное хранилище и создать оповещение о закрытии этой формы.
А основная форма должна ловить это оповещение...
И при получении считывать данные из временного хранилища с дальнейшими действиями над полученными данными...
---
1. Когда открываете форму, обязательно указываете в качестве владельца ту форму, из которой открывается Ваша форма.
2. На своей форме при нажатии на вашу кнопку (по которой должно передаваться значение) пишете код Закрыть(ДанныеКоторыеНужноПередать);
3. На форме документа находите процедуру "ОбработкаОповещения" и там по аналогии с написанным там кодом добавляете свой код
---
Первые два пункта у меня уже реализованы. Не могли бы вы поподробнее третий пункт описать?
---
При методе Закрыть(), вызывается процедура "ОбработкаОповещения" (можно почитать в синтаксис помощнике о ней), в ней есть 3 стандартных параметра, ИмяСобытия, Параметр, Источник. Нас интересуют Параметр - это то, что Вы передали при закрытии и Источник - это Ваша форма, откуда был передан параметр. Делаете проверку
Если Источник = [ВашаФорма] Тогда
...тут ваш код или лучше вызов отдельной процедуры с вашим кодом
КонецЕсли
---
Спасибо! А не могли бы вы ещё подсказать как открыть форму не на весь экран а всего лишь небольшое окошко?
---
У метода ОткрытьФорму есть параметр РежимОткрытияОкна - его нужно указать. В синтакс-помощнике это есть
---
Не ясно вы свою форму открываете при уже открытой основной форме документа?
---
Да
---
Если Управляемые формы то данные хранить лучше в реквизитах объекта, тогда не придется таскать их отдельным кодом с клиента на сервер и обратно...
Они будут в таком варианте автоматически меняться, когда это необходимо...
Вот и меняйте такие данные в своей форме при условии что дополнительная форма принадлежит тому же документу, а основная форма также будет видеть прекрасно все изменения реквизитов объекта.
Если форма из внешней обработки, то при закрытии надо записать данные во временное хранилище и создать оповещение о закрытии этой формы.
А основная форма должна ловить это оповещение...
И при получении считывать данные из временного хранилища с дальнейшими действиями над полученными данными...
---
"а основная форма также будет видеть прекрасно все изменения реквизитов объекта"
Боюсь, что основная форма не будет видеть эти изменения, т.к. УФ работает не напрямую с объектом, а с его имитацией, и чтобы загрузить изменения сделанные в другой форме, да ещё не получить при этом конфликт блокировок нужно изрядно попотеть
---
Сошласен...
 Но в текущем диалоге , эта тема уже все равно не актуальна - формы принадлежат различным объектам, и потому по любому через оповещение и временное хранилище....
---
надо записать данные во временное хранилище
Необязательно. Достаточно передать саму открываемую форму в качестве дополнительного параметра в описание оповещения о закрытии. Тогда, после закрытия в процедуре, указанной для оповещения о закрытии, будет доступна закрываемая форма со всеми проделанными изменениями.
---
Ну мы же не знаем , а что там эта форма будет менять? может таблицу значений в пару гигов....
Временное хранилище - универсальный вариант...
А для поменять 1 букву конечно есть частные случаи...
Но автор не удосужилась описать чего она там менять намерена...
---
Не совсем поняла как это реализовать. Можно поподробнее или на примере)
---
Вы не описали подробно вашу ситуацию....

Что конкретно неясно в моем предложении?
Я давал самые общие принципы, не зная ваших нужд... и я их по-прежнему не знаю...
---
Достаточно в дочерней форме через ВладелецФормы.Объект.ИмяРеквизита=, при условии, что дочерняя форма открыта с указанием владельцаформы