Как скрыть кнопки в окне авторизации 1С:Предприятие и настроить быстрый вход для кассиров?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При автоматизации рабочих мест кассиров (РМК) на базе «1С:Предприятие» перед разработчиками и системными администраторами часто встает задача максимального ускорения процесса авторизации. Каждый лишний клик мышкой или дополнительное нажатие клавиш на клавиатуре увеличивает время обслуживания покупателя на кассе. Типичный пример — стандартное окно авторизации 1С, в котором кассиру приходится совершать лишние действия, чтобы перенести фокус ввода на нужное поле и нажать кнопку «ОК».

В этой статье мы подробно разберем, почему стандартными средствами конфигуратора невозможно изменить встроенное окно авторизации, и рассмотрим эффективные альтернативные методы, которые позволяют убрать лишние шаги и оптимизировать интерфейс под клавиатурный ввод или работу со сканером штрихкодов.

Почему нельзя скрыть кнопки «ОК» и «Отмена» стандартными средствами 1С?

Для начала проанализируем ситуацию с технической стороны платформы. Окно выбора пользователя и ввода пароля, которое появляется при старте «тонкого» или «толстого» клиента — это нативный ресурс самой платформы (скомпилированный в исполняемых файлах 1cv8.exe или 1cv8c.exe).

На этом этапе запуска система еще не открыла базу данных и не начала исполнять код вашей конфигурации. Следовательно, изнутри встроенного языка 1С физически невозможно:

  1. Программно скрыть кнопки «ОК» или «Отмена».
  2. Переопределить порядок обхода (Tab) или принудительно установить фокус на конкретное поле.
  3. Изменить дизайн и состав элементов формы.

Тем не менее, решить задачу минимизации кликов можно с помощью обходных архитектурных путей, которые мы подробно разберем ниже.

Решение 1. Метод «Технического пользователя» и кастомной управляемой формы

Это наиболее надежный и гибкий метод, который дает разработчику 100% контроля над интерфейсом авторизации кассира. Суть метода заключается в отказе от стандартного окна авторизации 1С в пользу собственной формы ввода пароля.

Рассмотрим по шагам реализацию этого механизма:

Шаг 1. Настройка автоматического входа

В базе данных создается специальный пользователь (например, с именем ВходРМК) без пароля. Для этого пользователя настраиваются минимальные права доступа — только на запуск системы и открытие одной специальной формы. В ярлыке запуска 1С на рабочем столе кассира прописываются параметры командной строки для автоматического входа под этой учетной записью:


"C:\Program Files\1cv8\common\1estart.exe" ENTERPRISE /F "C:\Bases\Trade" /N "ВходРМК"

При таком запуске стандартное окно авторизации вообще не появляется — программа сразу загружается под техническим пользователем за доли секунды.

Шаг 2. Перехват события запуска в конфигурации

В модуле управляемого приложения в процедуре ПриНачалеРаботыСистемы прописываем условие: если программа запущена под пользователем ВходРМК, стандартный интерфейс не открывается, а пользователю мгновенно выводится наша кастомная форма авторизации.


Процедура ПриНачалеРаботыСистемы()
    
    ТекущийПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
    
    Если ТекущийПользовательИБ.Имя = "ВходРМК" Тогда
        // Открываем кастомную форму авторизации кассира
        ОткрытьФорму("ОбщаяФорма.ФормаАвторизацииКассира");
        // Отменяем стандартное открытие начальной страницы для этого сеанса
        РежимИспользованияВ Ссылке = АльтернативныйРежим;
    КонецЕсли;
    
КонецПроцедуры

Шаг 3. Создание и настройка кастомной формы

В конфигураторе создаем общую форму ФормаАвторизацииКассира. В этой форме мы имеем полную свободу действий:


&НаКлиенте
Процедура КодАвторизацииПриИзменении(Элемент)
    
    // Проверяем введенный код или считанный штрихкод на сервере
    ИмяПользователя = ПолучитьПользователяПоКодуНаСервере(КодАвторизации);
    
    Если ЗначениеЗаполнено(ИмяПользователя) Тогда
        // Здесь мы можем либо переключить интерфейс текущей сессии под кассира,
        // либо завершить эту сессию и запустить новую под реальным пользователем 1С:
        ПараметрыЗапуска = СтрШаблон("/N ""%1"" /P ""%2""", ИмяПользователя, ПарольПользователя);
        ЗапуститьПриложение("1cv8c.exe ENTERPRISE /F ""C:\Bases\Trade"" " + ПараметрыЗапуска);
        ЗавершитьРаботуСистемы(Ложь);
    Иначе
        ПоказатьПредупреждение(, "Неверный код сотрудника! Повторите попытку.");
        КодАвторизации = "";
    КонецЕсли;
    
КонецПроцедуры

Решение 2. Интеграция авторизации с операционной системой (Active Directory)

Если кассовые компьютеры находятся в домене организации, идеальным решением будет использование штатной авторизации операционной системы (Windows Authentication). При этом подходе стандартное окно 1С не показывается вовсе.

Разберем, как это настроить:

  1. В свойствах пользователя информационной базы 1С устанавливаем флаг Аутентификация операционной системы.
  2. В поле выбора пользователя указываем имя учетной записи Windows в формате DOMAIN\Username.
  3. При входе пользователя в операционную систему под своей учетной записью запуск 1С будет происходить автоматически без запроса имени и пароля. Кассир сразу попадает в рабочее место.

Решение 3. Использование сторонних утилит автоматизации (AutoHotkey)

Если конфигурация находится на замке (на поддержке) и вносить изменения в код нельзя, то для скрытия кнопок нативного окна и передачи фокуса можно использовать скрипты автоматизации на уровне операционной системы. Популярным инструментом для этого является утилита AutoHotkey (AHK).

Проанализируем пример скрипта, который в фоновом режиме отслеживает появление окна авторизации 1С, скрывает ненужные элементы и передает фокус в поле ввода:


#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

Loop
{
    ; Ожидаем появления окна авторизации 1С:Предприятия
    WinWait, Авторизация доступа, , 10
    if (ErrorLevel = 0)
    {
        ; Скрываем кнопку "Отмена" (обычно Button2)
        Control, Hide, , Button2, Авторизация доступа
        
        ; Переводим фокус на поле ввода пароля (обычно Edit1 или Edit2 в зависимости от версии платформы)
        ControlFocus, Edit2, Авторизация доступа
    }
    Sleep, 500 ; Пауза цикла для снижения нагрузки на процессор
}

Этот скрипт можно скомпилировать в легковесный исполняемый .exe файл и поместить в автозагрузку Windows на кассовом терминале.

Решение 4. Штатные возможности современных версий платформы (8.3.26+)

Выясним, какие инструменты предлагает сама фирма 1С в актуальных версиях платформы. Начиная с версии 8.3.26, разработчики существенно модернизировали механизмы аутентификации:

Используя предложенные методики, вы сможете полностью исключить лишние нажатия клавиш на РМК, повысить скорость работы персонала и защитить систему от ошибочных действий пользователей при входе в программу.

← На главную