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

1. 47 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));
Спр.Записать();
johnnyshut23; Mahon83; +2 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 11.01.17 17:10 Сейчас в теме
(1)
СтрокаGUID = "a763cfbb-f94f-4c67-8e13-0e96a3a7f353";
НовыйGUID = Новый УникальныйИдентификатор(СтрокаGUID);
Спр = Справочники.Проекты.СоздатьЭлемент();
Спр.УстановитьСсылкуНового(Справочники.Проекты.ПолучитьСсылку(НовыйGUID));
Спр.Записать();
johnnyshut23; Mahon83; +2 Ответить
3. buriZa 47 11.01.17 17:16 Сейчас в теме
(2) и он подставляет туда битую ссылку и все счастливы.
Спасибо!
4. spacecraft 11.01.17 17:25 Сейчас в теме
(3) что значит битую ссылку? Конкретней.
5. spacecraft 11.01.17 18:46 Сейчас в теме
(3) ну так как? Попробовали? Битая ссылка не подставилась?
6. kasper076 86 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 Ответить
Оставьте свое сообщение
Вакансии
Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Автор новостей об 1С, налогах и бухучете на INFOSTART.RU
Санкт-Петербург
По совместительству

Программист 1С
Екатеринбург
зарплата от 50 000 руб.
По совместительству

Ведущий разработчик 1С (техлид внутреннего учета)
Новосибирск
зарплата от 230 000 руб.
Полный день

Программист 1С
Рязань
зарплата от 150 000 руб. до 250 000 руб.
Полный день