Доброго времени суток,

Имеется тяжелый производственный документ с движением по куче регистров, и необходимостью многократного добавления/проведения данного документа в течении дня. Для целей оптимизации и ускорения работы, рассматриваю вариант переноса движений в модуль менеджера и вызов их через длительные операции. Проблема в том, что параметры фонового задания не поддерживают стерилизацию, но как в таком случае передать объект. Может проще использовать регламентное задание?

Буду благодарен за советы по реализации фонового проведения документов.
---
Забыли сделать

либо

```1c
    Объект.Записать(РежимЗаписиДокумента.Проведение);
```

либо

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

В форме &НаСервере
```1c
    ДанныеДокумента = ЗарплатаКадры.СериализоватьОбъектВДвоичныеДанные(ДокументОбъект);
```
В фоновом задании
```1c
    ДокументОбъект = ЗарплатаКадры.ДесериализоватьОбъектИзДвоичныхДанных(ДанныеДокумента);
    ...
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
```
---
Ну так это разные экземпляры объекта. А сериализовать-то конечно можно, но только в фоновом создании создастся новый экземпляр объекта. Ровно так же как и при обмене данных через XML.
---
Спасибо. Просто в (4) безапеляционно заявляется, что ДокументОбъект нельзя передать в ФЗ. Оказывается можно, хоть и не без костылей.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
нет, передать нельзя. Можно создать новый, в котором аналогичные данные.
Пример:

```1c
    //ДокументОбъект1 это объект документа Документ1.
    ДокументОбъект2 = ДокументОбъект.Ссылка.ПолучитьОбъект();
    //Далее идет заполнение данных объекта по данным ДокументОбъект1
```

Так вот, ДокументОбъект2 получился не передачей ДокументОбъект1, а созданием нового объекта и заполнением данных.
Так что передачи объекта не происходит.

PS. Самое главное тут в том, что изменение Одного объекта никак не отобразится на другом. Только при записи будет вызвано исключение, если один из объектов ранее записал изменение в базу.
---
Спасибо, теперь увидел разницу!
---
Передал ссылку, получил объект в модуле указано, Объект.Движения.х.Записывать = Истина;, Движение = Объект.Движения.х.Добавить(), и дальше по тексу, но движений по документу отсутствуют, что я делаю не так?
---
Забыли сделать

либо

```1c
    Объект.Записать(РежимЗаписиДокумента.Проведение);
```

либо

```1c
    Объект.Движения.х.Записать();
```