Как решить проблему Недостаточно прав при формировании 6-НДФЛ в ЗУП 3.1 КОРП с включенным RLS

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Налоговый учет
← На главную

В крупных организациях, использующих Зарплата и Управление Персоналом 3.1 КОРП, часто возникает необходимость разграничения доступа. Настройка доступа «с точностью до физических лиц» и подразделений — стандартная практика, позволяющая расчетчикам видеть только «своих» сотрудников. Однако при попытке сформировать регламентированную отчетность, в частности форму 6-НДФЛ, пользователи часто сталкиваются с ошибкой «Недостаточно прав».

Проанализируем ситуацию: отчет 6-НДФЛ формируется в разрезе ИФНС (регистраций в налоговом органе), но данные для него система черпает из множества регистров, где ключевым измерением является ФизическоеЛицо. В этой статье мы подробно разберем, почему возникает конфликт прав доступа и как настроить систему для корректной работы.

Выясним причину возникновения ошибки

Основная проблема кроется в механизме RLS (Row Level Security). Когда в настройках программы включено ограничение доступа по физическим лицам, платформа 1С автоматически модифицирует каждый запрос к базе данных. К любому запросу, который обращается к таблицам с сотрудниками или физическими лицами, добавляется неявное условие проверки прав.

Рассмотрим подробнее механизм заполнения отчета 6-НДФЛ. Программа собирает данные из следующих регистров:

  1. РегистрНакопления.РасчетыНалогоплательщиковСБюджетомПоНДФЛ
  2. РегистрНакопления.СведенияОДоходахНДФЛ
  3. РегистрНакопления.НДФЛПеречисленный

Проблема «все или ничего» заключается в том, что если у расчетчика ограничены права хотя бы на одну группу физических лиц, а в отчетности (даже по «разрешенной» ИФНС) системе требуется проанализировать данные, которые потенциально могут относиться к «запрещенным» лицам, платформа блокирует выполнение запроса целиком. Система не просто фильтрует данные, а выдает ошибку доступа, так как алгоритм заполнения регламентированного отчета часто не оптимизирован для работы в условиях частичной видимости физических лиц.

Способ 1. Предоставление полных прав на физических лиц

Наиболее простой, но не всегда приемлемый с точки зрения безопасности вариант — это снятие ограничений RLS для расчетчика по справочнику ФизическиеЛица.

Разберем, как это сделать:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав.
  2. Откроем Группы доступа и найдем группу, в которую входит расчетчик.
  3. На закладке Ограничения доступа проверим вид доступа Физические лица.
  4. Установим значение Все разрешены.

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

Способ 2. Использование расширения и привилегированного режима

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

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

Пример структуры кода в расширении:


&Вместо("СформироватьДанныеОтчета")
Процедура ИмяРасширения_СформироватьДанныеОтчета(ПараметрыОтчета, Результат)
    // Устанавливаем привилегированный режим, чтобы RLS не блокировал запросы
    УстановитьПривилегированныйРежим(Истина);
    
    // Вызываем стандартную обработку заполнения
    ПродолжитьВызов(ПараметрыОтчета, Результат);
    
    // После выполнения отключать режим не обязательно (он действует в рамках процедуры),
    // но это хорошая практика для вложенных вызовов
    УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры

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

Способ 3. Настройка специализированного профиля доступа

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

Для этого выполним следующие шаги:

  1. Создадим новый Профиль групп доступа.
  2. Добавим роли Чтение налогов и взносов и Просмотр регламентированной отчетности.
  3. В настройках самого профиля (или группы доступа) для этого вида доступа укажите «Доступ разрешен всем, кроме исключений», оставив список исключений пустым.
  4. Для кадровых ролей и ролей расчетчика (где важна зарплата) оставьте RLS активным.

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

Ограничение по ИФНС: Возможно ли это?

В сообщении 0 прозвучал вопрос: «Можно предоставить права на создание 6-НДФЛ по определенным ИФНС?».

Проанализировав типовой функционал ЗУП 3.1 КОРП, вынуждены констатировать: штатного механизма ограничения доступа в разрезе Регистраций в налоговом органе (ИФНС) не существует. Доступ ограничивается по Организациям, Подразделениям и Группам физических лиц.

Если вам критически важно, чтобы расчетчик видел только «свою» ИФНС, это можно реализовать только через:

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

Резюме и рекомендации

Мы рассмотрели три способа решения проблемы. Подведем итоги:

  1. Полные права на физлиц — быстро, но небезопасно. Подходит для небольших компаний, где расчетчики доверяют друг другу.
  2. Привилегированный режим в расширении — самый надежный и технологичный метод для крупных корпораций. Он сохраняет ограничения RLS в повседневной работе, но дает возможность без ошибок собирать регламентированные отчеты.
  3. Настройка профилей — компромиссный вариант, требующий высокой квалификации администратора прав доступа.

Рекомендуем начать с проверки настройки Групп доступа физических лиц. Убедитесь, что нет «забытых» сотрудников, не включенных ни в одну группу, так как это самая частая причина ошибки Недостаточно прав при формировании любых сводных отчетов в ЗУП КОРП.

← На главную