Как добавить свои поля для формирования лидов в CRM системе Bitrix24

CRM битрикс 24 для лендинг пейджВсем - привет. Друзья, в одной из прошлых статей мы говорили о том, как автоматически формировать лиды в CRM системе Bitrix24 на основе данных, полученных из формы обратной связи на вашем лендинг пейдж. Но тогда мы пользовались стандартными полями, которые предоставляла нам система.

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

Создание своих полей для лидов в CRM Bitrix24

Первым делом, нужно добавить новое поле в интерфейсе вашего кабинета. Это можно сделать перейдя по такому пути: "CRM" > "Настройки" >"Настройки форм и отчетов" > "Пользовательские поля":

свои поля для лидов

Здесь жмем "Добавить поле" и переходим к следующему шагу:

Создание пользовательских полей в битрикс 24

Тут нужно указать порядок сортировки, я оставил по умолчанию, можно добавить название поля для других языковых версий. Обязательным полем является "Название". Далее, мы можем сделать его обязательным, пометив галочкой. Галочки "Показывать в фильтре" и "Показывать в списке" - нужны для удобства навигации в самой системе.

Ну и самый главный пункт - это "Тип". Здесь вы выбираете, какой тип данных будете получать (Текстовое поле, чекбокс, выпадающий список, файл и т.д.). Давайте сегодня передадим строку. Настройки других типов, могут несущественно отличаться.

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

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

Поэтому оставим их в покое, задавайте любые, а в обработчике уже настроим все :)

Я создал такую структуру:

<div class="wrapper">
<p>Оставьте ваши контакты, и наш менеджер<br/> свяжется с вами</p>
  <form id="application" action="application.php" method=post enctype="multipart/form-data">
   <input  name="metka" class="metka" type="hidden" value="метка для формы"/>
   <input  name="name"  class="userName" maxlength="50" placeholder="Введите ваше имя" required="">
   <input  name="phone"  type="tel" class="userPhone" maxlength="50" placeholder="Введите ваш телефон" required="">
   <input  name="mail"  type="email" class="userMail" maxlength="50" placeholder="Введите ваш E-mail*" required />
   <input  name="inn" class="userInn" type="text"/>
   <input class="applicationButton" type="submit" value="ОТПРАВИТЬ" />
  </form>
</div>

Здесь четыре стандартных поля и одно скрытое с классом "metka". Оно необходимо для того, чтобы при получении заявки мы понимали, из какой именно формы к нам пришло сообщение. В value для этого поля нужно написать, например, заказали обратный звонок, или заявка из формы в футере.  Кроме того, мы сделаем так, что текст из этого поля будет названием лида. Не именем, а именно названием (есть такой обязательный параметр при формировании лида в CRM системе Bitrix 24).

Теперь небольшое отступление. Если кто-то делает формы первый раз, то суть заключается в том, что мы каждому полю задаем атрибут name с определенным именем, например, name="userMail", а в php обработчике формы забираем значение, введенное пользователем в это поле.

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

<?
define('CRM_HOST', 'smartlanding.bitrix24.ru'); // Домен срм системы
define('CRM_PORT', '443'); 
define('CRM_PATH', '/crm/configs/import/lead.php'); 
define('CRM_LOGIN', 'smart-landing@yandex.ru');  // логин
define('CRM_PASSWORD', 'dfu488hojsof83'); // пароль

/********************************************************************************************/

if ($_SERVER['REQUEST_METHOD'] == 'POST'){

    // получаем данные из полей и задаем название лида
    
    $postData = array(
        'TITLE' => $_POST['metka'], // сохраняем нашу метку и формируем заголовок лида
        'NAME' => $_POST['name'],   // сохраняем имя
        'PHONE_WORK' =>$_POST['phone'], // сохраняем телефон
        'EMAIL_WORK' => $_POST['mail'], // сохраняем почту
        'UF_CRM_1443598721' => $_POST['inn'], // сохраняем ИНН
    );

    // авторизация, проверка логина и пароля
    if (defined('CRM_AUTH'))
    {
        $postData['AUTH'] = CRM_AUTH;
    }
    else
    {
        $postData['LOGIN'] = CRM_LOGIN;
        $postData['PASSWORD'] = CRM_PASSWORD;
    }

    $fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30);
    if ($fp)
    {
        // формируем и шифруем строку с данными из формы
        $strPostData = '';
        foreach ($postData as $key => $value)
            $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
            $str = "POST ".CRM_PATH." HTTP/1.0\r\n";
            $str .= "Host: ".CRM_HOST."\r\n";
            $str .= "Content-Type: application/x-www-form-urlencoded\r\n";
            $str .= "Content-Length: ".strlen($strPostData)."\r\n";
            $str .= "Connection: close\r\n\r\n";

        $str .= $strPostData;

        // отправляем запрос в срм систему
        fwrite($fp, $str );
        $result = '';
        while (!feof($fp))
        {
            $result .= fgets($fp, 128);
        }
        fclose($fp);

        $response = explode("\r\n\r\n", $result);
        $output = '<pre>'.print_r($response[1], 1).'</pre>';
    }
    else
    {
        echo 'Connection Failed! '.$errstr.' ('.$errno.')';
    }
}
?>

Тут, нас в первую очередь, интересуют эти строки:

 define('CRM_HOST', 'smartlanding.bitrix24.ru'); // Домен срм системы
 define('CRM_PORT', '443'); 
 define('CRM_PATH', '/crm/configs/import/lead.php'); 
 define('CRM_LOGIN', 'smart-landing@yandex.ru');  // логин
 define('CRM_PASSWORD', 'dfu488hojsof83'); // пароль

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

