Тип: Стиль. Управляет стилем всего приложения, аналогично тому, как это происходит при установке стиля приложения в режиме Конфигуратор. Может быть установлено в одно из значений коллекции стилей глобального контекста или в значение стиля по умолчанию (стиль "Авто"). В обычном режиме доступно для записи до открытия главного окна приложения, для чтения доступно всегда. В управляемом режиме доступно для записи в обработчике УстановкаПараметровСеанса, для чтения доступно всегда.
Полное описание, параметры и ограничения
Глобальный контекст.ГлавныйСтиль (Global context.MainStyle)
Глобальный контекст (Global context)
ГлавныйСтиль (MainStyle)
Доступен, начиная с версии 8.0.
Использование:
Чтение и запись.
Описание:
Тип: Стиль.
Управляет стилем всего приложения, аналогично тому, как это происходит при установке стиля приложения в режиме Конфигуратор.
Может быть установлено в одно из значений коллекции стилей глобального контекста или в значение стиля по умолчанию (стиль "Авто").
В обычном режиме доступно для записи до открытия главного окна приложения, для чтения доступно всегда.
В управляемом режиме доступно для записи в обработчике УстановкаПараметровСеанса, для чтения доступно всегда.
Доступность:
Сервер, толстый клиент, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Доступно для записи до открытия главного окна приложения.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
ГлавныйСтиль: оформить свою обычную форму цветом учебного приложения
На своей новой конфигурации прочитать фактический главный стиль, применить его к собственной обычной форме и назначить собственный именованный цвет полю ввода. Проверка после изменения читает настоящие значения формы и цвета, показывает RGB и сохраненную строку.
Где и как запускать
Толстый управляемый клиент 8.5.1.1343; модуль собственной обычной формы Форма, интерфейс Такси. Не тонкий клиент и не УправляемаяФорма.
Подготовка
Только будущая новая пустая файловая учебная база на своей Windows VM, платформа 8.5.1.1343. Сейчас база не создавалась, 1С не запускалась. Не используйте рабочую конфигурацию, старую обработку или переданную извне форму: опыт меняет оформление только своей специально подготовленной формы.
В новой конфигурации задайте Имя = УчебныеСтили85, Версия = OwnMainStyle1_350d6b56-6f7a-4e4b-8847-0e39f3b94767, русский встроенный язык, Основной режим запуска = Управляемое приложение, Режим совместимости интерфейса = Такси, Использовать обычные формы в управляемом приложении = Истина, совместимость = НеИспользовать. Один свой пользователь и одно подключение, без расширений, фоновых заданий и чужих модулей. Имя и версия являются маркерами подготовки, не доказательством владения.
Если Конфигуратор скрывает Стили, Модуль обычного приложения или Использовать обычные формы, откройте Сервис → Параметры → Общие и настройте вид редактирования конфигурации для режима запуска, чтобы видеть параметры обычного приложения. В установленной справке варианты Управляемое приложение и Управляемое приложение и обычное приложение описаны как скрывающие часть таких пунктов; используйте доступный в своей установке режим редактирования для обычного приложения. Эта настройка меняет видимость редактора, а не ОсновнойРежимЗапуска самой конфигурации. Последний оставьте Управляемое приложение.
Общие → Элементы стиля: создайте ровно один собственный элемент УчебныйФон85 вида Цвет. Общие → Стили: создайте ровно два стиля УчебныйОсновной85 и УчебныйНейтральный85. В свойствах конфигурации явно назначьте Основной стиль = УчебныйОсновной85. Наличие двух объектов само по себе не выбирает основной стиль.
Для каждого стиля выберите Действия → Изменить. В редакторе после системных элементов есть пользовательские. У УчебныйОсновной85 задайте своему УчебныйФон85 красный 240, зеленый 248, синий 255; у УчебныйНейтральный85 — 255,255,255. Справка установленной версии разрешает редактор стилей для интерфейса Такси или Версия 8.5. Этот урок подготовлен для Такси; настройка шрифтов современного стиля не требуется.
Общие → Общие формы: создайте ровно одну обычную форму УчебноеОформление85. Не управляемую форму. В ее свойствах вручную назначьте Стиль = УчебныйНейтральный85. На вкладке Реквизиты создайте только Текст85 / Строка длиной 80 и Остановка85 / Булево. Начальные значения в редакторе не задаются. На своей новой открытой форме фактическая Остановка85 должна быть Ложь: код это проверяет и не сбрасывает состояние программно. Текст85 заполняет пользователь через поле ввода. В этой форме больше нет реквизитов и обработчиков.
На вкладке Диалог через Форма → Вставить элемент управления создайте поле ввода Образец85, связанное с Текст85. Явно задайте его ЦветФонаПоля абсолютным белым цветом 255,255,255, не значением Авто или элементом стиля. Добавьте обычную кнопку Применить85. Остановка85 не размещайте в диалоге. Другие формы и элементы этого урока не меняются.
В свойствах кнопки свяжите штатное событие Нажатие с Применить85. Сохраните нулевое число параметров: это обычная Кнопка, не управляемая команда с параметром Команда. Основной код этой карточки вставьте целиком во вкладку Модуль собственной обычной формы.
Конфигурация → Открыть модуль управляемого приложения: вставьте целиком отдельный блок УправляемоеПриложение ниже. ПриНачалеРаботыСистемы — настоящий обработчик без параметров; он получает свою именованную общую форму, проверяет фактический тип Форма и только затем открывает ее. Не вызывайте обработчик вручную и не подменяйте фабрику Новым Форма.
В будущем проверьте свою конфигурацию, обновите только эту учебную базу и запустите толстый клиент в управляемом режиме. Должна открыться ваша обычная форма. В поле введите ровно Мой учебный стиль, проверьте белый исходный фон, затем один раз нажмите Применить85.
ГлавныйСтиль код только читает. Он не объявляется свойством только для чтения: запись разрешена в установленные справкой моменты, а не произвольно после открытия окна. Здесь не нужны присваивание ГлавныйСтиль, обработчик УстановкаПараметровСеанса или переключение оформления рабочего приложения.
Проверка после кнопки должна показать совпадение стиля собственной формы со стилем приложения, фактические 240/248/255 и исходную строку. При любой ошибке текущая форма остановлена; результат не считать успешным и не повторять команду в этом экземпляре. Ее вид может быть изменен частично: автоматического восстановления после ошибки нет.
Функция ПроверитьЦвет85(ЗначениеЦвета, Красный, Зеленый, Синий)
Если ТипЗнч(ЗначениеЦвета) <> Тип("Цвет") Тогда
ВызватьИсключение "Ожидалось настоящее значение Цвет";
КонецЕсли;
Абсолютный = ЗначениеЦвета.ПолучитьАбсолютный();
Если ТипЗнч(Абсолютный) <> Тип("Цвет") Тогда
ВызватьИсключение "Не получен абсолютный цвет";
КонецЕсли;
Если ТипЗнч(Абсолютный.Красный) <> Тип("Число") Или ТипЗнч(Абсолютный.Зеленый) <> Тип("Число")
Или ТипЗнч(Абсолютный.Синий) <> Тип("Число") Тогда
ВызватьИсключение "Не числовые составляющие цвета";
КонецЕсли;
Если Абсолютный.Красный <> Красный Или Абсолютный.Зеленый <> Зеленый Или Абсолютный.Синий <> Синий Тогда
ВызватьИсключение "Фактический цвет не соответствует своей подготовке";
КонецЕсли;
Возврат Абсолютный;
КонецФункции
Процедура Применить85()
#Если ТолстыйКлиентУправляемоеПриложение Тогда
Попытка
Если ТипЗнч(Остановка85) <> Тип("Булево") Или Остановка85 Тогда
ВызватьИсключение "Эта учебная форма остановлена";
КонецЕсли;
Система = Новый СистемнаяИнформация;
Если ТипЗнч(Система) <> Тип("СистемнаяИнформация") Тогда
ВызватьИсключение "Нужна платформа 8.5.1.1343";
КонецЕсли;
Если ТипЗнч(Метаданные.ИспользоватьОбычныеФормыВУправляемомПриложении) <> Тип("Булево")
Или Метаданные.ИспользоватьОбычныеФормыВУправляемомПриложении <> Истина
Или Метаданные.ОбщиеФормы.Количество() <> 1 Или Метаданные.ОбщиеФормы.Найти("УчебноеОформление85") = Неопределено
Или Метаданные.Стили.Количество() <> 2 Или Метаданные.ЭлементыСтиля.Количество() <> 1 Тогда
ВызватьИсключение "Не точная подготовка своих формы и стилей";
КонецЕсли;
ОписаниеОсновного = Метаданные.Стили.Найти("УчебныйОсновной85");
ОписаниеНейтрального = Метаданные.Стили.Найти("УчебныйНейтральный85");
ОписаниеЦвета = Метаданные.ЭлементыСтиля.Найти("УчебныйФон85");
Если ОписаниеОсновного = Неопределено Или ОписаниеНейтрального = Неопределено Или ОписаниеЦвета = Неопределено Тогда
ВызватьИсключение "Не найдены собственные описания";
КонецЕсли;
Если Метаданные.ОсновнойСтиль <> ОписаниеОсновного
Или ОписаниеЦвета.Вид <> Метаданные.СвойстваОбъектов.ВидЭлементаСтиля.Цвет Тогда
ВызватьИсключение "Не свой основной стиль или вид элемента";
КонецЕсли;
Если ТипЗнч(ЭтаФорма) <> Тип("Форма") Или ТипЗнч(ЭлементыФормы.Образец85) <> Тип("ПолеВвода")
Или ТипЗнч(ЭлементыФормы.Применить85) <> Тип("Кнопка") Тогда
ВызватьИсключение "Нужны свои обычная форма, поле и кнопка";
КонецЕсли;
Если ТипЗнч(Текст85) <> Тип("Строка") Или Текст85 <> "Мой учебный стиль" Тогда
ВызватьИсключение "Введите Мой учебный стиль в свое поле";
КонецЕсли;
ИсходныйТекст = Текст85;
ОсновнойСтиль = ГлавныйСтиль;
НейтральныйСтиль = БиблиотекаСтилей.УчебныйНейтральный85;
Если ТипЗнч(ОсновнойСтиль) <> Тип("Стиль") Или ТипЗнч(НейтральныйСтиль) <> Тип("Стиль")
Или ТипЗнч(БиблиотекаСтилей.УчебныйОсновной85) <> Тип("Стиль")
Или ОсновнойСтиль <> БиблиотекаСтилей.УчебныйОсновной85 Или ОсновнойСтиль = НейтральныйСтиль Тогда
ВызватьИсключение "Не два различающихся собственных стиля";
КонецЕсли;
Если ТипЗнч(ЭтаФорма.Стиль) <> Тип("Стиль") Или ЭтаФорма.Стиль <> НейтральныйСтиль Тогда
ВызватьИсключение "Форма должна начинаться со своего нейтрального стиля";
КонецЕсли;
ИсходныйЦвет = ПроверитьЦвет85(ЭлементыФормы.Образец85.ЦветФонаПоля, 255, 255, 255);
ЦветСтиля = ЦветаСтиля.УчебныйФон85;
Если ТипЗнч(ЦветСтиля) <> Тип("Цвет") Тогда
ВызватьИсключение "Не свой именованный цвет";
КонецЕсли;
Остановка85 = Истина;
ЭтаФорма.Стиль = ОсновнойСтиль;
Если ТипЗнч(ЭтаФорма.Стиль) <> Тип("Стиль") Или ЭтаФорма.Стиль <> ОсновнойСтиль Тогда
ВызватьИсключение "Не прочитан установленный стиль своей формы";
КонецЕсли;
ЭлементыФормы.Образец85.ЦветФонаПоля = ЦветСтиля;
ПрочитанныйЦвет = ЭлементыФормы.Образец85.ЦветФонаПоля;
АбсолютныйЦвет = ПроверитьЦвет85(ПрочитанныйЦвет, 240, 248, 255);
Если ТипЗнч(Текст85) <> Тип("Строка") Или Текст85 <> ИсходныйТекст Или ГлавныйСтиль <> ОсновнойСтиль Тогда
ВызватьИсключение "Изменились собственная строка или главный стиль";
КонецЕсли;
Сообщить("Стиль своей формы совпадает со стилем приложения: " + Строка(ЭтаФорма.Стиль = ГлавныйСтиль));
Сообщить("Красный до оформления: " + Строка(ИсходныйЦвет.Красный) + "; после: " + Строка(АбсолютныйЦвет.Красный));
Сообщить("Красный: " + Строка(АбсолютныйЦвет.Красный) + "; зеленый: " + Строка(АбсолютныйЦвет.Зеленый) + "; синий: " + Строка(АбсолютныйЦвет.Синий));
Сообщить("Строка сохранена: " + Текст85);
Исключение
Остановка85 = Истина;
ВызватьИсключение;
КонецПопытки;
#Иначе
ВызватьИсключение "Нужна собственная обычная форма в толстом управляемом клиенте";
#КонецЕсли
КонецПроцедуры
Штатно открыть собственную обычную форму в толстом управляемом клиенте
Конфигурация → Открыть модуль управляемого приложения
Толстый управляемый клиент
Процедура ПриНачалеРаботыСистемы()
#Если ТолстыйКлиентУправляемоеПриложение Тогда
Система = Новый СистемнаяИнформация;
Если ТипЗнч(Система) <> Тип("СистемнаяИнформация") Или Метаданные.ИспользоватьОбычныеФормыВУправляемомПриложении <> Истина Тогда
ВызватьИсключение "Не подготовлено свое толстое управляемое приложение";
КонецЕсли;
Форма = ПолучитьОбщуюФорму("УчебноеОформление85");
Если ТипЗнч(Форма) <> Тип("Форма") Тогда
ВызватьИсключение "Получена не своя обычная форма";
КонецЕсли;
Форма.Открыть();
#Иначе
ВызватьИсключение "Запустите толстый клиент своей новой учебной базы в управляемом режиме";
#КонецЕсли
КонецПроцедуры
Разбор по шагам
Подготовьте свою пустую базу, два явно названных стиля, собственный цвет и обычную общую форму. Видимость параметров редактора и режим исполнения приложения — разные настройки.
Запустите толстый управляемый клиент: настоящее событие открытия приложения получает собственную форму штатной фабрикой. Проверьте исходный белый фон и введите учебную строку.
Нажмите настоящую кнопку. До изменений проверяются версия, маркеры, собственные описания, назначенный основной стиль, виды формы/поля/кнопки, строка, два разных библиотечных значения и исходный нейтральный стиль формы.
Считанный ГлавныйСтиль становится стилем только собственной формы. Прочитайте его обратно; затем примените к собственному полю настоящий ЦветаСтиля.УчебныйФон85.
Нативный ПолучитьАбсолютный превращает прочитанное значение цвета в абсолютный цвет. Проверяются числовые компоненты 240/248/255, неизменность главного стиля и собственной строки; затем выводится фактический протокол.
Как проверить результат
До кнопки свой Образец85 имеет белый фон 255/255/255; форма вручную назначена УчебныйНейтральный85, а конфигурация — УчебныйОсновной85. Если подготовка другая, проверки запрещают изменения.
После кнопки прочитанное ЭтаФорма.Стиль равно фактически удержанному ГлавныйСтиль. Код не присваивает глобальное свойство и не получает стиль через всегда Неопределено у метаданных.Стиль.
После назначения цвета строки протокола показывают Красный: 240; зеленый: 248; синий: 255. Это результат чтения абсолютного цвета собственного поля, а не заранее приготовленная строка.
В поле остается Мой учебный стиль; та же строка выводится в протоколе. Ручное наблюдение: белый фон поля сменился светло-голубым. Статическая проверка не доказывает физические пиксели, масштаб или оформление других окон.
Повторное нажатие в текущем экземпляре запрещено. Ошибка типа, неправильные RGB, чужая конфигурация или управляемая форма вместо обычной — остановка, не успешный учебный результат. Сейчас работа в 1С не проверялась.
Ожидаемый результат
Ожидаемый будущий результат: только собственная обычная форма использует фактический стиль учебного приложения, собственное поле получает именованный цвет с проверенными 240/248/255, а введенная строка остается прежней. Настройки главного стиля и данные базы кодом не меняются.
На что обратить внимание
Стиль — отдельное значение. У него нет свойств Цвет или Шрифт. Именованные значения получают из БиблиотекаСтилей; ОбъектМетаданных: Стиль.Стиль по справке всегда Неопределено.
ГлавныйСтиль имеет доступ Чтение и запись с ограничением момента записи. Для обычного режима запись до открытия главного окна; для управляемого — в УстановкаПараметровСеанса. Этот пример исключительно читает свойство.
Форма.Стиль и ПолеВвода.ЦветФонаПоля относятся к обычной форме толстого клиента. УправляемаяФорма, Элементы и ЦветФона другого типа не подменяют эти контракты.
ПолучитьАбсолютный вызывается без аргументов и возвращает Цвет. Он не принимает выбранный Стиль и не обещает разрешение произвольного конфликта глобального и локального стилей. На положительном пути фактические значения стиля приложения и собственной формы совпали; полученный цвет проверяется.
Редактор современного стиля позволяет настраивать собственные элементы вида Цвет. Шрифты и изменение глобальных настроек не нужны этой задаче и не получают дополнительного покрытия.
Маркеры и проверки не доказывают владение. Стенд отдельно создает его владелец. После ошибки допускается частично измененное оформление собственной формы, без восстановления, повторов, записи данных, изменения метаданных или сетевых действий.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.