Почему 1С 7.7 не запоминает путь сохранения документов в RDP-сессии и как это исправить

Системный администратор 1С v7.7
← На главную

В работе с платформой 1С:Предприятие 7.7, особенно в терминальной среде (RDP), системные администраторы часто сталкиваются с досадной ошибкой: программа «забывает» путь, в который пользователь последний раз сохранял печатную форму или отчет. После перезахода в систему 1С настойчиво предлагает сохранять файлы в стандартную папку «Мои документы», игнорируя сетевые диски или выбранные ранее рабочие каталоги. Рассмотрим детально, почему это происходит и какими способами можно вернуть системе «память».

Проанализируем механику хранения настроек в 1С 7.7

Для начала разберем, где именно платформа хранит информацию о путях сохранения. В отличие от современных версий, 1С 7.7 распределяет настройки между файлом конфигурации пользователя 1cv7.cfg и системным реестром Windows.

Путь последнего сохранения обычно записывается в ветку реестра текущего пользователя: HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\<Имя базы>\V7\<Имя пользователя>\General. За это отвечает параметр MainDo. Если 1С не имеет прав на запись в эту ветку или если профиль пользователя в RDP настроен как временный (или обязательный — Mandatory Profile), все изменения реестра будут стерты при завершении сеанса.

Решение 1: Проверка каталога пользователя в Конфигураторе

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

  1. Запустим 1С в режиме Конфигуратор.
  2. Перейдем в меню Администрирование — Список пользователей.
  3. Откроем карточку проблемного пользователя.
  4. Проверим поле Рабочий каталог. Если оно пустое, 1С может использовать системные пути Windows по умолчанию. Рекомендуется указать путь к персональной папке пользователя на сервере или в каталоге базы данных.

Решение 2: Настройка рабочей папки в ярлыке RDP

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

Разберем, как это сделать:

  1. Откроем свойства ярлыка, через который запускается 1С (или параметры RDP-подключения в разделе «Программы»).
  2. В поле Рабочая папка (Start in) пропишем путь к базе данных или к локальной папке пользователя.
  3. Это заставит диалоговые окна Windows начинать «обзор» именно с этого места, если в реестре пусто.

Решение 3: Принудительное обновление реестра через скрипты

Если проблема вызвана тем, что профиль пользователя «очищается» при выходе (частая практика в целях безопасности на терминальных серверах), мы можем автоматизировать внесение нужных настроек при входе. Рассмотрим вариант использования .reg файла.

Создадим файл, например, fix_1c_path.reg, со следующим содержимым (подставив свои данные):


Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Ваша_База\V7\Имя_Пользователя\General]
"MainDo"="Z:\\Saves\\"

Чтобы пользователь не видел лишних окон при входе, можно настроить запуск этого файла через батник (.bat) с ключом тихой установки или через VBS-скрипт. Проанализируем пример VBS-скрипта, который запускает импорт реестра незаметно для глаза:


Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "regedit.exe -s C:\Scripts\fix_1c_path.reg", 0, false

Этот скрипт можно поместить в автозагрузку пользователя или прописать в Logon Script в настройках домена.

Решение 4: Проблема мапленых (сетевых) дисков

Проанализируем ситуацию, упомянутую в обсуждении: использование мапленых дисков (например, диск X:\, указывающий на сетевой ресурс). 1С 7.7 инициализирует диалог сохранения очень быстро. Если при входе в RDP сетевые диски подключаются с задержкой, 1С в момент обращения к реестру «видит», что старого пути (на диске X:\) физически не существует. В этом случае платформа мгновенно сбрасывает настройку на папку «Мои документы».

Что делать в этой ситуации:

Решение 5: Очистка «мусора» и пересоздание ветки реестра

Если права в порядке, но путь все равно не запоминается даже внутри сессии, возможно, ветка реестра повреждена или переполнена. Выполним следующие действия:

  1. Закроем 1С под данным пользователем.
  2. Откроем regedit и перейдем в ветку пользователя HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\<Имя базы>\V7\<Имя пользователя>.
  3. Полностью удалим подраздел Mru (Most Recently Used — список последних файлов) и General.
  4. При следующем запуске 1С пересоздаст эти ключи с чистыми значениями.

Дополнительная диагностика с помощью Process Monitor

Если ни один из методов не помог, проанализируем поведение системы с помощью утилиты ProcMon от Sysinternals. Это позволит нам точно увидеть, происходит ли ошибка ACCESS DENIED при попытке записи в реестр или файл 1cv7.cfg.

Настроим фильтры в ProcMon:

Запустим сохранение документа в 1С и посмотрим, по какому адресу программа пытается записать путь и какой ответ получает от ОС. На современных ОС (Windows Server 2016 и выше) причиной может быть UAC Virtualization, когда записи реестра перенаправляются в VirtualStore из-за нехватки прав, и 1С просто не может их потом найти там, где ожидает.

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

← На главную