Всем привет! Подскажите, как можно обратиться к объекту или форме обработки на сервере. Обработка находиться в конфигурации (не внешняя). Пробую так :

```1c
    Обработка = Обработки.ЗагрузкаКоэффициентТранспорта;
    ФормаОбработки = Обработка.ПолучитьФорму("Форма");
```

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

    ТЗ = Объект.Товары.Выгрузить();
    ТЗ.Свернуть("Поставщик");

    АдресХранилища = ПоместитьВоВременноеХранилище(ТЗ, ЭтаФорма.УникальныйИдентификатор);

    Возврат АдресХранилища;
    КонецФункции

    &НаКлиенте
    Процедура РассчетПосле(Команда)
    АдресХранилища = РассчетПослеНаСервере();

    ОткрытьФорму("Обработка.ЗагрузкаКоэффициентТранспорта.Форма",Новый Структура("АдресХранилища",АдресХранилища) ,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры
```

А получать из временного хранилища нужно в обработке, в обработчике ПриСозданииНаСервере.
Переданный адрес будет в Параметры.АдресХранилища

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Перем АдресХранилища;

    Если Параметры.Свойство("АдресХранилища",АдресХранилища) И ЭтоАдресВременногоХранилища(АдресХранилища) Тогда
    ТЗ = ПолучитьИзВременногоХранилища(АдресХранилища);
    // далее загрузить полученную ТЗ.
    КонецЕсли;
    КонецПроцедуры
```
---
Что дальше-то с формой делать собираетесь?

```1c
    Обработка = Обработки.ЗагрузкаКоэффициентТранспорта;
```
Это будет модуль менеджера обработки.
И в целом ПолучитьФорму - это модальное открытие. Лучше его не использовать в УФ.
Почитайте лучше тут - https://infostart.ru/1c/articles/236382/
---
У меня в обработке форма с табличной частью "Товары" а кнопка вызова этой обработки в документе находиться. По нажатию этой кнопки должна свернуться табличная часть из документа и перенестись в обработку.
---
по команде вызываете серверную функцию. В ней выгружаете табличную часть в ТЗ. Сворачиваете и помещаете во временное хранилище. Адрес хранилища возвращаете на клиент и открываете форму обработки через ОткрытьФорму, с передачей параметром адреса временного хранилища.
В обработке получаете ТЗ из временного хранилища и загружаете.
---
Делаю так:

```1c
    &НаСервере
    Функция РассчетПослеНаСервере()

    ТЗ = Объект.Товары.Выгрузить();
    ТЗ.Свернуть("Поставщик");

    АдресХранилища = ПоместитьВоВременноеХранилище(ТЗ, ЭтаФорма.УникальныйИдентификатор);
    ПротоколПереноса = ПолучитьИзВременногоХранилища(АдресХранилища);

    Возврат ПротоколПереноса;
    КонецФункции

    &НаКлиенте
    Процедура РассчетПосле(Команда)
    СвернутаяТаблица = РассчетПослеНаСервере();

    ОткрытьОбработку = ОткрытьФорму("Обработка.ЗагрузкаКоэффициентТранспорта.Форма.Форма",СвернутаяТаблица,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры
```

Но даёт ошибку: Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
{Документ.КоммерческоеПредложениеКлиенту.Форма.ФормаДокумента.Форма(761)}:СвернутаяТаблица = РассчетПослеНаСервере();

по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: ret Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
---
```1c
    &НаСервере
    Функция РассчетПослеНаСервере()

    ТЗ = Объект.Товары.Выгрузить();
    ТЗ.Свернуть("Поставщик");

    АдресХранилища = ПоместитьВоВременноеХранилище(ТЗ, ЭтаФорма.УникальныйИдентификатор);

    Возврат АдресХранилища;
    КонецФункции

    &НаКлиенте
    Процедура РассчетПосле(Команда)
    АдресХранилища = РассчетПослеНаСервере();

    ОткрытьФорму("Обработка.ЗагрузкаКоэффициентТранспорта.Форма",Новый Структура("АдресХранилища",АдресХранилища) ,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры
```

А получать из временного хранилища нужно в обработке, в обработчике ПриСозданииНаСервере.
Переданный адрес будет в Параметры.АдресХранилища

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Перем АдресХранилища;

    Если Параметры.Свойство("АдресХранилища",АдресХранилища) И ЭтоАдресВременногоХранилища(АдресХранилища) Тогда
    ТЗ = ПолучитьИзВременногоХранилища(АдресХранилища);
    // далее загрузить полученную ТЗ.
    КонецЕсли;
    КонецПроцедуры
```
---
Подскажи пожалуйста, делал так сознаюсь:

```1c
    Если Параметры.Свойство("АдресХранилища",АдресХранилища) И ЭтоАдресВременногоХранилища(АдресХранилища) Тогда
    ТЗ = ПолучитьИзВременногоХранилища(АдресХранилища);
    // далее загрузить полученную ТЗ.
    Объект.Товары.Загрузить(ТЗ);
    УдалитьИзВременногоХранилища(АдресХранилища);
    КонецЕсли;
```

Строчки создает, а поля пустые не заполнены. Я так понял реквизиты в ТЧ документа и в ТЧ обработки должны называться одинаково ?

Потом попробовал так:

```1c
    Если Параметры.Свойство("АдресХранилища",АдресХранилища) И ЭтоАдресВременногоХранилища(АдресХранилища) Тогда
    ТЗ = ПолучитьИзВременногоХранилища(АдресХранилища);
    // далее загрузить полученную ТЗ.
    Для Каждого СтрокаТЗ Из ТЗ Цикл
    СтрокаОБ = ЭтаФорма.Объект.Товары.Добавить();
    ЗаполнитьЗначенияСвойств(СтрокаОБ.Поставщик, СтрокаТЗ.Поставщик); ;
    КонецЦикла;
    УдалитьИзВременногоХранилища(АдресХранилища);
    КонецЕсли;
```

Все равно создал 2 строки как и должно быть но они пустые. Где я ошибся ?
---
Я так понял реквизиты в ТЧ документа и в ТЧ обработки должны называться одинаково ?
Да. И наименования и типы должны совпадать.
---
Для Каждого СтрокаТЗ Из ТЗ Цикл
             СтрокаОБ = ЭтаФорма.Объект.Товары.Добавить();
              ЗаполнитьЗначенияСвойств(СтрокаОБ.Поставщик, СтрокаТЗ.Поставщик); ;
        КонецЦикла;
Если типы совпадают, но разные имена реквизитов ТЧ, то можно так:

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

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

Подскажи пожалуйста еще, в дальнейшем в этой форме обработки хотят вычислять некоторые числа и затем записывать их в табличную часть документа по кнопке. Потом с сервера обработки реально будет передать значения на клиент в тч документа?
---
обратно можно таким же способом (через временное хранилище). Только таблица в обработке будет свернута. Следовательно можно только полной заменой данных ТЧ документа.
---
Спасибо большое!