Библиотека пиктограмм (7.7 + 8.0 +дополнительные) в одном файле для 1с 7.7




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

25 Comments

  1. GSoft

    молодца, только бы ты их «причесал» — поудалял бы дубликаты своих и моих чтобы не путаться

    Reply
  2. GSoft

    да и обрежь пустоту справа — пока иконок нет — она только мешает

    Reply
  3. GSoft

    Причесал пиктограммки и разобрал по категориям

    качать вот тут http://infostart.ru/projects/2373/ Версия 2

    Reply
  4. coder1cv8

    Тоже для восьмерки не подходят.

    Reply
  5. kosta_f

    Great!

    Reply
  6. valerchik

    ОК!

    Reply
  7. karat60

    Спасибо

    Reply
  8. dik2004

    Нужная вещь. Благодарю

    Reply
  9. Altair777

    (0) автор, а что ты подразумеваешь под «фалы»?

    > Использовал фалы с Infostarta, соединил в один, при этом добавил свои. Если понравилось — кликните.

    это от какого слова сокращение? 🙂

    Reply
  10. GSoft

    (9) Ну что ты пристал к человеку, очерятываться)) мы все можем. Он взял за основу мою библиотеку пиктограмм, добавил туда иконки из восьмерки (надо сказать получилось не очень — разные размеры иконок — см. http://infostart.ru/projects/2373/ комментарии начиная с 12-го). Последний вариант я правда еще не смотрел. Может дойду руки и залью его последние иконки в свою «тематически» сортированную библиотеку пиктограмм, а то при таком большом количестве иконок глаза разъезжаются в разные стороны когда пытаешься чтото конкретное найти))

    Reply
  11. Altair777

    (10) я не пристал.. просто смешно 🙂

    наоборот, намекнул что б он исправил

    Reply
  12. GSoft

    я когда прочитал тоже сразу не понял какие фалы

    вот что по этому поводу говорит Большой Энциклопедический словарь (БЭС)

    ФАЛ

    ФАЛ (голл. val), трос, веревка — судовая снасть бегучего (подвижного) такелажа. Часто под фалом понимают страховочный трос (напр., трос для крепления вытяжного кольца парашюта к самолету, космонавта — к космическому кораблю при выходе в открытый космос).

    Что такое ФАЛ

    Reply
  13. GSoft

    Апшибся сцылкой))

    http://www.slovopedia.com/2/212/270461.html

    Reply
  14. Altair777

    (12) фух… а я уже черти что подумал 🙂

    Тогда понятно как их можно соединить в один и еще свои добавить. С помощью морских узлов, например.

    Только зачем потом по всему этому кликать? Непонятно! 🙂

    Reply
  15. GSoft

    Толковый словарь Ушакова про Клик говорит следующее:

    КЛИК

    клика, м. (книжн., поэт.). Крик, зов, возглас. Радостный клик. Лебединые клики. Буйный пир, при кликах юности безумной. Пушкин.

    http://www.slovopedia.com/3/202/793424.html

    а вот smile неизвестное для энциклопедий слово, предположим что у нас по чистой случайности встроена система онлайн-перевода веб-страниц — получим что smile = улыбка

    Толковый словарь Ушакова

    УЛЫБКА

    улыбки, ж. Мимика лица, губ или глаз, показывающая расположение к смеху или выражающая привет, удовольствие либо иронию, насмешку. От бледных уст улыбка отлетела. Пушкин. Губы сложены в грустную улыбку. Чехов. В одной улыбке состоит то, что называют красотою лица. Л. Толстой. Слово «русский либерал» произносил не без улыбки. Некрасов. Блаженная улыбка. Насмешливая улыбка. Широкая улыбка. Лукавая улыбка. Кислая улыбка. Ехидная улыбка.

    http://www.slovopedia.com/3/211/845283.html

    итого в сухом остатке получим что фалы нужны для того чтобы все связать, а потом радостно(улыбающе) кликать)))))))

    Reply
  16. Altair777

    (15) Точно! Будем связывать и радостно кликать. А может даже и поджойстим.

    И, желательно, как Александр Сергеевич описал — безумно 🙂

    Reply
  17. GSoft

    а как все начиналось славно -фалы,клики

    а всего то классику читать надо)) Пушкин, Лермонтов))

    Reply
  18. Altair777

    Оказывается это они все придумали, как и Иван Грозный изобрел рентгеновский аппарат.

    Кстати, насчет классики… Может, Фортран перечитать? 🙂

    Reply
  19. GSoft

    тогда уж лучше сразу ассемблер))

    Reply
  20. Altair777

    не… У меня было круче. Я в машкодах когда-то писал сразу 🙂

    Reply
  21. GSoft

    а я успел в институте застать перфокарты, а на работе на днях последние ЕСовские АЦПУ демонтировали)))

    Reply
  22. IgorA100

    Отличный набор!

    Но как всегда хочется большего 😉

    Reply
  23. FIZIK

    Внушительная коллекция.Спасибо!

    Reply
  24. nikk911

    Отличная работа. Спасибо!

    Правда у меня те пиктограммы что справа на один пиксель стоят левей своего места.(некоторые смотрятся нормально не смотря на это, а некоторые правил в графическом редакторе). Ну и фон не серый что не очень красиво смотрится при использовании.

    В любом случае это все мелочи. Еще раз спасибо, уважаемый!

    Reply
  25. v.a.ryag

    Спасибо, скачал, щас посмотрю

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *