В комментариях к прошлой публикации прочел немало "экспертных" замечаний, но все же решил закончить. Все, что я здесь выкладываю, создается практически параллельно с тем, как пишется статья, выкладывать здесь выполненные и оплаченные заказы не могу по эстетическим соображениям, поэтому замечания типа в запросе нет условия на пометку удаления не считаются конструктивными. Ну это так, лирика, продолжим.
Остановились на том, что в 1С создали веб-сервис и сделали его публикацию
На данный момент у вас должен отображаться ответ по ссылке http://<имя_сервера>/<имя_базы>/ws/<имя_сервиса>?wsdl, "имя базы " -то имя которое указано при публикации. Еще одно важное отступление, пароль пользователя для аутентификации указывается в файле default.vrd в явном виде, в разделе ib="File="<каталог_базы>";Usr="<имя_пользователя>";Pwd="<пароль>";" для серверной базы соответственно строка подключения в начале будет отличаться.
Дальше можно заняться обработкой результата я это делал с 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> ';
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?vender='.$Vender.'&page=' . $page .
'">< </a> ';
}
//$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> ';
else echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?vender='.$Vender.'&page=' .
$j . '">' . $j . '</a> ';
}
}
if ($j>$page && ($page+2)<$j) {
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?vender='.$Vender.'&page=' . ($page+2) .
'"> ></a> ';
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?vender='.$Vender.'&page=' . ($j-1) .
'">>></a> ';
}
?>
</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;
}
в представленных скриптах нужно только вставить свою ссылку на веб сервис и получите страничку как на скрине.
На этом все.