Создание элемента справочника с нужным GUID, в COM-соединение

1. Fe9_min 50 11.01.17 16:59 Сейчас в теме
Здравствуйте!
Платформа 8.3 (8.3.9.1850).
Есть COM-соединение из базы приёмника (БП), к базе источника (БИ).
Так же есть односторонний перенос справочников Проекты, который идёт по Уникальному идентификатору (из БИ в БП).
После того, как в БП не был найден элемент, необходимо создать его с нужным Уникальным идентификатором.
Т.е. что-то типа:

НовыйЭлемент = Справочники.Проекты.СоздатьЭлемент();
НовыйЭлемент.УстановитьСсылкуНового(Ссылка_Которой_НЕТ);
НовыйЭлемент.Записать();


Но с COM-соединением ссылку не получить.
Вопрос: как создать элемент справочника с нужным GUID, имея только сам GUID (без каких-либо ссылок)?
По теме из базы знаний
Найденные решения
2. spacecraft 11.01.17 17:10 Сейчас в теме
(1)
СтрокаGUID = "a763cfbb-f94f-4c67-8e13-0e96a3a7f353";
НовыйGUID = Новый УникальныйИдентификатор(СтрокаGUID);
Спр = Справочники.Проекты.СоздатьЭлемент();
Спр.УстановитьСсылкуНового(Справочники.Проекты.ПолучитьСсылку(НовыйGUID));
Спр.Записать();
Sb_forest; maksa2005; cheshirshik; Andreyyy; de0nis; Lapitskiy; johnnyshut23; Mahon83; +8 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 11.01.17 17:10 Сейчас в теме
(1)
СтрокаGUID = "a763cfbb-f94f-4c67-8e13-0e96a3a7f353";
НовыйGUID = Новый УникальныйИдентификатор(СтрокаGUID);
Спр = Справочники.Проекты.СоздатьЭлемент();
Спр.УстановитьСсылкуНового(Справочники.Проекты.ПолучитьСсылку(НовыйGUID));
Спр.Записать();
Sb_forest; maksa2005; cheshirshik; Andreyyy; de0nis; Lapitskiy; johnnyshut23; Mahon83; +8 Ответить
3. Fe9_min 50 11.01.17 17:16 Сейчас в теме
(2) и он подставляет туда битую ссылку и все счастливы.
Спасибо!
4. spacecraft 11.01.17 17:25 Сейчас в теме
(3) что значит битую ссылку? Конкретней.
5. spacecraft 11.01.17 18:46 Сейчас в теме
(3) ну так как? Попробовали? Битая ссылка не подставилась?
6. kasper076 104 12.01.17 11:30 Сейчас в теме
(1)
//Получаем COMConnector
COMConnector = Новый COMObject("V82.COMConnector");
//Устанавливаем соединение с базой
Connection = COMConnector.Connect("File=""C:\1CBase""";Usr=""login"";Pwd=""password"";");
//Находим справочник в подключенной базе
СправочникСсылкаКом = Connection.Справочники.ИмяСправочника.НайтиПоКоду("00000001");
//Получаем УИД справочника из подключенной базы
УИД = Connection.String(СправочникСсылкаКом.UUID());
//Создаем новый элемент справочника
СправочникОбъект = Справочники.ИмяСправочника.СоздатьЭлемент();
//Получаем ссылку по УИД
СправочникСсылка = Справочники.ИмяСправочника.ПолучитьСсылку(Новый УникальныйИдентификатор(УИД));
//Устанавливаем полученную ссылку созданному элементу
СправочникОбъект.УстановитьСсылкуНового(СправочникСсылка);
//Заполняем ревизиты
СправочникОбъект.УстановитьНовыйКод();
//Записываем
СправочникОбъект.Записать();
Показать
user693240_abramovskaya; +1 Ответить
7. user693240_abramovskaya 02.12.19 11:08 Сейчас в теме
//Находим справочник в подключенной базе
		СправочникСсылкаКом = Соединение.Справочники.Сотрудники.НайтиПоКоду("0000-01236"); // для примера, ищем Сотрудника  по коду
		
		//Получаем УИД справочника из подключенной базы
		//УИД = Соединение.String(СправочникСсылкаКом.UUID());
		СтрУИД = Соединение.String("УникальныйИдентификатор", СправочникСсылкаКом.UUID());
		
		//Получаем ссылку по УИД
		УИД = Новый УникальныйИдентификатор(СтрУИД); 
		СправочникСсылка = Справочники.Сотрудники.ПолучитьСсылку(УИД);
		
		Если ОбщегоНазначения.СсылкаСуществует(СправочникСсылка) Тогда
			СправочникОбъект = СправочникСсылка.ПолучитьОбъект();
		Иначе
			//Создаем новый элемент справочника
			СправочникОбъект = Справочники.Сотрудники.СоздатьЭлемент();
			СправочникОбъект.ОбменДанными.Загрузка = Истина; // без этой строчки УИД не присваивается
			//Устанавливаем полученную ссылку созданному элементу
			СправочникОбъект.УстановитьСсылкуНового(СправочникСсылка);
		КонецЕсли;
		
		//Заполняем ревизиты
		СправочникОбъект.Код = СправочникСсылкаКом.Code;
		СправочникОбъект.Наименование = СправочникСсылкаКом.Description;
		//СправочникОбъект.ФизическоеЛицо = Справочники.Сотрудники.НайтиПоКоду("00-0000902").ФизическоеЛицо;
		СправочникОбъект.ФизическоеЛицо = Справочники.Сотрудники.НайтиПоНаименованию("Емельянов Николай Дмитриевич").ФизическоеЛицо;
		

		//Записываем
		Попытка
			СправочникОбъект.Записать();
		Исключение
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
Показать
vi329; f003and; +2 Ответить
Оставьте свое сообщение

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