1. buriZa 37 11.01.17 16:59 Сейчас в теме

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

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

		//Записываем
		Попытка
			СправочникОбъект.Записать();
		Исключение
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
Показать
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Чебоксары
зарплата от 50 000 руб. до 70 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб. до 120 000 руб.
Полный день

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

Программист 1С
Москва
зарплата до 160 000 руб.
Полный день

Консультант 1С
Москва
зарплата от 100 000 руб. до 140 000 руб.
Временный (на проект)