В процессе разработки и поддержки прикладных решений на платформе «1С:Предприятие» разработчики регулярно сталкиваются с необходимостью тестирования системы под различными учетными записями. Проверка прав доступа, тестирование ограничений на уровне записей (RLS), оценка видимости элементов интерфейса и доступности кнопок — все эти задачи требуют быстрой смены пользователя. Открывать каждый раз программу через стандартный ярлык запуска крайне неэффективно. Гораздо удобнее запускать отладку под нужным пользователем прямо из Конфигуратора.
В этой статье мы подробно рассмотрим, как настроить автоматическую авторизацию или принудительный вызов окна выбора пользователя при старте отладки из Конфигуратора, разберем полезные ключи командной строки и научимся выполнять эти действия программно.
Для того чтобы настроить поведение системы при запуске режима «1С:Предприятие» по кнопке F5 (Начать отладку) или Ctrl + F5 (Запуск без отладки), обратимся к стандартным настройкам среды разработки.
Разберем этот процесс по шагам:
В средней части формы мы увидим группу настроек «Пользователь». Здесь доступны три режима работы, которые определяют поведение системы при старте:
Таким образом, если мы хотим при запуске из Конфигуратора постоянно тестировать сеанс под конкретной ролью, нам достаточно один раз указать нужное имя в этом поле.
Иногда возникает ситуация, когда в базе настроена автоматическая авторизация через операционную систему (Active Directory), но нам необходимо временно обойти эту настройку и принудительно вызвать диалоговое окно авторизации «1С:Предприятия» для ручного ввода логина и пароля.
Для реализации этого сценария воспользуемся специальными параметрами командной строки:
/WA-
Этот параметр принудительно запрещает использовать аутентификацию операционной системы. В результате платформа проигнорирует текущую доменную учетную запись пользователя и обязательно откроет стандартное диалоговое окно выбора пользователя и ввода пароля.
Если же мы хотим, наоборот, сразу передавать учетные данные конкретного тестового пользователя непосредственно при старте отладки, мы можем прописать в поле «Параметры запуска» следующие ключи:
/N "ИмяПользователя" /P "ПарольПользователя"
Например, запись /N "Иванов" /P "Pass123" позволит мгновенно авторизоваться под учетной записью Иванова без вывода диалоговых окон на экран.
Рассмотрим ситуацию, когда перед разработчиком стоит задача реализовать программный запуск нового сеанса «1С:Предприятия» непосредственно из кода приложения (например, при нажатии кнопки на форме или при выполнении определенного алгоритма перехода между пользователями).
Для решения этой задачи воспользуемся встроенным методом ЗапуститьСистему(). Нам потребуется программно сформировать строку подключения к текущей базе данных и передать в нее необходимые параметры авторизации.
Проанализируем следующий пример кода:
// Получаем строку соединения с текущей информационной базой
СтрокаПодключения = СтрокаСоединенияИнформационнойБазы();
// Задаем параметры целевого пользователя
ИмяНовогоПользователя = "МенеджерПоПродажам";
ПарольПользователя = "SecurePassword456";
// Формируем параметры запуска системы
// Ключ /IBConnectionString указывает путь к базе данных
// Ключи /N и /P передают имя пользователя и пароль соответственно
СтрокаЗапуска = "ENTERPRISE /IBConnectionString """ + СтрокаПодключения + """ /N """ + ИмяНовогоПользователя + """ /P """ + ПарольПользователя + """";
// Выполняем запуск нового клиентского сеанса
ЗапуститьСистему(СтрокаЗапуска);
При выполнении этого кода система откроет новое независимое окно «1С:Предприятия» и автоматически авторизует в нем указанного пользователя.
Также полезно знать о возможностях передачи произвольных параметров в запускаемый сеанс с помощью ключа командной строки /C. Например, если нам нужно передать признак работы в тестовом режиме, мы можем дописать этот ключ в строку запуска. В запущенном сеансе переданное значение можно легко прочитать в модуле управляемого приложения с помощью глобального свойства ПараметрыЗапуска.
Применяя указанные методы на практике, важно учитывать особенности работы механизмов отладки платформы «1С:Предприятие 8»:
/РежимОтладки. Это заставит платформу выполнять длительные и фоновые процессы непосредственно в текущем клиентском сеансе, что существенно облегчит поиск ошибок прав доступа.