Отображение различных элементов формы в командной панели

Все-таки, программист - это не только техническая профессия, но и творческая, так как зачастую приходится самому создавать дизайн форм. Недавно мне захотелось поместить поле переключателя в командную панель управляемой формы, но не все так просто...

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

Для примера, создайте внешнюю обработку, у обработки создайте управляемую форму.
1. Управляемая форма обработки
Форма уже имеет стандартную командную панель, но в неё мы можем добавить только кнопки, вообще, командные панели могут содержать только элементы формы кнопки и подменю.

Поэтому, в свойствах стандартной панели нужно снять галочку у свойства Автозаполнение.
2. Свойства командной панели

Добавьте обычную группу в корень формы, в свойствах установите горизонтальную группировку, без отображения и заголовка.
3. Свойства обычной группы
В созданную группу добавьте две командных панели, для правой установите в свойстве Источник команд - Форма, а для левой запретите растягивание по горизонтали. Создайте числовой реквизит формы. Должно получиться следующее:
4. Командные панели формы
Вставьте между командными панелями элемент формы Поле переключателя, который связан с реквизитом формы, а стандартную команду формы Закрыть поместите в левую командную панель. Теперь для пользователя создается впечатление, что командная панель содержит переключатель.
5. Командная панель с элементом формы Поле переключателя
В итоге получилась красивая форма:
6. Итоговый вид формы
Таким способом можно отображать почти все элементы формы в командной панели.

Комментарии

  1. ух тыш!
    а вот столкнулся с проблемкой, ответа ни где не нашел(
    создаю переключатель програмно но не могу програмно прикрутить к нему програмно созданную команду( Подскажите, как
    Команда=ЭтаФорма.Команды.Добавить("СправочникиПодбораПриИзменении");
    Команда.Действие="СправочникиПодбораПриИзменении";

    ДобавляемыеРеквизиты=Новый Массив;
    ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("СправочникиПодбора", Новый ОписаниеТипов("Число"), , "Справочники подбора"));
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);

    //Элемент=Элементы.Добавить("СправочникиПодбора", Тип("ПолеФормы"), Элементы.КоманднаяПанельПеренести);
    Элемент=Элементы.Вставить("СправочникиПодбора", Тип("ПолеФормы"), Элементы.ГруппаКоманднаяПанельФормы, Элементы.СтраницыСоздать);
    Элемент.ПутьКДанным="СправочникиПодбора";
    Элемент.Вид=ВидПоляФормы.ПолеПереключателя;
    Элемент.КоличествоКолонок=2;
    Элемент.СписокВыбора.Добавить(1, "Номенклатура");
    Элемент.СписокВыбора.Добавить(2, "Номенклатура поставщика");
    Элемент.ПоложениеЗаголовка=ПоложениеЗаголовкаЭлементаФормы.Нет;
    Элемент.ВидПереключателя=ВидПереключателя.Тумблер;
    Элемент.ИмяКоманды="СправочникиПодбораПриИзменении"; - это не фурычит!
    ЭтаФорма.СправочникиПодбора=Элемент.СписокВыбора[0].Значение;

    ОтветитьУдалить
  2. разобрался
    Элемент.УстановитьДействие("ПриИзменении","СправочникиПодбораПриИзменении");
    вопрос снят

    ОтветитьУдалить
  3. Спасибо, думал этого сделать невозможно.

    ОтветитьУдалить
  4. Большое спасибо за Ваше творчество!!! =)

    ОтветитьУдалить

Отправить комментарий