Как программно изменить шрифт в табличном документе 1с
Перейти к содержимому

Как программно изменить шрифт в табличном документе 1с

  • автор:

Как программно указать чтоб текст показывался Жирным?

спасибо всем кто откликнулся:)
хотя сам уже нашел:
Новый Шрифт(<Шрифт>, <Имя шрифта>, <Размер>, <Жирный>, <Наклонный>, <Подчеркнутый>, <Зачеркнутый>)
Параметры:
<Шрифт> (обязательный)
Тип: Шрифт. Шрифт, на основании которого будет формироваться новый шрифт.
<Имя шрифта> (необязательный)
Тип: Строка. Системное наименование шрифта. Если параметр не задан, то не изменять относительно исходного шрифта.
Значение по умолчанию: Пустая строка
<Размер> (необязательный)
Тип: Число. Размер шрифта. Если параметр не указан, то не изменять относительно исходного шрифта.
Значение по умолчанию: -1
<Жирный> (необязательный)
Тип: Булево. Признак жирности шрифта. Если параметр не указан, то не изменять относительно исходного шрифта.
<Наклонный> (необязательный)
Тип: Булево. Признак наклонного начертания шрифта. Если параметр не указан, то не изменять относительно исходного шрифта.
<Подчеркнутый> (необязательный)
Тип: Булево. Признак подчеркнутого начертания шрифта. Если параметр не указан, то не изменять относительно исходного шрифта.
<Зачеркнутый> (необязательный)
Тип: Булево. Признак зачеркнутого начертания шрифта. Если параметр не указан, то не изменять относительно исходного шрифта.
Описание:
Создает шрифт на основании имеющегося шрифта. Все параметры могут быть взяты из исходного шрифта, при этом параметры, указанные в конструкторе, имеют приоритет над исходными.
Пример:
ЖирныйШрифт = Новый Шрифт(Макет.Область(1,1).Шрифт. Истина);

в моем случае работает:

ОформлениеСтроки.ЦветФона= Новый Цвет(1255, 253, 253);
ОформлениеСтроки.Шрифт = Новый Шрифт(,,Истина,,);

Форматированная строка

И первым делом научимся создавать самую простую форматированную строку, делается это при помощи конструктора Новый.
В самом простом виде форматированная строка будет выглядеть так:

В этом случае она ни чем не будет отличаться от обычной строки.
Ознакомимся с её синтаксисом. У форматированной строки, два вида конструктора.
Конструктор первый:

Новый ФорматированнаяСтрока(<Содержимое>, <Шрифт>, <ЦветТекста>, <ЦветФона>, <Ссылка>)

Где:
Содержимое – содержимое форматированной строки, может быть строка, форматированная строка (да-да, форматированную строку можно сделать на основании форматированной строки), картинка и массив, который должен состоять из строк, форматированных строк и картинок.
Шрифт – это шрифт форматированной строки (тип Шрифт, что понятно);
ЦветТекста , ЦветФона – цвет текста и цвет фона форматированной строки (Тип Цвет, что тоже понятно);
Ссылка – тип строка, можно задать ссылку на какой-то объект и тогда форматированная строка станет в виде гиперссылки.
Конструктор второй:

Новый ФорматированнаяСтрока(<Содержимое1,…,СодержимоеN>)

Где Содержимое 1 и т.д это или строка, или форматированная строка, или картинка или массив, который должен состоять из строки, форматированной строки или картинки.
Поскольку к форматированной строке, в отличие от обычной строки, нельзя применить операцию конкатенации (сложение строк), то складывать форматированные строки можно при помощи конструктора второго вида.
Научимся работать с форматированными строками. Для этого создадим обработку, создадим команду, и в обработчике команды на клиенте будем писать наши эксперименты.
Напишем, простой вариант форматированной строки:

В этом случае наше предупреждение ни чем не будет отличаться от предупреждения с обычной строкой.
Изменим цвет, но попробуем не просто написать какой-то цвет, а взять цвет из стиля. Дело в том, что тип ЦветСтиля доступен только на сервере, поэтому нам придется использовать безконтекстный серверный вызов.
В этом случае код будет следующим

И результат его работы:

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

Результат будет следующий:

Теперь научимся объединять строки – создадим три разные строки, объединим и выведем в уже знакомом предупреждении.

Результат этого кода будет следующим:

А теперь вставим ссылку.

Точно так же можно вставить любую навигационную ссылку

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

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

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

4 Replies to “Форматированная строка”

Добрый день. А в ячейку табличного макета форматированную строку можно вставлять как — то?

Шрифт в макете 1с

В поле текстового документа существует возможность устанавливать шрифт, который будет использоваться в режиме 1С:Предприятие при редактировании текста в этом поле.

Управлять шрифтом поля текстового документа можно как через палитру свойств, так и программно. Для программного управления шрифтом поле текстового документа поддерживает свойство Шрифт .

Если шрифт для поля текстового документа настроен, то независимо от используемого расширения редактора, будет использоваться указанный шрифт. Если шрифт не настроен, то в палитре свойств он будет отображаться как . При этом, при редактировании текста будет использоваться шрифт в зависимости от используемого расширения редактора, а если оно не выбрано – в зависимости от настроек редактора текстов.

Для того, чтобы программно изменить настройку шрифта в поле текстового документа, можно например написать следующий код:

Внешний вид программы 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С в списке в зависимости от условия.

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

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

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

Любой документ в 1С мы можем распечатать. Преобразовать сформированный документ в печатную форму нам позволяет макет печатной формы. Это своего рода шаблон печатной формы документа, который создается с помощью конструктора и напоминает таблицу Excel.

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

Рассмотрим на примере программы 1С:Бухгалтерия предприятия версии 3.0, что такое печатный макет в 1С, как его можно просмотреть, изменить и возможна ли настройка макета.

Как изменить макет печатной формы в 1С 8.3

Создадим для примера документ «Реализация (акт, накладная)» (раздел меню «Продажи») и посмотрим печатную форму накладной.

Предположим, мы хотим изменить печатную форму и добавить логотип нашей организации. Кроме утвержденных обязательных реквизитов организация вправе вносить изменения, сохраняя утвержденную форму документа. Логотип не входит в число обязательных реквизитов, но организация имеет право его добавить. Выбрав нужную печатную форму (кнопка «Печать» документа), нажимаем кнопку «Еще». В не мы видим два пункта «Изменить макет» и «Перейти к макетам форм».


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


Для просмотра и редактирования выберем команду «Изменить макет». Перед нами откроется макет печатной формы, который мы можем редактировать. Как видим, большинство полей формы заданы определенными командами, с помощью которых осуществляется заполнение формы. Разработчик предупреждает, что изменение этих имен областей и параметров, может привести к потере работоспособности печатной формы – изменять их нельзя. Используя кнопки на панели инструментов, мы можем изменить начертание шрифта, выравнивание текста, определить линии границ таблицы и другие изменения внешнего вида формы, которые не повлияют на ее работоспособность. Работа с макетом печатной формы схожа с работой в таблице Excel.


Если линии в печатной форме нам мешают, то, выделив фрагмент, мы можем их убрать, через кнопку «Границы» установив «Нет границы». Если не мешают, можно оставить, рисунок расположится сверху.


Для того чтобы вставить картинку, зайдем в кнопку «Еще» и выберем команду «Картинка» в пункте меню «Рисунок».


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


Рисунок перенесся в форму. Используя маркеры на краях рисунка, мы можем изменить его размер. Если какое-то действие не получается, с помощью комбинации клавиш мы можем отменить или вернуть выполненной действие: Ctrl+Z – отменить действие, Ctrl+Y – вернуть действие.


Наш логотип вставился в рамке. Нажмем правой кнопкой на картинке и выберем пункт меню «Свойства».


В этом окне можно задать параметры нашего объекта. В нашем случае убираем рамку: «Стиль линии» — «Без линии». Если нам нужно будет убрать фон, установить прозрачный, то соответственно в этом разделе: «Цвет фона» — «Узор», мы должны установить – «Нет заливки».


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



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

Если мы зайдем в раздел «Перейти к макетам печатных форм» в кнопке «Еще», то увидим, что у измененного нами макета печатной формы сбоку нарисован зеленый карандаш – форма изменена. Если нужно вернуться к исходному макету, то можно нажать кнопку со стрелочкой «Использовать стандартный макет».


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


Если нужно полностью удалить сделанные нами изменения, нажмем кнопку с красным крестиком. Карандашик исчез – изменения макета удалены.


В программе есть и другой способ отображения логотипа в документах, используя настройки организации, но он применим только к печатной форме документа «Счет на оплату». Установив форму логотипа в параметрах организации («Главное» — «Настройки» — «Организации») в разделе «Логотип и печать», он будет отображаться в документе «Счет на оплату».



Рисунок автоматически вставляется в макет печатной формы.

Параметры и шаблон макета

На примере программы автоматизации бухгалтерского налогового учета на базе 1С рассмотрим еще один макет документа «Накладная» в разделе меню «Администрирование» — «Печатные формы, отчеты и обработки» — «Макеты печатных форм». При работе с макетом обратите внимание, что ячейки макета содержат не только текст, но и имена параметров, заключенные в такие скобки — <>. С помощью параметра макета в ячейку можно выводить различные данные, при этом значения параметров должны быть указаны в модуле программы.


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

Нажав на ячейке с параметром правой кнопкой мышки и выбрав команду «Свойства», мы можем просмотреть настройки данной ячейки.


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


Сохранив макет, мы видим рядом пиктограмму карандашик – макет изменен.


Открываем нашу печатную форму накладной и видим, что в ячейке приписан наш текст.


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

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

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

Мои заметки по 1с

Собственные наработки и набитые шишки в моей практике по программированию в 1С.

Страницы

  • Главная
  • Скачать
  • Разработки

четверг, 15 марта 2018 г.

Примеры Условного оформления (программно)

Примеры Условного Оформления форм:

&НаСервере
Процедура УстановитьОформлениеФормыНаСервере()

ИменаСлужебныхПрефиксов = НазначитьПрефиксИменСлужебныхЗначений();
ПрефиксИмениИнтервал = ИменаСлужебныхПрефиксов.Интервал;
ПрефиксИмениРучИзмЦены = ИменаСлужебныхПрефиксов.РучноеИзменениеЦены;

УсловноеОформление.Элементы.Очистить();

//
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Представление = «СозданПрограммно»;
//Отбор
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«ДеревоЦен.ЭтоГруппа»);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Истина;

//Оформление
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«Шрифт», Новый Шрифт(WindowsШрифты.ШрифтДиалоговИМеню,,11,Истина. ));

//Поле оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(«ДеревоЦен»);

//
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Представление = «СозданПрограммно»;
//Отбор
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«ДеревоЦен.ЭтоГруппа»);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Ложь;

ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«ДеревоЦен.БазоваяЦена»);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = 0;

//Оформление
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«ЦветФона», WebЦвета.Розовый);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«Текст», «<не задана>»);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«ЦветТекста», WebЦвета.Серый);

//Поле оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(«ДеревоЦенБазоваяЦена»);

//оформление программно созданных колонок «Интервалы»
Для Каждого СтрокаИнтервала Из Интервалы Цикл

ИдентификаторИнтервала = СтрокаИнтервала.ИдентификаторИнтервала;
ИмяПоля_РИзмЦены = СтрЗаменить(ИдентификаторИнтервала, ПрефиксИмениИнтервал, ПрефиксИмениРучИзмЦены);

//
ЭлементОформления = УсловноеОформление.Элементы.Добавить();

//
ЭлементОформления.Представление = «СозданПрограммно»;

//Отбор
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«ДеревоЦен.»+ИмяПоля_РИзмЦены);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Истина;

//Оформление
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«ЦветФона», WebЦвета.Бежевый);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«ЦветТекста», WebЦвета.Синий);

//Поле оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ИдентификаторИнтервала);

//
ЭлементОформления = УсловноеОформление.Элементы.Добавить();

//
ЭлементОформления.Представление = «СозданПрограммно»;

//Отбор
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«ДеревоЦен.»+ИдентификаторИнтервала);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = 0;

ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«ДеревоЦен.ЭтоГруппа»);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Ложь;

//Оформление
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«ЦветФона», WebЦвета.Розовый);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«Текст», «<не задана>»);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«ЦветТекста», WebЦвета.Серый);

//Поле оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ИдентификаторИнтервала);

КонецЦикла;

КонецПроцедуры

Пример2:
С использованием общей процедуры.

&НаСервере
Процедура УстановитьУсловноеОформление()

ерпОбщегоНазначенияСервер.УстановитьУсловноеОформление(ЭтаФорма, КомпоновщикНастроекТаблицаТовары, «ТаблицаТовары», «ТаблицаТовары»);

КонецПроцедуры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *