Как правильно настроить хранение файлов в томах при создании тестовой копии базы 1С?

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

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

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

Метод 1. Физическое копирование данных и программная подмена путей

Это классический и самый очевидный способ. Разберем его по шагам, так как он требует внимательности к деталям:

  1. Создадим на сервере отдельную сетевую папку (например, \\TestServer\Scan_Test).
  2. Скопируем все содержимое из рабочего тома в созданную папку. Важно понимать, что при больших объемах (терабайты данных) этот процесс может занять значительное время и потребовать много свободного места.
  3. Сразу после восстановления базы из бэкапа (еще до того, как пользователи начнут работу) зайдем в справочник Тома хранения файлов.
  4. Для каждого тома заменим старый сетевой путь на новый, соответствующий тестовой папке.

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


-- Пример для MS SQL Server (нужно знать точное имя таблицы справочника ТомаХраненияФайлов)
UPDATE _Reference125 -- Здесь должен быть ваш ID таблицы
SET _Fld2543 = REPLACE(_Fld2543, '\\ProdServer\Scan', '\\TestServer\Scan_Test');

Метод 2. Сетевая изоляция среды разработки

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

В этом случае на сервере разработки:

  1. Блокируется доступ к сетевым шарам боевого сервера на уровне брандмауэра или настроек VLAN.
  2. Все регламентные задания отключаются централизованно через консоль администрирования кластера 1С.
  3. Даже если в базе останутся старые пути, система просто выдаст ошибку доступа, но не испортит данные.

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

Метод 3. Ограничение прав доступа на уровне учетной записи службы

Если нет возможности создать полностью изолированную среду, разберем способ настройки прав доступа. Служба кластера 1С (ragent) обычно запускается от имени конкретного пользователя ОС.

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

В такой конфигурации, даже если программист забудет сменить пути в тестовой базе, система не сможет ничего удалить или изменить в рабочем томе, так как права NTFS/SMB будут это блокировать. Это отличный «предохранитель».

Метод 4. Использование механизмов БСП (Библиотеки стандартных подсистем)

В современных конфигурациях (ERP, Документооборот, БП 3.0) реализован штатный механизм защиты. Рассмотрим, как он работает. При первом запуске базы после восстановления из копии 1С спрашивает пользователя: «База перемещена или восстановлена из копии?».

Если нажать кнопку «Это копия», система автоматически:

  1. Блокирует выполнение всех регламентных заданий (РегламентныеЗадания).
  2. Блокирует работу с внешними ресурсами (почта, FTP, HTTP-запросы).

Однако БСП не меняет пути к томам автоматически. Для этого рекомендуется внедрить небольшую процедуру в обработчик события ПриЗавершенииПереходаНаНовуюВерсию или использовать внешнюю обработку, которая при обнаружении признака копии базы будет принудительно устанавливать тестовые пути в справочнике томов.

Метод 5. Оптимизация хранения: Reflinks и Снэпшоты

Если объем файлов в томах измеряется терабайтами, обычное копирование невозможно. Посмотрим на современные технологические решения.

Использование ReFS (Windows) или Btrfs/XFS (Linux):
Эти файловые системы поддерживают механизм клонирования блоков (Block Cloning или Reflinks). Вы можете создать «мгновенную копию» папки. Файлы в тестовой папке не будут занимать места на диске до тех пор, пока вы не начнете их изменять. В Windows это делается через PowerShell:


Copy-Item -Path "D:\ProdFiles\*" -Destination "D:\TestFiles\" -Recurse -UseTransaction
# При использовании соответствующих командлетов на ReFS копия создается мгновенно без дублирования данных

Снэпшоты СХД:
Если ваши тома хранятся на профессиональной системе хранения данных, администратор может создать «снэпшот» тома и монтировать его к тестовому серверу как отдельный диск. Это происходит за секунды вне зависимости от объема данных.

Метод 6. Временный перенос файлов в базу данных

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

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

Важно: Этот метод категорически не подходит для высоконагруженных систем и баз с объемом файлов свыше 50-100 Гб, так как это приведет к резкому росту размера SQL-базы и замедлению бэкапов.

Итоги и рекомендации

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

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

← На главную