Имя: Пароль:
1C
 
Контроль уникальности текстового номера
Ø (Serg_1960 30.09.2022 08:29)
0 NIGHTHUNTER
 
30.09.22
04:50
У справочника необходимо создать текстовое поле и задать для него контроль уникальности.
Видимо это не номер элемента справочника. Какие есть возможности что бы реализовать контроль
уникальности для ввода в новое текстовое поле ?
1 Fram
 
30.09.22
05:02
Вот несложное же задание. Что мешает взять и сделать. Обязательно на форум каждую свою задачу тащить?
2 rphosts
 
30.09.22
05:06
(0) обработчик события + запрос проверяющий что в ИБ нет элемента этого справочника с таким текстовым полем (кроем самого этого элемента возможно).
Пробовал прочитать "простые примеры разработки"?
3 NIGHTHUNTER
 
30.09.22
07:53
Нашел такие процедуры, только смотрю и особо не понимаю что они делают, -

Процедура ПередЗаписью(Отказ)
    ИмяОбъекта = ЭтотОбъект.Метаданные().Имя;
    СтрРеквизитов = Новый Структура; //
    СтрРеквизитов.Вставить("Наименование", Наименование);
    Если Не ОбщегоНазначения.ПрошелКонтрольУникальностиСправочникаПоРеквизиту(ИмяОбъекта, СтрРеквизитов, Ссылка) Тогда
        Сообщить("Подобный элемент справочника /" + Наименование + "/ существует!
                |Модуль: Контроль уникальности элементов справочника." );
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры



&НаСервере
Функция ПрошелКонтрольУникальностиСправочникаПоРеквизиту(ИмяОбъекта, СтрРеквизитов, ЗначениеСсылка) Экспорт

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