Нарушение прав доступа при удалении помеченных объектов

Нарушение прав доступа при удалении помеченных объектов

В 1С:Предприятии различают два типа прав – основные и интерактивные.

Основные (неинтерактивные) – проверяются всегда независимо от способа обращения к объектам информационной базы.

Интерактивные – проверяются при выполнении интерактивных операций (например, операция «Установить пометку удаления»).

Нужно учитывать, что проверку интерактивных прав можно обойти, создав, например, при конфигурировании форму самостоятельно и заменив стандартные команды своими, а проверку неинтерактивных прав нельзя обойти ни при каких обстоятельствах. Неинтерактивными правами защищается характерная для объекта фундаментальная функциональность, за это отвечают, например, такие права, как: «Добавление», «Чтение», «Изменение», «Удаление».

Для построения защищенных прикладных решений достаточно управлять только 4-мя основными правами доступа — «Добавление», «Чтение», «Изменение» и «Удаление».

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

Пример проверки прав из языка:

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

Проверка прав объектов производится только в режиме «1С:Предприятие».
При попытке выполнить неразрешенную операцию выдается сообщение об ошибке «Нарушение прав доступа!», и производится отмена всех начатых транзакций.

Проверка основных и интерактивных прав используется расширениями формы, табличного поля и поля ввода (расширение формы определяется ее основным реквизитом, а табличного поля и поля ввода — типом редактируемых данных). Благодаря этому, если не установлено право «Просмотр», то форма списка или форма объекта не откроется, и будет выдано стандартное сообщение о нарушении прав доступа.

Рассмотрим проверку прав расширениями формы, табличного поля и поля ввода на примере документа:

  • При открытии формы документа проверяется право «Просмотр», после чего, если это форма нового объекта, то проверяется право «ИнтерактивноеДобавление», а если нет — право «Редактирование». Если выполняется запись с проведением, то проверяются права «ИнтерактивноеПроведение», «ИнтерактивнаяОтменаПроведения» или «ИнтерактивноеПроведениеНеОперативное», в зависимости от режима записи.
  • Расширение табличного поля для журнала документов при открытии формы, в которой журнал установлен основным реквизитом, проверяет, что право «Просмотр» установлено хотя бы у одного документа журнала. При проведении документов из журнала проверяются права «ИнтерактивнаяОтменаПроведения», «ИнтерактивноеПроведение» и «ИнтерактивноеПроведениеНеОперативное». При удалении документов проверяется право «ИнтерактивноеУдаление», а при установке/снятии пометки на удаление проверяются права «ИнтерактивнаяПометкаУдаления» и «ИнтерактивноеСнятиеПометкиУдаления». При добавлении нового документа, после выбора его типа, расширение табличного поля журнала документов проверяет право «ИнтерактивноеДобавление».
  • Поле ввода для документа проверяет только право «ВводПоСтроке».

Связанные права

Часть прав в системе 1С:Предприятия связаны друг с другом. Это означает, что основные права доступа, такие как «Чтение», «Изменение», «Добавление» и «Удаление» и некоторые другие могут влиять на права, отвечающие за такие операции с объектом, которые, в конечном счете, приведут к простейшим операциям. Например, нельзя разрешить право «Изменение», не выдав право «Чтение».

Интерактивные права напрямую зависят от их неинтерактивных аналогов, т.е. право «Интерактивное удаление» зависит от права «Удаление». На практике при конфигурировании это выглядит так, что при разрешении интерактивных прав аналогичные им неинтерактивные будут автоматически разрешены, и, наоборот, при снятии неинтерактивных прав соответствующие им интерактивные автоматически будут сброшены. Допускается лишь установка неинтерактивного права и сброс интерактивного, но не наоборот. Например, нельзя разрешить интерактивное право «Интерактивное удаление» и запретить неинтерактивное «Удаление».

Зависимость прав может выстраиваться в сложные цепочки, например, у объекта «Документ» право «Интерактивная отмена проведения» зависит от прав «Отмена проведения» и «Просмотр» одновременно, где первое зависит от «Изменение», которое, в свою очередь, зависит от права «Чтение».

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

Алфавитный список прав доступа 1С:Предприятия
Право доступа — Описание
Automation — Разрешает использование 1С:Предприятие в режиме automation.
Администрирование — Разрешает административные действия, например, ведение списка пользователей или открытие конфигурации.
АктивныеПользователи — Разрешает просмотр списка активных пользователей. Это право может использоваться при организации «гостевого входа» в прикладном решении.
ВводПоСтроке — Разрешает использование режима ввода по строке для различных объектов.
ВнешнееСоединение — Разрешает использование 1С:Предприятия через COM соединение.
Добавление — Разрешает добавление объектов данного вида. Проверяется на уровне объекта и на уровне БД.
ЖурналРегистрации — Разрешает просмотр журнала подключений и протоколов работы
Изменение — Разрешает изменение объектов данного вида. Проверяется на уровне объекта и на уровне БД.
ИнтерактивнаяОтменаПроведения — Разрешает интерактивную отмену проведения
ИнтерактивнаяПометкаУдаления — Разрешает интерактивную установку пометки удаления
ИнтерактивноеДобавление — Разрешает интерактивное добавление объектов данного вида
ИнтерактивноеОткрытиеВнешнихОбработок — Разрешает открытие внешних обработок стандартными командами меню
ИнтерактивноеПроведение — Разрешает интерактивное проведение документов данного вида
ИнтерактивноеПроведениеНеОперативное — Разрешает интерактивное проведение (стандартными командами форм) документа в неоперативном режиме
ИнтерактивноеСнятиеПометкиУдаления — Разрешает интерактивное снятие пометки на удаление
ИнтерактивноеУдаление — Разрешает интерактивное непосредственное удаление
ИнтерактивноеУдалениеПомеченных — Разрешает интерактивное удаление помеченных объектов
Использование — Разрешает использование обработки, отчета, интерфейса
МонопольныйРежим — Разрешает переключение в монопольный режим при работе в режиме 1С:Предприятия.
ОтменаПроведения — Разрешает отмену проведения документов
Проведение — Разрешает проведение документов
Просмотр — Разрешает просмотр объектов (например, в списках)
Редактирование — Разрешает редактирование объекта
Удаление — Разрешает удаление
УправлениеИтогами — Разрешает управление итогами регистра бухгалтерии и регистра накопления — установку периода, по который рассчитаны итоги, и пересчет итогов
Чтение — Разрешает чтение данных из информационной базы

Невозможно удалить помеченные на удаление документы под полными правами — Нарушение прав доступа

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

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

естественно,я пробовала удалить через удаление помеченных объектов. пробовала удалять shift-delete. документы которые удаляю, ни на какие доки больше не ссылаются. сама писала обработку удаления-фиг. вот такую:

Выборка = Документы.РеализацияТоваровУслуг.Выбрать();
Пока Выборка.Следующий() Цикл
ДокОбъект = Выборка.ПолучитьОбъект();
Если ДокОбъект.ПометкаУдаления Тогда
ДокОбъект.Удалить();
КонецЕсли;
КонецЦикла;

То же самое и говорит-нарушение прав доступа. У всех трех ролей моего пользователя — Администрирование,администратор системы и полные права — стоят ВСЕ права на ВСЕ действия со ВСЕМИ документами. Правда, после попытки удаления в журнале регистрации вот что (на скриншоте прикрепленном). Но на эти регистры так же стоят все права. жесть.

Удаление помеченных объектов (немонопольное) для управляемых (UPD: и обычных) форм

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

(5) Дарю. Вставьте этот фрагмент в модуль обработки. Он нужен для регистрации в справочнике дополнительные отчеты и обработки для конфигураций на БСП.

В модуле формы «ОсновнаяФормаУ» чобы влоделца не в попытке получал:

Здравствуйте, при удалении помеченных ошибка:
<ВнешняяОбработка.УдалениеПомеченныхОбъектов.МодульОбъекта(561)>: Ошибка при вызове метода контекста (УдалитьОбъекты)
УдалитьОбъекты(лМассив, Ложь);
по причине:
Нарушение прав доступа!

Управление торговлей, редакция 11.1 (11.1.2.10)
1С:Предприятие 8.2 (8.2.18.109)

(0) В 8.3.5 управляемая форма не работает. При открытии выдаётся окно с сообщением

Ошибка отображения типов:
Отсутствует отображение для типа ‘ОбъектМетаданных’

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘v’:
форма: Элемент
имя: < http://v8.1c.ru/8.2/uobjects >v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘value’:
форма: Элемент
имя: < http://v8.1c.ru/8.1/data/core >value
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘ОбъектМетаданных’

Где там на форме ОбъектыМетаданных, ума не приложу. Процедура ПриСозданииНаСервере не отрабатывается, видимо ошибка получается при построении формы.

Нарушение прав доступа при удалении помеченных объектов

Настройка пользователей и их прав доступа в 1С:Бухгалтерия 8.3 (редакция 3.0)

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

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

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

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

  • Администратор : пользователь, который обладает полными правами на базу и не имеет никаких ограничений. Не нужно использовать этого пользователя для ежедневной работы. Пароль от администратора следует давать программистам и администраторам, которые нам настраивают или обновляют базу. Так как под этим пользователем будут работать только они — мы в дальнейшем всегда сможем в журнале регистрации отделить их изменения в базе от работы других пользователей. Это бывает полезно в случае «разбора полётов».
  • Главный бухгалтер : пользователь, который обладает правами не меньшими, чем администратор, но является самостоятельной ролью со своим паролем. Под этим пользователем будете работать вы сами.
  • Бухгалтер : если у вас есть помощники или другие бухгалтеры в подчинении, то этот пользователь подойдет для них. Какие ограничения накладывает эта роль:
    • Запрет на изменение параметров учета.
    • Запрет на изменение учетной политики.
    • Запрет на изменение плана счетов.
    • Запрет на редактирование списка пользователей.
    • Запрет на настройку счетов учета номенклатуры.
    • Запрет на удаление помеченных на удаление элементов.
    • Запрет на смену даты запрета изменения данных.
  • Проверяющий : этот пользователь будет обладать только правами на просмотр базы. Ничего менять в ней он не сможет.

Администратор

1. Зайдите в раздел «Администрирование» и выберите там пункт «Настройки пользователей и прав» ( у вас другое меню? ):

2. В открывшейся панели выберите пункт «Пользователи»:

3. По умолчанию, пользователь «Администратор» уже должен быть в этом списке. Сделайте двойной щелчок на нём, чтобы открыть его настройки.

4. Сделайте настройку, как на рисунке ниже. Пароль придумайте сами — его нужно повторить два раза. Обращаю ваше внимание, что у каждого из пользователей должен быть свой пароль. Осталось нажать «Записать и закрыть». Готово!

Главный бухгалтер

1. Вернитесь в список пользователей и нажмите кнопку «Создать» на панели инструментов.

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

3. Нажмите кнопку «Дискета», чтобы сохранить изменения, а затем кнопку «Права доступа».

4. В окне настройки прав укажите галки рядом с пунктами «Администратор» и «Главный бухгалтер». Осталось нажать кнопку «Записать». Готово!

1. Вернитесь в список пользователей и нажмите кнопку «Создать» на панели инструментов.

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

3. Нажмите кнопку «Дискета», чтобы сохранить изменения, а затем кнопку «Права доступа».

4. В окне настройки прав укажите галки рядом с пунктом «Бухгалтер». Осталось нажать кнопку «Записать». Готово!

Проверяющий

1. Вернитесь в список пользователей и нажмите кнопку «Создать» на панели инструментов.

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

3. Нажмите кнопку «Дискета», чтобы сохранить изменения, а затем кнопку «Права доступа».

4. В окне настройки прав укажите галки рядом с пунктом «Только просмотр». Осталось нажать кнопку «Записать». Готово!

Мы молодцы, на этом всё

Кстати, подписывайтесь на новые уроки.

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

Удаление помеченных объектов (немонопольное) для управляемых (UPD: и обычных) форм

Изнаначально взято из конфигурации 1с Документооборот.

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

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

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

Есть аналогичные публикации, например, http://forum.infostart.ru/forum24/topic43769/.
Отличий не знаю, т.к. у меня нет прав на скачивание .

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

UPD: Добавлена обычная форма. Некоторые изменения, в основном, косметического характера.

UPD2: Исправлена часть ошибок, добавленная при предыдущем обновлении :). Добавлены флажки «Сообщать об удаленных» и «Удалять в транзакции». Количество удаляемых в монопольном и немонопольном режимах, практически, сравнялось.

UPD3: Исправлены замеченные ошибки.

UPD4: Исправлена ошибка: планы видов расчета не включались в дерево метаданных — ошибка копи-пасты, перенесенная из 1с-Документооборот. Конечно, документообороту виды расчета глубоко параллельны, но мне вот понадобились :).

UPD5: Добавлены ПРОЦЕДУРЫ И ФУНКЦИИ РЕГИСТРАЦИИ обработки в информационной базе

UPD6: Исправлены замеченные ошибки отображения статуса возможности удаления. Замечено, что если установлена дата запрета редактирования и есть ссылки на записи периодическго регистра сведений с более ранним периодом, чем дата запрета редактирования, то статус зеленый (можно удалить), но удалить невозможно. Пока ничего не делал по этому поводу.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Получите 267 видеоуроков по 1С бесплатно:

  • Бесплатный видео самоучитель по 1С Бухгалтерии 8.3 и 8.2;
  • Самоучитель по новой версии 1С ЗУП 3.0;
  • Хороший курс по 1С Управление торговлей 11.
  • Администрирование — администрирование информационной базы (требуется наличие права «Администрирование данных»)
  • Администрирование данных — право на административные действия над данными
  • Обновление конфигурации базы данных — право на обновление конфигурации базы данных
  • Монопольный режим — использование монопольного режима
  • Активные пользователи — просмотр списка активных пользователей
  • Журнал регистрации — журнал регистрации
  • Тонкий клиент — право запуска тонкого клиента
  • Веб клиент — право запуска веб-клиента
  • Толстый клиент — право роли запуска толстого клиента
  • Внешнее соединение — право запуска внешнего соединения
  • 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. Мы работаем в Москве и области.