Доработал ридми. Добавил каталоги настроек сервиса на внутреннем веб сервере и каталог с файлами виджета.
This commit is contained in:
		
							parent
							
								
									adb845c42d
								
							
						
					
					
						commit
						325aee9d5b
					
				| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
##То что нужно добавить в ваш конфиг Apache чтоб опубликовать базу 1С.
 | 
			
		||||
 | 
			
		||||
# StatusForm publication
 | 
			
		||||
#Alias "/statusform" "/var/www/statusform/"
 | 
			
		||||
<Directory "/var/www/html/statusform/">
 | 
			
		||||
    AllowOverride AuthConfig FileInfo Limit
 | 
			
		||||
</Directory>
 | 
			
		||||
 | 
			
		||||
# 1c publication
 | 
			
		||||
Alias "/emp" "/var/www/emp/"
 | 
			
		||||
<Directory "/var/www/emp/">
 | 
			
		||||
    AllowOverride All
 | 
			
		||||
    Options None
 | 
			
		||||
    Require all granted
 | 
			
		||||
    SetHandler 1c-application
 | 
			
		||||
    ManagedApplicationDescriptor "/var/www/emp/default.vrd"
 | 
			
		||||
</Directory>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# !ОБЯЗАТЕЛЬНО! прописываем в строке ниже путь к установленной библиотеке 1С
 | 
			
		||||
# Релиз установленного 1С в Apache должен совпадать с релизом платформы установленной на сервере 1С
 | 
			
		||||
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.20.1996/wsap24.so"
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
 | 
			
		||||
		xmlns:xs="http://www.w3.org/2001/XMLSchema"
 | 
			
		||||
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
			
		||||
		base="/emp"
 | 
			
		||||
		ib="Srvr=YourServer1C;Ref=NameBase1C;usr=UserForService;pwd=SecretPassword" enable="false">
 | 
			
		||||
		<debug enable="true"
 | 
			
		||||
		url="YourServer1C"/>
 | 
			
		||||
	<standardOdata enable="false"
 | 
			
		||||
			reuseSessions="autouse"
 | 
			
		||||
			sessionMaxAge="20"
 | 
			
		||||
			poolSize="10"
 | 
			
		||||
			poolTimeout="5"/>
 | 
			
		||||
	<analytics enable="true"/>
 | 
			
		||||
	<httpServices>
 | 
			
		||||
		<service name="HS_CSM_API"
 | 
			
		||||
		rootUrl="CSM-API"
 | 
			
		||||
		enable="true"/>
 | 
			
		||||
	</httpServices>
 | 
			
		||||
</point>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
<?php
 | 
			
		||||
 | 
			
		||||
$post = file_get_contents('php://input');
 | 
			
		||||
//echo $post; // прилетает строкаю json сразу
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
// Если надо разбить по параметрам
 | 
			
		||||
$params = json_decode($post,true);
 | 
			
		||||
echo $params['urfiz'].' | '.$params['INN'].' | '.$params['strNumDoc'];
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
$url = 'http://name.or.ip.adrees.your.web.server/statusDoc';
 | 
			
		||||
 | 
			
		||||
$result = file_get_contents($url, false, stream_context_create(array(
 | 
			
		||||
    'http' => array(
 | 
			
		||||
    'method'  => 'POST',
 | 
			
		||||
    'header'  => 'Content-type: application/json', //'Content-type: application/x-www-form-urlencoded',
 | 
			
		||||
    'content' => $post//json_encode($post) //http_build_query($params)
 | 
			
		||||
)
 | 
			
		||||
)));
 | 
			
		||||
 | 
			
		||||
// $arr = json_decode($result);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// тестовый ответ
 | 
			
		||||
//sleep(5); // имитация ожидания ответа от сервака 5 sec
 | 
			
		||||
//$str='[{"Контрагент":"Общество с ограниченной ответственностью \"Фотон сервис\"","Заявка":"Заказ 00НОЕМ-000035 от 10.02.2021 16:24:35","СтатусЗаявки":"Зарегистрировано","Счет":"Счет покупателю 00000000711 от 10.02.2021 16:31:20","НаличиеОплаты":"Оплаты нет","СуммаОплаты":0},	{"Контрагент":"Общество с ограниченной ответственностью \"Фотон сервис\"","Заявка":"Заказ 00НОЕМ-000043 от 12.02.2021 11:32:58","СтатусЗаявки":"Зарегистрировано","Счет":"Счет покупателю 00000000793 от 12.02.2021 11:33:21","НаличиеОплаты":"Оплаты нет","СуммаОплаты":0},	{"Контрагент":"Общество с ограниченной ответственностью \"Фотон сервис\"","Заявка":"Заказ НРО-ЗАК-00072 от 24.03.2021 15:09:49","СтатусЗаявки":"Выполняется","Счет":"Счет покупателю НРО-СЧ-0065 от 24.03.2021 15:10:18","НаличиеОплаты":"Оплата есть","СуммаОплаты":12166.2},	{"Контрагент":"Общество с ограниченной ответственностью \"Фотон сервис\"","Заявка":"Заказ НРО-ЗАК-00276 от 23.06.2021 11:19:58","СтатусЗаявки":"Выполняется","Счет":"Счет покупателю НРО-СЧ-0312 от 07.07.2021 14:17:04","НаличиеОплаты":"Оплата есть","СуммаОплаты":89602.2}]';
 | 
			
		||||
//echo $str;
 | 
			
		||||
 | 
			
		||||
echo $result;
 | 
			
		||||
?>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,164 @@
 | 
			
		|||
<!DOCTYPE html>
 | 
			
		||||
<html lang="ru">
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    <title>ФБУ "Якутский ЦСМ"| Проверка статуса Заявки клиента</title>
 | 
			
		||||
    <link rel='stylesheet' href='style.css' />
 | 
			
		||||
   
 | 
			
		||||
    <!--
 | 
			
		||||
   <style>
 | 
			
		||||
      red{color: red;}
 | 
			
		||||
      divcenter {
 | 
			
		||||
          width: 680px;
 | 
			
		||||
          display: block;
 | 
			
		||||
          top: 20%;
 | 
			
		||||
          left: 25%;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
       }
 | 
			
		||||
 
 | 
			
		||||
      ErrorMessage{
 | 
			
		||||
         color: red;  
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
      div.new_form {
 | 
			
		||||
          width: 600px;
 | 
			
		||||
          border: 1px solid red;
 | 
			
		||||
          display: block;
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
      div.new_form input[type="text"] {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          margin-top: 10px;
 | 
			
		||||
          padding: 10px 0;
 | 
			
		||||
          text-indent: 15px;
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
       div.new_form input[type="number"] {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          margin-top: 10px;
 | 
			
		||||
          padding: 10px 0;
 | 
			
		||||
          text-indent: 15px;
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
       div.new_form input[type="radio"] {
 | 
			
		||||
          width: 15px;
 | 
			
		||||
          padding: 10px 0;
 | 
			
		||||
          text-indent: 1px;
 | 
			
		||||
       }
 | 
			
		||||
 
 | 
			
		||||
       div.new_form input[type="submit"] {
 | 
			
		||||
          float: right;
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
       div.new_form input {
 | 
			
		||||
          width: 49%;
 | 
			
		||||
          margin-top: 10px;
 | 
			
		||||
          padding: 10px 0;
 | 
			
		||||
          text-indent: 15px;
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
       div.new_form {
 | 
			
		||||
          width: 600px;
 | 
			
		||||
          border: 1px solid #cecece;
 | 
			
		||||
          display: block;
 | 
			
		||||
          height: 210px;
 | 
			
		||||
          padding: 40px;     box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 3px 6px rgba(0,0,0,0.22);     margin: auto;
 | 
			
		||||
       }
 | 
			
		||||
 
 | 
			
		||||
       h2.forms {
 | 
			
		||||
          text-align: center;
 | 
			
		||||
          font-family: sans-serif;
 | 
			
		||||
          font-weight: 100;
 | 
			
		||||
          color: #4d5d53;
 | 
			
		||||
          text-transform: uppercase;
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
       /* начало раскраски кнопок RADIO */
 | 
			
		||||
 | 
			
		||||
       .form_radio_btn {
 | 
			
		||||
      	display: inline-block;
 | 
			
		||||
      	/* margin-right: 10px; */
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
       .form_radio_btn input[type=radio] {
 | 
			
		||||
      	display: none;
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
       .form_radio_btn label {
 | 
			
		||||
         width: 266px;
 | 
			
		||||
      	display: inline-block;
 | 
			
		||||
      	cursor: pointer;
 | 
			
		||||
      	padding: 0px 15px;
 | 
			
		||||
      	line-height: 35px;
 | 
			
		||||
      	border: 1px solid #999;
 | 
			
		||||
      	border-radius: 6px;
 | 
			
		||||
      	user-select: none;
 | 
			
		||||
       }
 | 
			
		||||
 
 | 
			
		||||
       /* Checked */
 | 
			
		||||
       .form_radio_btn input[type=radio]:checked + label {
 | 
			
		||||
      	background: #ffe0a6;
 | 
			
		||||
       }
 | 
			
		||||
 
 | 
			
		||||
       /* Hover */
 | 
			
		||||
       .form_radio_btn label:hover {
 | 
			
		||||
      	color: #666;
 | 
			
		||||
       }
 | 
			
		||||
 
 | 
			
		||||
       /* Disabled */
 | 
			
		||||
       .form_radio_btn input[type=radio]:disabled + label {
 | 
			
		||||
      	background: #efefef;
 | 
			
		||||
      	color: #666;
 | 
			
		||||
       } 
 | 
			
		||||
 | 
			
		||||
       /* конец раскраски кнопок RADIO */
 | 
			
		||||
  
 | 
			
		||||
       rezult {
 | 
			
		||||
          display: block;
 | 
			
		||||
          margin: 14px;
 | 
			
		||||
       }
 | 
			
		||||
       
 | 
			
		||||
       #result_table {
 | 
			
		||||
	        position:relative;
 | 
			
		||||
			margin-top:100px;
 | 
			
		||||
			top:0;
 | 
			
		||||
			width: 680px;
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
    </style> -->
 | 
			
		||||
    <script src="script.js"></script>
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
    <divcenter>
 | 
			
		||||
    <h2 class="forms">Проверка статуса готовности</br> по номеру Заявки / Счета</h2>
 | 
			
		||||
    <div id="ErrorMessage" class="ErrorMessage"></div>
 | 
			
		||||
    <!-- <rezult><? echo $info;?></rezult> -->
 | 
			
		||||
        <div class="new_form">     
 | 
			
		||||
            <div class="form_radio_btn">
 | 
			
		||||
	            <input type="radio" name="urfiz" id="ur" value="ur" checked oninput="btnClick();">
 | 
			
		||||
	            <label for="ur">Юридическое лицо</label>
 | 
			
		||||
	            <input type="radio" name="urfiz" id="fiz" value="fiz" oninput="btnClick();">
 | 
			
		||||
	            <label for="fiz">Физическое лицо</label>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <input type="text" name="INN" id="INN" placeholder="ИНН юр.лица" oninput="checkRegExpValNumber();">
 | 
			
		||||
            <input type="text" name="strNumDoc" id="strNumDoc" placeholder="Номера документов через запятую" oninput="checkRegExpValRusNum()">
 | 
			
		||||
            
 | 
			
		||||
            <input type="submit" id="submit_btn" value="Получить данные" onclick="return send_data();">
 | 
			
		||||
            <div id="bottom_text">
 | 
			
		||||
               <p>
 | 
			
		||||
               Порядок действий: <br>
 | 
			
		||||
               1. Выбрать представление Контрагента - Юр.лицо / Физ.лицо <br>
 | 
			
		||||
               2. (Опционально) Для Юр.лица указать ИНН <br>
 | 
			
		||||
               3. Внести список номеров документов, разделенных запятой <br>
 | 
			
		||||
               ... Пример: ТТ-ЗАК-00123,ЭЛР-СЧ-01234 и т.д. Желательно, не более 5 номеров <br>
 | 
			
		||||
               4. Нажать кнопку "Получить данные"</p>
 | 
			
		||||
            </div>   
 | 
			
		||||
    </div>
 | 
			
		||||
    <div id="result_table"></div>
 | 
			
		||||
    </divcenter>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,181 @@
 | 
			
		|||
function btnClick()
 | 
			
		||||
{
 | 
			
		||||
            var errorText = "";
 | 
			
		||||
            var INNVal = "";
 | 
			
		||||
            var urfiz = "";
 | 
			
		||||
 | 
			
		||||
            //urfiz = GetValChackedRadioButton('urfiz');
 | 
			
		||||
            urfiz = document.querySelector('input[name="urfiz"]:checked').value;
 | 
			
		||||
            INNVal = document.getElementById('INN').value;
 | 
			
		||||
            errorText = '';
 | 
			
		||||
 | 
			
		||||
            if (urfiz == "fiz" & INNVal.length != 0){
 | 
			
		||||
                errorText = 'Для физ.лиц задавать ИНН не нужно.';
 | 
			
		||||
                document.getElementById('INN').value = "";
 | 
			
		||||
                INNVal = document.getElementById('INN').value;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (urfiz == "fiz" & INNVal.length == 0){
 | 
			
		||||
                document.getElementById('INN').hidden = true;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (urfiz == "ur" & INNVal.length == 0){
 | 
			
		||||
                document.getElementById('INN').hidden = false;
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            if (errorText != ""){
 | 
			
		||||
                    document.getElementById('ErrorMessage').hidden = false;
 | 
			
		||||
                    document.getElementById('ErrorMessage').innerHTML="<HR color='red'>"+
 | 
			
		||||
                    "ВНИМАНИЕ: " + errorText.bold() + "<HR color='red'>";
 | 
			
		||||
                }else{
 | 
			
		||||
                    document.getElementById('ErrorMessage').hidden = true;    
 | 
			
		||||
                }
 | 
			
		||||
            //alert(document.querySelector("#INN").value);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function checkRegExpValNumber(){
 | 
			
		||||
    //тут проверяем, а не входит ли случайно введеный символ в инн,
 | 
			
		||||
    // в список НЕ цифр. Если символ не цифра, то ругаемся и удаляем символ.
 | 
			
		||||
    const inn = document.querySelector('input[name="INN"]');
 | 
			
		||||
    inn.addEventListener('input', updateValueInn);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function updateValueInn(letter){
 | 
			
		||||
    var reg = /^\d{10}$/;
 | 
			
		||||
    var bukva = letter.target.value; //получаем измененную строку
 | 
			
		||||
    var validNum = reg.test(bukva);
 | 
			
		||||
 | 
			
		||||
    if (!validNum) {
 | 
			
		||||
        var errorText = "ИНН должен состоять ТОЛЬКО из цифр и составлять 10 знаков";
 | 
			
		||||
        document.getElementById('ErrorMessage').hidden = false;
 | 
			
		||||
        document.getElementById('ErrorMessage').innerHTML="<HR color='red'>"+
 | 
			
		||||
        "ВНИМАНИЕ: " + errorText.bold() + "<HR color='red'>";
 | 
			
		||||
    }else{
 | 
			
		||||
        var errorText = "";
 | 
			
		||||
        document.getElementById('ErrorMessage').hidden = true;
 | 
			
		||||
        document.getElementById('ErrorMessage').innerHTML="";
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function checkRegExpValRusNum(){
 | 
			
		||||
    const strNumDoc = document.querySelector('input[name="strNumDoc"]');
 | 
			
		||||
    strNumDoc.addEventListener('input', updateValueStrNumDoc);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function updateValueStrNumDoc(letter){
 | 
			
		||||
    var reg = /^[-\s,а-яА-ЯёЁ0-9]+$/;
 | 
			
		||||
    var bukva = letter.target.value; //получаем измененную строку
 | 
			
		||||
    var validNum = reg.test(bukva);
 | 
			
		||||
 | 
			
		||||
    if (!validNum) {
 | 
			
		||||
        var errorText = "Строка с номерами может содержать только кирилицу, тире, числа и запятые \n Пример: ТТ-ЗАК-01234, ЭЛР-СЧ-12345";
 | 
			
		||||
        document.getElementById('ErrorMessage').hidden = false;
 | 
			
		||||
        document.getElementById('ErrorMessage').innerHTML="<HR color='red'>"+
 | 
			
		||||
        "ВНИМАНИЕ: " + errorText.bold() + "<HR color='red'>";
 | 
			
		||||
    }else{
 | 
			
		||||
        var errorText = "";
 | 
			
		||||
        document.getElementById('ErrorMessage').hidden = true;
 | 
			
		||||
        document.getElementById('ErrorMessage').innerHTML="";
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//***************** K0t0vICH ***************/
 | 
			
		||||
function send_data(){
 | 
			
		||||
	// блочим кнопку отправки запроса
 | 
			
		||||
    //startCheck("submit_btn");
 | 
			
		||||
	toggleButton("submit_btn");
 | 
			
		||||
	
 | 
			
		||||
	// удаляем предыдущую таблицу
 | 
			
		||||
	if (document.querySelector('#result_table').childNodes.length>0) {
 | 
			
		||||
		document.querySelector('#result_table').removeChild(document.querySelector('#result_table').childNodes[0]);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	// Данные формы
 | 
			
		||||
    const params = {
 | 
			
		||||
		urfiz: document.querySelector('input[name="urfiz"]:checked').value,
 | 
			
		||||
        INN: document.querySelector('#INN').value,
 | 
			
		||||
        strNumDoc: document.querySelector('#strNumDoc').value
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var http = new XMLHttpRequest();
 | 
			
		||||
    http.open('POST', 'action.php', true);
 | 
			
		||||
    http.setRequestHeader('Content-type', 'application/json');
 | 
			
		||||
	http.onreadystatechange = function() { // Ожидание ответа
 | 
			
		||||
	    if(http.readyState == 4 && http.status == 200) {
 | 
			
		||||
	        console.log(http.responseText);  // проверка приходящих параметров
 | 
			
		||||
	        // разблокируем кнопку отправки запроса
 | 
			
		||||
	        toggleButton("submit_btn");
 | 
			
		||||
	        
 | 
			
		||||
			var result_table = JSON.parse(http.responseText);
 | 
			
		||||
 | 
			
		||||
			// Заголовки таблицы
 | 
			
		||||
	        var col = [];
 | 
			
		||||
	        for (var i = 0; i < result_table.length; i++) {
 | 
			
		||||
	            for (var key in result_table[i]) {
 | 
			
		||||
	                if (col.indexOf(key) === -1) {
 | 
			
		||||
	                    col.push(key);
 | 
			
		||||
	                }
 | 
			
		||||
	            }
 | 
			
		||||
	        }
 | 
			
		||||
 | 
			
		||||
			// Создаем таблицу
 | 
			
		||||
	        var table = document.createElement("table");
 | 
			
		||||
	        var tr = table.insertRow(-1);                   // TABLE ROW.
 | 
			
		||||
	        for (var i = 0; i < col.length; i++) {
 | 
			
		||||
	            var th = document.createElement("th");      // TABLE HEADER.
 | 
			
		||||
	            th.innerHTML = col[i];
 | 
			
		||||
	            tr.appendChild(th);
 | 
			
		||||
	        }
 | 
			
		||||
 | 
			
		||||
	        // JSON DATA -> ROWS.
 | 
			
		||||
	        for (var i = 0; i < result_table.length; i++) {
 | 
			
		||||
	
 | 
			
		||||
	            tr = table.insertRow(-1);
 | 
			
		||||
	
 | 
			
		||||
	            for (var j = 0; j < col.length; j++) {
 | 
			
		||||
	                var tabCell = tr.insertCell(-1);
 | 
			
		||||
	                tabCell.innerHTML = result_table[i][col[j]];
 | 
			
		||||
	            }
 | 
			
		||||
	        }
 | 
			
		||||
 | 
			
		||||
	        // Создаем таблицу в контейнере
 | 
			
		||||
	        var divContainer = document.getElementById("result_table");
 | 
			
		||||
	        divContainer.innerHTML = "";
 | 
			
		||||
	        divContainer.appendChild(table);
 | 
			
		||||
 | 
			
		||||
			// скролим строницу на таблицу результатов
 | 
			
		||||
	        document.getElementById("result_table").scrollIntoView();
 | 
			
		||||
	        
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
    http.send(JSON.stringify(params)); // упаковываем!
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
function startCheck(button_id){
 | 
			
		||||
    var el = document.getElementById(button_id);
 | 
			
		||||
    var urfiz = document.getElementsByName("urfiz");
 | 
			
		||||
    if (!urfiz["ur"].checked && !urfiz["ur"].checked){
 | 
			
		||||
        el.value = "Не выбрано Юр./Физ.лицо"
 | 
			
		||||
        el.disabled = true$
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        el.value = "Получить данные";
 | 
			
		||||
        el.disabled = false; 
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function toggleButton(button_id) 
 | 
			
		||||
{
 | 
			
		||||
   var el = document.getElementById(button_id);
 | 
			
		||||
   if (el.value == "Запрос обрабатывается...") 
 | 
			
		||||
   {
 | 
			
		||||
       el.value = "Получить данные";
 | 
			
		||||
       el.disabled = false;
 | 
			
		||||
   }
 | 
			
		||||
   else 
 | 
			
		||||
   {
 | 
			
		||||
     el.value = "Запрос обрабатывается...";
 | 
			
		||||
     el.disabled = true;
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,175 @@
 | 
			
		|||
red{
 | 
			
		||||
    color: red;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
divcenter {
 | 
			
		||||
    width: 760px;
 | 
			
		||||
    display: block;
 | 
			
		||||
    top: 5%;
 | 
			
		||||
    left: 25%;
 | 
			
		||||
    position: absolute;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
ErrorMessage{
 | 
			
		||||
   color: red;  
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
/*
 | 
			
		||||
div.new_form {
 | 
			
		||||
    width: 680px;
 | 
			
		||||
    border: 1px solid red;
 | 
			
		||||
    display: block;
 | 
			
		||||
 }*/
 | 
			
		||||
 | 
			
		||||
 div.new_form {
 | 
			
		||||
    width: 680px;
 | 
			
		||||
    border: 1px solid #cecece;
 | 
			
		||||
    display: block;
 | 
			
		||||
    height: 320px;
 | 
			
		||||
    padding: 40px;     
 | 
			
		||||
    box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 3px 6px rgba(0,0,0,0.22);
 | 
			
		||||
    margin: auto;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
div.new_form input[type="text"] {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
    padding: 10px 0;
 | 
			
		||||
    text-indent: 15px;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 div.new_form input[type="number"] {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
    padding: 10px 0;
 | 
			
		||||
    text-indent: 15px;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 div.new_form input[type="radio"] {
 | 
			
		||||
    width: 15px;
 | 
			
		||||
    padding: 10px 0;
 | 
			
		||||
    text-indent: 1px;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 div.new_form input[type="submit"] {
 | 
			
		||||
    float: right;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 div.new_form input {
 | 
			
		||||
    width: 49%;
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
    padding: 10px 0;
 | 
			
		||||
    text-indent: 15px;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 h2.forms {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-family: sans-serif;
 | 
			
		||||
    font-weight: 100;
 | 
			
		||||
    color: #4d5d53;
 | 
			
		||||
    text-transform: uppercase;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 /* начало раскраски кнопок RADIO */
 | 
			
		||||
 | 
			
		||||
 .form_radio_btn {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    /* margin-right: 10px; */
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 .form_radio_btn input[type=radio] {
 | 
			
		||||
    display: none;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 .form_radio_btn label {
 | 
			
		||||
   width: 306px;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    padding: 0px 15px;
 | 
			
		||||
    line-height: 35px;
 | 
			
		||||
    border: 1px solid #999;
 | 
			
		||||
    border-radius: 6px;
 | 
			
		||||
    user-select: none;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 /* Checked */
 | 
			
		||||
 .form_radio_btn input[type=radio]:checked + label {
 | 
			
		||||
    background: #ffe0a6;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 /* Hover */
 | 
			
		||||
 .form_radio_btn label:hover {
 | 
			
		||||
    color: #666;
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 /* Disabled */
 | 
			
		||||
 .form_radio_btn input[type=radio]:disabled + label {
 | 
			
		||||
    background: #efefef;
 | 
			
		||||
    color: #666;
 | 
			
		||||
 } 
 | 
			
		||||
 | 
			
		||||
 /* конец раскраски кнопок RADIO */
 | 
			
		||||
 | 
			
		||||
 rezult {
 | 
			
		||||
    display: block;
 | 
			
		||||
    margin: 14px;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 /*
 | 
			
		||||
 #result_table {
 | 
			
		||||
      position:relative;
 | 
			
		||||
      margin-top:70px;
 | 
			
		||||
      top:0;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      display: block;
 | 
			
		||||
      border: 1px solid #cecece;
 | 
			
		||||
      box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 3px 6px rgba(0,0,0,0.22);
 | 
			
		||||
      margin: auto;
 | 
			
		||||
  }
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 /* раскраска таблицы */
 | 
			
		||||
 #result_table table {
 | 
			
		||||
	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
 | 
			
		||||
	border-collapse: collapse;
 | 
			
		||||
	/*width: 600px;*/
 | 
			
		||||
   /*height: 210px;*/
 | 
			
		||||
   padding: 10px;     
 | 
			
		||||
   position:relative;
 | 
			
		||||
   margin-top:15px;
 | 
			
		||||
   top:15px;
 | 
			
		||||
   width: 100%;
 | 
			
		||||
   display: block;
 | 
			
		||||
   border: 1px solid #cecece;
 | 
			
		||||
   box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 3px 6px rgba(0,0,0,0.22);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#result_table table td, table th {
 | 
			
		||||
	border: 1px solid #ddd;
 | 
			
		||||
	padding: 4px;
 | 
			
		||||
}
 | 
			
		||||
#result_table table tr:nth-child(even){
 | 
			
		||||
	background-color: #f2f2f2;
 | 
			
		||||
}
 | 
			
		||||
#result_table table tr:hover {
 | 
			
		||||
	background-color: #ddd;
 | 
			
		||||
}
 | 
			
		||||
#result_table table th {
 | 
			
		||||
	padding-top: 8px;
 | 
			
		||||
	padding-bottom: 8px;
 | 
			
		||||
	text-align: left;
 | 
			
		||||
	background-color: #808583;
 | 
			
		||||
	color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#bottom_text p {
 | 
			
		||||
   display: inline-block;
 | 
			
		||||
   position:relative;
 | 
			
		||||
   margin-top: 10px; 
 | 
			
		||||
   border: 1px solid rgb(219, 11, 11);
 | 
			
		||||
   border-radius: 6px;
 | 
			
		||||
   padding: 10px;     
 | 
			
		||||
   top:5px;
 | 
			
		||||
   width: 97%;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -12,7 +12,9 @@
 | 
			
		|||
 | 
			
		||||
- **README.MD** - Непосредственно этот файл, который является инструкцией и описанием всего проекта и расширения.
 | 
			
		||||
- **HTTPServices.cfe** - файл расширения, который нужно добавить в рабочую базу 1С ЕМП.
 | 
			
		||||
- **HTTPServices\default.vrd** - файл настроек публикации и подключения HTTP сервиса на стороне веб сервера Apache.
 | 
			
		||||
- **HTTPServices\emp\default.vrd** - файл настроек публикации и подключения HTTP сервиса на стороне веб сервера Apache.
 | 
			
		||||
- **HTTPServices\statusform** - папка с файлами виджета, которую нужно настроить и перенести на сторону каталога сайта.
 | 
			
		||||
- **HTTPServices\statusform\action.php** - файл обработка, производит непосредственный запрос на сторону нашего веб сервера, для связи с HTTP сервисом. В этом файле нужно указать внешний путь к опубликованному сервису.
 | 
			
		||||
- **HTTPServises\apache.conf** - файл с блоком настроек на стороне веб сервера Apache, для реализации публикации HTTP сервиса во вне.
 | 
			
		||||
 | 
			
		||||
## Источники вдохновения, основа кода расширения, и чтиво для понимания. (ссылки)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue