---
title: Шаблоны сообщений
slug: bsp/шаблоны-сообщений
---


## СформироватьСообщение
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Создает сообщение на основании предмета по шаблону сообщения.
//
// Параметры:
//  Шаблон                   - СправочникСсылка.ШаблоныСообщений - ссылка на шаблон сообщения.
//  Предмет                  - Произвольный - объект основание для шаблона сообщений, типы объектов перечислены в
//                                            определяемом типе ПредметШаблонаСообщения.
//  УникальныйИдентификатор  - УникальныйИдентификатор - идентификатор формы, необходим для размещения вложений во
//                                            временном хранилище при клиент-серверном вызове. Если вызов
//                                            происходит только на сервере, то можно использовать любой идентификатор.
//  ДополнительныеПараметры  - Структура - список дополнительных параметров, который будет передан в параметр
//                                         Сообщение в процедурах ПриФормированииСообщения в момент создания сообщения:
//      * ЗначенияПараметровСКД - Структура - значения параметров СКД, состав и значения реквизитов
//                                            для формируемого шаблона определяется средствами СКД.
//      * ПреобразовыватьHTMLДляФорматированногоДокумента - Булево - необязательный, по умолчанию Ложь, определяет
//                      необходимо ли преобразование HTML текста сообщения содержащего картинки в тексте письма из-за
//                      особенностей вывода изображений в форматированном документе.
//
// Возвращаемое значение:
//  Структура - подготовленное сообщение на основание шаблона для отправки:
//    * Тема - Строка - тема письма
//    * Текст - Строка - текст письма
//    * Получатель - СписокЗначений - получатели письма, где в значении электронная почта получателя, а
//                                    в представлении получатель письма.
//                 - Массив из см. НовыйПолучателиПисьма - если в процедуре ПриОпределенииНастроек
//                   общего модуля ШаблоныСообщенийПереопределяемый свойство РасширенныйСписокПолучателей равно Истина.
//    * ДополнительныеПараметры - Структура - параметры шаблона сообщения.
//    * Вложения - ТаблицаЗначений:
//       ** Представление - Строка - имя файла вложения.
//       ** АдресВоВременномХранилище - Строка - адрес двоичных данных вложения во временном хранилище.
//       ** Кодировка - Строка - кодировка вложения (используется, если отличается от кодировки письма).
//       ** Идентификатор - Строка - необязательный,  идентификатор вложения, используется для хранения
//                                   картинок, отображаемых в теле письма.
//
Функция СформироватьСообщение(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры = Неопределено) Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.СформироватьСообщение(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры);
```
</details>

## СформироватьСообщениеИОтправить
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Отправляет сообщение почты или SMS на основании предмета по шаблону сообщения.
//
// Параметры:
//  Шаблон                   - СправочникСсылка.ШаблоныСообщений - ссылка на шаблон сообщения.
//  Предмет                  - Произвольный - объект основание для шаблона сообщений, типы объектов перечислены в
//                                            определяемом типе ПредметШаблонаСообщения.
//  УникальныйИдентификатор  - УникальныйИдентификатор - идентификатор формы, необходим для размещения вложений во
//                                                       временном хранилище.
//  ДополнительныеПараметры  - см. ПараметрыОтправкиПисьмаПоШаблону
//
// Возвращаемое значение:
//   см. ШаблоныСообщенийСлужебный.РезультатОтправкиПисьма
//
Функция СформироватьСообщениеИОтправить(Шаблон, Предмет, УникальныйИдентификатор, Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.СформироватьСообщениеИОтправить(Шаблон, Предмет, УникальныйИдентификатор, );
```
</details>

## ПараметрыОтправкиПисьмаПоШаблону
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает список обязательных дополнительных параметров, для процедуры СформироватьСообщениеИОтправить.
// Список параметров может быть расширен, для сквозной передачи в составе параметра Сообщение
// процедур ПриФормированииСообщения и последующего использования их значений при создании сообщения.
//
// Возвращаемое значение:
//  Структура:
//   * ПреобразовыватьHTMLДляФорматированногоДокумента - Булево - необязательный, по умолчанию Ложь, определяет,
//                      необходимо ли преобразование HTML-текста сообщения, содержащего картинки в тексте письма, из-за
//                      особенностей вывода изображений в форматированном документе.
//   * УчетнаяЗапись - Неопределено
//                 - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - электронная почта
//                       для отправки письма, сформированного по шаблону.
//   * ОтправитьСразу - Булево - если Ложь, то письмо будет помещено в папку Исходящих
//                                  и отправлено при общей отправке писем. Только при отправке через Взаимодействие.
//                                  Значение по умолчанию, Ложь.
//   * ЗначенияПараметровСКД - Структура - значения параметров СКД, состав и значения реквизитов
//                                         для формируемого шаблона определяется средствами СКД.
//
Функция ПараметрыОтправкиПисьмаПоШаблону() Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ПараметрыОтправкиПисьмаПоШаблону() 
```
</details>

## СформироватьСписокРеквизитовПоСКД
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Заполняет список реквизитов шаблона сообщений на основание макета СКД.
//
// 	Параметры:
//    Реквизиты  - ДеревоЗначений - заполняемый список реквизитов.
//    Макет      - СхемаКомпоновкиДанных - макет СКД.
//
Процедура СформироватьСписокРеквизитовПоСКД(Реквизиты, Макет) Экспорт
```

