Как программно изменить цвет текста 1с

1С 8.x : Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область(R1C2).Текст = спрНоменклатура.Наименование; ПолеТабДок

Ниже приведено несколько полезных шаблонов кода по работе с табличным документом:

Код 1C v 8.х

 //Пример получения текста ячейки
ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; 
ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование;
ПолеТабДок.Область("R2C2").Текст = "Это Строка"; //указываем явно литерал строки

Код 1C v 8.х

 // Изменение текста в области или ячейке

Для а = 11 по ТабличныйДокумент.ВысотаТаблицы Цикл
//Ячейка = ТабличныйДокумент.Область(а,1,а,1).Текст; 
текстЯчейка = ТабличныйДокумент.Область("R"+а+"C2").Текст; 
Если Строка(ТабличныйДокумент.Область("R"+а+"C2").ЦветФона)="стиль: Фон кнопки" Тогда
ТабличныйДокумент.Область("R"+а+"C7").Текст="";
ТабличныйДокумент.Область("R"+а+"C11").Текст="";
ТабличныйДокумент.Область("R"+а+"C8").Текст="";
ТабличныйДокумент.Область("R"+а+"C9").Текст="";
ТабличныйДокумент.Область("R"+а+"C10").Текст="";

КонецЕсли;

КонецЦикла;

Код 1C v 8.х

 // Как раскрасить ячейку или область табличного документа в зависимости от условия
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; // Получаем табличный документ из формы 
ТабДок.Очистить(); // Очищаем табличный документ 
Макет = ПолучитьМакет("Макет"); // Получаем макет с именем "Макет" из текущего объекта 
ОбластьСтрокаТаб = Макет.ПолучитьОбласть("СтрокаТаб"); // Получаем область из макета 
ОбластьСтрокаТаб.Параметры.НашПараметр = 1; // Устанавливаем значение 1 параметру "НашПараметр" 
ОбластьОформления = ТабДок.Вывести(ОбластьСтрокаТаб); 
// Вот собственно и само оформление ячейки 
ТабДок.Область(ОбластьОформления.Верх, ОбластьОформления.Лево, ОбластьОформления.Низ, ОбластьОформления.Лево).ЦветФона = WebЦвета.Красный;

Код 1C v 8.х

 //Пример изменения цвета текста при выводе данных в табличный документ
        Таб.ВывестиСекцию("Контрагент");
       // Изменим Текст ячейки, имя которой заранее задали как "ТекстОСостоянии"
        Таб.Область("ТекстОСостоянии").Текст = "Хорошо )";
        // В зависимости от условия изменим Цвет Текста
        Если Раз<0 Тогда
          Таб.Область(Таб.ВысотаТаблицы(),9,Таб.ВысотаТаблицы(),9).ЦветТекста(255,0,0); 
           ИначеЕсли Раз>0 Тогда
          Таб.Область(Таб.ВысотаТаблицы(),9,Таб.ВысотаТаблицы(),9).ЦветТекста(0,0,255);
       КонецЕсли;

Для того, чтобы появилась возможность использовать свойство «Значение», необходимо явно присвоить свойству ячейки «СодержитЗначение» значение Истина или установить флажок «Содержит значение» в палитре свойств.

Для ячейки, у которой установлен признак «СодержитЗначение», можно задать тип значения, размещаемого в ячейке.

Следующий фрагмент демонстрирует, как можно управлять этими свойствами из встроенного языка://задаем нужный тип с помощью объекта «ОписаниеТипов»

Код 1C v 8.х

 МассивБулево = Новый Массив; 
МассивБулево.Добавить(Тип("Булево"));
ОписаниеТиповБулево = Новый ОписаниеТипов(МассивБулево);
//...
ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; 
ПолеТабДок.Область("R3C3").СодержитЗначение = Истина; //указываем, что в ячейке будет значение
ПолеТабДок.Область("R3C3").ТипЗначения = ОписаниеТиповБулево; //указываем тип значения
ПолеТабДок.Область("R3C3").Значение = СпрНоменклатура.Услуга; //значение, типа "Булево" из справочника

Для ячейки табличного документа можно задавать формат вывода данных. Для этого используется свойство «Формат», которое содержит форматную строку. Приемы работы с форматной строкой полностью совпадают с функцией Формат()

Код 1C v 8.х

 ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; 
ПолеТабДок.Область("R4C3").ТипЗначения = ОписаниеТиповДата; //указываем тип, ранее заданный для Даты
ПолеТабДок.Область("R4C3").Значение = ТекущаяДата();
//указываем форматную строку 
//будет выглядеть как "[031120-2315]-", если текущая дата '20-11-2003 23:15:00') 
ПолеТабДок.Область("R4C3").Формат = "ДФ=[ггММдд-ЧЧмм]-";

Элемент управления в табличном документе

Для ячейки, у которой установлен признак «СодержитЗначение», можно также задать элемент управления, который будет использоваться для редактирования этого значения.

Элемент управления можно назначить через палитру свойств или из встроенного языка с помощью метода «УстановитьЭлементУправления()». Чтобы проверить в программе, установлен ли элемент управления для конкретной ячейки, можно использовать свойство «ЭлементУправления», которое возвращает элемент управления, назначенный для ячейки.

Элементы управления, встроенные в ячейку, отображаются только при входе в режим редактирования значения. На приведенном ниже рисунке редактируемая ячейка обведена овалом и в ней отображается флажок:

Ниже показан пример установки элемента управления типа «Флажок» из встроенного языка://задаем нужный тип с помощью объекта «ОписаниеТипов»

Код 1C v 8.х

 МассивБулево = Новый Массив; 
МассивБулево.Добавить(Тип("Булево"));
ОписаниеТиповБулево = Новый ОписаниеТипов(МассивБулево);
...
ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; 
ПолеТабДок.Область("R5C3").СодержитЗначение = Истина; //указываем, что в ячейке будет значение
ПолеТабДок.Область("R5C3").ТипЗначения = ОписаниеТиповБулево; //указываем ранее заданный тип
ПолеТабДок.Область("R5C3").Значение = СпрНоменклатура.Услуга; //значение, типа "Булево" из справочника
//а теперь указываем, что в ячейке будет отображаться флажок
ПолеТабДок.Область("R5C3").УстановитьЭлементУправления(Тип("Флажок"));

Для элементов управления, расположенных в табличном документе, расширяется набор свойств, методов и событий:

Разберем самые важные свойства и методы:

Свойство «ВстроенВЯчейку» имеет тип «булево» и говорит о том, что элемент управления встраивается в ячейку или просто привязывается к ней, о чем было рассказано выше.

Свойство «Видимость» позволяет показать или скрыть элемент управления.

Свойство «Значение» предоставляет доступ к значению, которое редактируется в элементе управления. Оно используется только для элементов управления, поддерживающих связь с данными.

Метод «Расположить» позволяет разместить элемент управления в конкретной области ячеек табличного документа. Именно этот метод был использован в вышеприведенном примере.

Код 1C v 8.х

  ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента;
ПолеТабДок.Область("R4C3").Защита = Истина;

Программное изменение цвета шрифта

Я
   moonlight

01.03.16 — 10:58

Добрый день!

Программно создаю надпись на форме а затем хочу поменять цвет шрифта надписи. Пишу следующее:

НовыйЭлемент.ЦветТекста = Новый Цвет(255,0,0);

Цвет не меняется

Пишу

НовыйЭлемент.ЦветФона = Новый Цвет(255,0,0);

Цвет фона меняется.

Почему не меняется цвет текста? Что делаю не так!?

   lubitelxml

1 — 01.03.16 — 11:10

УсловноеОформление использовать?

   DDwe

2 — 01.03.16 — 11:11

(0) Что в надписи?

   LordCMEPTb

3 — 01.03.16 — 11:15

Возможно, пришло время открыть кусок кода, которым создается НовыйЭлемент?

   DDwe

4 — 01.03.16 — 11:21

Всё, ушел ТС.

   lubitelxml

5 — 01.03.16 — 11:23

(4) мда, телепаты зря отработали )

   moonlight

6 — 01.03.16 — 12:29

Сорри, отвлекся.

Код следующий:

НовыйЭлемент=ЭлементыФормы.Создать(Тип(«Надпись»),»Надпись», Истина, ЭлементыФормы.Основнаяпанель);

НовыйЭлемент.Заголовок=»бла бла бла»;

НовыйЭлемент.ЦветТекста=Новый Цвет(255,0,0);

   LordCMEPTb

7 — 01.03.16 — 12:55

С семеркой не работал, тут лучше

   LordCMEPTb

8 — 01.03.16 — 12:57

* к (7)

подождать специалистов. А если этот код в восьмерке работает, то нужен код создания объекта «ЭлементыФормы», у которого есть метод «Создать».

   moonlight

9 — 01.03.16 — 21:53

вот точный код:

НовыйЭлемент=ЭлементыФормы.Добавить(Тип(«Надпись»),»РамкаГруппыМедикаменты», Истина, ЭлементыФормы.ОсновнаяПанель);

    НОвыйЭлемент.ЦветТекста=ЦветаСтиля.ТекстСообщенияОПроблемах;

    НовыйЭлемент.Заголовок=»Медикаменты»;

   moonlight

10 — 01.03.16 — 21:53

есть идеи?

   SiAl-chel

12 — 02.03.16 — 06:52

(10) А если элемент формы создать вручную в редакторе форм, то тогда можно будет изменить цвет текста у этого элемента?

  

LordCMEPTb

13 — 02.03.16 — 13:06

(9) А такой цвет вообще есть в конфигурации? Отличается ли он от стандартного?

Что изменится, если запустить на более новой/старой платформе?

Будет ли меняться цвет, если этот код вынести в новую обработку с новой формой?

Компьютер — устройство разработанное для ускорения и автоматизации человеческих ошибок.

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

К табличной части справочников, документов и других объектов можно применить такое же условное оформление, как и к динамическому списку. Но в отличие от динамического списка, где настройка списка доступна и в пользовательском режиме, сделать это можно только в режиме конфигуратора или из встроенного языка.

Для этого нужно использовать свойство УсловноеОформление формы.

Например, нужно оформить строки табличной части приходной накладной так, чтобы строки с суммой больше 30000 были выделены желтым фоном, а ячейки Товар и Количество строк табличной части с количеством больше единицы были выделены красным текстом.

Выполним условное оформление интерактивно. Создадим форму документа ПриходнаяНакладная, выделим корень элементов формы (строку Форма) и откроем ее свойства. В строке УсловноеОформление нажмем ссылку Открыть.


 

В появившемся окне Настройка условного оформления нажмем кнопку Добавить.


 

Сначала укажем Оформление для выделения полей. Нажмем кнопку выбора в поле Оформление и установим желтый цвет фона.


 

Затем укажем условие, при наступлении которого будет применяться оформление, то есть когда фон строк табличной части будет желтым.

Нажмем кнопку выбора в поле Условие и в появившемся окне добавим Новый элемент отбора. Для этого нажмем на кнопку Добавить — Новый элемент и укажем:

  • в графе Левое значение – поле табличной части Объект.Товары.Сумма
  • в графе Вид сравнения – Больше
  • а в графе Правое значение выберем 30000.


 

Затем укажем список оформляемых полей. В отличии от оформления динамического списка, построенного на системе компоновки данных, если мы хотим выделить полностью строку, здесь нужно перечислить все поля строки табличной части.

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


Затем создадим еще одно условие для полей табличной части Товар и Количество, чтобы цвет текста этих полей был красным, в случае если значение в поле Количество больше единицы.


 

Таким образом, мы добились требуемого оформления табличной части формы документа ПриходнаяНакладная.


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

Скачать демонстрационный пример (платформа 8.2.15.310).

По условию можно оформить также и строки списка документов или других объектов конфигурации. Для этого можно использовать УсловноеОформление списка. Подробнее можно прочитать в вопросе Как раскрасить строки списка по некоторому условию?  

Внешний вид программы 1С полностью (или почти полностью) настраивается. Например, шрифт, который используется и конфигуратором 1С, и в режиме Предприятие 1С. Шрифтами можно управлять напрямую из языка 1С.

Конечно, кому-то это может показаться «всякими интерфейсными штучками», но для многих важна возможность настроить программу «под себя».

Шрифты 1С для программиста

Большую часть своего рабочего времени программист 1С проводит в написании программ на языке 1С, которые находятся в модулях 1С.

Тексты программ имеют стандартную, сложившуюся исторически расцветку. Некоторым она может показаться странной, особенно тем, кто начал работать с 1С после Microsoft Visual Studio.

Настройка шрифтов 1С для программирования производится в конфигураторе в меню Сервис/Параметры.

На закладке Модули можно выбрать требуемый шрифт 1С и его размер. Цвет текста устанавливается отдельно для различных элементов языка 1С.

Пример 1 настройки цветов.

Пример 2 настройки цветов.

Данные настройки зависят от компьютера/пользователя и не зависят от конкретной конфигурации/базы данных.

Стили конфигурации

Как будет выглядеть программа в режиме Предприятия – задается в конкретной конфигурации. Настройки находятся в списке объектов конфигурации, в ветке Общие/Стили.

Для изменения стилей конфигурации открывается специальный редактор, который позволяет изменить шрифты 1С и цвета для различных элементов форм — подобно, как это делается в Windows.

Пример нестандартных настроек шрифтов 1С.

Шрифт 1С в печатной форме

Печатные формы 1С (документов, отчетов) в конфигураторе называются Макеты. Они находятся или в ветке Общие/Макеты или в конкретном справочнике, документе, отчете, во внутренней ветке Макеты.

Шрифт 1С может быть задан в ячейке. Выделите одну или несколько ячеек, нажмите на них правой кнопкой мыши. В окне свойств можно выбрать свойства Шрифт 1С и Цвет текста.

В конфигурациях тонкого клиента 1С макеты можно редактировать не только в конфигураторе, но и в режиме Предприятие. Рассмотрим на примере конфигурации Управление торговлей редакция 11.

В меню Все функции выберите Регистры сведений/Пользовательские макеты печати. Откроется список макетов в разрезе документов.

Обратите внимание, что некоторые регламентированные макеты, такие как ТОРГ12 вынесены вниз списка в пункт «Печать общих форм».

Выберите нужный макет нажав на него два раза мышкой. Откроется редактор макета, аналогичный конфигуратору. Отредактировав и закрыв окно, не забудьте нажать на кнопку «Завершить редактирование».

Шрифт 1С в форме 1С

Шрифт 1С и цвет можно изменить не только глобально на всю конфигурацию, как это делается в стилях, но и для конкретной формы, конкретного поля.

Для этого выделите нужное поле, нажмите правой кнопкой на нем и выберите пункт меню Свойства. Измените свойства Шрифт 1С и Цвет текста.

Для некоторых полей (например, таблиц), количество таких свойств будет больше – например, шрифт 1С шапки, шрифт 1С строк и т.п.

В тонком клиенте 1С это работает примерно также, только вместо нажатия на само поле – нужно нажать на его имя в списке.

Шрифт 1С в СКД

В отчетах СКД шрифт 1С можно настроить с помощью условного форматирования.

Выберите пункт меню Все действия/Изменить вариант. На закладке Условное форматирование добавьте новую строчку. В колонке Оформление Вы можете настроить шрифт 1С и цвет.

Если требуется эту настройку применить только к некоторым полям – выберите их список в колонке Оформляемые поля. Также можно применить настройку только если выполняется определенные условия – в колонке Условие.

Шрифт 1С в языке 1С

Управление шрифтами 1С на форме доступно из языка 1С.

Распространенный пример (как минимум для толстого клиента, для которого не было реализовано Условное оформление в списках) – изменение цвета и шрифта 1С в списке в зависимости от условия.

Нажмите правой кнопкой на список на форме, в свойствах, в самом низу, в обработчик ПриВыводеСтроки нажмите кнопку Лупа, чтобы создать функцию-обработчик этого события.

Пример такой функции:

Функция ПриВыводеСтроки(ОформлениеСтроки, ДанныеСтроки)
      //Проверяем некое условие, «Услуга» - это колонка списка
      Если ДанныеСтроки.Услуга = Истина Тогда
           //изменяем цвет фона
           ОформлениеСтроки.ЦветФона = WebЦвета.Красный;
           //делаем цвет текста в ячейке «Услуга» жирным
           ОформлениеСтроки.Ячейки.Услуга.Шрифт = Новый Шрифт(ОформлениеСтроки.Ячейки.Услуга.Шрифт,,,Истина);
      КонецЕсли;
КонецФункции

Загрузка…

Понравилась статья? Поделить с друзьями:
  • Как программно изменить разрешение экрана
  • Как программно изменить размер формы 1с
  • Как программно изменить размер кнопки
  • Как программно изменить порядок колонок 1с
  • Как программно изменить положение колонки 1с