Цитата:
Сообщение от
Владимир Максимов
Заполнение полей Word идет в состоянии Word.visible = false. Так было до передергивания видимости и так и осталось после передергивания видимости. Т.е. изменение значений полей происходит в не видимом, скрытом, приложении Word. Однако несмотря на этот факт скорость заполнения в обычном клиенте и в терминальном различается на порядок. При одном и том же коде
Возможно, это просто глюки ворда

Помнится, недавно была тема
Предустановка свойства ButtonGroup enabled в значение No, где обсуждался интересный глюк ядра Аксапты: если выставить FormButtonGroup.enabled( false ) в дизайне формы или во время выполнения до super() в run() (т.е. в т.ч. в init() формы), то обратное действие FormButtonGroup.enabled( true ) срабатывает лишь с третьего раза (enable-disable-enable). Как знать, возможно, в Word тоже наблюдается похожее поведение каких-то его настроек, отвечающих за отрисовку изменений. Кроме того, подобное поведение может быть связано с тем, когда изначально выставляется Visible( false ): если вы используете ComWordDocument_RU, то он (точнее, его базовый класс ComOfficeDocument_RU) устанавливает это свойство после инициализации объекта Application, но до открытия файла-шаблона и инициализации объекта Document. Быть может, если делать Word невидимым после открытия шаблона документа, то вывод в шаблон также будет работать быстро.
Цитата:
Сообщение от
Владимир Максимов
Передергивание видимости позволяет "привести в чувство" терминального клиента. Что-то, где-то обновляется и тормоза уходят
Как вариант, можно еще провести такой эксперимент: запустить вывод отчета в Word в терминальном клиенте и сразу же отключиться от терминальной сессии, чтобы вывод данных происходил без подключенного к сессии клиента, которому бы передавалась картинка. Время отработки вывода в этом случае можно более-менее точно определить по загрузке процессора экземпляром Word, запущенным в соответствующей сессии: активность Word можно наблюдать, например, в диспетчере задач, запущенном в другой сессии или в консоли на том же терминальном сервере с правами просмотра информации о процессах других пользователей. Опередлить "нужный" экземпляр Word, если на сервере их запущено несколько, можно будет по номеру сессии (session id).
Такой эксперимент покажет, влияет ли пересылка картинки терминальному клиенту на производительность вывода, если предположить, что из-за глюка даже невидимый Word продолжает что-то там... рисовать