Мой опыт небольшого проекта с веб-сервисами (Часть 2)

05.10.18

Интеграция - WEB-интеграция

Продолжение публикации по веб-сервису для реализации странички с выводом данных.

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

Остановились на том, что в 1С создали веб-сервис и сделали его публикацию

На данный момент у вас должен отображаться ответ по ссылке http://<имя_сервера>/<имя_базы>/ws/<имя_сервиса>?wsdl, "имя базы " -то имя которое указано при публикации. Еще одно важное отступление, пароль пользователя для аутентификации указывается в файле default.vrd в явном виде, в разделе ib="File=&quot;<каталог_базы>&quot;;Usr=&quot;<имя_пользователя>&quot;;Pwd=&quot;<пароль>&quot;;" для серверной базы соответственно строка подключения в начале будет отличаться.

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

<html>

   <head>
	<link rel = "stylesheet" href ="mystyle.css" type="text/css">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	
   
   </head>

	<body class ="m_body">
		<style type="text/css">
			h1 {
				text-align: center;
				background: "#6496c8";	
			}
			table {
				border-collapse: collapse;
				margin: auto;
			}
			table.brd th,
			table.brd td {
				border: 1px solid #000;
				font-size: 14px;
				font-family: Arial;
				padding: 10px 5px 5px 5px;
				border-color:  #6496c8;
				background: white;
			}
			table.brd th {
				color: #fff;
				text-shadow: -1px 1px #417cb8;
				border-color: #fff;
				background: #6496c8;	
			}
		</style>	
		
		<h1 style = "background=#6496c8">
			Журнал документов <br>
						
		</h1>
		
		<form method= "get" accept-charset=="utf-8">
		
		<p class = "p" >Поставщик (часть наименования): 
			<input name ="vender" type="string"> 
			<input type='submit' class ="button" value='Сформировать'>
		</p>
		
		<?php
			if($_GET){
				include 'app/SoapCl.php';
			}
		?>
		
		</form>
		
	</body>

</html>

добавил немного оформления, представляю какие комментарии меня ждут, на страничке поместил Параметр поставщик (знаю что нужно писать vendor), ну и самое содержательное в файле SoapCl.php в подкатологе /app

<?php
	
	Error_Reporting(E_ALL & ~E_NOTICE);

	date_default_timezone_set('Europe/Moscow');
	
	$client = new SoapClient("http://.../ws/...?wsdl");

	$Vender =	$_GET['vender'];
	
	$page =		$_GET['page'];
	
	//echo $page;
	
	$par =array('SubName'=>$Vender,
				'offset'=>0,
				'limit'=>0
				);
	
	$res = $client->DocObmen($par);
	$DocsRes =$res->return->Приход;
	
	$row_cnt =count($DocsRes);
	
	$limit= 20;
	
	if(!is_numeric($page)) $page=1;

	if ($page<1) $page=1;
	
	$pages = $row_cnt/$limit;
	
	$pages = ceil($pages);
	
	$pages++;
	
	if ($page>$pages) $page = 1;
	
	$list=--$page*$limit;
	
	$par =array('SubName'=>$Vender,
				'offset'=>$list,
				'limit'=>$limit
				);

	$res = $client->DocObmen($par);
	$DocsRes =$res->return->Приход;
	
?>
<div class= "p">

	<table class = "brd">
		<tr>
			<th>Номер</th>
			<th>Дата</th>
			<th>Контрагент</th>
			<th>Сумма</th>
			<th>Вид</th>
			<th>Номер Входящего</th>
			<th class = "col_date">Дата Входящего</th>
			
		</tr>
	

	<?php
	 
		for ($i=0;$i<count($DocsRes);$i++){

			$Num = iconv('utf-8','cp1251',$DocsRes[$i]->Номер); 

			$Date = $DocsRes[$i]->Дата; 
				$Date = date_create($Date);
				$Date =  date_format($Date, 'd.m.Y H:i:s');

			$Sum = iconv('utf-8','cp1251',$DocsRes[$i]->Сумма); 
			$Vnd = $DocsRes[$i]->Контрагент;
			$Vid = $DocsRes[$i]->Вид; 
			$NumInv = $DocsRes[$i]->НомерВх; 
			
			$DateInv = $DocsRes[$i]->ДатаВх;
				$DateInv = date_create($DateInv);
				$DateInv =  date_format($DateInv, 'd.m.Y H:i:s');
			
			echo
					'<tr><td>'.$Num.'</td>
							<td class = "col_date">'.substr($Date,0,10).'</td>
							<td class="col_vend">'.$Vnd.'</td>
							<td class="col_sum">'.$Sum.'</td>
							<td>'.$Vid.'</td>
							<td>'.$NumInv.'</td>
							<td class="col_date">'.substr($DateInv,0,10).'</td>
					</tr>';
			
		}
	 ?>
	</table>
	
	<?php 

		if ($page>=1) {

			echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?vender='.$Vender.'&page=1"><<</a> &nbsp; ';
			echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?vender='.$Vender.'&page=' . $page . 
			'">< </a> &nbsp; ';
		}
		
		//$this = $page+1;
		$start = $page+1-3;
		$end = $page+1+3;

		
		for ($j = 1; $j<$pages; $j++) {
			if ($j>=$start && $j<=$end) {

				if ($j==($page+1)) echo '<a href="' . $_SERVER['SCRIPT_NAME'] . 
				'?vender='.$Vender.'&page=' . $j . '"><strong style="color: #6496c8">' . $j . 
				'</strong></a> &nbsp; ';

				else echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?vender='.$Vender.'&page=' . 
				$j . '">' . $j . '</a> &nbsp; ';
			}
		}	
		
		if ($j>$page && ($page+2)<$j) {

			echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?vender='.$Vender.'&page=' . ($page+2) . 
			'"> ></a> &nbsp; ';

			echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?vender='.$Vender.'&page=' . ($j-1) . 
			'">>></a> &nbsp; ';
		}

		
	?>
</div>

результат будет представлен в виде простой таблицы с элементарным форматированием, файлик mystyle.css для полноты картины


.p {
	margin: 10px auto;
	text-align: center;
	}

.m_body{
	background-color: RGB(248,247,242);
	margin: 5pt;
	font-family: Arial;
}
	
.table.brd th,td {
	border: 1px solid #000;
	font-size: 14px;
	font-family: Arial;
	padding: 10px 5px 5px 5px;
	border-color:  #6496c8;
	background: white;
}
.table.brd th
{
	background: #6496c8;	
}

.auth_subm {
    height: 20pt;
    font: 12 pt Arial, Helvetica, sans-serif;
    margin: 2pt;
    margin-right: 25%;
	text-align:center
}

.col_vend {
	width: 300px;	
}

.col_date{
	width: 80;
}

.col_sum{
	width: 100;
	text-align: right;
}

.txtsdw{
	color: white;
	text-shadow: -1px -1px 0 black,
				-2px -2px 1px black;	
}

.button {
	height: 25pt;
	font-weight: bold;
	color: #fff;
	background-color: #6496c8;
	text-shadow: -1px 1px #417cb8;
	border: none;
}

.button:hover{
	background:#6BAFD1;	
}

.edt{
	margin: auto;
}

в представленных скриптах нужно только вставить свою ссылку на веб сервис и получите страничку как на скрине.

На этом все.

php ws http

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    4575    5    0    

11

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    35921    71    45    

30

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    3352    3    3    

5

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    19739    26    24    

22

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    1421    9    2    

11

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    5626    5    2    

6

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 1C:Бухгалтерия Управленческий учет Платные (руб)

Решение осуществляет синхронизацию задач Битрикс24 и 1С, что позволяет в одной системе ставить задачи, контролировать выполнение всего пула задач с группировкой по ответственным и проектам, формировать управленческие отчеты по работе сотрудников (загрузка, просроченные задачи), уведомлять сотрудников о ходе выполнения задач посредством чат-бот Telegram

7200 руб.

04.05.2021    21347    14    19    

19
Оставьте свое сообщение