15 октября, 2021

Мутабельные объекты

Сижу, перевожу работу конфигурации на клиент-серверный режим, отлавливаю места, где не удается передача данных с клиента на сервер. Получается так, что после того как некоторые из общих модулей были сделаны серверными, т.е. исполняемыми только на сервере, описанные в них функции не работают если в качестве параметра использовался какой-то объект — документ или обработка и т.п. Не работают по той причине, что с клиента на сервер невозможно передать «мутабельный объект», как говорит отладчик. В многих случаях помогает передача в функцию не «Объекта» а «Ссылки». Но если параметром был объект-обработка, то понятия ссылки у обработки нет. Тут мне помогла хитрость со структурой. Проанализировав текст функции я понял, что параметр-объект в ней используется только для считывания его свойств, что-то вроде: «Док.Дата», «Док.Склад» и так далее. Тогда перед вызовом функции я сформировал структуру с нужными свойствами и вставил ее в параметры функции — структура уже не является «мутабельным объектом» и без проблем передается с клиента на сервер.