---
description: >-
  Команда взаимодействия с СМС-сервером "СМС-Центр"; возвращает стоимость
  СМС-рассылки.
---

# GetCostCommand

## Шаблон GetCostCommand <a href="#template_get_cost_command" id="template_get_cost_command"></a>

```xml
<Command Name="" Type="GetCostCommand" Assembly="SMSCenterEngine">
  <UserSqlQuery>
    <Text></Text>
  </UserSqlQuery>
  <PasswordSqlQuery>
    <Text></Text>
  </PasswordSqlQuery>
  <Background Value="True" />
  <MultipleText Value="True" />
  <Approximately Value="" />
  <PhonesSqlQuery>
    <Text></Text>
  </PhonesSqlQuery>
  <NormalizePhones Type="Full" />
  <Variables>
    <Variable Name="VariableName" Value="[переменная]" />
  </Variables>
  <TitleVariable Value="" />
  <CommonTextSqlQuery>
    <Text></Text>
  </CommonTextSqlQuery>
  <MaleTextSqlQuery>
    <Text></Text>
  </MaleTextSqlQuery>
  <FemaleTextSqlQuery>
    <Text></Text>
  </FemaleTextSqlQuery>
</Command>
```

## Описание GetCostCommand <a href="#description_get_cost_command" id="description_get_cost_command"></a>

```xml
<Command Name="GetCostCommandName" Type="GetCostCommand" Assembly="SMSCenterEngine">
  <!--Тэги, общие для всех команд-->
  <!--Тэги, общие для всех команд сборки SMSCenterEngine-->
  <!--Тэги, специфичные для определенной команды (зависит от типа) сборки SMSCenterEngine-->
</Command>
```

## Тэги, специфичные для GetCostCommand <a href="#tags_get_cost_command" id="tags_get_cost_command"></a>

### Background <a href="#background" id="background"></a>

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

Необязательный тэг. Значение тэга `<Background>`: не ожидается.

Если тэг `<Background>` отсутствует, то для атрибута `Value` используется значение False.

```xml
<Background Value="False" />
```

#### Атрибуты тэга `<Background>` <a href="#attributes_tag_background" id="attributes_tag_background"></a>

<table data-header-hidden><thead><tr><th align="center"></th><th width="535.3333333333333"></th></tr></thead><tbody><tr><td align="center">Value</td><td><p>Значение.</p><p></p><p>Обязательный атрибут. Ожидается логическое значение.</p></td></tr></tbody></table>

### MultipleText <a href="#multiple_text" id="multiple_text"></a>

Признак, определяющий, определяющий, будет ли отправка СМС происходить с разным текстом для разных адресатов.

Необязательный тэг. Значение тэга `<MultipleText>`: не ожидается.

Если тэг `<MultipleText>` отсутствует, то для атрибута `Value` используется значение False.

```xml
<MultipleText Value="False" />
```

#### Атрибуты тэга `<MultipleText>` <a href="#attributes_tag_multiple_text" id="attributes_tag_multiple_text"></a>

<table data-header-hidden><thead><tr><th align="center"></th><th width="535.3333333333333"></th></tr></thead><tbody><tr><td align="center">Value</td><td><p>Значение.</p><p></p><p>Обязательный атрибут. Ожидается логическое значение.</p></td></tr></tbody></table>

### Approximately <a href="#approximately" id="approximately"></a>

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

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

Необязательный тэг. Значение тэга `<Approximately>`: не ожидается.

Если тэг `<Approximately>` отсутствует, то для атрибута `Value` используется значение False.

```xml
<Approximately Value="False" />
```

#### Атрибуты тэга `<Approximately>` <a href="#attributes_tag_approximately" id="attributes_tag_approximately"></a>

<table data-header-hidden><thead><tr><th align="center"></th><th width="535.3333333333333"></th></tr></thead><tbody><tr><td align="center">Value</td><td><p>Значение.</p><p></p><p>Обязательный атрибут. Ожидается логическое значение.</p></td></tr></tbody></table>

### PhonesSqlQuery <a href="#phones_sql_query" id="phones_sql_query"></a>

Sql-запрос, возвращающий список телефонов, переменных для автозамены в тексте сообщений, имена, а также пол владельцев, которым следует отправить сообщение через систему "СМС-Центр".

