Делаем 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()));
? >