При разработке в среде 1С:Предприятие 8.3 (Управляемое приложение) начинающие специалисты часто сталкиваются с ситуацией, когда созданный объект (обработка или отчет) никак не хочет появляться в пользовательском интерфейсе. Казалось бы, объект создан, форма нарисована, но в нужном разделе программы заветный пункт меню отсутствует. Разберем подробно, как правильно настроить состав подсистем и командный интерфейс, чтобы ваша разработка стала доступна пользователям.
В современных конфигурациях 1С (особенно на базе БСП, таких как УТ 11, ERP или КА) интерфейс строится динамически. Простого наличия обработки в дереве метаданных недостаточно. Система должна «понимать», в каком именно месте раздела (в панели навигации или панели действий) и при каких условиях (права, функциональные опции) должна отображаться ссылка на форму. Рассмотрим основные этапы решения этой задачи.
Проанализируем структуру типичной обработки. Для того чтобы она появилась в интерфейсе, ей необходима специальная точка входа — Команда. Обычного наличия основной формы недостаточно для автоматического появления в меню раздела.
ОткрытьОбработку).
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("Обработка.МояНоваяОбработка.Форма.Форма");
КонецПроцедуры
Важно обратить внимание на свойство команды Тип параметра команды. Если мы хотим, чтобы обработка была доступна в общем разделе (сервис или навигация), это поле должно оставаться пустым. Если же указать тип (например, СправочникСсылка.Номенклатура), команда станет контекстной и появится только в формах объектов этого справочника.
Теперь выясним, как «привязать» созданную команду к конкретному разделу программы. Для этого в свойствах команды необходимо заполнить следующие поля:
Панель навигации.Обычное. Если это вспомогательный инструмент — Панель действий.Сервис.Практический совет: если вы используете стандартные команды (например, для простых отчетов), убедитесь, что в свойствах самого объекта на вкладке «Команды» стоит флажок Использовать стандартные команды. Без него автоматическое включение в интерфейс не сработает.
Иногда даже после настройки подсистем пункт не появляется. Рассмотрим ситуацию, когда нужно детально настроить положение команды в интерфейсе. Вместо использования «Командного интерфейса основного раздела» (который часто бывает пустым или ограниченным), воспользуемся более мощным инструментом.
Нажмем правой кнопкой мыши на корень конфигурации (самая верхняя строка в дереве объектов) и выберем пункт Все подсистемы. Перед нами откроется окно, где в левой части перечислены все разделы программы, а в правой — команды, которые в них включены. Найдем нашу подсистему и проверим наличие нашей команды в списке. Здесь же можно настроить Видимость для конкретных ролей.
Проанализируем еще одну частую причину: отсутствие прав. Если у пользователя нет прав на просмотр обработки или выполнение команды, система скроет этот пункт интерфейса автоматически.
Использование для команды и Просмотр для самой обработки.Если вы не хотите менять конфигурацию (оставляя её на поддержке), рассмотрим вариант добавления через механизм Библиотеки стандартных подсистем. Это позволяет добавить обработку в пользовательском режиме через раздел «Обслуживание — Дополнительные отчеты и обработки».
Для этого в модуле объекта обработки обязательно должна присутствовать функция СведенияОВнешнейОбработке. Пример структуры кода:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Наименование = "Моя обработка";
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Открыть мою обработку";
НоваяКоманда.Идентификатор = "ОткрытьМоюОбработку";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Возврат ПараметрыРегистрации;
КонецФункции
После регистрации такой обработки в интерфейсе программы, она появится в указанном разделе (например, в меню «Дополнительные обработки»). Для быстрой разработки можно взять шаблон дополнительной обработки для БСП с готовой структурой регистрации и настроек.
Если решение всё еще не найдено, проанализируем следующие факторы:
/UpdateDBCfg или выполнение процедуры ОбновитьПовторноИспользуемыеЗначения().Таким образом, мы выяснили, что для успешного вывода обработки в интерфейс необходимо соблюдение цепочки: Объект -> Команда -> Подсистема -> Роль -> Настройка видимости. Пройдя по этим шагам, вы сможете гибко управлять интерфейсом программы и делать работу пользователей максимально удобной. Если требуется сформировать отдельный пользовательский раздел без изменения метаданных, можно использовать расширение для создания настраиваемой подсистемы и интерфейса.