Ну а теперь, собственно, и наши поля. Битрикс принимает определенные параметры, которые заданы в системе по умолчанию. Там уже есть куча нужных и не нужных полей, таких как телефон, email, должность, имя, фамилия и т.д. Ознакомиться со всей таблицей можно в моей первой статье, ссылка на которую в начале поста. Именно ими мы и пользуемся (TITLE, NAME, PHONE_WORK, EMAIL_WORK.

$postData = array(
   'TITLE' => $_POST['metka'], // сохраняем нашу метку и формируем заголовок лида
   'NAME' => $_POST['name'],   // сохраняем имя
   'PHONE_WORK' =>$_POST['phone'], // сохраняем телефон
   'EMAIL_WORK' => $_POST['mail'], // сохраняем почту
   'UF_CRM_1443598721' => $_POST['inn'], // сохраняем ИНН
);

TITLE - это как раз то обязательное поле, о котором я говорил ранее (название лида). В него и передаем нашу метку.
С именем, телефоном и почтой - понятно. Больше всего нас интересует ИНН. Ведь такого поля в CRM системе не предусмотрено.

Помните тот id, который мы запоминали при создании нового поля? Вот именно он и будет параметром. Вот так просто все это делается. Пишем 'UF_CRM_1443598721' и передаем в него наш ИНН: $_POST['inn']. Остальное оставляем без изменений.

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

Кроме того, на этом примере легко сделать поля для приема UTM меток, и передавать их вместе с остальными данными в битрикс. О том, как передавать данные UTM меток на почту, я рассказывал вот тут По аналогии вы легко передадите их в CRM. А на сегодня - все. Буду благодарен за расшаривание статьи в социальных сетях. Спасибо. Пока.

Скачать исходник

Похожие публикации

64 комментария

  1. Ремонт

    Очень интересно! обязательно еще раз к вам загляну!

  2. Артур

    Весь интернет перерыл в поисках решения проблемы - почему то пользовательские поля не заполнялись. Ваша статья очень помогла. Спасибо большое!

    1. dimadv7

      Здорово. Я и сам долго мучался. Так как информации на эту тему практически небыло )

  3. YG

    удалите, пожалуйста предыдущий комментарий

  4. YG

    Не отправляется форма на Битрикс, на почту приходит, а в Битрикс нет.

    1. dimadv7

      Без http указан адрес битрикса?

  5. YG

    Я пробовал привязать Ваш код отправки на Битрикс к своей форме отправке на почту. У меня в форме был указан method="post" (с кавычками), когда убрал кавычки отправляться стало как на почту так и в Битрикс. Огромное спасибо за блог и информацию которой Вы с нами делитесь.

    1. dimadv7

      Никогда не сталкивался с подобной проблемой. Даже предположить не мог. Но здорово, что разобрались и от писали. Спасибо. Буду иметь ввиду. Да и другим может пригодиться.

  6. Влад

    Ошибка 500. Уже все танцы с бубном проводил =/

  7. Артем

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

    1. dimadv7

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

  8. Марк

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

  9. Марк

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

    1. dimadv7

      Ну так форма работает с условием же? То есть не отправляются данные если не заполнены обязательные поля? Вот такое же услови нужно и для скрипта отправки в битрикс.

      Или, если данные пришли методом post, то
      [/php]if ($_SERVER['REQUEST_METHOD'] == 'POST'){}[/php]
      Внутри проверить не пустые ли данные в полях:

      if (empty($_POST['userName']) || empty($_POST['userPassword'])) {}

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

  10. Марк

    Просто required="" в нужные поля формы забыл добавил)
    Спасибо за ваши статьи.
    Сейчас обратился в поддержку битрикс24, не присваивается ответственный через ASSIGNED_BY_ID, жду ответ. Потом отпишусь.

  11. Марк

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

  12. Алексей Попович

    Принимайте благодарность за такой шикарный пост! С новыми CRM-формами, к сожалению, пока что бяка - нельзя несколько форм на одной странице показывать:( Буду сейчас по этой схеме обработку собирать.

    1. dimadv7

      Спасибо)

  13. Артем

    Дмитрий, на разных формах — должны быть разные id?

    1. dimadv7

      Если по статье делаете, то да.

  14. Миша

    Подскажите пожалуйста, а передавать данные UTM меток я могу через этот скрипт в битрикс24?

    1. dimadv7

      Да, нет никакой разницы, это же такая же строка получается.

  15. Семен

    dimadv7, спасибо огромное за статью! Может знаете - как по произвольным полям отчеты в Битриксе формировать? Я передаю utm метки и хотелось бы по ним круговую диаграмму строить

    1. dimadv7

      Здравствуйте. Нет, не в курсе. Я не работал так "плотно" с битрикс24 )

  16. Александр

    Дима, привет! Отличный скрипт, все отправляется как нужно. А вот вопрос, может не по теме немного: как сделать уведомления в битриксе о приходе нового лида (там звуковые или пуш, как обычно у них в системе показываются при каком-то сообщении или событии) ? А то лид пришел "по тихому" в битрикс, так можно пропустить... В почте - там тоже не всегда можно выловить. А так удобно - пришел лид, и звуковое сопровождение. Это как-то реализовывается в этом скрипте? Или нужно в битриксе что-то копать?

    1. dimadv7

      Привет. Спасибо. Да нет, скрипт не причем, нужно в битриксе копать. По идеи должно быть уведомление какое-то. Но я не разбирался с этим. Самым быстрым способом, думаю, будет техподдержку "потрясти".

  17. smolurist.ru

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

  18. Михаил

    По поводу уведомлений. В битриксе24 при создании лида их почему-то нет.
    Уведомление приходит ответственному когда для него создается дело.
    Нашел такой костыль: В качестве почты для отправки данных файлом application.php указал email привязанный к порталу битрикс 24 . Теперь создется лид и дело и ответственному приходит уведомление, а письмо прикрепляется в ленту к лиду.

  19. Максим

    Добрый день. Подскажите пожалуйста. В Битрикс 24 есть несколько созданных мною обязательных к заполнению пользовательских полей в Лиде. Тип полей enumeration (список). Не могу разобраться как с помощью Вашего скрипта передавать значение этих полей, что бы при создании лида они автоматически заполнялись определенным значением.

    1. Надежда

      Максим, присоединяюсь к вопросу. У меня так же есть список, но его можно свести к выбору "Да/Нет" по каждому элементу списка, разведя по отдельным пользовательским полям в Битрикс24.

  20. Сетпан

    Ошибку пишет скрипт, так только не крутил

  21. Макс

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

  22. Андрей

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

    1. dimadv7

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

    2. dimadv7

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

  23. Геннадий

    Дмитрий, такой вопрос, а можно такую форму с капчей в тильду интегрировать?

    1. Дмитрий Давыдов

      Геннадий, нет. В тильду не получится, так как у конструкторов нельзя добавлять php-файлы на хостинг.

  24. Геннадий

    Ну ладно... спасибо)

  25. Геннадий

    У вас оч крутой личный сайт)

    1. Дмитрий Давыдов

      Геннадий, спасибо за теплые слова)

  26. Юрий

    Здравствуйте, Дмитрий. Спасибо за статью. Интересно, а каким образом интегрировать КВИЗ?

    1. Дмитрий Давыдов

      А в чем разница?

  27. Юрий

    Добрый день. У меня на лэндинге несколько форм плюс квиз. Пока пробую на одной. Вот структура:
    "

    Прикрепить файл

    Перезвоните мне

    "
    Файл application.php поместил в корень сайта. Логин и пароль заменил. Пробую отправить, не приходит ни на почту, ни в ЦРМ.
    Подскажите, пожалуйста в чем ошибка!

    1. Дмитрий Давыдов

      Без понятия как отправить файл. Начните с простого отправьте имя и телефон, например.

  28. Юрий

    Да что же такое!!! форма не вставляется! Сайт вот: _https://podokonniki.hpltop.ru/
    Форма Вам знакома

    1. Дмитрий Давыдов

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

  29. Юрий

    Да, спасибо. Попробую

  30. Юрий

    Попробовал.
    1. Залил в корень вся файлы исходника. Заменил данные для CRM.
    Результат: Данные в CRM уходят. На почту - нет
    2. В исходном файле заменил формы (вставил из своего сайта)
    Результат: Данные в CRM уходят. На почту - нет
    3. Когда в корень вернул все папки и стили, форма работать перестала

    1. Дмитрий Давыдов

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

  31. Юрий

    Сделал еще раз все постепенно. Шаг за шагом. Все данные отправляются на CRM только до того момента, пока я не помещаю рабочую структуру формы на сайт. Форма простая только имя и телефон. Но, на сайте не отправляет и соответственно не перебрасывает на страницу благодарности.
    Экспериментирую пока только на одной форме

  32. Юрий

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

  33. Юрий

    Опять не пускает код <form
    class="form-element site-form"

    autocomplete="on"

    1. Дмитрий Давыдов

      Отлично. Чтобы добавить код в комментарии заключите его, например в [ html ] //тут код [ / html ] в скобках только не ставьте пробелы. Если это php то ставьте [ php ] [ /php ] и если JS, то [ javascript ] //код [ /javascript ]. Обязательно уберите пробелы в скобках. Тогда будет так:

      <form class="form-element site-form" autocomplete="on"> 
  34. Юрий

    Понятно, Дмитрий, спасибо. А не подскажите, как добиться того, чтобы когда не заполнены поля, форма не отправлялась?

  35. Юрий

    Доброе утро :), Дмиртий. Вот с этим "как добиться того, чтобы когда не заполнены поля, форма не отправлялась" .... разобрался.
    Теперь два момента.
    1. Отправка почты. Не отправляет. Я из файла application1.php (из вашей статьи https://smartlanding.biz/crm-sistema-bitrix24-dlya-landing-page.html) добавил вот этот код на свою страницу благодарности

    $leadData['NAME'],
    'Телефон' => $leadData['PHONE_WORK'],
    'Город:' => $leadData['ADDRESS'],
    'Комментарий:' => $leadData['COMMENTS'],
    );
    $strPostData = '';
    foreach ($postData as $key => $value)
    $strPostData .= ($strPostData == '' ? '' : ' ').$key.' '.($value)."";
    $str .= "Заявка: ".($strPostData)."\r\n";
    require 'class.phpmailer.php'; //Дополнительный скрипт для отправки файла, можете не открывать, просто положите рядом с index.html и этим файлом.
    $mail = new PHPMailer();
    $mail->From = 'site@hpl-plita.by'; // от кого
    $mail->FromName = 'hpl-plita.by'; // от кого Имя
    $mail->AddAddress('ymelik-2009@yandex.ru', 'Имя'); // кому Ваша почта, Имя
    $mail->IsHTML(true); // формат письма HTML
    $mail->Subject = "Новая заявка"; // тема письма
    // если есть файл, то прикрепляем его к письму
    if(isset($_FILES['upl'])) {
    if($_FILES['upl']['error'] == 0){
    $mail->AddAttachment($_FILES['upl']['tmp_name'], $_FILES['upl']['name']);
    }
    }
    $mail->Body = $str;
    // отправляем наше письмо
    if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
    }

    if (!empty($_POST['submit'])) complete_mail();
    else show_form();
    ?>
    Но, ничего на почту не приходит.... Файл class.phpmailer.php в корень добавил

    2. И вторая проблема: "как отправить с формы файл в битрикс". Погуглил, решения не нашел

    1. Дмитрий Давыдов

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

  36. Юрий

    Да, Дмитрий, добились. Без Битрикса все работает. Но теперь, как примирить почту в том виде, в котором была настроена не знаю.
    Пробовал вставить код из config.php на страницу application.php... не срабатывает.
    А почта очень нужна. Т.к. отправлять КВИЗ в лиды неблагодарное дело. Проще интегрироваться с почтовым ящиком.

  37. Юрий

    Нет, Дмитрий, никак. Для эксперимента пока не интегрировал в Битрикс КВИЗ, он на почту отправляется. А формы - уходят только на Битрикс. Беда!

  38. Юрий

    Дмитрий, поможете советом? Вы писали: "Но мы же на вашем сайте добились того, чтобы письма уходили на почту. Используйте его."
    Я не понимаю, кого его?
    Получается, добавив в структуру формы action="spasibo.php" (я переименовал файл application.php) отправки почты перестает работать и отправляет только в CRM.
    В остальном структура формы не менялась:

    Прикрепить файл

    Перезвоните мне

    Папка mail в корне присутствует (квиз отправляется отлично). Те. понимаю, что либо в структуру формы, либо в файл spasibo.php надо что-то добавлять. А что без понятия. Помогите, пожалуйста, Дмитрий

    1. Дмитрий Давыдов

      У вас есть обработчики формы. Код с отправкой в битрикс нужно интегрировать в него. Когда данные успешно отправлены на почту, нужно отправлять их и в CRM. Структуру сайтов не понмю уже.

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

  39. Юрий

    Здравствуйте, Дмитрий. Воз и ныне там. Не понимаю ничего в PHP
    Почта настроена как в вашей статье https://smartlanding.biz/sozdanie-formy-obratnoj-svyazi.html
    И отправка прекрасно работала, пока не стал интергировать отправку форм в Битрикс.
    "Когда данные успешно отправлены на почту, нужно отправлять их и в CRM." - вот эта фраза - для меня темный лес.
    Я так понимаю, есть какие-то основные файлы для отправки почты, которые находятся в папке mail (mail.js, mail.php, config.php, valid) и еще файлы в папке phpmailer.
    Кроме того, в корень добавился файл application.php Ну и в структуру формы добавился код Вот сама структура (файл application.php заменен на application.php):
    form id="open-form_2" action="spasibo.php" method=post enctype="multipart/form-data" autocomplete="on">

    Прикрепить файл

    Перезвоните мне

    /form

    Отправка форм на Бирикс отлично работает, но с почтой не понимаю.
    Какой код куда вставлять? Предполагаю, что код для интеграции в Битрикс из файла spasibo.php нужно вставить в файл config.php?
    Но, как там увяжутся между собой параметhы name
    В обще все сумбурно и безграмотно, извините.

  40. Юрий

    Опять не прошла форма
    id="open-form_2" action="spasibo.php" method=post enctype="multipart/form-data" autocomplete="on">

    Прикрепить файл

    Перезвоните мне

    1. Дмитрий Давыдов

      action="spasibo.php" - вот это не нужно, если мы используем JS для отпрвки запроса.

      Вам нужно трогать только mail.php config.php, valid.php и mail.js. их объединять с обработчиком битрикса. Вся задача и состоит в том, что бы данные из полей форм увязать между обработчиком, который отправляет на почту и обработчиком битрикса. Это все будет в файлах mail.php config.php, valid.php и mail.js

  41. Юрий

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

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