1с как проверить права на объект

Обновлено: 25.06.2024

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

Выплата значительной компенсации за нарушение авторских прав, перспектива получения судимости по целому ряду статей; судебные издержкикак финансовые, так и эмоциональные; необходимость экстренной легализации (закупки ПО) и приобретения компьютерной техники взамен изъятой на экспертизу; восстановление необходимой для вашего бизнеса информации, которая надолго "уехала" вместе с изъятыми компьютерами; нервозная обстановка в коллективе в связи с обысками и допросамине слишком ли высокая цена за мнимую экономию или, что еще обиднее, элементарную небрежность в вопросах лицензионной чистоты используемых на предприятии программных продуктов?

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

Преимущества использования легального программного обеспечения

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

Шпаргалка по статье от редакции БУХ.1С для тех, у кого нет времени

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

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

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

Как проверить легальность программ 1С и обновлений к ним

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

Если на компьютере была выявлена та или иная программа 1С, следует убедиться в легальности ее приобретения. Первым делом проверяются документы о приобретении данной программы, а также сопутствующие элементы официальной поставки. К таким элементам относятся лицензионное соглашение, регистрационная анкета, USB-ключ или конверт с ПИН-кодами.

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

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

image001.jpg

image002.jpg

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

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

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

Официальные программы 1С (кроме учебных) способны работать только при наличии такого ключа. Он может быть представлен в качестве физического носителя – ключа в виде флешки или в качестве защитного кода.

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

Что делать при обнаружении пиратских копий программ 1С

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

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

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

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

Юридические риски использования нелегальных программ 1С и обновлений к ним

За нарушение авторских прав в Российской Федерации предусмотрена как административная, так и уголовная ответственность. Все зависит от совокупной стоимости легальных экземпляров аналогов нелицензионных программ, которые использовались в организации.

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

Административная ответственность

Статья 7.12 КоАП РФ. Нарушение авторских и смежных прав, изобретательских и патентных прав.

  1. Ввоз, продажа, сдача в прокат или иное незаконное использование экземпляров произведений или фонограмм в целях извлечения дохода в случаях, если экземпляры произведений или фонограмм являются контрафактными в соответствии с законодательством Российской Федерации об авторском праве и смежных правах либо на экземплярах произведений или фонограмм указана ложная информация об их изготовителях, о местах их производства, а также об обладателях авторских и смежных прав, а равно иное нарушение авторских и смежных прав в целях извлечения дохода, за исключением случаев, предусмотренных частью 2 статьи 14.33 настоящего Кодекса, – влечет наложение административного штрафа на граждан в размере от одной тысячи пятисот до двух тысяч рублей с конфискацией контрафактных экземпляров произведений и фонограмм, а также материалов и оборудования, используемых для их воспроизведения, и иных орудий совершения административного правонарушения; на должностных лиц – от десяти тысяч до двадцати тысяч рублей с конфискацией контрафактных экземпляров произведений и фонограмм, а также материалов и оборудования, используемых для их воспроизведения, и иных орудий совершения административного правонарушения; на юридических лиц – от тридцати тысяч до сорока тысяч рублей с конфискацией контрафактных экземпляров произведений и фонограмм, а также материалов и оборудования, используемых для их воспроизведения, и иных орудий совершения административного правонарушения.
  2. Незаконное использование изобретения, полезной модели либо промышленного образца, за исключением случаев, предусмотренных частью 2 статьи 14.33 настоящего Кодекса, разглашение без согласия автора или заявителя сущности изобретения, полезной модели либо промышленного образца до официального опубликования сведений о них, присвоение авторства или принуждение к соавторству – влечет наложение административного штрафа на граждан в размере от одной тысячи пятисот до двух тысяч рублей; на должностных лиц – от десяти тысяч до двадцати тысяч рублей; на юридических лиц – от тридцати тысяч до сорока тысяч рублей.
  • в размере от 10 000 до 5 млн руб.;
  • в двукратном размере стоимости легальных аналогов контрафактного ПО;
  • в двукратном размере стоимости права использования ПО, определяемой исходя из цены, которая обычно взимается за правомерное использование этого ПО.

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

