Имя: Пароль:
1C
1С v8
обращение к реквизитам таб частей
,
0 Droning
 
11.05.18
15:50
Для каждого Реквизит из Источник.Метаданные().ТабличныеЧасти.Реквизиты Цикл
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "Имя реквизита табличной части: " + Реквизит.Имя + ".";
        Сообщение.Сообщить();
        
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "Тип реквизита табличной части: " + Реквизит.Тип + ".";
        Сообщение.Сообщить();
        
    КонецЦикла;





поле объекта не обнаружено Реквизит


как правильно обратиться к реквизитам табличных частей?
1 Droning
 
11.05.18
15:50
РеквизитТабличнойЧасти пробовал. может есть где статейка или инфа какая-то по правильности написания обращений к метаданным?
2 lodger
 
11.05.18
15:53
(0) в Источник.Метаданные().ТабличныеЧасти лежит КоллекцияОбъектовМетаданных.
из них тоже надо выбрать в какой из них надо перебирать реквизиты.
3 spacehelp
 
11.05.18
15:56
Для каждого Реквизит из Источник.Метаданные().ТабличныеЧасти.ТабличнаяЧасть1.Реквизиты Цикл
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "Имя реквизита табличной части: " + Реквизит.Имя + ".";
        Сообщение.Сообщить();
        
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "Тип реквизита табличной части: " + Реквизит.Тип + ".";
        Сообщение.Сообщить();
        
    КонецЦикла;


где ТабличнаяЧасть1 - имя конуретной табличной части
4 Droning
 
11.05.18
15:56
lodger
тоесть должно быть Источник.Метаданные().ТабличныеЧасти.Метаданные().Реквизиты ?????? извиняюсь, если хрень написал)
5 Droning
 
11.05.18
15:57
spacehelp а если для всех табличных частей документа?
6 xaozai
 
11.05.18
15:57
(0) Должен быть вложенный цикл по реквизитам.
Т.е., первый цикл перебирает ТЧ, второй реквизиты ТЧ.
7 spacehelp
 
11.05.18
15:58
(4),
    Для Каждого ТабличнаяЧасть Из Источник.Метаданные().ТабличныеЧасти Цикл
        Сообщить("Табличная часть " + ТабличнаяЧасть.Имя);
        Для Каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл
            Сообщить(Реквизит.Имя)
        КонецЦикла;
    КонецЦикла;
8 lodger
 
11.05.18
15:59
(4) хрень написал.
у тебя там какие ТЧ есть в наличии?
если одна единственная, тогда по индексу можно
Источник.Метаданные().ТабличныеЧасти[0].Реквизиты
или Источник.Метаданные().ТабличныеЧасти.Получить(0).Реквизиты

если несколько, тогда надо или узнать индекс (но вдруг его поменяют?) или искать по имени ТЧ.
9 xaozai
 
11.05.18
15:59
+(6)Для каждого ТЧ Из Источник.Метаданные().ТабличныеЧасти Цикл
    Для Каждого Рекв Из ТЧ.Реквизиты Цикл
        ////....
    КонецЦикла;
КонецЦикла;
10 Droning
 
11.05.18
15:59
xaozai а можно поподробнее? может пример? или код?
11 Droning
 
11.05.18
16:00
xaozai спасибо, я понимаю, какой должна быть конструкия. у меня проблема с синтаксисом))) я салага еще)
12 Droning
 
11.05.18
16:21
ВСЕМ СПАСИБО! заработало.

а по поводу синтаксиса-

В документации по встроенному языку не приводится перечень свойств объектов метаданных и коллекций подчиненных объектов. Для ознакомления со структурой объектов и составом свойств необходимо использовать отчет по конфигурации (в режиме Конфигуратор меню Конфигурация – Отчет по конфигурации). Имена, отображаемые в этом отчете, соответствуют именам свойств и коллекций подчиненных объектов.
13 DrWatson
 
11.05.18
16:34
(12) В этом и во многих других случаях помогает Вычислить выражение (Shift-F9) в отладчике. Даже если нет справки вообще, пишешь там Источник.Метаданные() и видишь всё что тебе доступно.
Закон Брукера: Даже маленькая практика стоит большой теории.