Прошу вашей помощи. Не установить перечисление через КОМ соединение
Пытаюсь сделать так

```1c
    НовСправочник[строка.РеквезитВторойБазы] = ComObject.Перечисления[ИмяОбъекта].НДС18;
```

```1c
    НовСправочник =ComObject.Справочники[Элементы.СправочникВторойБазы.Заголовок].СоздатьЭлемент();
```
---
```1c
    Запрос2 = ComObject.NewObject("Запрос");

    //ИмяОбъекта
    ШаблонЗапроса2 = "
    |ВЫБРАТЬ
    | #Таблица.Ссылка КАК Ссылка
    |ИЗ
    | #Таблица
    |";

    ТекстЗапроса2 = ";

    ТекстЗапроса2 = ТекстЗапроса2 + ?(ПустаяСтрока(ТекстЗапроса2), ", "
    |ОБЪЕДИНИТЬ ВСЕ
    |")
    + СтрЗаменить(ШаблонЗапроса, "#Таблица", "Перечисление." + ИмяОбъекта);
    Запрос2 = Новый Запрос;
    Запрос2.Текст = ТекстЗапроса2;
    ТаблЗапроса = Запрос2.Выполнить().Выгрузить();
    Для Каждого Стр Из ТаблЗапроса Цикл
    Если Строка(Стр.Ссылка) = Строка(Выборка.Ссылка[строка.РеквезитВторойБазы]) тогда
    НовСправочник[строка.РеквезитВторойБазы] = Стр.Ссылка;
    Прервать;
    КонецЕсли;

    КонецЦикла;
```
---
```1c
    НовСправочник[строка.РеквезитВторойБазы] = XMLString(ComObject.Перечисления[ИмяОбъекта].НДС18);
```
---
(2) НовСправочник[строка.РеквезитВторойБазы] = XMLString(ComObject.Перечисления[ИмяОбъекта].НДС18);

Пробовал
---
Только вот так
ComObject.XMLString(ComObject.Перечисления[ИмяОбъекта].НДС18)
---
Делайте так:

```1c
    НовСправочник[строка.РеквезитВторойБазы] = ComObject.Перечисления[ИмяОбъекта]["НДС18"];
```
---
```1c
    Функция ИБОткрыть(ИБ,ССообщениями=Истина,Коннектор=Истина) Экспорт
    Попытка
    Если Коннектор Тогда
    Соединение=Новый COMОбъект("V83.COMConnector");
    Иначе
    Соединение=Новый COMОбъект("V83.Application");
    КонецЕсли;
    Srvr=ИБ.КластерСерверов;
    Ref=ИБ.ИмяИнформационнойБазы;
    Пользователь=ИБ.Пользователь;
    Пароль=ИБ.Пароль;
    База=Соединение.Connect("Srvr=""+Srvr+"";Ref=""+Ref+"";Usr=""+Пользователь+"";Pwd=""+Пароль+"";");
    Если Не Коннектор Тогда
    База=Соединение;
    КонецЕсли;
    Исключение
    Сообщ="Ошибка подключения к информационной базе ""+ИБ+"". "+ОписаниеОшибки();
    Если ССообщениями Тогда
    Сообщить(Сообщ);
    КонецЕсли;
    База=Неопределено;
    ВызватьИсключение Сообщ;
    КонецПопытки;
    Возврат База;
    КонецФункции

    Функция ПолучитьЗначениеПеречисления(Подключение,ЗначениеПеречисления) Экспорт
    Попытка
    Имя=Подключение.XMLString(ЗначениеПеречисления);
    Синоним=Подключение.String(ЗначениеПеречисления);
    ИмяПеречисления=ЗначениеПеречисления.Метаданные().Имя;
    Возврат Перечисления[ИмяПеречисления][Имя];
    Исключение
    Возврат Неопределено;
    КонецПопытки;
    КонецФункции

    Процедура ЗагрузкаИзвещенийИзУХ()

    УХ=ИБОткрыть(Справочники.КФ_ИнформационныеБазы.УХ30,Истина);

    //...

    СтавкаНДС=ПолучитьЗначениеПеречисления(УХ,УХВыборка.СтавкаНДС);

    КонецПроцедуры
```
---
Подключение И в каком моменте он на реквизит устанавливает значение?
---
Пример для получения данных в текущей базе из другой базы. Пример наоборот - создание данных в другой базе из текущей:

```1c
    Функция Соединение_СтавкаНДСПоПредставлению(Соединение,Представление)
    Запрос=Соединение.NewObject("Запрос");
    Запрос.Текст=
    "ВЫБРАТЬ
    | СтавкиНДС.Ссылка КАК Ссылка,
    | ПРЕДСТАВЛЕНИЕ(СтавкиНДС.Ссылка) КАК Наименование
    |ИЗ
    | Перечисление.СтавкиНДС КАК СтавкиНДС";

    Выборка=Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    Ставка=Выборка.Ссылка;
    А=Строка(Выборка.Наименование);
    Если А=Представление Тогда
    Возврат Ставка;
    КонецЕсли;
    А=СтрЗаменить(А,"%",");
    Если А=Представление Тогда
    Возврат Ставка;
    КонецЕсли;
    А=СтрЗаменить(А," ",");
    Если А=Представление Тогда
    Возврат Ставка;
    КонецЕсли;
    КонецЦикла;
    Возврат Соединение.Перечисления.СтавкиНДС.ПустаяСсылка();
    КонецФункции

    НовСправочник=ComObject.Справочники[Элементы.СправочникВторойБазы.Заголовок].СоздатьЭлемент();

    НовСправочник[строка.РеквезитВторойБазы]=Соединение_СтавкаНДСПоПредставлению(ComObject,"18%")
```
---
Все написано правильно, смотри текстовые значения переменных-имен реквизитов и справочников.
---
По другому решил вопрос. Может кому-то понадобится :

```1c
    Запрос = ComObject.NewObject("Запрос");
    Запрос.Текст = "ВЫБРАТЬ
    | СтавкиНДС.Ссылка КАК Ссылка
    |ИЗ
    | Перечисление.СтавкиНДС КАК СтавкиНДС";
    ТаблЗапроса = Запрос.Выполнить().Выгрузить();
    Для Каждого Стр Из ТаблЗапроса Цикл
    НовСправочник[строка.РеквезитВторойБазы] = Стр.СтавкаНДССсылка;

    КонецЦикла;
```
---
Все подряд в цикле присваиваете?
---
Нет, там стоит свое условие
---
Должно быть эквивалентно ComObject.Перечисления.СтавкиНДС.НДС18;
---
Сейчас доделаю и скину, как у меня выглядит
---
```1c
    Запрос2 = ComObject.NewObject("Запрос");

    //ИмяОбъекта
    ШаблонЗапроса2 = "
    |ВЫБРАТЬ
    | #Таблица.Ссылка КАК Ссылка
    |ИЗ
    | #Таблица
    |";

    ТекстЗапроса2 = ";

    ТекстЗапроса2 = ТекстЗапроса2 + ?(ПустаяСтрока(ТекстЗапроса2), ", "
    |ОБЪЕДИНИТЬ ВСЕ
    |")
    + СтрЗаменить(ШаблонЗапроса, "#Таблица", "Перечисление." + ИмяОбъекта);
    Запрос2 = Новый Запрос;
    Запрос2.Текст = ТекстЗапроса2;
    ТаблЗапроса = Запрос2.Выполнить().Выгрузить();
    Для Каждого Стр Из ТаблЗапроса Цикл
    Если Строка(Стр.Ссылка) = Строка(Выборка.Ссылка[строка.РеквезитВторойБазы]) тогда
    НовСправочник[строка.РеквезитВторойБазы] = Стр.Ссылка;
    Прервать;
    КонецЕсли;

    КонецЦикла;
```
---
Сдается мне, что вот тут:
Если Строка(Стр.Ссылка) = Строка(Выборка.Ссылка[строка.РеквезитВторойБазы]) тогда
получается примерно вот так:
Если "COM объект" = "COM объект" тогда
вне зависимости от значений. Поэтому условие всегда выполняется.
Проверь в отладчике.
Правильней все-таки как-то так:
ComObject.XMLString(ComObject.Перечисления[ИмяОбъекта].НДС18) = ComObject.XMLString(Выборка.Ссылка[строка.РеквезитВторойБазы])