Internet Explorer 9 Beta




Принцип обмена данными из 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='\

28 Comments

  1. Rodegast

    Блин когда эту поделку уже закопают 👿 Если не могут ишака сделать хотя бы не позорились.

    Reply
  2. ROM_1C

    Никогда не пользовался ЭТИМ. Но за описание + однозначно!

    Reply
  3. Altair777

    (1) Эту поделку только недавно откопали 😀

    Reply
  4. Арчибальд

    (1) Сделать ишака 😮 😳

    Reply
  5. vasilykushnir

    Попробовал бы ради интереса, да под ХР не идет, а 7-ка пока совсем не привлекает. Как-то к Опере прикипел, пока по комплексу показателей (где хуже, где лучше других бузёров) замены не вижу.

    Reply
  6. support

    Картинку для анонса больше сделай пожалуйста

    Reply
  7. vasilykushnir

    + к 5: Автору конечно респект — презентацию сделал красивую.

    Reply
  8. Altair777

    (6) так? 🙂

    Reply
  9. alexk-is

    Замечено что на infostart.ru проще публиковаться через IE, различных накладок возникает значительно меньше

    Reply
  10. Altair777

    (9) Все мои публикации, кроме последних двух создавались в Опере, а последние — в Сафари. Особых проблем, связанных непосредственно с браузером, я не заметил.

    Reply
  11. Заявленное разработчиками повышение быстродействия браузера достигнуто за счет поддержки многоядерных процессоров и аппаратного ускорения отображения веб-страниц с помощью графического процессора.

    «Если раньше для воспроизведения веб-графики использовался процессор компьютера, то теперь – графический ускоритель. По замыслу разработчиков, веб-странички теперь должны открываться быстрее, а также позволят освободить ядра центрального процессора для других задач», – комментирует Георгий Воронков.

    Кроме того, встроенный менеджер загрузок IE9 содержит систему защиты от вредоносного программного обеспечения, которая предупреждает пользователя о потенциально опасных файлах.

    я прямо таки тащусь от бетки … буду дома ее ставить … и ждать окончательного релиза … а ждать думаю будет что… особенно учитывая разницу в работе между первой беткой и релизом от восьмой версии ослика

    http://www.1c-club.kz/index.php?s=&showtopic=1901&view=findpost&p=15109

    c 17.9.2010 стоит IE9. Самый быстрый браузер. Жду когда выйдет окончательный релиз.

    Сравнение с IE8 ,опера, сафари.

    Reply
  12. Поручик

    Боюсь, что как было дерьмо, так и останется.

    Reply
  13. halushka

    Как-то не привлекают мелкомягкие продукты. Особенно все что с интернет связано. Блин даже своровать не могут по-человечески. Только за одно можно им спасибо сказать — с каждым обновлением дешевеют винты, мозги, цпу. Если бы на линухе полмира юзеров сидело — долго бы еще на одноядрЕнных селеронах 600 мгц сидели бы…. 😉

    З.Ы. На днях махнул телефон на гуглофон…. проц 416 мгц. После 600 мгц на ВинМобайле ощущение будто на 2-х ядренный телефон пересел…. Вот так..

    Reply
  14. support

    Браузер улучшили на порядок. Некоторые вещи сделали даже лучше, чем в firefox, например, перетаскивание закладки в новое окно. Но так как бета, на некоторых сайтах не работали скрипты. При включенном режиме совместимости нормально, но хотелось бы без него. Дождемся, как выйдет стабильный релиз, попробую снова на него пересесть.

    А вообще, IE пользуюсь каждый день, так как только в нем есть ActiveX, а нужен для интернет-банка.

    Reply
  15. 8c1.ru

    у них на скриншоте «Менеджер загрузок» отображаемое в таблице не соответствует тому что обозначено в подписях.

    Reply
  16. halushka

    (14)

    А вообще, IE пользуюсь каждый день, так как только в нем есть ActiveX, а нужен для интернет-банка.

    Я вот тоже только для клиент банка и держу. Но для клиент-банка все описанные навороты не нужны совсем. А 200-300 метров лишними не бывают.

    З.Ы. Ну не верю я что доблестные воруны из мелкософта смогут довести до ума ИЕ.

    Reply
  17. Altair777

    (12), (13) и (16) Как-то немножко непонятно слышать ворчание в адрес МелкоСофта от тех, кто пользуется основным их детищем — Windows! 😀

    Reply
  18. halushka

    (17) А как можно пользоваться windows ??? Пользоваться софтом под Windows может быть ? Второе — если бы не пользовался, может бы и не ворчал. Думал бы что все у них круто. А на сегодня имеем из того чем пользуемся.

    ПК — МС ВИНХП, ОпенОфис, Мозила, Опера. 1Ц. VLC медиаплеер. NOD32 антивирь.

    Телефон. — гуглофон, со всем отсюда вытекающим.

    Сервер — Слакварь, 1Ц, Постгрес. Пора правда на ДБ9 переползать…

    Так что ворчим пока от безысходности — в новом году переползем на 8.2 и Винду на полочку положим 😉

    Reply
  19. a_titeev

    поставил его недели полторы назад, на семерку… 😥

    в контекстном меню проводника появились лишние строки, че-то типа OpenNewProcess и OpenProcess… пришлось убивать их через реестр…

    папки двойным кликом перестали в проводнике открываться!!! тоже пришлось в реестре править…

    реально открывается медленее чем 8… хотя и предлагает принять меры…

    при открытии ссылки в новой закладке — подвисает… при этом не как раньше — все, а закладка с которой открывается и которая открывается…

    г-но короче… не ставьте бету…

    Reply
  20. Altair777

    (18)

    А как можно пользоваться windows ???

    Тогда по аналогии — А как можно пользоваться компьютером ??? 😀

    И все эти приложения работают только благодаря Windows. Не верите?!

    Попробуйте их в Линуксе (без эмулятора винды) запустить и узнаете 🙂

    Reply
  21. Altair777

    (19)

    че-то типа OpenNewProcess и OpenProcess…

    слова «че-то типа» не катят 🙂 Гугл их не нашел применительно к ИЕ9.

    А вообще есть такой неплохой форум http://social.answers.microsoft.com/Forums/ru-RU/answersieru/threads

    Reply
  22. a_titeev

    (21) «че-то типа» потому что убрал потом это и забыл…

    поставить бету, а потом ковыряться в форумах — это очень конечно увлекательно, но лучше я просто тупо поработаю старым добрым хромом…

    Reply
  23. CheBurator

    мдя.. че-та дежавю какое-то.. куча из описанного в том или ином виде давно присутсвует в опере… убило отсутсвие поддержки хрюни

    Reply
  24. halushka

    (18)

    Тогда по аналогии — А как можно пользоваться компьютером ??? smile:D

    Элементарно. Например нам в с/ц принесли ноут залитый непонятной жидкостью. Оказалось — коньяк. Просто к одному начальнику пришли друзья и они на ноуте резали лимончики и прочую закюсь… Пользовались ноутом вместо разделочной доски. ИМХО реально ИСПОЛЬЗОВАЛИ ноут.

    А если серьезно — я всегда за свободу выбора. Без навязывания типа — «вот так прааально а так не прааально». Потому каждый выбирает сам. Хочешь на XP, хочешь — на Линухе. Кстати под линухом «эмулятор» винды назовите ? WINE и QEMU не эмуляторы WINDOWS.

    Reply
  25. Altair777
    Кстати под линухом «эмулятор» винды назовите ? WINE и QEMU не эмуляторы WINDOWS.

    Я не линуксоид, но попробую 🙂 Cedega из Mandriva

    А ответ на мой (20) будет? Или Вы считаете что приложения работают сами по себе и не используют ОС?

    Reply
  26. marsohod

    Reply
  27. Rodegast

    Вся ишачья правда 😀 http://www.opennet.ru/opennews/art.shtml?num=28717

    Reply
  28. sikuda

    А 1С в тонком клиенте упорно использует стрый движок. http://sikuda.ru/?p=168

    Reply

Leave a Comment

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