При развертывании платформы 1С:Предприятие 7.7 на сервере терминалов под управлением Windows Server 2008 или более поздних версий администраторы часто сталкиваются с падением приложения сразу после выбора пользователя и попытки открытия базы данных. В журнале событий Windows фиксируется событие APPCRASH исполняемого файла 1cv7s.exe (или 1cv7.exe), модуль с ошибкой — Frame.dll, а код исключения — c0000005 (Access Violation).
Разберем детально, почему возникает данный сбой, за что отвечает указанная библиотека и какие шаги необходимо предпринять для стабильной работы пользователей в терминальной сессии.
Библиотека Frame.dll является ключевым компонентом графической оболочки платформы 1С 7.7. Она отвечает за создание главного окна программы (MDI-контейнера), построение меню, командных панелей и восстановление сохраненного расположения окон пользователя. Код ошибки c0000005 указывает на нарушение прав доступа к памяти (попытка чтения или записи по недопустимому адресу).
В операционных системах линейки Windows Server 2008 и выше механизмы разграничения прав пользователей и безопасность файловой системы значительно строже, чем в Windows 2000/2003, под которые изначально разрабатывалась платформа 7.7. Когда непривилегированный пользователь подключается по RDP, 1С пытается инициализировать файлы конфигурации интерфейса, временные таблицы и блокировочные файлы. Если у учетной записи Windows нет полного доступа к нужным ресурсам, платформа аварийно закрывается.
Главная и наиболее распространенная причина сбоя — отсутствие у пользователя терминала достаточных разрешений на файловую систему в каталоге с базой данных.
Выполним пошаговую настройку разрешений:
Пользователи удаленного рабочего стола / Remote Desktop Users или специальную доменную группу пользователей 1С).*.dbf, *.cdx, *.md).Платформе 1С 7.7 для файловых баз обязательно требуется возможность создавать, изменять и удалять служебные файлы (такие как 1Cv7.LCK, 1cv7.lck, файлы блокировок транзакций и временные индексы), поэтому неполных прав на чтение недостаточно для корректного старта.
Проанализируем структуру каталогов внутри информационной базы. Для каждого пользователя, заведенного в Конфигураторе, платформа создает рабочий каталог (по умолчанию папка с именем пользователя в каталоге \usrdef\ или корне базы).
В этом каталоге формируется файл 1Cv7.CFG, в который библиотека Frame.dll сохраняет состояние панелей инструментов и положение окон. Если физический каталог пользователя отсутствует или заблокирован для записи учетной записью Windows:
Если настройка прав на каталог базы не решила проблему полностью, рассмотрим сопутствующие системные факторы, влияющие на стабильность 1С 7.7 в RDP:
1cv7s.exe и 1cv7.exe в список исключений Data Execution Prevention. Для этого откроем «Свойства системы» — «Дополнительно» — «Быстродействие (Параметры)» — «Предотвращение выполнения данных», выберем режим включения DEP для всех программ, кроме выбранных, и укажем путь к исполняемым файлам в папке BIN.TEMP и TMP терминального пользователя указывают на существующую локальную папку, к которой у пользователя есть неограниченный доступ на чтение и запись.HKEY_LOCAL_MACHINE\Software\1C (или HKEY_LOCAL_MACHINE\Software\Wow6432Node\1C на x64-системах). Предоставим пользователям права на чтение и запись для этого раздела.1cv7s.exe во вкладке «Совместимость» установим запуск в режиме совместимости с «Windows XP (Пакет обновления 3)» и отметим опцию запуска от имени администратора при первичной инициализации платформы.BIN платформы пустой файл с именем OrdNoChk.prm.Комплексное применение указанных настроек устраняет ошибки инициализации интерфейса и обеспечивает стабильную многопользовательскую работу 1С 7.7 в терминальной среде.