Как ограничить доступ к детальной информации по 70 счету в 1С:Бухгалтерии?

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

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

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

Почему стандартный механизм RLS не подходит для скрытия счета?

Рассмотрим сначала техническое ограничение системы. В 1С:Предприятии существует мощный механизм RLS (Record Level Security) — разграничение доступа на уровне записей. Казалось бы, логично настроить его так, чтобы он скрывал записи, где в поле «Счет» указан 70-й. Однако на практике в типовой 1С:Бухгалтерии 8 это реализовать крайне сложно по следующим причинам:

  1. Измерения регистра: Механизм RLS в регистрах бухгалтерии чаще всего работает по балансовым измерениям. В типовой конфигурации основным измерением является Организация. Бухгалтерский счет является реквизитом (или ресурсом), а не измерением, на которое легко наложить фильтр доступа.
  2. Целостность данных: Если мы программно запретим пользователю «читать» записи по 70 счету, у него перестанет сходиться баланс в отчетах. Оборотно-сальдовая ведомость будет выдавать ошибки или пустые строки, что сделает работу бухгалтера невозможной.
  3. Производительность: Наложение сложных условий RLS на регистр бухгалтерии, в котором могут быть сотни тысяч записей, значительно замедляет формирование отчетов.

Проанализировав ситуацию, мы приходим к выводу, что проблему нужно решать не «запретом на чтение», а изменением архитектуры хранения данных.

Основной метод: Переход на сводный учет по сотрудникам

Самый эффективный и рекомендуемый методистами 1С способ — это ведение учета по 70 счету сводно. Разберем по шагам, как это работает и как это настроить.

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

Как настроить сводный учет в 1С:Бухгалтерии:

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

Выясним, что происходит в системе после включения этой настройки. На плане счетов для счета 70 отключается субконто Работники организации. Это означает, что в любой проводке, будь то начисление или выплата, аналитика «Сотрудник» просто исчезает. Вместо фамилий в документах и отчетах будет фигурировать обобщенное значение «Сотрудники организации».

Технические нюансы и риски сводного учета

Прежде чем менять настройки, проанализируем последствия, так как это действие может иметь необратимый характер для данных текущего периода:

Программные методы: Расширение для ограничения «проваливания»

Если бизнес-процессы требуют сохранения детального учета в бухгалтерии, но вы хотите запретить пользователям открывать первичные документы из отчетов (то самое «проваливание»), можно воспользоваться механизмом расширений. Рассмотрим пример логики, которую может реализовать программист.

Нам нужно перехватить событие обработки расшифровки в стандартных отчетах (например, в ОСВ или Карточке счета). Мы можем создать расширение и добавить код, который будет проверять, к какому счету относится выбранная строка.


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

КонецПроцедуры

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

Скрытые пути утечки информации

Разберем ситуацию, когда мы закрыли 70 счет, но информация все равно «просачивается». Проанализируем другие разделы учета, где фигурируют зарплатные данные:

  1. Затратные счета (20, 26, 44): Даже если на 70 счете все сводно, в аналитике затрат часто используется статья «Оплата труда». Если бухгалтер имеет доступ к анализу затрат по подразделениям, он может косвенно вычислить фонд оплаты труда конкретного отдела.
  2. Документы синхронизации: Обратите внимание на документ Отражение зарплаты в бухучете. Если он загружается из ЗУП с детализацией по сотрудникам (даже если проводки потом схлопываются), пользователь с правами на просмотр этого документа увидит весь список фамилий и сумм. Чтобы этого избежать, в настройках синхронизации в ЗУП обязательно нужно выбрать вариант «Сводно по сотрудникам».
  3. Персональные настройки: Существует простой способ скрыть счета учета в самих формах документов для уменьшения «глазного» доступа. В разделе Главное — Персональные настройки можно снять флаг Показывать счета учета в документах. Это психологическая мера, которая убирает лишние колонки из документов, не ограничивая при этом права доступа.

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

Подводя итог, можно сказать, что «серебряной пули» в виде одной галочки «Скрыть 70 счет» не существует. Мы рекомендуем комбинированный подход:

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

Посмотрим на ситуацию реально: если пользователю разрешено формировать оборотно-сальдовую ведомость, он так или иначе видит финансовое состояние компании. Наша задача — максимально усложнить получение доступа к персональным данным, не нарушая при этом целостность бухгалтерского учета.

← На главную