Существует ли предопределенный элемент

1. shnurov 15.05.17 04:37 Сейчас в теме
Добрый день. Подскажите каким способом можно определить создан ли предопределенный элемент справочника?
Пробовал через запрос типа
"ВЫБРАТЬ
	|	Константы.Значение
	|ИЗ
	|	Справочник.Константы КАК Константы
	|ГДЕ
	|	Константы.ИмяПредопределенныхДанных = &ИмяПредопределенныхДанных" 
, дает исключение. Делать через
Попытка Исключение КонецПопытки
не хочется. т.к. надеюсь что есть другие методы.
По теме из базы знаний
Найденные решения
12. Alexey_ 27 15.05.17 09:00 Сейчас в теме
Метаданные.Справочники.ИмяСправочника.ПолучитьИменаПредопределенных()
demONx7; gea81; Rabot; fixin; sml; opkc; naumenko_alex@mail.ru; +7 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. KRV_it 15.05.17 05:02 Сейчас в теме
Нужна проверка на какой то конкретный элемент справочника, или в принципе, есть ли предопределенный?
3. shnurov 15.05.17 05:24 Сейчас в теме
(2)Нужен элемент где ИмяПредопределенныхДанных именно такое, т.е. определить есть именно такой предопределенный элемент или нет. Попробовал
Справочники.Константы.НайтиПоРеквизиту("ИмяПредопределенныхДанных", "ИскомоеИмя");

ругается.
4. KRV_it 15.05.17 06:29 Сейчас в теме
А если конструкцию типа "Справочники.Должности.НайтиПоНаименованию("Программист 1С").Предопределенный" Если есть такой, и он предопределенный, то выдаст Истину.
5. shnurov 15.05.17 06:45 Сейчас в теме
(4)Не пойдет, мне нужно именно ИмяПредопределенныхДанных, т.к. наименование может пользователь изменить (хоть в моем случае такого не будет, но я стараюсь писать универсальный код).
6. KRV_it 15.05.17 06:50 Сейчас в теме
Не пойму немного, у Вас в исходном запросе указано &ИмяПредопределенныхДанных, что мешает здесь воспользоваться подобным?
7. shnurov 15.05.17 07:35 Сейчас в теме
(6)Получите исключение если нет такого предопределенного значения(я же вроде написал об этом).
 Подобно 

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


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

 ЗначениеЗаполнено() 


если нет такого, сделаю через попытку.
9. KRV_it 15.05.17 07:51 Сейчас в теме
Я имела в виду "Справочники.Должности.НайтиПоНаименованию(ИмяПредопределенныхДанных).Предопределенный". Вы же как то все равно наименование передавать собрались.
11. shnurov 15.05.17 08:03 Сейчас в теме
(9) Найти по наименованию не пойдет, выше я уже написал об этом(наименование <>ИмяПредопределенныхДанных, это разные реквизиты).
12. Alexey_ 27 15.05.17 09:00 Сейчас в теме
Метаданные.Справочники.ИмяСправочника.ПолучитьИменаПредопределенных()
demONx7; gea81; Rabot; fixin; sml; opkc; naumenko_alex@mail.ru; +7 Ответить
13. shnurov 15.05.17 09:59 Сейчас в теме
(12) Годно, а я в отладчике смотрел Метаданные.Справочники.Константы.Предопределенные, но там неопределено, а методы не посмотрел.
14. dtfmffff 26.06.20 12:10 Сейчас в теме
(12) Спасибо.
Функция ПредопределенныйСуществует(ИмяСправочника, ИмяПредопределенногоЭлемента) Экспорт
ИменаПредопределенных = Метаданные.Справочники[ИмяСправочника].ПолучитьИменаПредопределенных();
Возврат ИменаПредопределенных.Найти(ИмяПредопределенногоЭлемента) <> Неопределено;
КонецФункции
Sintson; Tatyana_012345; Rabot; fixin; +4 Ответить
18. fixin 4261 03.10.23 19:40 Сейчас в теме
(14) В более общем виде:

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

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

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


Показать
15. gufadmin 6 24.03.21 16:21 Сейчас в теме
16. FatPanzer 24.03.21 16:23 Сейчас в теме
17. gufadmin 6 24.03.21 16:24 Сейчас в теме
(16) Извиняюсь, не туда написал. А как сообщение удалить не знаю...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот