Возникает задача — ограничить для определенного пользователя или группы пользователей видимость документов, созданных до некоторой даты. Особенно актуален этот вопрос для облачных баз в сервисе 1С:Fresh, где возможности доработок ограничены. Рассмотрим, можно ли это сделать стандартными средствами, и какие сложности нас ожидают при попытке реализовать такой функционал.
Сразу дадим ключевой ответ: типового, готового "из коробки" способа скрыть документы по дате в 1С:Бухгалтерия 3.0 не существует. Стандартные механизмы для этого не предназначены, а нетиповая реализация сопряжена с серьезными трудностями, особенно в части целостности данных в отчетах.
Первое, что приходит на ум при работе с документами прошлых периодов — это механизм "Дата запрета изменения данных". Давайте разберемся, почему он не решает нашу задачу.
Этот функционал предназначен для закрытия периода от правок. Кроме того, можно настроить запрет изменения выборочно по пользователям. Когда вы устанавливаете дату запрета, система блокирует:
Однако, этот механизм не скрывает сами документы. Пользователь, у которого есть права на чтение, по-прежнему сможет открыть любой журнал, найти старый документ, просмотреть его содержимое и все его данные. Для более тонкой настройки можно использовать управление доступом к формам. Таким образом, для задачи "скрыть от глаз" дата запрета бесполезна.
Единственный реальный способ реализовать требуемое огранинение — это использовать мощный механизм платформы 1С:Предприятие, который называется ограничение доступа на уровне записей (RLS, Row-Level Security) — для его настройки и проверки есть инструмент анализа прав доступа и RLS.
RLS позволяет создавать гибкие правила, которые будут применяться при каждом обращении к данным в базе. Для нашей задачи можно было бы создать такое правило:
T1.Дата) и сравнивать ее с некой пороговой датой. Если дата документа меньше пороговой, доступ к записи запрещается.Теоретически, после такой настройки пользователь с новым профилем просто не увидит "старые" документы в журналах. Для него их как будто не существует в базе. Однако на практике все гораздо сложнее.
Это ключевая сложность, которая делает простую настройку RLS на документах бессмысленной. Давайте проанализируем ситуацию, на которую справедливо указали участники форума.
Любой учетный документ (например, Реализация товаров и услуг или Поступление на расчетный счет) — это не просто запись в таблице. При проведении он создает движения — записи в регистрах:
Хозрасчетный)НДСПродажи, РасчетыСПокупателями и т.д.)Именно на основе данных из этих регистров строятся все без исключения финансовые и управленческие отчеты: оборотно-сальдовая ведомость (ОСВ), анализ счета, книга покупок и продаж, и многие другие.
Что произойдет, если мы скроем только документы? Пользователь не увидит в журнале старую реализацию. Но когда он сформирует ОСВ за тот период, он увидит все проводки по дебету счета 62 и кредиту счета 90, созданные этим документом. Он увидит начальные остатки на счетах на начало "разрешенного" периода, которые будут включать в себя результаты проведения "скрытых" документов. Для решения этой проблемы есть расширение для скрытия документов и их движений в отчетах.
В итоге, задача не будет решена. Более того, это создаст путаницу: пользователь будет видеть в отчетах цифры, происхождение которых не сможет отследить, так как документы-регистраторы будут от него скрыты.
Чтобы реализовать ограничение корректно, необходимо применять RLS не только к документам, но и ко всем связанным с ними регистрам. Нужно написать сложные шаблоны, которые будут ограничивать доступ к записям регистров, анализируя дату документа-регистратора (Регистратор.Дата). Это крайне сложная, трудоемкая задача, которая может серьезно повлиять на производительность системы, так как RLS будет применяться к огромным таблицам движений при построении каждого отчета.
Для облачных баз в сервисе 1С:Fresh задача усложняется еще больше.
Расширений конфигурации. Вы не можете напрямую изменять типовую конфигурацию.Это делает внедрение подобного функционала в облаке долгим, дорогим и не всегда возможным.
Подведем итог. Ограничить видимость документов по дате для пользователя — нетривиальная задача с множеством подводных камней.
Таким образом, прежде чем браться за такую доработку, следует тщательно взвесить все риски, трудозатраты и потенциальные проблемы с производительностью и целостностью учета. В большинстве случаев от этой идеи отказываются в пользу организационных мер или использования стандартных прав доступа по организациям или подразделениям.