Как реализовать быстрый выбор значения прямо в колонке списка 1С?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При работе в 1С:Предприятии 8 в обычных формах часто возникает потребность ускорить рутинные операции. Вместо того чтобы каждый раз проваливаться в форму элемента для изменения какого-либо реквизита, гораздо удобнее редактировать данные непосредственно в ячейке списка. Рассмотрим, как это можно реализовать для справочников и документов.

Настройка быстрого выбора для справочников

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

  1. Откройте конфигуратор и найдите нужный Справочник.
  2. Перейдите на вкладку Данные или в окно Свойства.
  3. Найдите свойство Быстрый выбор и установите его значение в Истина.

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

Реализация выбора в колонке документа через код

Ситуация с документами сложнее, так как свойство Быстрый выбор для них не предусмотрено. Более того, изменение данных в документе требует его сохранения или проведения. В этом случае нам поможет обработка событий табличного поля на форме.

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

  1. Перейдите в форму списка документов и выберите элемент управления ТабличноеПоле.
  2. В палитре свойств найдите событие Выбор и создайте обработчик.
  3. Внутри обработчика добавьте проверку на то, что выбор был осуществлен именно в нужной вам колонке.
  4. Используйте метод ВвестиЗначение() для интерактивного получения нового значения от пользователя.

Ниже приведен пример реализации логики обработчика события Выбор:


Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    // Проверяем, что клик был по нужной колонке
    Если Поле.Имя = \"НаименованиеНужнойКолонки\" Тогда
        СтандартнаяОбработка = Ложь; // Отменяем стандартное открытие формы
        
        ВыбранноеЗначение = Неопределено;
        ТипЗначения = Новый ОписаниеТипов(\"СправочникСсылка.ВашСправочник\");
        
        Если ВвестиЗначение(ВыбранноеЗначение, \"Выберите значение\", ТипЗначения) Тогда
            // Присваиваем выбранное значение текущим данным строки
            Элемент.ТекущиеДанные.НужныйРеквизит = ВыбранноеЗначение;
            
            // Сохраняем изменения в базе данных
            ДокументОбъект = Элемент.ТекущиеДанные.Ссылка.ПолучитьОбъект();
            ДокументОбъект.НужныйРеквизит = ВыбранноеЗначение;
            ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Важные нюансы работы с формами выбора

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

Применяя данные подходы, вы сможете создать более динамичный и быстрый интерфейс для пользователей. Работа с ТекущимиДанными табличного поля позволяет гибко управлять состоянием списка, обеспечивая при этом необходимый контроль над записью и проведением объектов.

← На главную