При разработке и адаптации типовых конфигураций на платформе 1С:Предприятие 8.3 (Управляемые формы) часто возникает задача упростить жизнь пользователю, направив его в нужный раздел сразу после авторизации. В интерфейсе «Такси» стандартным поведением является открытие Начальной страницы, однако для сотрудников узкой специализации (например, менеджеров по продажам или кладовщиков) гораздо эффективнее сразу отображать содержимое конкретной подсистемы.
В этой статье мы подробно разберем, почему стандартные методы могут не срабатывать, и рассмотрим несколько надежных способов программного переключения фокуса на нужную подсистему или объект при старте системы.
Самый очевидный и заложенный платформой механизм — это использование метода ПерейтиПоНавигационнойСсылке(). Навигационная ссылка представляет собой уникальный адрес объекта или раздела внутри информационной базы. Для обращения к разделу (подсистеме) используется специальный формат строки.
Проанализируем пример кода, который обычно размещают в модуле управляемого приложения в процедуре ПриНачалеРаботыСистемы:
Процедура ПриНачалеРаботыСистемы()
// Пытаемся открыть раздел "Продажи"
ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/Продажи");
КонецПроцедуры
Важные нюансы:
"e1cib/navigationpoint/ИмяПодсистемы" необходимо указывать именно Имя подсистемы, как оно задано в конфигураторе (в дереве метаданных), а не её синоним.e1cib/navigationpoint/Продажи.ОптовыеПродажи.Часто разработчики сталкиваются с тем, что код в ПриНачалеРаботыСистемы срабатывает, но пользователь все равно видит пустую начальную страницу. Это происходит из-за того, что на момент выполнения команды интерфейс приложения еще не полностью отрисован, и системные механизмы открытия рабочего стола «перебивают» программный переход.
Чтобы обойти это ограничение, рассмотрим использование обработчика ожидания. Это позволит системе завершить все стандартные процедуры инициализации и выполнить наш код спустя доли секунды после появления окна программы.
Для реализации этого метода выполним следующие шаги:
1. В модуле управляемого приложения пропишем подключение обработчика:
Процедура ПриНачалеРаботыСистемы()
// Запускаем процедуру перехода через 0.1 секунды
ПодключитьОбработчикОжидания("Подключаемый_ОткрытьНужныйРаздел", 0.1, Истина);
КонецПроцедуры
2. Там же создадим саму процедуру (она обязательно должна быть экспортной):
Процедура Подключаемый_ОткрытьНужныйРаздел() Экспорт
ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/Склад");
КонецПроцедуры
Такой подход гарантирует, что команда перехода будет выполнена в «свободном» потоке, когда основное окно уже готово принимать команды управления интерфейсом.
Разберем ситуацию с точки зрения юзабилити. Пользователю редко нужно просто «открыть раздел», чаще ему нужно увидеть список документов, с которыми он работает. Платформа позволяет переходить не только к точке навигации подсистемы, но и к конкретной форме списка.
Если мы откроем форму списка основного документа подсистемы, 1С автоматически подсветит нужную подсистему в панели разделов. Это решают проблему «неактивного меню функций», о которой упоминалось в обсуждении.
Пример ссылки для открытия списка документов «Заказ покупателя»:
ПерейтиПоНавигационнойСсылке("e1cib/list/Документ.ЗаказПокупателя");
Выясним причину, почему это лучше: пользователь сразу получает рабочий инструмент, а не просто пустую область с командами слева. Это сокращает количество кликов и повышает эффективность работы.
Если пользователю требуется постоянный доступ к объектам определенной подсистемы, рассмотрим вариант изменения Начальной страницы. Вместо того чтобы пытаться «перепрыгнуть» на другой раздел, мы можем вывести нужные формы прямо на рабочий стол.
Шаги для настройки в конфигураторе:
Если же мы хотим оставить рабочий стол пустым, но при этом автоматически открывать раздел, важно убедиться, что в составе начальной страницы для данной роли не выбрано ни одной формы. В некоторых версиях платформы, если на рабочем столе нет активных форм, система автоматически фокусируется на первом доступном разделе командного интерфейса.
Существует еще один метод, не требующий внесения изменений в код конфигурации. Мы можем настроить ярлык запуска для конкретных групп пользователей, используя параметр командной строки /URL.
Рассмотрим формат строки запуска:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Bases\MyBase" /URL "e1cib/navigationpoint/Продажи"
Этот способ идеально подходит для крупных компаний, где разные отделы работают в одной базе. Системный администратор просто создает разные ярлыки для разных отделов, и при запуске 1С каждый сотрудник сразу попадает в свое рабочее пространство.
Выбор конкретного метода зависит от архитектуры вашей конфигурации и бизнес-задач:
ПерейтиПоНавигационнойСсылке через ПодключитьОбработчикОжидания.e1cib/list/...) самого важного документа./URL.Правильная настройка фокуса при запуске значительно снижает порог вхождения для новых сотрудников и делает работу в системе более комфортной.