Возможность работы с программой «1С:Бухгалтерия 8.3» через веб-браузер (веб-клиент) — это крайне удобный инструмент для удаленных сотрудников. Однако перед системными администраторами и специалистами по безопасности часто встает задача жесткого контроля каналов подключения. Например, требуется запретить конкретным пользователям или целым отделам заходить в базу из дома через обычный браузер, обязав их использовать только защищенный тонкий клиент или корпоративную сеть. При необходимости автоматизации действий таких сотрудников в интерфейсе без использования API применяется платформа для создания программных роботов RPA.
В этой статье мы подробно разберем, как устроен механизм разграничения прав для веб-клиента в платформе «1С:Предприятие 8.3», проанализируем стандартные методы настройки и рассмотрим более гибкие и безопасные альтернативные варианты, которые уберегут вашу конфигурацию от снятия с поддержки. Для регулярного сопровождения типовых конфигураций на поддержке предусмотрена программа для автоматического обновления и архивирования 1С.
В платформе 1С право на запуск того или иного клиента определяется метаданными. Для этого в свойствах каждой роли в Конфигураторе предусмотрены специальные флаги запуска:
Рассмотрим стандартную ситуацию. Чтобы запретить пользователю вход через веб-браузер, нам нужно лишить его права Веб-клиент. Выясним причину, почему простое снятие галочки у одной из ролей часто не дает никакого результата.
Дело в том, что права пользователя в 1С работают по принципу объединения (сложения). Если пользователю назначено несколько ролей (например, «Бухгалтер», «Добавление и изменение банковских документов» и «Полные права»), и хотя бы в одной из этих ролей право Веб-клиент будет активно, система беспрепятственно разрешит пользователю авторизоваться через браузер. Для полного запрета это право должно быть отключено во всех без исключения ролях, назначенных данному сотруднику.
Особую сложность представляет предопределенная роль Полные права (Администратор). По умолчанию эта роль включает в себя абсолютно все права платформы, включая запуск любых клиентов. Если у вашего администратора или ключевого бухгалтера установлены полные права, то стандартными средствами администрирования закрыть ему доступ в веб-клиент не удастся без редактирования самой конфигурации.
Давайте пошагово разберем, как решить эту задачу различными путями.
Этот способ напрямую обсуждался на форуме. Он подходит для баз, которые уже сняты с поддержки, либо для самописных конфигураций.
Выполним следующие шаги для настройки ограничений:
Ctrl + Shift + C) и разверните ветку Общие -> Роли.F7).Проанализируем ситуацию с ролью Полные права. Если вы решите снять флаг веб-клиента у этой роли, вам придется полностью перевести конфигурацию в режим редактирования. Мы настоятельно не рекомендуем этого делать для типовой «1С:Бухгалтерии 8.3», так как процедура регулярного обновления превратится в трудоемкий процесс ручного сравнения и объединения форм.
Чтобы обойти ограничения стандартных ролей и при этом сохранить конфигурацию на полной поддержке поставщика, мы можем использовать механизм расширений. Это современный и безопасный подход, позволяющий написать небольшой программный код, который будет блокировать вход пользователей через браузер по заданным условиям.
Создадим расширение и реализуем логику проверки по шагам:
Конфигурация -> Расширения конфигурации.КонтрольПодключений), назначение оставьте Адаптация.ПередНачаломРаботыСистемы.Напишем программный код, который будет проверять тип клиента при запуске. Если программа обнаруживает, что запуск происходит через веб-браузер, она проверяет, входит ли пользователь в список разрешенных, либо проверяет наличие специальной роли, созданной нами внутри расширения.
Посмотрим на пример такого кода:
&После("ПередНачаломРаботыСистемы")
Процедура Расш_ПередНачаломРаботыСистемы(Отказ)
#Если ВебКлиент Тогда
// Проверяем, назначен ли пользователю доступ к Веб-клиенту.
// Для этого мы можем создать в расширении свою роль "РазрешитьДоступЧерезВеб"
// и проверять ее наличие у текущего пользователя.
Если НЕ РольДоступна("РазрешитьДоступЧерезВеб") Тогда
Отказ = Истина;
ВызватьИсключение "Вход в систему через Web-интерфейс заблокирован администратором. Пожалуйста, используйте Тонкий клиент 1С.";
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Этот код абсолютно безопасен. Он перехватывает событие запуска еще до инициализации основного интерфейса. Если запуск идет из браузера, а у пользователя (даже с полными правами!) нет роли РазрешитьДоступЧерезВеб, система выдаст понятное предупреждение и корректно завершит сеанс. Основная конфигурация при этом остается полностью типовой и обновляется без лишних трудозатрат.
Поскольку для работы веб-клиента база 1С обязательно должна быть опубликована на веб-сервере (например, Microsoft IIS или Apache HTTP Server), мы можем ограничить доступ административными средствами самой сетевой инфраструктуры. Для быстрой настройки веб-доступа и управления публикацией на сервере можно использовать обработку для публикации информационных баз на IIS и Apache.
Рассмотрим два сценария такой настройки:
Этот метод хорош тем, что он вообще не затрагивает логику самой 1С и работает на более низком сетевом уровне, обеспечивая максимальную защиту от несанкционированных попыток подбора паролей к базе через интернет.
Если в вашей организации используется типовая конфигурация на базе БСП (Библиотеки стандартных подсистем), которой и является «1С:Бухгалтерия 8.3», права обычных пользователей (не администраторов) настраиваются в режиме «1С:Предприятие» без захода в Конфигуратор. Для подготовки информационной базы к работе также предусмотрен раздел с решениями для переноса данных в 1С:Бухгалтерию из других конфигураций.
Разберем по шагам, как настроить ограничения для рядового персонала:
Администрирование -> Настройки пользователей и прав -> Профили групп доступа.Важно помнить, что этот способ сработает только для тех сотрудников, у которых в системе нет административных или полных прав. Для полноценного контроля администраторов используйте программное перехватывание через расширение (Способ №2) или фильтрацию веб-сервера (Способ №3).