Обязательный тэг. Значение тэга `<PhonesSqlQuery>`: тэг [`<Text>`](#phones_sql_query_text).

```xml
<PhonesSqlQuery>
  <Text>
    SELECT
    sms_phone_id AS "Id",
    phone AS "Phone",
    title AS "Title",
    sex AS "Sex",
    text_id AS "TextId",
    variable_value AS "VariableName"
    FROM
    sms_phone
  </Text>
</PhonesSqlQuery>
```

#### Тэг `<Text>` <a href="#phones_sql_query_text" id="phones_sql_query_text"></a>

Содержит sql-запрос.

Обязательный тэг. Значение тэга `<Text>`: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

1. Id - произвольный идентификатор, соответствующий телефону для отправки СМС, который будет использоваться в Post-запросе (сам Post-запрос пока не реализован для данной команды).
2. Phone - телефон для отправки СМС.
3. Title - имя адресата СМС, которое будет подставлено в текст сообщения через переменную TitleVariable (или через переменную с именем Title, описанную в тэге [`<Variables>`](#variables)).
4. Sex - пол адресата СМС.
5. TextId (столбец обязателен только при истинном значении атрибута `Value` в тэге `<Multiple>`) - идентификатор отправляемого текста, указываемого в запросе из тэга [`<MaleTextSqlQuery>`](#male_text_sql_query) или [`<FemaleTextSqlQuery>`](#female_text_sql_query) (в зависимости от значения в поле "Sex").

\+ любые другие столбцы с произвольными именами переменных для замены, которые описаны в тэге [`<Variables>`](#variables) команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями передаваемых клиентом параметров с соответствующими названиями.

### NormalizePhones <a href="#normalize_phones" id="normalize_phones"></a>

Способ, которым номера телефонов, полученные из поля Phone запроса PhonesSqlQuery, будут приводиться к нормальному виду перед отправкой в систему "СМС-Центр".

Необязательный тэг. Значение тэга `<NormalizePhones>`: не ожидается.

```xml
<NormalizePhones Type="Full" />
```

#### Атрибуты тэга `<NormalizePhones>` <a href="#attributes_tag_normalize_phones" id="attributes_tag_normalize_phones"></a>

<table data-header-hidden><thead><tr><th align="center"></th><th width="535.3333333333333"></th></tr></thead><tbody><tr><td align="center">Type</td><td><p>Тип нормализации.</p><p></p><p>Обязательный атрибут. Ожидается название одного из <a href="#normalize_phones_types">типов нормализации номеров телефонов</a>.</p></td></tr></tbody></table>

#### Типы нормализации номеров телефонов <a href="#normalize_phones_types" id="normalize_phones_types"></a>

<table data-header-hidden><thead><tr><th align="center"></th><th width="535.3333333333333"></th></tr></thead><tbody><tr><td align="center">None</td><td>Нормализация не выполняется</td></tr><tr><td align="center">Trim</td><td>Из телефона удаляются все символы, за исключением цифр</td></tr><tr><td align="center">Full</td><td>Из телефона удаляются все символы, за исключением цифр, в 11-значных номерах начальная 8-ка меняется на 7, в 10-значных в начало дописывается 7 (нормализация для российских номеров)</td></tr></tbody></table>

### Variables <a href="#variables" id="variables"></a>

Список переменных для замены в тексте сообщения. При отсутствии замен производиться не будет.

Необязательный тэг. Значение тэга `<Variables>`: список тэгов [`<Variable>`](#variables_variable).

```xml
<Variables>
  <Variable Name="VariableName" Value="[переменная]" />
</Variables>
```

#### Тэг `<Variable>` <a href="#variables_variable" id="variables_variable"></a>

Переменная для замены в тексте сообщения. В исходном сообщении все текстовые строки Value будут заменены на значения, полученные из поля Name запроса PhonesSqlQuery.

Обязательный тэг. Значение тэга `<Variable>`: не ожидается.

#### Атрибуты тэга `<Variable>` <a href="#attributes_tag_variables_variable" id="attributes_tag_variables_variable"></a>

<table data-header-hidden><thead><tr><th align="center"></th><th width="535.3333333333333"></th></tr></thead><tbody><tr><td align="center">Name</td><td><p>Имя переменной для подстановки.</p><p></p><p>Обязательный атрибут. Ожидается название одного из полей, возвращаемых в запросе PhonesSqlQuery.</p></td></tr><tr><td align="center">Value</td><td><p>Текстовая строка, которая будет заменяться в исходном сообщении.</p><p></p><p>Необязательный атрибут. Ожидается любое значение.</p></td></tr></tbody></table>

### TitleVariable <a href="#title_variable" id="title_variable"></a>

Текстовая строка, которая будет заменена в исходном тексте сообщения на имя адресата СМС. При отсутствии переменная заменяться не будет.

Устаревшая реализация подстановки переменной в текст сообщения. Вместо элемента рекомендуется использовать описание переменных в тэге `<Variables>` команды.

Необязательный тэг. Значение тэга `<TitleVariable>`: не ожидается.

```xml
<TitleVariable Value="[имя]" />
```

#### Атрибуты тэга `<TitleVariable>` <a href="#attributes_tag_title_variable" id="attributes_tag_title_variable"></a>

<table data-header-hidden><thead><tr><th align="center"></th><th width="535.3333333333333"></th></tr></thead><tbody><tr><td align="center">Value</td><td><p>Значение.</p><p></p><p>Обязательный атрибут. Ожидается любое значение.</p></td></tr></tbody></table>

### CommonTextSqlQuery <a href="#common_text_sql_query" id="common_text_sql_query"></a>

Sql-запрос, возвращающий текст сообщения.

Необязательный тэг. Значение тэга `<CommonTextSqlQuery>`: тэг [`<Text>`](#common_text_sql_query_text).

```xml
<CommonTextSqlQuery>
  <Text>
    SELECT
    text_id AS "TextId",
    'Уважаемый, [имя]! Номер вашего заказа – [переменная]' AS "Text"
    FROM
    male_text
  </Text>
</CommonTextSqlQuery>
```

#### Тэг `<Text>` <a href="#common_text_sql_query_text" id="common_text_sql_query_text"></a>

Содержит sql-запрос.

Обязательный тэг. Значение тэга `<Text>`: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

1. TextId (столбец обязателен только при истинном значении атрибута `Value` в тэге `<Multiple>`) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга [`<PhonesSqlQuery>`](#phones_sql_query).
2. Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге [`<Variables>`](#variables) команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями передаваемых клиентом параметров с соответствующими названиями.

### MaleTextSqlQuery <a href="#male_text_sql_query" id="male_text_sql_query"></a>

Sql-запрос, возвращающий текст сообщения для лиц мужского пола.

Необязательный тэг. Значение тэга `<MaleTextSqlQuery>`: тэг [`<Text>`](#male_text_sql_query_text).

```xml
<MaleTextSqlQuery>
  <Text>
    SELECT
    text_id AS "TextId",
    'Уважаемый, [имя]! Номер вашего заказа – [переменная]' AS "Text"
    FROM
    male_text
  </Text>
</MaleTextSqlQuery>
```

#### Тэг `<Text>` <a href="#male_text_sql_query_text" id="male_text_sql_query_text"></a>

Содержит sql-запрос.

Обязательный тэг. Значение тэга `<Text>`: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

1. TextId (столбец обязателен только при истинном значении атрибута `Value` в тэге `<Multiple>`) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга [`<PhonesSqlQuery>`](#phones_sql_query).
2. Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге [`<Variables>`](#variables) команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями передаваемых клиентом параметров с соответствующими названиями.

### FemaleTextSqlQuery <a href="#female_text_sql_query" id="female_text_sql_query"></a>

Sql-запрос, возвращающий текст сообщения для лиц женского пола.

Необязательный тэг. Значение тэга `<FemaleTextSqlQuery>`: тэг [`<Text>`](#female_text_sql_query_text).

```xml
<FemaleTextSqlQuery>
  <Text>
    SELECT
    text_id AS "TextId",
    'Уважаемая, [имя]! Номер вашего заказа – [переменная]' AS "Text"
    FROM
    female_text
  </Text>
</FemaleTextSqlQuery>
```

#### Тэг `<Text>` <a href="#female_text_sql_query_text" id="female_text_sql_query_text"></a>

Содержит sql-запрос.

Обязательный тэг. Значение тэга `<Text>`: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

1. TextId (столбец обязателен только при истинном значении атрибута `Value` в тэге `<Multiple>`) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга [`<PhonesSqlQuery>`](#phones_sql_query).
2. Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге [`<Variables>`](#variables) команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями передаваемых клиентом параметров с соответствующими названиями.
