Как перенести временные файлы файловой базы 1С (1cv8tmp и 1cv8temp) в другое расположение

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

При работе с файловым вариантом информационной базы 1С:Предприятие 8 многие администраторы и разработчики замечают, что в каталоге с основным файлом базы 1cv8.1cd создается множество служебных объектов. Это файлы блокировок, временные таблицы транзакций и объемные папки журналов. Часто возникает задача вынести эти объекты на другой диск (например, на быстрый NVMe SSD или RAM-диск) для повышения производительности или экономии места. В этой статье мы подробно разберем, как устроены эти файлы и какими методами можно изменить их расположение.

Анализируем состав служебных файлов 1С

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

Важный момент: Платформа 1С «запрограммирована» искать эти файлы строго в том же каталоге, где находится файл 1cv8.1cd. В штатных настройках конфигуратора или в параметрах запуска нет опции «ПутьКВременнымФайламБазы». Поэтому нам придется использовать механизмы операционной системы.

Решение 1: Использование символических ссылок (Symbolic Links) и Junction Points

Это самый эффективный и надежный способ «обмануть» платформу 1С. Мы заставим систему думать, что папка или файл находятся в каталоге базы, хотя фактически они будут физически размещены на другом диске. Рассмотрим работу с утилитой mklink, встроенной в Windows.

Разберем создание связи для папки 1cv8temp. Предположим, наша база лежит в C:\Bases\Trade, а мы хотим перенести временные файлы на диск R: (RAM-диск).

  1. Закроем все сеансы работы с базой 1С.
  2. Переместим (или удалим, если данные не важны) существующую папку 1cv8temp из каталога базы.
  3. Запустим командную строку (CMD) от имени администратора.
  4. Выполним команду создания связи типа Junction:

mklink /J "C:\Bases\Trade\1cv8temp" "R:\1C_Temp\1cv8temp"

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

Аналогичным образом мы можем поступить с папкой журнала регистрации 1Cv8Log, которая часто является «узким местом» по дисковому вводу-выводу:

mklink /J "C:\Bases\Trade\1Cv8Log" "D:\FastSSD\1Cv8Log"

Решение 2: Перенос файла 1cv8tmp через Symbolic Link

С отдельными файлами (не папками) ситуация сложнее. Junction Points работают только для директорий. Для файла 1cv8tmp нам понадобится жесткая ссылка (Hard Link) или символическая ссылка на файл. Выясним нюанс: Hard Link работает только в пределах одного логического раздела. Если вы хотите перенести файл на другой физический диск, используйте флаг /H не получится, нужно использовать /D (для каталога) или просто создавать ссылку на файл.

Рассмотрим пример создания символической ссылки на файл:

mklink "C:\Bases\Trade\1cv8tmp" "R:\TempFiles\1cv8tmp"

Обратите внимание: Для работы символических ссылок на файлы пользователю могут потребоваться специальные права в политиках безопасности Windows («Создание символических ссылок»), поэтому метод с Junction для папок считается более стабильным и простым в настройке.

Решение 3: Перенос всей базы целиком

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

Если же ваша цель — оставить тяжелую базу на медленном HDD, а «быстрые» временные файлы вынести на SSD, то возвращайтесь к Решению 1.

Особенности настройки через conf.cfg и переменные среды

Существует заблуждение, что параметры в conf.cfg или системные переменные TEMP и TMP решают задачу переноса файлов внутри папки базы. Проясним ситуацию:

Риски при использовании RAM-диска

Многие стремятся вынести временные файлы на RAM-диск для достижения максимальной скорости. Рассмотрим, почему это может быть опасно:

Файл 1cv8tmp является частью механизма обеспечения транзакционной целостности. Если в момент записи данных в базу произойдет сбой питания или «синий экран», а ваш RAM-диск очистится, база данных не сможет корректно завершить транзакцию при следующем запуске. Это прямой путь к логическому разрушению структуры файла .1CD.

Рекомендация: Если вы используете RAM-диск, обеспечьте наличие надежного ИБП (UPS) и настройте регулярное архивирование. Для большинства задач современный NVMe SSD обеспечивает достаточную скорость без рисков, присущих энергозависимой памяти.

Влияние антивирусов и сетевого окружения

Часто перенос файлов затевается из-за медленной работы базы. Проанализируем еще одну причину «тормозов» — антивирусное сканирование. Файлы 1cv8tmp и 1cv8.1cl обновляются сотни раз в секунду. Если антивирус проверяет каждую операцию записи, производительность падает на 30–50%.

Выясним, что нужно добавить в исключения (White List) антивируса:

Если база находится на сетевом диске (SMB), перенос временных файлов через симлинки на локальный диск клиента невозможен, так как эти файлы должны быть видны всем участникам сети для координации блокировок. В таком случае единственным надежным способом ускорения будет переход на клиент-серверный вариант или публикация базы через Веб-сервер (Apache/IIS).

Итоги

Мы рассмотрели способы управления служебными файлами файловой 1С. Подведем итог: штатных средств для этого нет, но механизм Junction Points в Windows позволяет эффективно распределять нагрузку по разным дискам. Используйте этот инструмент осторожно, всегда имея под рукой свежую резервную копию базы данных.

← На главную