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

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

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


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

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

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

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

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

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

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

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


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

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

Комментарии   

+1 #1 lsnr 14.05.2018 17:05
Наконец то нашел внятный ответ.. Спасибо.
Цитировать

Комментарии

  • Ненавижу1С 19.05.2018 18:16
    Благодарю. Помогло данное решение.

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

     
  • lsnr 14.05.2018 17:05
    Наконец то нашел внятный ответ.. Спасибо.

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

     
  • Гринёв 20.12.2017 09:45
    Только надо иметь ввиду, что СтандартнаяОбработка = Ложь в процедуре ПриКомпоновкеРезультата отключает стандартную расшифровку полей отчёта.

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