Меню Рубрики

Установка прав на реквизиты

Права доступа на реквизиты


Пользователь не должен видеть этот реквизит

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

Настраиваем роль

Итак, приступим. В тестовой конфигурации создадим наш «Тестовый документ» с несколькими реквизитами и три роли (см. следующий скриншот).

Обратите внимание на роли «ДоступКомментарий» и «БезДоступаККомментарию». Обе роли имеют доступ к документу «Тестовый документ». Различие между ним лишь в настройке права доступа к реквизиту «Комментарий». На следующем скриншоте представлено различие между ними.

Для дальнейшего тестирования создадим двух пользователей. Имена назначим в соответствии с присвоенными ролями: «Доступ к комментарию» и «Без доступа к комментарию». Теперь мы можем перейте к тестированию в режиме 1С:Предприятия.

Тестируем

Запустим программу в режиме 1С:Предприятие под пользователем «Без доступа к комментарию». Откроем документ и увидим результат наших действий:

Как мы видим, реквизит «Комментарий» не отображается как в форме документа, так и в форме списка. Теперь запустим программу от имени пользователя «Доступ к комментарию». Тогда мы получим следующий результат:

Теперь реквизит «Комментарий» доступен во всех открытых формах. В принципе, механизм работает.

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

Подводный камень

Настраивать права для отдельных реквизитов очень удобно, но на самом деле этот механизм трудно отнести к настрокам прав доступа. И вот почему:

1) Если мы попытаемся выполнить запрос к реквизиту, доступ к которому ограничен, мы все равно получим его значение без каких-либо ошибок/предупреждений платформы.

2) При формировании SQL-запросов к базе данных в клиент-серверном варианте работы, платформа не учитывает настройки доступа на уровне реквизитов.

На следующем скриншоте представлен текст SQL-запроса, формируемый платформой при открытии документа при обоих вариантах настройки доступа к полю «Комментарий».

Как мы видим, в запросе присутствует выборка поля «_Fld17», в которм присутствует значение комментария.

3) Механизм разграничения прав на уровне реквизитов работает только для управляемых форм.

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

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

Подведем итог

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

Наиболее правильными механизмами для разраничения прав доступа на объекты конфигурации — это настрока прав на отдельные объекты в ролях и механизм RLS .

источник

Настройка права доступа 1С 8

В этой статье речь пойдет о настройке прав доступа пользователей к объектам системы 1С.

В 1С 8для управления доступа пользователей используется отдельный объект метаданных, который называется Роли.

Далее мы рассмотрим, как использовать и настраивать роли в 1С предприятие 8.3.

Обратите внимание! Эта статья написана в помощь программистам. Настройка прав в пользовательском режиме на примере 1С Бухгалтерия рассмотрена в данной статье.

Роль определяет набор прав пользователя, которые он имеет. Механизм ролей очень похож на механизмы прав Windows Active Directory. Для каждого из объектов (справочники, документы) разработчик устанавливает свой набор прав — чтение/запись/добавление/изменение/…

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

Ниже мы рассмотрим подробно каждый атрибут метаданных при настройке роли пользователя 1С 8.3.

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Общие настройки роли 1С

Если открыть объект метаданных Роль, мы можем увидеть следующую картину:

Читайте также:  Установки утилиты bios setup

У объекта есть две закладки — Права и Шаблоны ограничений. Права — основная закладка, Шаблоны — вкладка для настройки прав на уровне записи в 1С (RLS). Это очень важная тема, её я постараюсь описать в будущих статьях.

Будем рассматривать только вкладку Права.

  • Объекты — список метаданных, на которые будут устанавливаться права.
  • Права — список возможных для установки настроек прав.
  • Ограничение доступа к данным — поля роли для настройки РЛС (настроек прав на уровне записей)

Следует обратить внимание на галочки в нижней части:

  • Устанавливать права для новых объектов — если флаг установлен у роли, на новые объекты метаданных будут автоматически установлены разрешающие права. Рекомендую установить, если Вы часто забываете установить права на новые объекты.
  • Устанавливать права для реквизитов и табличных частей по умолчанию — флаг, при установке которого реквизиты и табличные части будут наследовать права владельца(справочника, документа и т.д.)
  • Независимые права подчиненных объектов — если флаг установлен, то система при определении права на объект конфигурации учтёт права на родительский объект

Настройки прав на всю конфигурацию

Если открыть Роль и кликнуть на корень конфигурации, мы увидим следующие настройки:

