Киоск в 1С 8.3: экран без лишних кнопок для терминала и ТСД
Содержание
Режим киоска в 1С включают двумя способами: в Конфигураторе задают свойству корня конфигурации «Режим основного окна клиентского приложения» значение «Киоск» или вызывают из модуля приложения КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.Киоск) в обработчике ПередНачаломРаботыСистемы. Режим появился в платформе 8.3.10 и работает в управляемом приложении: тонкий клиент, веб-клиент, толстый клиент в режиме управляемого приложения.
Сам по себе киоск только убирает элементы интерфейса. Чтобы человек у терминала не мог выйти в Windows или Android, понадобится ещё настройка операционной системы. Ниже обе части по порядку.
Что такое режим киоска в 1С и когда он нужен
Основное окно клиентского приложения в 8.3 умеет работать в пяти режимах. Они заданы перечислением РежимОсновногоОкнаКлиентскогоПриложения:
| Значение | Что видит пользователь |
|---|---|
Обычный | Привычный интерфейс «Такси»: панель разделов, функции, избранное, история |
РабочееМесто | Только начальная страница, без панели разделов |
ПолноэкранноеРабочееМесто | То же, но окно развёрнуто на весь экран |
ВстроенноеРабочееМесто | Рабочее место, встроенное в окно другого приложения |
Киоск | Минимум: на весь экран, без заголовка окна, без кнопок «свернуть/закрыть», без гиперссылки с именем пользователя и кнопки «О программе» |
Киоск рассчитан на людей, которым не нужно и нельзя видеть программу целиком:
- 🏭 кладовщик на складе с терминалом сбора данных (ТСД);
- 🧾 сотрудник на посту приёмки, который только сканирует коробки;
- 🖥️ информационная стойка или табло в цеху, где показывают одну форму;
- 🚪 терминал самообслуживания: запись, отметка прихода, выдача пропуска.
Пользователь видит одну-две формы, которые вы положили на начальную страницу. Панели разделов нет, поэтому открыть журнал документов или справочник через меню он не сможет.
Киоск не заменяет права доступа. Если у роли есть право на справочник, его можно открыть через ссылку или команду на форме. Урезайте роль под задачу отдельно.
Подготовка: что проверить перед включением киоска
Перед тем как трогать конфигурацию, пройдитесь по списку:
- Версия платформы. Номер должен быть не ниже 8.3.10. Посмотреть его можно в окне «О программе» в обычном режиме.
- Режим совместимости конфигурации. Свойство «Режим совместимости» у корня конфигурации. При значении ниже 8.3.10 свойство режима основного окна может быть недоступно.
- Тип приложения. Режим работает только в управляемом приложении. Толстый клиент в режиме обычного приложения его не поддерживает.
- Начальная страница. Подготовьте форму, которую увидит пользователь. В киоске это единственный экран, так что на нём должны быть все нужные команды, включая выход.
- Типовая или своя конфигурация. Для типовой на поддержке правьте не основную конфигурацию, а расширение. Иначе при следующем обновлении придётся сравнивать и объединять изменения.
Способ 1. Включить режим киоска для всей базы через свойство конфигурации
Подходит для отдельной базы под один терминал или для собственной небольшой конфигурации, где все пользователи работают в одном режиме.
- Откройте базу в Конфигураторе, затем
Конфигурация → Открыть конфигурацию. - Щёлкните правой кнопкой по корню дерева (имя конфигурации) и выберите «Свойства».
- В палитре свойств найдите «Режим основного окна клиентского приложения».
- Выберите значение «Киоск».
- Сохраните изменения и выполните
Конфигурация → Обновить конфигурацию базы данных(F7).
Свойство действует на всех пользователей базы, включая администратора. Сам Конфигуратор оно не затрагивает, поэтому вернуть обычный режим вы всегда сможете оттуда же.
Что положить на начальную страницу
В киоске видна только рабочая область начальной страницы. Её состав задают в Конфигураторе: контекстное меню корня конфигурации, пункт «Открыть рабочую область начальной страницы». Там выбирают шаблон колонок и добавляют формы.
Для терминала обычно хватает одной колонки и одной формы. Например, общей формы «РабочееМестоКладовщика» с полем штрихкода, таблицей отсканированного и кнопками «Записать» и «Завершить работу».
Способ 2. Включить киоск программно: код, расширение и свойства формы
Этот способ нужен, когда киоск должен включаться не у всех. Скажем, бухгалтерия работает в обычном интерфейсе, а складские терминалы в той же базе — в киоске.
Код в модуле приложения
Метод УстановитьРежимОсновногоОкна() можно вызвать только в обработчике ПередНачаломРаботыСистемы. Позже режим окна уже не меняется.
Самый простой вариант — включать киоск по параметру запуска. Его передают ключом /C в командной строке ярлыка.
Процедура ПередНачаломРаботыСистемы(Отказ)
Если СтрНайти(ПараметрЗапуска, "kiosk") > 0 Тогда
КлиентскоеПриложение.УстановитьРежимОсновногоОкна(
РежимОсновногоОкнаКлиентскогоПриложения.Киоск);
КонецЕсли;
КонецПроцедуры
Ярлык на терминале тогда выглядит так (путь к платформе подставьте свой):
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\sklad" /C"kiosk"
Для файловой базы вместо /S"сервер\база" укажите /F"D:\Bases\Sklad".
Киоск по роли пользователя
Параметр запуска можно убрать из ярлыка или поменять. Надёжнее привязать киоск к пользователю. Создайте роль, например «РежимКиоска», без прав (она служит только меткой), и проверьте её через общий серверный модуль с флагом «Вызов сервера»:
// Общий модуль КиоскСервер (Сервер, Вызов сервера)
Функция ВключатьКиоск() Экспорт
Возврат РольДоступна("РежимКиоска");
КонецФункции
// Модуль приложения
Процедура ПередНачаломРаботыСистемы(Отказ)
Если КиоскСервер.ВключатьКиоск() Тогда
КлиентскоеПриложение.УстановитьРежимОсновногоОкна(
РежимОсновногоОкнаКлиентскогоПриложения.Киоск);
КонецЕсли;
КонецПроцедуры
Роль «РежимКиоска» назначайте только учётным записям терминалов. Администраторам и бухгалтерам её не давайте, тогда они заходят в обычный интерфейс. Если удобнее, вместо роли проверяйте реквизит или группу пользователя.
То же самое в расширении для типовой конфигурации
Чтобы не снимать типовую с поддержки, создайте расширение (Конфигурация → Расширения конфигурации), добавьте в него общий модуль и роль, а в модуле приложения расширения — обработчик с аннотацией:
&После("ПередНачаломРаботыСистемы")
Процедура Киоск_ПередНачаломРаботыСистемы(Отказ)
Если Не Отказ И КиоскСервер.ВключатьКиоск() Тогда
КлиентскоеПриложение.УстановитьРежимОсновногоОкна(
РежимОсновногоОкнаКлиентскогоПриложения.Киоск);
КонецЕсли;
КонецПроцедуры
Расширение с ролью и модулем изменяет поведение запуска для всех. Сначала проверьте его на копии базы: ошибка в ПередНачаломРаботыСистемы не даст войти никому, у кого срабатывает условие.
Свойства самой формы
Форма на начальной странице тоже должна быть «киосковой»:
- 🔒 в форме-обработке для отдельных окон ставьте свойство «Режим открытия окна» = «Блокировать весь интерфейс», чтобы пользователь не ушёл с неё, пока не закончит;
- 🧹 у командной панели формы отключайте автозаполнение и оставляйте только свои кнопки;
- 🔠 делайте крупные шрифты и кнопки: на ТСД экран 4–5 дюймов, на сенсорной стойке пальцем в мелкую кнопку не попасть;
- 🚪 добавьте свою команду выхода, она вызывает
ЗавершитьРаботуСистемы(Ложь). В киоске нет кнопки закрытия окна, и без такой команды пользователь застрянет.
&НаКлиенте
Процедура Выход(Команда)
ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры
Сравнение способов включения режима киоска
| Способ | Когда подходит | Риски |
|---|---|---|
| Свойство конфигурации | Отдельная база под терминалы, своя конфигурация | Действует на всех, в типовой требует снятия с поддержки |
Код по параметру /C | Быстрый запуск киоска на одном-двух рабочих местах | Пользователь может запустить базу без параметра |
| Код по роли или реквизиту пользователя | Общая база: часть людей в киоске, часть в обычном интерфейсе | Нужно следить, кому назначена роль |
| Расширение | Типовые конфигурации на поддержке | Ошибка в расширении блокирует вход, тест обязателен |
Как запретить выход из 1С средствами Windows и Android
Киоск 1С прячет кнопки в окне программы, но не управляет системой. Сочетания клавиш вроде Alt+Tab, Win или Ctrl+Alt+Del остаются за Windows. Поэтому на настоящем терминале закрывают и уровень ОС.
Windows: подменить оболочку
Самый практичный приём на выделенном компьютере — запускать 1С вместо Проводника для отдельной учётной записи:
- Заведите локального пользователя Windows, например
kiosk, без прав администратора. - Настройте для него автоматический вход в систему.
- Войдите под ним, затем под администратором загрузите его куст реестра или выполните настройку прямо под ним.
- Пропишите оболочку:
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "\"C:\Program Files\1cv8\common\1cestart.exe\" ENTERPRISE /S\"srv1c\sklad\" /C\"kiosk\""
После входа этого пользователя рабочего стола и панели задач нет — сразу стартует 1С. Если закрыть 1С, остаётся пустой экран.
Сначала проверьте, что у вас есть второй вход в систему с правами администратора. Иначе вернуть обычную оболочку будет нечем, кроме загрузки с внешнего носителя.
В редакциях Windows 10/11 «Корпоративная» и «Для образовательных учреждений» есть штатный Shell Launcher с той же идеей. Встроенный «Назначенный доступ» в Windows 10 с одним приложением рассчитан на приложения из Store, а не на классический 1cv8c.exe, поэтому для 1С он обычно не подходит.
Вход без окна пароля
На терминале не должно появляться окно выбора пользователя 1С. Два варианта:
- ✅ Аутентификация ОС. В карточке пользователя 1С включите вход через Windows и укажите учётную запись
kiosk. Пароль нигде не хранится. - ⚠️ Ключи
/Nи/Pв командной строке. Работает, но пароль лежит открытым текстом в ярлыке или реестре. Годится только для учётки с минимальными правами.
Ключ /DisableStartupMessages отключает стартовые предупреждения платформы, чтобы при запуске терминала ничего лишнего не всплывало.
Android: закрепить приложение на ТСД
На терминалах сбора данных на Android 1С работает через мобильный клиент или мобильное приложение. Интерфейс там свой, а удержать пользователя в программе помогает система:
- 📌 Закрепление экрана (в настройках безопасности Android). Бесплатно, но снимается известным сочетанием кнопок.
- 🧰 Утилиты производителя ТСД. У крупных производителей есть свои лаунчеры с режимом одного приложения, их настраивают в сервисном меню терминала.
- 🏢 MDM-система. Если терминалов десятки, режим одного приложения задают централизованно, вместе с запретом настроек и обновлений.
Работа с ТСД и сканерами штрихкода в режиме киоска
В киоске нет меню, поэтому ввод со сканера целиком должна принимать форма начальной страницы. Есть два пути подключения сканера.
Сканер в режиме эмуляции клавиатуры
Самый простой и надёжный вариант для ТСД и проводных сканеров. Сканер «печатает» штрихкод в поле, на котором стоит курсор, и в конце отправляет Enter.
Что сделать в форме:
- Поставьте поле «Штрихкод» первым и сделайте его текущим при открытии:
ТекущийЭлемент = Элементы.Штрихкод;вПриОткрытии. - Обработку штрихкода повесьте на событие поля
ПриИзменении: оно срабатывает после Enter. - После обработки очистите поле и верните на него фокус. Иначе второй скан уйдёт в другой элемент.
- В настройках сканера проверьте суффикс: должен быть Enter (CR), без лишних символов.
Сканер через подключаемое оборудование
В типовых конфигурациях сканер можно подключить через раздел подключаемого оборудования (в БП и УТ он находится в Администрирование). Тогда скан приходит не в поле, а как внешнее событие. Его обрабатывает форма, в которой подключено оборудование.
Это удобнее, когда курсор должен свободно гулять по форме. Но в киоске есть нюанс: настройки оборудования делают в обычном режиме. Зайдите под администратором без киоска, подключите и проверьте сканер, а уже потом включайте режим киоска для терминала.
Если на одном компьютере сканер и сенсорный экран, проверьте, не открывается ли экранная клавиатура при каждом фокусе на поле. Её отключают в настройках сенсорного ввода Windows.