При работе в программе 1С:Бухгалтерия 8 (редакция 3.0) у руководства и администраторов часто возникает задача ограничить видимость персональных данных работников, начисленной заработной платы и выплат по счету 70 («Расчеты с персоналом по оплате труда») для рядовых бухгалтеров и операторов. Разберем, можно ли решить эту задачу типовыми настройками прав, почему стандартный механизм RLS не помогает в данном случае и как правильно организовать учет для защиты конфиденциальной информации.
Проанализируем архитектуру платформы 1С:Предприятие 8 и конфигурации 1С:Бухгалтерия 3.0. Запретить просмотр отдельных счетов или конкретных проводок исключительно штатными профилями и ролями пользователей невозможно по следующим причинам:
1С:Бухгалтерии 3.0 является Организация. Счет учета и субконто не выступают в роли балансовых измерений, поэтому штатный механизм RLS не позволяет отфильтровать записи регистра по счету 70 или субконто Сотрудники.Оборотно-сальдовая ведомость по счету, Карточка счета, Анализ счета или Отчет по проводкам.Единственным штатным и методически верным способом скрытия персональных данных по заработной плате в бухгалтерской базе является перенос детального кадрового учета и расчета зарплаты в специализированную программу (например, 1С:Зарплата и Управление Персоналом) и настройка сводного отражения в регламентированном учете.
Рассмотрим порядок действий для настройки такого учета:
1С:ЗУП настраиваем выгрузку документа Отражение зарплаты в бухучете без детализации по сотрудникам (сводно). При этом в проводках по дебету затратных счетов и кредиту счета 70 сумма выгружается общей величиной по подразделениям и способам отражения.1С:Бухгалтерия 3.0 в настройках параметров учета указываем, что расчеты с персоналом ведутся сводно по всем работникам. В этом случае субконто Сотрудники на счету 70 не используется, и рядовые пользователи базы видят только общие обороты по заработной плате без привязки к конкретным фамилиям.Выясним, что делать, если в базе 1С:Бухгалтерия 3.0 уже накоплены исторические проводки с указанием конкретных физических лиц. Если просто переключить настройку на сводный учет в текущей базе, детализация по сотрудникам в прошлых периодах может быть утрачена или вызвать ошибки в сформированных отчетах.
В такой ситуации разберем следующий алгоритм перевода данных:
Физические лица служебный элемент (например, Сотрудник (Сводно)).70 за прошлые периоды на созданного служебного контрагента/сотрудника.Пример простейшей замены субконто в движениях документов на языке 1С:
Выборка = Документы.ОтражениеЗарплатыВБухучете.Выбрать(НачалоПериода, КонецПериода);
Пока Выборка.Следующий() Цикл
ДокументОбъект = Выборка.ПолучитьОбъект();
Для Каждого СтрокаИз Движения.Хозрасчетный Цикл
Если Строка.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда
Или Строка.СчетКт = ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда Тогда
// Заменяем аналитику по конкретному сотруднику на обобщенное физлицо
Строка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Сотрудники] = СлужебныйСотрудник;
КонецЕсли;
КонецЦикла;
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;
Если специфика учета требует сохранения персонифицированных данных на счету 70 внутри 1С:Бухгалтерии 3.0, но доступ нужно ограничить конкретным пользователям, применяют доработки программы:
Оборотно-сальдовая ведомость, Анализ счета, Карточка счета) и скрывает строки, содержащие счет 70, для пользователей без определенной роли. Преимущество метода — конфигурация остается на типовой поддержке.Таким образом, попытки заблокировать видимость проводок 70 счета исключительно формами или типовыми ролями не дают результата. Оптимальным решением является переход на сводный учет заработной платы с детализацией в программе 1С:ЗУП.