Добрый день!
Не могу разобраться как открыть форму обработки или документа из общего модуля. При проведении документа вызывается подписка на событие "ПередЗаписью", в которой нужно открыть форму обработки, в этой форме заполняются некоторые значения для подстановки. Эта обработка должна вернуть эти значения. Как можно реализовать?
---
zlakizla,
```1c
    Перем Закрывать;

    &НаКлиенте
    Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Если Не ЗначениеЗаполнено(Закрывать) Тогда
    Отказ = Истина;

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

    &НаКлиенте
    Процедура ПродолжениеПередЗаписью(Результат, ДополнительныеПараметры) Экспорт
    Если Результат = Неопределено Тогда
    Возврат;
    КонецЕсли;

    //Тут продолжаем код

    Закрывать = Истина;
    //Если надо, то запустить запись(проведение)снова
    КонецПроцедуры
```

Ну, и из форма2 передать эти параметры.
---
zlakizla, как обычно, конфигурация, платформа, режим запуска, особенности упомянутого модуля и прочие совершенно несущественные мелочи есть задание на дом для отгадывания?
---
sssss_aaaaa_2011, Сорри, забыл указать все)) Конфа 1С БП 3.0, управляемые формы. Проблема в том, что общий модуль выполняется на сервере, а формы можно открывать только на клиенте. ВОт и попал в тупик!
---
zlakizla, править документ. Там и вызывайте в "ПередЗаписью" из модуля формы, а не из подписки, которая вызывается из "ПередЗаписью" модуля объекта.
А так прикольно получилось бы (если можно было бы), при проведение документов, на каждом просила ввести что-то в форму.
---
spacecraft, ладно, тут же возникает другая ситуация. Создаю у документа еще одну форму "Форма2", в которой есть "Реквизит 1". При проведении документа в обработчике "ПередЗапиьсю" вызываю форму2, там пользователь выбирает значение "реквизита 1" и нажимает ОК. Как мне вернуть это значение обратно в обработчик "ПередЗаписью"?
---
zlakizla,
```1c
    Перем Закрывать;

    &НаКлиенте
    Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Если Не ЗначениеЗаполнено(Закрывать) Тогда
    Отказ = Истина;

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

    &НаКлиенте
    Процедура ПродолжениеПередЗаписью(Результат, ДополнительныеПараметры) Экспорт
    Если Результат = Неопределено Тогда
    Возврат;
    КонецЕсли;

    //Тут продолжаем код

    Закрывать = Истина;
    //Если надо, то запустить запись(проведение)снова
    КонецПроцедуры
```

Ну, и из форма2 передать эти параметры.
---
zlakizla, а наоборот сначала пользователь выбирает какой то реквизит, а потом проводит, не?
---
zlakizla, Как мне вернуть это значение обратно в обработчик "ПередЗаписью"?Никак, привыкайте, что 1С - не ООП, тут свое видение "как нужно".
Сначала делайте все с документами - меняйте реквизиты, вводите данные, и только потом - подписки и проведение.
---
"Поповестить" попробуйте