Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подчиненный справочник
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
l2d808
Добрый день.1c v7.7 Подскажите пожалуйста: как програмно определить является ли справочник подчиненным и какому справочнику.


 ! 

Правила, п.5.
 



 ! 

Правила, п.3
 
alex040269
Сообщить(Метаданные.Справочник("ТорговыеТочки").Владелец);
l2d808
Цитата(alex040269 @ 06.10.12, 9:37) необходимо зарегистрироваться для просмотра ссылки
Сообщить(Метаданные.Справочник("ТорговыеТочки").Владелец);

Значение не представляет агрегатный объект (Владелец)
Для Сч = 1 по Метаданные.Справочник() Цикл
  ТекСпр = Метаданные.Справочник(Сч).Идентификатор;
  Спр=создатьобъект("Справочник."+ТекСпр);
  Сообщить(Метаданные.Справочник(спр).Владелец);
КонецЦикла;
MATEVI
Цитата(l2d808 @ 06.10.12, 9:59) необходимо зарегистрироваться для просмотра ссылки
Значение не представляет агрегатный объект (Владелец)

Сообщить(Метаданные.Справочник(ТекСпр).Владелец);


А вообще напишите для чего Вам это?


 i 

Перенес тему в программирование. Будьте внимательней!
 
Cthulhu
Процедура НукаПокажитеМнеВсехВладельцевСправочниковЩясЖе()
    Перем Сч; Для Сч=1 По Метаданные.Справочник() Цикл Если Метаданные.Справочник(Сч).Владелец.Выбран()<>0
    Тогда Сообщить("Справочник вида "+Метаданные.Справочник(Сч).Идентификатор+" подчинен Справочнику (-владельцу) вида "
    +Метаданные.Справочник(Сч).Владелец.Идентификатор,"i") КонецЕсли КонецЦикла;
КонецПроцедуры //НукаПокажитеМнеВсехВладельцевСправочниковЩясЖе
l2d808
Цитата(Cthulhu @ 06.10.12, 13:24) необходимо зарегистрироваться для просмотра ссылки
Процедура НукаПокажитеМнеВсехВладельцевСправочниковЩясЖе()
    Перем Сч; Для Сч=1 По Метаданные.Справочник() Цикл Если Метаданные.Справочник(Сч).Владелец.Выбран()<>0
    Тогда Сообщить("Справочник вида "+Метаданные.Справочник(Сч).Идентификатор+" подчинен Справочнику (-владельцу) вида "
    +Метаданные.Справочник(Сч).Владелец.Идентификатор,"i") КонецЕсли КонецЦикла;
КонецПроцедуры //НукаПокажитеМнеВсехВладельцевСправочниковЩясЖе


Очень полный и исчерпывающий ответ. Я уверен. Многим он пригодится!
Cthulhu
Цитата(l2d808 @ 06.10.12, 12:30) необходимо зарегистрироваться для просмотра ссылки
Очень полный и исчерпывающий ответ. Я уверен. Многим он пригодится!

Талааадно. Вот этот, например, код - гораздо "пригодиместее" (и уж точно "полнее"):
Процедура НукаПокажитеМнеВсеСправочникиЩясЖе()
    Перем СчСпр,СпрМД,СчРекв,РеквМД,тЗнач,тСообщение;
    Сообщить(">>>>>>> Перепись населен... тьху, СПРАВОЧКИКОВ этой Конфигурации (а их тут аж "+Метаданные.Справочник()+"):","i");
    Для СчСпр=1 По Метаданные.Справочник() Цикл
        СпрМД=Метаданные.Справочник(СчСпр); тСообщение="= Справочник."+СпрМД.Идентификатор;
        тЗнач=СпрМД.Синоним; тСообщение=тСообщение+"( "+?(ПустоеЗначение(тЗнач)<>0,"без Синонима","Синоним = """+тЗнач+"""");
        тЗнач=СпрМД.Комментарий; тСообщение=тСообщение+" / "+?(ПустоеЗначение(тЗнач)<>0,"без Комментария","Комментарий = """+тЗнач+"""");
        тСообщение=тСообщение+" / Уровней="+СпрМД.КоличествоУровней+" / ";
        тЗнач=СпрМД.Владелец; Если тЗнач.Выбран()<>1 Тогда тСообщение=тСообщение+"без Владельца";
        Иначе тСообщение=тСообщение+"подчинен Справочнику (-владельцу) "+тЗнач.Идентификатор КонецЕсли;
        тСообщение=тСообщение+" / Реквизитов="+СпрМД.Реквизит()+" ):"; Сообщить(тСообщение,".");
        Для СчРекв=1 По СпрМД.Реквизит() Цикл
            РеквМД=СпрМД.Реквизит(СчРекв); тСообщение=СимволТабуляции+"- Реквизит ";
            тЗнач=НРег(Сред(РеквМД.Использование,4)); тСообщение=тСообщение+" "+?(тЗнач="обоих","элемента+группы",тЗнач)
            +" """+РеквМД.Идентификатор+""""; Если РеквМД.Периодический<>0 Тогда
                тСообщение=тСообщение+", Периодический, изменяется"; тЗнач=?(РеквМД.РучноеИзменение<>0," вручную","");
                Если РеквМД.ИзменяетсяДокументами<>0 Тогда тЗнач=тЗнач+?(ПустоеЗначение(тЗнач)<>1," и","")+" Документами" КонецЕсли;
            КонецЕсли;
            тЗнач=РеквМД.Синоним; тСообщение=тСообщение+" ( "+?(ПустоеЗначение(тЗнач)<>0,"без Синонима","Синоним = """+тЗнач+"""");
            тЗнач=РеквМД.Комментарий; тСообщение=тСообщение+" / "+?(ПустоеЗначение(тЗнач)<>0,"без Комментария","Комментарий = """+тЗнач+"""");
            тСообщение=тСообщение+" ), Тип="""+РеквМД.Тип+"""";
            Если РеквМД.Тип="Число" Тогда
                тЗнач=РеквМД.Неотрицательный; Если тЗнач<>0 Тогда тСообщение=тСообщение+" / неотрицательный" КонецЕсли;
                тЗнач=РеквМД.РазделятьТриады; Если тЗнач<>0 Тогда тСообщение=тСообщение+" / с разделением триад" КонецЕсли;
            ИначеЕсли РеквМД.Тип="Строка" Тогда тСообщение=тСообщение+" / Длина="+?(РеквМД.Длина<>0,РеквМД.Длина,"<неограниченная>");
            ИначеЕсли РеквМД.Тип<>"Дата" Тогда тСообщение=тСообщение+" / Вид="""+РеквМД.Вид+"""" КонецЕсли;
            тСообщение=тСообщение+" / Сортировка="""+?(РеквМД.Сортировка<>0,"Да","Нет")+""""
            +" / Отбор="""+?(РеквМД.Отбор<>0,"Да","Нет")+""""; Сообщить(тСообщение,"");
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры //НукаПокажитеМнеВсеСправочникиЩясЖе
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.