Их просто нет в списке возможных шрифтов в 1с.
В 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.
Я закрываю багу, которая изначально была в отсутствии в списке шрифтов некоторых.
Будет ли в дальнейшем полностью исправлена проблема?