В работе с платформой 1С:Предприятие 7.7, особенно в терминальной среде (RDP), системные администраторы часто сталкиваются с досадной ошибкой: программа «забывает» путь, в который пользователь последний раз сохранял печатную форму или отчет. После перезахода в систему 1С настойчиво предлагает сохранять файлы в стандартную папку «Мои документы», игнорируя сетевые диски или выбранные ранее рабочие каталоги. Рассмотрим детально, почему это происходит и какими способами можно вернуть системе «память».
Для начала разберем, где именно платформа хранит информацию о путях сохранения. В отличие от современных версий, 1С 7.7 распределяет настройки между файлом конфигурации пользователя 1cv7.cfg и системным реестром Windows.
Путь последнего сохранения обычно записывается в ветку реестра текущего пользователя: HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\<Имя базы>\V7\<Имя пользователя>\General. За это отвечает параметр MainDo. Если 1С не имеет прав на запись в эту ветку или если профиль пользователя в RDP настроен как временный (или обязательный — Mandatory Profile), все изменения реестра будут стерты при завершении сеанса.
Выясним, задан ли для конкретного пользователя персональный рабочий каталог. Это фундаментальная настройка, без которой многие функции сохранения работают некорректно.
Посмотрим на ситуацию со стороны окружения Windows. Часто 1С сбрасывает пути, если не может определить стартовый контекст. Попробуем форсировать рабочий каталог через свойства ярлыка или настройки терминального подключения.
Разберем, как это сделать:
Если проблема вызвана тем, что профиль пользователя «очищается» при выходе (частая практика в целях безопасности на терминальных серверах), мы можем автоматизировать внесение нужных настроек при входе. Рассмотрим вариант использования .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 в настройках домена.
Проанализируем ситуацию, упомянутую в обсуждении: использование мапленых дисков (например, диск X:\, указывающий на сетевой ресурс). 1С 7.7 инициализирует диалог сохранения очень быстро. Если при входе в RDP сетевые диски подключаются с задержкой, 1С в момент обращения к реестру «видит», что старого пути (на диске X:\) физически не существует. В этом случае платформа мгновенно сбрасывает настройку на папку «Мои документы».
Что делать в этой ситуации:
\\Server\Folder) вместо букв дисков, хотя 1С 7.7 не всегда корректно их воспринимает в параметре MainDo.Если права в порядке, но путь все равно не запоминается даже внутри сессии, возможно, ветка реестра повреждена или переполнена. Выполним следующие действия:
regedit и перейдем в ветку пользователя HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\<Имя базы>\V7\<Имя пользователя>.Если ни один из методов не помог, проанализируем поведение системы с помощью утилиты ProcMon от Sysinternals. Это позволит нам точно увидеть, происходит ли ошибка ACCESS DENIED при попытке записи в реестр или файл 1cv7.cfg.
Настроим фильтры в ProcMon:
Process Name is 1cv7s.exeOperation is RegSetValueЗапустим сохранение документа в 1С и посмотрим, по какому адресу программа пытается записать путь и какой ответ получает от ОС. На современных ОС (Windows Server 2016 и выше) причиной может быть UAC Virtualization, когда записи реестра перенаправляются в VirtualStore из-за нехватки прав, и 1С просто не может их потом найти там, где ожидает.
Подводя итог, можно сказать, что проблема чаще всего кроется в правах доступа к ветке реестра HKCU или в специфике работы терминальных профилей, которые не сохраняют состояние сеанса. Использование скриптов автоматизации или жесткая фиксация рабочего каталога в свойствах пользователя — наиболее надежные способы решения данной задачи.