Как программно переключить интерфейс пользователя на «Такси» в 1С?

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

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

Предварительная настройка в Конфигураторе

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

Проанализируем действия, которые необходимо выполнить в Конфигураторе:

  1. Откройте дерево метаданных и перейдите в свойства корневого элемента (ваша конфигурация).
  2. Найдите свойство ВариантИнтерфейсаКлиентскогоПриложения.
  3. Убедитесь, что установлено значение «Такси. Разрешить управление». Это критически важно, так как именно эта настройка позволяет системе учитывать индивидуальные настройки пользователей, сохраненные в базе.

Программный метод: использование Хранилища системных настроек

Теперь разберем по шагам основной программный метод. Основная идея заключается в том, чтобы сформировать объект настроек и записать его в системное хранилище для конкретного пользователя. Для этого используются объекты НастройкиКлиентскогоПриложения и НастройкиИнтерфейсаКлиентскогоПриложения.

Посмотрим на пример кода, который позволяет переключить интерфейс:


Процедура УстановитьИнтерфейсТаксиДляПользователя(ИмяПользователя) Экспорт
    
    // Создаем объект настроек клиента
    НастройкиКлиента = Новый НастройкиКлиентскогоПриложения;
    НастройкиКлиента.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Такси;
    
    // Дополнительно можно настроить режим открытия форм
    НастройкиКлиента.РежимОткрытияФормПриложения = РежимОткрытияФормПриложения.Вкладки;
    
    // Создаем объект для настройки состава панелей (верхняя, левая и т.д.)
    НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
    НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав();
    
    // Очищаем стандартное расположение панелей, чтобы задать свое
    НастройкиСостава.Верх.Очистить();
    НастройкиСостава.Лево.Очистить();
    
    // Например, добавим панель разделов и панель открытых окон наверх
    ПанельРазделов = Новый ГруппаНастройкиСоставаИнтерфейсаКлиентскогоПриложения;
    ПанельРазделов.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельРазделов"));
    
    ПанельОткрытых = Новый ГруппаНастройкиСоставаИнтерфейсаКлиентскогоПриложения;
    ПанельОткрытых.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельОткрытых"));
    
    НастройкиСостава.Верх.Добавить(ПанельРазделов);
    НастройкиСостава.Верх.Добавить(ПанельОткрытых);
    
    НастройкиИнтерфейса.УстановитьСостав(НастройкиСостава);
    
    // Сохраняем настройки в системное хранилище
    ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиКлиентскогоПриложения", "", НастройкиКлиента, , ИмяПользователя);
    ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", "", НастройкиИнтерфейса, , ИмяПользователя);
    
КонецПроцедуры

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

Использование ключей запуска (командная строка)

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

Разберем основные ключи:

Пример строки запуска в ярлыке: "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\MyBase" /N "Администратор" /ITaxi.

Особенности в типовых конфигурациях (БСП)

Если ваша база построена на базе Библиотеки стандартных подсистем (БСП), например, УТ 11, ERP или БП 3.0, проанализируем встроенные возможности. В таких конфигурациях уже существуют общие модули, упрощающие управление интерфейсом. Например, в некоторых версиях доступна процедура ОбщегоНазначения.УстановитьРежимКомандногоИнтерфейса().

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

Масштабируемость и компактный режим

Начиная с версии платформы 8.3.10, интерфейс «Такси» получил развитие в виде «Компактного режима». Это не отдельный интерфейс, а свойство настройки клиентского приложения. Выясним причину популярности этого режима: на небольших мониторах стандартное «Такси» занимает слишком много места.

Программно управлять масштабом можно через свойство УстановитьМасштаб() объекта НастройкиКлиента. Мы можем задать вариант ВариантМасштабаИнтерфейсаКлиентскогоПриложения.Компактный, что сделает заголовки, отступы и шрифты более мелкими, приближая визуальное восприятие к классическим формам, но сохраняя все преимущества «Такси». Для этого также можно воспользоваться обработкой для смены режима интерфейса пользователя.

Важные нюансы и ограничения

Рассмотрим подробнее ограничения, с которыми можно столкнуться:

  1. Веб-клиент: При работе через браузер настройки интерфейса могут зависеть от кэша браузера. После программного изменения настроек на сервере, пользователю рекомендуется очистить кэш или нажать Ctrl+F5.
  2. Права доступа: Для выполнения кода, сохраняющего настройки для другого пользователя, у текущего пользователя должны быть права администратора (роль ПолныеПрава).
  3. Версия платформы: Интерфейс «Такси» появился в версии 8.3.3. Если вы работаете на более старых версиях (что сегодня редкость), данные методы не будут функционировать.

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

← На главную