Спроба передачі мутабельном значення

Варіанти вирішення проблеми на прикладі роботи обробки 1С: Адміністратор.
Конфігурація: Роздріб 2.0. Клієнт-Сервер. Звичайна програма.
Помилка виникає при Записи / Проведенні / ОтменаПроведенія документа.

Спроба передачі мутабельном значення - це спроба передачі об'єкта на сервер (клієнт), дані якого можуть бути змінені на клієнті (сервері).
Спроба передачі мутабельном значення з клієнта на сервер, з сервера на клієнт 1С: Підприємства виникає тільки в клієнт-серверної версії (SQL).

Передача параметрів функції (процедури), що виконується на сервері досить тонке питання. Це в першу чергу пов'язано з необхідністю передачі їх між процесом сервера додатків і клієнта. При переході управління з клієнтської частини на серверну всі передані параметри серіалізуются, передаються на сервер, де "розпаковуються" і використовуються. При переході з серверної частини на клієнтську - зворотний процес. Тут необхідно зазначити, що дана схема коректно обробляє передачу параметрів по посиланню і за значенням. При передачі параметрів діють наступні відмежування:

Передавати між клієнтом і сервером (в обидві сторони) можна тільки немутабельние значення (тобто значення яких не можуть змінюватися): примітивні типи, посилання, універсальні колекції, значення системних перерахувань, сховище значення. При спробі передати що-небудь інше - аварійне завершення клієнтського додатка (навіть, якщо передавати некоректний параметр намагається сервер).

Не рекомендується при передачі параметрів передавати великі обсяги даних (наприклад, рядки більше 1 мільйона символів), це може негативно позначитися на продуктивності сервера.

Не можна передавати параметри, які містять циклічну посилання. причому як з сервера на клієнт, так і обратно.Прі спробі передати такий параметр - аварійне завершення клієнтського додатка (навіть якщо передавати некоректний параметр намагається сервер).

Не рекомендується передавати дуже складні колекції даних. При спробі передачі параметра з дуже великим рівнем вкладення відбувається аварійне завершення сервера.

"Роздріб 2.0". Клієнт-Сервер. Звичайна програма.
Обробка "1С: Адміністратор": //infostart.ru/public/100967/

МО::
Помилка при виклику методу контексту (Записати):
Помилка при виконанні обробника - 'ПередЗапісью' ::
Помилка при виклику методу контексту (ДатаІліОрганізаціяОб'ектаІзменена):
Спроба передачі з клієнта на сервер мутабельном значення 2-го параметра методу ДатаІліОрганізаціяОб'ектаІзменена ().

Об'ектІЗМ. Записати (? (РежімЗапісі = Не визначено, РежімЗапісіДокумента. Запис. РежімЗапісі));

Процедура ПроверітьНомерОб'ектаПоДатеІОрганізаціі (Об'єкт)

ВАРІАНТ РІШЕННЯ № 1: (можливий, але неоптимальний):
ВСТАНОВЛЕННЯ властивості ЗАГАЛЬНОГО МОДУЛЯ.

У Властивостей ах ОбщійМодуль.ПрефіксаціяОб'ектов активізувати прапорець "Клієнт звичайна програма".

Процедура ПроверітьНомерОб'ектаПоДатеІОрганізаціі (Об'єкт)

ВАРІАНТ РІШЕННЯ № 3: (можливий, але не в даному випадку):
ВИКОРИСТАННЯ XML-Серіалізация (запропоновано w-divin).

Серіалізация не працює, якщо в якості записуваного об'єкта виступають Метадані.
(Помилка при виклику методу контексту (ЗапісатьXML): Значення даного типу не можуть бути представлені в XML).

Рекомендується використовувати при необхідності передати Об'єкт (СправочнікОб'ект, ДокументОб'ект і т.д.).

Використовувати функції типу:

// Вивантаження ХОб'екта в XML-рядок:
Функція ЗапісатьВXML (ХОб'ект)
ЗапісьXML = Новий ЗапісьXML; // Тонкий клієнт, сервер, товстий клієнт, зовнішнє з'єднання.
ЗапісьXML. УстановітьСтроку ();
ЗапісатьXML (ЗапісьXML. ХОб'ект); / / Сервер, товстий клієнт, зовнішнє з'єднання.
Повернення ЗапісьXML. Закрити ();
КонецФункціі

// Завантаження ХОб'екта з XML-рядки:
Функція ПрочітатьІзXML (СтрокаXML)
ЧтеніеXML = Новий ЧтеніеXML; / / Тонкий клієнт, сервер, товстий клієнт, зовнішнє з'єднання.
ЧтеніеXML. УстановітьСтроку (СтрокаXML);
ХОб'ект = ПрочітатьXML (ЧтеніеXML); // Сервер, товстий клієнт, зовнішнє з'єднання.
Повернення ХОб'ект;
КонецФункціі

Спроба передачі мутабельном значення
З повагою до спільнот у МА!

що в разі УП просто не буде працювати.

Помиляєтеся - працює - перевірено неодноразово.

не працює. в УП на клієнті навіть немає об'єкта як такого. всеголішь ДанниеФормиКоллекція і т.п.
і навіть для того щоб отримати сам об'єкт потрібно передати управління на сервер:

УправляемаяФорма (ManagedForm)
РеквізітФормиВЗначеніе (FormAttributeToValue)
синтаксис:

РеквізітФормиВЗначеніе (<ИмяРеквизита>, <Тип>)
параметри:

Тип: Рядок.
Ім'я реквізиту форми, який необхідно перетворити.
Може бути вказано реквізит даних форми (див. Опис параметра <Объект> методу ДанниеФормиВЗначеніе).
<Тип> (Необов'язковий)

Тип: Тип.
Тип значення, що отримується з реквізиту форми (даних форми). Якщо даний параметр не вказано, то він також виходить з реквізиту форми. Якщо реквізит є складовим типом і значення параметра не вказано, генерується виключення часу виконання.
Значення, що повертається:

Перетворює вказаний реквізит форми в об'єкт прикладного типу.