Локализация объекта по уникальному значению свойства

flashman 11 1
&НаСервере
Процедура ПримерПолученияОбъекта(УИД) Экспорт
	НужныйОбъект = ПолучитьОбъектПоЗначениюСвойства("УИД_НашегоДокумента", УИД, "Документ.ЗаказКлиента");
КонецПроцедуры

&НаСервере
// Универсальная функция. Получает объект определенного типа по уникальному значению свойства.
// Свойство - Либо свойство (ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения), либо Имя (строка)
// ЗначениеСвойства - значение, передаваемое для поиска объекта.
// ИмяМетаданные - Имя метаданных ("Документ.ЗаказКлиента"). Сильно ускоряет запрос.
Функция ПолучитьОбъектПоЗначениюСвойства(Свойство_Или_Имя, ЗначениеСвойства, ИмяМетаданные) Экспорт

	Ответ = Неопределено;

	Если ТипЗнч(Свойство_Или_Имя) = Тип("Строка") Тогда
		Свойство = ПолучитьСоздатьСвойство(Свойство_Или_Имя);
	Иначе
		Свойство = Свойство_Или_Имя;
	КонецЕсли;

	Если Не Свойство = Неопределено Тогда

		Запрос = Новый Запрос();
		Запрос.Текст =
		"ВЫБРАТЬ
		|	ДополнительныеСведения.Объект КАК Объект,
		|	ДополнительныеСведения.Свойство КАК Свойство,
		|	ДополнительныеСведения.Значение КАК Значение
		|ИЗ
		|	РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
		|ГДЕ
		|	ДополнительныеСведения.Значение = &ЗначениеСвойства
		|	И ДополнительныеСведения.Свойство = &Свойство
		|	И ДополнительныеСведения.Объект ССЫЛКА Справочник.Номенклатура";


		Запрос.Текст = СтрЗаменить(Запрос.Текст, "Справочник.Номенклатура", ИмяМетаданные);

		Запрос.УстановитьПараметр("Свойство", Свойство);
		Запрос.УстановитьПараметр("ЗначениеСвойства", ЗначениеСвойства);
		Выборка = Запрос.Выполнить().Выбрать();
		Если Выборка.Следующий() Тогда
			Ответ = Выборка.Объект;
		КонецЕсли;

	КонецЕсли;

	Возврат Ответ;

КонецФункции
0
{3} Переменной НужныйОбъект присвоено значение, но оно нигде не используется

См. также

ЗначенияСвойств (БСП)

ЗначениеСвойства (БСП)

ДобавитьУникальноеЗначениеВСписок (БСП)

ОписаниеСвойствОбъекта (БСП)

ЗаполнитьМассивУникальнымиЗначениями

ЗаполнитьЗначенияСвойствОбъекта (БСП)

ПеренестиЗначенияИзРеквизитовФормыВОбъект (БСП)

ИнициализироватьТаблицуСвойствДляПравилаКонвертации (БСП)

ПолучитьСвойстваФоновогоЗадания (БСП)

Модератору