Мой опыт небольшого проекта с веб-сервисами (Часть 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

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

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

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

36000 руб.

03.08.2020    16301    14    18    

14

Интеграция 1С и Битрикс 24 — модуль синхронизации для обмена задачами

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

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18518    10    15    

16

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    13128    34    8    

13

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85880    26    51    

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