В продолжение темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом и интернет-магазином (не Битрикс) ч.4
В данной теме публикую: обработку для выгрузки монитора сервиса на сайт и скрипт публикующий данные на сайте.
Основа обработки взята из вышеуказанной темы, принцип работы, тот же. С той лишь разницей, что теперь из обработки можно запускать скрытую страницу сайта, и с помощью нее сразу же загружать данные на сайт. Если строка адреса не заполнена, страница не запускается. В выгрузке участвуют все заказ-наряды, кроме состояния "закрыт". Информация по ценам, персональная информация, не выгружается. Но вы можете настроить по своему усмотрению.
Загрузка данных производится аналогичным скриптом из темы выше.
С помощью скрипта публикуется монитор сервиса (данные должны быть предварительно загружены ранее из 1С:Альфа-Авто Автосалон Автосервис), добавлено разделение на цвета, как в Альфе.
Комментарии, размещенные внутри скрипта, разъяснят логику и порядок действия.
Посмотреть работу данного скрипта можно здесь.
Скрипт включает в себя защиту от SQL инъекций (надеюсь безопасность соблюдена в полной мере).
PHP cкрипт публикации монитора сервиса
<?php // Скрипт публикации монитора сервиса
echo "<br> ";
echo '<pre>';
//echo '<H2><b>подключения к глобалу</b></H2><br>';
$_global_values=require ABSPATH.'/scripts/_global_values.php';
$wpdb2=require $__ConnectToDB;
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if ($wpdb2==False)
{echo '<H2><b>Ошибка подключения к базе данных</b></H2><br>';
return False;
}
//Есть подключение, делаем выборку состояний
$SpisokDocTxtZapros=$wpdb2->prepare("SELECT `sostoyanie` FROM `_journal_zn` WHERE `sostoyanie` != %s GROUP BY `sostoyanie`", '');
$RezultZaprosSpisorDoc= $wpdb2->get_results($SpisokDocTxtZapros);
echo '<H1 style="text-align: center;"><b>Монитор автосервиса</b></H1><br> ';
$row = 0;
foreach ( $RezultZaprosSpisorDoc as $Rezult )
{
$row++; //счетчик состояний
echo "<br> ";
echo "<H3><b>Состояние: ".$Rezult->sostoyanie." </b></H3>";
/////выборка документов по состоянию
$SostoyanieTxtZapros=$wpdb2->prepare("SELECT * FROM `_journal_zn` WHERE `sostoyanie` = %s", $Rezult->sostoyanie); // выборка по состоянию
$RezultZaprosSostoyanie= $wpdb2->get_results($SostoyanieTxtZapros);
////перебор результата запроса
if($RezultZaprosSostoyanie)
{// выводим на страницу сайта заголовки HTML-таблицы
if ($row==1){$bgcolor="#FFFFCC";} ////выбор цвета
if ($row==2){$bgcolor="#99CCFF";}
if ($row==3){$bgcolor="#CCCCCC";}
if ($row==4){$bgcolor="#33FF99";}
if ($row==5){$bgcolor="#66CCCC";}
if ($row==6){$bgcolor="#FFCCCC";}
if ($row==7){$bgcolor="#FFCC99";}
if ($row==9){$bgcolor="#CC6600";}
if ($row==10){$bgcolor="#FFCCFF";}
echo '<table border="2" bgcolor='.$bgcolor.' width="100%">'; ////Шапка таблицы, раскраска цветом, в зависимости от состояния
echo '<thead align="center" valign="middle">';
echo '<tr>';
echo '<th><b><big><big>Заказ-Наряд</big></big></b></th>';
echo '<th><b><big><big>Автомобиль</big></big></b></th>';
echo '<th><b><big><big>Сумма</big></big></b></th>';
echo '<th><b><big><big>З/ч</big></big></b></th>';
echo '<th><b><big><big>Раб</big></big></b></th>';
echo '</tr>';
echo '</thead>';
echo '<tbody bgcolor='.$bgcolor.'>';
foreach ($RezultZaprosSostoyanie as $Sost ) ////Тело таблицы, раскраска цветом, в зависимости от состояния
{
echo '<tr>';
echo '<td width="10%">' . $Sost->ssylka . '</td>';
$avtomobile = wordwrap($Sost->avtomobile, 80, "
", 1);
echo '<td width="55%">' . $avtomobile . '</td>';
echo '<td align="center" width="7%">' . $Sost->summa_doc. '</td>';
echo '<td align="center" width="7%">' . $Sost->summa_detaley. '</td>';
echo '<td align="center" width="7%">' . $Sost->summa_rabot. '</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
}
else {echo '<H4 style="text-align: center;"><b>По данному состоянию нет данных для вывода.</b></H4><br>';}
}
/////конец скрипта
?>
А если создадим регламентные задания (планировщики) для обработки и скрипта, получим выгрузку/загрузку на сайт в автоматическом режиме.
Здравая критика приветствуется.
С удовольствием выслушаю предложения и пожелания. Может у кого есть идеи реализовать что-нибудь?
Скрипт тестировался:
Версия WordPress : 4.9.5
MySQL Версия : 5.6.25
PHP Версия : 7.0.24
Обработка тестировалась:
Платформа: 1С:Предприятие 8.3 (8.3.10.2639)
Конфигурации: Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.0; Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.1