Имя: Пароль:
1C
1С v8
УФ: Нельзя изменять поле, содержащее объект данных формы
0 FFrr1C
 
01.10.14
17:38
в управляемой форме документа - есть реквизит "ТЗ" с типом ТаблицыЗначений;
далее необходимо заполненный реквизит передать в ТабЧасть объекта документа:

&НаКлиенте
Процедура Оупен(Команда)
Стр = Тз.Добавить();
стр.сервис = ПолучитьСервис(СокрЛП(Ex.Cells(НС,1).Value));

ЗагрузитьТз(Тз)

конецпроцедуры

&НаСервере

Процедура ЗагрузитьТз(Тз)

об = РеквизитФормыВЗначение("Объект") ;
Об.ЗакинутьВТЗ(РеквизитФормыВЗначение("ТЗ"));
ЗначениеВРеквизитФормы(об, "Объект");

конецпроцедуры    

//в модуле документа

Функция ЗакинутьВТЗ(Тз) экспорт
    Распечатка.Очистить();
    Распечатка.Загрузить(Тз);
конецфункции    

почему то выдает ошибку:
"Нельзя изменять поле, содержащее объект данных формы"
1 hhhh
 
01.10.14
17:45
а так?

Функция ЗакинутьВТЗ(МойПараметрТз) экспорт
2 FFrr1C
 
01.10.14
17:48
ну так оно вроде и есть ЗакинутьВТЗ(МойПараметрТз) экспорт, где МойПараметрТз получаем в форме из РеквизитФормыВЗначение("ТЗ")
3 hhhh
 
01.10.14
17:55
(2) у Вас написано "ТЗ".
4 ssh2QQ6
 
01.10.14
18:00
на сервер, кстати, ТЗ - данные формы коллекция можно не передавать, вызов контекстный
5 ssh2QQ6
 
01.10.14
18:09
+(4) поэтому и ошибка. Убери параметр у процедуры ЗагрузитьТз
6 ssh2QQ6
 
01.10.14
18:19
В ТЗ как раз содержится объект данных - таблица значений и система думает, что передавая это поле в качестве параметра планируется его изменение и выдает ошибку. Что интересно,  вот если передать ТЗ как параметр по значению, т.е. написать Процедура ЗагрузитьТз(Знач Тз), то ошибки не будет.
7 FFrr1C
 
02.10.14
14:34
Спасибо! понято...
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.