Найти объект в базе по УИД
Функция ПолучитьОбъектПоУИД(УИДОбъекта)
СсылкаНаОбъект = Неопределено;
// все объекты по которым можно получить ссылку
СписокОбъектовМетаданных = Новый Массив;
СписокОбъектовМетаданных.Добавить(Справочники);
СписокОбъектовМетаданных.Добавить(Документы);
СписокОбъектовМетаданных.Добавить(ПланыВидовХарактеристик);
СписокОбъектовМетаданных.Добавить(ПланыСчетов);
СписокОбъектовМетаданных.Добавить(ПланыОбмена);
СписокОбъектовМетаданных.Добавить(БизнесПроцессы);
СписокОбъектовМетаданных.Добавить(Задачи);
Для Каждого текСтрМетаданных Из СписокОбъектовМетаданных Цикл
Для Каждого текСтрМенеджер Из текСтрМетаданных Цикл
СсылкаНаОбъект = текСтрМенеджер.ПолучитьСсылку(УИДОбъекта);
Если СсылкаНаОбъект.ПолучитьОбъект() <> Неопределено Тогда
Возврат СсылкаНаОбъект //нашли
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат СсылкаНаОбъект //не нашли
КонецФункции
Проверка Модифицированности объекта
Найти дату самого первого документа в любой базе
#1, 15 января 2025 14:32
Попросил китайскую ДжиПиТи написать такую функцию, вот что она выдала:
Как это работает:
Типы объектов помещаются в массив ТипыОбъектов. Это позволяет легко добавлять или удалять типы.
Внешний цикл перебирает группы типов (справочники, документы и т.д.).
Внутренний цикл перебирает конкретные типы объектов внутри каждой группы.
Для каждого типа объектов функция пытается найти объект по УИД с помощью метода НайтиПоУникальномуИдентификатору.
Если объект найден, функция возвращает ссылку на него.
Если объект не найден ни в одном из типов, функция возвращает Неопределено.
Пример использования:
#2, ред. 21 января 2025 21:06
Более оптимизированная версия. Вместо запроса в цикле с вычитыванием всего объекта из БД (метод "ПолучитьОбъект", а если это документ с ТЧ на 10 000 строк?) используется один запрос.