Как запретить редактирование списка информационных баз и параметров запуска в 1С:Предприятие 8

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

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

Метод 1. Использование механизма общих информационных баз (CommonInfoBases)

Это самый надежный и «штатный» способ заблокировать кнопки управления списком в окне запуска. Когда база прописана не в локальном файле пользователя, а подключена как «общая», платформа 1С автоматически отключает (делает серыми) кнопки «Изменить» и «Удалить».

Разберем по шагам, как это настроить:

  1. Сформируйте эталонный файл со списком баз. Для этого настройте список баз на одном компьютере так, как вам нужно, и найдите файл ibases.v8i в папке %AppData%\1C\1CEStart\.
  2. Скопируйте этот файл в сетевую папку, доступную всем пользователям только на чтение, или в защищенную локальную директорию. Назовем его, например, common.v8i.
  3. Отредактируйте файл конфигурации программы запуска 1CEStart.cfg. Он находится в каталоге %AppData%\1C\1CEStart\ (для конкретного пользователя) или в %ProgramData%\1C\1CEStart\ (для всех пользователей компьютера).
  4. Добавьте в этот файл строку, указывающую на ваш общий файл:

CommonInfoBases=C:\Distr\1C\common.v8i

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

Метод 2. Принудительный запуск внешней обработки через параметры ярлыка

Если ваша задача — обязательный запуск внешней обработки (например, для проверки цен МРЦ перед продажей алкоголя), мы можем прописать это непосредственно в параметрах запуска. Однако, чтобы пользователь не стер этот параметр, его нужно комбинировать с первым методом или защитой ярлыка.

Рассмотрим структуру команды запуска. В файле .v8i (общем или локальном) в параметре Connect или в строке запуска ярлыка можно добавить ключ /Execute.

Пример строки в ярлыке Windows:


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Base1C" /Execute "C:\Scripts\CheckPrices.epf"

Выясним причину, почему это может не сработать: пользователь может создать свой ярлык или запустить 1cv8.exe напрямую из папки bin. Чтобы этого избежать, перейдем к административным методам защиты.

Метод 3. Переопределение файла списка баз через переменные окружения

Посмотрим на более продвинутый способ подмены списка баз. Платформа 1С позволяет переопределить путь к файлу ibases.v8i с помощью переменной среды Windows. Это позволяет полностью игнорировать файл в профиле пользователя.

  1. Создайте системную переменную окружения с именем 1C_IBASES_V8I.
  2. В качестве значения укажите путь к вашему защищенному файлу списка баз, например: \\Server\1C_Config\readonly_bases.v8i.
  3. Установите на этот файл права «Только чтение» для группы «Пользователи».

В этом случае, даже если пользователь вручную отредактирует файл в своем AppData, 1С его проигнорирует и загрузит список из указанного вами места.

Метод 4. Ограничение прав на уровне файловой системы (NTFS)

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

Проанализируем ситуацию: если просто поставить атрибут «Только чтение» (Read-only) на файл ibases.v8i, программа 1С при попытке записи (которая происходит при каждом закрытии окна запуска) может выдать ошибку доступа. Чтобы этого не произошло, используйте более тонкую настройку разрешений NTFS:

Метод 5. Защита от прямого запуска исполняемого файла (1cv8.exe)

Как справедливо заметили участники обсуждения, опытный пользователь может обойти окно запуска 1cestart.exe, запустив напрямую 1cv8.exe из подпапки конкретной версии платформы. Чтобы исключить эту возможность, рекомендуется использовать политики ограниченного использования программ (SRP) или AppLocker.

Разберем логику настройки:

  1. Разрешите запуск только 1cestart.exe из каталога common.
  2. Запретите запуск любых *.exe из подкаталогов с номерами версий (например, ...\8.3.22.1750\bin\1cv8.exe).
  3. Таким образом, единственный путь в программу будет лежать через настроенный вами загрузчик, который подтянет нужные параметры и файлы конфигурации.

Метод 6. Использование расширений для базовых версий

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

Вместо того чтобы пытаться спрятать кнопки в окне запуска, мы можем:

  1. Создать расширение конфигурации.
  2. В модуле управляемого приложения расширения прописать процедуру ПриНачалеРаботыСистемы.
  3. В этой процедуре реализовать код запроса цен с внешнего ресурса.

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

Резюме

Для надежной блокировки редактирования списка баз мы рекомендуем комбинированный подход:

  1. Подключение баз через параметр CommonInfoBases в файле 1CEStart.cfg для блокировки кнопок «Изменить» и «Удалить».
  2. Настройка прав NTFS на папку %AppData%\1C\1CEStart\, чтобы пользователь не мог модифицировать сам файл 1CEStart.cfg.
  3. Если используется базовая версия и нужно гарантировать выполнение кода — перенос логики во внутреннее расширение, что гораздо эффективнее внешних обработок и манипуляций с ярлыками.

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

← На главную