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