При переносе рабочих мест пользователей платформы 1С:Предприятие 7.7 (файловая база DBF, конфигурация «Торговля и Склад») с устаревших операционных систем вроде Windows XP на Windows 10 часто наблюдается катастрофическое падение скорости. Особенно сильно это проявляется при построении отчетов: операции, занимавшие секунды, начинают выполняться по несколько минут, даже если локальная сеть и процессорные мощности формально не перегружены.
Разберем детально, с чем связано такое падение производительности, как сетевой стек и механизмы современных версий Windows влияют на файловые базы DBF, и рассмотрим пошаговые методы устранения задержек.
Проанализируем архитектурные особенности, вызывающие медленную работу отчетов:
1С 7.7 при чтении таблиц .dbf и индексов .cdx непрерывно накладывает и снимает блокировки диапазонов байт (byte-range locks), что в современных версиях Windows порождает колоссальный поток служебных пакетов и сетевых задержек.ВременныйРасчет регистров: При формировании сложных аналитических отчетов в коде конфигураций часто вызывается метод ВременныйРасчет(). Данный механизм активно работает с дисковой подсистемой клиентской машины и временными файлами, где Windows 10 с включенной индексацией или агрессивным контролем ввода-вывода может создавать дополнительные задержки.В современных версиях Windows включены механизмы автоподстройки окна TCP и аппаратной разгрузки сети, которые отлично работают для передачи крупных потоковых файлов, но создают задержки при пересылке десятков тысяч мелких запросов, характерных для файловой 1С 7.7.
Откроем командную строку от имени администратора на компьютере с Windows 10 и выполним следующие команды:
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global rss=disabled
netsh int tcp set global chimney=disabled
После применения параметров выполним перезагрузку операционной системы и проверим отклик программы.
По умолчанию клиент SMB в Windows 10 удерживает локальный кэш метаданных, что приводит к задержкам синхронизации при проверке изменений в индексах и таблицах базы данных. Отключим эти задержки через системный реестр.
regedit.HKLM\System\CurrentControlSet\Services\LanmanWorkstation\ParametersFileInfoCacheLifetime = 0FileNotFoundCacheLifetime = 0DirectoryCacheLifetime = 0RequireSecuritySignature = 0EnableSecuritySignature = 0Разберем свойства физического сетевого интерфейса. Некоторые аппаратные технологии энергосбережения и разгрузки вызывают микропаузы в обработке пакетов:
Поскольку расчет итогов и построение отчетов активно используют локальный диск для создания временных рабочих файлов 1С 7.7, оптимизируем расположение системных папок:
TEMP и TMP короткий путь без пробелов и кириллицы, например: C:\TEMP.C:\TEMP существует, и откроем его свойства.C:\TEMP и папку с базой данных в исключения используемого антивирусного ПО.Для исполняемого файла платформы (1cv7s.exe или 1cv7.exe) выполним тонкую настройку окружения:
Важно понимать, что сетевой протокол SMB в современных ОС изначально не проектировался для многопользовательской работы с файловыми базами формата DBF через сетевую шару. Если вышеуказанные настройки не дают желаемого прироста скорости, наиболее эффективными решениями являются: