// ******************************
// Описание :
// Параметры:
// * Параметр1 - описание параметра
//
Процедура МасштабированиеФормы(КонтекстФормы) Экспорт
ТекущаяФорма = СоздатьОбъект("РасширениеФормы");
ТекущаяФорма.УстановитьФорму(КонтекстФормы.Форма);
ПолныйТипОбъекта = ТекущаяФорма.ПолныйТипОбъекта();
сПолныйТипОбъекта = """" + СтрЗаменить(ПолныйТипОбъекта, ".", """,""") + """";
СЗПолныйТипОбъекта = СоздатьОбъект("СписокЗначений");
СЗПолныйТипОбъекта.ИзСтрокиСРазделителями(сПолныйТипОбъекта);
Если СЗПолныйТипОбъекта.ПолучитьЗначение(1) = "ВнешнийОтчет" Тогда
ПутьКФайлу = "";
ИмяФайла = "";
КонтекстФормы.РасположениеФайла(ПутьКФайлу, ИмяФайла);
Позиция = Найти(ПутьКФайлу, КаталогИБ());
Если Позиция > 0 Тогда
ПутьКФайлу = "." + Сред(ПутьКФайлу, СтрДлина(КаталогИБ()));
КонецЕсли;
ПолныйТипОбъекта = ПолныйТипОбъекта + "." + ПутьКФайлу + ИмяФайла;
СЗПолныйТипОбъекта.ДобавитьЗначение(ПутьКФайлу + ИмяФайла);
СЗПолныйТипОбъекта.ДобавитьЗначение("Форма");
КонецЕсли;
Масштаб = Число(ВосстановитьЗначение("Масштабирование_" + сПолныйТипОбъекта));
Если Масштаб = 0 Тогда
Иначе
Сервис = СоздатьОбъект("Сервис");
ШрифтФормы = Сервис.СоздатьШрифт("Tahoma", Масштаб);
Для ИндАтр = 0 По ТекущаяФорма.КоличествоАтрибутов() - 1 Цикл
ТекущаяФорма.ПолучитьАтрибут(ИндАтр).Шрифт = ШрифтФормы;
КонецЦикла;
Сервис.УдалитьШрифт(ШрифтФормы);
КонецЕсли;
КонецПроцедуры // МасштабированиеФормы()
//*****************************************************************************
Процедура ПослеОткрытия(КонтекстФормы)
МасштабированиеФормы(КонтекстФормы);
КонецПроцедуры // ПослеОткрытия()
// ******************************
Процедура глДействия(КонтекстФормы) Экспорт
ТекущаяФорма = СоздатьОбъект("РасширениеФормы");
ТекущаяФорма.УстановитьФорму(КонтекстФормы.Форма);
ПолныйТипОбъекта = ТекущаяФорма.ПолныйТипОбъекта();
сПолныйТипОбъекта = """" + СтрЗаменить(ПолныйТипОбъекта, ".", """,""") + """";
СЗПолныйТипОбъекта = СоздатьОбъект("СписокЗначений");
СЗПолныйТипОбъекта.ИзСтрокиСРазделителями(сПолныйТипОбъекта);
Если СЗПолныйТипОбъекта.ПолучитьЗначение(1) = "ВнешнийОтчет" Тогда
ПутьКФайлу = "";
ИмяФайла = "";
КонтекстФормы.РасположениеФайла(ПутьКФайлу, ИмяФайла);
Позиция = Найти(ПутьКФайлу, КаталогИБ());
Если Позиция > 0 Тогда
ПутьКФайлу = "." + Сред(ПутьКФайлу, СтрДлина(КаталогИБ()));
КонецЕсли;
ПолныйТипОбъекта = ПолныйТипОбъекта + "." + ПутьКФайлу + ИмяФайла;
СЗПолныйТипОбъекта.ДобавитьЗначение(ПутьКФайлу + ИмяФайла);
СЗПолныйТипОбъекта.ДобавитьЗначение("Форма");
КонецЕсли;
ТипОбъекта = СЗПолныйТипОбъекта.ПолучитьЗначение(1);
ВидОбъекта = СЗПолныйТипОбъекта.ПолучитьЗначение(2);
СписокДействий = СоздатьОбъект("СписокЗначений");
СписокДействий.ДобавитьЗначение("Установить масштабирование формы");
Действие = "";
Если СписокДействий.ВыбратьЗначение(Действие, , , , 1) = 0 Тогда
Возврат;
КонецЕсли;
// обработка выбора действия
Если Действие = "Установить масштабирование формы" Тогда
Масштаб = 0;
Если ВвестиЧисло(Масштаб, "Введите коэффициент масштабирования", 2, 0, 10) = 1 Тогда
СохранитьЗначение("Масштабирование_" + сПолныйТипОбъекта, Масштаб);
МасштабированиеФормы(КонтекстФормы);
КонецЕсли;
КонецЕсли;
КонецПроцедуры // глДействия()
=====================
В форме кнопка глДействия(Контекст)
Пользователь сам выбирает размер шрифта.
в процедуре ПослеОткрытия вызываем МасштабированиеФормы.
В МасштабированиеФормы читаем размер шрифта установленный пользователем для этой формы и .... ничего не получается