Интернет Windows Android

Механизм разделения данных 1с. Использование механизма разделения данных вместо RLS

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

Общие реквизиты были первоначально реализованы в версии 1С 7.7, но сразу в платформу 8 версии разработчики его не включили. Механизм общих реквизитов был введен разработчиками 1С только в релизе 8.2.14.

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

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

Единственное ограничение общих реквизитов — невозможность использования их в .

Рассмотрим основные настройки и свойства общих реквизитов, отличные от других объектов конфигурации:

Состав — список объектов, к которым будет использован общий реквизит, настройка напоминает настройку плана обмена.

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

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

Разделение данных — эту настройку рассмотрим отдельно.

Разделение данных в 1С с помощью общего реквизита

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

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

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

Для настройки в общем реквизите необходимо указать разделение данных — Разделять . Сразу после нажатия система предложит создать параметры учета по умолчанию:

При этом необходимо будет при старте системы указать параметры сеанса, как это сделать, с примером было описано в статье .

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

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

Разберем настройку общего реквизита в 1С 8.3 на примере каркасной конфигурации и реквизита Организация:

В системе имеется 3 документа, где необходимо указание реквизита Организация: это Приходная Накладная, Расходная Накладная, Начисление Зарплаты.

Настройка проста:

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

Все, настройка окончена!

Смотрим результат:

Система отображает общий реквизит «как свой»: и в запросах, и в реквизитах формы, и в других местах. Вот такое волшебство! 🙂

Не добавляется общий реквизит 1С 8.3

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

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

Процедура АвтоматичнеЗбереженняАвтораПередЗаписью(Источник, Отказ) Экспорт // Вставити вміст обробника. Источник. АвторОбєкту = ИмяПользователя() + " ; " + строка (текущаядата() ) ; КонецПроцедуры

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

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

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

После этого нам остается только установить параметры сеанса в модуле сеанса:

Приведем пример, как выглядит справочник контрагентов без использования «Разделения данных» и с ним:

Без разделения

С разделением

Обратите внимание что Реквизит «Ответсвенный» в первом контрагенте не найден, поскольку автором данного реквизита был кто-то другой.

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

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

После того как мы установили «Параметры сеанса» мы можем обратиться к данному параметру из любого модуля системы простым

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

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

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

Свойство общего реквизита-разделителя – Разделение пользователей 1С – позволяет установить доступность списка пользователей в зависимости от использования разделителей.

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

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

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

Условное разделение 1С

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

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

Возможно использовать константу с типом булево или реквизит справочника с типом булево.

Важно – у этой константы/этого справочника нужно отключить использование (выбрать Не использовать) в составе разделителей, только тогда его можно будет выбрать.

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

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

Cвойство "Разделение данных" общего реквизита

Если это свойство установлено в значение "Не использовать", то созданный объект конфигурации будет использоваться только как реквизит, входящий в состав нескольких объектов конфигурации.
Если свойство установлено в значение "Разделять", общий реквизит будет использоваться в качестве разделителя данных

Состав объектов

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

Использование общего реквизита

Для каждого объекта конфигурации колонка Использование может принимать одно из трех значений:
  • Автоматически – означает, что назначение объекта конфигурации общему реквизиту зависит от значения свойства "Автоиспользование"
  • Использовать - означает, что объект конфигурации входит в состав общего реквизита
  • Не использовать - означает, что объект конфигурации не входит в состав общего реквизита
Таким образом, с помощью редактора свойства "Состав", можно выборочно исключать некоторые объекты из состава общего реквизита, несмотря на то, что для него установлено "Автоиспользование".

Объекты конфигурации

В состав общего реквизита (не находящегося в режиме разделения данных) могут входить следующие объекты конфигурации:
  • Справочники
  • Документы
  • Журналы документов
  • Планы видов характеристик
  • Планы видов расчета
  • Бизнес-процессы
  • Задачи
  • Регистры сведений
  • Регистры накопления
  • Регистры бухгалтерии
  • Планы обмена
  • Внешние источники данных

Особенности

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

СОВЕТ! Не следует использовать общие реквизиты для описания данных, которые являются частью бизнес-логики конкретных объектов.