Как создать пустой интерфейс в 1С:Бухгалтерия 3.0 для запуска одного отчета?

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

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

Метод 1. Настройка минимального набора ролей

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

Рекомендуется создать новую роль в конфигураторе и включить в нее только самые необходимые права:

  1. Право Запуск тонкого клиента или Запуск веб-клиента.
  2. Право на чтение необходимых справочников, которые используются в параметрах вашего отчета.
  3. Право на использование самого отчета (просмотр и формирование).
  4. Минимальные системные права на работу с расширениями и сохранение данных пользователя (если требуется запоминание настроек отчета).

Разберем важный нюанс: если у пользователя нет прав на просмотр подсистем, то Панель разделов автоматически станет пустой. Однако системная командная панель (с кнопками «О программе», «Калькулятор» и т.д.) может остаться. Чтобы убрать лишнее, перейдем к более радикальным методам.

Метод 2. Использование режима «Рабочее место» (Kiosk Mode)

Начиная с версии платформы 8.3.12, в 1С появился специальный режим основного окна — Рабочее место. Это идеальное решение для нашей задачи. В этом режиме у приложения полностью отсутствует заголовок окна, главное меню, панели навигации и командный интерфейс. Остается только рабочая область.

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


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

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

Метод 3. Программное управление составом панелей

Если режим «Рабочего места» кажется слишком жестким (например, нужно оставить системную кнопку «Выход»), можно использовать метод УстановитьСоставПанелей(). Это позволяет динамически скрывать или показывать стандартные панели 1С.

Рассмотрим пример реализации в Модуль управляемого приложения:


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

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

Метод 4. Настройка домашней страницы

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

  1. В конфигураторе откройте свойства конфигурации и выберите пункт Открыть рабочую область начальной страницы.
  2. Для нужной роли (которую мы создали в первом методе) удалите все стандартные формы (например, ИнформационнаяПанель или ТекущиеДела).
  3. Добавьте форму вашего отчета в список форм начальной страницы.

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

Метод 5. Индивидуальная настройка «Вид – Настройка панелей»

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

  1. Зайдите в базу под логином целевого пользователя.
  2. Нажмите Главное меню – Вид – Настройка панелей.
  3. Перетащите все активные панели (Панель разделов, Панель открытых и т.д.) в нижнюю область (серую зону), которая означает скрытие панелей.
  4. Сохраните настройки.

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

Метод 6. Использование параметров командной строки

Проанализируем ситуацию, когда нам нужно передать команду на запуск отчета прямо в ярлыке. Использование ключа /C позволяет передать произвольную строку в параметр сеанса. В коде 1С (в процедуре ПриНачалеРаботыСистемы) мы можем считать этот параметр через функцию ПараметрЗапуска.

Пример командной строки ярлыка: "C:\Program Files\1cv8\common\1cestart.exe" /F "D:\Bases\BP" /N "User1" /C "OnlyReport"

В коде обработаем это так:


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

Этот способ удобен тем, что один и тот же пользователь может заходить как в обычном режиме, так и в режиме «одного отчета», просто используя разные ярлыки.

Резюме

Для достижения наилучшего результата мы рекомендуем комбинировать методы. Во-первых, создайте максимально узкую роль. Во-вторых, используйте режим Рабочее место для полной блокировки интерфейса. В-третьих, программно открывайте нужную форму при старте. Такой подход обеспечит стабильную работу системы и исключит ошибки пользователя, связанные с лишними действиями в программе 1C:Бухгалтерия.

← На главную