Имя: Пароль:
1C
 
Как проверить наличие Справочники.Спр1[ИмяЭлемента] ?
,
0 bolobol
 
11.12.19
14:02
День добрый!

Подскажите, пожалуйста, как возможно проверить наличие предопределённого элемента, чтобы Справочники.Спр1[ИмяЭлемента] не выпадало в ошибку?

Спасибо!
1 asady
 
11.12.19
14:05
(0) Запросом можно
2 Droning1C
 
11.12.19
14:08
загони в попытку
3 singlych
 
11.12.19
14:08
если он есть в конфе, но нет в ИБ, то ОбщегоНазначения.ПредопределенныйЭлемент()
если и в конфе нет, то наверно тока в метаданные смотреть ну или попытка
4 bolobol
 
11.12.19
14:18
(1) Ну да, точно! Спасибо! Сейчас опробуем...

(3) В Метаданных - не понял как смотреть.
5 dka80
 
11.12.19
14:21
Справочники.ТвойСправочники.Метаданные().Реквизиты.найти("Твой реквизит")
6 singlych
 
11.12.19
14:25
(4) хм, а и правда, через метаданные не посмотришь. Там есть свойство Предопределенные, но "данное свойство всегда имеет значение Неопределено, т.к. во встроенном языке не предусмотрена работа со значением данного свойства.". Отпадает.
7 hhhh
 
11.12.19
14:29
(4) а зачем велосипед? В модуле менеджера справочника посмотри, там должно всё быть.
8 bolobol
 
13.12.19
12:32
А не работает запросом! В запросе ".ИмяПредопределенныхДанных = &ИмяПредопределенныхДанных" - выпавдает на .Выполнить() с ошибкой "Предопределённого элемента не существует".

Т.е. варианта без сваливания в ошибку не существует, получается?
9 acht
 
13.12.19
14:07
Затычка = Новый Структура(ИмяЭлемента, 1);
ЗаполнитьЗначенияСвойств(Затычка, Справочники.Спр1);
Если Затычка.ИмяЭлемента = 1 Тогда не существует
10 bolobol
 
13.12.19
14:27
(9) Ээээ... не догнал. У меня же нет элемента, у меня задача проверить - есть ли такой предопределённый элемент. Предлагается все элементы справочника циклом прошерстить?
11 acht
 
13.12.19
14:31
(10) Я в последней строке скобки забыл.

Если Затычка[ИмяЭлемента] = 1 Тогда
12 Mankubus
 
13.12.19
14:32
(8) а если выбрать все предопределенные во вложенный запрос, а условие ГДЕ поставить на результат вложенного?
13 unenu
 
13.12.19
14:48
(10) Выражение    Значение    Тип
Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений.ПолучитьИменаПредопределенных().Найти("Куку")        Неопределено
Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений.ПолучитьИменаПредопределенных().Найти("УдалитьДокумент_БольничныйЛист")    3    Число
14 13_Mult
 
13.12.19
14:49
ПредопределенноеЗначение("Справочник.МойСправочник.МойПредопределенныЭлемент")
15 bolobol
 
13.12.19
15:11
О, да!!

Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений.ПолучитьИменаПредопределенных().Найти("Куку")

- Работает!


Спасибо! Всем спасибо!
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший