К статье
Практический материал

Администрирование · 9 мин

Как заблокировать справочник в 1С: все способы и их отличия

Как заблокировать справочник в 1С: пометка на удаление, ограничение прав доступа, запрет редактирования через RLS и расширения. Пошаговые инструкции и FAQ.

Под «блокировкой справочника» в 1С обычно понимают одну из трёх задач: запретить пользователям изменять элементы справочника, закрыть доступ к просмотру данных или временно вывести элементы из оборота без их удаления. Способ зависит от цели, версии конфигурации и того, какие права есть у вас самих.

В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP, ЗУП) большинство задач решается штатными механизмами: пометкой на удаление, настройкой прав, группами доступа и датами запрета изменения данных. Программная блокировка через код нужна реже — в основном в самописных конфигурациях.

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

Разберитесь, что именно нужно заблокировать

Термин «блокировка» в 1С неоднозначен, и ошибка в выборе инструмента — самая частая причина проблем. Сначала ответьте на три вопроса: кого ограничиваем (всех или часть пользователей), что запрещаем (просмотр, изменение, создание новых элементов) и нужна ли обратимость.

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

Маршрут решения

Как выбрать действие

Элемент устарел и не должен использоваться в новых документахПометьте его на удаление
Часть пользователей не должна видеть или менять справочникНастройте роли и группы доступа
Нужно запретить изменение данных за закрытый периодУстановите дату запрета изменения данных
Нужно временно заблокировать редактирование во время обмена или обновленияИспользуйте блокировку сеансов или регламентные механизмы администрирования

Пометить элемент на удаление — самый простой способ

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

Чтобы пометить элемент, откройте справочник, найдите нужную строку, нажмите правой кнопкой мыши и выберите «Пометить на удаление / Снять пометку» или нажмите клавишу Delete. Повторное действие снимает пометку — операция полностью обратима.

Если требуется убрать элемент окончательно, используйте «Администрирование → Обслуживание → Удаление помеченных объектов». Перед удалением программа проверит, есть ли ссылки на элемент в документах и других справочниках. Если ссылки есть, объект не удалится — это защита от нарушения целостности данных.

Заблокировать справочник через права доступа

Если нужно скрыть справочник от части пользователей или запретить его редактирование, используйте роли и профили групп доступа. В типовых конфигурациях это делается через раздел «Администрирование → Настройки пользователей и прав → Профили групп доступа».

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

После настройки профиля добавьте в него пользователей через «Группы доступа». Изменения вступают в силу после перезахода пользователя в программу — действующий сеанс сохраняет старые права.

Порядок настройки запрета через права
  1. 1
    Откройте Администрирование → Настройки пользователей и прав
  2. 2
    Включите при необходимости использование групп доступа
  3. 3
    Создайте или скопируйте профиль групп доступа
  4. 4
    Снимите роли на чтение или изменение нужного справочника
  5. 5
    Добавьте пользователей в группу доступа с этим профилем
  6. 6
    Попросите пользователя перезайти в программу и проверьте результат под его учётной записью

Ограничить доступ на уровне записей (RLS)

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

Механизм работает так: элементу справочника присваивается группа доступа, а пользователю разрешается работа только с определёнными группами. Элементы без назначенной группы обычно доступны всем — это важный нюанс, о котором часто забывают при настройке.

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

Дата запрета изменения данных

Дата запрета редактирования блокирует изменение всех данных — включая справочники — за период до указанной даты. Это стандартный инструмент защиты закрытых периодов: после сдачи отчётности никто не сможет случайно или намеренно изменить элементы, участвовавшие в прошлых документах.

Настройка находится в разделе «Администрирование → Поддержка и обслуживание → Даты запрета изменения данных». Можно задать общую дату для всех или индивидуальные даты для отдельных пользователей и разделов учёта. Пользователям с ролью, разрешающей изменение данных после даты запрета, ограничение не мешает.

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

Программная блокировка и блокировка сеансов

В самописных конфигурациях и при доработках запрет редактирования иногда реализуют кодом: в модуле объекта или формы проверяют условие и вызывают отказ от записи. Типовой приём — проверка в событии «ПередЗаписью» с установкой параметра «Отказ» в значение «Истина».

bsl
Процедура ПередЗаписью(Отказ)
	Если ЭтотОбъект.Заблокирован Тогда
		Отказ = Истина;
		Сообщить("Элемент заблокирован для изменения");
	КонецЕсли;
КонецПроцедуры

Отдельная задача — временная блокировка всей информационной базы, например на время обновления или обмена данными. Для серверных баз это делается через консоль кластера или команду конфигуратора с установкой блокировки сеансов, для файловых — через параметр блокировки в настройках публикации или программно через метод УстановитьБлокировкуСеансов.

Такая блокировка не даёт пользователям входить в базу и корректно завершает активные сеансы по таймауту. После завершения работ её нужно снять — забытая блокировка парализует работу всей организации.

Типичные ошибки
01
Физическое удаление элементов вместо пометки — появляются битые ссылки в документах и отчётах
02
Настройка профиля без проверки под учётной записью пользователя — запрет не сработал, а администратор об этом не знает
03
Забытый перезаход пользователя — старые права действуют до конца сеанса
04
Элементы без группы доступа при включённом RLS — остаются видимыми всем
05
Снятие роли чтения вместо роли изменения — пользователь теряет доступ к связанным отчётам

Как проверить, что блокировка работает

Любую настройку запрета проверяйте под учётной записью того пользователя, для которого она предназначена. Права администратора скрывают реальную картину: под полными правами справочник будет доступен даже при корректно настроенном запрете.

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

Контрольные точки

Как проверить результат

Выбор элемента в новом документе
Норма

Помеченный элемент не предлагается в списке выбора

Тревожный признак

Элемент по-прежнему доступен для выбора

Открытие справочника под пользователем с ограничением
Норма

Справочник недоступен или открывается только на просмотр

Тревожный признак

Пользователь может редактировать элементы

Запись данных закрытого периода
Норма

Программа выдаёт сообщение о дате запрета

Тревожный признак

Запись проходит без предупреждений

Итог

Что важно запомнить

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

Частые вопросы

Можно ли заблокировать справочник, не удаляя элементы?

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

Почему пользователь всё равно видит справочник после настройки прав?

Чаще всего причина в активном сеансе: права применяются при входе в программу, поэтому пользователю нужно перезайти. Также проверьте, не входит ли он в другую группу доступа с более широкими правами — разрешения суммируются.

Что будет со старыми документами, если пометить элемент на удаление?

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

Как заблокировать редактирование только для части элементов справочника?

Используйте группы доступа (RLS) в типовых конфигурациях: назначьте элементам группу и ограничьте пользователей, которым она доступна. Альтернатива — доработка с проверкой условия в событии «ПередЗаписью».

Можно ли заблокировать всю базу на время обновления?

Да, через установку блокировки сеансов: в консоли кластера для серверных баз или программно для файловых. Пользователи не смогут войти, а активные сеансы завершатся по таймауту. Не забудьте снять блокировку после завершения работ.