Почему зависает 1С 7.7 в терминальном режиме на Windows Server и как восстановить быстродействие

Системный администратор 1С v7.7 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Работа файловых баз 1С:Предприятие 7.7 на современных многоядерных серверах под управлением Windows Server в среде удаленных рабочих столов (RDS/RDP) нередко сопровождается внезапными зависаниями. Программа может переставать отвечать при проведении документов, открытии диалогов параметров печати или попытке штатной выгрузки информационной базы, при этом общая загрузка процессора в диспетчере задач не превышает 10–15%. Разберем по шагам комплекс причин такого поведения и проанализируем практические методы решения проблемы.

1. Анализ размеров таблиц базы данных и системного журнала

Файловая версия 1С 7.7 крайне чувствительна к размеру файлов таблиц .DBF и индексов .CDX. Штатный предел для одного файла формата DBF составляет 2 ГБ, однако при приближении размера файла проводок 1SENTRY.DBF или итогов 1SBKTTL.DBF к 1–1.5 ГБ платформа начинает испытывать серьезные задержки при поиске и блокировке записей. Для получения списка наиболее объемных файлов выполним команду в консоли операционной системы:


cd "C:\1C Base\Base"
dir /os

Проанализируем ключевые объекты базы данных:

  1. Таблица проводок (1SENTRY.DBF): если файл превышает 1 ГБ, выборка бухгалтерских итогов и проведение документов замедляются в геометрической прогрессии. Единственным надежным решением является свертка базы данных (удаление движений прошлых лет с вводом входящих остатков на начало расчетного года) и вынос архивной базы в отдельный каталог.
  2. Журнал регистрации (каталог SYSLOG\1cv7.mlg): платформа непрерывно пишет события в данный файл. При размере файла более 500–900 МБ любая транзакция начинает зависать из-за постоянного позиционирования в конец огромного текстового файла. Заархивируем текущий файл 1cv7.mlg во внешний каталог и удалим его из папки SYSLOG базы. При следующем запуске 1С автоматически создаст чистый журнал.
  3. Пользовательские настройки и кэш (1cv7.cfg): разрастание файла конфигурации интерфейса пользователя до сотен килобайт или мегабайт приводит к задержкам при открытии любых экранных форм. Рекомендуется очистить данный файл при монопольном обслуживании.

2. Ограничение встроенного механизма выгрузки (файл 1Cv77.dat)

Попытка выполнить стандартную выгрузку через меню «Администрирование» -> «Выгрузка данных» в Конфигураторе завершается зависанием, если суммарный объем данных превышает 2 ГБ. Встроенный модуль архивации 1С 7.7 не поддерживает стандарт ZIP64. При наличии временных файлов обмена (например, 1SUPDTS.DBF) или огромной таблицы проводок создаваемый файл 1Cv77.dat упирается в лимит, и процесс аварийно стопорится.

Для баз объемом более 2 ГБ откажемся от штатной выгрузки Конфигуратора и настроим регламентное резервное копирование каталога базы внешними средствами (например, архиватором 7-Zip по расписанию в нерабочие часы при отсутствии активных пользователей или с использованием теневых копий тома VSS).

3. Настройка подсистемы печати и драйверов в терминальной сессии (RDP)

Зависание интерфейса 1С при обращении к параметрам страницы или печати табличных документов связано с устаревшим механизмом Win32 GDI, который опрашивает свойства принтера по умолчанию в момент инициализации диалогового окна. Перенаправление клиентских принтеров (Easy Print) в Windows Server создает огромные задержки ответа службы диспетчера печати (Print Spooler).

Для устранения проблем с печатью выполним следующие настройки:

  1. В свойствах сервера удаленных рабочих столов или через групповые политики (GPO) отключим автоматическое перенаправление пользовательских принтеров (Printer Redirection).
  2. Установим все необходимые сетевые принтеры локально на самом терминальном сервере через стандартный TCP/IP-порт, используя изолированные драйверы (Type 3 или Type 4).
  3. Назначим для всех терминальных пользователей принтером по умолчанию локальный виртуальный принтер (например, Microsoft XPS Document Writer или локальный PDF-принтер). Выбор реального физического устройства для печати пользователи будут осуществлять непосредственно в диалоге печати перед выводом документа.

4. Оптимизация операционной системы, процессора и блокировок

Платформа 1С 7.7 является строго однопоточным 32-разрядным приложением. Показатель общей загрузки сервера в 10–15% на многоядерном процессоре означает, что одно процессорное ядро загружено на 100%, выполняя тяжелую операцию блокировки или расчета итогов.

Настроим окружение сервера для максимальной отдачи:

  1. Схема электропитания и парковка ядер: переведем схему электропитания Windows Server в режим «Высокая производительность» (High Performance). В настройках BIOS/UEFI отключим режимы энергосбережения C-States и технологию SpeedStep/EIST, чтобы предотвратить сброс частоты ядер при неравномерной нагрузке.
  2. Изоляция временных каталогов пользователей: запретим сохранение временных файлов всех сеансов в общую папку. В свойствах ярлыков запуска 1С укажем индивидуальные пути к папке Temp с помощью ключа запуска /T:
    
    "C:\Program Files (x86)\1Cv77\BIN\1cv7.exe" enterprise /D"C:\1C Base\Base" /T"D:\1C_Temp\User1"
    
  3. Снижение конкуренции за блокировки таблиц: в режиме одновременной работы 20–40 пользователей штатный механизм ожиданий перегружает файловую систему. Установим параметр «Время ожидания захвата таблиц» в значение 0 для всех пользователей либо подключим внешнюю компоненту ожидания блокировок (например, vk_sleep).
  4. Исключения антивируса и DEP: добавим исполняемые файлы 1cv7.exe, 1cv7s.exe в исключения механизма предотвращения выполнения данных (DEP). В антивирусном ПО настроим полный запрет на сканирование каталога базы данных и файлов с расширениями .dbf, .cdx, .md, .usr, .tmp.

5. Проведение регламентных процедур обслуживания базы

Для восстановления целостности структуры и избавления от накопившегося мусора в таблицах выполним монопольное обслуживание:

  1. Создадим полную резервную копию каталога информационной базы.
  2. Удалим все индексные файлы с расширением .CDX в каталоге базы (команда del *.cdx).
  3. Запустим 1С:Предприятие 7.7 в монопольном режиме и дождемся завершения автоматической переиндексации всех таблиц.
  4. Зайдем в Конфигуратор и выполним пункт меню «Администрирование» -> «Тестирование и исправление ИБ», обязательно отметив пункт «Упаковка таблиц информационной базы» для физического удаления помеченных на удаление записей из файлов DBF.
  5. Выполним полный пересчет бухгалтерских итогов через меню «Операции» -> «Управление бухгалтерскими итогами».
← На главную