Добрый день. Подскажите каким способом можно определить создан ли предопределенный элемент справочника?
Пробовал через запрос типа

```1c
    "ВЫБРАТЬ
    | Константы.Значение
    |ИЗ
    | Справочник.Константы КАК Константы
    |ГДЕ
    | Константы.ИмяПредопределенныхДанных = &ИмяПредопределенныхДанных"
```
, дает исключение. Делать через
```1c
    Попытка Исключение КонецПопытки
```
 не хочется. т.к. надеюсь что есть другие методы.
---
Метаданные.Справочники.ИмяСправочника.ПолучитьИменаПредопределенных()
---
Нужна проверка на какой то конкретный элемент справочника, или в принципе, есть ли предопределенный?
---
Нужен элемент где ИмяПредопределенныхДанных именно такое, т.е. определить есть именно такой предопределенный элемент или нет. Попробовал
```1c
    Справочники.Константы.НайтиПоРеквизиту("ИмяПредопределенныхДанных", "ИскомоеИмя");
```

 ругается.
---
А если конструкцию типа "Справочники.Должности.НайтиПоНаименованию("Программист 1С").Предопределенный" Если есть такой, и он предопределенный, то выдаст Истину.
---
Не пойдет, мне нужно именно ИмяПредопределенныхДанных, т.к. наименование может пользователь изменить (хоть в моем случае такого не будет, но я стараюсь писать универсальный код).
---
Не пойму немного, у Вас в исходном запросе указано &ИмяПредопределенныхДанных, что мешает здесь воспользоваться подобным?
---
Получите исключение если нет такого предопределенного значения(я же вроде написал об этом).
```1c
    Подобно
```

 использовать не дает,

```1c
    В
```

также дает исключение.
---
Не нравится имя справочника "Константы" - т.к. это зарезервированное слово: ИМХО - обзывать так справочник не есть хорошо.
Вопрос - если в Вашем запросе сделать условие "Константы.Предопределенный = Истина", и включить в получаемые поля "ИмяПредопределенныхДанных", затем получить через Запрос.Выполнить().Выгрузить() таблицу значений и искать в колонке в этой таблице строку исключений быть не должно...
---
Спасибо за замечание на счет констант, но он и так у меня называется по другому, здесь просто название для примера. Ваш вариант не годится, проще и быстрее сделать через попытку, чем выгружать в таблицу, а потом искать по колонке. Но я уже выше написал что не хочу так делать, меня интересует простое решение типа

```1c
    ЗначениеЗаполнено()
```

если нет такого, сделаю через попытку.
---
Я имела в виду "Справочники.Должности.НайтиПоНаименованию(ИмяПредопределенныхДанных).Предопределенный". Вы же как то все равно наименование передавать собрались.
---
Найти по наименованию не пойдет, выше я уже написал об этом(наименование <>ИмяПредопределенныхДанных, это разные реквизиты).
---
Метаданные.Справочники.ИмяСправочника.ПолучитьИменаПредопределенных()
---
Годно, а я в отладчике смотрел Метаданные.Справочники.Константы.Предопределенные, но там неопределено, а методы не посмотрел.
---
Спасибо.
Функция ПредопределенныйСуществует(ИмяСправочника, ИмяПредопределенногоЭлемента) Экспорт
 ИменаПредопределенных = Метаданные.Справочники[ИмяСправочника].ПолучитьИменаПредопределенных();
 Возврат ИменаПредопределенных.Найти(ИмяПредопределенногоЭлемента) <> Неопределено;
КонецФункции
---
В более общем виде:

```1c
    Функция ЕстьПредопределенноеЗначениеКласса(КлассМЧ, Вид, ИмяПредопределенного)
    Возврат Метаданные[КлассМЧ][Вид].ПолучитьИменаПредопределенных().Найти(ИмяПредопределенного) <> Неопределено;
    КонецФункции

    Функция ПредопределенноеЗначениеКласса(МенеджерМЧ, Вид, ИмяПредопределенного)
    Возврат МенеджерМЧ[Вид][ИмяПредопределенного];
    КонецФункции

    Если ЕстьПредопределенноеЗначениеКласса("Справочники", "НаборыДополнительныхРеквизитовИСведений", "Справочник_Номенклатура") Тогда
    //Розница 2.3
    КонфНаборДопРеквизитовНоменклатуры = ПредопределенноеЗначениеКласса(Справочники, "НаборыДополнительныхРеквизитовИСведений", "Справочник_Номенклатура")
    КонецЕсли;
```
---
1
---
И?
---
Извиняюсь, не туда написал. А как сообщение удалить не знаю...