|
УФ Работа с произвольной формой документа | ☑ | ||
---|---|---|---|---|
0
invest
01.10.15
✎
12:00
|
Доброго дня.
Пытаюсь передать ссылку на документ в произвольную форму (ф2) что бы загрузить данные этого документа в реквизиты формы с дальнейшим манипулированием. Делаю по примеру Рэйфа из УФ. Открыть произвольную форму документа. Но, все мы ничего если бы не Ошибка при вызове метода контекста (ДанныеФормыВЗначение) об = ДанныеФормыВЗначение(ЭтаФорма.Параметры.Объект, Тип("ДокументОбъект.ЗаказКлиента")); по причине: Несоответствие типов (параметр номер '1') |
|||
1
DTXyupyup
01.10.15
✎
12:11
|
ПолучитьФорму("ПроизвольнаяФорма", Новый Структура("Ключ", Ссылка));
|
|||
2
invest
01.10.15
✎
12:12
|
(1) сделано и работает этот шаг. Как дальше параметр получить и по реквизитам распихать?
|
|||
3
Mort
01.10.15
✎
12:17
|
(3) В форме должен быть основной реквизит типа объект. Дальше платформа сделает всё сама.
|
|||
4
invest
01.10.15
✎
12:20
|
(3) Это же произвольная форма, откуда там взяться реквизиту типа Объект?
|
|||
5
hhhh
01.10.15
✎
12:29
|
значит не то передал в ЭтаФорма.Параметры.Объект
|
|||
6
aleks_default
01.10.15
✎
12:29
|
В серверной процедуре получить реквизиты документа, сохранить в структуру и передать как параметр в произвольную форму.
Так как в (0) не получится. Разницу между Ссылкой и Объектом понимаешь? |
|||
7
invest
01.10.15
✎
12:32
|
Написал вот так
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Партнер = Параметры.Объект.Партнер; Документ = Параметры.Объект.Ссылка; Для Каждого СтрокаДокумента Из Документ.Товары Цикл НоваяСтрока = Товары.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаДокумента); КонецЦикла; КонецПроцедуры Заработало. По ламерски конечно, но задачу надо решать как то. |
|||
8
invest
01.10.15
✎
12:34
|
(6) еще бы не понимать. 10 лет на 1с уже. Ты мне только объявни в какой момент переданная ссылка превращается в объект?, что то я этого понять немогу.
|
|||
9
aleks_default
01.10.15
✎
12:35
|
по-ламерски вот это "Параметры.Объект.Ссылка;"
а так, сгодится |
|||
10
invest
01.10.15
✎
12:40
|
(9) В принципе она и так работает,
Документ = Параметры.Объект; |
|||
11
aleks_default
01.10.15
✎
12:41
|
У тебя вообще объекта нет. Объект - это мутабельное значение, а у тебя есть ссылка на документ, по которой ты получаешь его реквизиты. При обращении через точку ("Ссылка.") система формирует доп запрос к ревизитам документа).
10 лет в 1с прошли зря. |
|||
12
Kiks
01.10.15
✎
12:46
|
Метод КопироватьДанныеФормы()
|
|||
13
invest
01.10.15
✎
12:48
|
(11) теперь обьясни мне почему выходить ошибка описанная в (0) ?
|
|||
14
aleks_default
01.10.15
✎
12:51
|
(13)Какой тип у "ЭтаФорма.Параметры.Объект"?
|
|||
15
invest
01.10.15
✎
12:52
|
(14) ДокументСсылка.ЗаявкаКлиента
|
|||
16
aleks_default
01.10.15
✎
12:52
|
(15) вопросы еще остались?
|
|||
17
invest
01.10.15
✎
12:57
|
(16) т.е. в функцию ДанныеФормыВЗначение, следовало передать переменную типа ДокументОбъект?
|
|||
18
aleks_default
01.10.15
✎
14:08
|
(17) Нет. Не получиться передать в форму мутабельное значение через параметры формы. Делай как в (7). Только убери, ради бога, "Документ = Параметры.Объект.Ссылка;
", замени на "Документ = Параметры.Объект". Или если ты вызываешь произвольную форму из формы объекта документа, то воспользуйся (12). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |