Как определить права редактирования периметров в «1С:Свод отчетности»?

База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как определить права редактирования периметров в «1С:Свод отчетности»?

Просмотр 1 ветки ответов
  • Автор
    Записи
    • #39000
      Фото аватараOdineski
      Участник

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

        как это посмотреть

        1. пользователю разрешены конкретные периметры консолидации;
        2. пользователю разрешены периметры, связанные с определенными организациями;
        3. пользователю разрешены периметры, соответствующие его группе доступа;
        4. пользователь может редактировать только периметры, владельцем или ответственным за которые он является.

      • #39001
        bot_avaOdin — Одинэсник
        Участник

          В «1С:Свод отчетности» это нужно проверять в двух местах:

          1. в пользовательском режиме, где настроены пользователи, группы доступа и сами периметры;
          2. в конфигураторе, где видно структуру объекта «Состав периметров консолидации» и уже установленные ограничения RLS.

          Ниже порядок проверки.

          # 1. Сначала определите, где хранятся сами периметры

          В режиме «1С:Предприятие»:

          1. Откройте раздел, связанный с консолидацией.
          2. Найдите команду:
          — Периметры консолидации;
          — Состав периметров консолидации;
          — либо отчет/список с похожим названием.
          3. Откройте несколько периметров.
          4. Посмотрите, какие реквизиты и табличные части у них заполнены.

          В первую очередь нужно найти следующие поля:

          — Организация;
          — Участник консолидации;
          — Ответственный;
          — Владелец;
          — Пользователь;
          — Группа доступа;
          — Рабочая группа;
          — Вид отчета;
          — Сценарий;
          — Период;
          — Подразделение.

          Если в карточке периметра есть только наименование, код и состав организаций, то наиболее вероятно, что доступ определяется:

          — составом организаций;
          — группами доступа;
          — отдельным регистром настроек доступа.

          Если есть реквизит Ответственный, Владелец или Пользователь, возможно ограничение можно строить по ответственному.

          —

          # 2. Как проверить, разрешены ли пользователю конкретные периметры

          ## Вариант 1. Через карточку пользователя

          Откройте:

          НСИ и администрирование → Настройка пользователей и прав → Пользователи

          В некоторых версиях путь может называться:

          Администрирование → Настройка пользователей и прав

          1. Откройте нужного пользователя.
          2. Найдите ссылку или команду:
          — Права доступа;
          — Группы доступа;
          — Настройка доступа;
          — Профиль доступа;
          — Доступ к организациям;
          — Доступ к объектам.
          3. Проверьте, есть ли отдельный список:
          — Периметры консолидации;
          — Разрешенные периметры;
          — Доступные периметры.

          Если у пользователя непосредственно указан список периметров, например:

          | Пользователь | Периметр |
          |—|—|
          | Иванов И.И. | Периметр «Холдинг» |
          | Иванов И.И. | Периметр «Розница» |

          то ограничение нужно строить по конкретным периметрам.

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

          > Пользователь имеет право редактировать записи объекта «Состав периметров консолидации», если периметр записи входит в список периметров, назначенных пользователю.

          ## Вариант 2. Через группы доступа

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

          В карточке пользователя откройте:

          Группы доступа пользователя

          или:

          Права доступа → Группы доступа

          Запишите все группы, назначенные пользователю, например:

          — Бухгалтерия холдинга;
          — Консолидация филиалов;
          — Ответственные за отчетность;
          — Центральный аппарат;
          — Пользователи периметра «Розница».

          После этого откройте сами группы доступа:

          НСИ и администрирование → Настройка пользователей и прав → Группы доступа

          или:

          Администрирование → Настройка доступа → Группы доступа

          Проверьте, есть ли в группе отдельный список доступных периметров.

          Если внутри группы указано:

          | Группа доступа | Разрешенный периметр |
          |—|—|
          | Консолидация филиалов | Периметр «Филиалы» |
          | Консолидация филиалов | Периметр «Дочерние общества» |

          то доступ определяется группой, а не индивидуальной настройкой пользователя.

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

          —

          # 3. Как проверить, связаны ли права с организациями

          Откройте карточки периметров консолидации и проверьте их состав.

          Обычно это можно сделать следующим образом:

          1. Открыть список Периметры консолидации.
          2. Открыть периметр.
          3. Перейти на вкладку:
          — Состав;
          — Организации;
          — Участники;
          — Организации периметра.
          4. Посмотреть, какие организации входят в периметр.

          Пример:

          | Периметр | Организации |
          |—|—|
          | Периметр «Холдинг» | ООО «Альфа», ООО «Бета» |
          | Периметр «Розница» | ООО «Гамма» |
          | Периметр «Производство» | ООО «Дельта» |

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

          Откройте карточку пользователя и найдите:

          — Организации пользователя;
          — Доступные организации;
          — Область доступа;
          — Права на организации;
          — Группы доступа;
          — Настройки ограничения доступа.

          Возможный результат:

          | Пользователь | Доступная организация |
          |—|—|
          | Иванов И.И. | ООО «Альфа» |
          | Иванов И.И. | ООО «Бета» |

          Если пользователь имеет доступ к организациям ООО «Альфа» и ООО «Бета», а периметр «Холдинг» состоит именно из этих организаций, это указывает на ограничение по организациям.

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

          — разрешается периметр, если пользователь имеет доступ хотя бы к одной организации;
          — разрешается только периметр, если пользователь имеет доступ ко всем организациям;
          — разрешение определяется не составом периметра, а отдельной настройкой.

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

          —

          # 4. Как проверить группы доступа в конфигураторе

          Если в пользовательском режиме неясно, по какому признаку формируется доступ, откройте конфигурацию в режиме Конфигуратор.

          ## Шаг 1. Найдите объект «Состав периметров консолидации»

          1. Откройте конфигурацию.
          2. Нажмите Конфигурация → Открыть конфигурацию.
          3. В дереве конфигурации найдите объект с названием:
          — СоставПериметровКонсолидации;
          — либо объект с похожим синонимом.
          4. Посмотрите его тип.

          Это может быть:

          — справочник;
          — регистр сведений;
          — документ;
          — регистр накопления;
          — табличная часть другого объекта.

          Если объект не находится по синониму, выполните поиск по конфигурации:

          Правка → Найти

          И ищите отдельно по словам:

          — Периметр;
          — Консолидац;
          — Состав;
          — Рабочий процесс.

          ## Шаг 2. Посмотрите реквизиты объекта

          Откройте найденный объект и проверьте реквизиты.

          Особенно важны реквизиты с названиями:

          — Периметр;
          — ПериметрКонсолидации;
          — Организация;
          — Пользователь;
          — Ответственный;
          — Владелец;
          — ГруппаДоступа;
          — КлючДоступа;
          — ОбластьДоступа;
          — ВидДоступа;
          — РабочаяГруппа.

          Пример структуры:

          В таком случае потенциально можно ограничивать доступ:

          — по периметру;
          — по организации;
          — по ответственному.

          Если реквизитов пользователя, организации и группы доступа нет, это означает, что ограничение, скорее всего, строится через связанные объекты или регистры.

          —

          # 5. Как найти уже существующее ограничение доступа

          В конфигураторе откройте роль:

          Общие → Роли → РедактированиеРабочихПроцессов

          Найдите объект:

          Состав периметров консолидации

          Проверьте права:

          — Чтение;
          — Изменение;
          — Добавление;
          — Удаление;
          — Интерактивное изменение;
          — Интерактивное добавление;
          — Интерактивное удаление.

          Если рядом с правом есть настройка ограничения, откройте ее.

          В ограничении ищите следующие признаки.

          ## Ограничение по конкретному периметру

          В тексте будут встречаться поля и таблицы, похожие на:

          или:

          или:

          Признак:

          Это означает, что пользователю разрешаются конкретные периметры.

          ## Ограничение по организациям

          В тексте будут встречаться:

          или:

          или:

          Признак:

          Либо будет проверяться организация периметра через связанный справочник.

          ## Ограничение по группе доступа

          В тексте могут встречаться:

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

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

          Внешне это может выглядеть так:

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

          ## Ограничение по ответственному или владельцу

          В тексте ограничения будут встречаться поля:

          Пример логики:

          либо:

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

          —

          # 6. Как понять, какой пользователь определяется как текущий

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

          В зависимости от конфигурации используются:

          — пользователь информационной базы;
          — пользователь программы;
          — физическое лицо;
          — сотрудник;
          — субъект доступа;
          — текущий пользователь из параметров сеанса.

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

          Возможные варианты:

          | Поле в данных | С чем сравнивается |
          |—|—|
          | Пользователь | Пользователь информационной базы |
          | Ответственный | Пользователь |
          | Сотрудник | Физическое лицо или сотрудник |
          | Владелец | Пользователь или сотрудник |
          | Ключ доступа | Ключ доступа текущего пользователя |

          Нельзя автоматически считать, что поле Ответственный хранит именно пользователя 1С. Это может быть элемент справочника Физические лица или Сотрудники.

          Проверить тип поля можно в конфигураторе:

          1. Откройте объект.
          2. Откройте вкладку Реквизиты.
          3. Посмотрите колонку Тип значения.

          Например:

          означает пользователя программы.

          А:

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

          —

          # 7. Как проверить эффективные права пользователя

          Важно проверить не только роль «Редактирование рабочих процессов», но и все роли пользователя.

          Один пользователь может получить право изменения из нескольких ролей. Если хотя бы одна роль дает полное право на изменение объекта, ограничение другой роли может не дать нужного результата.

          В пользовательском режиме:

          1. Откройте карточку пользователя.
          2. Перейдите на вкладку Права доступа или Роли.
          3. Запишите все назначенные профили и роли.
          4. Найдите среди них роли, связанные с:
          — рабочими процессами;
          — консолидацией;
          — администрированием;
          — полным доступом;
          — настройкой отчетности.

          В конфигураторе откройте каждую соответствующую роль и проверьте объект:

          Состав периметров консолидации

          Нужно убедиться, что нигде нет:

          или:

          Также нужно проверить наличие роли:

          — Полные права;
          — Администратор;
          — роли разработчика;
          — роли администратора данных;
          — роли администратора подсистемы.

          Такие роли могут полностью обходить установленное ограничение.

          —

          # 8. Как определить признак по фактическому результату

          Если структура конфигурации непонятна, можно выполнить проверку практическим способом.

          Создайте или выберите тестового пользователя и подготовьте данные:

          | Тест | Пользователь | Периметр | Организация | Ответственный |
          |—|—|—|—|—|
          | 1 | Пользователь А | Периметр 1 | Организация 1 | Пользователь А |
          | 2 | Пользователь А | Периметр 2 | Организация 2 | Пользователь Б |
          | 3 | Пользователь Б | Периметр 3 | Организация 1 | Пользователь Б |

          Затем поочередно меняйте только один признак:

          1. добавьте пользователю конкретный периметр;
          2. уберите этот периметр;
          3. добавьте пользователю организацию;
          4. уберите организацию;
          5. измените ответственного;
          6. добавьте пользователя в группу доступа;
          7. удалите пользователя из группы доступа.

          После каждого изменения входите под тестовым пользователем и проверяйте возможность изменения.

          Результаты фиксируйте в таблице:

          | Изменение настройки | Периметр 1 | Периметр 2 | Периметр 3 |
          |—|—:|—:|—:|
          | Пользователь получил периметр 1 | Можно | Нельзя | Нельзя |
          | Пользователь получил организацию 1 | Можно | Нельзя | Можно |
          | Пользователь назначен ответственным | Можно | Нельзя | Нельзя |
          | Пользователь добавлен в группу | Можно | Можно | Нельзя |

          По результату будет видно, какой признак реально используется.

          ## Как интерпретировать результат

          ### Разрешение изменилось после назначения конкретного периметра

          Используется доступ по конкретным периметрам.

          ### Разрешение изменилось после назначения организации

          Используется доступ по организациям либо состав организаций входит в ключ доступа.

          ### Разрешение изменилось после включения в группу

          Используется механизм групп доступа.

          ### Разрешение изменилось после назначения ответственным

          Используется ограничение по владельцу или ответственному.

          ### Ничего не изменилось

          Возможные причины:

          — у пользователя есть другая роль без ограничения;
          — доступ проверяется не по этому объекту;
          — ограничение установлено только на чтение;
          — ограничение не установлено на право «Изменение»;
          — пользователь работает с привилегированным кодом;
          — данные доступны через другой объект или регистр;
          — требуется обновление прав доступа.

          —

          # 9. Где проверить состав групп доступа и ключи доступа

          Если используется БСП, обычно проверяют:

          1. карточку пользователя;
          2. назначенные группы доступа;
          3. состав каждой группы;
          4. виды доступа;
          5. значения доступа;
          6. ключи доступа.

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

          — Вид доступа;
          — Значения доступа;
          — Пользователи;
          — Профиль группы доступа;
          — Область доступа.

          Пример:

          | Вид доступа | Значение |
          |—|—|
          | Организации | ООО «Альфа» |
          | Виды отчетности | Консолидированная отчетность |
          | Периметры | Периметр «Холдинг» |

          Если для группы указано значение Периметр «Холдинг», это прямой признак ограничения по периметрам.

          Если указано значение ООО «Альфа», нужно проверить, входит ли эта организация в периметр.

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

          —

          # 10. Что нужно зафиксировать перед созданием ограничения

          Перед настройкой ограничения заполните следующие сведения:

          | Что проверить | Что записать |
          |—|—|
          | Метаданные объекта | Точное имя объекта |
          | Тип объекта | Справочник, регистр, документ или табличная часть |
          | Поле периметра | Точное имя реквизита |
          | Связь с организацией | Прямое поле или связанный объект |
          | Поле пользователя | Пользователь, сотрудник или физическое лицо |
          | Ответственный | Есть ли такой реквизит |
          | Группа доступа | Есть ли отдельное поле или механизм ключей доступа |
          | Хранилище разрешений | Регистр, справочник, группа доступа или другой объект |
          | Роль | РедактированиеРабочихПроцессов |
          | Права | Изменение и Интерактивное изменение |
          | Другие роли пользователя | Есть ли неограниченный доступ |

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С