0
Отвечен
Почему Excel-вские процессы, запущенные из КЗ не всегда выгружается из памяти?
Игорь Шалдин 3 года назад
в Прочее
•
обновлен Вячеслав Шинкарев (менеджер разработки) 3 года назад •
6
Здравствуйте.
Давно заметил, что после формирования печатных форм в КЗ, в памяти "зависают" Excel-евские процессы. Наконец-то дошли руки задать этот вопрос.
Пример. Сегодня делал клиенту Excel-евскую форму справки. В процессе неоднократно выводил её на печать. После этого в диспетчере задач такая картинка (все окна Excel при этом закрыты):
Работаю через RDP на нашем сервере. Как я понимаю, он достаточно мощный и проблем не возникает. А у пользователей на "слабых" компах в какой-то момент при попытке сформировать очередную форму КЗ просто вылетает.
С чем такое поведение Excel м.б. связано?
Сервис поддержки клиентов работает на платформе UserEcho
Добрый день.
Видимо не доделали..
Поставочные формы выгружают excel
В процессе печати сообщений с ошибками не было?
Выложите свой скрипт..
Как уже было сказано.
1) либо форма написана без завершения работы Excel и без показа ее на экране пользователю. Кажется это маловероятно.
2) либо при печати эксель происходит ошибка, которую форма печати (скрипт) не ловит и как следствие не завершает работу эксель с показом результата пользователю.
Чтобы не допускать этого, блок, начиная с tCreateXlsObjects и tOpenXlsObjects, заключается в try после которого следует catch, в котором делается завершение Excel с показом пользователю.
При отладке в процессе печати сообщения об ошибках были. Видимо именно эти процессы остались висеть.
Теперь ошибок нет. Почистил Excel-евские процессы, попробовал печатать - всё выгружается.
Ранее делал скрипт print_chib.s. На нем у клиента КЗ периодически вылетает.
Этот код должен был сделать процесс Excel видимым, если код был с самого начала...
1)Поменьше пользуйтесь глобальными переменными
2)Проверьте, что у вас во всех массивах char хватает длины под хранение строки..
3)Попробуйте распечатать в режиме отладки.. (ctrl+alt+shift+f1)
Советую вам перейти на работу с функциями "обертками" - они более удобны + печать будет работать и для Excel и для OpenOffice/
Доступные функции перечислены в \Script\ofis_com.S
Пример использования:
Было:
Стало:
Было:
Стало:
Было:
Стало:
Спасибо