Summary: | Невозможно вернуть шрифты Arial и MS Sans Serif при их замене в 1с77 | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Andrey Vusik <night> |
Component: | Обработка текста и локали; Буфер | Assignee: | Илья Шпигорь <shpigor> |
Status: | CLOSED FIXED | QA Contact: | Vitaly Lipatov <lav> |
Severity: | critical | ||
Priority: | P1 | CC: | amorozov, baraka, lav, neo-matrix.inc |
Version: | 1.0.12 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | 5226 | |
Дата напоминания: | |||
Bug Depends on: | 4259 | ||
Bug Blocks: | 4284, 4906 | ||
Attachments: |
нормальные шрифты
не нормальные шрифты Изменения в реестре |
Description
Andrey Vusik
2009-03-18 21:25:35 MSK
В 1.0.12 проблема осталась. Ещё одно описание проблемы:
> Во многих документах 1С 7.7 не отображается шрифт ms sans serif и выбрать его нет возможности....
>wine-etersoft-1.0.12-eter1.3suse.i586.rpm
>wine-etersoft-gl-1.0.12-eter1.3suse.i586.rpm
>wine-etersoft-network-1.0.12-eter1suse.i586.rpm
Тестировали в 4906 изменения после обновления. Возможно, при обновлении не проявляется? Хотя мне кажется, проявляется всегда. Нужно посмотреть, что случилось. Протестировал ошибку. Создал новую бутылку с текущей версией wine. Установил туда 1с7. Установил конфигурацию - Бухгалтерия предприятия. Сформировал отчет. Открыл Сервис -> Параметры -> вкладка Интерфейс -> Табличные документы. В списке выбора шрифтов есть Arial, но там нет MS Sans Serif. В этом списке вообще нет не TrueType шрифтов. > В списке выбора шрифтов есть Arial, но там нет
> MS Sans Serif. В этом списке вообще нет не TrueType
> шрифтов.
В Windows шрифт MS Sans Serif есть.
Выложил патч. Проблема связана с функцией ChooseFont, которая создает диалог выбора шрифта. В результате ее работы вызывается AddFontFamily, где проверяется флаг CF_ANSIONLY (он устанавливается самой 1С) структуры CHOOSEFONT. Эта структура - входной параметр для ChooseFont. В MSDN сказано, что этот флаг устарел и вместо него следует использовать CF_SELECTSCRIPT: CF_ANSIONLY This flag is obsolete. To limit font selections to all scripts except those that use the OEM or Symbol character sets, use CF_SCRIPTSONLY. To get the original CF_ANSIONLY behavior, use CF_SELECTSCRIPT and specify ANSI_CHARSET in the lfCharSet member of the LOGFONT structure pointed to by lpLogFont. Написал тест и проверил на win2k3 - флаг CF_ANSIONLY там действительно не обрабатывается. Но если указать CF_SELECTSCRIPT и ANSI_CHARSET в поле lfCharSet структуры LOGFONT, то в диалоге выбора будут отображаться только ANSI шрифты (т.е. возникнет ситуация, описанная в баге). Внес необходимые изменения в функцию AddFontFamily. Теперь вместо флага CF_ANSIONLY она обрабатывает CF_SELECTSCRIPT. (In reply to comment #7) > Выложил патч. > > Проблема связана с функцией ChooseFont, которая > создает диалог выбора шрифта. В результате > ее работы вызывается AddFontFamily, где > проверяется флаг CF_ANSIONLY (он > устанавливается самой 1С) структуры CHOOSEFONT. > Эта структура - входной параметр для ChooseFont. > > В MSDN сказано, что этот флаг устарел и вместо > него следует использовать CF_SELECTSCRIPT: > > CF_ANSIONLY > This flag is obsolete. To limit font selections to all scripts except those > that use the OEM or Symbol character sets, use CF_SCRIPTSONLY. To get the > original CF_ANSIONLY behavior, use CF_SELECTSCRIPT and specify ANSI_CHARSET in > the lfCharSet member of the LOGFONT structure pointed to by lpLogFont. > > Написал тест и проверил на win2k3 - флаг CF_ANSIONLY > там действительно не обрабатывается. Но > если указать CF_SELECTSCRIPT и ANSI_CHARSET в поле lfCharSet > структуры LOGFONT, то в диалоге выбора будут > отображаться только ANSI шрифты (т.е. > возникнет ситуация, описанная в баге). > > Внес необходимые изменения в функцию > AddFontFamily. Теперь вместо флага CF_ANSIONLY она > обрабатывает CF_SELECTSCRIPT. > когда и где можно взять патч? > когда и где можно взять патч?
На нашем сайте, на странице продукта должна быть доступна сборка 1.0.12-eter3/1. В ней этот патч приложен.
(In reply to comment #9) > > когда и где можно взять патч? > > На нашем сайте, на странице продукта должна > быть доступна сборка 1.0.12-eter3/1. В ней этот > патч приложен. > Извините, но я его не вижу. Можете ссылку на него дать? (In reply to comment #10) > (In reply to comment #9) > > > когда и где можно взять патч? > > > > На нашем сайте, на странице продукта должна > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > патч приложен. > > > > Извините, но я его не вижу. Можете ссылку на > него дать? Патч видеть не нужно, нужно просто поставить пакет wine-etersoft-1.0.12-eter3 (In reply to comment #9) > > когда и где можно взять патч? > > На нашем сайте, на странице продукта должна > быть доступна сборка 1.0.12-eter3/1. В ней этот > патч приложен. > Извините, но я его не вижу. Можете ссылку на него дать?(In reply to comment #11) > (In reply to comment #10) > > (In reply to comment #9) > > > > когда и где можно взять патч? > > > > > > На нашем сайте, на странице продукта должна > > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > > патч приложен. > > > > > > > Извините, но я его не вижу. Можете ссылку на > > него дать? > Патч видеть не нужно, нужно просто > поставить пакет wine-etersoft-1.0.12-eter3 > скажите, а пакет fonts-ttf-ms ставить обязательно? (In reply to comment #9) > > когда и где можно взять патч? > > На нашем сайте, на странице продукта должна > быть доступна сборка 1.0.12-eter3/1. В ней этот > патч приложен. > Извините, но я его не вижу. Можете ссылку на него дать?(In reply to comment #11) > (In reply to comment #10) > > (In reply to comment #9) > > > > когда и где можно взять патч? > > > > > > На нашем сайте, на странице продукта должна > > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > > патч приложен. > > > > > > > Извините, но я его не вижу. Можете ссылку на > > него дать? > Патч видеть не нужно, нужно просто > поставить пакет wine-etersoft-1.0.12-eter3 > скажите, а пакет fonts-ttf-ms ставить обязательно?(In reply to comment #12) > (In reply to comment #9) > > > когда и где можно взять патч? > > > > На нашем сайте, на странице продукта должна > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > патч приложен. > > > > Извините, но я его не вижу. Можете ссылку на > него дать?(In reply to comment #11) > > (In reply to comment #10) > > > (In reply to comment #9) > > > > > когда и где можно взять патч? > > > > > > > > На нашем сайте, на странице продукта должна > > > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > > > патч приложен. > > > > > > > > > > Извините, но я его не вижу. Можете ссылку на > > > него дать? > > Патч видеть не нужно, нужно просто > > поставить пакет wine-etersoft-1.0.12-eter3 > > > > скажите, а пакет fonts-ttf-ms ставить > обязательно? > Значит сейчас мы имеем следующую картину: шрифт действительно видится, но он все-равно не такой какой должен быть. на старой версии он нормальный не скачут регистры(например буква А или Б или вообще любая может по середине слова быть большой) или например слова не пишутся слитно и где надо выделяет жирным или наоборот если не надо не выделяет. Я считаю что проблема решена на половину! поставьте на openSuSE 11.1 верси. 1.0.9 и посмотрите шрифты, потом поставьте на другую такую же систему верси. 1.0.12 и посмотрите. разницу не заметить просто нельзя! исправьте пожалуйста. (In reply to comment #9) > > когда и где можно взять патч? > > На нашем сайте, на странице продукта должна > быть доступна сборка 1.0.12-eter3/1. В ней этот > патч приложен. > Извините, но я его не вижу. Можете ссылку на него дать?(In reply to comment #11) > (In reply to comment #10) > > (In reply to comment #9) > > > > когда и где можно взять патч? > > > > > > На нашем сайте, на странице продукта должна > > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > > патч приложен. > > > > > > > Извините, но я его не вижу. Можете ссылку на > > него дать? > Патч видеть не нужно, нужно просто > поставить пакет wine-etersoft-1.0.12-eter3 > скажите, а пакет fonts-ttf-ms ставить обязательно?(In reply to comment #12) > (In reply to comment #9) > > > когда и где можно взять патч? > > > > На нашем сайте, на странице продукта должна > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > патч приложен. > > > > Извините, но я его не вижу. Можете ссылку на > него дать?(In reply to comment #11) > > (In reply to comment #10) > > > (In reply to comment #9) > > > > > когда и где можно взять патч? > > > > > > > > На нашем сайте, на странице продукта должна > > > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > > > патч приложен. > > > > > > > > > > Извините, но я его не вижу. Можете ссылку на > > > него дать? > > Патч видеть не нужно, нужно просто > > поставить пакет wine-etersoft-1.0.12-eter3 > > > > скажите, а пакет fonts-ttf-ms ставить > обязательно? > Значит сейчас мы имеем следующую картину: шрифт действительно видится, но он все-равно не такой какой должен быть. на старой версии он нормальный не скачут регистры(например буква А или Б или вообще любая может по середине слова быть большой) или например слова не пишутся слитно и где надо выделяет жирным или наоборот если не надо не выделяет. Я считаю что проблема решена на половину! поставьте на openSuSE 11.1 верси. 1.0.9 и посмотрите шрифты, потом поставьте на другую такую же систему верси. 1.0.12 и посмотрите. разницу не заметить просто нельзя! исправьте пожалуйста. (In reply to comment #13) > (In reply to comment #9) > > > когда и где можно взять патч? > > > > На нашем сайте, на странице продукта должна > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > патч приложен. > > > > Извините, но я его не вижу. Можете ссылку на > него дать?(In reply to comment #11) > > (In reply to comment #10) > > > (In reply to comment #9) > > > > > когда и где можно взять патч? > > > > > > > > На нашем сайте, на странице продукта должна > > > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > > > патч приложен. > > > > > > > > > > Извините, но я его не вижу. Можете ссылку на > > > него дать? > > Патч видеть не нужно, нужно просто > > поставить пакет wine-etersoft-1.0.12-eter3 > > > > скажите, а пакет fonts-ttf-ms ставить > обязательно?(In reply to comment #12) > > (In reply to comment #9) > > > > когда и где можно взять патч? > > > > > > На нашем сайте, на странице продукта должна > > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > > патч приложен. > > > > > > > Извините, но я его не вижу. Можете ссылку на > > него дать?(In reply to comment #11) > > > (In reply to comment #10) > > > > (In reply to comment #9) > > > > > > когда и где можно взять патч? > > > > > > > > > > На нашем сайте, на странице продукта должна > > > > > быть доступна сборка 1.0.12-eter3/1. В ней этот > > > > > патч приложен. > > > > > > > > > > > > > Извините, но я его не вижу. Можете ссылку на > > > > него дать? > > > Патч видеть не нужно, нужно просто > > > поставить пакет wine-etersoft-1.0.12-eter3 > > > > > > > скажите, а пакет fonts-ttf-ms ставить > > обязательно? > > > Значит сейчас мы имеем следующую картину: > шрифт действительно видится, но он > все-равно не такой какой должен быть. на > старой версии он нормальный не скачут > регистры(например буква А или Б или вообще > любая может по середине слова быть большой) > или например слова не пишутся слитно и где > надо выделяет жирным или наоборот если не > надо не выделяет. Я считаю что проблема > решена на половину! поставьте на openSuSE 11.1 > верси. 1.0.9 и посмотрите шрифты, потом > поставьте на другую такую же систему верси. > 1.0.12 и посмотрите. разницу не заметить > просто нельзя! исправьте пожалуйста. > > Значит сейчас мы имеем следующую картину:
> шрифт действительно видится, но он
> все-равно не такой какой должен быть.
Правильно Вас понял, речь идет о шрифте MS Sans Serif? Или об Arial?
(In reply to comment #15) > > Значит сейчас мы имеем следующую картину: > > шрифт действительно видится, но он > > все-равно не такой какой должен быть. > > Правильно Вас понял, речь идет о шрифте MS Sans > Serif? Или об Arial? > У нас в настройках 1с стоит MS Sans Serif, но отображается не так как на другом сервере, с версие 1.0.9 Created attachment 1540 [details]
нормальные шрифты
нормальные шрифты
Created attachment 1541 [details]
не нормальные шрифты
не нормальные шрифты
Created attachment 1542 [details]
Изменения в реестре
Временное решение.
Если откатиться к использованию растрового шрифта MS Sans Serif (sserifer.fon) то его нельзя будет делать жирным и курсивом. Более того диапазон размеров будет ограничен - только 8, 10 ,12 px. Сейчас он замещается на векторный Microsoft Sans Serif (см. багу 4259). Можно замещать его на Tahoma или Arial. Дело в том, что этот Microsoft Sans Serif не доработан и был введен для решения ошибки 2168. Чтобы не сломать шрифт в Самотуре надо сделать динамическую подмену шрифта. Т.е. если приложение хочет MS Sans Serif жирный или наклонный - подменять его на Tahoma. Если нет - использовать растровый sserifer.fon. Хорошо бы, чтобы это работало для всех растровых шрифтов. > Хорошо бы, чтобы это работало для всех
> растровых шрифтов.
>
Было бы очень хорошо! Когда можно ожидать официальное решение проблемы(новую сборку)?
Проблема в том, как наверняка определить, что шрифт растровый. Проверка поля lfHeight структуры LOGFONT, передаваемой в CreateFontIndirect не помогает. В данном случае 1с пытается создать шрифт MS Sans Serif с отрицательным размером. Самотур поступает также. Т.е. в обоих слуаях будет происходить замещение на Tahom'у. Тестировал поведение CreateFontIndirect в windows. Если из возвращаемого функцией HFONT'а получить LOGFONT с помощью GetObject - он будет точно таким же, как и переданный в CreateFontIndirect. Т.е. отрицательный lfHeight сохранится, lfWeight и lfItalic тоже. Предлагаю в качестве временного решения остановится на проверке lfPitchAndFamily. С ней эта бага решается и 4259 не ломается. Кстати хотел напомнить, что данная первый раз была замечена в версии 1.0.10 Илья, ты перевесил багу, а резюме не написал. (In reply to comment #26) > Кстати хотел напомнить, что данная первый > раз была замечена в версии 1.0.10 Да, это очень плохо... > Илья, ты перевесил багу, а резюме не
> написал.
Для корректного решения проблемы надо написать тесты и разобраться как организован механизм подстановки шрифтов в windows.
Есть временное решение в виде патча для реестра, но мы не можем внести эти изменения в закрытую часть, т.к. сломается Самотур (бага 4259).
В 1.0.12-eter3.1/2 MS Sans Serif в списке есть. (In reply to comment #30) > В 1.0.12-eter3.1/2 MS Sans Serif в списке есть. > Тоесть проблему решили и можно не пользоваться патчиком? > Тоесть проблему решили и можно не
> пользоваться патчиком?
>
Нет, речь идет только о том, что MS Sans Serif есть в списке. Пока заменяется на Tahoma.
Я закрываю багу, которая изначально была в отсутствии в списке шрифтов некоторых. Будет ли в дальнейшем полностью исправлена проблема? |