Bug 4682

Summary: 1С 8.1 + АТОЛ: проблема со вкладкой "Драйвер устройств ввода"
Product: WINE@Etersoft Reporter: Александр Морозов <amorozov>
Component: Окна / фокус / перерисовкаAssignee: Роман Дадьков <romand>
Status: CLOSED INVALID QA Contact:
Severity: major    
Priority: P3 CC: akv, lav, olezha, svzhu, vitperov
Version: 1.0.12   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 4684, 7929, 8023    
Bug Blocks: 10932    
Attachments: Скриншот
Скриншот при запуске через wineole

Description Александр Морозов 2009-12-17 17:02:57 MSK
Бутылка 1c81/1c81-DemoTrd-atol-2009-02-11

Запускаем 1С 8.1, заходим в базу под пользователем "Федоров (администратор)", Сервис -> Торговое оборудование -> Подключение и настройка торгового оборудования -> Сканеры штрихкода. Нажимаем кнопку "Проверка", закрываем появившееся окошко. Сервис -> Параметры... -> Драйвер устройств ввода, вкладки уползают куда-то в правый нижний угол.

wine-etersoft-1.0.12-alt1.2
wine-etersoft-sql-1.0.12-alt1
Comment 1 Александр Морозов 2009-12-17 17:07:26 MSK
Created attachment 1430 [details]
Скриншот
Comment 2 Александр Морозов 2009-12-17 19:32:03 MSK
Created attachment 1431 [details]
Скриншот при запуске через wineole

При запуске через wineole выглядит лучше, но всё же не совсем правильно
Comment 3 Илья Шпигорь 2009-12-25 12:07:07 MSK
Выложил патч.

В момент открытия диалога "Параметры", диалогу настройки драйвера присваивается корректный размер. При переходе на вкладку "Драйвер устройств ввода" происходит назначение нового меньшего размера. Скорее всего, это связано с работой функции SetWindowPos в wine. При этом не понятно на что ориентируется приложение - зачем повторно назначать диалогу неверный размер.

Решение заключается в хаке, который запрещает уменьшать окно класса TfmPropPage.

При этом есть одна особенность. Диалог настройки драйвера занимает не всю вкладку 1с-овского окна "Параметры" по высоте. Дело в том, что под windows по y этот диалог меньше.

Работает только при запуске через wineole.
Comment 4 Денис Баранов 2010-03-14 20:08:35 MSK
Принято.
WINE@Etersoft 1.0.12 eter4/eter3
Comment 5 Виталий Перов 2010-04-29 18:34:09 MSD
Откатил патч:
commit 42b27f8d53ce92954cd3ced22780e4f8169d3e56
Author: Ilya Shpigor <shpigor@etersoft.ru>
Date:   Fri Dec 25 11:28:16 2009 +0300

    user32: Hack to resize the atol driver dialog in 1c8 (eterbug #4682)

При компиляции возникает ошибка:
winpos.c: In function ‘SetWindowPos’:
winpos.c:2063: error: ‘USER_DRIVER’ has no member named ‘pIsWindowManaged’

требуется переделать патч.
Comment 6 Svetlana Zhukova 2012-01-11 16:43:40 MSK
Попыталась организовать проверку на eterhack, dragonfly в wine 2.0
Не удалось настроить торговое облорудование.Возможно,причина в баге 7929
Comment 7 Денис Баранов 2012-01-11 16:49:26 MSK
(В ответ на comment #6)
> Попыталась организовать проверку на eterhack, dragonfly в wine 2.0
> Не удалось настроить торговое облорудование.Возможно,причина в баге 7929

А вкладка то как выглядит?
Бага про отображение вкладки.
Comment 8 Svetlana Zhukova 2012-01-11 16:57:49 MSK
> А вкладка то как выглядит?
> Бага про отображение вкладки.
В 2.0 нормально.
Comment 9 Svetlana Zhukova 2012-01-11 17:09:15 MSK
(В ответ на comment #8)
> В 2.0 нормально.
Обманула.Вкладка "настройка свойств" обрезана.
Comment 10 Александр Морозов 2012-01-17 13:18:45 MSK
Если сделать обёртку для LoadTypeLibEx, вызывающую эту функцию из Win98-версии oleaut32.dll, то баг не проявляется. Таким образом, надо решать #4684.
Comment 11 Роман Дадьков 2012-07-31 20:03:05 MSK
возникла еще одна трудность. когда запускается через ww, то при нажатии кнопки "Проверка", никакого окошка не появляется. и когда открывается Сервис -> Параметры... там нет вкладки Драйвер устройств ввода.
запуская через wine такой проблемы нет. бага воспроизводится.
Comment 12 Роман Дадьков 2012-07-31 22:22:26 MSK
просто нужно, чтобы был установлен Gecko, а при запуске через ww он не устанавливался автоматически.
принудительная установка Gecko:
$ ww control appwiz.cpl install_gecko
Comment 13 Роман Дадьков 2012-08-02 22:35:25 MSK
удалось отловить окно, не удалось поправить координаты.
Comment 14 Роман Дадьков 2012-08-03 23:27:03 MSK
клиентскуя часть окна поправить удалось. PageControl нет.
нужно выяснить на всех ли драйверах сканеров проявляется эта ошибка. возможно, что проблема в том как АТОЛ создает эту вкладку.
Comment 15 Роман Дадьков 2012-08-06 17:53:05 MSK
запуск с oleaut32=n падает при нажатии кнопки "Проверка"
Comment 16 Роман Дадьков 2012-08-06 18:41:21 MSK
запуск с oleaut32.dll, взятой из windows, также точно падает при нажатии кнопки "Проверка"
Comment 17 Роман Дадьков 2012-08-06 22:07:13 MSK
вернул слегка измененный патч 
commit 42b27f8d53ce92954cd3ced22780e4f8169d3e56
Author: Ilya Shpigor <shpigor@etersoft.ru>
Date:   Fri Dec 25 11:28:16 2009 +0300

    user32: Hack to resize the atol driver dialog in 1c8 (eterbug #4682)
но он помогает перерисовывать клиентскую область, но не решает проблему с контролом.
Comment 18 Роман Дадьков 2012-08-23 13:07:09 MSK
патч
oleaut32: Record DocString field in ITypeInfoImpl structure in function ITypeLib2_Constructor_SLTG.
решает проблему со сдвигом контрола.
хак [eterhack] user32 : Hack for tab Driver Input (eterbug #4682) все-таки нужен, для перерисовки клиетской части окна.
Comment 19 Vitaly Lipatov 2014-09-11 18:49:12 MSK
Откладываем задачи, к которым не обращались более 100 дней.
Comment 20 Олег Шевченко 2024-03-20 23:02:42 MSK
Задача относится к релизу 2.1. , который больше не поддерживается.
Аннулирую.