Уголовная ответственность

Если стоимость легальных аналогов обнаруженных в организации нелегальных программ превышает 100 000 руб., виновные лица могут быть привлечены уже к уголовной ответственности. Уголовную ответственность понесет именно то лицо, чья вина в установке и/или использовании нелегального ПО будет доказана в ходе следствия и суда. Это может быть как руководитель организации, так и бухгалтер, программист, сисадмин или сторонний специалист, обслуживающий организацию.

Статья 146 УК РФ. Нарушение авторских и смежных прав

  1. Незаконное использование объектов авторского права или смежных прав, а равно приобретение, хранение, перевозка контрафактных экземпляров произведений или фонограмм в целях сбыта, совершенные в крупном размере, – наказываются штрафом в размере до двухсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до восемнадцати месяцев, либо обязательными работами на срок до четырехсот восьмидесяти часов, либо исправительными работами на срок до двух лет, либо принудительными работами на срок до двух лет, либо лишением свободы на тот же срок (в ред. Федерального закона от 07.12.2011 № 420-ФЗ).
  2. Деяния, предусмотренные частью второй настоящей статьи, если они совершены: группой лиц по предварительному сговору или организованной группой; в особо крупном размере; лицом с использованием своего служебного положения, – наказываются принудительными работами на срок до пяти лет либо лишением свободы на срок до шести лет со штрафом в размере до пятисот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до трех лет или без такового.

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

Ответственность за неправомерно полученные обновления и обход защиты программ 1С

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

Лицензионное ПО - не то, на чем стоит экономить

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

И сам факт проблем с законом, изъятие компьютеров на экспертизу, допросы сотрудников, судебные рассмотрения наверняка не будут способствовать развитию вашего бизнеса и здоровой обстановке в коллективе. Не говоря уже про нервы, убытки и репутацию руководства коллектива. Наверняка все это не стоит мнимой экономии на лицензионном ПО.

Анна Викулина

Рис.2 Настройки пользователей и прав

Рис.2 Настройки пользователей и прав

Рис.3 Группа пользователей

Рис.3 Группа пользователей

Рис.4 Группа пользователей-2

Рис.4 Группа пользователей-2

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

Рис.5 Назначение ролей

Рис.5 Назначение ролей

Рис.6 Описание прав пользователей

Рис.6 Описание прав пользователей

Рис.7 Просмотр ролей

Рис.7 Просмотр ролей

Здесь же формируется отчет по правам доступа, где отображается статус доступа к конкретным объектам системы.

Рис.8 Отчет по правам доступа

Рис.8 Отчет по правам доступа

Рис.9 Ввод начальных остатков с ограничением доступа

Рис.9 Ввод начальных остатков с ограничением доступа

Таким образом, установить доступ или изменить права в 1С можно добавив пользователя в ту или иную группу в пользовательском режиме.

Рис.10 Добавление пользователя в группу

Рис.10 Добавление пользователя в группу

Саму группу также можно изменить, например, добавив значение в ограничение доступа.

Рис.11 Изменение группы

Рис.11 Изменение группы

Рис.12 Управление правами в режиме конфигуратора

Рис.12 Управление правами в режиме конфигуратора

Для управления правами, призванными изменять объекты, предусмотрены специальные роли добавления/изменения данных.

Рис.13 Специальные роли

Рис.13 Специальные роли

Если известно, на какой объект не хватает прав у пользователя, можно:

Рис.14 Установка прав

Рис.14 Установка прав

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

Рис.15 Список прав

Рис.15 Список прав

Рис.16 Анализ прав и ролей

Рис.16 Анализ прав и ролей

Рис.17 Добавление ролей в дереве метаданных