Пример вызова
```bsl
ШаблоныСообщений.СформироватьСписокРеквизитовПоСКД(Реквизиты, Макет) 
```
</details>

## ЗаполнитьРеквизитыПоСКД
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Заполняет список реквизитов шаблона сообщений на основании макета СКД.
//
// Параметры:
//  Реквизиты        - Соответствие - список реквизитов.
//  Предмет          - Произвольный - ссылка на объект основание для шаблона сообщений.
//  ПараметрыШаблона - см. ПараметрыШаблона.
//
Процедура ЗаполнитьРеквизитыПоСКД(Реквизиты, Предмет, ПараметрыШаблона) Экспорт
```

Пример вызова
```bsl
ШаблоныСообщений.ЗаполнитьРеквизитыПоСКД(Реквизиты, Предмет, ПараметрыШаблона) 
```
</details>

## СоздатьШаблон
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Создать шаблон сообщения.
//
// Параметры:
//  Наименование     - Строка - наименование шаблона.
//  ПараметрыШаблона - см. ШаблоныСообщений.ОписаниеПараметровШаблона
//
// Возвращаемое значение:
//  СправочникСсылка.ШаблоныСообщений - ссылка на созданный шаблон.
//
Функция СоздатьШаблон(Наименование, ПараметрыШаблона) Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.СоздатьШаблон(Наименование, ПараметрыШаблона) 
```
</details>

## ОписаниеПараметровШаблона
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает описание параметров шаблона.
//
// Возвращаемое значение:
//  Структура:
//   * Наименование - Строка - наименование шаблона сообщений.
//   * Текст        - Строка - текст шаблона письма или сообщения SMS.
//   * Тема         - Строка - текст темы письма. Только для шаблонов электронной почты.
//   * ТипШаблона   - Строка - тип шаблона. Варианты: "Письмо","SMS".
//   * Назначение   - Строка - представление предмет шаблона сообщений. Например, Заказ покупателя.
//   * ПолноеИмяТипаНазначения - Строка - предмет шаблона сообщений. Если указан полный путь к объекту метаданных, то в шаблоне
//                                        в качестве параметров будут доступны все его реквизиты. Например, Документ.ЗаказПокупателя.
//   * ФорматПисьма    - ПеречислениеСсылка.СпособыРедактированияЭлектронныхПисем- формат письма HTML или обычный текст.
//                                         Только для шаблонов электронной почты.
//   * УпаковатьВАрхив - Булево - если Истина, то печатные формы и вложения будут упакованы в архив при отправке.
//                                Только для шаблонов электронной почты.
//   * ТранслитерироватьИменаФайлов - Булево - печатные формы и файлы, вложенные в письмо будут иметь имена, содержащие
//                                             только латинские буквы и цифры, для возможности переноса между
//                                             различными операционными системами. Например, файл "Счет на оплату.PDF" будет
//                                             сохранен с именем "Schet na oplaty.PDF". Только для шаблонов электронной почты.
//   * ФорматыВложений - СписокЗначений - список форматов вложений. Только для шаблонов электронной почты.
//   * Вложения - Соответствие из КлючИЗначение:
//      ** Ключ - Строка - имя файла с расширением (например, image.png). Наименование будет без расширения.
//                         Или идентификатор картинки в html-письме (без cid).
//      ** Значение - Строка - адрес, указывающий на двоичные данные файла во временном хранилище.
//   * КомандыПечати - Массив из Строка - уникальные идентификаторы печатных форм
//   * ВладелецШаблона - ОпределяемыйТип.ВладелецШаблонаСообщения - владелец контекстного шаблона.
//   * ШаблонПоВнешнейОбработке - Булево - если Истина, то шаблон формируется внешней обработкой.
//   * ВнешняяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки - внешняя обработка, в которой содержится шаблон.
//   * ПодписьИПечать   - Булево - добавляет факсимильную подпись и печать в печатную форму. Только для шаблонов
//                                 электронной почты.
//   * ДобавлятьПрисоединенныеФайлы - Булево - если Истина, то к вложениям письма будут добавлены все
//                                              присоединенные файлы предмета-владельца.
//
Функция ОписаниеПараметровШаблона() Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ОписаниеПараметровШаблона() 
```
</details>

## РазвернутьРеквизит
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Создает подчиненные реквизиты у ссылочного реквизита в дереве значений
//
// Параметры:
//  Имя					 - Строка - имя ссылочного реквизита, в дереве значений у которого необходимо добавить подчиненные реквизиты.
//  Узел				 - КоллекцияСтрокДереваЗначений - узел в дереве значений, для которого необходимо создать дочерние элементы.
//  СписокРеквизитов	 - Строка - список добавляемых реквизитов через запятую, если указано, то будет добавлены только они.
//  ИсключаяРеквизиты	 - Строка - список исключаемых реквизитов через запятую.
//
Процедура РазвернутьРеквизит(Имя, Узел, СписокРеквизитов = "", ИсключаяРеквизиты = "") Экспорт
```

Пример вызова
```bsl
ШаблоныСообщений.РазвернутьРеквизит(Имя, Узел, СписокРеквизитов, ИсключаяРеквизиты);
```
</details>

## ЗаполнитьПолучателей
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Добавляет актуальные адреса почты или номера телефонов из контактной информации объекта в список получателей.
// В выборку адресов почты или номеров телефонов попадают только актуальные сведения,
// т.к. нет смысла отправлять письма или сообщения SMS на архивные данные.
//
// Параметры:
//  ПолучателиПисьма        - ТаблицаЗначений - список получателей письма или сообщения SMS
//  ПредметСообщения        - Произвольный - объект-родитель, у которого есть реквизиты, содержащие контактную информацию.
//  ИмяРеквизита            - Строка - имя реквизита в объекте-родителе, из которого следует получить адреса почты или
//                                     номера телефонов.
//  ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - если тип Адрес, то будут добавлены адреса
//                                                                          почты, если Телефон, то номера телефонов.
//  ВариантОтправки - Строка - вариант отправки для получателя письма: Кому, Копия, СкрытаяКопия, ОбратныйАдрес;
//
Процедура ЗаполнитьПолучателей(ПолучателиПисьма, ПредметСообщения, ИмяРеквизита, Экспорт
```

Пример вызова
```bsl
ШаблоныСообщений.ЗаполнитьПолучателей(ПолучателиПисьма, ПредметСообщения, ИмяРеквизита, );
```
</details>

## УстановитьИспользованиеШаблоновСообщений
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Включает/выключает формирование сообщений по ранее созданным шаблонам.
//
// Параметры:
//   Значение - Булево - если Истина, то шаблоны сообщений доступны для использования.
//
Процедура УстановитьИспользованиеШаблоновСообщений(Значение) Экспорт
```

Пример вызова
```bsl
ШаблоныСообщений.УстановитьИспользованиеШаблоновСообщений(Значение) 
```
</details>

## ИспользуютсяШаблоныСообщений
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Проверяет возможность использования механизма шаблонов сообщений.
//
// Возвращаемое значение:
//   Булево - если Истина, то шаблоны сообщений доступны для использования.
//
Функция ИспользуютсяШаблоныСообщений() Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ИспользуютсяШаблоныСообщений() 
```
</details>

## ТаблицаПараметров
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Программный интерфейс для внешних обработок.

// Создает описание таблицы параметров шаблона сообщения.
//
// Возвращаемое значение:
//   ТаблицаЗначений   - сформированная пустая таблица значений.
//
Функция ТаблицаПараметров() Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ТаблицаПараметров() 
```
</details>

## ДобавитьПараметрШаблона
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Добавить параметр шаблона для внешней обработки.
//
// Параметры:
//  ТаблицаПараметров - ТаблицаЗначений - таблица со списком параметров.
//  ИмяПараметра - Строка - имя добавляемого параметра.
//  ОписаниеТипа - ОписаниеТипов - тип параметра.
//  ЭтоПредопределенныйПараметр - Булево - если Истина, то параметр предопределенный.
//  ПредставлениеПараметра - Строка - представление параметра.
//
Процедура ДобавитьПараметрШаблона(ТаблицаПараметров, ИмяПараметра, ОписаниеТипа, ЭтоПредопределенныйПараметр, Экспорт
```

Пример вызова
```bsl
ШаблоныСообщений.ДобавитьПараметрШаблона(ТаблицаПараметров, ИмяПараметра, ОписаниеТипа, ЭтоПредопределенныйПараметр, );
```
</details>

## ИнициализироватьСтруктуруПолучатели
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Инициализирует структуру Получатели для заполнения возможных получателей сообщения.
//
// Возвращаемое значение:
//   Структура  - созданная структура.
//
Функция ИнициализироватьСтруктуруПолучатели() Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ИнициализироватьСтруктуруПолучатели() 
```
</details>

## ИнициализироватьСтруктуруСообщения
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Инициализирует структуру сообщения по шаблону, которую должна вернуть внешняя обработка.
//
// Возвращаемое значение:
//   Структура  - созданная структура.
//
Функция ИнициализироватьСтруктуруСообщения() Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ИнициализироватьСтруктуруСообщения() 
```
</details>

## ПараметрыШаблона
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает описание параметров шаблона сообщения по данным формы, ссылке на элемент справочника шаблона
// сообщения или определив контекстный шаблон по его владельцу. Если шаблон не будет найден, то будет возвращена
// структура с незаполненными полями шаблона сообщения, заполнив которые, можно создать новый шаблон сообщения.
//
// Параметры:
//  Шаблон - ДанныеФормыСтруктура
//         - СправочникСсылка.ШаблоныСообщений
//         - ЛюбаяСсылка - ссылка на шаблон сообщения или на владельца контекстного шаблона.
//
// Возвращаемое значение:
//   см. ШаблоныСообщенийКлиентСервер.ОписаниеПараметровШаблона.
//
Функция ПараметрыШаблона(Знач Шаблон) Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ПараметрыШаблона(Шаблон) 
```
</details>

## ВставитьПараметрыВСтрокуСогласноТаблицеПараметров
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Обратная совместимость.

// Подставляет в шаблон значения параметров сообщения и формирует текст сообщения.
//
// Параметры:
//  ШаблонСтроки        - Строка - шаблон, в который будут подставляться значения, согласно таблице параметров.
//  ВставляемыеЗначения - Соответствие - соответствие, содержащее ключи параметров и значения параметров.
//  Префикс             - Строка - префикс параметра.
//
// Возвращаемое значение:
//   Строка - строка, в которую были подставлены значения параметров шаблона.
//
Функция ВставитьПараметрыВСтрокуСогласноТаблицеПараметров(Знач ШаблонСтроки, ВставляемыеЗначения, Знач Префикс = "") Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ВставитьПараметрыВСтрокуСогласноТаблицеПараметров(ШаблонСтроки, ВставляемыеЗначения, Префикс);
```
</details>

## ПараметрыИзТекстаСообщения
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает соответствие параметров текста сообщения шаблона.
//
// Параметры:
//  ПараметрыШаблона - Структура - сведения о шаблоне.
//
// Возвращаемое значение:
//  Соответствие - соответствие имеющихся в тексте сообщения параметров.
//
Функция ПараметрыИзТекстаСообщения(ПараметрыШаблона) Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ПараметрыИзТекстаСообщения(ПараметрыШаблона) 
```
</details>

## ЗаполнитьОбщиеРеквизиты
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Заполняет общие реквизитов значениями из программы.
// После выполнения процедуры соответствие будет содержать значения:
//  ТекущаяДата, ЗаголовокСистемы, АдресБазыВИнтернете, АдресБазыВЛокальнойСети
//  ТекущийПользователь
//
// Параметры:
//  ОбщиеРеквизиты - Соответствие из КлючИЗначение:
//   * Ключ - Строка - имя общего реквизита
//   * Значение - Строка - значение заполненного реквизита.
//
Процедура ЗаполнитьОбщиеРеквизиты(ОбщиеРеквизиты) Экспорт
```

Пример вызова
```bsl
ШаблоныСообщений.ЗаполнитьОбщиеРеквизиты(ОбщиеРеквизиты) 
```
</details>

## ИмяУзлаОбщихРеквизитов
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает имя узла общих реквизитов.
//
// Возвращаемое значение:
//  Строка - имя общего реквизита верхнего уровня.
//
Функция ИмяУзлаОбщихРеквизитов() Экспорт
```

Пример вызова
```bsl
Результат = ШаблоныСообщений.ИмяУзлаОбщихРеквизитов() 
```
</details>

---

© 2024, **ООО 1С-Софт**  
Все права защищены. Эта программа и сопроводительные материалы предоставляются  
в соответствии с условиями лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode).

---
