Как настроить доступ к обработке «Поиск и удаление дублей» для пользователя в 1С:Комплексная автоматизация

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

При работе в комплексных конфигурациях на платформе «1С:Предприятие 8.3» (таких как «1С:Комплексная автоматизация» или «1С:ERP Управление предприятием») администраторы и разработчики часто сталкиваются с ситуацией, когда пользователю с типовыми правами (например, Бухгалтер или Казначей) требуется выполнить поиск и слияние дублирующихся элементов справочников. Однако нужная обработка отсутствует в интерфейсе, и её невозможно найти даже через глобальный поиск системы.

В этой статье мы подробно разберем, почему возникает эта проблема, как устроена система защиты прав в Библиотеке стандартных подсистем (БСП) и какие существуют безопасные и эффективные способы предоставить пользователю возможность очистки базы от дублирующихся данных.

Выясняем причину: двухуровневая система ограничений

Для того чтобы понять, почему пользователь не видит обработку ПоискИУдалениеДублей, проанализируем архитектуру прав доступа в современных конфигурациях 1С. Здесь действует жесткое разделение на уровне интерфейса и на уровне программного кода.

Уровень 1. Ограничение командного интерфейса (видимость подсистем)

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

Уровень 2. Программная проверка прав в коде БСП

Многие разработчики пытаются решить проблему «в лоб»: создают новую роль, дают права на чтение, просмотр и использование объекта Обработка.ПоискИУдалениеДублей, включают эту роль в профиль пользователя, но обработка все равно выдает ошибку доступа. Почему так происходит?

Дело в том, что в Библиотеке стандартных подсистем, на базе которой построена «1С:Комплексная автоматизация», внедрена дополнительная программная проверка прав. При открытии формы обработки срабатывает код, проверяющий наличие у текущего пользователя административных полномочий. Типовой механизм БСП проверяет роль ПолныеПрава или вызывает специализированную функцию:


// Пример программной проверки в модуле БСП
Если Не Пользователи.ЭтоАдминистратор() Тогда
    ВызватьИсключение НСтр("ru = 'Недостаточно прав для выполнения операции. Обратитесь к администратору системы.'");
КонецЕсли;

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

---

Диагностика проблемы: проверка прямой ссылкой

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

Разберем этот процесс по шагам:

  1. Зайдите в базу под учетной записью Администратора (у которого обработка гарантированно открывается).
  2. Откройте обработку «Поиск и удаление дублей» через меню НСИ и администрирование — Обслуживание — Корректировка данных.
  3. В правом верхнем углу формы нажмите кнопку получения ссылки (выглядит как два звена цепи) или нажмите комбинацию клавиш Ctrl + F11.
  4. Скопируйте полученную ссылку, которая выглядит примерно так: e1cib/app/Обработка.ПоискИУдалениеДублей.
  5. Запустите сеанс под пользователем (например, Бухгалтером).
  6. Нажмите Shift + F11 (Перейти по ссылке), вставьте скопированную строку в поле ввода и нажмите «Перейти».

Результаты теста:

---

Варианты решения проблемы

В зависимости от требований безопасности и регламентов вашей компании, выберите один из трех вариантов решения.

Вариант 1. Безопасная альтернатива: функция «Заменить выделенные» (без изменения прав)

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

В платформу 1С и БСП встроен удобный инструмент слияния непосредственно из списков справочников:

  1. Откройте нужный справочник (например, «Контрагенты»).
  2. В списке найдите дублирующиеся элементы.
  3. Зажмите клавишу Ctrl и выделите левой кнопкой мыши несколько дубликатов.
  4. Нажмите кнопку Еще в командной панели списка и выберите пункт Заменить выделенные....
  5. В открывшемся окне укажите, какой элемент сделать правильным (оригиналом), а какие пометить на удаление.

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

Вариант 2. Временное предоставление прав Администратора

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

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

Вариант 3. Обход ограничений с помощью внешней обработки

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

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

  1. Откройте конфигуратор вашей информационной базы.
  2. Найдите в дереве метаданных объект Обработка.ПоискИУдалениеДублей.
  3. Нажмите на него правой кнопкой мыши и выберите пункт Сохранить как внешнюю обработку.... Сохраните файл на диск с расширением .epf.
  4. Откройте сохраненный файл как внешнюю обработку в конфигураторе.
  5. Перейдите в модуль формы обработки и найдите процедуру инициализации (обычно ПриСозданииНаСервере).
  6. Найдите строки программной проверки прав администратора. Закомментируйте или удалите вызовы функций, ограничивающих доступ не-администраторам. Например:
    
    // Было:
    // Если Не Пользователи.ЭтоАдминистратор() Тогда
    //     Отказ = Истина;
    // КонецЕсли;
        
    // Стало:
    // Проверка прав отключена для предоставления доступа бухгалтерам
    
  7. Сохраните изменения во внешней обработке.
  8. Зарегистрируйте обработку в пользовательском режиме через раздел НСИ и администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки, назначив права на её запуск профилю «Бухгалтер».

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

← На главную