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

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

При переходе от разработки на управляемых формах к обычным формам (или при поддержке старых конфигураций) программисты часто сталкиваются с тем, что привычный механизм подсистем здесь работает иначе. Если в управляемом приложении достаточно включить объект в подсистему, чтобы он появился в интерфейсе, то в обычном приложении интерфейс строится по принципу «ручного конструирования».

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

Различие в подходах: Подсистемы vs Интерфейсы

Проанализируем ключевое различие. В управляемых формах Подсистемы определяют командный интерфейс автоматически. Платформа сама решает, где и как отрисовать ссылку на документ, исходя из настроек подсистемы. В обычных формах (версии 8.0, 8.1 и 8.2/8.3 в режиме обычного приложения) за это отвечает специальный объект метаданных — Интерфейс. Эти объекты расположены в дереве конфигурации в ветке Общие -> Интерфейсы.

Если ваша база пустая, в ней может не быть ни одного созданного интерфейса. В этом случае система запускается с «пустым» меню, где доступны только стандартные пункты: «Файл», «Правка», «Сервис», «Операции», «Окна» и «Справка». Меню «Операции» — это системный инструмент, который дает доступ ко всем объектам метаданных, но он неудобен для конечного пользователя. Наша задача — создать дружелюбное меню.

Шаг 1: Создание нового интерфейса в конфигураторе

Разберем процесс создания интерфейса по шагам:

  1. Откроем конфигуратор вашей базы данных.
  2. В дереве метаданных найдем ветку Общие, а в ней подраздел Интерфейсы.
  3. Нажмем правую кнопку мыши и выберем пункт «Добавить».
  4. В открывшемся окне свойств укажем «Имя» (например, ОсновнойИнтерфейс) и «Синоним» (то, что будет видеть пользователь, если интерфейсов несколько).

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

Шаг 2: Наполнение меню документами и отчетами

В редакторе интерфейсов мы видим две основные области: меню (текстовые пункты) и панели инструментов (иконки). Рассмотрим, как добавить новый пункт меню, например, «Документы».

Для создания структуры выполним следующие действия:

  1. Нажмем правой кнопкой мыши на пустом месте в строке меню и выберем «Новое меню» (или «Добавить»). Назовем его «Документы».
  2. Чтобы добавить внутрь этого меню конкретный документ, нужно создать подпункт.
  3. Самый быстрый способ наполнения — использование механизма «Вставить из метаданных». В панели инструментов редактора интерфейсов есть соответствующая кнопка. Нажмем её и в появившемся дереве метаданных отметим галочками те документы, справочники или отчеты, которые должны появиться в этом интерфейсе.
  4. Система автоматически создаст пункты меню с правильными названиями и сопоставит их с нужными действиями (открытие списка, создание нового и т.д.).

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

Шаг 3: Назначение интерфейса пользователю

Создать интерфейс недостаточно — система должна знать, кому его показывать. Выясним, как связать интерфейс с конкретным пользователем системы.

Существует два основных способа назначения:

  1. Через свойства пользователя: Перейдем в меню «Администрирование -> Пользователи». Выберем нужного пользователя и на закладке «Прочие» найдем поле «Основной интерфейс». Выберем созданный нами объект.
  2. Через роли: В свойствах каждой Роли (в дереве конфигурации) также можно указать интерфейс. Если пользователю назначено несколько ролей, 1С попытается «склеить» (объединить) интерфейсы этих ролей при запуске.

Обратите внимание: если пользователю не назначен ни один интерфейс, он будет видеть только стандартное меню «Операции». Чтобы скрыть меню «Операции», необходимо обязательно создать и назначить хотя бы один пользовательский интерфейс.

Шаг 4: Программное управление интерфейсом

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

Рассмотрим пример кода, который позволяет переключить интерфейс программно. Это может быть полезно, если в вашей конфигурации предусмотрены разные режимы работы для одного и того же сотрудника (например, «Кладовщик» и «Менеджер»).


// Пример переключения на конкретный интерфейс
Процедура ПереключитьНаИнтерфейсБухгалтера()
    // Устанавливаем интерфейс по его имени в конфигураторе
    ГлавныйИнтерфейс.Установить("БухгалтерскийИнтерфейс");
КонецПроцедуры

Также мы можем управлять видимостью отдельных панелей инструментов, если они были созданы в редакторе интерфейса:


// Скрыть панель инструментов "Стандартная"
ГлавныйИнтерфейс.ПанелиИнструментов.Стандартная.Видимость = Ложь;

Полезные советы по настройке

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

1. Переключаемые интерфейсы. Если у интерфейса в конфигураторе заполнено свойство «Подпись» и не установлена галочка «Не переключаемый», пользователь сможет самостоятельно менять его в режиме «Предприятие» через меню Сервис -> Переключить интерфейс.

2. Использование картинок. Для пунктов меню и кнопок на панелях рекомендуется выбирать стандартные или загружать свои картинки. Это значительно ускоряет навигацию пользователя в программе.

3. Группировка. Используйте разделители в меню, чтобы визуально отделять блоки документов от отчетов. В редакторе интерфейсов это делается созданием пункта с типом «Разделитель».

4. Горячие клавиши. Не забудьте назначить сочетания клавиш (например, Ctrl+1) для наиболее часто используемых журналов документов. Это настраивается в свойствах конкретного пункта меню в редакторе интерфейсов.

Таким образом, мы проанализировали процесс создания меню «с нуля» в обычном приложении. Несмотря на то, что это требует ручного труда по сравнению с управляемыми формами, такой подход дает разработчику полный контроль над тем, что и в каком порядке видит пользователь на своем экране.

← На главную