Коллеги, давно и успешно работал такой код:

```1c
    ПредопределенноеЗначение("Справочник." + _ИдентификаторCOM + "." + РеквCOM.PredefinedDataName);
```

где _ИдентификаторCOM - имя справочника информационной базы, полученное через COMConnector
РеквCOM - ссылка на предопределенный элемент справочника той же базы, возвращалась же ссылка на соответствующий предопределенный элемент справочника, из которого вызывали базу через COMConnector.

На платформе 8.3.9.1818 (может и раньше, просто не видел) с прискорбием обнаружил ошибку, PredefinedDataName (ИмяПредопределенныхДанных) отсутствует - ну нет типа, такого стандартного реквизита, хотя в конфигураторе оно есть и элемент стопудово предопределенный....

Внимание, вопрос:

Как получить значение предопределенного элемента справочника через COM (в смысле получить в вызывающей базе из базы COM соответствующий предопределнный элемент)? Найти по наименованию и коду не предлагать :-) !!!
---
Alex_E,

Позвать, ессно, в удаленной базе
---
Alex_E, если используется БСП, то рекомендация от 1С:
При использовании в конфигурации Библиотеки стандартных подсистем (БСП) версии 2.1.4 и выше рекомендуется использовать функцию ПредопределенныйЭлемент общего модуля ОбщегоНазначенияКлиентСервер, которая возвращает Неопределено для несуществующих в ИБ предопределенных элементов.
Если даже и не используется, то там ничего сложного нет. можно легко перенять. Опуская получение через повторное использование, сам код:

```1c
    Функция ПредопределенныйЭлемент(Знач ПолноеИмяПредопределенного) Экспорт

    ИмяПредопределенного = ВРег(ПолноеИмяПредопределенного);

    Точка = СтрНайти(ИмяПредопределенного, ".");
    ИмяКоллекции = Лев(ИмяПредопределенного, Точка - 1);
    ИмяПредопределенного = Сред(ИмяПредопределенного, Точка + 1);

    Точка = СтрНайти(ИмяПредопределенного, ".");
    ИмяТаблицы = Лев(ИмяПредопределенного, Точка - 1);
    ИмяПредопределенного = Сред(ИмяПредопределенного, Точка + 1);

    ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 Ссылка ИЗ &ПолноеИмяТаблицы ГДЕ ИмяПредопределенныхДанных = &ИмяПредопределенного";
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяТаблицы", ИмяКоллекции + "." + ИмяТаблицы);

    Запрос = Новый Запрос(ТекстЗапроса);
    Запрос.УстановитьПараметр("ИмяПредопределенного", ИмяПредопределенного);

    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
    Возврат Результат.Выгрузить()[0].Ссылка;
    КонецЕсли;

    Возврат Неопределено;

    КонецФункции
```
---
spacecraft, Вы видимо не уловили суть вопроса, есть ссылка на предопределенный элемент справочника в базе, открытой через COM, элемент выглядит в отладчике как COMObject, где взять ПолноеИмяПредопределенного? мне непонятно..., что передавать в функция БСП? Если бы у меня было это имя, я бы вопрос не задавал)))

Может так понятней, из строки:

```1c
    Субконто = ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.ПрочиеДоходыИРасходы.РеализацияПрочегоИмущества");
```

Меня интересует как через COM получить строку "РеализацияПрочегоИмущества", именно для того, чтобы состряпать строчку для получения элемента в "своей" базе.
---
Alex_E,

Позвать, ессно, в удаленной базе
---
ётун, Позвал - бесполезно...
---
ётун,
```1c
    Коннект.Catalogs[РеквCOM.MetaData().Name].GetPredefinedItemName(РеквCOM)
```
  таки дало мне то, что хотелось))) Спасибо!

Ежели кому интерено:
Коннект - это соединение
РеквCOM - ссылка
РеквCOM.MetaData().Name - имя справочника
Catalogs[РеквCOM.MetaData().Name] - искомый менеджер
остальное по тексту
---
Alex_E, хм. да не совсем понял. Тогда вопрос, откуда берется РеквCOM? Откуда известно, что он предопределенный? И что он, к примеру, не отвязан от предопределенных.
---
spacecraft, Потому что я отлаживаю перенос на заведомо известных данных. База , которую я открываю через COM рядом рядом открыта "просто так" в режиме учета, и переношу я конкретный предопределенный элемент справочника, ну и уж чтоб совсем убедить, в ту строчку код попадает через
```1c
    Если РеквCOM.Predefined Тогда
```
 код из первого поста раньше работал, сейчас перестал...

Сюда написал, потому как затык...может завтра само разрулится, а тут надеюсь получить ответ раньше)))) Как там Володя Шарапов говорил - походу глаз замылился, не вижу, как сделать в новой платформе...
---
Alex_E, дело не в 8.3.9. PredefinedDataName в ней работает. Смотреть код или наличие предопределенного имени у элемента удаленной базы. Возможно слетело.
Вот, на 8.3.9.1818:

```1c
    cntr = Новый COMObject("V83.COMConnector");
    connection = cntr.Connect("File="D:\1C\DemoRetail\2.2.4.30";Usr="Администратор узла";");
    СпрГруппыДоступа = connection.Справочники.ГруппыДоступа;
    Выборка = СпрГруппыДоступа.Выбрать();
    Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.PredefinedDataName);
    КонецЦикла;
```

Для предопределенных выводит имя. Для остальных пустую строку.

Еще для "где взять ПолноеИмяПредопределенного?"... можно получить (для примера выше) так:

```1c
    Сообщить(connection.GetPredefinedValueFullName(Выборка.Ссылка));
```

будет строка с полным путем до элемента.

ps. на всякий случай спрошу. Прав пользователю хватает?