1С 8.3 Получить объект по GUID
Данные > Примеры кода 1С > 1С 8.3 Документы
Перейти в раздел примеры кода 1С 8.3:
- 1С 8.3 Документы
- 1С 8.3 ПланыВидовХарактеристик
В языке программирования 1С:8.3 для получения объекта по его GUID можно использовать метод ПолучитьПоСсылке (или GetByRef в английской версии). Этот метод доступен для различных объектов метаданных, таких как справочники, документы, регистры и т.д.
GUID используется для однозначной идентификации объектов (справочников, документов, регистров и других элементов) в базе данных 1С. Он гарантирует уникальность даже в распределенных системах, где данные могут создаваться на разных компьютерах или серверах. Это уникальный идентификатор, который присваивается каждому объекту в системе. Это 128-битное значение, представленное в виде строки, например: "123e4567-e89b-12d3-a456-478914174000".
Найти объект в базе по УИД в 1С 8.3:
Функция ПолучитьОбъектПоGUID(УИДОбъекта)
СсылкаНаОбъект = Неопределено;
// все объекты по которым можно получить ссылку
ОбъектыМетаданных = Новый Массив;
ОбъектыМетаданных.Добавить(Справочники);
ОбъектыМетаданных.Добавить(Документы);
ОбъектыМетаданных.Добавить(ПланыВидовХарактеристик);
ОбъектыМетаданных.Добавить(ПланыСчетов);
ОбъектыМетаданных.Добавить(ПланыОбмена);
ОбъектыМетаданных.Добавить(БизнесПроцессы);
ОбъектыМетаданных.Добавить(Задачи);
Для Каждого ОбъектМ Из ОбъектыМетаданных Цикл
Для Каждого МенеджерОбъект Из ОбъектМ Цикл
СсылкаНаОбъект = МенеджерОбъект.ПолучитьСсылку(УИДОбъекта);
Если СсылкаНаОбъект.ПолучитьОбъект() <> Неопределено Тогда
Возврат СсылкаНаОбъект //найден
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат СсылкаНаОбъект //не найден
КонецФункции
СсылкаНаОбъект = Неопределено;
// все объекты по которым можно получить ссылку
ОбъектыМетаданных = Новый Массив;
ОбъектыМетаданных.Добавить(Справочники);
ОбъектыМетаданных.Добавить(Документы);
ОбъектыМетаданных.Добавить(ПланыВидовХарактеристик);
ОбъектыМетаданных.Добавить(ПланыСчетов);
ОбъектыМетаданных.Добавить(ПланыОбмена);
ОбъектыМетаданных.Добавить(БизнесПроцессы);
ОбъектыМетаданных.Добавить(Задачи);
Для Каждого ОбъектМ Из ОбъектыМетаданных Цикл
Для Каждого МенеджерОбъект Из ОбъектМ Цикл
СсылкаНаОбъект = МенеджерОбъект.ПолучитьСсылку(УИДОбъекта);
Если СсылкаНаОбъект.ПолучитьОбъект() <> Неопределено Тогда
Возврат СсылкаНаОбъект //найден
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат СсылкаНаОбъект //не найден
КонецФункции
Доп.проверка (если нужна):
Если Не СсылкаНаОбъект.Пустая() Тогда
Сообщить("Найден объект: " + СсылкаНаОбъект.Номер);
Иначе
Сообщить("Объект с GUID " + Идентификатор + " не найден.");
КонецЕсли;
Сообщить("Найден объект: " + СсылкаНаОбъект.Номер);
Иначе
Сообщить("Объект с GUID " + Идентификатор + " не найден.");
КонецЕсли;
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник