Где и как настраивается возможность непосредственного удаления объектов в 1С 8.3?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В платформе «1С:Предприятие 8.3» по умолчанию используется безопасная схема удаления данных: пользователь сначала устанавливает пометку на удаление, а затем администратор запускает регламентную процедуру контроля ссылочной целостности и окончательного удаления. Однако в некоторых случаях возникает необходимость разрешить или, наоборот, полностью заблокировать прямое (непосредственное) физическое удаление объектов мимо пометки.

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

Настройка прав на удаление в конфигураторе

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

Рассмотрим по шагам первый вариант — настройку прав из окна свойств конкретного объекта конфигурации:

  1. Откроем информационную базу в режиме Конфигуратор.
  2. В дереве метаданных найдем интересующий нас объект (например, справочник или документ).
  3. Откроем контекстное меню объекта или дважды кликнем по нему и перейдем на вкладку Права.
  4. В верхней части открывшегося окна выберем нужную Роль пользователя.
  5. В списке прав найдем и отметим необходимые флаги (или снимем их, если требуется запретить операцию).

Разберем второй вариант — централизованную настройку через ветку ролей:

  1. В дереве метаданных развернем ветку Общие → Роли.
  2. Двойным щелчком откроем нужную роль (например, ПолныеПрава или созданную пользовательскую роль).
  3. В дереве объектов роли найдем требуемый справочник, документ или иной объект метаданных.
  4. В правой части окна настроим соответствующие права доступа.

Разновидности прав на удаление в платформе 1С

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

  1. Интерактивное удаление — позволяет пользователю в пользовательском режиме (1С:Предприятие) физически стереть объект из базы данных без предварительной пометки на удаление (обычно по нажатию комбинации клавиш Shift + Del).
  2. Удаление — базовое право на физическое удаление объекта. Оно требуется для программного вызова метода Удалить() у объекта данных в коде 1С.
  3. Интерактивное удаление помеченных — дает пользователю право интерактивно физически удалять те объекты, на которые уже установлена пометка на удаление.
  4. Интерактивное удаление предопределенных — специальное право для справочников, планов счетов и планов видов характеристик, позволяющее удалять предопределенные элементы, заложенные на уровне метаданных.
  5. Интерактивная пометка на удаление — стандартное пользовательское право, позволяющее пометить объект на удаление клавишей Del.

Ограничение удаления на уровне интерфейса и форм

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

Рассмотрим основные механизмы управления удалением в коде и формах:

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

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


Процедура ПередУдалением(Отказ)
    
    // Проверим условие, при котором непосредственное удаление запрещено
    Если Не РольДоступна("АдминистраторСистемы") Тогда
        Отказ = Истина;
        ВызватьИсключение "Прямое удаление документов запрещено! Используйте пометку на удаление.";
    КонецЕсли;
    
КонецПроцедуры

Риски непосредственного удаления данных

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

  1. Нарушение ссылочной целостности: При прямом удалении платформа не выполняет поиск ссылок на данный объект во всей базе. Если на удаленный элемент ссылались проведенные документы, регистры или другие справочники, в них останутся поврежденные ссылки с отображением <Объект не найден>.
  2. Проблемы с движениями и регистрами: Если удаляется проведенный документ, его стандартные движения могут очиститься, но записи в независимых регистрах сведений или связанных подчиненных структурах останутся «висеть» в базе.

Именно поэтому стандартной и безопасной практикой является использование пометки на удаление с последующей обработкой поиска и удаления связанных данных через метод платформы УдалитьОбъекты() с включенной проверкой ссылочной целостности.

← На главную