Почему после установки даты запрета изменения данных в 1С:УПП 1.3 пользователи продолжают работать и как это исправить

Системный администратор 1С v8.3 (Обычные формы) Промышленность, строительство и АПК
← На главную

В конфигурации «1С:Управление производственным предприятием 1.3» администраторы и бухгалтеры регулярно сталкиваются с необходимостью закрытия периода. Однако часто возникает ситуация: обработка «Установка даты запрета изменения данных» выполнена, границы установлены (например, на конец прошлого месяца), но пользователи без полных прав продолжают спокойно вносить и редактировать документы за закрытый период.

Рассмотрим подробно причины такого поведения программы и разберем по шагам, как правильно применить ограничения без вызова сбоев в работе предприятия.

Причины, почему дата запрета не срабатывает сразу

Проанализируем технические механизмы платформы 1С:Предприятие и конфигурации УПП 1.3, которые влияют на проверку прав и ограничений:

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

Способ 1. Завершение и перезапуск сеансов пользователей

Самый простой и стандартный вариант решения — обновить параметры сеанса пользователей путем их перезапуска. Выгонять весь завод или перезагружать физический сервер 1С при этом вовсе не обязательно.

Разберем порядок действий для точечного сброса сеансов:

  1. Откройте обработку «Завершение сеансов пользователей» (или используйте Консоль кластера серверов 1С).
  2. Завершите работу активных сеансов тех пользователей или отделов, для которых нужно применить новую дату запрета.
  3. При повторном входе пользователей в программу инициализируется новый параметр сеанса ПараметрыСеанса.ГраницыЗапретаИзмененияДанных, и все ограничения закроют редактирование документов задним числом.

Способ 2. Программное обновление повторно используемых значений и параметров

Если перезапускать пользователей в данный момент неудобно, можно обновить кэшируемые данные на лету. В платформе 1С предусмотрен специальный метод для сброса кэша повторно используемых значений:

ОбновитьПовторноИспользуемыеЗначения();

Однако следует учитывать, что простое выполнение ОбновитьПовторноИспользуемыеЗначения() сбрасывает модули повторного использования, но параметр сеанса ПараметрыСеанса.ГраницыЗапретаИзмененияДанных зафиксирован в памяти конкретного сеанса. Чтобы обновленные даты запрета вступили в силу без перезапуска клиента 1С, требуется принудительно переинициализировать этот параметр в сеансе пользователя.

Посмотрим на пример кода, который выполняет перерасчет и установку параметров сеанса с датами запрета:


// Принудительное обновление параметров сеанса дат запрета
Процедура ОбновитьГраницыЗапретаИзмененияДанных() Экспорт
	
	// Сбрасываем кэш повторно используемых модулей
	ОбновитьПовторноИспользуемыеЗначения();
	
	// Пересчитываем границы запрета для текущего пользователя
	Обработки.УстановкаДатыЗапретаИзмененияДанных.УстановитьПараметрСеансаПроверкиЗапретаИзмененияДанных();
	
КонецПроцедуры

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

Чек-лист проверки настроек даты запрета

Если пользователи перезапустили программу, но дата запрета по-прежнему не работает, выполните следующую проверку:

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

Соблюдение этих правил позволит своевременно блокировать прошлые периоды от изменений и гарантировать корректность ведения учета в 1С:УПП 1.3.

← На главную