Как исправить сохранение кэша и временных файлов 1С в каталог C:\Windows вместо профиля пользователя

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

Рассмотрим распространенную проблему в терминальных средах RDP на платформах «1С:Предприятие 8.3», когда платформа перестает изолировать профили пользователей Windows и сохраняет временные файлы, настройки и кэш в системную папку C:\Windows\Application Data\1C. В результате все кассиры или пользователи терминального сервера работают с одной общей папкой кэша, из-за чего подставляется единое рабочее место, слетают настройки подключаемого кассового оборудования и некорректно предлагается имя последнего заходившего пользователя.

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

Причины сброса путей кэша 1С в системную папку

Проанализируем механику работы платформы «1С:Предприятие» с файловой системой Windows. При запуске сеанса платформа определяет пути к профилю пользователя через системные API функций ОС и переменные окружения %APPDATA% и %LOCALAPPDATA%. В штатном режиме кэш сохраняется в персональные каталоги вида C:\Users\%USERNAME%\AppData\Roaming\1C и C:\Users\%USERNAME%\AppData\Local\1C.

Смещение путей в каталог C:\Windows\Application Data\1C происходит по следующим причинам:

  1. Активировался режим совместимости ОС: Для исполняемых файлов платформы (1cv8.exe или 1cv8s.exe) мог включиться режим совместимости с устаревшими версиями Windows (например, Windows XP). В этом режиме операционная система принудительно перенаправляет обращения программы к профилю в системный каталог C:\Windows.
  2. Повреждение реестра Windows: В системной ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders сбились значения системных переменных на зафиксированные пути C:\Windows\... вместо динамических переменных профиля.
  3. Сбой прав NTFS на папки профилей: После аварийного восстановления системы у пользователей терминала могли сброситься права доступа к их собственным папкам в C:\Users, из-за чего операционная система перенаправляет запись временных файлов в глобальную папку.

Шаг 1. Проверка и отключение режима совместимости

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

  1. Перейдем в каталог установки платформы: C:\Program Files (x86)\1cv8\8.3.X.X\bin\ (или C:\Program Files\1cv8\8.3.X.X\bin\).
  2. Нажмем правой кнопкой мыши по файлам 1cv8.exe и 1cv8s.exe и откроем Свойства.
  3. Перейдем на вкладку Совместимость и нажмем кнопку Изменить параметры для всех пользователей.
  4. Убедимся, что флажок Запустить программу в режиме совместимости снят. Если он установлен — снимем его и сохраним настройки.
  5. Проверим реестр на наличие записей совместимости в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers и удалим параметры, ссылающиеся на файлы 1С.

Шаг 2. Проверка и восстановление путей в реестре Windows

Посмотрим на настройки системных папок профилей в реестре ОС, которые могли сброситься при аварийном сбое сервера.

  1. Запустим редактор реестра regedit от имени администратора.
  2. Перейдем в раздел: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders.
  3. Проверим ключевые параметры: AppData — должно содержать значение %USERPROFILE%\AppData\Roaming; Local AppData — должно содержать значение %USERPROFILE%\AppData\Local.
  4. Если в этих параметрах указан абсолютный путь C:\Windows\..., исправим его на соответствующую динамическую переменную с %USERPROFILE%.
  5. Дополнительно проверим раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList на корректность указанных путей к профилям пользователей.

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

Если требуется гарантированно изолировать кэш для каждого пользователя или временно обойти сбой операционной системы, настроим запуск 1С через командный файл (bat-файл) с явным переопределением переменных среды.

Создадим текстовый файл с расширением .bat или .cmd и поместим в него следующий код:


set APPDATA=C:\Users\%USERNAME%\AppData\Roaming
set LOCALAPPDATA=C:\Users\%USERNAME%\AppData\Local
set USERPROFILE=C:\Users\%USERNAME%
start "" "C:\Program Files (x86)\1cv8\8.3.10.2667\bin\1cv8s.exe"

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

Шаг 4. Очистка системного кэша и проверка NTFS-прав

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

  1. Завершим все терминальные сеансы пользователей и остановить процессы 1cv8.exe.
  2. Удалим содержимое служебного каталога C:\Windows\Application Data\1C.
  3. Проверим права доступа (NTFS) к каталогам пользователей в C:\Users, чтобы каждый пользователь имел полные права на свой профиль.
  4. Запустим 1С под каждым пользователем и убедимся, что служебные папки 1Cv8 создаются корректно в C:\Users\%USERNAME%\AppData\Local\1C и C:\Users\%USERNAME%\AppData\Roaming\1C.
← На главную