При работе в конфигурации 1С:Зарплата и управление персоналом 3.1, особенно в организациях с развитой филиальной структурой, пользователи часто сталкиваются с критической ошибкой при попытке заполнить статистическую форму П-4. Ошибка сопровождается системным сообщением: {ОбщийМодуль.ДлительныеОперации.Модуль(376)}: У пользователя недостаточно прав на исполнение операции над базой данных.
Ситуация осложняется тем, что у пользователя могут быть настроены ограничения доступа на уровне записей (RLS) по организациям или подразделениям. На первый взгляд кажется, что прав достаточно для чтения данных своего филиала, но отчет упорно выдает ошибку. Давайте подробно разберем техническую причину этого поведения и выясним, как правильно настроить систему, чтобы отчет заполнялся без предоставления избыточных «полных прав».
Проанализируем ситуацию с точки зрения программного кода. Ошибка возникает в фоновом задании при формировании данных для отчета. Если мы перейдем в режим отладки фоновых заданий, то обнаружим интересную логику в общем модуле СтатистикаПерсоналаРасширенный. В процедуре ДополнитьСхемуКомпоновкиРегламентированногоОтчета разработчики 1С осознанно внедряли механизм, который «очищает» запросы от ограничений прав доступа.
Рассмотрим фрагмент кода, который вызывает проблему:
// Заполнение регламентированного отчета бессмысленно по разрешенным данным
Для Каждого НаборДанных Из СхемаКомпоновки.НаборыДанных Цикл
Если ТипЗнч(НаборДанных) = Тип("НаборДанныхЗапросСхемыКомпоновкиДанных") Тогда
НаборДанных.Запрос = СтрЗаменить(НаборДанных.Запрос, "РАЗРЕШЕННЫЕ", "");
КонецЕсли;
КонецЦикла;
Выясним причину такого решения. Логика методологии Росстата требует, чтобы статистические отчеты содержали полные и достоверные данные по всей организации или обособленному подразделению. Если оставить в запросе ключевое слово РАЗРЕШЕННЫЕ, а у пользователя при этом ограничены права (например, он не видит начисления по определенной группе сотрудников), отчет заполнится неполными данными. Пользователь может отправить такой отчет, даже не подозревая о «дырах» в цифрах. Чтобы исключить дезинформацию статистики, система принудительно пытается прочитать все данные. Если прав на чтение всей таблицы (без учета RLS) у пользователя нет — 1С генерирует ошибку доступа.
Поскольку система игнорирует настройки RLS при заполнении П-4, нам необходимо расширить права пользователя на уровне метаданных (объектов), не обязательно снимая ограничения по организациям в целом. Проанализируем, к каким регистрам обращается отчет и каких ролей обычно не хватает.
Для успешного формирования отчета пользователю (например, кадровику филиала) требуются следующие роли:
НачисленияУдержанияПоСотрудникам. Именно из него берутся данные о фонде оплаты труда для граф 5–11.Рассмотрим, как правильно применить эти изменения на практике, не нарушая общую политику безопасности компании. Не рекомендуется вносить изменения напрямую в типовые профили («Старший кадровик» или «Старший расчетчик»), так как они могут быть перезаписаны при обновлении конфигурации.
Выполним следующие действия:
Чтение начисленной зарплаты и Чтение доходов сторонних физических лиц.РАЗРЕШЕННЫЕ, пользователю фактически нужно иметь право чтения всей таблицы данных в базе.Иногда ошибка прав доступа или некорректного заполнения может быть связана не только с ролями, но и с тем, как настроены сами подразделения. В современных версиях ЗУП 3.1 (начиная с 3.1.29) механизм работы со статистикой был изменен.
Проверим следующие настройки:
Если политика безопасности категорически запрещает давать пользователям доступ к регистрам расчета (даже на чтение), рассмотрим другие варианты:
30162970 признана «рецидивирующей». Фирма 1С периодически выпускает патчи (исправления), которые корректируют работу отчета П-4. Проверьте наличие установленных патчей в разделе Администрирование — Обслуживание — Обновление программы — Установленные исправления. Ищите патчи серий EF_30177921 или аналогичные для вашего релиза.РАЗРЕШЕННЫЕ обратно в запрос. Однако помните: это приведет к искажению данных в отчете, так как цифры будут сформированы только по тем записям, которые «видит» пользователь. Это допустимо только в том случае, если вы на 100% уверены, что RLS пользователя полностью совпадает с границами ответственности по отчету П-4.Таким образом, мы выяснили, что корень проблемы кроется в принудительном отключении механизма РАЗРЕШЕННЫЕ программным кодом 1С. Наиболее корректным и безопасным способом решения является создание специального профиля доступа с ролями на чтение зарплатных и кадровых регистров, что позволяет отчету получить все необходимые данные для корректного статистического анализа.