Имя: Пароль:
1C
1С v8
Работа с метаданными
,
0 demiurggig
 
13.12.18
13:16
Есть документ, я перебираю реквизиты табличных частей этого документа и ищу реквизит, тип значения которого - перечисление.СтавкиНДС.

ТабличныеЧасти = ДокументОбъект.Метаданные().ТабличныеЧасти;
Для Каждого ТабличнаяЧасть Из ТабличныеЧасти Цикл
    Реквизиты = ТабличнаяЧасть.Реквизиты;
    Для Каждого Реквизит Из Реквизиты Цикл
        Если Реквизит.Тип.СодержитТип(Тип("ПеречислениеСсылка.СтавкиНДС")) Тогда
            Для Каждого Строка Из ДокументОбъект[ТабличнаяЧасть.Имя] Цикл
                // какие - то действия
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
КонецЦикла;


А можно ли как - то сразу выяснить есть среди реквизитов данной ТЧ нужный мне реквизит, не перебирая их по одному в цикле?
1 Волшебник
 
13.12.18
13:18
Один раз перебери и сохрани
2 exwill
 
13.12.18
13:19
(0) Интуиция?
3 Buster007
 
13.12.18
13:28
в конфигураторе выделяешь перечисление "СтавкиНДС", жмешь правой кнопкой и выбираешь "Поиск ссылок на объект"
результат куда-нибудь копируешь и обрабатываешь
4 SleepyHead
 
гуру
13.12.18
13:28
(0)

Реквизиты = ТабличнаяЧасть.Реквизиты;
Если Реквизиты.Найти(ИмяРеквизитыТабличной)<>Неопределено Тогда
    // есть такой реквизит
5 demiurggig
 
13.12.18
13:37
(4) Мне так нельзя сделать. Я обрабатываю много документов, и кто его знает как в данном документе называется нужный мне реквизит: "СтавкаНДС "или "НДССтавка".

А мне нужно узнать без перебора элементов коллекции есть ли там элемент с типом значения Перечисление.СтавкаНДС.
6 demiurggig
 
13.12.18
13:39
5+ Имеется в виду много видов документов
7 Мыш
 
13.12.18
13:39
(5) > узнать без перебора элементов
Такого функционала в платформе нет. Только перебор.
8 demiurggig
 
13.12.18
13:41
(7) Спасибо, понятно
9 Сияющий в темноте
 
13.12.18
13:44
В чем проблема перебора метаданных,вы же не на каждом документе перебираете,а выбрали тип документа,узнали,что там есть ндс и потом можно выбирать и обрабатывать.
10 Serg_1960
 
13.12.18
13:59
(8) Если Вы обрабатываете много разнотипных документов "за один раз", то результаты ранее сделанного поиска в метаданных можно сохранять и накапливать в какой-либо структуре и многократно использовать.