Расширение поля формы для поля флажка.ЦветТекста

Свойства · TextColor

Тип: Цвет. Определяет цвет текста.

Полное описание, параметры и ограничения

Расширение поля формы для поля флажка.ЦветТекста (Form field extension for a check box field.TextColor)

Расширение поля формы для поля флажка (Form field extension for a check box field)

ЦветТекста (TextColor)

Не применяется в интерфейсе «Версия 8.5»

Доступен, начиная с версии 8.3.2.

Использование:
Чтение и запись.
Описание:
Тип: Цвет.
Определяет цвет текста.
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
Изменение свойства на клиенте требует обращения к серверу.

Примечание:
Используется при виде флажка Тумблер.
Использование в версии:

Доступен, начиная с версии 8.3.2.

Использование в интерфейсе:

Не применяется в интерфейсе «Версия 8.5»

Методическая информация

Практические примеры

Выбор доставки: булев тумблер и отдельный трёхпозиционный флажок

На своей общей форме выбираем Самовывоз/Доставка, меняем оформление без изменения данных и наблюдаем отдельный числовой флажок.

Где и как запускать

Полный модуль своей управляемой общей формы УчебныеЭлементы85 → Общие формы → Уч85Флажки. Серверные и клиентские процедуры вместе; не выполнялся.

Подготовка

  1. Общая подготовка семейства: новая отдельная файловая база 8.5.1.1343, конфигурация УчебныеЭлементы85, русский встроенный язык, совместимость Не использовать, управляемое приложение и интерфейс Такси. Windows, тонкий или толстый управляемый клиент. Нет расширений, подписок и фоновых обработчиков. Здесь база не создавалась и код не запускался.

  2. Общие → Общие формы → управляемая форма Уч85Флажки. Реквизиты: НужнаДоставка Булево; СостояниеСогласования Число(1,0), знак Любой; ОписаниеРезультата Строка(300). Не создавайте справочники, документы и регистры. АвтоматическоеСохранениеДанныхВНастройках=НеИспользовать.

  3. Поле Доставка: Вид=ПолеФлажка, ПутьКДанным=НужнаДоставка. Отдельное поле Согласование: Вид=ПолеФлажка, ПутьКДанным=СостояниеСогласования. Оба поля вне таблиц. Поле Результат связано с ОписаниеРезультата и ТолькоПросмотр=Да.

  4. Создайте команды формы Картинки, Текст, Сбросить и кнопки с этими командами; назначьте одноимённые действия. ПриИзменении поля Доставка → ДоставкаПриИзменении; поля Согласование → СогласованиеПриИзменении. ПриСозданииНаСервере формы → одноимённая процедура.

  5. Основной блок вставляется как полный модуль общей формы, не внутрь обработчика. Дополнительный короткий блок — полный модуль общей команды ОткрытьУч85Флажки без параметра. Добавьте её в интерфейс собственной учебной подсистемы и разрешите форму/команду в своей роли.

  6. F7, обновление только нового стенда, запуск своей общей команды. Не изменяйте рабочую конфигурацию. Серверные настройки здесь меняют данные/элементы текущей общей формы, не пишут базу и не меняют глобальный стиль пользователя.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ПроверитьСвойСтенд();
    НастроитьСвоиФлажки();
КонецПроцедуры

&НаСервере
Процедура ПроверитьСвойСтенд()
    Если Метаданные.РежимСовместимости <> Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда
        ВызватьИсключение "Откройте собственную новую учебную базу нужной версии";
    КонецЕсли;
    Если ТекущийВариантИнтерфейсаКлиентскогоПриложения() <> ВариантИнтерфейсаКлиентскогоПриложения.Такси Тогда
        ВызватьИсключение "Этот опыт подготовлен для управляемого desktop-интерфейса Такси";
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура НастроитьСвоиФлажки()
    ПроверитьСвойСтенд();
    НужнаДоставка = Ложь;
    СостояниеСогласования = 0;
    ПолеДоставки = Элементы.Доставка;
    ПолеДоставки.ВидФлажка = ВидФлажка.Тумблер;
    ПолеДоставки.ТриСостояния = Ложь;
    ПолеДоставки.ОтображениеТумблера = ОтображениеТумблера.Текст;
    ПолеДоставки.ФорматРедактирования = "БЛ=Самовывоз;БИ=Доставка";
    ПолеДоставки.ОдинаковаяШиринаЭлементов = Истина;
    ПолеДоставки.ШиринаЭлемента = 14;
    ПолеДоставки.ВысотаЭлемента = 1;
    ПолеДоставки.ВысотаЗаголовкаЭлемента = 1;
    ПолеДоставки.РастягиватьПоГоризонтали = Ложь;
    ПолеДоставки.ЦветРамки = Новый Цвет(60, 90, 120);
    ПолеДоставки.ЦветТекста = Новый Цвет(20, 40, 60);
    ПолеДоставки.ЦветФона = Новый Цвет(235, 243, 250);
    ПолеДоставки.Шрифт = Новый Шрифт("Arial", 11, Истина);
    Элементы.Согласование.ВидФлажка = ВидФлажка.Флажок;
    Элементы.Согласование.ТриСостояния = Истина;
    Если ПолеДоставки.ВидФлажка <> ВидФлажка.Тумблер Или ПолеДоставки.ТриСостояния
        Или ПолеДоставки.ОтображениеТумблера <> ОтображениеТумблера.Текст
        Или ПолеДоставки.ФорматРедактирования <> "БЛ=Самовывоз;БИ=Доставка"
        Или Не ПолеДоставки.ОдинаковаяШиринаЭлементов Или ПолеДоставки.РастягиватьПоГоризонтали
        Или Не Элементы.Согласование.ТриСостояния Тогда
        ВызватьИсключение "Не подтвердились свои два режима флажков";
    КонецЕсли;
    ОписаниеРезультата = ПредставлениеСвоегоСостояния(НужнаДоставка, СостояниеСогласования);
КонецПроцедуры

&НаКлиенте
Процедура ДоставкаПриИзменении(Элемент)
    ПоказатьСвоеСостояние();
КонецПроцедуры

&НаКлиенте
Процедура СогласованиеПриИзменении(Элемент)
    ПоказатьСвоеСостояние();
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Функция ПредставлениеСвоегоСостояния(Знач Доставка, Знач Согласование)
    Если ТипЗнч(Доставка) <> Тип("Булево") Или ТипЗнч(Согласование) <> Тип("Число") Тогда
        ВызватьИсключение "Доставка должна быть Булево, трёхпозиционный флажок — Число";
    КонецЕсли;
    Возврат СтрШаблон("%1; согласование: числовое значение %2",
        Формат(Доставка, "БЛ=Самовывоз;БИ=Доставка"), Строка(Согласование));
КонецФункции

&НаКлиенте
Процедура ПоказатьСвоеСостояние()
    ОписаниеРезультата = ПредставлениеСвоегоСостояния(НужнаДоставка, СостояниеСогласования);
КонецПроцедуры

&НаКлиенте
Процедура Картинки(Команда)
    УстановитьСвоеОтображениеНаСервере(Истина);
КонецПроцедуры

&НаКлиенте
Процедура Текст(Команда)
    УстановитьСвоеОтображениеНаСервере(Ложь);
КонецПроцедуры

&НаСервере
Процедура УстановитьСвоеОтображениеНаСервере(ПоказыватьКартинки)
    ПроверитьСвойСтенд();
    СтараяДоставка = НужнаДоставка;
    СтароеСогласование = СостояниеСогласования;
    Поле = Элементы.Доставка;
    Если ПоказыватьКартинки Тогда
        Поле.ОтображениеТумблера = ОтображениеТумблера.Картинка;
        Поле.ОдинаковаяШиринаЭлементов = Ложь;
        Поле.РастягиватьПоГоризонтали = Истина;
        Поле.ВысотаЭлемента = 0;
        Поле.ВысотаЗаголовкаЭлемента = 0;
    Иначе
        Поле.ОтображениеТумблера = ОтображениеТумблера.Текст;
        Поле.ОдинаковаяШиринаЭлементов = Истина;
        Поле.РастягиватьПоГоризонтали = Ложь;
        Поле.ВысотаЭлемента = 1;
        Поле.ВысотаЗаголовкаЭлемента = 1;
    КонецЕсли;
    Если НужнаДоставка <> СтараяДоставка Или СостояниеСогласования <> СтароеСогласование Тогда
        ВызватьИсключение "Переключение оформления не должно менять свои значения";
    КонецЕсли;
    ОписаниеРезультата = ПредставлениеСвоегоСостояния(НужнаДоставка, СостояниеСогласования);
