25.09.2025 Лев Туренко 616
Система контроля и управления доступом в 1С: Шина

Содержание:

1.    Основные принципы системы контроля доступа в 1С: Шина

2.    Система настройки прав доступа для HTTP-сервисов

3.    Пример настройки прав доступа пользователей с использованием YAML

4.    Программная реализация системы проверки прав доступа

5.    Система управления ключами доступа

6.    Интеграция с внешними системами контроля доступа  


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


1.    Основные принципы системы контроля доступа в 1С: Шина


Система контроля доступа в 1С: Шина основана на концепции ключей доступа и разрешений. Каждому элементу проекта, будь то HTTP-сервис, регистр сведений или другой объект, можно назначить определенные права доступа. Эти права определяются с помощью ключей доступа, которые могут быть выданы пользователям или группам пользователей.


КлючДоступаАдминистратора.png

КлючДоступаАдминистратора, КлючДоступаМенеджера


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


Программный код для проверки на права доступа, в соответствии с ролями сотрудников, представлен далее:

импорт Пресейл

метод ПроверитьНаличиеКлючейДоступа(

    Ключи: ЧитаемыйМассив<КлючДоступаМенеджера.Объект>,

    ПользователиДляПроверки: ЧитаемыйМассив<Пользователи.Объект>

): ЧитаемоеСоответствие<КлючДоступаМенеджера.Объект, ЧитаемыйМассив<Пользователи.Ссылка>>

                                       

    знч Направления = <Направления.Ссылка>[]

    для Ключ из Ключи

        Направления.Добавить(Ключ.Владелец)

    ;

   

    знч Пользователи = <Пользователи.Ссылка>[]

    для Пользователь из ПользователиДляПроверки

        Пользователи.Добавить(Пользователь.Ссылка)

    ;

   

    знч Запрос = Запрос{

        ВЫБРАТЬ

            СотрудникиНаправления.Элемент КАК Направление,

            Сотрудники.Пользователь КАК Пользователь

        ИЗ

            Сотрудники.Направления КАК СотрудникиНаправления

                ЛЕВОЕ СОЕДИНЕНИЕ Сотрудники КАК Сотрудники

                ПО СотрудникиНаправления.Контейнер == Сотрудники.Ссылка

        ГДЕ

            СотрудникиНаправления.Элемент В (%Направления)

            И Сотрудники.Пользователь В (%Пользователи)

            И Сотрудники.Роль == РолиСотрудников.Менеджер}

   

    знч МенеджерыНаправлений = <Направления.Ссылка, Массив<Пользователи.Ссылка>>{:}

   

    для СтрокаРезультата из Запрос.Выполнить()

        МенеджерыНаправлений.ВставитьЕслиОтсутствует(СтрокаРезультата.Направление,

                                                     <Пользователи.Ссылка>[])

        МенеджерыНаправлений

            .Получить(СтрокаРезультата.Направление)

            .Добавить(СтрокаРезультата.Пользователь как Пользователи.Ссылка)

    ;

   

    знч Результат = <КлючДоступаМенеджера.Объект, Массив<Пользователи.Ссылка>>{:}

   

    для Ключ из Ключи

        знч МассивПользователей = МенеджерыНаправлений.ПолучитьИлиУмолчание(Ключ.Владелец)

        если МассивПользователей != Неопределено

            Результат.Вставить(Ключ, МассивПользователей)

        ;

    ;

   

    возврат Результат

;

2.    Система настройки прав доступа для HTTP-сервисов


Один из наиболее распространенных способов взаимодействия с 1С: Шина — это использование HTTP-сервисов. Для обеспечения безопасности и контроля доступа к этим сервисам, система предоставляет гибкие механизмы настройки прав.


Права доступа можно настроить на трех уровнях:

1.    Уровень HTTP-сервиса: Общие настройки прав доступа, применяемые ко всем URL-шаблонам и методам внутри сервиса.

2.    Уровень URL-шаблона: Настройки прав доступа, специфичные для определенного пути внутри сервиса.

3.    Уровень HTTP-метода: Наиболее детализированные настройки, позволяющие контролировать доступ к конкретным методам (GET, PUT, POST и т.д.) внутри URL-шаблона.

При обращении к HTTP-методу, система последовательно проверяет наличие настроек прав доступа на каждом из уровней, начиная с самого детализированного. Если настройки найдены, они применяются, и дальнейшая проверка не осуществляется.


3.    Пример настройки прав доступа пользователей с использованием YAML


Для настройки прав доступа в 1С: Шина используется язык разметки YAML. Пример настройки прав доступа для HTTP-сервиса может выглядеть следующим образом:

КопироватьРедактировать

ВидЭлемента: HttpСервис

Id: a565661f-f458-465b-8f71-1f90cd490890

ОбластьВидимости: ВПодсистеме

Имя: СделкиHttpСервис

КорневойUrl: /opportunities

КонтрольДоступа:

    Разрешения:

        Вызов: РазрешеноАутентифицированным


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


4.    Программная реализация системы проверки прав доступа


Для реализации динамической проверки прав доступа можно определить обработчик в модуле HTTP-сервиса:

КопироватьРедактировать

@Обработчик

метод ВычислитьРазрешенияДоступа() : Массив<РазрешениеДоступа>

    пер Разрешения: Массив<РазрешениеДоступа>

    // Логика определения разрешений

    возврат Разрешения

конецметода

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


5.    Система управления ключами доступа


Ключи доступа являются центральным элементом системы контроля доступа в 1С: Шина. Они могут быть выданы вручную или автоматически, в зависимости от настроек системы. Для управления ключами доступа предусмотрены специальные инструменты, позволяющие создавать, изменять и удалять ключи, а также назначать их пользователям и группам.


Пример создания ключа доступа:

КопироватьРедактировать

Ключ = Новый КлючДоступа;

Ключ.Имя = "КлючДоступаМенеджера";

Ключ.Описание = "Ключ доступа для менеджеров";

Ключ.Сохранить();

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


6.    Интеграция с внешними системами контроля доступа


1С: Шина предоставляет возможности интеграции с внешними системами контроля доступа (СКУД), такими как турникеты, системы видеонаблюдения и другие. Это позволяет реализовать комплексную систему безопасности, объединяющую программные и аппаратные средства.


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


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


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


Специалист компании ООО "Кодерлайн"

Лев Туренко

Наши проекты

ПАО «АрселорМиттал Кривой Рог»
ПАО «АрселорМиттал Кривой Рог»

Отрасль:
Металлургическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием для Украины

- Кадровый учет
- Расчет зарплаты
- Регламентированная отчетность
- Уч...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
«1С: Управление торговлей»

- Создание прототипа SRM-системы на базе «1С: Управление торговлей»
- Автомат...

ООО "РУКАРД-АУРА"
ООО "РУКАРД-АУРА"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Комплексная автоматизация

- Налоговый учет;...

ЗАО «Многопрофильная формирующая авиагруппа» (ЗАО МФГ)
ЗАО «Многопрофильная формирующая авиагруппа» (ЗАО МФГ)

Отрасль:
Оптовая торговля транспортными средствами и оборудованием

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

- Финансы, управленческий учет, мониторинг показателей
- Бухгалтерский уче...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Бухгалтерия КОРП

Бухгалтерский учет Производственные операции Регламентированная отчетнос...

ООО «Иви.ру»
ООО «Иви.ру»

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление корпоративными финансами

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

ХИТЕК-ГРУП
ХИТЕК-ГРУП

Отрасль:
Продажа парикмахерского инструмента и аксессуаров

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Документооборот (ECM)
• Делопроизводство
Управление бизнес-процессами и И...

Автоматизация учета на базе ПП "1С:Комплексная автоматизация 8" в ЗАО "Крюгер-Гранд"
ЗАО «Крюгер-Гранд»

Отрасль:
Производство

Внедренное типовое решение:
1С:Комплексная автоматизация

- Создание интерфейсов и наборов прав пользователей;
- Отражению временных ...

ООО «ПраксисКом»
ООО «ПраксисКом»

Отрасль:
Аутсорсинг бухгалтерских услуг

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

- Бухгалтерский учет:
Банк и касса
Завершение периода
Нематериальные ...

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

Установка программного продукта БИТ.Финанс для 1С:Бухгалтерия 8
ООО «Джи Эй Си Шиппинг энд Лоджистикс»

Отрасль:
Транспорт

Внедренное типовое решение:
БИТ.Финанс

Построение единого информационного пространства финансовой службы;
Учет ...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

Управление персоналом и кадровый учет (HRM) Кадровый учет Расчет зарплаты Рег...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение