Когда в одной информационной базе работает большое количество сотрудников из разных подразделений или магазинов, стандартное окно выбора пользователя превращается в бесконечный список. Это замедляет работу кассиров и продавцов, а также создает риски безопасности. Рассмотрим подробнее, как организовать вход в систему так, чтобы сотрудники видели только свои учетные записи или заходили в программу автоматически.
Самый простой и быстрый способ — создание на рабочем столе терминального сервера отдельных ярлыков для каждого пользователя или группы пользователей. Разберем, как настроить параметры командной строки 1С. Для этого в свойствах ярлыка в поле "Объект" после пути к исполняемому файлу добавьте следующие ключи:
/N "ИмяПользователя" — предустанавливает имя пользователя в окне авторизации./P "Пароль" — позволяет сразу войти в систему без ввода пароля (используйте осторожно, так как пароль виден в свойствах ярлыка)./WA- — отключает попытку автоматической Windows-авторизации, если она настроена, и принудительно вызывает окно 1С.Проанализируем пример строки запуска для конкретного продавца:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"C:\Bases\Trade" /N"Продавец Касса 1" /P"12345"
Если создать такие ярлыки для каждого сотрудника магазина, им останется только кликнуть по своему имени. Это исключает поиск в общем списке из сотен позиций.
Если вы хотите, чтобы при запуске 1С (без параметров в ярлыке) пользователь видел только ограниченный список, воспользуйтесь встроенным свойством платформы. В режиме "Конфигуратор" перейдем в меню "Администрирование" — "Пользователи". В карточке каждого пользователя на вкладке "Основные" найдем флажок "Показывать в списке выбора".
Рассмотрим стратегию настройки:
/N).Это значительно повышает безопасность базы данных, так как злоумышленник не увидит перечень логинов при попытке входа.
В терминальной среде (RDP) наиболее эффективным методом является использование авторизации средствами операционной системы. Выясним, как это работает: пользователь уже авторизовался в Windows под своей учетной записью. 1С может подхватить этот логин и войти в базу автоматически.
Разберем этапы настройки:
/WA-.В этом случае пользователю вообще не нужно выбирать себя в списке 1С. Программа откроется мгновенно под тем же именем, под которым выполнен вход в терминал.
Если продавцов много и они часто меняются, создавать ярлыки вручную неудобно. Мы можем автоматизировать этот процесс. Создадим простой .bat файл, который будет предлагать выбор магазина. Посмотрим на пример кода для такого скрипта:
@echo off
echo Выберите ваш магазин:
echo 1 - Магазин Север
echo 2 - Магазин Юг
set /p shop="Введите номер: "
if "%shop%"=="1" start "" "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\1C_Base" /N"Продавец_Север"
if "%shop%"=="2" start "" "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\1C_Base" /N"Продавец_Юг"
Такой подход позволяет иметь один файл запуска на рабочем столе, который заменяет громоздкие стандартные списки 1С.
Для продвинутых пользователей существует вариант создания легкой базы-запускалки или специального кода в процедуре ПередЗапускомСистемы. Суть метода заключается в том, что 1С запускается под "общим" техническим пользователем, открывает форму со списком сотрудников именно этого магазина (список можно хранить в константах или справочнике), а после выбора — перезапускает 1С под нужным сотрудником.
Проанализируем примерный алгоритм в коде:
Процедура ПередЗапускомСистемы(Отказ)
// Проверяем, запущен ли сеанс под "Выборщиком"
Если ИмяПользователя() = "ВыборПользователя" Тогда
// Открываем форму со списком сотрудников магазина
ВыбранныйПользователь = ОткрытьФормуМодально("Обработка.ВыборСотрудника.Форма");
Если ЗначениеЗаполнено(ВыбранныйПользователь) Тогда
// Формируем строку запуска для нового сеанса
ПараметрыЗапуска = "/N """ + ВыбранныйПользователь + """";
ЗапуститьПриложение(СтрокаСоединенияИнформационнойБазы() + " " + ПараметрыЗапуска);
КонецЕсли;
// Завершаем текущий технический сеанс
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
КонецПроцедуры
Системные администраторы могут использовать файл ibases.v8i, в котором хранятся настройки списка баз. Для каждого подразделения можно подготовить свой файл v8i, где в параметре AdditionalParameters будет прописан ключ /N с соответствующим списком. С помощью групповых политик Windows нужный файл можно подкладывать в профиль пользователя в зависимости от его принадлежности к группе в Active Directory.
Рассмотрим структуру записи в файле ibases.v8i:
[Магазин №5]
Connect=File="C:\1C_Bases\Retail";
ID=...
OrderInList=1
Folder=/
AdditionalParameters=/N "Кассир5"
Мы рассмотрели несколько способов решения проблемы длинных списков. Выбор конкретного метода зависит от вашей инфраструктуры:
/N (Решение 1) или скрытие из списка выбора (Решение 2).Помните, что удобство входа не должно идти в ущерб безопасности: не рекомендуем хранить пароли в открытом виде в ярлыках, если к компьютеру имеют доступ посторонние лица.