При настройке прав доступа сотрудников (например, кладовщиков, менеджеров склада или материально ответственных лиц) часто возникает задача: предоставить пользователю возможность видеть остатки и движения материалов по счету 10 «Материалы», но при этом полностью скрыть информацию по остальным бухгалтерским счетам — затратным (20, 26, 44), денежным (50, 51) и расчетам с контрагентами (60, 62).
Проанализируем, почему попытка решить эту задачу стандартными бухгалтерскими отчетами и типовым механизмом RLS вызывает сложности, и разберем корректные способы реализации таких ограничений.
Выясним причину архитектурных ограничений платформы «1С:Предприятие 8» и конфигурации «1С:Бухгалтерия предприятия 3.0»:
Хозрасчетный каждая проводка неделима и содержит одновременно счет дебета и счет кредита. Например, при поступлении материалов формируется проводка Дт 10 — Кт 60, а при списании в производство — Дт 20 — Кт 10. Если ограничить пользователю доступ ко всем счетам, кроме 10, платформа не сможет корректно прочитать проводки с закрытыми корреспондирующими счетами.Остатки, Обороты) по условию конкретного счета приводит к блокировкам, существенному падению производительности или ошибкам «Нарушение прав доступа» при формировании стандартных отчетов (ОСВ, Карточка счета, Анализ счета).Рассмотрим типовой сценарий, заложенный разработчиками конфигурации. Если сотруднику склада требуется контролировать наличие и движение ТМЦ, нет необходимости открывать ему доступ к плану счетов и стандартным бухгалтерским отчетам.
Разберем по шагам настройку типовых прав и интерфейса:
— «Остатки товаров»: выводит остатки в количественном и суммовом выражении в разрезе номенклатуры и складов без отображения счетов учета и бухгалтерских проводок.
— «Движения товаров»: наглядно показывает приход, расход и конечный остаток ТМЦ за выбранный период.
— «Контроль отрицательных остатков»: позволяет отслеживать ошибки складского учета.
Если руководству или пользователю требуется отчет, работающий строго по структуре счета 10 (с субсчетами и бухгалтерской себестоимостью), но стандартные отчеты давать нельзя, лучшим решением будет создание собственного отчета через расширение конфигурации.
Рассмотрим логику реализации такого отчета:
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты с жестким фильтром по счету 10 и его субсчетам:
ВЫБРАТЬ
ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Склад,
ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК КоличествоПриход,
ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаПриход,
ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК КоличествоРасход,
ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаРасход,
ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
&НачалоПериода,
&КонецПериода,
Авто,
,
Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы)),
,
Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты
УстановитьПривилегированныйРежим(Истина);
// Формирование отчета или получение данных СКД
УстановитьПривилегированныйРежим(Ложь);
Таким образом, разделение учетных обязанностей достигается не «урезанием» проводок в ОСВ, а предоставлением целевых складских инструментов или разработкой отдельного отчета с безопасной выборкой данных.