Имя: Пароль:
1C
 
Как передать реквизит формы "ДеревоЗначений" на сервер?
0 Mobilis77
 
13.09.26
12:38
Уважаемый ALL, прошу помочь, возможно с примитивным вопросом, но не могу понять, что делаю не так.  Имеется форма, В ней добавлен реквизит ФормаДерево с типом "ДеревоЗначений". Пытаюсь передать это дерево на сервер для дальнейшей его обработки (считывания данных из него).

&НаСервере
Функция ОбработатьДеревоНаСервере(ДеревоФормы)    
   Дерево = РеквизитФормыВЗначение(ДеревоФормы, Тип("ДеревоЗначений") );
        
КонецФункции

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

В результате получаю ошибку в серверной функции: Несоответствие типов параметр 1.  Хотя в отладчике ДеревоФормы имеет тип ДанныеФормыДерево.  Что делаю не так?
1 Mobilis77
 
13.09.26
12:33
Отладчик
2 Dirk Diggler
 
13.09.26
12:45
ЕМНИП тз и дз плохо сериализуются. Перед передачей в многоуровневый массив структур надо превращать.
3 Сергиус
 
13.09.26
12:53
(0)А если попробовать через ДанныеФормыВЗначение?
4 Mobilis77
 
13.09.26
12:59
(3) Дружище, спасибо, сработало.
5 Mobilis77
 
13.09.26
14:37
Не тут то было. На сервере дерево формируется, можно его обрабатывать. Но, даже если в серверной процедуре только

&НаСервере
Функция ОбработатьДеревоНаСервере(ДеревоФормы)    
   Дерево = ДанныеФормыВЗначение(ДеревоФормы, Тип("ДеревоЗначений") );
        
КонецФункции


То по окончанию процедуры на клиенте ошибка: Нельзя изменять поле, содержащее объект данных формы
[ОшибкаИспользованияВстроенногоЯзыка]
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший