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