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