Делаем Ajax регистрацию в 1С-Битрикс без компонента, используем  Bootstrap, Jquery, Битрикс API

Для работы с формой и всплывашки подключаем bootstrap.css и bootstrap.js в /bitrix/templates/ваш_шаблон/header.php 

 форма регистрации  html код используем верстку bootstrap

Форма регистрации пишем в /bitrix/templates/ваш_шаблон/footer.php

ссылка авторизации
<a data-toggle="modal" data-target="#register-modal"  href="#">регистрация<a/>

<div class="modal fade" id="register-modal" tabindex="-1" role="dialog">
        <div class="modal-dialog modal-sm">
                <div class="modal-content">
                    <div class="modal-header">
                                <button type="button" class="close_button" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true"></span>
                                </button>
                                <h4 class="modal-title" id="myModalLabel">Регистрация</h4>                                          
                   </div>
                                <div class="modal-body">
                                        <div class="message error hide"></div>
                                                <form id="register-form">
                                                        <fieldset class="form-group">
                                                                <label for="formGroupExampleInput">Ваше имя</label>
                                                                <input type="text" name="firstname" class="form-control" id="formGroupExampleInput" placeholder="Иван">
                                                        </fieldset>
                                                        <fieldset class="form-group">
                                                                        <label for="formGroupExampleInput2">Ваша Фамилия</label>
                                                                        <input type="text" name="lastname" class="form-control" id="formGroupExampleInput2" placeholder="Иванов">
                                                        </fieldset>
                                                        <fieldset class="form-group">
                                                                <label for="exampleInputEmail1">Электронная почта</label>
                                                                <input type="email" name="email" class="form-control" placeholder="ivanovivan@gmail.com">                                                                 
                                                        </fieldset>
                                                        <fieldset class="form-group">
                                                                <label for="exampleInputPassword1">Введите пароль</label>
                                                                <input type="password" name="password" class="form-control" placeholder="******">                                                                         
                                                        </fieldset>
                                                        
                                                        <fieldset class="form-group">
                                                                <label>Пароль еще раз</label>
                                                                <input type="password" name="password_confirm" class="form-control" placeholder="******">                                                                         
                                                        </fieldset>       
                                                                
                                                        <fieldset class="form-group">
                                                                <label for="formGroupExampleInput">Текст с картинки</label>
                                                                <div class="capcja_div">
                                                                        <div class="capchatext">
                                                                                <? $CaptchaCode = htmlspecialcharsbx($APPLICATION->CaptchaGetCode()); ?>
                                                                                <input type="text" class="form-control" name="captcha_word">
                                                                                <input type="hidden" name="captcha_sid" class="captcha_sid" value="<?=$CaptchaCode?>">
                                                                        </div>
                                                                        <div class="capcha_img">
                                                                                <img src="/bitrix/tools/captcha.php?captcha_sid=<?=$CaptchaCode?>" width="160" height="40" alt="CAPTCHA" />
                                                                        </div>
                                                                        <div class="capcha_button">
                                                                                <button type="button" class="btn btn-lg capcha-button"></button>
                                                                        </div>
                                                                </div>
                                                        </fieldset>                                                               
                                                                
                                                        <div class="modal-footer">
                                                                <div>                                                                             
                                                                <button type="submit"  class="btn_blue submit">Зарегестрироваться</button>
                                                                </div>
                                                        </div>
                                        </form>
                                </div>    
                        <div class="modal-footer"></div>
                </div>
        </div>
</div>


 javascript для AJAX Авторизации, в /bitrix/templates/ваш_шаблон/ создаем папку js в нем создаем файл main,js и подключаем в шапке в /bitrix/templates/ваш_шаблон/header.php  а так же не забываем подключить библтотеки jquery и bootstarp.js
<script src="<?= SITE_TEMPLATE_PATH ?>/js/jquery.min.js"></script>
<script src="<?= SITE_TEMPLATE_PATH ?>/js/bootstrap.min.js"></script>
<script src="<?= SITE_TEMPLATE_PATH ?>/js/main.js"></script>

файл main.js
$(document).ready(function(){

        $('#register-form .reg_submit').click(function(e){
        
                $.ajax({
                        type: 'POST',
                        url: '/ajax/register.php',
                        data: $("#register-form").serialize(),
                        dataType: 'json',
                        success: function(result){
                                if (result.status) {
                                        
                                        $("#register-form .message").text(result.message);
                                        $("#register-form .message").removeClass("hide");                                       
                                        
                                        if (result.status=='success'){
                                                $("#register-form .message").removeClass("error");
                                                $("#register-form .message").addClass("success");
                                                $("#register-form .modal-body").html("");
                                                $("#register-form .modal-footer").html("");
                                        }
                                }
                        }
                });
                e.preventDefault();     
                return false;     
        });

});


К корне сайта создаем папку ajax в нем создаем файл register.php и пишем код для регистрации, используем API Битрикса

/ajax/register.php

< ?php
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
? >
< ?
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){

    if(!empty($_REQUEST['email']) and !empty($_REQUEST['firstname']) and !empty($_REQUEST['lastname']) and !empty($_REQUEST['password']) and !empty($_REQUEST['password_confirm']) ){
                
                        if($APPLICATION->CaptchaCheckCode($_REQUEST["captcha_word"], $_REQUEST["captcha_sid"])){
                                
                                global $USER;
                                global $DB;
                                $login = strip_tags($_REQUEST['email']);            
                                $firstname = strip_tags($_REQUEST['firstname']);
                                $lastname = strip_tags($_REQUEST['lastname']);
                                $email = strip_tags($_REQUEST['email']);
                                $password = strip_tags($_REQUEST['password']);
                                $password_confirm = strip_tags($_REQUEST['password_confirm']);
                
                                $bConfirmReq = (COption::GetOptionString("main", "new_user_registration_email_confirmation", "N")) == "Y";      
                                
                                $arFields = Array(
                                  "NAME"              => $firstname,
                                  "LAST_NAME"         => $lastname,
                                  "EMAIL"             => $email,
                                  "LOGIN"             => $login,
                                  "LID"               => SITE_ID,
                                  "ACTIVE"            => "N",
                                  "GROUP_ID"          => array(2),
                                  "PASSWORD"          => $password,
                                  "CONFIRM_PASSWORD"  => $password_confirm,
                                  "CHECKWORD" => md5(CMain::GetServerUniqID().uniqid()),
                                  "~CHECKWORD_TIME" => $DB->CurrentTimeFunction(),
                                  "CONFIRM_CODE" =>$bConfirmReq? randString(8): ""
                                );  
                                
                                $CUser = new CUser;
                                $USER_ID = $CUser->Add($arFields);
                                
                                if (intval($USER_ID) > 0){
                                        $result['status'] = 'success';
                                        $result['message'] = 'Вы успешно регистрировались, Вам отправлено писмо для потверждения';
                                        
                                        $arFields['USER_ID'] = $USER_ID;
                                        
                                        $arEventFields = $arFields;                             
                                        
                                        $event = new CEvent;                                    
                                        if($bConfirmReq){
                                                $event->SendImmediate("NEW_USER_CONFIRM", SITE_ID, $arEventFields);
                                        }else{
                                                $event->SendImmediate("USER_INFO", SITE_ID, $arEventFields);
                                        }
                                        // Отправляем Оповешение администратору 
                                        $event->SendImmediate("NEW_USER", SITE_ID, $arEventFields);
                                }
                                else{
                                        $result['status'] = 'error';
                                        $result['message'] = html_entity_decode($CUser->LAST_ERROR);
                                }                               
                                
                        }else{
                                $result['status'] = 'error';
                                $result['message'] = 'Не правильный код картинки';                              
                        }
    }else{
        $result['status'] = 'error';
        $result['message'] = 'Все поля обязательны для заполнения';
    }
    
    echo json_encode($result);
}
? >  
а так же добавляем jquery код в main.js для обновление капчи

        $(".capcha-button").click(function(){
                $.getJSON('/ajax/captcha.php', function(data) {
                $('.capcha_img img').attr('src','/bitrix/tools/captcha.php?captcha_sid='+data);
                $('.captcha_sid').val(data);
         });
         return false;
        });

PHP Код для обновление капчи пишем в /ajax/captcha.php

< ?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/captcha.php");

$cpt = new CCaptcha();
$cpt->Delete( $_REQUEST['captcha_sid'] );

echo json_encode(htmlspecialchars($APPLICATION->CaptchaGetCode()));
? >