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

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

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

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

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

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

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

Определяем, какой запрет нужен

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

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

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

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

Нужно закрыть прошлый период для всех пользователейУстановите дату запрета изменения данных в разделе Администрирование
Запрет нужен только для отдельных сотрудников или группНастройте роли и права доступа к документу
Проведение должно блокироваться по условию (склад, сумма, статус)Добавьте проверку в обработчик ОбработкаПроведения в конфигураторе
Документ вообще не должен проводиться (нужен только учёт)Отключите проведение в свойствах объекта в конфигураторе

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

Самый безопасный способ — убрать у пользователя право на проведение конкретного вида документов. В типовых конфигурациях права настраиваются через профили групп доступа: Администрирование → Настройки пользователей и прав → Профили групп доступа.

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

Проверка результата: зайдите под пользователем с изменённым профилем, откройте документ и попробуйте провести его. Кнопка «Провести» должна быть недоступна, а при попытке записи с проведением система выдаст сообщение о нарушении прав доступа.

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

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

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

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

Порядок установки даты запрета
  1. 1
    Откройте Администрирование → Настройки пользователей и прав → Даты запрета изменения данных
  2. 2
    Включите использование дат запрета, если механизм отключён
  3. 3
    Укажите общую дату запрета или настройте по пользователям и разделам
  4. 4
    Запишите настройки и проверьте под обычным пользователем: документ до даты запрета не должен проводиться
  5. 5
    При необходимости задайте исключения для ответственных сотрудников

Отключение проведения в конфигураторе

Если документ по смыслу вообще не должен делать движения по регистрам (например, вы перевели его в режим чисто печатной формы), проведение можно отключить полностью на уровне метаданных. Откройте конфигуратор, найдите объект «Документы → нужный вид», откройте палитру свойств.

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

Программный запрет по условию

Когда проведение должно блокироваться по бизнес-правилу, добавьте проверку в обработчик «ОбработкаПроведения» модуля объекта документа. Если условие нарушено, нужно установить параметр Отказ = Истина и вывести сообщение пользователю.

bsl
Процедура ОбработкаПроведения(Отказ, РежимПроведения)

	Если Не ЗначениеЗаполнено(Склад) Тогда
		ОбщегоНазначения.СообщитьПользователю(
			НСтр("ru = 'Не заполнен склад. Проведение запрещено.'"), ЭтотОбъект, "Склад");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

КонецПроцедуры

При Отказ = Истина транзакция проведения откатывается, движения не записываются, документ остаётся в прежнем состоянии. Это безопасный механизм: данные не повреждаются, пользователь видит понятное сообщение и может исправить документ.

Для типовых конфигураций без снятия с поддержки аналогичные проверки добавляют через расширения конфигурации или подписки на события (ОбработкаПроведения). Это предпочтительный путь: при обновлении типовой конфигурации ваша логика сохранится.

Если запрет должен действовать и при программном проведении (из обменов, обработок), ставьте проверку именно в ОбработкаПроведения, а не в форме документа. Проверки на форме легко обходятся при записи объекта напрямую.
ПЗ
Практическое замечание

Дополнительные варианты и ограничения

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

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

Сравнение способов запрета

Права и роли

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

Дата запрета изменения

Идеален для закрытия периода. Нельзя ограничить по виду документа.

Свойство Проведение = Запретить

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

Проверка в ОбработкаПроведения

Гибкий запрет по условиям, работает и при программном проведении. Требует навыков разработки.

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

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

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

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

Кнопка Провести в форме документа
Норма

Недоступна или выдаёт сообщение о запрете

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

Документ проводится без сообщений

Движения документа после попытки проведения
Норма

Движения отсутствуют, пометка проведения не установлена

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

Движения созданы, документ проведён

Проведение из списка документов
Норма

Выводится сообщение о запрете

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

Документ проводится в обход формы

Обмен и регламентные задания
Норма

Документы из обмена не проводятся

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

Служебный пользователь проводит документы

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

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

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

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

Можно ли запретить проведение только одного конкретного документа, а не вида документов?

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

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

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

Запретит ли дата запрета изменения данных загрузку документов из обмена?

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

Что произойдёт с движениями уже проведённых документов, если отключить проведение в конфигураторе?

Существующие движения в регистрах останутся нетронутыми, пока документ не будет отменён или перепроведён. Новые движения создаваться не будут. Отчёты, построенные по регистрам, продолжат видеть старые данные, что может создать расхождения с текущим состоянием документов.

Как запретить проведение, не снимая типовую конфигурацию с поддержки?

Используйте расширение конфигурации: добавьте в него обработчик ОбработкаПроведения нужного документа с проверкой и установкой Отказ = Истина. Расширения не меняют основную конфигурацию и сохраняются при обновлениях. Для простых случаев достаточно подписки на событие в расширении.

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

Да, это типичный случай программной проверки. В ОбработкаПроведения проверьте табличную часть и итоговую сумму: если табличная часть пуста или сумма равна нулю, выведите сообщение и установите Отказ = Истина. Такая проверка сработает и при интерактивном, и при программном проведении.