Удаление помеченных объектов

Шаг 5. Что делать, если удалились не все документы

Объект не получится удалить, если данные из него используются программой где то еще. В этом случае программа покажет список неудаленных объектов. К примеру, если вы попытаетесь удалить имущество (9), которое есть в приходной накладной (10), то увидите такое окно:

В левой половине окна вы видите перечень неудаленных объектов (9), справа перечень документов, в которых есть их данные (10). Именно они не дают исключить объект из программы, поэтому их также нужно пометить на удаление. В нашем случае, чтобы удалить номенклатуру «Аккумулятор….» (9), надо пометить на удаление накладную «Поступление 3 от 25.06.2018г.» (10), и после этого повторить процедуру, начав ее с шага 2.

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

Два вида удаления в 1с , понятие контроля ссылочной целостности в 1с

В программе объекты 1с можно удалить двумя способами:

  1. С помощью интерактивного удаления (прямое удаление без контроля ссылочной целостности)
  2. Через пометку на удаление (удаление с контролем ссылочной целостности)

Давайте рассмотри что такое ссылочная целостность в 1с. Но для того чтобы нам с вами ответить на этот вопрос мы должны знать что такое «битые» ссылки в 1с. Для тех кто не знает, битые ссылки в 1с это ссылки которые указывают на не используемую область памяти, то есть по сути указывают в никуда. Теперь давайте возьмем для примера любой документ в системе 1с предприятие. В нем находится множествои различных реквизитов. Эти реквизиты могут быть как простыми (примитивные типы такие как число, дата, булево), так могут быть и объектными (такие как ссылки на другие объекты системы, например различные справочники, перечисления и т.д.) Так вот контроль ссылочной целостности в 1с как раз и означает тот факт, что объект не будет удален из системы 1с до тех пор, пока на него ссылаются какие-либо другие объекты системы. Как раз пометка на удаление объектов 1с позволяет сохранить механизм ссылочной целостности в 1с, так как обработка удаления помеченных объектов не даст удалить объект пока на него ссылаются другие объекты.

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

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

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

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

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

Право Интерактивное удаление помеченных требует наличия основного права Удаление. Интерактивное право Редактирование требует наличия основного права Изменение. Интерактивное право Просмотр требует наличия основного права Чтение.

Кроме этого основные права Изменение и Удаление требуют наличия основного права Чтение.

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

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

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

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

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

Ограничение доступа к данным представляет собой условие, описанное на языке, который является подмножеством языка запросов. Это условие применяется для каждой записи таблицы базы данных, над которой выполняется операция. Если условие принимает значение «истина», то операция выполняется, а если нет, то не выполняется. Условие ограничения доступа может быть уточнено с помощью инструкций препроцессора(#ЕСЛИ <условие>, #ТОГДА.. и др.), что сделает его более эффективным. При просмотре списков и формировании отчетов существует возможность обеспечить отображение только тех данных, доступ к которым пользователю разрешен.

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

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

Выполнение на сервере без проверки прав

Привилегированные модули

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

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

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

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

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

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

>Полезные ссылки:

  • Общая архитектура 1С:Предприятия 8,
  • Википедия — Управление доступом на основе ролей.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *