Как запретить доступ к информационной базе 1С:Розница (базовая) в определенные дни?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Часто перед администраторами и владельцами бизнеса встает задача ограничить доступ пользователей к программе в определенные периоды — например, в праздничные дни, выходные или при проведении инвентаризации. Если вы используете версию 1С:Розница Базовая, вы сталкиваетесь с ограничением: данная версия не поддерживает изменение конфигурации и использование расширений для доработки логики системы. Давайте разберем, какие подходы можно применить, чтобы решить эту задачу, не переходя на версии ПРОФ или КОРП.

Ограничение через внешнюю обработку

Поскольку мы не можем менять конфигурацию, внешняя обработка становится нашим основным инструментом. Мы можем создать файл .epf, который будет выполнять проверку текущей даты при запуске.

  1. Создайте справочник или регистр сведений во внешней обработке, где администратор будет указывать «запрещенные» даты.
  2. В модуле объекта внешней обработки используйте событие ПриНачалеРаботыСистемы. Поскольку внешняя обработка не всегда автоматически «цепляется» к старту системы без внесения изменений, мы можем запускать 1С через ярлык с параметром /Execute.

Пример логики проверки даты во внешней обработке:


Процедура ПриНачалеРаботыСистемы()
    ТекущаяДата = ТекущаяДата();
    Если СписокЗапрещенныхДат.Найти(ТекущаяДата) <> Неопределено Тогда
        Предупреждение("Доступ к базе закрыт администратором!");
        ЗавершитьРаботуСистемы(Ложь);
    КонецЕсли;
КонецПроцедуры

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

Использование механизма блокировки соединений (Административный подход)

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

Рассмотрим, как реализовать это через Планировщик заданий Windows:

  1. Создайте два командных файла .bat. Первый будет активировать блокировку, второй — снимать её.
  2. Используйте утилиту 1cv8.exe с параметрами командной строки. Параметр /UC позволяет передать код разрешения, если блокировка уже установлена.
  3. Команда для установки блокировки выглядит примерно так:

"C:\Program Files\1cv8\bin\1cv8.exe" CONFIG /F "C:\PathToBase" /N Администратор /P Пароль /Block

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

Управление правами доступа на уровне файловой системы

Если база является файловой (лежит в папке на диске), самый эффективный способ ограничить доступ — изменить права доступа ACL к файлу 1Cv8.1CD. Вы можете написать PowerShell-скрипт, который по расписанию будет запрещать группе пользователей Windows доступ на чтение к этой папке.

Преимущества данного метода:

Рекомендации по реализации

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

Помните, что для базовых версий 1С любая «защита» носит рекомендательный характер. Если безопасность критически важна, рассмотрите возможность перехода на версию ПРОФ, где управление пользователями, правами и блокировками встроено в ядро системы и доступно через стандартный интерфейс Конфигуратора или Режима предприятия.

← На главную