Кнопка на панели в 1С: настройка пользователем, Конфигуратор и код
Содержание
Добавить кнопку в 1С на панель можно без программиста: откройте нужную форму, нажмите Еще → Изменить форму… и перенесите команду в командную панель. Это личная настройка, она хранится на вашего пользователя. Если кнопки нет в списке команд вообще, её создаёт разработчик в Конфигураторе или в расширении.
«Панелью» в 1С называют три разных места. Панель действий — полоса команд раздела («Создать», «Отчёты», «Сервис»). Командная панель — кнопки над списком или внутри документа. Панель разделов — крупные пункты слева или сверху. Для каждой свой способ, ниже разобраны все.
Описание относится к платформе 8.3 с интерфейсом «Такси» и управляемыми формами. Если у вас старый обычный интерфейс, настройка устроена иначе, и этот текст к нему не подходит.
Панель действий и навигации: настройка без программиста
Начните отсюда, если нужная команда в программе уже есть, но спрятана. Откройте главное меню (кнопка со стрелкой в левом верхнем углу окна) и перейдите в Вид. Там находятся пункты настройки панели разделов, навигации и действий. Названия в разных релизах платформы немного отличаются, но смысл один.
Окно настройки выглядит одинаково: слева список доступных команд, справа выбранные. Между ними стрелки.
Порядок работы:
- Откройте раздел, в котором хотите изменить панель, например «Продажи».
- Откройте настройку панели действий или навигации.
- Выделите команду слева и нажмите стрелку вправо.
- Стрелками «Вверх» и «Вниз» поставьте её на нужное место.
- Нажмите «ОК».
Команда сразу появится в панели раздела. Настройка относится к вашему пользователю и не затрагивает коллег.
Любимые команды удобно держать на начальной странице и в избранном. Звёздочка рядом с заголовком открытой формы добавляет её в избранное, и ссылка на документ или отчёт всегда под рукой.
Если захотите вернуть всё как было, в том же окне есть кнопка установки стандартных настроек.
Панель разделов
Панель разделов настраивается отдельно. Можно скрыть неиспользуемые разделы, поменять порядок и оставить только те, в которых работаете каждый день. Бухгалтеру по зарплате нет смысла листать «Производство», а кладовщику «Банк и касса».
Командная панель формы: «Изменить форму»
Это самый частый запрос: добавить кнопку над списком документов или в форму документа. Делается в два клика прямо в работающей программе.
- Откройте нужную форму: список документов, справочник или сам документ.
- Нажмите кнопку
Ещев правом верхнем углу формы. - Выберите
Изменить форму…. - В открывшемся окне найдите командную панель и нажмите «Добавить» (или перенесите команду из списка доступных).
- Выберите команду из перечня и подтвердите.
В окне видно дерево элементов формы и список команд, которые можно на неё поместить. Здесь же можно скрыть кнопки, которыми вы не пользуетесь, и убрать лишние колонки.
⚠️ Настройка формы личная. Пользователь-коллега не увидит ваших кнопок. Чтобы раздать настройку всем, администратор сохраняет её как общую (в окне настройки есть пункт про использование настроек другими пользователями) либо разработчик правит форму в конфигурации.
Чего в этом списке не будет
Перечень состоит только из команд, которые уже созданы разработчиком и доступны вам по правам. Нужной команды нет в списке? Значит, её нужно создать. Пользовательская настройка свои действия добавлять не умеет.
Новая команда и кнопка в Конфигураторе
Для создания собственной кнопки нужны Конфигуратор и роль с правом на изменение конфигурации. Принцип в управляемых формах такой: сначала команда, потом кнопка, привязанная к команде.
- Откройте Конфигуратор для нужной базы.
- В дереве конфигурации найдите объект (документ, справочник, обработку) и откройте его форму двойным щелчком.
- В редакторе формы перейдите на закладку «Команды» и нажмите «Добавить».
- Задайте имя, заголовок и подсказку. Для значка выберите картинку.
- В поле «Действие» нажмите лупу. Платформа создаст процедуру-обработчик на клиенте.
- На закладке «Элементы» найдите командную панель формы и перетащите в неё команду из списка.
- Запустите отладку и проверьте кнопку в деле.
Пример обработчика, который сообщает пользователю информацию:
&НаКлиенте
Процедура ПроверитьКонтрагента(Команда)
Сообщить("Проверка запущена для: " + Объект.Контрагент);
КонецПроцедуры
Реальные задачи сложнее: серверный вызов, открытие формы, запись данных. Но принцип тот же: действие живёт в процедуре, на неё указывает команда, а команду показывает кнопка.
Где ещё размещают кнопку
- В группе «Подменю» командной панели, если кнопок много.
- Рядом с полем ввода как дополнительную кнопку поля.
- В контекстном меню таблицы, если действие касается строки.
- В командном интерфейсе раздела: команда объекта доступна в панели действий.
⚠️ Правка типовой конфигурации на поддержке меняет её состав. Каждое обновление потом придётся объединять вручную. Для типовых решений лучше второй путь, расширение.
Расширение конфигурации: кнопка без снятия с поддержки
Расширение появилось в платформе 8.3.6. Оно хранит ваши изменения отдельно, поэтому обновление типовой конфигурации их не ломает. Для кнопок на типовых формах это основной способ.
Порядок такой:
- В Конфигураторе откройте
Конфигурация → Расширения конфигурациии добавьте новое расширение. - Откройте конфигурацию расширения (
Конфигурация → Открыть конфигурацию расширения). - В основной конфигурации найдите нужную форму, выберите «Добавить в расширение». Объект и форма будут заимствованы.
- Откройте заимствованную форму в расширении и добавьте команду и кнопку, как в предыдущем разделе.
- Загрузка и применение — отдельные шаги: сохраните расширение в базу, затем выполните «Обновить конфигурацию базы данных».
Расширение можно выгрузить в файл .cfe и подключить в другой базе. Для этого на форме списка расширений есть команды сохранения и загрузки файла.
| Способ | Когда подходит | Риски |
|---|---|---|
| Настройка пользователем | Нужная команда есть, надо вынести | Только для вас; слетает при сбросе настроек |
| Конфигуратор (своя конфигурация) | Конфигурация написана вами | Нужен доступ разработчика |
| Конфигуратор (типовая на поддержке) | Почти никогда | Объединение при каждом обновлении |
| Расширение | Типовая форма, новая кнопка | Нужно следить за совместимостью при обновлении |
Заимствуйте только то, что собираетесь менять. Каждый заимствованный объект расширение обязано поддерживать согласованным с основной конфигурацией.
Показ и скрытие кнопок кодом
Бывает, что кнопка нужна не всем. Видимость задают программно, в обработчике создания формы на сервере.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.ПроверитьКонтрагента.Видимость = РольДоступна("Бухгалтер");
КонецПроцедуры
Здесь ПроверитьКонтрагента — имя кнопки на форме. Для пользователей без роли кнопка просто не отрисуется.
Видимость и доступность — разные свойства. Скрытая кнопка не видна вообще. Недоступная видна серой и не нажимается. Для подсказки «почему нельзя» часто лучше недоступность.
Динамическое добавление
Кнопку можно создать из кода, когда набор действий зависит от данных. Команда и кнопка создаются парой:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НоваяКоманда = Команды.Добавить("СформироватьОтчет");
НоваяКоманда.Заголовок = "Сформировать отчёт";
НоваяКоманда.Действие = "СформироватьОтчетВыполнить";
НоваяКнопка = Элементы.Добавить("КнопкаСформироватьОтчет", Тип("КнопкаФормы"), Элементы.ФормаКоманднаяПанель);
НоваяКнопка.ИмяКоманды = "СформироватьОтчет";
КонецПроцедуры
&НаКлиенте
Процедура СформироватьОтчетВыполнить(Команда)
Сообщить("Отчёт формируется");
КонецПроцедуры
Имя ФормаКоманднаяПанель — стандартное имя автоматической командной панели. Если вы переименовали группу или отключили автозаполнение, используйте своё имя.
Динамические элементы живут только пока открыта форма. Платформа не запоминает их в настройках пользователя.
Права и функциональные опции
Видимостью управляют и без кода. Команда не покажется, если у пользователя нет права на объект. Её скроет и выключенная функциональная опция, например отключённый учёт, к которому команда относится. Эти механизмы надёжнее проверки роли в коде, потому что работают одинаково в любой форме.
Еще → Изменить форму… она могла быть скрыта. Сбросьте стандартные настройки. Затем проверьте права: роль может не давать доступа к команде.&НаКлиенте.Порядок, группы и значки: чтобы панель не превратилась в свалку
Десять кнопок в ряд никто не читает. Несколько правил, которые держат панель в порядке.
- Главное действие формы ставьте первым и оформляйте как кнопку по умолчанию. В свойствах кнопки это отдельный флажок.
- Редкие команды собирайте в группу-подменю. Заголовок группы короткий: «Печать», «Проверки», «Выгрузка».
- Для часто нажимаемой кнопки задайте картинку и подсказку. Значок ускоряет поиск взглядом, а подсказка объясняет, что произойдёт, до нажатия.
- Название пишите глаголом: «Проверить контрагента», а не «Проверка».
- Кнопку, которая меняет данные, не ставьте рядом с безобидной. Случайный клик по соседней команде стоит дороже, чем лишний шаг мышью.
Как передать настройку коллегам
Личная настройка формы остаётся у одного пользователя. Если вы собрали удачную раскладку и хотите раздать её отделу, есть два пути:
- Администратор сохраняет настройку как общую в окне настройки формы, после чего её видят остальные.
- Разработчик фиксирует нужное в самой форме (конфигурация или расширение), и кнопка появляется у всех, у кого есть права на команду.
Второй путь надёжнее: общие настройки пользователей могут быть сброшены, а то, что записано в форме, остаётся при любом сбросе.
Когда лучше не добавлять кнопку вовсе
Если действие нужно раз в месяц, отдельная кнопка только занимает место. Для такого случая подойдёт команда из меню Еще или отчёт в разделе. Если действие нужно только одной роли, делайте кнопку видимой лишь для неё. А если требуется «как в соседней базе», сначала выясните, какая именно команда там стоит: часто нужная кнопка уже есть, просто скрыта чьей-то личной настройкой.
Что проверить после добавления
Мелочи, из-за которых «не работает » на пустом месте:
- форма открыта заново, а не осталась со старого сеанса;
- у тестового пользователя та же роль, что у реальных исполнителей;
- заголовок кнопки влезает в панель, длинные названия обрезаются;
- кнопка не дублирует уже существующую команду в меню «Еще»;
- на мобильном клиенте и в веб-клиенте панель ведёт себя так же.
Две минуты теста под обычной учётной записью экономят письма от пользователей: администратор всегда видит больше, чем обычный сотрудник.