Подробнее о каждом из прав на всю конфигурацию:

  • Администрирование — администрирование информационной базы (требуется наличие права «Администрирование данных»)
  • Администрирование данных — право на административные действия над данными
  • Обновление конфигурации базы данных — право на обновление конфигурации базы данных
  • Монопольный режим — использование монопольного режима
  • Активные пользователи — просмотр списка активных пользователей
  • Журнал регистрации — журнал регистрации
  • Тонкий клиент — право запуска тонкого клиента
  • Веб клиент — право запуска веб-клиента
  • Толстый клиент — право роли запуска толстого клиента
  • Внешнее соединение — право запуска внешнего соединения
  • Automation — право на использование automation
  • Режим «Все функции» — доступ к пункту меню «Все функции» в режиме управляемого приложения
  • Сохранение данных пользователя — разрешение или запрет на сохранение данных пользователя (настроек, избранного, истории). Особенно актуально для 1С управляемых форм.
  • Интерактивное открытие внешних обработок — открытие внешних обработок
  • Интерактивное открытие внешних отчетов — открытие внешних отчетов
  • Вывод — вывод на печать, запись и копирование в буфер обмена

Настройка прав 1С 8.2 на другие объекты метаданных

Для остальных основных объектов (справочники, константы, документы, регистры…), набор прав у роли достаточно стандартен:

  • Чтение — чтение (программное)
  • Добавление — добавление (программное)
  • Изменение — изменение (программное)
  • Удаление — удаление (программное)
  • Просмотр — просмотр
  • Интерактивное добавление — интерактивное добавление
  • Редактирование — редактирование
  • Интерактивная пометка удаления — интерактивная пометка на удаление
  • Интерактивное снятие пометки удаления — снятие пометки на удаление
  • Интерактивное удаление помеченных— удаление помеченных объектов
  • Ввод по строке — использование режима ввода по строке
  • Интерактивное удаление — непосредственное удаление (shift +del)

Права только для документов:

  • Интерактивное проведение — проведение
  • Отмена проведения — отмена проведения документов
  • Интерактивное проведение неоперативное — проведение (стандартными командами форм) документа в неоперативном режиме
  • Интерактивная отмена проведения — интерактивная отмена проведения
  • Интерактивное изменение проведенных — редактирование проведенного документа. Если право у роли не установлено, то пользователь не может удалить проведенный документ, установить пометку удаления, перепровести или сделать непроведенным. Форма такого документа открывается в режиме просмотра

Только для регистров накопления и бухгалтерии

  • УправлениеИтогами — управление итогами регистра бухгалтерии и регистра накопления (установка периода, по который рассчитаны итоги, и пересчет итогов)

Только для обработок и отчетов:

  • Использование — использование

Привилегированный режим 1С

Если Вы не хотите давать роли права на какие-либо действия, но эти метаданные нужно использовать в какой-то момент, можно воспользоваться методом «УстановитьПривилегированныйРежим()» (или использовать привилегированный режим общего модуля).

Читайте также:  Установка раковины в чертеже

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

Доступна ли роль 1С пользователю?

Чтобы узнать, нужно выполнить функцию РольДоступна(), передав туда название роли строкой.
Например:

Нарушение прав доступа

Такую ошибку можно увидеть, если недостаточно прав на чтение/редактирование/удаление данных. Система выдаёт вот такую ошибку:

Чтобы исправить «нарушение прав доступа», необходимо понять, на какой объект пользователю не хватает прав, и добавить ему либо новую роль, либо в существующую роль добавить больше прав.

Объект не найден…

Ошибка, когда в полях отображается некое ( … ):

Как правило, специалисты думают, что это просто так называемая «битая ссылка». Но это не всегда так. Такая ошибка бывает и при неправильно настроенном механизме прав RLS. Это связано с тем, что у пользователя не хватает прав, чтобы получить представление ссылки.

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

Для массового поиска таких ошибок подойдет статья как найти битые ссылки в базе 1С.

P.S. Если у Вас все же не получилось разобраться в ролях пользователей, Вы можете заказать услуги 1С программиста.
Видео с примером настройки прав в 1С бухгалтерии 3.0:

Другие статьи по 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

источник

Права доступа на реквизиты сложных карточек документов или справочников

Опубликовано:
30 января 2015 в 11:19

Когда встаёт вопрос о доступности тех или иных реквизитов карточки документа или справочника для разных пользователей или групп пользователей, то реализовать такое ограничение, как правило, несложно. Достаточно написать несколько блоков if. else. endif, в которых включаются/выключаются нужные реквизиты. Достаточно обыденная задача для простых карточек и несложных условий. Но мы рассмотрим сложный случай — когда имеются более сотни реквизитов на карточке справочника документа, куча участников бизнес-процесса и множество условий, определяющих каким участникам процесса какие реквизиты карточки и при каких условиях должны быть доступны.

Когда появилась такая задача, то встал выбор — или писать несколько экранов кода (пару-тройку, если не больше), в которых будут всяческие проверки разных условий, с включениями/отключениями групп реквизитов, которые к тому же частично пересекаются друг с другом, или придумать что-то, что позволит не погрязнуть в дебрях кода. Поэтому была придумана функция, для которой формируется список прав доступа по реквизитам, формирующийся на основании следующих данных:

  • Участники — список пользователей или групп пользователей или констант (в которых указаны группы пользователей), для которых производится проверка прав доступа к реквизитам карточки. Может состоять из одного пользователя/группы/константы.
  • Реквизиты — список реквизитов карточки, которые должны быть включены/выключены по итогам вычисления условий доступа для пользователя или группы пользователей.
  • Условия доступа — массив условий проверки доступа. В зависимости от суммы всех условий доступа вычисляется дать или не дать участнику доступ к реквизитам. (подробное описание указано в справке к функции)

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

Пример кода (событие открытия записи):

Каждый массив списка AccessReqList является элементом списка прав доступа. Для всех элементов списка прав доступа формируется единый список реквизитов, на каждый из которых рассчитывается доступ к нему.

Условия проверки элемента списка (если условий проверки несколько) объединяются логической операцией AND. Т.е. чтобы пользователь получил доступ к указанному списку реквизитов — должны выполниться все указанные условия. Пример:

Читайте также:  Установка встраиваемой гладильной доски

В данном случае устанавливается следующее правило доступа: Если пользователь входит в группу пользователей, указанную в константе Group1CodeConst и выполняются одновременно оба условия — Condition1 и CurrentUserIsAuthor, то пользователь получает доступ к установке галочки RequisiteCheck. Если автор документа не входит в эту группу, то доступа к галочке он не получит.

Если требуется указать права доступа, объединённые логической операцией OR, для одного и того же пользователя/группы и одного и того же набора реквизитов нужно указывать несколько записей прав доступа с разными условиями. Пример:

В данном случае права на реквизиты будут выданы в том случае, если выполняется условие Condition3 или условие Condition4 (хотя то же самое можно сделать и одним элементом списка прав доступа, объединив условия Condition3 и Condition4 в одно условие, т.к. они проверяют один и тот же реквизит — ISBEDocLifeStageName). Правило объединения прав доступа логической операцией OR распространяется, фактически, только на список реквизитов. Если разным группам пользователей указываются права на пересекающиеся списки реквизитов, то для реквизитов, относящихся к обоим спискам, итоговый доступ рассчитывается как сумма прав доступа по всем условиям списка, где этот реквизит встречается.

Полный список прав доступа задаётся при открытии записи. Для переключения доступности реквизитов при работе с карточкой (в событиях изменения значений реквизитов) достаточно использовать только те элементы списка прав доступа, которые влияют на те реквизиты, доступность которых зависит от того реквизита, значение которого изменяется.

Переключение доступности реквизитов, не зависящее от прав доступа (например, если реквизит А = 5, то реквизит Б всегда неактивен) следует осуществлять после вызова функции SetCardReqAccess.

источник

Гибкое администрирование прав пользователей на редактирование реквизитов

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

Создайте подчиненный Справочник.ЗабаненныйРеквизиты

В нем создайте два реквизита:

1. ИдентификаторФормы (Строка) //сюда вписываем Вид() справочника или документа

Если для пользователя Маша, создать элемент справочника ЗабаненныйРеквизиты

а Реквизит = «ПочтовыйАдрес»,

то при открытии Машей карточки любого Контрагента

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

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

Теперь в глобальном модуле размещаем нашу функцию:

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

достаточно открыть подчиненный справочник ЗабаненныеРеквизиты

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

Отдельное спасибо поиску и Царькову Валерию

Скачать файлы

Специальные предложения

Новый вопрос

а не
Спр.ВыбратьЭлементыПоРеквизиту(«ИдентификаторФормы»,Контекст_ИдентификаторФормы)

См. также

Программная работа с настройками СКД

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

[СКД] Программное создание схемы компоновки данных

Сделаем отчет на СКД полностью программно, без использования макета «схема компоновки данных».

Последовательности событий. Шпаргалка

Собрал информацию о событиях/подписках/расширениях в одном месте.

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно — для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

источник

Добавить комментарий