Имя: Пароль:
1C
 
УФ ЗначениеВДанныеФормы
0 SFilchakov
 
18.02.16
21:09
Дико извиняюсь, тема затасканная и инфы полно, но как то не выходит, делаю по СП.

ЗначениеВДанныеФормы(<Значение>, <Объект>)
Параметры:

<Значение> (обязательный)

Тип: Произвольный.
Значение прикладного типа, для которого определено преобразование в данные формы.
<Объект> (обязательный)

Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура.
Данные формы, имеющие совместимую структуру.
Описание:

Преобразует объект прикладного типа в универсальный объект данных.

Доступность:

Сервер, толстый клиент, мобильное приложение(сервер).


///////
//КОД

&НаСервере
Процедура ЗаполнитьПоЗаказу()
    Запрос = Новый Запрос("ВЫБРАТЬ
    |    ЕСТЬNULL(НоменклатураДополнительныеРеквизиты.Значение, ЗНАЧЕНИЕ(ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПустаяСсылка)) КАК Элемент,
    |    ЗаказПокупателяЗапасы.Номенклатура,
    |    ЗаказПокупателяЗапасы.Характеристика,
    |    ЗаказПокупателяЗапасы.Количество КАК Количество,
    |    ЛОЖЬ КАК УжеСоздан,
    |    ИСТИНА КАК Комплектовать,
    |    ЛОЖЬ КАК КомплектоватьОтдельно
    |ИЗ
    |    Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
    |        ПО ЗаказПокупателяЗапасы.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка
    |            И (НоменклатураДополнительныеРеквизиты.Свойство = &СвойствоЭлемент)
    |ГДЕ
    |    ЗаказПокупателяЗапасы.Ссылка = &Заказ");
    Запрос.УстановитьПараметр("Заказ",Объект.Заказ);
    Запрос.УстановитьПараметр("СвойствоЭлемент",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЭлементКонструкции);
    ДеревоЗначений = Запрос.Выполнить().Выгрузить();
    ЗначениеВДанныеФормы(ДеревоЗначений,Объект.ЭлементыКонструкции);
КонецПроцедуры

///////////
///Объект.ЭлементыКонструкции - это таблица объекта обработки

////
ДеревоЗначений - тип(ТаблицаЗначений)
Объект.ЭлементыКонструкции - Тип(ДанныеФормыКоллекция)

Вылетает ошибка:
{Форма.Форма.Форма(43)}: Ошибка при вызове метода контекста (ЗначениеВДанныеФормы)
    ЗначениеВДанныеФормы(ДеревоЗначений,Объект.ЭлементыКонструкции);
по причине:
Недопустимое значение параметра (параметр номер '2')



//////////////
Реквизиты запроса и таблицы обработки совпадают по наисенованиям и типам.
Что не так?
1 GROOVY
 
18.02.16
21:10
Недопустимое значение параметра (параметр номер '2')
2 SFilchakov
 
18.02.16
21:18
Спасибо конечно, но как то не помогло.
3 GROOVY
 
18.02.16
21:19
Если ничего во втором параметре не поменять - не поможет ничего.
4 SFilchakov
 
18.02.16
21:22
Это ясно, что в нем дело.
Что в нем может быть не так?
Тип(ДанныеФормыКоллекция)
Структура реквизитов одинаковая.
5 SFilchakov
 
18.02.16
21:23
Одинаковая с объект.ЭлементыКонструкции
Все наименования и типы реквизитов ТЗ(запроса) и ТЧ(Обработки) одинаковые.
6 mikecool
 
18.02.16
21:23
(4) это хокку?
7 SFilchakov
 
18.02.16
21:29
Ладно, да это хокку!
Что с параметром 2 делать то?
8 GROOVY
 
18.02.16
21:33
Передать параметр совместимый по структуре.
А вообще, мне кажется что ты просто все не так делаешь. Зачем ты конвертируешь данные?
9 SFilchakov
 
18.02.16
21:35
(8) Хочу сразу заполнить данные формы без перебора.
10 Мимохожий Однако
 
18.02.16
21:37
Если нет примеров по использованию команды, то достаточно в типовой конфигурации запустить полный поиск по этой команде и подобрать из кучи наиболее близкий для себя.
11 Drac0
 
18.02.16
22:01
(5) Значит не одинаковые. А чтобы не ипать себе мозг используй ТЧ.Загрузить(Запрос.Выполнить().Выгрузить()). Заодно глянешь, что не так было.
12 hhhh
 
18.02.16
23:38
(9) всё-таки там разные типы у вас. Табличная часть и таблица значений
13 Drac0
 
18.02.16
23:45
(12) ЗначениеВДанныеФормы() как раз и предназначена для преобразования прикладных типов и универсальных коллекций в данные формы. У него косяк с полями либо их типами. Как проще сделать написал в (11) .
14 hhhh
 
19.02.16
00:50
(13) намекаешь, что ТЗ и ТЧ - это один и тот же тип?
15 Drac0
 
19.02.16
06:31
(14) нет. Перечитай еще раз или открой СП.
16 SFilchakov
 
19.02.16
08:11
Использовал метод ЗначениеВРеквизитФормы. И прокатило.
Он заполняет даже с ошибками в типе, просто оставляет поля пустыми. Действительно был косяк в типе. Всем спасибо!
(11) тоже работает.