@immelnikoff
Изучаю БД

Почему в файловой базе работает, а в клиент-серверной возникает ошибка «Попытка передачи с клиента на сервер мутабельного значения 1-го параметра...»?

1С 8.3, УПП 1.3 (обычное приложение), база клиент-серверная.
Имеется подписка на событие Обработка проведения документа Требование-накладная. Обработчик данной подписки находится в общем модуле.
При проведении документа Требование-накладная возникает следующая ошибка:
5cb625e1d2bc2968172994.png
, которая отсутствовала в файловом варианте данной базы.
Как её исправить?
Ошибка появляется до начала выполнения тела процедуры:
5cb6282dc7401818975602.png
  • Вопрос задан
  • 4051 просмотр
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
1) При работе в файловой базе все находится в памяти вашего компьютера - тут нет никаких проблем. Но когда дело касается взаимодействия вашего компьютера-клиента с компьютером-сервером, то сервер уже не имеет доступа к вашей оперативке - передаваемая в обработку информация пакуются в контейнеры и отправляются по сети. Пока все понятно?

2) При программировании на платформе 1С при работе с базой данных мы работаем или с Ссылками, или с полученными с их помощью Объектами. Ссылка отличается от Объекта своей неизменностью - это просто адрес с указанием типа данных и уникального идентификатора. Но Объект в отличии от Ссылки можно изменить и записать назад в базу по адресу этой Ссылки. Думаю это тоже понятно.

3) Что вы пытаетесь сделать? У вас локально в памяти есть измененный Объект (в переменной Источник) и вы хотите передать его на сервер для дальнейшей параллельной обработки и тут и там. К сожалению мы работаем не на квантовых компьютерах и потому эффект запутанности нам недоступен. Мы можем править Объект или локально, или на сервере. Но не одновременно в двух местах!

Итого. Судя по тексту вашей процедуры, вам вообще Источник передавать не нужно - передавайте сразу ДокументОснования. Но если предполагается, что на сервере Объект нужно изменить, то а) запишите его локально, б) передайте на него Ссылку, в) на сервере прочитайте по Cсылке, г) после изменения на сервере запишите Объект в базу, д) после возвращения потока управления на клиент, прочитайте Объект из базы по Ссылке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы