Как добавить Организацию в качестве дополнительного реквизита в справочник Номенклатура в БГУ 2.0?

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

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

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

Механизм дополнительных реквизитов и сведений в конфигурациях на базе БСП (Библиотека стандартных подсистем) работает через План видов характеристик с названием ДополнительныеРеквизитыИСведения. Список доступных типов значений для этих характеристик строго ограничен.

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

  1. Изменения могут быть затерты при очередном обновлении конфигурации.
  2. Это создает дополнительные сложности при сопровождении базы данных.
  3. Использование дополнительных реквизитов для RLS (ограничения прав на уровне записей) приводит к серьезному замедлению работы системы, так как 1С:Предприятие будет вынуждено постоянно обращаться к таблице значений характеристик при каждом чтении номенклатуры.

Методологические проблемы разделения доступа

Разберем ситуацию, когда в системе две организации, и необходимо, чтобы бухгалтеры видели только «свою» номенклатуру. Основная сложность заключается в том, что справочник Номенклатура в БГУ 2.0 является общим. Он не подчинен организации, и у него нет штатного реквизита для привязки к конкретному юридическому лицу.

Попытки добавить «заглушку» в виде доп. реквизита приведут к тому, что:

Альтернативные способы решения задачи

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

Использование иерархии (групп) справочника

Самый простой и надежный способ без программирования — это использование структуры групп. Разделите справочник Номенклатура на папки (например, Организация А и Организация Б). После этого вы сможете настроить права доступа таким образом, чтобы пользователю была разрешена работа только с соответствующей группой. Это стандартный функционал 1С, который работает быстро и стабильно.

Создание отдельного реквизита в конфигураторе

Если разделение данных принципиально необходимо, и использование папок не подходит по бизнес-процессам, рассмотрите вариант внесения изменений в структуру метаданных. Вместо использования механизма доп. реквизитов, добавьте новый реквизит Организация непосредственно в справочник Номенклатура через расширение конфигурации:

  1. Создайте Расширение конфигурации.
  2. Добавьте в справочник Номенклатура новый реквизит Организация с типом СправочникСсылка.Организации.
  3. Используйте данный реквизит для настройки правил доступа RLS.

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

Как настроить права доступа (RLS)?

При использовании любого из предложенных методов, финальным этапом будет настройка ролей:

Если вы идете путем разработки, то в роли пользователя необходимо прописать ограничение доступа к данным (RLS). Рассмотрим пример логики:


// Пример логики ограничения доступа к справочнику Номенклатура
#Если Не Администратор Тогда
    Номенклатура ГДЕ Организация В (#ПараметрОрганизации)
#КонецЕсли

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

← На главную