Есть обработка, в модуле объекта есть процедура заполнения ТЗ обработки. Всё нормально работало.
Но после перевода выполнения этой процедуры на длительную операцию, делал на подобии как тут
https://infostart.ru/1c/articles/1318934/
Появилась проблема, не обновляются данные формы. Т.е ТЗ на форме пустая.
Пробовал передавать в длительную операцию ДанныеФормыСтруктуру, что бы взять из неё введенные пользователем параметры, заполнить на сервере и вернуть обратно результат заполненный ТЗ на клиент, пишет ошибку:
Параметр фонового задания не поддерживает сериализацию.
т.е СтруктураФоновогоЗадания = ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, ВыполняемыйМетод, Объект); //Объект это данные формы структура
Здесь написано
https://master1c8.ru/biblioteka-standartnh-podsistem/10288/ что:
"Следует отметить, что в качестве параметра нужно передать параметры, которые поддерживают серализацию, иначе длительная операция не выполняется и выдается сообщение -“Параметр фонового задания не поддерживает сериализацию” .
Например, если параметр ТаблицаДанных имеет тип ДанныеФормыЭлементКоллекции, то нужно преобразовать на тип ТаблицаЗначений с помощью метода выгрузить таким образом
Тз =ТаблицаДанных.Выгрузить();
ПараметрыВызова = Новый Структура(“Параметр1,Параметр2,Таблица”, 10, 20,Тз);"
Я так и не понял ДанныеФормыСтруктура не поддерживает сериализацию? Судя по справке нет. Но я много раз передавал ДанныеФормыСтруктура на сервер и обратно, например в модуле формы:
&НаКлиенте
Процедура НаКлиенте()
ВызватьНаСервере(Объект);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ВызватьНаСервере(Знач ДанныеФормы)
...
КонецПроцедуры
Так будет работать. При передачи данных с клиента на сервер вроде происходит сериализация? значит есть поддержка сериализации.
В итоге только один способ есть что ли? В процедуре/функции длительной операции выгружать данные в ТЗ и в таком виде возвращать на клиент? :( не удобно.
Мне нужно 3 таблицы вернуть на клиент, еще перед этим на сервер передать заполненные на клиенте поля формы.