Имя: Пароль:
1C
1С v8
Проверить тип СправочникМенеджер
0 mistеr
 
07.01.21
17:02
Как можно проверить, что тип значения переменной СправочникМенеджер (любого справочника)?
1 hhhh
 
07.01.21
17:15
(0) Если лев(СокрЛП(ТипЗнч(Переменная)), 19) = "Справочник менеджер"
2 SleepyHead
 
гуру
07.01.21
17:17
(0) Что значит "проверить" ?
3 youalex
 
07.01.21
17:22
как-то так можно:

    мдСправочника  = Метаданные.НайтиПоТипу(ТипЗнч(СпрМенеджер));
    ЭтоМенеджер = мдСправочника <> Неопределено
                И Метаданные.Справочники.Содержит(мдСправочника)
                И СпрМенеджер = Справочники[мдСправочника.Имя];

Не проще содержание переменной контролировать?
4 mistеr
 
07.01.21
18:13
(3) Да, похоже проще контролировать. :)
5 mistеr
 
07.01.21
18:13
(1) Зависит от локали?
6 ДедМорроз
 
07.01.21
19:08
Для менеджера должно сработать Метаданные.НайтиПоТипу,а потом просто проверить тип для уже известного элемента метаданных?
7 Малыш Джон
 
07.01.21
19:12
(3) >> И СпрМенеджер = Справочники[мдСправочника.Имя]

Это контрольная проверка что ли? ))
8 youalex
 
07.01.21
19:38
(7) это и есть собственно проверка. Что это именно менеджер, а не ссылка или объект.
9 ДедМорроз
 
07.01.21
19:48
Самый простой вариант один раз все менеджеры в соответствие загнать и из него делать Получить,быстрее сложно.
10 TormozIT
 
гуру
08.01.21
02:20
Я применяю способ - получить тип любого менеджера, преобразовать его к строке, разбить ее на фрагменты, сделать то же самое с исследуемым типом, сравнить контрольный фрагмент обоих массивов.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший