СоздатьШрифт - создаёт не все шрифтыРезультат метода СоздатьШрифт зависит от пользовательского шрифта по умолчанию. И в зависимости от значения параметра "Шрифт форм" может вести себя не вполне адекватно.
Если в параметрах пользователя установлен Шрифт форм =
MS Sans Serif, то метод СоздатьШрифт не создаёт шрифты
Arial, Courier, System. Размер и прочее меняется, но шрифт остаётся пользовательским, т. е. MS Sans Serif.
При этом другие шрифты метод создаёт, в том числе Arial Black, Arial Narrow, Courier New.
Если же в параметрах пользователя установить шрифт форм = MS Serif, то шрифты Arial, Courier, System создаются.
Если менять шрифты в параметрах пользователя на разные другие, то после этого одни шрифты создаются, а другие нет.
Поведение метода немного зависит от операционной системы. В Windows XP метод создаёт (вроде бы) все шрифты в заголовке Многострочной Части, но сбоит вышеуказанным способом в строках Многострочной Части и на кнопках (другие элементы форм не пробовал). В Windows 7 сбоит на всём.
Аналогично поведение шрифта и в Плане раскраски таблиц.
Пример моего кода:
Шрифт=СервисРасшФормы.СоздатьШрифт(ШрифтИмя,ШрифтРазмер, Жирность, ШрифтНаклонный, ШрифтПодчеркивание, ШрифтЗачеркивание, 0);
ФормаРасш.МногострочнаяЧасть.Шрифт=Шрифт;
ФормаРасш.кнШрифт.Шрифт=Шрифт;
Видимо, проблема связана с тем, что метод СоздатьШрифт создаёт шрифт на основании пользовательского, и часть шрифтов на основании других не создаются, а я не в курсе этой механики. Пробовал играться методом СоздатьШрифтНаОсновании - но безрезультатно.
Если кто сталкивался с проблемкой и решил - просьба рассказать как. Оно не особо значимо, но хочется идеала.
Прикрепил пример использования метода во внешней обработке.
Атрибут "Образец" меняет (или не меняет) шрифт в соответствии с выбираемым в обработке.
UpdateПроблема решена. Нужно нуль в конце убрать
Шрифт=СервисРасшФормы.СоздатьШрифт(ШрифтИмя,ШрифтРазмер, Жирность, ШрифтНаклонный, ШрифтПодчеркивание, ШрифтЗачеркивание)