Рис.17 Добавление ролей в дереве метаданных

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

Рис.18 Разграничение прав новой роли

Рис.18 Разграничение прав новой роли

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

Рис.19 Ограничить чтение и просмотр данных только по одной организаци

Рис.19 Ограничить чтение и просмотр данных только по одной организаци

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

Рис.20 Конструктор ограничений доступа к данным

Рис.20 Конструктор ограничений доступа к данным

Ограничение прав доступа описывается в виде языковых конструкций. Для облегчения их создания предусмотрено использование шаблонов ограничений. Надо заметить, что использование этого механизма напрямую сказывается на производительности, ведь системе, обращаясь к какому-либо объекту, необходимо прочитать и выполнить эти ограничения. Этот процесс отнимает ресурсы компьютера и тормозит работу.

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

Конечно, это не первая подобная обработка, но тем не менее я все таки решил выложить поскольку считаю, что из-за своей простоты (ненавороченности) позволяет получить навыки работы

В обрате отсутствуют какие-либо отборы и настройки. Если есть необходимость их можно доработать, но тут их нет именно потому, что обработку старались сделать как можно проще (на совершенство обработка не претендует :) )

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

Отчет должен быть представлен в виде шахматки:

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

дМетаданных – дерево метаданных (вывод нужно организовать с учетом иерархии). Конечно, от него можно отказаться и просто организовать обход по метаданным, но лучше его оставить, так как если потребуется поставить фильтр на объекты в отчет оно может здорово пригодится (достаточно в дереве добавить новую колонку, проставить в нее соответствующий признак, и при выводе учитывать – в данной обработке не реализовано).

спПрав – список контролируемых прав с учетом приоритетов (то что важнее заносится раньше).

Соответственно в форму при открытии укажем процедуры по заполнению всех нужных списков.

Роли_ПолучитьСписок();

Роли_СписокПрав();

ДеревоМетаданных();

КонецПроцедуры

Начнем с простого – список прав (их всего две), и список ролей

Процедура Роли_СписокПрав()

спПрав.Добавить("Изменение");

спПрав.Добавить("Чтение");

КонецПРоцедуры

Процедура Роли_ПолучитьСписок()

спРоли = новый СписокЗначений;

Для каждого РОль Из Метаданные.Роли Цикл

ОбработкаПрерыванияПОльзователя();

спРоли.Добавить(РОль,РОль_Описание(РОль));

КонецЦикла;

КонецПроцедуры

Функция РОль_Описание(Роль)

Результат = РОль.Представление();

Если Результат<>РОль.Имя Тогда

Результат = Результат+"["+Роль.Имя+"]";

КонецЕсли;

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

КонецФункции

Процедура ДеревоМетаданных() Экспорт

дМетаданные.Колонки.Добавить("Объект");

дМетаданные.Колонки.Добавить("Представление");

ДеревоМетаданных_ДобавитьАдминистрирование();

ДеревоМетаданных_Добавить("Справочники");

ДеревоМетаданных_Добавить("Документы");

ДеревоМетаданных_Добавить("ЖурналыДокументов","Журналы документов");

ДеревоМетаданных_Добавить("Перечисления");

ДеревоМетаданных_Добавить("Отчеты");

ДеревоМетаданных_Добавить("Обработки");

ДеревоМетаданных_Добавить("ПланыВидовХарактеристик","Планы видов характеристик");

ДеревоМетаданных_Добавить("ПланыСчетов","Планы счетов");

ДеревоМетаданных_Добавить("ПланыВидовРасчета","Планы видов расчета");

ДеревоМетаданных_Добавить("РегистрыСведений","Регистры сведений");

ДеревоМетаданных_Добавить("РегистрыНакопления","Регистры накопления");

ДеревоМетаданных_Добавить("РегистрыБухгалтерии","Регистры бухгалтерии");

ДеревоМетаданных_Добавить("РегистрыРасчета","Регистры расчета");

ДеревоМетаданных_Добавить("БизнесПроцессы","Бизнес-процессы");

ДеревоМетаданных_Добавить("Задачи");

КонецПроцедуры

ПРоцедура ДеревоМетаданных_ДобавитьАдминистрирование()

СтрокаГр = дМетаданные.Строки.Добавить();

СтрокаГр.Объект = "Администрирование";

СтрокаГр.Представление = "Права на конфигурацию в целом";

мсПрав = новый СписокЗначений;

мсПрав.Добавить("Администрирование","Администрирование");

мсПрав.Добавить("МонопольныйРежим","Монопольный режим");

мсПрав.Добавить("АктивныеПользователи","Просмотр списка активных пользователей");

мсПрав.Добавить("ЖурналРегистрации","Журнал регистрации");

мсПрав.Добавить("ВнешнееСоединение","Внешнее соединение");

мсПрав.Добавить("Automation","Использование automation");

мсПрав.Добавить("ИнтерактивноеОткрытиеВнешнихОбработок","Интерактивное открытие внешних обработок");

мсПрав.Добавить("ИнтерактивноеОткрытиеВнешнихОтчетов","Интерактивное открытие внешних отчетов");

мсПрав.Добавить("Вывод","Вывод на печать, запись и копирование в буфер обмена");

мсПрав.Добавить("ОбновлениеКонфигурацииБазыДанных","Обновление конфигурации базы данных");

Для каждого эл Из мсПрав Цикл

ОбработкаПрерыванияПОльзователя();

НС = СтрокаГр.Строки.Добавить();

НС.Объект = Эл.Значение;

НС.Представление = Эл.Представление;

КонецЦикла;

КонецПРоцедуры

Процедура ДеревоМетаданных_Добавить(что,Представление="")

Первая = истина;

Для каждого мет Из Метаданные[что] Цикл

Если Первая Тогда

СтрокаГр = дМетаданные.Строки.Добавить();

СтрокаГр.Объект = Что;

Если ПустаяСтрока(Представление) Тогда

СтрокаГР.Представление = Что;

иначе

СтрокаГР.Представление = Представление;

КонецЕсли;

первая = Ложь;

КонецЕсли;

строка = СтрокаГр.Строки.Добавить();

Строка.Объект = Мет.Имя;

Строка.Представление = Мет.Представление();

КонецЦикла;

КонецПроцедуры

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

Для этого создадим отдельную функцию:

Функция РОль_Права(Мет,Роль)

Результат = "";

Если ТипЗнч(Мет)=Тип("Строка") Тогда

// это проверка Административных прав

Если ПравоДоступа(Мет,Метаданные,РОль) Тогда

Результат = "Да";

иначе

результат = "";

КонецЕсли;

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

КонецЕсли;

Для каждого Право Из спПрав Цикл

ОбработкаПрерыванияПОльзователя();

Если ПравоДоступа(Право.Значение,Мет,РОль) Тогда

Результат = Право.Значение;

прервать;

КонецЕсли;

КонецЦикла;

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

КонецФункции

Формирование самого отчета делаем при помощи процедур

Процедура Сфомировать_Вывод(ИмяСекции,данные=Неопределено)

Сек = Макет.ПолучитьОбласть(ИмяСекции+"|Начало");

пСек = Сек.Параметры;

Уровень = 0;

ЭтоАдминистирирование = ТипЗнч(Данные)=Тип("СтрокаДереваЗначений");

Если ИмяСекции="С1" Тогда

уровень = 1;

пСек.Объект = данные;

ИначеЕсли ИмяСекции="С2" Тогда

уровень = 2;

Если ЭтоАдминистирирование Тогда

пСек.Объект = данные.Представление;

пСек.Обозначение = данные.Объект;

иначе

пСек.Объект = данные.Представление();

пСек.Обозначение = данные.Имя;

КонецЕсли;

КонецЕсли;

ТабДок.Вывести(Сек,Уровень);

Для каждого Роль Из спРоли Цикл

ОбработкаПрерыванияПОльзователя();

Сек = Макет.ПолучитьОбласть(ИмяСекции+"|В1");

пСек = Сек.Параметры;

Если ИмяСекции = "Ш1" Тогда

пСек.РОль = Роль.Представление;

иначеЕСли ИмяСекции = "С2" Тогда

Если ЭтоАдминистирирование Тогда

Права = РОль_Права(данные.Объект,Роль.Значение);

иначе

Права = РОль_Права(данные,Роль.Значение);

КонецЕсли;

Если Права = "Изменение" или Права="Да" тогда

Сек.Область("ТекПрава").ЦветФона = WebЦвета.СветлоЗеленый;

ИначеЕсли Права = "Чтение" тогда

Сек.Область("ТекПрава").ЦветФона = WebЦвета.Желтый;

КонецЕсли;

пСек.Права = Права;

КонецЕсли;

ТабДок.Присоединить(Сек);

КонецЦикла;

ТабДок.Присоединить(Макет.ПолучитьОбласть(ИмяСекции+"|Конец"));

КонецПроцедуры

Процедура Сфомировать(Кнопка)

ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;

ТабДок.Очистить();

Макет = ПолучитьМакет("Макет");

Сфомировать_Вывод("Ш1");

ТабДок.ФиксацияСверху = ТабДок.ВысотаТаблицы;

ТабДок.ФиксацияСлева = 2;

ТабДок.НачатьАвтогруппировкуСтрок();

Для каждого Ст1 Из дМетаданные.Строки Цикл

ОбработкаПрерыванияПОльзователя();

ЭтоАдминистирирование = Ст1.Объект = "Администрирование";

Если ЭтоАдминистирирование Тогда

Мет1 = Метаданные;

иначе

Мет1 = Метаданные[Ст1.ОБъект];

КонецЕсли;

Сфомировать_Вывод("С1",Ст1.Представление);

Для каждого Ст2 Из Ст1.Строки Цикл

ОбработкаПрерыванияПОльзователя();

Если ЭтоАдминистирирование Тогда

Мет2 = Ст2;

иначе

Мет2 = Мет1[СокрЛП(Ст2.ОБъект)];

КонецЕсли;

Сфомировать_Вывод("С2",Мет2);

КонецЦикла;

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

Сфомировать_Вывод("И1");

КонецПроцедуры

Сфомировать – организует таблицу и обход по строкам

Сфомировать_Вывод – организует обход по колонкам

1С RLS

Тема ограничения доступа на уровне записей (RLS) обычно сложна в понимании новичками и многими профессионалами, почему и не используется в работе.
Всего статей будет 2:

  1. О том, каким образом платформа обрабатывает RLS; ;

Роли, права доступа

Это всего лишь роль (не предопределенная), в которой установлены флажки на все виды прав на все объекты конфигурации.

Ограничение доступа на уровне записей

Row Level Security (RLS) – ограничение на уровне записей.

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

  • роли,
  • параметры сеанса,
  • функциональные опции,
  • привилегированные общие модули,
  • ключевое слово РАЗРЕШЕННЫЕ в языке запросов.

Техническая реализация ограничений доступа в 1С

1С формирует запрос к СУБД. Кластер серверов добавляет к запросу секцию ГДЕ, в которой содержится текст условия на ограничение доступа по RLS, затем этот запрос отправляется в СУБД, извлеченные данные возвращаются на клиент 1С.

Упрощенная схема работы механизма RLS в 1С

Такой механизм будет работать при любом запросе из клиента:

  • в отчетах,
  • в динамических списках и в обычных формах списков
  • в произвольных запросах.

Подобная реализация механизма сильно влияет на производительность.

Пути обхода ограничений доступа.

В больших ресурсоемких операциях (обработки перепроведения документов, например) часть кода можно выносить в привилегированные модули.

Его особенность заключается в том, что код в нем исполняется без какого-либо контроля прав доступа, в том числе и RLS.

Флаг Привилегированный

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

  • Привилегированный режим при проведении
  • Привилегированный режим при отмене проведения

Привилегированный режим в документах 1С

В) Метод УстановитьПривилегированныйРежим()

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

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

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

УстановитьПривилегированныйРежим ( Истина );

// любой код тут будет исполнен без контроля прав и RLS

УстановитьПривилегированныйРежим ( Ложь ); // либо конец процедуры / функции

Количество включений привилегированного режима должно совпадать с количеством выключений. Однако если внутри процедуры или функции происходило включение привилегированного режима (один раз или более), но не происходило его выключение, то система автоматически выполнит выключение столько раз, сколько незавершенных включений было в покидаемой процедуре или функции

Если в процедуре или функции вызовов метода УстановитьПривилегированныйРежим ( Ложь ) сделано больше, чем вызовов метода УстановитьПривилегированныйРежим ( Истина ), то будет вызвано исключение

Функция ПривилегированныйРежим () возвращает Истина , если привилегированный режим еще включен, и Ложь , если он полностью выключен. При этом не анализируется количество установок привилегированного режима в конкретной функции.

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

Демонстрация привилегированного режима

Также существует возможность стартовать привилегированный сеанс. Это сеанс, в котором привилегированный режим установлен с самого начала работы системы. При этом во время работы метод ПривилегированныйРежим () будет всегда возвращать Истина , а возможность отключить привилегированный режим не поддерживается. Стартовать привилегированный сеанс может только пользователь, которому доступны административные права (право Администрирование). Запуск сеанса можно выполнить с помощью ключа командной строки запуска клиентского приложения UsePrivilegedMode или параметра строки соединения с информационной базой prmod .

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

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

Безопасный режим.

Да, можно написать внешнюю обработку с привилегированным режимом исполнения и выгрузить / испортить данные. Для предотвращения этого в системе есть метод глобального контекста

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

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

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

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

Настройка ограничения доступа

RLS можно настроить только для прав:

  • чтение (select)
  • добавление (insert)
  • изменение (update)
  • удаление (delete)

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

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

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

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

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

Выбор полей для ограничения доступа

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

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

  • в регистрах накопления ограничения доступа могут содержать только измерения основного объекта ограничения;
  • в регистрах бухгалтерии в ограничениях можно использовать только балансовые измерения основного объекта ограничения

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

Механизм наложения ограничений доступа.

  • Формируется список прав (чтение, добавление, изменение, удаление), список таблиц базы данных и список полей, используемых этим запросом.
  • Из всех ролей текущего пользователя выбираются ограничения доступа к данным для всех прав, таблиц и полей, задействованных в запросе. При этом если какая-нибудь роль не содержит ограничений доступа к данным какой-нибудь таблицы или поля, то это значит, что в данной таблице доступны значения требуемых полей из любой записи. Иначе говоря, отсутствие ограничения доступа к данным означает наличие ограничения ГДЕ Истина .
  • Получаются текущие значения всех параметров сеанса и функциональных опций , участвующих в выбранных ограничениях.

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

Ограничения, полученные из одной роли, объединяются операцией И .

Ограничения, полученные из разных ролей, объединяются операцией ИЛИ .

Принцип сложения ограничений доступа

Схема доступа к данный ВСЕ

Схема доступа к данным РАЗРЕШЕННЫЕ

РАЗРЕШЕННЫЕ в запросе - Объект не найден

Важно, что если в запросе не указано ключевое слово РАЗРЕШЕННЫЕ, то все отборы, заданные в этом запросе, не должны противоречить ни одному из ограничений на чтение объектов базы данных, используемых в запросе. При этом если в запросе используются виртуальные таблицы, то соответствующие отборы должны быть наложены и на сами виртуальные таблицы.

Читайте также: