Имя: Пароль:
1C
1С v8
Как заполнить Реквизит УФ Дерево значений.
,
0 simol
 
01.09.12
19:33
В процедура модуля формы обработки на сервере сформировал необходимое дерево значений.
Необходимо его засунуть в реквизит формы типа Дерево значений.
Команда

   ДеревоЗначений = Новый ДеревоЗначений;
   ЭтаФорма.ЗначениеВРеквизитФормы(ДеревоЗначений, "ДеревоЗадач");

не проходит
Недопустимое значение параметра (параметр номер '2')


Как его "погладить", чтобы заработало?
1 Wobland
 
01.09.12
19:34
а есть такой реквизит у формы?
2 simol
 
01.09.12
19:36
(1) Да есть

http://screencast.com/t/IIZ0Ak4K

После ввода кавычек в ЭтаФорма.ЗначениеВРеквизитФормы(ДеревоЗначений, "
автоподбор срабатывает.
3 Wobland
 
01.09.12
19:39
у меня вот целиком объект передавался. наверное, потому, что проблемы были с отдельным реквизитом. сдаюсь

&НаСервере
Процедура СлучайноЗаполнить()
   док=РеквизитФормыВЗначение("Объект");
   СерверныйМодуль.ЗаполнитьСлучайно(док);
   ЗначениеВРеквизитФормы(док, "Объект");
КонецПроцедуры
4 simol
 
01.09.12
19:42
(3)Какая-то особенность дерева я думаю
5 Wobland
 
01.09.12
19:49
Доступность:

Сервер, толстый клиент, внешнее соединение.

Внимание! В толстом клиенте (обычное приложение) передача значений данного типа с клиента на сервер и обратно приводит к возникновению исключения.
6 simol
 
01.09.12
19:50
(5)Я на сервере
7 simol
 
01.09.12
19:53
(0)Непосредственное заполнение через ПолучитьЭлементы() вместо ".Строки" получилось, то хотел бы сначала Дерево подготовить, а потом его загрузить в реквизит формы.
8 Wobland
 
01.09.12
19:54
(4) со строкой то же самое
ЗначениеВРеквизитФормы(стр, "Реквизит1")
9 Wobland
 
01.09.12
19:57
УТ11:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Дерево = ЗначениеИзФайла(ИмяВременногоФайла);
...
   ЗначениеВРеквизитФормы(Дерево, "ДеревоКлассификатора");
КонецПроцедуры
10 simol
 
01.09.12
19:57
(9)Щас поищу УТ11 и гляну
11 simol
 
01.09.12
20:03
Нашел в "Библиотеке электронных документов" код

   ЗначениеВРеквизитФормы(ДеревоПомеченных, "СписокПомеченныхНаУдаление");

где ДеревоПомеченных - дерево значений, а СписокПомеченныхНаУдаление - реквизит формы дерево значений

играю в найди 10 отличий
12 Wobland
 
01.09.12
20:03
оттуда же. задача исполнителя, форма задачи по предмету
&НаСервере
Процедура ЗаполнитьДеревоЗадач()
   
   Дерево = РеквизитФормыВЗначение("ДеревоЗадач");
   Дерево.Строки.Очистить();
   
   ДобавитьЗадачиПоПредмету(Дерево, Параметры.ЗначениеОтбора);
   
   ЗначениеВРеквизитФормы(Дерево, "ДеревоЗадач");
   
КонецПроцедуры
13 Wobland
 
01.09.12
20:03
(11) я нашёл. у тебя Новый Дерево
14 simol
 
01.09.12
20:04
(13)Да, тоже это понял, спасибо
15 Wobland
 
01.09.12
20:04
(13) хотя, вон в (9) тоже на месте создавалось...
16 Wobland
 
01.09.12
20:04
(14) что спасибо? понял что-то? я ни черта ;)
17 simol
 
01.09.12
20:06
Вместо

ДеревоЗначений = Новый ДеревоЗначений;

Сейчас проверю

ДеревоЗначений = РеквизитФормыВЗначение("ДеревоЗадач");
18 Wobland
 
01.09.12
20:06
(17) если поймёшь, расскажешь, как работает (9)?
19 simol
 
01.09.12
20:27
(18) попробовал (17) Так работает, секрет (9) неясен, может там предварительно сохраняли пустое дерево для ускорения работы.
20 Wobland
 
01.09.12
20:29
(19)    ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
   Макет = Справочники.ЕдиницыИзмерения.ПолучитьМакет("КлассификаторЕдиницИзмерения");
   Макет.Записать(ИмяВременногоФайла);
   Дерево = ЗначениеИзФайла(ИмяВременногоФайла);

Макет - двоичные данные. верю, что из них получается дерево. как и в случае с Новый Дерево ;)
21 simol
 
01.09.12
20:30
(20)в УФ много странного,вроде уже нравится и на те, очередная непонятка....
22 эцп
 
02.09.12
16:45
(0) Чтобы подобное сработало, нужно чтобы структура (колонок и типов) у дерева на форме и загружаемого дерева совпадала 1 в 1
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший