Имя: Пароль:
1C
1С v8
РеквизитФормыВЗначение
0 Mad88
 
10.06.15
15:00
Добый день. Во внешней обработке создал реквизит тип ТаблицаЗначений. Затем передаю эту табличку на сервер. Обратно процедура не возвращается, пишет
Ошибка при установке значения атрибута контекста (ТЗ)
СозданиеДОкументовСервер(ТЗ)
по причине:
Нельзя изменять поле, содержащее объект данных формы

Подскажите пожалуйста, что нужно сделать?

&НаКлиенте
Процедура Загрузить()
СозданиеДокументовНаСервере(ТЗ)
КонецПроцедуры

&НаСервере
Процедура СозданиеДОкументовСервер(ТЗ)
ТаблицаЗначений = РеквизитФормыВЗначение("ТЗ");
ТЗ.Очистить();
ЗначениеВРеквизитФормы(ТаблицаЗначений,"ТЗ");
КонецПроцедуры
1 butterbean
 
10.06.15
15:02
не надо ТЗ передавать на сервер, его там и так видно
2 Asmody
 
10.06.15
15:04
(0) Имена параметров процедур не должны совпадать с именами реквизитов.
3 fisher
 
10.06.15
15:07
(0) Делай просто
ТЗ.Загрузить(ТаблицаЗначений);
4 Mad88
 
10.06.15
15:10
(1) Спасибо, понял
5 Cyberhawk
 
10.06.15
15:13
Ставлю, что автор еще вернется сюда
6 ЧеловекДуши
 
10.06.15
15:32
(4) И еще надо обновить данные на форме :)
7 ЧеловекДуши
 
10.06.15
15:33
(0) И все это ради того, что бы очистить?
Так можно было сделать это и на стороне клиента :)
8 fisher
 
10.06.15
15:39
(6) Из серверного контекстного вызова - не надо.
9 ЧеловекДуши
 
10.06.15
15:42
(0) Странно, у меня работает...

&НаСервере
Процедура ИУухнем()
    
    ТЗ = Реквизит1.Выгрузить();
    
    Стр = ТЗ.Добавить();
    Стр.Реквизит1 = "АЯЯЯЯ!!!";
    
    ЗначениеВРеквизитФормы(ТЗ,"Реквизит1");
    
КонецПроцедуры
10 ЧеловекДуши
 
10.06.15
15:43
+ И так тоже

&НаСервере
Процедура ИУухнем()
    
    ТЗ = Реквизит1.Выгрузить();
    
    Стр = ТЗ.Добавить();
    Стр.Реквизит1 = "АЯЯЯЯ!!!";
    
    ТЗ.Очистить();
    
    ЗначениеВРеквизитФормы(ТЗ,"Реквизит1");
    
КонецПроцедуры
11 ЧеловекДуши
 
10.06.15
15:45
(8) Не уверен в этом утверждении :)
12 samozvanec
 
10.06.15
15:58
(11) см (2)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн