Допустим, мы делаем какую-то внешнюю обработку, в форме которой размещаем реквизит с типом "Таблица значений". Назовём этот реквизит СчетаФактуры.

Также на форме размещаем кнопку команды, например, с названием "Обработать счета-фактуры". Задаём действие для команды:

&НаКлиенте
Процедура ОбработатьСчетаФактуры(Команда)
	
	ОбработатьСчетаФактурыНаСервере(СчетаФактуры);
	
КонецПроцедуры


&НаСервере
Процедура СформироватьДвиженияНаСервере(СчетаФактуры)
	
	// Тело процедуры.	

КонецПроцедуры

Параметр СчетаФактуры – это наш реквизит формы.

При попытке запустить команду получаем ошибку:

"Нельзя изменять поле, содержащее объект данных формы".

Дело в том, что в параметре процедуры ОбработатьСчетаФактурыНаСервере(СчетаФактуры) мы передаём данные формы с типом ДанныеФормыКоллекция, и потом на сервере пытаемся их изменить.

Для исправления ошибки нужно всего навсего объявить переменную и присвоить ей значение реквизита.

&НаКлиенте
Процедура ОбработатьСчетаФактуры(Команда)
	
	перем_СчетаФактуры = СчетаФактуры;
		
	ОбработатьСчетаФактурыНаСервере(перем_СчетаФактуры);
	
КонецПроцедуры


&НаСервере
Процедура СформироватьДвиженияНаСервере(перем_СчетаФактуры)
	
	// Тело процедуры.	

КонецПроцедуры

Комментарии   

0 #4 Максим Донецкий 28.03.2019 12:52
Цитирую ANdreyKa:
А я то думал "Что за хрень!?".. Переносил блок в разные места.. А тут такое..

Спасибо большое!

На здоровье!
Цитировать
+1 #3 ANdreyKa 28.03.2019 09:48
А я то думал "Что за хрень!?".. Переносил блок в разные места.. А тут такое..

Спасибо большое!
Цитировать
+7 #2 MariNew 20.06.2018 15:36
Отлично!!! У меня получилось!!!! СПАСИБО!
Цитировать
+11 #1 lsnr 14.05.2018 17:05
Наконец то нашел внятный ответ.. Спасибо.
Цитировать