Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Параметры в текстовом документе

Параметры в текстовом документе
Я
   vovane
 
20.11.14 - 19:10
Добрый вечер! У меня в конфигурации на 8.3 есть код для отправки электронного письма на указанный адрес. Сейчас пытаюсь дописать в это письмо текст, в котором нужно указать два параметра (фио получателя и название отправляемого документа). Наткнулся вот на что:
1) Если сделать общий макет текстового документа, и в нем в квадратных скобках указать параметры, то строки, которые я вставляю в эти параметры, при выводе в текстовый документ обрезаются под длину названия параметра (то есть в параметре [ФИО] вместо "Иванов Иван Иванович" будет "Ивано", 3 символа + скобки)
2) Если сделать общий макет HTML-документа, то в нем нет параметров. Либо я не так понимаю.

Плюс еще надо сделать форматирование, то есть отдельные строки, типа номера телефона, выделить жирным. Пока что у меня остался вариант с текстовым документом и вручную в нем прописанными тегами HTML, но все равно остается проблема с обрезанием значений параметров. Если кто-нибудь с этим уже сталкивался, буду признателен за любые подсказки. Заранее спасибо.
   Fragster
 
1 - 20.11.14 - 19:14
Конфигуратор 1С:Предприятие 8 

Редактор текстовых макетов
Формат текстового макета
Структура служебной части области
     Ключевые слова для описания полей
     Текстовая часть области
Автоматический перенос значений в полях области

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

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

Формат текстового макета
Весь текст макета делится на области. Области должны следовать друг за другом и не могут пересекаться или включаться друг в друга. В тексте макета области выделяются следующим образом:

#Область ХХХХХ
#КонецОбласти


  где ХХХХХ - имя области.

Конец области указывать не обязательно. Объявление начала области означает окончание предыдущей области.

Для хранения вариантов областей на нескольких языках после имени области может следовать код языка, для которого создана область:

#Область Заголовок1 RU
#КонецОбласти

#Область Заголовок1 EN
#КонецОбласти


Если для какого-либо варианта области код языка не указан, то этот вариант области будет возвращаться, когда в метод ПолучитьОбласть передан код языка, не указанный ни в одном из вариантов описаний областей.

Каждая область состоит из строк со служебными параметрами и строк макета. В строках текста специальным образом выделяются управляющие конструкции текстового макета:

#Область ХХХХХ
[служебная часть]
[текстовая часть]

#КонецОбласти


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

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

В начале служебной части области может следовать ключевое слово общей области #ЗаменаСимвола A B
С его помощью будет производиться замена символов внутри строк области.

A - символ, который будет заменен; B - символ, которым будет заменен символ A. Символы должны быть заключены в кавычки.

Например, если написать #ЗаменаСимвола "@" "#", то внутри строк символы @, не входящие в названия полей, будут заменены на #.

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

Ключевые слова для описания полей
После описания ключевого слова замены следует описание полей, используемых в области.

Поле создается с помощью ключевого слова #Поле ПППП, где ПППП - имя поля, которое будет описываться.

Далее на следующих строках размещаются ключевые слова для описания поля. Описание поля действует до начала описания следующего поля.

#Выравнивание {Лево | Право | Центр | ПоШирине} - указывает выравнивание поля в пределах отведенных для него знакомест.

#Поле ВидРаботы

    #Выравнивание ПоШирине

 

#Формат <Форматная строка> - указывает форматную строку для вывода поля.


#Поле Дата1

    #Формат ПоШирине


#Поле Вр1

    #Формат "ЧЦ=4; ЧДЦ=0; ЧРД=."

 

#Забивать <Параметр> - указывает необходимость забивки области, отведенную для поля, символами #. Если <Параметр> = Истина и содержимое поля не помещается в отведенное место, будет выполняться забивка. 


#Поле ИтогОтчета

    #Формат "ЧЦ=18; ЧДЦ=2; ЧРД=."

    #Забивать Истина

 

Текстовая часть области
Текстовая часть области состоит собственно из строк текстового макета. Она начинается после последней строки, принадлежащей служебной части области, и продолжается до конца области. Внутри строк текстового макета указываются его поля: для этого внутри квадратных скобок указывается имя поля: [ПППП].

Пример:
------------------------------------------------------------------
!  [Имя           ]! [Код          ] ! [Наименование           ] !
------------------------------------------------------------------

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

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

Если имя поля больше, чем количество знакомест, отводимых под поле, имя поля указывается с помощью ключевого слова Поля. Например:

#Поле Номер

     #Формат "ЧЦ=3; ЧДЦ=0"

#Поле Код

     #Формат "ЧЦ=5; ЧДЦ=0"

#Поле Пометка

     #Формат "ЧЦ=1"

 


-------------------------------------------
![ ]![Код  ]! [Наименование       ]! [! #Поля Номер Пометка
-------------------------------------------
Параметры в ключевом слове Поля указываются только для тех полей, имена которых не указаны в теле макета в скобках.

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

{ПППП} - область поля ограничена фигурными скобками. Они показывают, что автоперенос текста, хранящегося в поле ПППП, возможен на эту строку и указывают область для не поместившегося ранее в поле ПППП текста. При этом, даже если в строке нет необходимости выводить ни одно из полей, строка все равно будет выведена.
<ПППП> - область поля ограничена угловыми скобками. Они показываю, что автоперенос текста, хранящегося в поле ПППП возможен и указывают область для не поместившегося на предшествующей строке в поле ПППП текста. При этом, если все поля, имеющиеся в строке, указаны в угловых скобках, но ни одно из них не потребовалось для вывода текста, строка не будет выведена. В случае, если при выводе тексте из поля в строку, в которой поле размещено в угловых скобках, текст все равно не уместится, такая строка будет размножена до тех пор, пока не удастся вывести весь текст из поля.
Пример:
---------------------------------------------
! [        YY]!  [XX           ]![       ZZ]!
!             !  {XX           }!           !
!             !  <XX           >!           !
---------------------------------------------

В этом примере указывается, что поле XX размещается на первой строке. На второй строке размещается та часть поля XX, которая не поместилась на первой строке. На третьей строке размещается часть поля ХХ, которая не поместилась ни на первой, ни на второй строке. При этом, если в поле ХХ для третьей строки текста не осталось, она совсем не выводится, а если осталось, то третья строка будет выводиться до тех пор, пока не закончится текст из поля XX.



--------------------------------------------------------------------------------

© ООО "1С", 1996-2012. Все права защищены.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.