Если запустить 1С на экране такого разрешения, когда не все окна влезают на экран (800x600), то например при печати из платёжки (предв. просмотр) это окно перестаёт закрываться крестиком (только через Окна, Закрыть), и программа легко может упасть.
В определенный момент в одной из печатных форм (максимизированных?) блокируется кнопка [X] окна. При этом кнопка Max-Restore остается доступной, но не реагирует на нажатия. Т.е. окно перестает максимизироваться-восстанавливаться (хотя и минимизируется. Пользователи говорят - после этого ч-з непродолжительное время 1С вешается. Поэтому Серъезность считаю нужным повысить до major.
Скорее всего проблемы связаны
Способ воспроизведения: Окно программы сделать примерно 700x500 точек, открыть Журнал Платёжных документов, в нём любую платёжку. Нажать Печать. Появится окно просмотра документа. Закрываем его (крестиком). Оно закрывается. Но документ "Платёжное поручение" уже не закрывается крестиком. После этого возможно падение, требуется срочно закрыть программу.
Проблемы начинаются с одного из RemoveMenu: trace:menu:DrawMenuBarTemp (0x30044, 0x5a50, 0x5850ca44, 0x6360, 0x531c) trace:menu:do_debug_print_menuitem MENU_DrawMenuItem: { ID=0x7210, Sub=0x7210, fType=bit,pop, hbitmap=0x5408 } trace:menu:MENU_DrawMenuItem rect=(4,24)-(20,43) trace:menu:do_debug_print_menuitem MENU_DrawMenuItem: { ID=0xf120, fType=bit,right, hbitmap=HBMMENU_MBAR_RESTORE } trace:menu:MENU_DrawMenuItem rect=(703,24)-(719,43) trace:menu:do_debug_print_menuitem MENU_DrawMenuItem: { ID=0xf060, fType=bit,right, hbitmap=HBMMENU_MBAR_CLOSE } trace:menu:MENU_DrawMenuItem rect=(719,24)-(735,43) trace:menu:GetMenuState (menu=0x6680, id=f060, flags=0000); trace:menu:do_debug_print_menuitem item: { ID=0xf060, State=default, Text=L"&\0417\0430\043a\0440\044b\0442\044c\tAlt-F4 trace:menu:GetMenuState (menu=0x6310, id=f060, flags=0000); trace:menu:do_debug_print_menuitem item: { ID=0xf060, State=default, Text=L"&\0417\0430\043a\0440\044b\0442\044c\tAlt-F4 trace:menu:GetMenu for 0x30044 returning 0x6360 trace:menu:GetMenuItemCount (0x6360) returning 15 trace:menu:do_debug_print_menuitem GetMenuItemInfo_common: { ID=0x7210, Sub=0x7210, fType=bit,pop, hbitmap=0x5408 } trace:menu:RemoveMenu (menu=0x6360 pos=0000 flags=0400) warn:menu:MENU_GetMenu invalid menu handle=0x7490, ptr=0x40213b68, magic=743c trace:menu:RemoveMenu (menu=0x6360 pos=000d flags=0400) warn:menu:MENU_GetMenu invalid menu handle=0x7490, ptr=0x40213b68, magic=743c trace:menu:RemoveMenu (menu=0x6360 pos=000c flags=0400)
После удаления меню оно продолжает использоваться, отсюда проблемы: ш тут замешался tab. trace:menu:do_debug_print_menuitem MENU_SetItemData to : { ID=0xff02 (magic=0x554d), Text=L"&3 \0417\0430\043f\0438\0441\044c \043a\043d\ 0438\0433\0438 \043f\043e\043a\0443\043f\043e\043a - 00000060" } trace:menu:CheckMenuItem menu=0x8c90 id=ff02 flags=0008 fixme:menu:MENU_FindItem count=0, nPos=65282, menu->nItems=10 fixme:menu:MENU_FindItem count=1, nPos=65282, menu->nItems=2 fixme:menu:MENU_FindItem fallback_pos=0 fixme:menu:MENU_FindItem i=9 fixme:tab:TAB_WindowProc lav here trace:menu:DestroyMenu (0x7060) trace:menu:DestroyMenu (0x6da0)
Работает благодаря исправлению баги с минимизацией окон, но возможно какая-то проблема всё-таки осталась.
Бага осталась. Проявилась в CentOS 4.3 при разрешении 800х600. Падает редко, чаще повисает. Способ повесить: Журнал - Платёжные документы. Развернуть. Выбрать любой пункт. Печать. (Крестик для закрытия окна перестаёт реагировать на нажатия). После этого вызвать системное меню (самый левый пункт меню).
Created attachment 86 [details] Backtrace При описанном в предыдущем комментарии способе воспроизведения 1С не зависает, а ОЧЕНЬ медленно падает. Backtrace в аттаче.
Похоже, падает только в случае, когда кнопки свернуть_развернуть_закрыть не помещаются в строке с меню. Тогда кнопка "закрыть" появляется ниже двух других кнопок - это уже признак... Такой набор пунктов меню появляется в режиме печати при использовании разрешения 800х600 (см. способ воспроизведения)
В свежей сборке не падает. Но как и везде, проблемы с пропаданием меню...
Думаю этой проблемы больше нет. В любом случае она связана с порчей памяти, а скорее всего с тем, что заканчивались дескрипторы.