Создание элемента справочника с нужным GUID, в COM-соединение
Здравствуйте!
Платформа 8.3 (8.3.9.1850).
Есть COM-соединение из базы приёмника (БП), к базе источника (БИ).
Так же есть односторонний перенос справочников Проекты, который идёт по Уникальному идентификатору (из БИ в БП).
После того, как в БП не был найден элемент, необходимо создать его с нужным Уникальным идентификатором.
Т.е. что-то типа:
Но с COM-соединением ссылку не получить.
Вопрос: как создать элемент справочника с нужным GUID, имея только сам GUID (без каких-либо ссылок)?
Платформа 8.3 (8.3.9.1850).
Есть COM-соединение из базы приёмника (БП), к базе источника (БИ).
Так же есть односторонний перенос справочников Проекты, который идёт по Уникальному идентификатору (из БИ в БП).
После того, как в БП не был найден элемент, необходимо создать его с нужным Уникальным идентификатором.
Т.е. что-то типа:
НовыйЭлемент = Справочники.Проекты.СоздатьЭлемент();
НовыйЭлемент.УстановитьСсылкуНового(Ссылка_Которой_НЕТ);
НовыйЭлемент.Записать();
Но с COM-соединением ссылку не получить.
Вопрос: как создать элемент справочника с нужным GUID, имея только сам GUID (без каких-либо ссылок)?
По теме из базы знаний
Найденные решения
(1)
СтрокаGUID = "a763cfbb-f94f-4c67-8e13-0e96a3a7f353";
НовыйGUID = Новый УникальныйИдентификатор(СтрокаGUID);
Спр = Справочники.Проекты.СоздатьЭлемент();
Спр.УстановитьСсылкуНового(Справочники.Проекты.ПолучитьСсылку(НовыйGUID));
Спр.Записать();
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)
СтрокаGUID = "a763cfbb-f94f-4c67-8e13-0e96a3a7f353";
НовыйGUID = Новый УникальныйИдентификатор(СтрокаGUID);
Спр = Справочники.Проекты.СоздатьЭлемент();
Спр.УстановитьСсылкуНового(Справочники.Проекты.ПолучитьСсылку(НовыйGUID));
Спр.Записать();
(1)
//Получаем COMConnector
COMConnector = Новый COMObject("V82.COMConnector");
//Устанавливаем соединение с базой
Connection = COMConnector.Connect("File=""C:\1CBase""";Usr=""login"";Pwd=""password"";");
//Находим справочник в подключенной базе
СправочникСсылкаКом = Connection.Справочники.ИмяСправочника.НайтиПоКоду("00000001");
//Получаем УИД справочника из подключенной базы
УИД = Connection.String(СправочникСсылкаКом.UUID());
//Создаем новый элемент справочника
СправочникОбъект = Справочники.ИмяСправочника.СоздатьЭлемент();
//Получаем ссылку по УИД
СправочникСсылка = Справочники.ИмяСправочника.ПолучитьСсылку(Новый УникальныйИдентификатор(УИД));
//Устанавливаем полученную ссылку созданному элементу
СправочникОбъект.УстановитьСсылкуНового(СправочникСсылка);
//Заполняем ревизиты
СправочникОбъект.УстановитьНовыйКод();
//Записываем
СправочникОбъект.Записать();
Показать//Находим справочник в подключенной базе
СправочникСсылкаКом = Соединение.Справочники.Сотрудники.НайтиПоКоду("0000-01236"); // для примера, ищем Сотрудника по коду
//Получаем УИД справочника из подключенной базы
//УИД = Соединение.String(СправочникСсылкаКом.UUID());
СтрУИД = Соединение.String("УникальныйИдентификатор", СправочникСсылкаКом.UUID());
//Получаем ссылку по УИД
УИД = Новый УникальныйИдентификатор(СтрУИД);
СправочникСсылка = Справочники.Сотрудники.ПолучитьСсылку(УИД);
Если ОбщегоНазначения.СсылкаСуществует(СправочникСсылка) Тогда
СправочникОбъект = СправочникСсылка.ПолучитьОбъект();
Иначе
//Создаем новый элемент справочника
СправочникОбъект = Справочники.Сотрудники.СоздатьЭлемент();
СправочникОбъект.ОбменДанными.Загрузка = Истина; // без этой строчки УИД не присваивается
//Устанавливаем полученную ссылку созданному элементу
СправочникОбъект.УстановитьСсылкуНового(СправочникСсылка);
КонецЕсли;
//Заполняем ревизиты
СправочникОбъект.Код = СправочникСсылкаКом.Code;
СправочникОбъект.Наименование = СправочникСсылкаКом.Description;
//СправочникОбъект.ФизическоеЛицо = Справочники.Сотрудники.НайтиПоКоду("00-0000902").ФизическоеЛицо;
СправочникОбъект.ФизическоеЛицо = Справочники.Сотрудники.НайтиПоНаименованию("Емельянов Николай Дмитриевич").ФизическоеЛицо;
//Записываем
Попытка
СправочникОбъект.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)