Как добавить свою обработку в определенный раздел программы 1С?

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

При разработке в среде 1С:Предприятие 8.3 (Управляемое приложение) начинающие специалисты часто сталкиваются с ситуацией, когда созданный объект (обработка или отчет) никак не хочет появляться в пользовательском интерфейсе. Казалось бы, объект создан, форма нарисована, но в нужном разделе программы заветный пункт меню отсутствует. Разберем подробно, как правильно настроить состав подсистем и командный интерфейс, чтобы ваша разработка стала доступна пользователям.

Почему простого создания обработки недостаточно?

В современных конфигурациях 1С (особенно на базе БСП, таких как УТ 11, ERP или КА) интерфейс строится динамически. Простого наличия обработки в дереве метаданных недостаточно. Система должна «понимать», в каком именно месте раздела (в панели навигации или панели действий) и при каких условиях (права, функциональные опции) должна отображаться ссылка на форму. Рассмотрим основные этапы решения этой задачи.

Этап 1: Создание команды обработки

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

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

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ОткрытьФорму("Обработка.МояНоваяОбработка.Форма.Форма");
КонецПроцедуры

Важно обратить внимание на свойство команды Тип параметра команды. Если мы хотим, чтобы обработка была доступна в общем разделе (сервис или навигация), это поле должно оставаться пустым. Если же указать тип (например, СправочникСсылка.Номенклатура), команда станет контекстной и появится только в формах объектов этого справочника.

Этап 2: Настройка свойств команды и подсистем

Теперь выясним, как «привязать» созданную команду к конкретному разделу программы. Для этого в свойствах команды необходимо заполнить следующие поля:

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

Этап 3: Командный интерфейс и «Все подсистемы»

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

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

Этап 4: Роли и права доступа

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

  1. Проверим, добавлена ли обработка в соответствующую роль (например, в созданную вами роль для расширения).
  2. Убедимся, что установлены флажки на права Использование для команды и Просмотр для самой обработки.
  3. Если используется механизм расширений, проверим, чтобы в профиле групп доступа пользователя была добавлена роль из расширения.

Альтернативный метод: Использование БСП (Дополнительные обработки)

Если вы не хотите менять конфигурацию (оставляя её на поддержке), рассмотрим вариант добавления через механизм Библиотеки стандартных подсистем. Это позволяет добавить обработку в пользовательском режиме через раздел «Обслуживание — Дополнительные отчеты и обработки».

Для этого в модуле объекта обработки обязательно должна присутствовать функция СведенияОВнешнейОбработке. Пример структуры кода:


Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Наименование = "Моя обработка";
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = "Открыть мою обработку";
    НоваяКоманда.Идентификатор = "ОткрытьМоюОбработку";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    
    Возврат ПараметрыРегистрации;
КонецФункции

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

Типичные ошибки, которые стоит проверить

Если решение всё еще не найдено, проанализируем следующие факторы:

Таким образом, мы выяснили, что для успешного вывода обработки в интерфейс необходимо соблюдение цепочки: Объект -> Команда -> Подсистема -> Роль -> Настройка видимости. Пройдя по этим шагам, вы сможете гибко управлять интерфейсом программы и делать работу пользователей максимально удобной. Если требуется сформировать отдельный пользовательский раздел без изменения метаданных, можно использовать расширение для создания настраиваемой подсистемы и интерфейса.

← На главную