WEB-приложение Сведение отчетности  (13.12.2024)
Использование Microsoft Office 2010 или выше

В случае использования на сервере Microsoft Office версии 2010 или выше, может наблюдаться проблема с быстродействием (по сравнению с Office 2007 или более ранней версии) по выгрузке отчетов в Excel файлы.

Данная проблема связана с изменениями в работе с буфером обмена в версиях Microsoft Office 2010 и выше.

А именно:

  1. Изменение способа оповещения просмотрщиков буферов обмена других процессов офисных программ (в частности Excel), запущенных в текущем сеансе Windows.

    В результате этого, при активной работе с буфером обмена, наблюдается замедление работы Excel даже в случае работы только 1-го процесса Excel.

  2. Изменение способа очистки буфера обмена перед его использованием в случаях когда это сделать не удается с 1-го раза, например при интенсивной работе с ним других процессов:
    • В версиях Excel предшествующих 2010, делалось только 1 попытка очистить буфер обмена, после чего процесс шел дальше вне зависимости от результата
    • В версиях Excel 2010 и выше, делается до 10 попыток в случае неудачи, после чего процесс идет дальше вне зависимости от результата

    В результате этого, при активной работе с буфером обмена, наблюдается замедление работы Excel пропорционально количеству других процессов (в частности Excel) конкурирующих за буфер обмена.

Решение проблемы :

  1. Microsoft признала проблемой изменение описанное в пункте 1, и реализовала возможность отключения просмотрщиков буфера обмена во всех своих продуктах Office, начиная с 2010.

    Для включения данной настройки в Office 2010, необходимо убедиться, что его версия не менее 14.0.7106.5000.

    Важно!

    Вы можете вручную применить эту настройку, так как это описано в статье , или включить флажок "Отключить просмотрщик буфера обмена Microsoft Office" в инсталляторе, для автоматического выполнения этой настройки.

    При ручном применении этой настройки стоит иметь ввиду, что она действует только для тех пользователей Windows, в ветке реестра которых она применена. Т.е. её необходимо включить как минимум для того пользователя от имени которого будет работать сервис (по умолчанию, все сервисы в системе работают от имени SID: S-1-5-18).

  2. В Microsoft было отправлено описание проблемы из пункта 2.

    До того момента когда данная проблема будет исправлена (или не исправлена) Microsoft, нами была разработана библиотека OfficeNoSleep.dll, поставляемая в составе Сервиса "Сведение отчетности Онлайн", которая детектирует ситуации описанные в пункте 2, и нивелирует их, когда это возможно.

    Данная библиотека подключается и начинает функционировать когда это необходимо (использование Microsoft Office 2010 и выше) автоматически, т.е. администратору не нужно предпринимать каких-либо действий.

Важно!
Для полного решения описанных проблем, необходимо использовать оба решения совместно. В таком случае, быстродействие будет даже несколько выше того, что было при использовании Microsoft Office 2007 или ниже.