Мне был необходим функционал из заголовка.
Ядро 1С 8.3, конфигурация "СамИздат".
Собственно реализация этой возможности тривиальна:
В моделу объекта в теле процедуры "ПередЗаписью" вставляем код:
Процедура ПередЗаписью(Отказ)
ИмяОбъекта = ЭтотОбъект.Метаданные().Имя;
СтрРеквизитов = Новый Структура; //
СтрРеквизитов.Вставить("Наименование", Наименование);
Если Не ОбщегоНазначения.ПрошелКонтрольУникальностиСправочникаПоРеквизиту(ИмяОбъекта, СтрРеквизитов, Ссылка) Тогда
Сообщить("Подобный элемент справочника /" + Наименование + "/ существует!
|Модуль: Контроль уникальности элементов справочника." );
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Далее в общем модуле (в моем случае это "ОбщегоНазначения") создаем функцию:
&НаСервере
Функция ПрошелКонтрольУникальностиСправочникаПоРеквизиту(ИмяОбъекта, СтрРеквизитов, ЗначениеСсылка) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Спр.Ссылка
|ИЗ
| Справочник." + ИмяОбъекта + " КАК Спр
|ГДЕ
| Спр.Ссылка <> &парЗначениеСсылка
|";
Нум = 0;
Для Каждого Знч Из СтрРеквизитов Цикл
ИмяПараметраВЗапросе = " = &Пар" + Строка(Нум);
Запрос.Текст = Запрос.Текст + " И Спр." + Знч.Ключ + ИмяПараметраВЗапросе;
Запрос.УстановитьПараметр("Пар" + Строка(Нум), Знч.Значение);
Нум = Нум + 1;
КонецЦикла;
Запрос.УстановитьПараметр("парЗначениеСсылка", ЗначениеСсылка);
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса.Пустой();
КонецФункции
Собственно, всё.
Наведен марафет в функции по рекомендациям NeviD
Спасибо.
Как просто сделать сложно и как сложно сделать просто.