В этой статье разберем две частые проблемы, возникающие при работе с файловыми базами 1С в терминальном режиме на сервере Windows. Первая — значительная разница во времени запуска программы под учетной записью администратора и обычного пользователя. Вторая — нестабильная работа или полный отказ автоматической синхронизации и других регламентных заданий. Проанализируем возможные причины и рассмотрим пошаговые решения для каждой из них.
Ситуация, когда под администратором база открывается за секунды, а под пользователем — за минуты, встречается довольно часто. Это указывает на проблемы, связанные с правами доступа, пользовательским окружением или специфическими настройками операционной системы. Давайте последовательно разберем, куда "копать".
Права доступа к папкам и кэш 1С
При первом (и последующих) запусках платформа 1С создает и обновляет файлы кэша в профиле пользователя Windows. Эти файлы хранят кэшированную конфигурацию, настройки окон и другие данные для ускорения работы. Располагаются они обычно в папках %AppData%\1C и %LOCALAPPDATA%\1C. Если у пользователя недостаточно прав на запись в эти каталоги, или сам профиль пользователя (например, перемещаемый) создается медленно, запуск 1С будет сильно заторможен. У администратора таких проблем с правами нет, поэтому и запуск происходит быстро.
Что делать:
Настройки и права пользователя внутри 1С
Даже если в конфигурации не используется механизм ограничения прав на уровне записей (RLS), при старте программы под пользователем с ограниченными правами система выполняет множество проверок доступа к объектам метаданных: отчетам, обработкам, формам, командам интерфейса. Для администратора с полными правами эти проверки либо не выполняются, либо проходят мгновенно. Для пользователя это может стать причиной задержки.
Что делать:
Особенности работы терминального сервера Windows Server 2012 R2
В этой версии операционной системы по умолчанию включен механизм Dynamic Fair Share Scheduling (DFSS). Его задача — справедливо распределять ресурсы процессора, диска и сети между всеми пользовательскими сеансами, чтобы один "прожорливый" пользователь не мешал другим. Однако для ресурсоемких приложений, каким является 1С, этот механизм может оказаться "медвежьей услугой", искусственно замедляя работу в сеансе пользователя. Отключение DFSS часто дает колоссальный прирост производительности.
Что делать:
Необходимо отредактировать реестр Windows. Перед внесением изменений обязательно сделайте резервную копию реестра.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System установите для параметра EnableCpuQuota (тип DWORD) значение 0.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk установите для параметра EnableFairShare (тип DWORD) значение 0.После изменения этих параметров потребуется перезагрузка сервера.
Антивирусное программное обеспечение
Антивирус — еще один частый виновник низкой производительности. Он может проверять "на лету" каждый файл, к которому обращается 1С, что существенно замедляет запуск и работу. Настройки сканирования для администратора и пользователя могут отличаться.
Что делать:
Добавьте в исключения антивируса (как для проверки в реальном времени, так и для планового сканирования) следующие пути:
*.1CD).%AppData%\1C, %LOCALAPPDATA%\1C).C:\Program Files\1cv8\...).Эта проблема имеет простое и логичное объяснение, которое кроется в самой архитектуре файлового режима работы 1С. В отличие от клиент-серверного варианта, где есть постоянно работающая служба сервера 1С, в файловом режиме нет отдельного процесса, который мог бы выполнять фоновые задачи по расписанию.
Ключевой момент: для выполнения регламентных и фоновых заданий (включая автоматическую синхронизацию) в файловом режиме необходим хотя бы один запущенный клиентский сеанс 1С. Именно этот сеанс берет на себя роль планировщика: он проверяет расписание заданий и запускает их на выполнение. Если все пользователи вышли из программы, выполнять задания попросту некому.
Рассмотрим надежные способы решения этой задачи.
Это самый распространенный и правильный подход для обеспечения работы фоновых заданий в файловой базе. Суть в том, чтобы на сервере постоянно работал один сеанс 1С, запущенный под специальным пользователем.
Разберем по шагам:
1C_Robot. Задайте ему надежный пароль и ограничьте права до необходимого минимума (вход в систему, запуск приложений).netplwiz или редактирование реестра.РоботСинхронизации. Назначьте ему роль с минимально необходимыми правами для выполнения регламентных заданий (обычно достаточно прав на запуск синхронизации и других нужных фоновых процессов).1C_Robot ярлык для запуска 1С. В свойствах ярлыка нужно прописать параметры запуска, чтобы 1С стартовала автоматически, без диалогов. Пример строки запуска:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"C:\1C_Bases\MyBase" /N"РоботСинхронизации" /P"PasswordForRobot" /AllowExecuteScheduledJobs -On
Где:
/F"C:\1C_Bases\MyBase" — путь к вашей файловой базе./N"РоботСинхронизации" — имя пользователя 1С./P"PasswordForRobot" — его пароль./AllowExecuteScheduledJobs -On — флаг, явно разрешающий выполнение регламентных заданий в этом сеансе.Теперь при каждой загрузке сервера пользователь 1C_Robot будет автоматически входить в систему, запускать 1С, и этот сеанс будет служить планировщиком для всех ваших автоматических операций.
Это более кардинальное, но и самое надежное и производительное решение. Если у вас есть лицензии на сервер 1С и СУБД (например, MS SQL Server, PostgreSQL), переход на клиент-серверную архитектуру решит обе проблемы разом.
Преимущества:
rmngr), который работает как служба 24/7, независимо от пользовательских сеансов.Этот путь требует больших затрат и компетенций в администрировании, но для растущего бизнеса является стратегически верным шагом.