gifts2017

Как управлять расположением команд в командной панели формы?

Опубликовал Константин Воробьёв (kostik_love) в раздел Программирование - Работа с интерфейсом

В 1С Предприятии 8.2 внешний вид формы определяется расположением и свойствами элементов в дереве элементов формы. На основе этих свойств система сама "рисует" форму, в частности, командную панель формы.
Вмешаемся в этот процесс)))

Любая группа кнопок (командная панель, подменю, группа кнопок, контекстное меню) заполняется по одинаковым правилам:

  1. сначала идут кнопки, предоставляемые источником команд, с которым связана данная группа;
  2. затем идёт фрагмент командного интерфейса, если источник команд подразумевает его включение;
  3. затем идут пользовательские команды, добавленные в данную группу;
  4. затем идёт подменю Все действия (только для командной панели);
  5. и в конце идёт кнопка Справка в том случае если она была предоставлена источником команд.

Рассмотрим самый простой вариант, когда в форме элемента справочника созданы две команды и помещены в командную панель формы.

рис1

В результате в режиме 1С:Предприятия расположение кнопок, соответствующих созданным командам Команда1, Команда2 соответствует описанному выше алгоритму: в командной панели формы и в подменю Все действия сначала расположены команды, предоставляемые источником команд - формой элемента справочника (например, Записать и закрыть, Записать и др.), затем команды, созданные разработчиком (Команда1, Команда2), и затем команда Справка.

рис2

Однако у разработчика есть несколько способов существенно вмешаться в этот процесс и повысить удобочитаемость командной панели, контекстного меню и т.п. Какие же есть возможности изменить состав и порядок кнопок?

1. Можно отделить команды, созданные разработчиком, от других команд разделителем.

Для этого нужно создать в командной панели группу вида Группа кнопок и перенести в нее эти команды.

рис3

2. Можно расположить какие-то команды разработчика в начале группы команд.

Для этого нужно отменить у группы источник команд (для контекстного меню и автоматической командной панели нужно выключить флажок Автозаполнение), затем добавить в группу свою кнопку, после нее добавить группу вида Группа кнопок и у этой группы установить источник команд - например, Форма.

рис4

В результате в режиме 1С:Предприятия командная панель формы и подменю Все действия будут иметь следующий вид.

рис5

3. Можно переместить автоматически заполняемые кнопки.

Для этого нужно поместить в дерево командной панели или контекстного меню кнопку, связанную с той же командой, которая заполняется из источника данных (например, Удалить, Скопировать и др.). Автоматически такая кнопка не будет размещена среди стандартных команд и, таким образом, можно переместить стандартную команду в другое место.

рис6

В результате в режиме 1С:Предприятия командная панель формы и подменю Все действия будут иметь следующий вид.

рис7

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

4. Можно изменить порядок и видимость кнопок фрагмента командного интерфейса, предоставляемого источником команд Форма.

Например, у объекта конфигурации справочник Контрагенты существует команда Команда3. Эта команда имеет группу размещения команд - Командная панель формы.Важное и тип параметра команды - СправочникСсылка.Контрагенты.

рис8

После установки этих свойств, Команда3 становится доступна закладке Командный интерфейс формы объекта, тип которого имеет команда и располагается в командной панели формы после стандартных команд, поставляемых формой элемента справочника.

рис9

В результате в режиме 1С:Предприятия командная панель формы и подменю Все действия будут иметь следующий вид.

рис10

Команда3 входит в группу команд фрагмента командного интерфейса. Если Вас не устраивает место, в которое вставляется фрагмент командного интерфейса, можно поместить в командную панель группу вида Группа кнопок и у этой группы установить источник команд - Глобальные команды командной панели формы.

рис11

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

рис12

Что же касается содержимого фрагмента командного интерфейса, то его редактирование доступно на закладке Командный интерфейс редактора формы.

5. Можно включить/выключить видимость стандартных команд, предоставляемых источником команд, например - Форма.

Для этого нужно открыть окно Состав команд в палитре свойств формы.

рис13

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

См. также

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
Иван Борисов (Kaavan) (1.00 $m)
Подписаться Добавить вознаграждение

Комментарии

1. Fomix (fomix) 17.01.12 09:20
Молодца! А то с этими управляемые формами просто беда...
2. Ruslan (rus128) 18.01.12 13:18
Очень познавательно!
Жаль только, что рисунки в статье идут не в тексте, а после текста - пришлось извращаться, чтоб прочитать с открытой иллюстрацией.
3. Константин Воробьёв (kostik_love) 18.01.12 13:28
4. Ruslan (rus128) 18.01.12 13:53
(3) а где теперь сама публикация? вижу только "Публикация не активна".
5. Константин Воробьёв (kostik_love) 18.01.12 13:54
(4) rus128, а теперь ждем- пока отмодерируется)))
6. Сергей Рудаков (fishca) 18.01.12 14:08
(0) а слабо все статьи ИТС скопипастить ;) ?
StrelokCj; -fox-; Puk2; +3 1 Ответить 1
7. Константин Воробьёв (kostik_love) 18.01.12 14:14
(6) fishca,
не слабо- как только столкнусь с какой нибудь проблемой и найду её решение только ни ИТС
сразу же создам публикацию
8. evgeny belov (Sbelyi78) 20.01.12 09:37
выпустить надо 8.3 где можно самому ими управлять инетерактивно, а некретивить , во идея: dreamweaver+ 1С8.2=1С8.3
9. Александр (Мощный) 05.02.12 12:30
Спасиб ! Оч.познавательно
10. Владимир Конырев (Vladimir_Konyrev) 26.07.13 11:29
Добрый день. Не подскажите, каким образом на Командной панели самому настроить подписи стандартных кнопок. Например добавить подпись "Удалить строку" к кнопке на картинке
Прикрепленные файлы:
11. Геннадий Зимин (kenza) 14.08.13 11:08
(10) Vladimir_Konyrev, ну это вам просто нужно отключить автозаполнение командной панели, вручную добавить нужную кнопку и в свойствах изменить или установить заголовок.
12. Иван Борисов (Kaavan) 18.08.13 07:19
13. Евгений Пономаренко (Evgen.Ponomarenko) 18.08.13 11:34
В копилочку!... Вопрос в студию, может и не по теме нооо: А как можно посмотреть все публикации, которые пользователь отметил плюсиком?
14. Александр Лобачёв (SANILLA) 02.10.13 22:18
А как в командный интерфейс в панель навигации в группу "перейти" добавить команду формы?
15. binx (binx) 25.08.14 23:17
(14) SANILLA, тоже этот вопрос интересует
16. Константин Воробьёв (kostik_love) 26.08.14 08:49
(14) SANILLA, (15) binx,
Для этого существуют общие команды, команды объекта и группы команд
Прикрепленные файлы:
17. Александр Топольский (AlexanderKai) 05.02.15 13:43
Спасибо, статья помогла.
18. Евгений Изотов (Letos) 23.07.15 13:21
Выношу кнопку в командную панель ТЧ. В режиме Предприятия кнопка не отображается. В конфигураторе все хорошо все есть, Видимость = Истина, делаю просмотр формы Ctrl + R - все есть. В чем может быть проблема?
19. Константин Воробьёв (kostik_love) 25.07.15 10:03
(18), 1. посмотреть во всех действиях
2. В режиме отладке проверить при открытии формы сврйство видимость
20. Ольга Ковалева (volha-77) 27.10.16 12:19
Помогите пожалуйста: я добавила в документ команду ПечатьСчета (не на форму, а в сам документ). Как теперь добавить кнопку на форму для этой команды? Можно ли это сделать, не добавляя эту команду в общую группу команд?
21. Константин Воробьёв (kostik_love) 03.11.16 12:05
(20) volha-77,
нужно указать свойство "Группа" (Группа, в которую входит команда по умолчанию) и "Тип параметра команды", далее на вкладке "Глобальные команды" в разделе "Параметризуемые" найти строку Документ.ИмяДокумента.ИмяКоманды (если это для документа)- и перенести в элементы формы в нужно место
или добавить кнопку на форме и заполнить ее свойство "Имя команды" - указав полный путь к месту расположения команды
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа