Производя поиск по наименованию может получиться такая ситуация, что по имени мы не найдем. Конечно, покажем предупреждение. Но лучше в данный момент заставить пользователя все-таки выбрать запись в справочнике. Для этого нам нужно программно показать окно справочника. И это, тоже можно.
Выбрать
Выбрать элемент справочника в диалоге.
Синтаксис:
Выбрать(<Подсказка>, <Форма Списка>)
Англоязычный синоним:
Choose
Параметры:
<Подсказка> Текст заголовка окна диалога выбора. Может использоваться в качестве подсказки конечному пользователю.
<ФормаСписка> Строковое выражение идентификатора той формы списка справочника (как он объявлен в конфигураторе), которая должна использоваться для выбора. Если это значение пустое, то используется форма списка по умолчанию.
Возвращаемое значение:
Числовое значение: 1 — если элемент выбран; 0 — если не выбран.
Описание:
Метод Выбрать() вызывает диалоговое окно для выбора элемента и затем позиционирует справочник на выбранном элементе. Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект().
Теперь наш код выглядит так.
Процедура Сформировать() Спр = СоздатьОбъект("Справочник.Контрагенты"); Спр.НайтиПоНаименованию("Авто - Карьер", 1); Если Спр.Выбран() > 0 Тогда Предупреждение(Спр.Код); Иначе Спр.Выбрать(" Авто - Карьер",""); КонецЕсли; КонецПроцедуры
Обратите внимание, что я добавил пробелов. Теперь наименование не будет найдено, но зато тут же у нас, его просят, чтобы мы поискали в справочнике.
Таким способом мы можем ликвидировать последствия ошибок ввода, когда одно и тоже имя встречается в справочнике несколько раз.