Часто в доработанных конфигурациях, особенно при интеграции функционала ЕГАИС в УТ 10.3, пользователи сталкиваются с тем, что в строке табличной части нельзя найти номенклатуру обычным вводом наименования. Поле ввода перестает «видеть» справочник, и приходится каждый раз вызывать форму выбора через троеточие. Давайте разберем по шагам, как диагностировать и устранить эту проблему.
Первым делом проанализируем настройки поля ввода. В управляемых формах механизм быстрого поиска (автоподбор) тесно связан со свойствами реквизита формы и самого элемента управления.
Если в коде формы переопределены события выбора, это часто становится причиной поломки стандартного механизма 1С.
Разберем типичную ситуацию. Если в событии НачалоВыбора разработчик принудительно открывает форму выбора с помощью метода ОткрытьФорму() или через параметры, он может случайно заблокировать стандартную логику обработки ввода. Рассмотрим пример корректной работы с событиями:
// Пример обработки события начала выбора
&НаКлиенте
Процедура ТоварыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
// Если мы хотим оставить стандартный поиск, флаг должен быть Истина
СтандартнаяОбработка = Истина;
// Если мы добавили свою логику, убедитесь, что не подавили стандартную
КонецПроцедуры
Всегда проверяйте, не установлен ли флаг СтандартнаяОбработка = Ложь без необходимости. Если этот флаг установлен, стандартный алгоритм поиска по наименованию не запустится.
В управляемых формах критически важным является событие ДанныеВыбора. Именно этот обработчик формирует список, который видит пользователь, когда начинает вводить текст в поле.
Чтобы понять, почему поиск не работает, попробуйте отследить выполнение кода в этом событии:
ДанныеВыбора для поля номенклатуры.Поскольку проблема часто проявляется в документах с интеграцией ЕГАИС, стоит обратить внимание на то, какая номенклатура ожидается в ТЧ. Возможно, в документе используется СправочникСсылка.КлассификаторАлкогольнойПродукции, а пользователь пытается искать в СправочникСсылка.Номенклатура.
Разберем ситуацию: если в табличной части настроен отбор по конкретному виду номенклатуры, а вы пытаетесь выбрать товар, не попадающий под этот критерий, система корректно отсекает его из результатов поиска. Убедитесь, что вводимые вами данные соответствуют установленным фильтрам для этого конкретного реквизита.
Если визуально всё настроено верно, но поиск не работает, воспользуйтесь замером производительности в режиме 1С:Предприятие:
ПриНачалеВвода или ОбработкаВыбора. Это поможет выявить, какой именно участок кода перехватывает управление и «гасит» поисковый запрос.Заключение: Чаще всего проблема кроется либо в программном сбросе флага СтандартнаяОбработка, либо в жестких отборах в событии ДанныеВыбора. Проанализируйте код формы на наличие этих конструкций, и вы сможете вернуть пользователям удобный функционал быстрого поиска.