Почему в 1С в поле ввода номенклатуры появляется кнопка «Создать» и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

Часто при работе в конфигурации «1С:Бухгалтерия предприятия 3.0» (и других решениях на платформе 1С:Предприятие 8.3) можно столкнуться со странным визуальным поведением: при попытке ввести название товара в документе (например, в счете на оплату) вместо привычного выпадающего списка подбора система перекрывает интерфейс и выводит прямо в поле ввода кнопку «Создать». Разберем подробно, почему возникает такой эффект, проанализируем ситуацию и посмотрим на доступные способы устранения этой проблемы от программных до пользовательских.

Проанализируем программный метод решения проблемы (костыльный вариант)

Начнем с самого простого способа, который часто применяют разработчики, если нужно срочно вернуть поле в работоспособное состояние. Проблема может крыться в стандартных обработчиках поля ввода. В частности, за логику выпадающего списка отвечают события АвтоПодбор и ОкончаниеВводаТекста.

Рассмотрим по шагам, как можно принудительно отключить такое поведение. Если вы сравнили две базы и в одной из них интерфейс "глючит", попробуйте закомментировать вызовы стандартных процедур автоподбора для конкретного реквизита на форме и добавить кнопку выбора/создания вручную. Посмотрим на пример кода, который иллюстрирует этот обходной путь:


// В модуле формы документа отключаем или комментируем обработчики:

// Процедура ТоварНоменклатураАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
//     // Стандартный код 1С
// КонецПроцедуры

// Процедура ТоварНоменклатураОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
//     // Стандартный код 1С
// КонецПроцедуры

Выясним причину: отключение этих событий убирает платформенные механизмы предиктивного ввода. Это костыль, так как вы лишаете пользователей удобного функционала автодополнения, но он позволяет быстро избавиться от навязчивой кнопки. Однако правильнее будет найти корень проблемы в настройках.

Разберем влияние полнотекстового поиска (ПП)

Скрытой причиной изменения поведения полей ввода часто становится состояние полнотекстового поиска. Если он отключен или его индекс неактуален, алгоритмы 1С начинают работать иначе. Система не может быстро сопоставить текст пользователя со справочником и сразу предлагает создать новый элемент, думая, что такого объекта в базе нет.

Проанализируем шаги для исправления:

  1. Откройте раздел Администрирование.
  2. Перейдите в Общие настройки.
  3. Найдите блок Поиск данных.
  4. Убедитесь, что полнотекстовый поиск включен, и при необходимости нажмите кнопку обновления индекса.

Проверим свойства метаданных объекта

Рассмотрим подробнее настройки самого справочника Номенклатура в Конфигураторе. Существует несколько свойств, которые напрямую влияют на отображение элементов в поле ввода:

  1. Быстрый выбор (Quick Choice). Если для справочника это свойство установлено в значение «Да», платформа всегда будет пытаться подобрать элемент на лету. При небольших задержках визуализация "ломается" и вылезает кнопка создания. Попробуйте отключить это свойство или выставить «Авто».
  2. Создание при вводе. Если опция включена, система разрешает добавление новых записей непосредственно из текстового поля. Если отключить ее в свойствах реквизита формы, кнопка может пропасть.
  3. Поиск по строке. На вкладке «Данные» в свойствах справочника перечислены реквизиты, по которым идет поиск (обычно это Код и Наименование, иногда Артикул). Если этот список модифицирован в одной из баз, скорость и результат подбора изменятся.

Посмотрим на настройки формы и функциональные опции

Иногда программный код и метаданные полностью идентичны, но поведение баз разное. Выясним, какие пользовательские настройки вызывают сбой.

Функциональные опции: В 1С:Бухгалтерии есть опция «Дополнительные колонки номенклатуры». Если пользователь включает отображение артикула или кода в выпадающем списке подбора, алгоритм усложняется. Если возникает задержка при поиске артикула, стандартный выпадающий список заменяется кнопкой. Попробуйте отключить вывод дополнительных колонок в параметрах учета.

Настройки поля ввода: Обратите внимание на параметр МинимальноеКоличествоСимволовДляТипа (в свойствах элемента формы). Если он равен 0 или 1, поиск стартует слишком рано. Рекомендуется установить значение 2 или 3. Также важен СпособПоискаПриВводе. Режим «Любая часть» нагружает базу сильнее, чем «Начало строки». При нехватке ресурсов сервера 1С не успевает вернуть список и подставляет кнопку создания.

Изучим влияние платформы, расширений и кэша

Если вы проверили все предыдущие пункты, но проблема осталась, разберем еще несколько неочевидных причин:

  1. Баги конкретного релиза и масштабирование: В некоторых версиях платформы (например, в диапазоне 8.3.17–8.3.20) отрисовка интерфейса «Такси» сбоит при масштабе Windows, отличном от 100%. Элементы управления накладываются друг на друга. Проверьте поведение базы при стандартном масштабировании экрана.
  2. Расширения конфигурации: В «проблемной» базе могут быть подключены расширения, которые неявно переопределяют обработчики ОбработкаПолученияДанныхВыбора в модуле менеджера справочника. Обязательно проверьте наличие таких расширений.
  3. Кэш формы: 1С запоминает пользовательские настройки окон. Если произошел сбой, форма может отображаться некорректно для конкретного пользователя. Выполните сброс формы: в проблемном документе нажмите кнопку Еще и выберите пункт Установить стандартные настройки. Это заново инициализирует внешний вид формы и часто решает визуальные артефакты.

Комплексный подход, включающий проверку полнотекстового поиска, очистку кэша форм и анализ настроек реквизитов, позволяет устранить появление кнопки «Создать» без необходимости "комментировать" системный код.

← На главную