Имя: Пароль:
1C
1C 7.7
v7: Как проверить если ли у элемента свойство?
0 FREEEEs
 
26.08.11
09:39
Есть справочник контрагенты, в нём есть реквизит который ссылается на разные справочники и в зависимости от обстоятельств, в нём могут присутствовать / отсутствовать некоторые свойства.

Вопрос: Как это узнать?

Например:
Если мы записываем контрагента юр.лицо, то - Справочники.Контрагенты.ЮрФизЛица.ОКПО - есть

Если мы записываем контрагента физ. лицо, то
Справочники.Контрагенты.ЮрФизЛица.ОКПО - нету
1 2S
 
26.08.11
09:40
матаданные?!
2 povar
 
26.08.11
09:40
что узнать то ?
3 FREEEEs
 
26.08.11
09:40
Что метаданные?
4 FREEEEs
 
26.08.11
09:41
Ну я же написал, узнать есть ли в конечном справочнике реквизит, или его нету.
Так как он добавляется в зависимости от лица
5 mehfk
 
26.08.11
09:42
Попытка/Исключение ?
6 chief accountant
 
26.08.11
09:42
ФлагВозврата=Метаданные.Справочник(ОбъектДляПроверки.Вид()).Реквизит(ИмяРеквизитаДляПроверки).Выбран();
7 GStiv
 
26.08.11
09:42
что то типа из типовой ТИС

Функция глЕстьРеквизитШапки(ИмяРеквизита, ВидДокумента) Экспорт    
   
   
   Если ПустоеЗначение(ИмяРеквизита) = 1 Тогда
       Возврат 0;
       
   ИначеЕсли Метаданные.ОбщийРеквизитДокумента(ИмяРеквизита).Выбран() = 1 Тогда
       Возврат 1;
       
   ИначеЕсли ПустоеЗначение(ВидДокумента) = 1 Тогда
       Возврат 0;
       
   ИначеЕсли Метаданные.Документ(ВидДокумента).РеквизитШапки(ИмяРеквизита).Выбран() = 1 Тогда
       Возврат 1;
       
   Иначе
       Возврат 0;
   КонецЕсли;
   
КонецФункции //глЕстьРеквизитШапки()
8 FREEEEs
 
26.08.11
09:44
)))
увы но не всё так просто.

Что то типа:
Дерево = Метаданные.Справочник("Контрагенты").Реквизит("ЮрФизЛицо").Реквизит("ОКПО");

но так не прокатит
9 1Сергей
 
26.08.11
09:44
Если Справочники.Контрагенты.ЮрФизЛица.Вид()=...
10 chief accountant
 
26.08.11
09:44
(7) Документ-то тут причем?
11 FREEEEs
 
26.08.11
09:44
ммм точно, вроде ЮрФизЛица.Вид() поможет,
я забыл он возвращает имя справочника ?
12 povar
 
26.08.11
09:45
(11) читай СП
13 FREEEEs
 
26.08.11
09:46
ЮрФизЛица.Вид() возвращает вид - строка )
14 FREEEEs
 
26.08.11
09:47
ВСЁ СПАСИБО !!

Помогло ЮрФизЛица.Вид(), возвращает имя текущего справочника из туевой кучи