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

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

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


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

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

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

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

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

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

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

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


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

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

Комментарии   

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

Комментарии

  • Moby 05.07.2018 11:51
    Спасибо! По "Варианту 2" заработало только после добавления ресурса в выбранные поля группировки строк. Не помню что до этого менял, может ресурс там и был когда-то.

    Подробнее...

     
  • MariNew 20.06.2018 15:36
    Отлично!!! У меня получилось!!!! СПАСИБО!

    Подробнее...

     
  • Ирина 09.06.2018 13:05
    Спасибо большое! Пригодилось.

    Подробнее...