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