Каталог решений - В поисках пропавшей кнопки

В поисках пропавшей кнопки

В поисках пропавшей кнопки

В наличии

Не обнаружив кнопку "Найти в списке" в типовых решениях на управляемых формах (БП 3.0, УТ 11) сначала очень удивился, а потом решил ее добавить. Добавить кнопку можно всего за несколько минут во все необходимые документы и справочники, причем при обновлении ничего дополнительно делать не придется — добавляется одна общая команда.

Категория:

Описание

Итак, по пунктам:

  1. Создаем общую команду «НайтиВСписке»
  2. В свойствах команды указываем:
    • Группа — Командная панель формы.Важное
    • Тип параметра команды — ставим флажок «Составной тип» и отмечаем те справочники и документы, в которых мы хотим видеть нашу кнопку.
    • Отображение — Картинка
    • Картинка — выбираем подходящую картинку (в типовой БП 3.0 есть картинка «КнопкаНайтиВСписке»)
    • Остальные свойства оставляем без изменений.
  3. В модуль команды помещаем следующий программный код:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
    МетаИмя = ВернутьИмя(ПараметрКоманды);
    
    НашлиОткрытую = Ложь;
    
    Окна = ПолучитьОкна();
    Для каждого Окно Из Окна Цикл
    
        Форма = Окно.ПолучитьСодержимое();
        
        Если Форма = Неопределено Тогда
            Продолжить;
        КонецЕсли;    
        
        Если Форма.ИмяФормы = МетаИмя + ".Форма.ФормаСписка" Тогда
            Форма.Элементы.Список.ТекущаяСтрока = ПараметрКоманды;
            Форма.Активизировать();
            НашлиОткрытую = Истина;
        КонецЕсли;
        
    КонецЦикла;
    
    Если Не НашлиОткрытую Тогда
        ОткрытьФорму(МетаИмя + ".ФормаСписка", Новый Структура("ТекущаяСтрока", ПараметрКоманды));  
    КонецЕсли;    
            
КонецПроцедуры


&НаСервере
Функция ВернутьИмя(ПараметрКоманды)

    Возврат ПараметрКоманды.Метаданные().ПолноеИмя();

КонецФункции

Все, кнопка готова — сохраняем, запускаем, пользуемся.

Все очень просто и быстро, но есть один момент. Сейчас наша кнопка появилась и в форме элемента (документа) и в форме списка, что очевидно не имеет смысла. А вот чтобы ее убрать из форм списков, нужно зайти в каждую из форм и выключить соответствующий флажок в командном интерфейсе формы — раздел Командная панель — Важное. В принципе можно этого и не делать — нажатие на кнопку в форме списка не приведет к ошибке, зато не придется проделывать эту операцию при обновлениях. А можно и сделать …. — выбор остается за вами. Хорошего кода!

p.s.
В приведенном коде учтены замечания из комментариев, что позволило его улучшить.

has been added to your cart:
Оформление заказа