Имя: Пароль:
1C
1С v8
Метаданные. Как вывести реквизиты выбранного справочника?
0 Joystas
 
08.08.16
13:08
Доброго времени суток, есть такая задача. 1с 2.5, создаю внешнюю обработку. на форме список значений(поле выбора) через метаданные получаю список справочников. Дак вот при выборе какого либо справочника нужно вывести реквизиты в поле значений(Таблица значений) Не могу понять как вывести их на форму, мож кто чего подскажет???
1 hhhh
 
08.08.16
13:23
ну

Для Каждого Реквизит из МетаданныеДокумента.Реквизиты Цикл

стр = ТЗ Добавить();
Стр.ИмяРеквизита = Реквизит.Имя;
2 hhhh
 
08.08.16
13:24
МетаданныеСправочника конечно
3 Joystas
 
08.08.16
13:24
строки = Результат   ;
                НоваяСтрока = ЭлементыФормы.ТаблицаЗначений1.Значение.Добавить();
                //НоваяСтрока.ЭтоГруппа = Строки.ЭтоГруппа();
                НоваяСтрока.Код = Строки.Код;

Делаю таким образом
4 Joystas
 
08.08.16
13:26
Данные получаю через запрос. тк заранее не известно какой справочник выберет пользователь
5 youalex
 
08.08.16
13:27
(4) ВЫБРАТЬ * ИЗ Справочник.ТвойСправочник
6 DomovoiVShoke
 
08.08.16
13:29
Зачем вообще запрос в такой задаче?
7 DomovoiVShoke
 
08.08.16
13:34
Если реквизиты, то (1), если значения реквизитов, то (5)
8 Joystas
 
08.08.16
13:50
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    Организации.*
               |ИЗ
               |    Справочник.Организации КАК Организации";
        Результат = Запрос.Выполнить().Выбрать();
            ЭлементыФормы.ТаблицаЗначений1.СоздатьКолонки();
          //    
          //Для каждого Строки Из ТаблицаЗначений1 Цикл
          Пока Результат.Следующий() цикл
              строки = Результат   ;
                НоваяСтрока = ЭлементыФормы.ТаблицаЗначений1.Значение.Добавить();
                //НоваяСтрока.ЭтоГруппа = Строки.ЭтоГруппа();
                НоваяСтрока.Код = Строки.Код;
                НоваяСтрока.Наименование = Строки.Наименование;
                НоваяСтрока.Родитель = Строки.Родитель;
                НоваяСтрока.ПометкаУдаления = Строки.ПометкаУдаления;
                НоваяСтрока.Ссылка = Строки.Ссылка;
                НоваяСтрока.Предопреденный = Строки.Предопреденный;
                НоваяСтрока.УникальныйИдентификатор = Строки.УникальныйИдентификатор();

            
                    
            
            КонецЦикла;    
            ЭлементыФормы.ТаблицаЗначений1.Значение = СписокЗначений;
9 Joystas
 
08.08.16
13:51
Весь код, запрос делать чтобы вывести все реквизиты какие есть... разве так не правильно???
10 youalex
 
08.08.16
13:59
(9) у тебя в заголовке - "Метаданные.", что сбивает с толку.

По коду:
Таблица1 = Запрос.Выполнить().Выгрузить();
//уид придется в цикле:
Таблица1.Колонки.Добавить("УникальныйИдентификатор");
Для Каждого СтрокаТЗ из Таблица1  Цикл
СтрокаТЗ.УникальныйИдентификатор = Строка(СтрокаТЗ.УникальныйИдентификатор())
КонецЦикла;

ЭлементыФормы.Таблица1 .СоздатьКолонки();


+ Открой для себя ЗаполнитьЗначенияСвойств()
+ вместо "ЭлементыФормы.ТаблицаЗначений1.Значение.Добавить();" - лучше обращаться напрямую к данным, т.е. ТаблицаЗначений1.Добавить()
11 DomovoiVShoke
 
08.08.16
14:09
(9)в задаче ты пишешь про реквизиты и методанные, т.е. хочешь получить список реквизитов, в частности наименования реквизитов. Потом оказывается что ты хочешь получить значения реквизитов всех элементов справочника.
12 Joystas
 
08.08.16
14:14
Может быть не совсем правильно сформулировал задачу мою, есть список справочников, нужно сделать чтобы при выборе какого либо справочника выходили в таблицу реквизиты(столбцами), а их значения по строкам.
13 youalex
 
08.08.16
14:17
(10) +
СтрокаТЗ.Ссылка.УникальныйИдентификатор()
14 b_ru
 
08.08.16
14:28
А зачем вообще понадобилась такая странная форма?
Ошибка? Это не ошибка, это системная функция.