![]() |
![]() |
![]() |
|
ДанныеФормыВЗначение, ЗначениеВДанныеФормы и тип ДанныеФормыДерево | ☑ | ||
---|---|---|---|---|
0
CagoBHuK
21.01.11
✎
13:54
|
Глобальный контекст (Global context)
ДанныеФормыВЗначение (FormDataToValue) Синтаксис: ДанныеФормыВЗначение(<Объект>, <Тип>) Параметры: <Объект> (обязательный) Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура; ДанныеФормыДерево. Данные формы. <Тип> (обязательный) Тип: Тип. Тип значения, получаемого из данных формы. Возвращаемое значение: Тип: Произвольный. Описание: Преобразует данные формы в объект прикладного типа. Доступность: Сервер, толстый клиент. Примечание: Нельзя преобразовать в объект типа Табличная часть. Все хорошо. Обратите внимание на то, что "Объект" может принимать тип "ДанныеФормыДерево". Глобальный контекст (Global context) ЗначениеВДанныеФормы (ValueToFormData) Синтаксис: ЗначениеВДанныеФормы(<Значение>, <Объект>) Параметры: <Значение> (обязательный) Тип: Произвольный. Значение прикладного типа, для которого определено преобразование в данные формы. <Объект> (обязательный) Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура. Данные формы, имеющие совместимую структуру. Описание: Преобразует объект прикладного типа в универсальный объект данных. Доступность: Сервер, толстый клиент. Все плохо. Преобразовав данные формы типа "ДанныеФормыДерево" в объект прикладного типа, обратно в данные формы этот объект уже не преобразовать. Типа "ДанныеФормыДерево" почему-то у параметра "Объект" уже нет. Вопрос: каким образом мне обработать дерево значений, находящееся в реквизите формы? |
|||
1
Defender aka LINN
21.01.11
✎
14:00
|
"Преобразовав данные формы типа "ДанныеФормыДерево" в объект прикладного типа, обратно в данные формы этот объект уже не преобразовать." - таки шо ви говорите...
|
|||
2
CagoBHuK
21.01.11
✎
14:24
|
По крайней мере так нам вещает синтаксис-помощник. Я не зря привел его вещания в (1). Если у тебя есть противоположный опыт, будь любезен, поделись им.
|
|||
3
Defender aka LINN
21.01.11
✎
15:54
|
(2) Очуметь. (1) - это МОЙ пост. Ткни пальцем, где в СП написано, что дерево обратно преобразовать нельзя.
|
|||
4
acsent
21.01.11
✎
16:02
|
Кстати чем отличается ДанныеФормыВЗначение и РеквизитФормыВЗначение?
|
|||
5
CagoBHuK
21.01.11
✎
16:57
|
Второе помещает в реквизит с заведомо известным именем, а первое в указанный объект данных. Тем не менее, первое не работает для дерева значений, что весьма пичалька, а переделывать код под второе нет ни времени, ни желания.
|
|||
6
CagoBHuK
31.01.11
✎
12:34
|
(3) А ты ПОПРОБУЙ его преобразовать. Мне интересно, что у тебя получится.
|
|||
7
Defender aka LINN
31.01.11
✎
20:14
|
(6) Я таки пробовал, и мне понравилось. А чем можете похвастаться вы?
|
|||
8
CagoBHuK
01.02.11
✎
10:02
|
ЗначениеВДанныеФормы (ValueToFormData)
Синтаксис: ЗначениеВДанныеФормы(<Значение>, <Объект>) Параметры: <Значение> (обязательный) Тип: Произвольный. Значение прикладного типа, для которого определено преобразование в данные формы. <Объект> (обязательный) Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура. Данные формы, имеющие совместимую структуру. У меня падает на этом операторе, когда я пытаюсь выполнить его со следующими параметрами: Значение - Дерево значений, только что извлеченное из данных формы оператором ДанныеФормыВЗначение, Объект - объект данных формы, имеющий тип ДанныеФормыДерево. Я повторюсь, что если открыть синаксис-помощник, то для этого оператора нет типа параметра Объект ДанныеФормыДерево. Покажи нам свой код. Может быть я чего-то не понимаю? |
|||
9
detec
01.02.11
✎
10:40
|
По поводу (0) могу сказать, что данные методы следует использовать только в случае _крайней_ необходимости. Например, во внешних обработках, которые не используют данные инфобазы никоим образом, нчиего оттуда не читают и не сохраняют. Если нужна тяжёлай работа с данными на клиенте, то предпочтительней ДанныеФормыКоллекция. С ДанныеФормыДерево очень геморно, т.к. поддерживаемых методов кот наплакал.
|
|||
10
Defender aka LINN
01.02.11
✎
11:12
|
(8) "У меня падает на этом операторе" - обожаю такие фразы. А если открыть глаза и прочитать сообщение, с которым оно падает?
|
|||
11
CagoBHuK
01.02.11
✎
11:38
|
Итак, живой пример. Выполняю строку кода:
ЗначениеВРеквизитФормы(ДЗ, ЭтаФорма[НазваниеДерева]); ДЗ - тип ДеревоЗначений. ЭтаФорма[НазваниеДерева] - ДанныеФормыДерево. {Справочник.Контрагенты.Форма.SA_ФормаСпискаИВыбораУпр.Форма(353)}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы) ЗначениеВРеквизитФормы(ДЗ, ЭтаФорма[НазваниеДерева]); по причине: Несоответствие типов (параметр номер '2') |
|||
12
Mitriy
01.02.11
✎
11:42
|
(11) а зачем пихать невпих_уемое?
|
|||
13
CagoBHuK
01.02.11
✎
12:03
|
(12) Что значит невпих_уемое? Я выполняю кусок кода:
ДЗ = ДанныеФормыВЗначение(ЭтаФорма[НазваниеДерева], Тип("ДеревоЗначений")); ЗначениеВДанныеФормы (ДЗ, ЭтаФорма[НазваниеДерева]); Оно разве не должно быть конвертируемо туда-обратно? В (11) я ошибся и написал неправильный оператор. Тем не менее, ситуация не изменилась. {Справочник.Контрагенты.Форма.SA_ФормаСпискаИВыбораУпр.Форма(356)}: Ошибка при вызове метода контекста (ЗначениеВДанныеФормы) ЗначениеВДанныеФормы(ДЗ, ЭтаФорма[НазваниеДерева]); по причине: Недопустимое значение параметра (параметр номер '2') |
|||
14
Mitriy
01.02.11
✎
12:53
|
(13)
&НаКлиенте Процедура Команда1(Команда) Обработать(); КонецПроцедуры &НаСервере Процедура Обработать() ДЗ = ДанныеФормыВЗначение(Дерево, Тип("ДеревоЗначений")); ЗначениеВДанныеФормы(ДЗ, Дерево); КонецПроцедуры все работает и не жужжит... попробуй кеш почистить... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |