Форум Тупа-Германия

Приветствуем вас на форуме Тупа-Германия! Зарегистрируйтесь и станьте членом нашего сообщества! После входа в систему вы сможете участвовать в жизни сайта, создавать свои темы и сообщения, а также общаться с другими участниками через личные сообщения!

  • Политические дискусии на данном форуме разрешены только в разделе о политике https://forum.tupa-germania.ru/forums/politika/ Запрещено оскорблять и разжигать. За это в бан.

Странный глюк в Excel 2016

  • Автор темы Автор темы Boris
  • Дата начала Дата начала

Boris

Участник
Сообщения
21 260
Моё почтение!
Может быть кто-то сталкивался? Ситуация описанная дальше сильно раздражает. Хотелось бы побороть

Дано: Написанная много лет назад и много лет эксплуатирующаяся программа + Excel 2016 + Win 10.

Сразу скажу, что никогда ранее ни с одной версией "офиса" начиная от довольно древних никаких проблем не было.
Программа в определенный момент формирует отчет и делает следующее: "зовет" эксель, открывает в нем определенный файл шаблона (их много разных) и потом передавая данные экселю заполняет шаблон данными.
В результате работы получаем открытый в экселе файл шаблона заполненный данными.
Версия 2016 по окончанию обработки сама открывает окно с вопросом что делать с файлом (сохранить, закрыть и отмена)
Отмена оставляет открытым эксель с документом в нем, и не сохраненному файлу ексель добавляет после имени "1".

А вот делее начинается цирк, при попытке сохранить файл (сразу или поработав с ним какое-то время).
Примерно в 70-80% случаев в момент вызова диалога сохранения файла (стандартный диалог Винды) эксель "виснет". Диалог не прорисовывается (окно открывается, но с белым фоном) через пару тройку секунд, ексель сам закрывается и снова открывается с пустым файлом.
Ошибку невозможно повторить стабильно. 2-3 раза из 10 все работает как надо.
Вначале мне казалось, что если не сразу сохраняться, а что-то поделать в файле - ошибка реже. Сейчас уже не кажется.
Я точно понимаю, что дело не в программе (раньше все всегда работало) и не в винде видимо, (больше такое не встречается никогда), получается
дело в экселе, причем это бывает только в случае, когда его заставляет работать эта внешняя программа, а не пользователь.
Было предположение, что если в момент работы эксель уже открыт, ошибок меньше, но сейчас так уже не кажется.
Если при первом предложении сохранить файл, (когда заканчивает отрабатывать программа по выгрузке в него данных) это сделать, задав в диалоге
имя файла и путь - все срабатывает всегда, но после сохранения, эксель закрывается. Да и не удобно руками имя файла писать, не имея возможности ткнуть в существующий.
Может быть кто-то сталкивался с подобным от мелкомягких?
 
Пока единственное, что приходит в голову - посмотреть журнал Windows, есть ли какие записи ошибок на момент зависания и закрытия приложения.
 
  • 👍
Реакции: 1 users
Пока единственное, что приходит в голову - посмотреть журнал Windows, есть ли какие записи ошибок на момент зависания и закрытия приложения.
Согласен, я бы тоже искал какие-то логи. Только фиг знает, именно винды или офиса? Там же должен быть какой-то лог всего что происходит (возможно уровень логирования надо будет поменять).
 
  • 👍
Реакции: 1 user
Excel, насколько помню тоже в системный журнал пишет.
 
  • 👍
Реакции: 1 user
Если бы это было джавовое приложение на свинге, я бы прставила на то, что окошко сохранения не закрывается как надо в первый раз. Типа просто скрывается, а не уничтожается и очищается из памяти. И при попытке сохранения второй раз вам показывают полумертвое старое окошко, а не новое. Возможно была использована неподходящая функция закрытия окошек и в новой версии экселя это стало заметно. Может еще что-то не так с гуевым потоком, нестабильность воспроизведения часто указывает на многопоточность, особенно если это гуевые элементы. Но это повторюсь мой джава-свинг опыт, как там у майкрософта я конечно хз. Вообще, попробуйте погуглить, все программисты так решают проблемы, стековерфлоу наше все.
 
  • 👍
Реакции: 1 users
Откуда в Excel java... Скорее проблема в правах от которых сделан запуск. Плюс еще вопрос, как именно с Excel идет общение. Моя старая практика показывает, что в этом вопросe Microsoft поступила крайне извращенно, временами забывая закрыть excel процесс. Так что если приложение виндовое, а не вэбовское, то по уму там должен висеть блок убивающий лишние процессы. Которого, с вероятностью 99%, учитывая возможную работу с данными после автоматического заполнения, нет.
 
Как говорил классик "Всі книжки пишуться з книжок".
 
  • 👍
Реакции: 2 users
Откуда в Excel java... Скорее проблема в правах от которых сделан запуск. Плюс еще вопрос, как именно с Excel идет общение. Моя старая практика показывает, что в этом вопросe Microsoft поступила крайне извращенно, временами забывая закрыть excel процесс. Так что если приложение виндовое, а не вэбовское, то по уму там должен висеть блок убивающий лишние процессы. Которого, с вероятностью 99%, учитывая возможную работу с данными после автоматического заполнения, нет.
Я не про то, что там есть джава, а про то что проблема может быть похожая. Впрочем тут надо для полной ясности больше деталей и вообще местного программиста. А то мы тут лечим по фотографии рак у пришельца.
 
  • 👍
Реакции: 1 users
Звучит как стандартное техзадание для программиста
Опыт работы фрилансером и такие задания покажутся манной небесной.

А если серьезно - ждем от @Boris что-же пишется в системный журнал.
 
  • 👍
Реакции: 1 user
У меня скорее опыт поддержки замшелого говна мамонтов на гиг сорцов. Через пару лет в этом гиге уже ориентируешься достаточно хорошо, чтобы и по фотографии получалось.
 
  • 👍
Реакции: 1 user
А если серьезно - ждем от @Boris что-же пишется в системный журнал.
прога общается с экселем через OLE
До именно этой версии экселя проблем ни то что таких а вообще каких-либо никогда не было.
Диалог сохранения фала открывает сам эксель (зачем-то,раньше такого тоже не было).
Соответственно, я уверен что проблема в мелкомягких и именно этой версии экселя.

Насчет записи в системный журнал.
Подскажите, где и как искать события посвященные экселю.
Вот что я вижу у себя:
Снимок.JPG
 
Слева "журналы - приложения" - справа смотрим по времени наиболее подходящее. Особое внимание на отметки Error. Даже если в описании не будет явно указано, что это Excel, но все равно по времени совпадает и уровень Error - может быть интересно и полезно.
А совсем справа должны быть команды "Save All Events..." и "Save Selected Events..."
 
А его не надо искать. Слева выбрали журналы - приложения. Посредине, в списке смотрите, что есть подходящее по времени с Level = Error. Кликаете, в нижней части появляется описание. Не обязательно именно Excel будет написано. Может и в чем другом проблема, в том же OLE или еще в чем.
 
  • 👍
Реакции: 1 user
Сверху