Часто в процессе разработки или сопровождения конфигураций на платформе 1С:Предприятие 8.3 возникает ситуация, когда на начальной странице пользователя при входе в систему автоматически отображается форма, которая не была явно добавлена в структуру начальной страницы в Конфигураторе. Разберем пошагово, где искать причину такого поведения и как диагностировать источник «самовольного» открытия формы.
Первым делом проанализируем настройки самой конфигурации. В окне конфигурации необходимо найти раздел «Рабочая область начальной страницы». Для этого выполним следующие действия:
Важно помнить, что даже если нужная форма есть в списке, платформа может фильтровать её видимость на основе прав доступа (ролей). Если форма добавлена в рабочую область, но не должна быть видна всем, проверьте настройки ролей доступа к этому объекту.
Если в конфигураторе визуально всё выглядит стандартно, возможно, состав форм определяется программно при старте сеанса. Платформа предоставляет метод УстановитьСоставФорм, который позволяет динамически изменять видимость элементов начальной страницы. Мы можем найти использование этого метода во всей конфигурации или в подключенных расширениях.
Для поиска вызовов используем глобальный поиск (Ctrl+Shift+F) по ключевой фразе УстановитьСоставФорм. Это поможет выяснить, не переопределяет ли какой-либо общий модуль или расширение состав форм для конкретных пользователей.
В платформе 1С существует мощный механизм — «Хранилище системных настроек». Пользователь в режиме «1С:Предприятие» имеет возможность самостоятельно настроить вид начальной страницы через меню «Вид» -> «Настройка начальной страницы». Эти изменения сохраняются в базе данных для каждого конкретного пользователя индивидуально.
Чтобы проверить, не является ли причиной проблемы именно пользовательская настройка, выполним следующие шаги:
Часто функционал, который кажется стандартным, на самом деле реализован в расширении. Проверим список установленных расширений конфигурации. Возможно, в расширении переопределен модуль управляемого приложения или модуль сеанса.
Рассмотрим процедуру ПриНачалеРаботыСистемы. В ней разработчики нередко размещают код, который принудительно открывает форму методом ОткрытьФорму() или ОткрытьФормуМодально(). Хотя это не меняет состав начальной страницы, визуально для пользователя это выглядит как появление формы сразу после входа в систему.
Если теоретический анализ не дал результатов, перейдем к практической отладке:
ПриНачалеРаботыСистемы.Стек вызовов — это самый надежный инструмент. Он точно укажет, какой именно участок кода инициировал открытие формы, будь то обработчик ожидания, подписка на событие или вызов из модуля формы начальной страницы.
Для быстрого поиска причины придерживайтесь следующего порядка действий:
ОткрытьФорму.Такой комплексный подход позволит локализовать даже скрытую логику, которая кажется на первый взгляд необъяснимой.