проверка существования предопределенного значения

Новая тема
Показывать по 10 20 40 сообщений
"Платформа: 8.2.14.540, толстый клиент
Конфигурация: не имеет значения

Каким образом я могу программно проверить существование предопределенного значения в справочнике кроме как таким образом:
Функция ПредопределенноеЗначениеСуществует(ИдСправочника,ИдЗначения) Попытка  тест=Справочники[ИдСправочника][ИдЗначения];  Возврат Истина; Исключение  Возврат Ложь КонецПопытки; КонецФункции 



Есть ли какой то метод от разработчиков платформы, а то я что то не вижу в документации...
P.S. А как для тонкого клиента?"
Метаданные.Справочники.Банки.Предопределенные

Программист это поймет? (это все, что здесь моего!)

Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("000000015").Предопределенный
У каждого элемента есть рекивзит «Предопределенный»
Не пойдет.
1. Метаданные.Справочники.ВидыКонтактнойИнформации.Предопределенные
Примечание:
Данное свойство всегда имеет значение Неопределено, т.к. во встроенном языке не предусмотрена работа со значением данного свойства.
Получить предопределенные элементы можно с помощью менеджера справочника по имени предопределенного элемента: ПредопределенныйЭлемент = Справочники.Имя_Справочника.Имя_Предопределенного.

2. Перебор элементов - плохой ход, т.к. если элементов тысячи, то это неоптимально.

Задача: узнать есть ли в предопределенных элемент идентифицируемый неким кодом. Пока сделал как написал, но хотелось бы узнать более простой способ
В таком случае это самый быстрый способ получения предопределенного элемента справочника по имени. Но все же не совсем красиво писать код через попытку.
 
Интересно, в каком же случае это понадобилось?
Обработку небольшую сделал для выгрузки сведений из базы. Специфика такова, что работать она должна не в какой то конкретной конфигурации, а в разных типовых от 1С, проще говоря, должна быть унифицированной. Оказалось, что в контактной информации в Комплексной автоматизации сведения о служебном телефоне физического лица идентифицируются предопределенным элементом с id="ТелефонСлужебный", а в Бухгалтерия предприятия id="ТелефонСлужебныйФизЛицо".
Так а зачем же все-таки тебе нужен этот предопределенный, когда синхронизация обычно по Коду или ГУИД-у идет?
"Да нет, это не обмен между базами в формате xml, это задача, сформулированная заказчиком как "выдать данные в dbf файл в поля такие то".
Кусок кода, который поможет понять зачем я обращался к предопределенному элементу и зачем нужно заранее знать есть он такой или нет:


 Запрос.Текст = 
 "ВЫБРАТЬ
 | ФизическиеЛица.ДатаРождения,
 | ФизическиеЛица.ИНН,
 ...
 | ФИОФизЛицСрезПоследних.Фамилия,
 | ФИОФизЛицСрезПоследних.Имя,
 | ФИОФизЛицСрезПоследних.Отчество,
 ...
 | РабочийТелефон.Поле3 КАК НомерРабочегоТелефона,
 | РабочийТелефон.Поле4 КАК ДобавочныйНомерРабочегоТелефона,
 |ИЗ
 | Справочник.ФизическиеЛица КАК ФизическиеЛица
 |  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(, ФизЛицо = &ФизЛицо) КАК ФИОФизЛицСрезПоследних
 |  ПО (ФИОФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка)
 ...
 |  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК РабочийТелефон
 |  ПО ФизическиеЛица.Ссылка = РабочийТелефон.Объект
 |   И (РабочийТелефон.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации."+ИдентификаторТелефонСлужебный+"))
 |ГДЕ
 | ФизическиеЛица.Ссылка = &ФизЛицо";





 




Вот этот самый ИдентификаторТелефонСлужебный в
1С:Комплексная автоматизация 1.1 (1.1.14.1), например имеет идентификатор "ТелефонСлужебный", а в Бухгалтерия предприятия, редакция 2.0 (2.0.27.8) = "ТелефонСлужебныйФизЛица".
Обработка должна работать в "произвольной" конфигурации, поэтому я перед запросом проверяю какой предопределенный элемент из этих двух существует и пользуюсь нужным идентификатором."
А может просто сразу

если ИД="1С:Комплексная автоматизация 1.1 (1.1.14.1)" тогда
  ИдентификаторТелефонСлужебный="ТелефонСлужебный "
иначе
  ИдентификаторТелефонСлужебный="ТелефонСлужебныйФизЛица "
...
конецесли
Не пойдет, завтра 1С приведет к единому стандарту имеющиеся два решения и обработка перестанет работать при таком подходе.
А где гарантия того, что единый стандарт не будет называться совсем по другому?
Читают тему
(гостей: 1)

Быстрый переход