Как скрыть аналитику по сотрудникам на счетах учета зарплаты в 1С

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

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

Вариант 1. Штатная настройка сводного учета

Прежде чем приступать к программированию, проанализируем стандартные возможности конфигурации. В типовых решениях на платформе 1С:Предприятие 8 (таких как Бухгалтерия предприятия, КА, ERP) предусмотрена возможность ведения учета расчетов с персоналом без детализации по конкретным физическим лицам в регистре бухгалтерии.

Для включения этого режима выполним следующие действия:

  1. Перейдем в раздел Администрирование — Параметры учета.
  2. Откроем Настройки плана счетов.
  3. В пункте Учет расчетов с персоналом установим значение Сводно по всем работникам.

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

Нюанс: В некоторых локальных конфигурациях (например, для Киргизии) эта настройка может быть скрыта или отсутствовать. В таком случае стоит проверить наличие константы ВедетсяУчетРасчетовПоЗарплатеСводно через функции технического специалиста. Если константы нет, перейдем к техническим методам реализации.

Вариант 2. Разделение баз данных

Проанализируем архитектурный подход, который считается наиболее надежным в корпоративном секторе. Если расчет зарплаты производится в специализированной программе (например, 1С:ЗУП), а бухгалтерский учет — в 1С:Бухгалтерии, мы можем настроить интеграцию таким образом, чтобы в бухгалтерскую базу попадали только сводные данные.

Разберем, как это работает:

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

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

Вариант 3. Ограничение доступа через RLS и Группы доступа физических лиц

Если нам необходимо, чтобы главный бухгалтер видел детализацию, а остальные — нет, рассмотрим механизм RLS (Record Level Security). В современных версиях БСП (Библиотека стандартных подсистем) реализован удобный механизм групп доступа физических лиц. Для анализа взаимосвязей ролей, профилей и ограничений RLS можно использовать обработку для управления правами доступа.

Посмотрим, как это настроить:

  1. Включим ограничение доступа на уровне записей в настройках прав доступа.
  2. Для каждого физического лица (или массово) назначим Группу доступа физлица (например, «Руководство» и «Линейный персонал»).
  3. В профиле групп доступа для обычных бухгалтеров укажем запрет на просмотр группы «Руководство».

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

Вариант 4. Программное скрытие аналитики через расширение (СКД)

Выясним, как решить задачу через расширение, не снимая конфигурацию с поддержки. Большинство стандартных отчетов в 1С построены на базе Системы компоновки данных (СКД). Мы можем перехватить процесс формирования отчета и принудительно удалить или замаскировать поля субконто.

Рассмотрим пример кода в расширении для модуля объекта отчета (например, Отчет.ОборотноСальдоваяВедомостьПоСчету):


&После("ПриКомпоновкеРезультата")
Процедура Расш1_ПриКомпоновкеРезультата(РезультатХод, ДанныеРасшифровки, СтандартнаяОбработка)
    
    // Проверяем, есть ли у пользователя роль доступа к зарплате
    Если Не РольДоступна("ПолныеПрава") И Не РольДоступна("ПросмотрЗарплаты") Тогда
        
        // Ищем настройки отчета
        Настройки = КомпоновщикНастроек.Настройки;
        
        // Перебираем выбранные поля и группировки
        Для Каждого Поле Из Настройки.Выбор.Элементы Цикл
            Если ТипЗнч(Поле) = Тип("ВыбранноеПолеКомпоновкиДанных") Тогда
                // Если поле содержит ссылку на Сотрудника или Субконто70
                Если Найти(Строка(Поле.Поле), "Субконто") > 0 Тогда
                     Поле.Использование = Ложь;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
        
        // Дополнительно можно добавить принудительный отбор по счету
        // чтобы пользователь вообще не мог выбрать 70 счет
    КонецЕсли;
    
КонецПроцедуры

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

Вариант 5. Маскирование данных (Платформенный механизм)

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

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

  1. В конфигураторе открывается роль пользователя.
  2. Для объекта Справочник.ФизическиеЛица или Справочник.Сотрудники настраиваются права Чтение.
  3. В колонке Маскирование для определенных реквизитов (Наименование, ИНН) выбирается способ маскирования.

Преимущество: Это работает на уровне платформы. Бухгалтер увидит в ОСВ по 70 счету строки, но вместо имен будет написано «*****». Итоговое сальдо по счету сойдется, но персональные данные будут защищены.

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

Подведем итоги анализа ситуации:

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

← На главную