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

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

Как запретить создание документа в 1С

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

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

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

Какие способы запрета существуют и когда их применять

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

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

Сравнение вариантов

Право «Добавление»

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

Право «Интерактивное добавление»

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

Код в обработчиках

Гибкие условия: по дате, по организации, по статусу. Требует доработки конфигурации и тестирования.

Скрытие команд интерфейса

Только косметическое ограничение, не защищает от создания через «Все функции» или ввод на основании.

Запрет через права и роли

Основной и рекомендуемый способ — настройка ролей в конфигураторе. Откройте конфигурацию, найдите нужную роль (в типовых конфигурациях это, например, «Бухгалтер», «Менеджер по продажам» или базовые роли вида «ДобавлениеИзменениеДокументов...»), перейдите на закладку прав и найдите требуемый вид документа в дереве объектов.

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

Порядок настройки запрета через роль
  1. 1
    Откройте конфигуратор и найдите роль, назначенную пользователю (Администрирование → Пользователи → вкладка «Прочие» или через отчёт по правам).
  2. 2
    В дереве объектов роли найдите нужный вид документа.
  3. 3
    Снимите флажок «Добавление» или «Интерактивное добавление» в зависимости от задачи.
  4. 4
    Сохраните конфигурацию и обновите конфигурацию базы данных (F7).
  5. 5
    Попросите пользователя перезайти в программу и проверьте результат под его учётной записью.

В типовых конфигурациях (БП 3.0, УТ 11, ERP) права часто разнесены по нескольким ролям: базовая роль даёт добавление, а дополнительные — расширяют доступ. Поэтому перед изменением проверьте, какие именно роли назначены пользователю, и убедитесь, что право «Добавление» не предоставляется другой его ролью: права в 1С суммируются по принципу «разрешено, если разрешено хотя бы в одной роли».

Запрет через профили групп доступа

В конфигурациях на Библиотеке стандартных подсистем (БСП) права обычно назначаются не напрямую, а через профили групп доступа. В этом случае редактировать роли в конфигураторе не обязательно: достаточно изменить профиль в режиме предприятия.

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

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

Программный запрет через код

Когда прав недостаточно — например, нужно запретить создание документа по условию (в закрытом периоде, по определённой организации, вручную при работающем обмене) — используют программные механизмы. Самый надёжный вариант — подписка на событие «ПриЗаписи» с отказом от записи, если документ новый и условие выполняется.

bsl
Процедура ЗапретСозданияДокументаПриЗаписи(Источник, Отказ) Экспорт
	Если Источник.ДополнительныеСвойства.Свойство("РазрешитьСоздание") Тогда
		Возврат;
	КонецЕсли;
	Если Не Источник.ЭтоНовый() Тогда
		Возврат;
	КонецЕсли;
	Отказ = Истина;
	ВызватьИсключение "Создание документов этого вида запрещено.";
КонецПроцедуры

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

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

Дополнительные механизмы ограничения

Для запрета создания документов в прошлых периодах в типовых конфигурациях есть штатный механизм «Дата запрета изменения данных» (Администрирование → Поддержка и обслуживание). Он не запрещает создание как таковое, но не даёт записать документ датой раньше установленной. Это правильный способ закрытия периода — не нужно изобретать собственные проверки.

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

Ещё один частный сценарий — запрет ручного создания документов, которые должны приходить только из обмена (например, из сайта или другой базы). Здесь оптимально сочетание: снять «Интерактивное добавление» у пользовательских ролей и оставить полные права у пользователя, под которым работает обмен.

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

Как выбрать механизм

Нужно запретить создание конкретному пользователю или группе полностьюСнимите право «Добавление» в роли или в профиле групп доступа
Документы должны создаваться только обменом или обработкойСнимите только «Интерактивное добавление», права у пользователя обмена сохраните
Запрет зависит от условий: дата, организация, статусДобавьте подписку на событие «ПриЗаписи» с проверкой условий и отказом
Нужно закрыть прошлый периодИспользуйте штатную дату запрета изменения данных
Нужно просто убрать кнопку создания из менюНастройте командный интерфейс, но обязательно в дополнение к правам

Проверка результата и типичные ошибки

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

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

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

Кнопка «Создать» в списке документов
Норма

Кнопка недоступна или при нажатии выводится сообщение о нарушении прав

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

Форма нового документа открывается и даёт записаться

Ввод на основании
Норма

Команда ввода отсутствует или запись отклоняется

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

Документ создаётся на основании другого объекта

Программное создание обменом
Норма

Обмен отрабатывает без ошибок (если оно должно работать)

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

В журнале регистрации ошибки нарушения прав у пользователя обмена

Типичные ошибки
01
Сняли право в одной роли, но у пользователя есть вторая роль с добавлением — запрет не сработал. Проверяйте весь состав ролей.
02
Скрыли кнопку создания в интерфейсе и решили, что запрет настроен — документ по-прежнему создаётся на основании и копированием.
03
Сняли «Добавление» вместо «Интерактивное добавление» — сломался обмен, который создаёт документы программно.
04
Проверяли запрет под администратором — под полными правами ограничения не видны, вывод о работоспособности неверен.
05
Забыли обновить конфигурацию базы данных и перезапустить сеанс пользователя — старые права продолжают действовать.

Если запрет настроен, но пользователь всё равно создаёт документы, откройте отчёт «Анализ прав доступа» (в конфигурациях с БСП) или проверьте состав ролей пользователя в конфигураторе — почти всегда причина в дополнительной роли, дающей право добавления. Также убедитесь, что пользователь не входит в группу доступа «Администраторы».

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

Можно ли запретить создание документа без доработки конфигурации?

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

Чем отличается «Добавление» от «Интерактивное добавление»?

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

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

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

Как запретить создание документов в закрытом периоде?

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

Сработает ли запрет, если просто убрать кнопку «Создать» из меню?

Нет. Скрытие команды — только интерфейсная мера. Пользователь сможет создать документ через «Все функции», ввод на основании или копирование. Скрытие кнопки применяйте только вместе с настройкой прав.

Как разрешить создание документов обработкой при общем запрете?

Либо снимите только «Интерактивное добавление», оставив право «Добавление», либо в подписке на событие «ПриЗаписи» проверяйте наличие служебного свойства в ДополнительныеСвойства объекта, которое обработка устанавливает перед записью, и пропускайте такие документы.

Итог

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

Базовый запрет создания документа настраивается правами: «Добавление» закрывает всё, «Интерактивное добавление» — только ручной ввод. Права суммируются по всем ролям пользователя, поэтому проверяйте полный их состав. Условные запреты реализуются подпиской на событие «ПриЗаписи», прошлые периоды закрываются датой запрета. Результат всегда проверяйте под учётной записью обычного пользователя.