Здравствуйте.
1С 8.3. У формы обработки есть реквизит ДокументОбъект (Тип ДокументОбъект.ЗаказПоставщику).
Необходимо программно заполнить этот реквизит.
Пробовал заполнить напрямую

```1c
    Форма = ПолучитьФорму("Обработка.МояОбработка.Форма.ФормаУправляемая");
    Форма.ДокументОбъект = ДокументОбъект;
    Форма.Открыть();
```

Выдает ошибку:
Нельзя изменять поле, содержащее объект данных формы
Пробовал передать через параметр, выполняется без ошибок, но поле не заполняется:

```1c
    ПередаваемыеПараметры = Новый Структура;
    ПередаваемыеПараметры.Вставить("ДокументОбъект", ДокументОбъект);
    Форма = ПолучитьФорму("Обработка.МояОбработка.Форма.ФормаУправляемая", ПередаваемыеПараметры);
    Форма.ДокументОбъект = ДокументОбъект;
    Форма.Открыть();
```

Как данную задачу решить? Спасибо!
---
Вот пример - всё работает
---
```1c
    Если ТипЗнч(ДокументОбъект)=Тип("ДокументОбъект.ЗаказПоставщику") Тогда
    Форма.ЗначениеВРеквизитФормы(ДокументОбъект,"ДокументОбъект");
    КонецЕсли;
```

Это надо вставить до Форма.Открыть(), причём, на сервере. Так что, Вам полностью переписывать логику, разбивая процедуру на клиентскую и серверную часть.
---
https://infostart.ru/public/118784/ Там все описано .
---
Форма.ДокументОбъект = ДокументОбъект.Ссылка;
---
В процедуре ПриСозданииНаСервере обработки:

```1c
    ДокументОбъект = Параметры.ДокументОбъект;
```
---
ДокументОбъект - какой тип имеет? Он должен совпадать с типом реквизита формы. Если вы туда передаёте ссылку, как из [3], то ничего не выйдет. Должен быть именно объект.
---
Не могу разобраться как передать форму с клиента на сервер?
---
Ответ - никак. Форма доступна только на клиенте...
---
Т.е. получается если форма обработки создается не из обработки, а из общего модуля, то реквизиты формы никак в общем модуле не заполнить?
---
Проверил все методы ни один не сработал.
Через параметр на форму передается, а дальше не получается заполнить значение.
---
Ошибка во всех случаях:
Нельзя изменять поле, содержащее объект данных формы
---
Хоть и указан тип ДокументОбъект, в обоих случаях тип определяется как ДанныеФормыСтруктура.
---
Через параметры в процедуре ПриСозданииНаСервере реквизиты формы заполняются на ура, вот тут пример https://infostart.ru/public/303564/ - в форму выбора периода передаются значения начала и окончания, всё работает. Главное понимать, что передаётся и что заполняется. Есть реквизиты формы обработки, есть реквизиты обработки, которые могут быть размещены на форме, ер не будут являться её реквизитами, к ним разное обращение - реквизиты обработки через Объект.<ИмяРеквизита> = <Значение>, реквизит формы <ИмяРеквизита> = <Значение>. В обоих случаях реквизит и его значение должны быть одного типа...
---
Спасибо!
Пришлось все-таки добавить реквизит в обработку. Если это чисто реквизит формы - не получается. А если реквизит объекта - все работает.
---
Вот пример - всё работает
---
это реквизит справочникСсылка. У ТС ДокументОбъект. Я сначала подумал тоже ссылка. А нет:
Хоть и указан тип ДокументОбъект, в обоих случаях тип определяется как ДанныеФормыСтруктура.
Мне даже интересно стало, как он получает объект на клиентском модуле, чтоб его передать?
---
Название реквизита ДокументОбъект говорит только о том, что реквизит так называется))) Тип его может быть хоть строка, хоть число, хоть любой ссылочный тип, объектом реквизит формы быть не может.
---
объектом реквизит формы быть не может
С чего это? Его нельзя на форму вынести, а реквизитом может быть.
А выше цитата это подтверждает. Реквизит имеет тип "ДанныеФормыСтруктура".
---
Ну и смысл такого реквизита формы, который на форму нельзя вывести? Какое скрытый смысл такого извращения? С объектами работать на клиенте как-то не по феншую, в смысле не получится, так какой в этом сакральный смысл?
---
мне тоже это интересно. Могу предположить смешение обычный и управляемых форм.
---
а если вообще про использование реквизита формы объектного типа, то никто не запрещает с ним работать при переходе на сервер.
---
А кто запрещает получить объект из ссылочного типа на сервере? Зачем в реквизите формы полная структура объекта? Извивы мысли разместившего объект в реквизит формы мне непонятны, может кто-нить объяснит надобность подобного мазохизму?
---
Объект может меняться из обработки поэтапно. Можно каждый раз записывать в базу или хранить все изменения отдельно. Но можно хранить объект в реквизитах. Его можно передавать. Сам таким механизмом не пользуюсь.
---
Ответа на "зачем" нету?
---
А почему может после возвращения Обработка = ДанныеФормыВЗначение(ОбработкаУпак, Тип("ОбработкаОбъект.МояОбработка"));
теряться значение Обработка.ДокументОбъект?
В обработкаУпак.ДокументОбъект значение заполнено, а в Обработка.ДокументОбъект уже нет.
---
Пример дайте, в "отрыве от реальности" непонятно, что Вы спросили... Рискну предположить, что ОбработкаУпак = Неопределено
---
Тип ДанныеФормыСтруктура до распаковки, а затем он становится ДокументОбъект. Видимо в этом дело.
Я понял, буду всю логику менять.
Всем спасибо!
---
что-то мне подсказывает, судя по названию "Обработка.МояОбработка.Форма.ФормаУправляемая" смешаны управляемые и обычные формы.
Да и название "ДокументОбъект" это из обычных форм.
---
Да, переписываю обычные формы на управляемые, но плохо еще с ними знаком.
Спасибо!!!
---
Нужен прямой доступ к объекту из обработки.
Переписываю код с обычных форм на УФ, хочется с минимальными затратами перенести, или придется много кода править.