Добрый день.
 Делаю обработку которая массово создает док-ты ИнвентаризацияМЗ. Заполняю данными необходимыми для работы кнопки "Заполнить по данным учета".(т.е. если потом открыть этот документ и нажать заполнить всё заполняет)
 А далее мне надо вызвать процедуру из модуля менеджера док-та ИнвентаризацияМЗ - Процедура ЗаполнитьПоДаннымУчета(Форма) Экспорт.

В самой форме документа она вызывается так:

```1c
    &НаСервере
    Процедура ЗаполнитьПоДаннымУчетаСервер()

    Документы.ИнвентаризацияМЗ.ЗаполнитьПоДаннымУчета(ЭтаФорма);

    КонецПроцедуры
```

А как её можно вызвать из внешней обработки? И можно ли вообще?
(Я могу конечно сам код процедуры перенести во внешнюю обработку, но не хотелось бы)

P.S. УФ БГУ2.0
---
Короче.

Нашел в модуле формы документа Экспортную процедуру(рядом с той которая отрабатывалась командой кнопки заполнить)), которая потом вызывает нужную процедуру в Модуле менеджера. Её и использовал.

 Всем спасибо)
---
Короче.

Нашел в модуле формы документа Экспортную процедуру(рядом с той которая отрабатывалась командой кнопки заполнить)), которая потом вызывает нужную процедуру в Модуле менеджера. Её и использовал.

 Всем спасибо)
---
Документы.ИнвентаризацияМЗ.ЗаполнитьПоДаннымУчета(ЭтаФорма);

Добрый день! В обработке надо написать примерно следующий код:

```1c
    ЗаменительФормы = Новый Структура("Объект", СоздаваемыйДокументОбъект);
    Документы.ИнвентаризацияМЗ.ЗаполнитьПоДаннымУчета(ЗаменительФормы);
```
---
сделайте вызываемую процедуру экспортной и такая процедура станет доступной откуда угодно.
---
Так она и так экспортная.
надо вызвать процедуру из модуля менеджера док-та ИнвентаризацияМЗ - Процедура ЗаполнитьПоДаннымУчета(Форма) Экспорт.

проблема не в вызове(не так вопрос задал, хотя в теме вопроса написано понятнее)).

Проблема в том что надо передать форму самого документа, не из документа, а при работе внешней обработки.(но похоже это никак не сделать)
---
В документе не видно, что она экспортная:
&НаСервере
Процедура ЗаполнитьПоДаннымУчетаСервер()

Должно быть:
&НаСервере
Процедура ЗаполнитьПоДаннымУчетаСервер() Экспорт

И зачем Вам форма документа, если Вы заполняете его из обработки?
Просто вызов процедуры см.3
---
Не так поняли.
В самой форме документа она вызывается так:

```1c
    &НаСервере
    Процедура ЗаполнитьПоДаннымУчетаСервер()

    Документы.ИнвентаризацияМЗ.ЗаполнитьПоДаннымУчета(ЭтаФорма);

    КонецПроцедуры
```

это она вызывает в самой форме документа - процедуру из МодуляМенеджера (которая там экспортная) с передачей "ЭтаФорма" (форму документа открытая)

Так в том то и дело - В обработке я заполняю только шапку документов(например надо сделать документы инвентаризации МЗ по одному человеку у которого несколько мест хранения, т.е. ЦМО будет несколько штук), по которой, используя процедуру из МодуляМенеджера она заполняется. Т.е. я не весь документ заполняю обработкой, а хочу использовать типовую процедуру.
---
Если попробовать через объект передать "Объект.ФормаДокумента)
---
В документе:
Процедура ЗаполнитьПоДаннымУчетаСервер() Экспорт

При создании документа и заполнении документа из обработки Вы получаете объект - созданный документ и заполняете его.
Поставьте Имя созданного документа +"."+ЗаполнитьПоДаннымУчетаСервер()

Например:

Галочка = ИнвентаризацияМЗ.ПолучитьОбъект();
 Галочка.ЗаполнитьПоДаннымУчетаСервер();
 Галочка.Записать(РежимЗаписиДокумента.Проведение);
---
Если туда передается форма, то значит и заполняются данные формы, а не объект. Скопируйте ее себе и перепишите без использования формы.
---
Да в том то и дело что заполняется объект. Про скопировать я писал как краний вариант (Я могу конечно сам код процедуры перенести во внешнюю обработку, но не хотелось бы)

```1c
    Процедура ЗаполнитьПоДаннымУчета(Форма) Экспорт

    Перем СдвигИндексаТаблицыМатериалы;

    ДокументОбъект = Форма["Объект"];

    ПараметрыНакладываемогоОтбора = ОпределитьПараметрыНакладываемогоОтбора(Форма);

    ДатаОпределенияОстатков = Новый Граница(КонецДня(ДокументОбъект["ДатаИнвентаризации"]), ВидГраницы.Включая);
    ИспользоватьБалансовуюСтоимость = НЕ ЗначениеЗаполнено(ДокументОбъект["ТипЦен"]);

    ПризнакиИспользованияКолонок = Документы.ИнвентаризацияМЗ.ПолучитьПризнакиИспользованияКолонокТаблицыПорядокСписания();

    ВариантФормированияОписи = ДокументОбъект["ВариантФормированияОписи"];

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

    // Отбор по МОЛ
    ЗапросОстатки.УстановитьПараметр("ЗначенияДляОтбораПоМОЛ", ПараметрыНакладываемогоОтбора["ЗначенияДляОтбораПоМОЛ"]);

    // Отбор по дополнительному субконто
    ЗапросОстатки.УстановитьПараметр("СледуетИспользоватьДополнительноеСубконто", ПараметрыНакладываемогоОтбора["СледуетИспользоватьДополнительноеСубконто"]);
    ЗапросОстатки.УстановитьПараметр("ТаблицаРеальныхДополнительныхСубконто", ПараметрыНакладываемогоОтбора["ТаблицаРеальныхДополнительныхСубконто"]);
    ЗапросОстатки.УстановитьПараметр("НакладыватьОтборПоДополнительномуСубконто", ПараметрыНакладываемогоОтбора["НакладыватьОтборПоДополнительномуСубконто"]);
    ЗапросОстатки.УстановитьПараметр("ЗначениеДляОтбораПоДополнительномуСубконто", ДокументОбъект["Субконто3"]);

    // В ТЧ "Порядок списания" используются не все колонки, а только некоторые
    ЗапросОстатки.УстановитьПараметр("ИспользуетсяКолонкаИФО", ПризнакиИспользованияКолонок["ИФО"]);
    ЗапросОстатки.УстановитьПараметр("ИспользуетсяКолонкаКФО", ПризнакиИспользованияКолонок["КФО"]);
    ЗапросОстатки.УстановитьПараметр("ИспользуетсяКолонкаЦМО", ПризнакиИспользованияКолонок["ЦМО"]);
    ЗапросОстатки.УстановитьПараметр("ИспользуетсяКолонкаКПС", ПризнакиИспользованияКолонок["КПС"]);
    ЗапросОстатки.УстановитьПараметр("ИспользуетсяКолонкаСчет", ПризнакиИспользованияКолонок["Счет"]);
    ЗапросОстатки.УстановитьПараметр("ИспользуетсяКолонкаСубконто3", ПризнакиИспользованияКолонок["Субконто3"]);

    ЗапросОстатки.УстановитьПараметр("СчетГруппа", ДокументОбъект["СчетГруппа"]);
    ЗапросОстатки.УстановитьПараметр("НеЗаполнятьЦену", ДокументОбъект["НеЗаполнятьЦену"]);

    ТекстЗапроса = "
    |////////////////////////////////////////////////////////////­////////////////////
    |// [0]. Таблица реальных дополнительных субконто для Счетов остатков
    |//
    |ВЫБРАТЬ
    | ТЗ.Счет КАК Счет,
    | ТЗ.РеальноеДополнительноеСубконто КАК РеальноеДополнительноеСубконто,
    | ТЗ.НомерРеальногоДополнительногоСубконто КАК НомерРеальногоДополнительногоСубконто
    |ПОМЕСТИТЬ
    | ТаблицаРеальныхДополнительныхСубконто
    |ИЗ
    | &ТаблицаРеальныхДополнительныхСубконто КАК ТЗ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |// [1]. Все остатки по полным счетам, с отбором по МОЛ.
    |// Т.к. применяется отбор по МОЛ, то могут быть остатки с нулевыми суммами
    |// (если на соответствующих счетах не ведется суммовой
    |// учет по субконто для МОЛ)
    |//
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | Остатки.Счет КАК Счет,
    | Остатки.КФО КАК КФО,
    | ЕСТЬNULL(Остатки.КПС,ЗНАЧЕНИЕ(Справочник.КлассификационныеПризнакиСчетов.ПустаяСсылка)) КАК КПС,
    | ВЫБОР
    | КОГДА &ИспользоватьУчетПоИФО ТОГДА
    | Остатки.ИФО
    | ИНАЧЕ
    | ЗНАЧЕНИЕ(Справочник.ИсточникиФинансовогоОбеспечения.ПустаяСсылка)
    | КОНЕЦ КАК ИФО,
    | ВЫБОР
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто1) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто1 КАК Справочник.Номенклатура)
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто2) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто2 КАК Справочник.Номенклатура)
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто3) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто3 КАК Справочник.Номенклатура)
    | ИНАЧЕ
    | ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    | КОНЕЦ КАК Номенклатура,
    | ВЫБОР
    | КОГДА Субконто1 В (&ЗначенияДляОтбораПоМОЛ) ТОГДА
    | Субконто1
    | КОГДА Субконто2 В (&ЗначенияДляОтбораПоМОЛ) ТОГДА
    | Субконто2
    | КОГДА Субконто3 В (&ЗначенияДляОтбораПоМОЛ) ТОГДА
    | Субконто3
    | КОНЕЦ КАК МОЛ,
    | ВЫБОР
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 1 ТОГДА
    | Остатки.Субконто1
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 2 ТОГДА
    | Остатки.Субконто2
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 3 ТОГДА
    | Остатки.Субконто3
    | ИНАЧЕ
    | НЕОПРЕДЕЛЕНО
    | КОНЕЦ КАК Субконто3,
    | СУММА(Остатки.КоличествоРазвернутыйОстатокДт - Остатки.КоличествоРазвернутыйОстатокКт) КАК КоличествоУчет,
    | СУММА(Остатки.СуммаРазвернутыйОстатокДт - Остатки.СуммаРазвернутыйОстатокКт) КАК СуммаУчет
    |ПОМЕСТИТЬ
    | ОстаткиСОтборомПоМОЛ
    |ИЗ
    | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
    | &ДатаЗапроса, // 1 Период
    | Счет В (&СчетаОстатков), // 2 Условие счета
    | , // 3 Виды субконто
    | Организация = &Организация // 4 Условие
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоИФО ТОГДА
    | ИФО = &ИФО
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоКФО ТОГДА
    | КФО = &КФО
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоКПС ТОГДА
    | КПС = &КПС
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоПодразделению ТОГДА
    | Подразделение = &Подразделение
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    | // Отбор по МОЛ
    | И ВЫБОР
    | КОГДА Субконто1 В (&ЗначенияДляОтбораПоМОЛ) ТОГДА
    | ИСТИНА
    | КОГДА Субконто2 В (&ЗначенияДляОтбораПоМОЛ) ТОГДА
    | ИСТИНА
    | КОГДА Субконто3 В (&ЗначенияДляОтбораПоМОЛ) ТОГДА
    | ИСТИНА
    | ИНАЧЕ
    | ЛОЖЬ
    | КОНЕЦ
    | ) КАК Остатки
    | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРеальныхДополнительныхСубконто
    | ПО Остатки.Счет = ТаблицаРеальныхДополнительныхСубконто.Счет
    |ГДЕ
    | // Только заполненная номенклатура
    | ВЫБОР
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто1) = ТИП(Справочник.Номенклатура) ТОГДА
    | НЕ Остатки.Субконто1 = &ПустаяНоменклатура
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто2) = ТИП(Справочник.Номенклатура) ТОГДА
    | НЕ Остатки.Субконто2 = &ПустаяНоменклатура
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто3) = ТИП(Справочник.Номенклатура) ТОГДА
    | НЕ Остатки.Субконто3 = &ПустаяНоменклатура
    | ИНАЧЕ
    | ЛОЖЬ
    | КОНЕЦ
    | // Отбор по дополнительному субконто
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоДополнительномуСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 1 ТОГДА
    | Остатки.Субконто1 = &ЗначениеДляОтбораПоДополнительномуСубконто
    | КОГДА &НакладыватьОтборПоДополнительномуСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 2 ТОГДА
    | Остатки.Субконто2 = &ЗначениеДляОтбораПоДополнительномуСубконто
    | КОГДА &НакладыватьОтборПоДополнительномуСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 3 ТОГДА
    | Остатки.Субконто3 = &ЗначениеДляОтбораПоДополнительномуСубконто
    | КОГДА &НакладыватьОтборПоДополнительномуСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 0 ТОГДА
    | ЛОЖЬ
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    |СГРУППИРОВАТЬ ПО
    | Остатки.Счет,
    | Остатки.КФО,
    | ЕСТЬNULL(Остатки.КПС,ЗНАЧЕНИЕ(Справочник.КлассификационныеПризнакиСчетов.ПустаяСсылка)),
    | ВЫБОР
    | КОГДА &ИспользоватьУчетПоИФО ТОГДА
    | Остатки.ИФО
    | ИНАЧЕ
    | ЗНАЧЕНИЕ(Справочник.ИсточникиФинансовогоОбеспечения.ПустаяСсылка)
    | КОНЕЦ,
    | ВЫБОР
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто1) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто1 КАК Справочник.Номенклатура)
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто2) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто2 КАК Справочник.Номенклатура)
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто3) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто3 КАК Справочник.Номенклатура)
    | ИНАЧЕ
    | ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    | КОНЕЦ,
    | ВЫБОР
    | КОГДА Субконто1 В (&ЗначенияДляОтбораПоМОЛ) ТОГДА
    | Субконто1
    | КОГДА Субконто2 В (&ЗначенияДляОтбораПоМОЛ) ТОГДА
    | Субконто2
    | КОГДА Субконто3 В (&ЗначенияДляОтбораПоМОЛ) ТОГДА
    | Субконто3
    | КОНЕЦ,
    | ВЫБОР
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 1 ТОГДА
    | Остатки.Субконто1
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 2 ТОГДА
    | Остатки.Субконто2
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 3 ТОГДА
    | Остатки.Субконто3
    | ИНАЧЕ
    | НЕОПРЕДЕЛЕНО
    | КОНЕЦ
    |ИМЕЮЩИЕ
    | НЕ СУММА(Остатки.КоличествоРазвернутыйОстатокДт - Остатки.КоличествоРазвернутыйОстатокКт) = 0
    |ИНДЕКСИРОВАТЬ ПО
    | Счет,
    | КФО,
    | КПС,
    | ИФО,
    | Субконто3,
    | Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |// [2]. Данные для заполнения таблицы ПорядокСписания
    |// (Финальная таблица)
    |//
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    | ВЫБОР КОГДА &ИспользуетсяКолонкаИФО ТОГДА ИФО ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК ИФО,
    | ВЫБОР КОГДА &ИспользуетсяКолонкаКФО ТОГДА КФО ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК КФО,
    | ВЫБОР КОГДА &ИспользуетсяКолонкаЦМО ТОГДА МОЛ ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК ЦМО,
    | ВЫБОР КОГДА &ИспользуетсяКолонкаКПС ТОГДА КПС ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК КПС,
    | ВЫБОР КОГДА &ИспользуетсяКолонкаСчет ТОГДА Счет ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК Счет,
    | ВЫБОР КОГДА &ИспользуетсяКолонкаСубконто3 ТОГДА Субконто3 ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ КАК Субконто3
    |ИЗ
    | ОстаткиСОтборомПоМОЛ КАК Остатки
    |;";

    Если ИспользоватьБалансовуюСтоимость Тогда

    Если ВариантФормированияОписи = 3 Тогда
    // 3. Опись с 2018 г. Счет в таблице (5 знаков). Одна строка - один объект

    ТекстЗапросаБлижайшиеОбщиеРодителиСчетов = ИнвентаризацияСервер.ПолучитьТекстЗапросаБлижайшиеОбщиеРодителиСчетов(
    "А_ОстаткиСОтборомПоМОЛ",
    "Номенклатура",
    ,
    СдвигИндексаТаблицыМатериалы);
    Иначе
    ТекстЗапросаБлижайшиеОбщиеРодителиСчетов = ";

    СдвигИндексаТаблицыМатериалы = 0;
    КонецЕсли;

    //------------------------------------------------------------------------------
    // Вариант А.
    // Заполнение сумм по балансовой стоимости
    //------------------------------------------------------------------------------
    ТекстЗапроса = ТекстЗапроса + "
    |////////////////////////////////////////////////////////////­////////////////////
    |// [3А]. Все остатки по полным счетам, без отбора по МОЛ.
    |// Т.к. отбор по МОЛ не применяется, то в остатках будет заполнена сумма,
    |// вне зависимости от ведения суммового учета по субконто ЦМО или Контрагенты
    |//
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | Остатки.Счет КАК Счет,
    | Остатки.КФО КАК КФО,
    | ЕСТЬNULL(Остатки.КПС,ЗНАЧЕНИЕ(Справочник.КлассификационныеПризнакиСчетов.ПустаяСсылка)) КАК КПС,
    | ВЫБОР
    | КОГДА &ИспользоватьУчетПоИФО ТОГДА
    | Остатки.ИФО
    | ИНАЧЕ
    | ЗНАЧЕНИЕ(Справочник.ИсточникиФинансовогоОбеспечения.ПустаяСсылка)
    | КОНЕЦ КАК ИФО,
    | ВЫБОР
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто1) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто1 КАК Справочник.Номенклатура)
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто2) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто2 КАК Справочник.Номенклатура)
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто3) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто3 КАК Справочник.Номенклатура)
    | ИНАЧЕ
    | ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    | КОНЕЦ КАК Номенклатура,
    | ВЫБОР
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 1 ТОГДА
    | Остатки.Субконто1
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 2 ТОГДА
    | Остатки.Субконто2
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 3 ТОГДА
    | Остатки.Субконто3
    | ИНАЧЕ
    | НЕОПРЕДЕЛЕНО
    | КОНЕЦ КАК Субконто3,
    | СУММА(Остатки.КоличествоРазвернутыйОстатокДт - Остатки.КоличествоРазвернутыйОстатокКт) КАК КоличествоУчет,
    | СУММА(Остатки.СуммаРазвернутыйОстатокДт - Остатки.СуммаРазвернутыйОстатокКт) КАК СуммаУчет
    |ПОМЕСТИТЬ
    | А_ОстаткиБезОтбораПоМОЛ
    |ИЗ
    | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
    | &ДатаЗапроса, // 1 Период
    | Счет В (&СчетаОстатков), // 2 Условие счета
    | , // 3 Виды субконто
    | Организация = &Организация // 4 Условие
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоИФО ТОГДА
    | ИФО = &ИФО
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоКФО ТОГДА
    | КФО = &КФО
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоКПС ТОГДА
    | КПС = &КПС
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоПодразделению ТОГДА
    | Подразделение = &Подразделение
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    | ) КАК Остатки
    | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРеальныхДополнительныхСубконто
    | ПО Остатки.Счет = ТаблицаРеальныхДополнительныхСубконто.Счет
    |ГДЕ
    | // Только заполненная номенклатура
    | ВЫБОР
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто1) = ТИП(Справочник.Номенклатура) ТОГДА
    | НЕ Остатки.Субконто1 = &ПустаяНоменклатура
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто2) = ТИП(Справочник.Номенклатура) ТОГДА
    | НЕ Остатки.Субконто2 = &ПустаяНоменклатура
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто3) = ТИП(Справочник.Номенклатура) ТОГДА
    | НЕ Остатки.Субконто3 = &ПустаяНоменклатура
    | ИНАЧЕ
    | ЛОЖЬ
    | КОНЕЦ
    | // Отбор по дополнительному субконто
    | И ВЫБОР
    | КОГДА &НакладыватьОтборПоДополнительномуСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 1 ТОГДА
    | Остатки.Субконто1 = &ЗначениеДляОтбораПоДополнительномуСубконто
    | КОГДА &НакладыватьОтборПоДополнительномуСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 2 ТОГДА
    | Остатки.Субконто2 = &ЗначениеДляОтбораПоДополнительномуСубконто
    | КОГДА &НакладыватьОтборПоДополнительномуСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 3 ТОГДА
    | Остатки.Субконто3 = &ЗначениеДляОтбораПоДополнительномуСубконто
    | КОГДА &НакладыватьОтборПоДополнительномуСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 0 ТОГДА
    | ЛОЖЬ
    | ИНАЧЕ
    | ИСТИНА
    | КОНЕЦ
    |СГРУППИРОВАТЬ ПО
    | Остатки.Счет,
    | Остатки.КФО,
    | ЕСТЬNULL(Остатки.КПС,ЗНАЧЕНИЕ(Справочник.КлассификационныеПризнакиСчетов.ПустаяСсылка)),
    | ВЫБОР
    | КОГДА &ИспользоватьУчетПоИФО ТОГДА
    | Остатки.ИФО
    | ИНАЧЕ
    | ЗНАЧЕНИЕ(Справочник.ИсточникиФинансовогоОбеспечения.ПустаяСсылка)
    | КОНЕЦ,
    | ВЫБОР
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто1) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто1 КАК Справочник.Номенклатура)
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто2) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто2 КАК Справочник.Номенклатура)
    | КОГДА ТИПЗНАЧЕНИЯ(Остатки.Субконто3) = ТИП(Справочник.Номенклатура) ТОГДА
    | ВЫРАЗИТЬ(Остатки.Субконто3 КАК Справочник.Номенклатура)
    | ИНАЧЕ
    | ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    | КОНЕЦ,
    | ВЫБОР
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 1 ТОГДА
    | Остатки.Субконто1
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 2 ТОГДА
    | Остатки.Субконто2
    | КОГДА &СледуетИспользоватьДополнительноеСубконто И ТаблицаРеальныхДополнительныхСубконто.НомерРеальногоДополнительногоСубконто = 3 ТОГДА
    | Остатки.Субконто3
    | ИНАЧЕ
    | НЕОПРЕДЕЛЕНО
    | КОНЕЦ
    |ИМЕЮЩИЕ
    | НЕ СУММА(Остатки.КоличествоРазвернутыйОстатокДт - Остатки.КоличествоРазвернутыйОстатокКт) = 0
    |ИНДЕКСИРОВАТЬ ПО
    | Счет,
    | КФО,
    | КПС,
    | ИФО,
    | Субконто3,
    | Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |// [4А]. Суммы остатков номенклатуры (балансовая стоимость) по выбранному МОЛ
    |//
    |ВЫБРАТЬ
    | ОстаткиБезОтбораПоМОЛ.Счет КАК Счет,
    | ОстаткиБезОтбораПоМОЛ.КФО КАК КФО,
    | ОстаткиБезОтбораПоМОЛ.КПС КАК КПС,
    | ОстаткиБезОтбораПоМОЛ.ИФО КАК ИФО,
    | ОстаткиБезОтбораПоМОЛ.Субконто3 КАК Субконто3,
    | ОстаткиБезОтбораПоМОЛ.Номенклатура КАК Номенклатура,
    | ОстаткиСОтборомПоМОЛ.МОЛ КАК МОЛ,
    | СУММА(ОстаткиСОтборомПоМОЛ.КоличествоУчет) КАК КоличествоУчет,
    |
    | // Балансовая стоимость
    | СУММА(ВЫБОР
    | КОГДА ОстаткиБезОтбораПоМОЛ.КоличествоУчет = 0 ТОГДА
    | 0
    | КОГДА ОстаткиСОтборомПоМОЛ.СуммаУчет <> 0 ТОГДА
    | ОстаткиСОтборомПоМОЛ.СуммаУчет
    | ИНАЧЕ
    | ОстаткиБезОтбораПоМОЛ.СуммаУчет * ОстаткиСОтборомПоМОЛ.КоличествоУчет / ОстаткиБезОтбораПоМОЛ.КоличествоУчет
    | КОНЕЦ) КАК СуммаУчетБалансовая
    |ПОМЕСТИТЬ
    | А_ОстаткиСОтборомПоМОЛ
    |ИЗ
    | А_ОстаткиБезОтбораПоМОЛ КАК ОстаткиБезОтбораПоМОЛ
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОстаткиСОтборомПоМОЛ КАК ОстаткиСОтборомПоМОЛ
    | ПО ОстаткиБезОтбораПоМОЛ.Счет = ОстаткиСОтборомПоМОЛ.Счет
    | И ОстаткиБезОтбораПоМОЛ.КФО = ОстаткиСОтборомПоМОЛ.КФО
    | И ОстаткиБезОтбораПоМОЛ.КПС = ОстаткиСОтборомПоМОЛ.КПС
    | И ОстаткиБезОтбораПоМОЛ.ИФО = ОстаткиСОтборомПоМОЛ.ИФО
    | И ОстаткиБезОтбораПоМОЛ.Субконто3 = ОстаткиСОтборомПоМОЛ.Субконто3
    | И ОстаткиБезОтбораПоМОЛ.Номенклатура = ОстаткиСОтборомПоМОЛ.Номенклатура
    |СГРУППИРОВАТЬ ПО
    | ОстаткиБезОтбораПоМОЛ.Счет,
    | ОстаткиБезОтбораПоМОЛ.КФО,
    | ОстаткиБезОтбораПоМОЛ.КПС,
    | ОстаткиБезОтбораПоМОЛ.ИФО,
    | ОстаткиБезОтбораПоМОЛ.Субконто3,
    | ОстаткиБезОтбораПоМОЛ.Номенклатура,
    | ОстаткиСОтборомПоМОЛ.МОЛ
    |ИМЕЮЩИЕ
    | НЕ (СУММА(ОстаткиСОтборомПоМОЛ.КоличествоУчет) = 0)
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |// [5А]. Данные для заполнения таблицы Остатки (балансовая стоимость)
    |// (Финальная таблица)
    |//
    |ВЫБРАТЬ
    | Счет КАК Счет,
    | ИФО КАК ИФО,
    | КФО КАК КФО,
    | КПС КАК КПС,
    | МОЛ КАК ЦМО,
    | Субконто3 КАК Субконто3,
    | Номенклатура КАК Номенклатура,
    | СУММА(КоличествоУчет) КАК КоличествоУчет,
    | СУММА(СуммаУчетБалансовая) КАК СуммаУчет
    |ИЗ
    | А_ОстаткиСОтборомПоМОЛ
    |СГРУППИРОВАТЬ ПО
    | Счет,
    | ИФО,
    | КФО,
    | КПС,
    | МОЛ,
    | Субконто3,
    | Номенклатура
    |УПОРЯДОЧИТЬ ПО
    | СуммаУчет УБЫВ
    |;
    |"

    + ТекстЗапросаБлижайшиеОбщиеРодителиСчетов

    + "
    |////////////////////////////////////////////////////////////­////////////////////
    |// [6А]. Данные для заполнения таблицы Материалы (балансовая стоимость)
    |// (Финальная таблица)
    |//
    |ВЫБРАТЬ
    | Субконто3 КАК Субконто3,
    | Номенклатура КАК Номенклатура,
    | КоличествоУчет КАК КоличествоУчет,
    | ВЫБОР
    | КОГДА &НеЗаполнятьЦену ТОГДА
    | 0
    | КОГДА КоличествоУчет = 0 ТОГДА
    | 0
    | ИНАЧЕ
    | СуммаУчетБалансовая / КоличествоУчет
    | КОНЕЦ КАК Цена,
    | СуммаУчетБалансовая КАК СуммаУчет,
    |
    | Счет КАК Счет,
    | КПС КАК КПС,
    | КФО КАК КФО,
    |
    | // Недостача
    | ВЫБОР
    | КОГДА КоличествоУчет > 0 ТОГДА
    | КоличествоУчет
    | ИНАЧЕ
    | 0
    | КОНЕЦ КАК НедостачаКоличество,
    | ВЫБОР
    | КОГДА СуммаУчетБалансовая > 0 ТОГДА
    | СуммаУчетБалансовая
    | ИНАЧЕ
    | 0
    | КОНЕЦ КАК НедостачаСумма,
    |
    | // Излишек
    | ВЫБОР
    | КОГДА КоличествоУчет < 0 ТОГДА
    | -КоличествоУчет
    | ИНАЧЕ
    | 0
    | КОНЕЦ КАК ИзлишекКоличество,
    | ВЫБОР
    | КОГДА СуммаУчетБалансовая < 0 ТОГДА
    | -СуммаУчетБалансовая
    | ИНАЧЕ
    | 0
    | КОНЕЦ КАК ИзлишекСумма
    |ИЗ
    | ("

    + ПолучитьТекстЗапросаСвернутыеОстаткиДляТаблицыМатериалы(
    ВариантФормированияОписи,
    ИспользоватьБалансовуюСтоимость)

    + ") КАК СвернутыеОстатки
    |УПОРЯДОЧИТЬ ПО
    | Номенклатура.Наименование
    |;";

    // [5А]. Данные для заполнения таблицы Остатки (балансовая стоимость)
    ИндексТаблицыОстатки = 5;

    // [6А]. Данные для заполнения таблицы Материалы (балансовая стоимость)
    ИндексТаблицыМатериалы = 6 + СдвигИндексаТаблицыМатериалы;

    Иначе
    //------------------------------------------------------------------------------
    // Вариант Б.
    // Заполнение сумм по указанному типу цен номенклатуры
    //------------------------------------------------------------------------------

    Если ВариантФормированияОписи = 3 Тогда
    // 3. Опись с 2018 г. Счет в таблице (5 знаков). Одна строка - один объект

    ТекстЗапросаБлижайшиеОбщиеРодителиСчетов = ИнвентаризацияСервер.ПолучитьТекстЗапросаБлижайшиеОбщиеРодителиСчетов(
    "ОстаткиСОтборомПоМОЛ",
    "Номенклатура",
    ,
    СдвигИндексаТаблицыМатериалы);
    Иначе
    ТекстЗапросаБлижайшиеОбщиеРодителиСчетов = ";

    СдвигИндексаТаблицыМатериалы = 0;
    КонецЕсли;

    ТекстЗапроса = ТекстЗапроса + "
    |////////////////////////////////////////////////////////////­////////////////////
    |// [3Б]. Установленные цены номенклатуры
    |//
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | Номенклатура КАК Номенклатура,
    | Цена КАК Цена
    |ПОМЕСТИТЬ
    | Б_ЦеныНоменклатуры
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
    | &ДатаЗапроса,
    | Организация = &Организация
    | И ТипЦен = &ТипЦен
    | И Номенклатура В
    | (ВЫБРАТЬ
    | Номенклатура
    | ИЗ
    | ОстаткиСОтборомПоМОЛ)
    | ) КАК ЦеныНоменклатурыСрезПоследних
    |ИНДЕКСИРОВАТЬ ПО
    | Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |// [4Б]. Данные для заполнения таблицы Остатки (указанный тип цен)
    |// (Финальная таблица)
    |//
    |ВЫБРАТЬ
    | Остатки.Счет КАК Счет,
    | Остатки.ИФО КАК ИФО,
    | Остатки.КФО КАК КФО,
    | Остатки.КПС КАК КПС,
    | Остатки.МОЛ КАК ЦМО,
    | Остатки.Субконто3 КАК Субконто3,
    | Остатки.Номенклатура КАК Номенклатура,
    | СУММА(Остатки.КоличествоУчет) КАК КоличествоУчет,
    | СУММА(Цены.Цена * Остатки.КоличествоУчет) КАК СуммаУчет
    |ИЗ
    | ОстаткиСОтборомПоМОЛ КАК Остатки
    | ЛЕВОЕ СОЕДИНЕНИЕ Б_ЦеныНоменклатуры КАК Цены
    | ПО Остатки.Номенклатура = Цены.Номенклатура
    |СГРУППИРОВАТЬ ПО
    | Остатки.Счет,
    | Остатки.ИФО,
    | Остатки.КФО,
    | Остатки.КПС,
    | Остатки.МОЛ,
    | Остатки.Субконто3,
    | Остатки.Номенклатура
    |УПОРЯДОЧИТЬ ПО
    | Остатки.Номенклатура.Наименование
    |;
    |"

    + ТекстЗапросаБлижайшиеОбщиеРодителиСчетов

    + "
    |////////////////////////////////////////////////////////////­////////////////////
    |// [5Б]. Данные для заполнения таблицы Материалы (указанный тип цен)
    |// (Финальная таблица)
    |//
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | Субконто3 КАК Субконто3,
    | Номенклатура КАК Номенклатура,
    | КоличествоУчет КАК КоличествоУчет,
    | ВЫБОР
    | КОГДА &НеЗаполнятьЦену ТОГДА
    | 0
    | ИНАЧЕ
    | Цена
    | КОНЕЦ КАК Цена,
    | СуммаУчет КАК СуммаУчет,
    |
    | Счет КАК Счет,
    | КПС КАК КПС,
    | КФО КАК КФО,
    |
    | // Недостача
    | ВЫБОР
    | КОГДА КоличествоУчет > 0 ТОГДА
    | КоличествоУчет
    | ИНАЧЕ
    | 0
    | КОНЕЦ КАК НедостачаКоличество,
    | ВЫБОР
    | КОГДА СуммаУчет > 0 ТОГДА
    | СуммаУчет
    | ИНАЧЕ
    | 0
    | КОНЕЦ КАК НедостачаСумма,
    |
    | // Излишек
    | ВЫБОР
    | КОГДА КоличествоУчет < 0 ТОГДА
    | -КоличествоУчет
    | ИНАЧЕ
    | 0
    | КОНЕЦ КАК ИзлишекКоличество,
    | ВЫБОР
    | КОГДА СуммаУчет < 0 ТОГДА
    | -СуммаУчет
    | ИНАЧЕ
    | 0
    | КОНЕЦ КАК ИзлишекСумма
    |ИЗ
    | ("

    + ПолучитьТекстЗапросаСвернутыеОстаткиДляТаблицыМатериалы(
    ВариантФормированияОписи,
    ИспользоватьБалансовуюСтоимость)

    + ") КАК СвернутыеОстаткиПОВыбраннымЦМО
    |УПОРЯДОЧИТЬ ПО
    | Номенклатура.Наименование
    |;";

    // [4Б]. Данные для заполнения таблицы Остатки (указанный тип цен)
    ИндексТаблицыОстатки = 4;

    // [5Б]. Данные для заполнения таблицы Материалы (указанный тип цен)
    ИндексТаблицыМатериалы = 5 + СдвигИндексаТаблицыМатериалы;

    КонецЕсли;

    ЗапросОстатки.Текст = ТекстЗапроса;

    Результаты = ЗапросОстатки.ВыполнитьПакет();

    // [2]. Данные для заполнения таблицы ПорядокСписания
    ИндексТаблицыПорядокСписания = 2;

    ДокументОбъект["Материалы"].Загрузить( Результаты[ИндексТаблицыМатериалы].Выгрузить());
    ДокументОбъект["Остатки"].Загрузить( Результаты[ИндексТаблицыОстатки].Выгрузить());
    ДокументОбъект["ПорядокСписания"].Загрузить( Результаты[ИндексТаблицыПорядокСписания].Выгрузить());

    КонецПроцедуры
```
---
Передать форму объекта куда-либо на сервере можно только во внешней обработке с видом ЗаполнениеОбъекта в команде с типом ЗаполнениеФормы. Если ваша обработка не предполагает работу на клиенте, то достаточно будет такой команды. Иначе придется делать 2 команды: первая, например, ОткрытиеФормы, вторая – скрытая, ЗаполнениеФормы. В команде ОткрытиеФормы можно будет программно вызвать команду ЗаполнениеФормы.
---
ДокументОбъект = Форма["Объект"];

ДокументОбъект - это не прикладной объект, а данные формы. На первый взгляд не так сложно переписать. Копируете всю процедуру и заменяете параметр Форма, на объект. Следовательно ДокументОбъект будет равен параметру, а не Форма["Объект"].
Главное чтобы не было обращений к реквизитам формы и не было вызова экспортных методов формы.
---
Скорее всего никак.
Нельзя передавать форму с сервера на клиент и наоборот - форма несериализуемый объект. 1С против таких действий из-за больших расходов ресурсов.
Если вы получаете форму при помощи ПолучитьФорму(), то и доступ к форме у вас только со стороны клиента.
Возможные варианты:
1. Если не нужна форма, а нужен только документ:
- полностью отказывайтесь от работы с формой, работайте только с объектом документа.
2. Если нужна форма уже записанного документа:
- создаете объект документа, заполняете, записываете, открываете форму документа и передаете туда ссылку на созданный документ

```1c
    ДокументОбъект = Документы.ИнвентаризацияМЗ.Создать();
    ЗаполнитьДокумент(ДокументОбъект);
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
    ОткрытьФорму("Документы.ИнвентаризацияМЗ.Форма.ФормаОбъекта", Новый Структура("Ключ", ДокументОбъект.Ссылка));
```

3. Если нужна форма незаписанного документа:

```1c
    ДанныеЗаполнения = Новый Структура();
    ЗаполнениеДанных(ДанныеЗаполнения);
    ОткрытьФорму("Документы.ИнвентаризацияМЗ.Форма.ФормаОбъекта", Новый Структура("ЗначенияЗаполнения", ДанныеЗаполнения);
```

В вашем случае лучше исправить саму процедуру заполнения в менеджере документа, тем более там форма всего один раз передается в функцию

```1c
    ОпределитьПараметрыНакладываемогоОтбора(Форма)
```

либо передавайте в нее объект, либо необходимые реквизиты отдельными параметрами. Тогда необходимость в манипулировании формой отпадет сама собой.