Условно говоря необходимо написать обработку которая создает ПКО. Создание документа происходит в серверной функции. НО при этом есть на форме реквизит "Вид операции", при изменении которого выполняется код меняющий форму, добавляя либо удаляя элементы формы. Вся обработка происходит в процедуре общего модуля "ПриходныйКассовыйОрдерФормы.ВидОперацииПриИзмененииСервер". В качестве параметра передается управляемая форма.
Существует ли возможность получить форму и передать ее в эту процедуру.

```1c
    Процедура ВидОперацииПриИзмененииСервер(Форма) Экспорт
    УстановитьВидимостьСчетовУчета(Форма);
    ВидОперацииОбработатьИзменение(Форма, Новый Массив);
    УправлениеФормой(Форма);
    КонецПроцедуры
```

P.S. Создание обработки, это исключительно ради эксперимента. Эта информация нужна для написания конвертации. Передаем мы в Бухгалтерию ПКО. Нужно что бы во время конвертации все эти процедуры отработали.
---
С клиента любой формы можно вызвать любую серверную процедуру любой другой формы:

```1c
    ФормаДокумента = ПолучитьФорму("Документ.ПриходныйКассовыйОрдер.ФормаОбъекта");
    ФормаДокумента.Объект.Дата = ТекущаяДата();
    ФормаДокумента.Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.РозничнаяВыручка");
    ФормаДокумента.ВидОперацииПриИзмененииСервер();
    ФормаДокумента.Записать();
    ФормаДокумента.Открыть();
```
---
Вы создаете документ. При чем тут форма документа?
Вот и создавайте документ. Как документ будет заполнен и записан - откройте его.
---
Вы очень сумбурно описали задачу ....
Прочитал раз 5 и так ничего и не понял что и куда вы хотите передавать и зачем...

Если хотите все же помощи попробуйте по другому описать свою задачу...

Вот например НО при этом есть на форме реквизит "Вид операции"
На какой форме совершенно не ясно... На форме обработки? Если нет то вдвойне ничего не ясно...
---
Я могу ошибаться. Однако имея вот такую процедуру:

```1c
    &НаСервере
    Процедура СоздатьПКОНаСервере()
    НовыйПКО = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
    НовыйПКО.Дата = ТекущаяДата();
    НовыйПКО.ВидОперации = Перечисления.ВидыОперацийПКО.РозничнаяВыручка;
    НовыйПКО.Организация = ЭтотОбъект.Организация;
    НовыйПКО.СуммаДокумента = ЭтотОбъект.Сумма;
    НовыйПКО.ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб");
    НовыйПКО.СчетКасса = ПланыСчетов.Хозрасчетный.НайтиПоКоду("50.01");
    НовыйПКО.Записать();
    КонецПроцедуры
```

Мы получаем документ, и дебит кредит как на первой и второй картинке. А вот если зайти на форму выбрать ручками "Вид операции" и "Склад", у нас и документ выглядит по другому и дебит с кредитом есть. Конечно можно создавать документ не проведенным, и заставлять бухгалтера заходить и ручками проставлять. Но тогда зачем мы.
---
Уже лучше...
Ну так а что ж вы склад то в программе не указываете?
И кроме того выполняйте процедуры "При Изменении" склада и вида операции вот и будет вам счастье
---
Так установите Слад и вид операции при создании документа.
Они где-то хранятся. Посмотрите где именно и точно также пропишите при программном создании.
---
если СоздатьПКОНаСервере() вызывается из Формы на которой наш нужный реквизит, -
 что мешает внутри СоздатьПКОНаСервере() вызвать функцию ПолучитьРеквизитФормы()
которая тут же только &НаКлиенте
---
С клиента любой формы можно вызвать любую серверную процедуру любой другой формы:

```1c
    ФормаДокумента = ПолучитьФорму("Документ.ПриходныйКассовыйОрдер.ФормаОбъекта");
    ФормаДокумента.Объект.Дата = ТекущаяДата();
    ФормаДокумента.Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.РозничнаяВыручка");
    ФормаДокумента.ВидОперацииПриИзмененииСервер();
    ФормаДокумента.Записать();
    ФормаДокумента.Открыть();
```
---
Открыть
(7)

Я немного изменил. Добавил ссылку на конкретный приходник, и Эту строчку "ФормаДокумента.КонтрагентПриИзмененииСервер();". Это собственно говоря Склад (Реквизит составного типа).

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

Так все работает. Огромное спасибо. Осталось разобраться могу ли я в конвертации в обработчике "После загрузки" это провернуть. Работа там идет с объектом, и Инструкций &НаСервере/&НаКлиенте нет.