Перечисление через COM-соеденение

1. Tym1980 18.09.18 11:27 Сейчас в теме
Есть две базы которие обмениваются через COM-соеденение

нужно в подлючаемой базе установить у реквизита справочника ЕдИзм тип перечисление из Выборки

в обоих базах Перечисления одинаковые

База = Новый COMОбъект("V83.Application");
	......
	......
	......
		Пока ВыборкаИзменений.Следующий() Цикл		
			Выборка = ВыборкаИзменений.Получить();
			
			НашID = Строка(Выборка.Ссылка.УникальныйИдентификатор());
			ДругойИД = База.NewObject("УникальныйИдентификатор", НашID);					

			спрСсылка = База.Справочники.Номенклатура.ПолучитьСсылку(ДругойИД);				
			ОбъектБазы = спрСсылка.ПолучитьОбъект();
			ОбъектБазы.ЕдИзм = Выборка.ЕдИзм;
		КонецЦикла;		

Показать
antonio_i; +1 Ответить
Найденные решения
13. Tym1980 18.09.18 12:15 Сейчас в теме
Все разобрался. Оказалось банально просто
ОбъектБазы.ЕдИзм = База.Перечисления["ЕдИзм"][строка(Выборка.ЕдИзм)];
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tvm 18.09.18 11:34 Сейчас в теме
3. Tym1980 18.09.18 11:36 Сейчас в теме
4. antonio_i 80 18.09.18 11:50 Сейчас в теме
Так надо всё равно использовать перечисления из базы к которой подключаетесь.
Т.е., я думаю, что проблема в Выборка.ЕдИзм
Это перечисление в базе - приёмнике надо указать.
5. Tym1980 18.09.18 11:55 Сейчас в теме
(4)
Я пробывал установить вручную, но также не устанавливается
ОбъектБазы.ЕдИзм = База.Перечисления.ОдВим.л;


нужно искать иной способ
P.S. как установить из подкллючаемой в свою базу я разобрался (через индексы) а на оборот пока никак не могу
7. antonio_i 80 18.09.18 11:58 Сейчас в теме
(5)Может поможет код, как я искал тип :)

// Получим тип "СправочникСсылка.ФизическиеЛица" в базе ЗП
//вМассквТипов = Соединение.Метаданные.Справочники.ФизическиеЛица.СтандартныеРеквизиты.Ref.Тип.Типы();
//Для Каждого ТипФЛ ИЗ вМассквТипов Цикл
// Прервать;
//КонецЦикла;
ТипФЛ = Соединение.Метаданные.Справочники.ФизическиеЛица.СтандартныеРеквизиты.Ref.Тип.Типы().Get(0);
9. Boneman 298 18.09.18 11:59 Сейчас в теме
(5) естественно,
через ком передаются только примитивные типы.
Перечисление - к таковым не относится.
Поэтому переводить их нужно либо к строке (имя), либо к числу (индекс)
и обратно
10. Tym1980 18.09.18 12:06 Сейчас в теме
(9)
а как установить в моем случае перечисление переведенное в строку?
11. Bene_Valete 188 18.09.18 12:07 Сейчас в теме
(10) Посмотрите в этой теме, возможно найдете подходящий вариант https://forum.infostart.ru/forum9/topic85550/
antonio_i; +1 Ответить
6. VmvLer 18.09.18 11:57 Сейчас в теме
ПредопределенноеЗначение(....) прочите в СП

разве не прокатит?
8. antonio_i 80 18.09.18 11:59 Сейчас в теме
(6)Ну а что в нём предположительно указать?
какую строку вы предполоагаете?
12. VmvLer 18.09.18 12:10 Сейчас в теме
(8)

База.ПредопределенноеЗначение(ПолучитьПолноеИмяПредопределенногоЗначения(Перечисления.ПолФизическогоЛица.Мужской))
13. Tym1980 18.09.18 12:15 Сейчас в теме
Все разобрался. Оказалось банально просто
ОбъектБазы.ЕдИзм = База.Перечисления["ЕдИзм"][строка(Выборка.ЕдИзм)];
15. SlavaKron 18.09.18 12:40 Сейчас в теме
(13) Этот код может вызвать ошибку.
14. VmvLer 18.09.18 12:23 Сейчас в теме
а так, вообще без определений - нужна только ссылка

База.ПредопределенноеЗначение(ПолучитьПолноеИмяПредопределенногоЗначения(Выборка.ЕдИзм))
Оставьте свое сообщение

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