КонецПроцедуры

&НаКлиенте
Процедура Сбросить(Команда)
    НастроитьСвоиФлажки();
КонецПроцедуры
ОткрытьУч85Флажки

УчебныеЭлементы85 → Общие → Общие команды → ОткрытьУч85Флажки → Модуль

Полный модуль собственной общей команды; не выполнялся.

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ОткрытьФорму("ОбщаяФорма.Уч85Флажки");
КонецПроцедуры

Разбор по шагам

  1. Расширение флажка не создаётся через Новый: оно доступно у реального ПолеФормы вида ПолеФлажка. Доставка связана с Булево и находится вне таблицы — оба условия обязательны для Тумблер.

  2. ТриСостояния=False у доставки. У отдельного Согласование=True и числовой реквизит. Булево имеет два значения; трёхпозиционное состояние не подменяем Неопределено и не объявляем Булево.

  3. БЛ=Самовывоз и БИ=Доставка задают отображаемые подписи ложного/истинного значения в текстовом тумблере. ОписаниеРезультата независимо показывает Формат того же реального реквизита; это не сохранение заказа.

  4. ОтображениеТумблера=Текст показывает подписи. Картинки переключает его в Картинка: пользователь видит галочку/крестик. При этом сохранены оба локальных значения; код проверяет их до/после оформления.

  5. ОдинаковаяШиринаЭлементов=True делает применимой ШиринаЭлемента=14. В режиме Картинка это свойство False: прежняя ШиринаЭлемента остаётся, но по native-контракту не используется. РастягиватьПоГоризонтали переключается отдельно.

  6. ВысотаЭлемента и ВысотаЗаголовкаЭлемента относятся к тумблеру. Картинки ставит 0 для автоматического определения; Текст возвращает явные 1. Значения размеров не объявляются пикселями, точный внешний вид зависит от клиента/шрифта.

  7. ЦветРамки/ЦветТекста/ЦветФона и Шрифт заданы непосредственно одному собственному полю. У обычного флажка вне таблицы фон имеет иные условия; этот урок применяет его к Тумблер.

  8. Изменения свойств с обращением к серверу собраны в серверной процедуре. ПриИзменении только обновляет локальную подпись. Сбросить намеренно сбрасывает оба значения; Текст/Картинки сбросом не являются.

Как проверить результат

  1. Будущий ручной тест: F7, открыть собственную форму командой. Проверить Самовывоз и начальное числовое согласование 0 в readonly результате.

  2. Выбрать Доставка: реквизит Булево должен стать Истина, результат — Доставка. Выбрать Самовывоз: Ложь. Проверить реальные подписи сегментов, не только сообщения.

  3. Не сбрасывая выбранное значение, нажать Картинки, затем Текст. Булево и числовое согласование должны остаться прежними; меняется только оформление.

  4. У отдельного Согласование вручную пройти три визуальных состояния и наблюдать числовые значения в результате. Не выводить смысл конкретного кода состояния из названия бизнес-задачи: модель согласования этому полю ещё не назначена.

  5. Сбросить возвращает Самовывоз, числовое согласование 0 и текстовое оформление. Закрыть/открыть: значения заново инициализируются; нет сохранённого документа или пользовательского предпочтения.

Ожидаемый результат

В будущем собственная форма позволяет переключать Самовывоз/Доставка, сравнить текстовое и графическое оформление и отличить числовой трёхпозиционный флажок от Булево. Все данные только в форме; запуск не выполнялся.

На что обратить внимание

  1. Тумблер допустим для связанного Булево вне таблицы. Не включайте его у числового Согласование; там обычный вид Флажок и ТриСостояния=True.

  2. ШиринаЭлемента не используется при ОдинаковаяШиринаЭлементов=False. ЦветФона вне таблицы имеет смысл для тумблера, а не любого обычного флажка.

  3. Обращение к серверу ради оформления не означает запись базы. Здесь нет Записать, печати, файлов, сети или сохранения настроек пользователя.

  4. Не обещаем одинаковый вид в мобильном клиенте, web-клиенте и интерфейсе Версия 8.5: они не являются средой этого опыта. UI и обработчики требуют будущей ручной проверки; runtimeVerifiedScenarios=0.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.