Администрирование · 9 мин
Как заблокировать справочник в 1С: все способы и их отличия
Как заблокировать справочник в 1С: пометка на удаление, ограничение прав доступа, запрет редактирования через RLS и расширения. Пошаговые инструкции и FAQ.
Под «блокировкой справочника» в 1С обычно понимают одну из трёх задач: запретить пользователям изменять элементы справочника, закрыть доступ к просмотру данных или временно вывести элементы из оборота без их удаления. Способ зависит от цели, версии конфигурации и того, какие права есть у вас самих.
В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP, ЗУП) большинство задач решается штатными механизмами: пометкой на удаление, настройкой прав, группами доступа и датами запрета изменения данных. Программная блокировка через код нужна реже — в основном в самописных конфигурациях.
Прежде чем что-то блокировать, определите, что именно должно произойти: элемент не должен выбираться в документах, справочник не должен открываться у части пользователей или данные нужно сохранить, но «заморозить». От этого зависит выбор инструмента.
Разберитесь, что именно нужно заблокировать
Термин «блокировка» в 1С неоднозначен, и ошибка в выборе инструмента — самая частая причина проблем. Сначала ответьте на три вопроса: кого ограничиваем (всех или часть пользователей), что запрещаем (просмотр, изменение, создание новых элементов) и нужна ли обратимость.
Пометка на удаление подходит, когда элемент устарел: например, контрагент прекратил работу или номенклатура снята с производства. Права доступа нужны, когда одни сотрудники должны видеть справочник, а другие — нет. Дата запрета редактирования «замораживает» данные за закрытый период для всех, включая администраторов без специальных полномочий.
Как выбрать действие
Пометить элемент на удаление — самый простой способ
Пометка на удаление — штатный механизм, доступный в любой конфигурации. Помеченный элемент перестаёт отображаться в списках выбора при вводе новых документов, но физически остаётся в базе, и старые документы продолжают ссылаться на него корректно.
Чтобы пометить элемент, откройте справочник, найдите нужную строку, нажмите правой кнопкой мыши и выберите «Пометить на удаление / Снять пометку» или нажмите клавишу Delete. Повторное действие снимает пометку — операция полностью обратима.
Если требуется убрать элемент окончательно, используйте «Администрирование → Обслуживание → Удаление помеченных объектов». Перед удалением программа проверит, есть ли ссылки на элемент в документах и других справочниках. Если ссылки есть, объект не удалится — это защита от нарушения целостности данных.
Заблокировать справочник через права доступа
Если нужно скрыть справочник от части пользователей или запретить его редактирование, используйте роли и профили групп доступа. В типовых конфигурациях это делается через раздел «Администрирование → Настройки пользователей и прав → Профили групп доступа».
Создайте новый профиль или скопируйте существующий, затем в списке ролей снимите отметки с ролей, дающих доступ к нужному справочнику: например, «Добавление изменение контрагентов» или «Чтение номенклатуры». Раздельное управление чтением и изменением позволяет оставить просмотр, но запретить правки.
После настройки профиля добавьте в него пользователей через «Группы доступа». Изменения вступают в силу после перезахода пользователя в программу — действующий сеанс сохраняет старые права.
- 1Откройте Администрирование → Настройки пользователей и прав
- 2Включите при необходимости использование групп доступа
- 3Создайте или скопируйте профиль групп доступа
- 4Снимите роли на чтение или изменение нужного справочника
- 5Добавьте пользователей в группу доступа с этим профилем
- 6Попросите пользователя перезайти в программу и проверьте результат под его учётной записью
Ограничить доступ на уровне записей (RLS)
Когда блокировать нужно не весь справочник, а отдельные элементы для отдельных сотрудников — например, менеджер видит только своих контрагентов — применяется ограничение доступа на уровне записей (RLS). В типовых конфигурациях это реализовано через группы доступа контрагентов, номенклатуры или физических лиц.
Механизм работает так: элементу справочника присваивается группа доступа, а пользователю разрешается работа только с определёнными группами. Элементы без назначенной группы обычно доступны всем — это важный нюанс, о котором часто забывают при настройке.
RLS заметно усложняет конфигурацию и может замедлять выполнение запросов на больших базах. Включайте его только при реальной необходимости и проверяйте скорость работы после настройки.
Дата запрета изменения данных
Дата запрета редактирования блокирует изменение всех данных — включая справочники — за период до указанной даты. Это стандартный инструмент защиты закрытых периодов: после сдачи отчётности никто не сможет случайно или намеренно изменить элементы, участвовавшие в прошлых документах.
Настройка находится в разделе «Администрирование → Поддержка и обслуживание → Даты запрета изменения данных». Можно задать общую дату для всех или индивидуальные даты для отдельных пользователей и разделов учёта. Пользователям с ролью, разрешающей изменение данных после даты запрета, ограничение не мешает.
Учтите: дата запрета действует на элементы, связанные с документами закрытого периода, но не запрещает создавать новые элементы справочника. Для полного запрета редактирования справочника комбинируйте этот механизм с настройкой прав.
Программная блокировка и блокировка сеансов
В самописных конфигурациях и при доработках запрет редактирования иногда реализуют кодом: в модуле объекта или формы проверяют условие и вызывают отказ от записи. Типовой приём — проверка в событии «ПередЗаписью» с установкой параметра «Отказ» в значение «Истина».
Процедура ПередЗаписью(Отказ)
Если ЭтотОбъект.Заблокирован Тогда
Отказ = Истина;
Сообщить("Элемент заблокирован для изменения");
КонецЕсли;
КонецПроцедурыОтдельная задача — временная блокировка всей информационной базы, например на время обновления или обмена данными. Для серверных баз это делается через консоль кластера или команду конфигуратора с установкой блокировки сеансов, для файловых — через параметр блокировки в настройках публикации или программно через метод УстановитьБлокировкуСеансов.
Такая блокировка не даёт пользователям входить в базу и корректно завершает активные сеансы по таймауту. После завершения работ её нужно снять — забытая блокировка парализует работу всей организации.
Как проверить, что блокировка работает
Любую настройку запрета проверяйте под учётной записью того пользователя, для которого она предназначена. Права администратора скрывают реальную картину: под полными правами справочник будет доступен даже при корректно настроенном запрете.
Для пометки на удаление достаточно открыть документ и убедиться, что элемент не предлагается в списке выбора. Для прав — попробовать открыть справочник и изменить элемент. Для даты запрета — попытаться записать элемент, связанный с закрытым периодом.
Как проверить результат
Помеченный элемент не предлагается в списке выбора
Элемент по-прежнему доступен для выбора
Справочник недоступен или открывается только на просмотр
Пользователь может редактировать элементы
Программа выдаёт сообщение о дате запрета
Запись проходит без предупреждений
Что важно запомнить
Для вывода элемента из оборота используйте пометку на удаление, для ограничения доступа — профили групп доступа, для защиты закрытых периодов — дату запрета изменения. Всегда проверяйте результат под учётной записью обычного пользователя и избегайте физического удаления элементов, на которые есть ссылки.
Частые вопросы
Можно ли заблокировать справочник, не удаляя элементы?
Да. Пометка на удаление, запрет изменения через права и дата запрета редактирования сохраняют все данные в базе. Физическое удаление — отдельная операция, которая не обязательна и часто нежелательна.
Почему пользователь всё равно видит справочник после настройки прав?
Чаще всего причина в активном сеансе: права применяются при входе в программу, поэтому пользователю нужно перезайти. Также проверьте, не входит ли он в другую группу доступа с более широкими правами — разрешения суммируются.
Что будет со старыми документами, если пометить элемент на удаление?
Ничего: документы продолжат ссылаться на элемент, отчёты будут строиться корректно. Пометка влияет только на выбор элемента в новых документах и его отображение в списках.
Как заблокировать редактирование только для части элементов справочника?
Используйте группы доступа (RLS) в типовых конфигурациях: назначьте элементам группу и ограничьте пользователей, которым она доступна. Альтернатива — доработка с проверкой условия в событии «ПередЗаписью».
Можно ли заблокировать всю базу на время обновления?
Да, через установку блокировки сеансов: в консоли кластера для серверных баз или программно для файловых. Пользователи не смогут войти, а активные сеансы завершатся по таймауту. Не забудьте снять блокировку после завершения работ.