При использовании механизма хранения файлов в томах в 1С:Предприятие часто возникает критическая проблема: при создании тестовой копии базы данных внутри неё сохраняются ссылки на рабочие сетевые папки. Если не принять меры, тестовая база начнет записывать новые файлы в рабочий архив или, что еще опаснее, регламентное задание по очистке ненужных файлов может безвозвратно удалить актуальные документы из «прод»-среды.
В этой статье мы подробно разберем, как обеспечить полную изоляцию тестовой копии, чтобы она работала со своим набором файлов и никак не пересекалась с основной базой. Рассмотрим несколько стратегий — от простых административных мер до использования возможностей файловых систем.
Это классический и самый очевидный способ. Разберем его по шагам, так как он требует внимательности к деталям:
\\TestServer\Scan_Test).Тома хранения файлов.Проанализируем ситуацию с автоматизацией этого процесса. Чтобы не делать это вручную каждый раз, можно использовать SQL-скрипт, который будет выполняться сразу после восстановления базы. Посмотрим на пример логики такого запроса:
-- Пример для MS SQL Server (нужно знать точное имя таблицы справочника ТомаХраненияФайлов)
UPDATE _Reference125 -- Здесь должен быть ваш ID таблицы
SET _Fld2543 = REPLACE(_Fld2543, '\\ProdServer\Scan', '\\TestServer\Scan_Test');
Этот вариант считается наиболее надежным и профессиональным. Рассмотрим его подробнее. Суть заключается в создании изолированного контура (песочницы), из которого сервер 1С физически не может «дотянуться» до ресурсов рабочей сети.
В этом случае на сервере разработки:
Выясним причину популярности этого метода: он защищает не только тома с файлами, но и предотвращает случайную отправку реальных писем клиентам из тестовой базы, а также нежелательные обмены данными с внешними системами.
Если нет возможности создать полностью изолированную среду, разберем способ настройки прав доступа. Служба кластера 1С (ragent) обычно запускается от имени конкретного пользователя ОС.
Проанализируем шаги настройки:
\\ProdServer\Scan) дадим этой учетной записи права только на чтение.В такой конфигурации, даже если программист забудет сменить пути в тестовой базе, система не сможет ничего удалить или изменить в рабочем томе, так как права NTFS/SMB будут это блокировать. Это отличный «предохранитель».
В современных конфигурациях (ERP, Документооборот, БП 3.0) реализован штатный механизм защиты. Рассмотрим, как он работает. При первом запуске базы после восстановления из копии 1С спрашивает пользователя: «База перемещена или восстановлена из копии?».
Если нажать кнопку «Это копия», система автоматически:
РегламентныеЗадания).Однако БСП не меняет пути к томам автоматически. Для этого рекомендуется внедрить небольшую процедуру в обработчик события ПриЗавершенииПереходаНаНовуюВерсию или использовать внешнюю обработку, которая при обнаружении признака копии базы будет принудительно устанавливать тестовые пути в справочнике томов.
Если объем файлов в томах измеряется терабайтами, обычное копирование невозможно. Посмотрим на современные технологические решения.
Использование ReFS (Windows) или Btrfs/XFS (Linux):
Эти файловые системы поддерживают механизм клонирования блоков (Block Cloning или Reflinks). Вы можете создать «мгновенную копию» папки. Файлы в тестовой папке не будут занимать места на диске до тех пор, пока вы не начнете их изменять. В Windows это делается через PowerShell:
Copy-Item -Path "D:\ProdFiles\*" -Destination "D:\TestFiles\" -Recurse -UseTransaction
# При использовании соответствующих командлетов на ReFS копия создается мгновенно без дублирования данных
Снэпшоты СХД:
Если ваши тома хранятся на профессиональной системе хранения данных, администратор может создать «снэпшот» тома и монтировать его к тестовому серверу как отдельный диск. Это происходит за секунды вне зависимости от объема данных.
В последних версиях платформы и БСП появилась обработка для управления томами. Рассмотрим сценарий, если база небольшая:
Важно: Этот метод категорически не подходит для высоконагруженных систем и баз с объемом файлов свыше 50-100 Гб, так как это приведет к резкому росту размера SQL-базы и замедлению бэкапов.
Мы проанализировали различные подходы к изоляции файловых томов. Самым надежным вариантом для крупного предприятия является полная сетевая изоляция тестового сервера в сочетании с использованием снэпшотов хранилища. Для небольших баз достаточно ручного копирования файлов и использования прав доступа «только чтение» для защиты основного архива.
Никогда не забывайте проверять статус регламентного задания Очистка ненужных файлов в тестовой базе — это главный «враг» ваших рабочих данных при неправильной настройке путей.