Многие пользователи и системные администраторы сталкиваются с тем, что платформа 1С автоматически подставляет имя последнего вошедшего пользователя в окно авторизации. В ряде случаев, особенно при работе через веб-клиент или на общих рабочих местах, это создает неудобства или нарушает требования безопасности. Давайте разберем, почему это происходит и как программно заставить систему каждый раз запрашивать ввод логина «с чистого листа».
Для начала выясним, почему 1С «запоминает» пользователя. Платформа использует локальный файл настроек def.usr, который располагается в профиле пользователя в директории %appdata%\1c\1cv8\. Этот файл сохраняет параметры последнего успешного сеанса для каждой информационной базы, включая имя пользователя, который входил в систему последним. Платформа делает это для удобства, чтобы сократить время на ввод данных, однако для администраторов это превращается в задачу по принудительной очистке этой «памяти».
Существует несколько подходов к решению данной проблемы — от простых настроек интерфейса до программного вмешательства в файловую систему.
Прежде чем прибегать к программированию, рассмотрим возможности платформы. В настройках списка информационных баз для конкретной базы можно установить флаг Не показывать в списке. Это уберет пользователя из выпадающего перечня, однако не гарантирует того, что система не подставит логин в поле ввода при открытии окна авторизации. Данный способ является лишь первым уровнем защиты и зачастую оказывается недостаточным.
Если стандартные настройки не дают нужного результата, наиболее надежным способом является принудительная очистка файла def.usr перед завершением работы или при старте приложения. Поскольку этот файл привязан к конкретному пользователю Windows и информационной базе, процесс очистки требует идентификации нужной папки.
Разберем алгоритм реализации программного решения на примере модуля приложения:
def.usr, соответствующий текущему сеансу.Пример кода, который можно реализовать в модуле приложения при завершении работы:
// Пример программной очистки файла настроек пользователя
ПутьКФайлу = ПолучитьПутьКФайлуНастроек(ТекущаяБазаGUID);
ТекстовыйФайл = Новый ТекстовыйДокумент;
ТекстовыйФайл.Записать(ПутьКФайлу, КодировкаТекста.UTF8);
Этот метод эффективно «обнуляет» кэш, заставляя 1С при следующем запуске открывать пустое поле логина. Важно помнить, что права на запись в папку профиля пользователя должны быть достаточными для выполнения такой операции.
Помимо программного удаления файлов, стоит рассмотреть следующие рекомендации:
Windows-аутентификацию. В этом случае 1С автоматически получает данные о текущем пользователе Windows, и необходимость в ручном вводе логина/пароля отпадает вовсе. Это наиболее профессиональный и безопасный путь развития системы.IIS или Apache. Использование режима инкогнито в браузере или настройка автоматической очистки Cookies при закрытии сессии браузера помогут решить проблему без вмешательства в код 1С.Анализируя ситуацию, мы приходим к выводу, что решение с очисткой def.usr является рабочим инструментом для специфических сценариев, но в долгосрочной перспективе лучше стремиться к централизованным методам управления доступом, таким как доменная авторизация.
Надеемся, данный разбор помог вам разобраться в механизмах авторизации 1С и выбрать оптимальный путь решения вашей задачи!