Личная эффективность




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

46 Comments

  1. HDRX

    Понравилось)

    Reply
  2. v3rter

    Познавательно — не про все виды эффектов знал. Не помню, где читал, что мозг под полной нагрузкой расходует до 30% энергии организма.

    Reply
  3. FirePyres

    Очень круто! Спасибо

    Reply
  4. Ibrogim

    Личная эффективность, это когда есть время прочитать эту крутую статью.

    Автору респект и уважуха!

    Reply
  5. Fragster

    один из лучших докладов эвента 2015

    Reply
  6. HAMMER_59

    Материал изложен в интересной форме.

    Описаны в понятной форме проблемы, а вот их решения 🙂 «читайте в блоге».

    Обязательно почитаю.

    Правда, несколько скептически, по опыту отношусь к результату от такого чтения — от чтения книг связанных с психологией.

    Проблемы, конечно описывают всегда хорошо, а вот решение проблем, увы.

    Reply
  7. Ibrogim

    (6) HAMMER_59, Зря вы, джедайские техники мне реально помогли

    Reply
  8. Team leader

    В описании статьи узнал свои первые завалы (дырявый стек) и свое «2е место работы»…

    Очень доступно изложенные проблемы программистов — картинки шедевр!

    Reply
  9. orcdunaev

    Читается легко, написано по делу.

    Reply
  10. Kosstikk

    Стоит нескольких прочтений)

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

    Reply
  11. zqzq

    Случайно узнал об авторе в прошлом году из обзоров эвента 2015. Почитал блог, с начала 2016 внедрил (в свою жизнь) смартфонное приложение Micromiles (сейчас переименовалось в Maxdone). Полностью джедайскую технику пока не освоил, но результаты есть. Если взять такую метрику, как уменьшение прокрастинирования личных дел (по рабочем делам как раз особых проблем не было, поэтому эффект на личных больше). Максиму респект, читайте его блог, интересно.

    90% всех дел находится в состоянии 90% завершения и остается в этом состоянии надолго

    Это, думаю, следствие закона

    Если дело выполнено на 90%, оставшиеся 10% займут столько же времени

    Житейская оптимизация, лучше сделать 2 дела на 90%, чем 1 на 100%. (Принцип минимального приемлемого результата сюда же.)

    Reply
  12. Ibrogim

    (11) zqzq, интересно чем Maxdone лучше wunderlist ?

    Reply
  13. YPermitin

    (12) Ibrogim, у Wunderlist внезапные технические проблемы, результатом которых становятся исчезновения записей и некорректная синхронизация.

    Вот, буквально пару недель назад столкнулся. Как не попробую его использовать, все время у них проблемы =)

    У Maxdone такого не было замечено.

    Reply
  14. webester

    Не всегда понятно доделал ли ты дело до конца. Запилил я пастебин, а теперь хорошо бы редактирование, кода, а теперь поддержку синтаксиса «77», а теперь возможность удалять свой код, а теперь… и это бесконечно.

    Reply
  15. gubanoff

    (13) YPermitin, TickTick попробуйте, я на нем остановился. Micromiles был слаб технически одно время, с напоминаниями тяжело было и т.п.

    Reply
  16. HAMMER_59

    Просмотрел вэбинар по джедайской технике, затем попытался скачать материалы по вэбинару.

    Никаких материалов так и не пришло на почту 🙁

    Reply
  17. МимохожийОднако

    (6)HAMMER_59, просто не может быть универсальных рецептов на все случаи жизни. Рецепты — это рыба, а методика — это удочка. В статье неплохое описание как сделать себе удочку.

    Reply
  18. BuhBuhov

    Прочитав статью, вспомнил книгу небезизвестного Дейла Карнеги «Как перестать беспокоиться и начать жить (завести друзей/ребенка/обрести работу/щасте и т.д.)». На мой взгляд, это просто словеса. Пусть автор предложит конкретные методики, а не просто переписывает чужие паттерны в свою статью.

    Уменьшить вредные переключения/Регулярно восстанавливаться/Перестать думать одну и ту же мысль… Да, это все хорошие рекомендации. Вообще, вся статья очень хорошая рекомендация. Вот только автор пишет, что надо сделать и совсем молчит о том КАК это сделать.

    Пустой доклад ни о чем, на американский манер.

    Reply
  19. smit1c

    Хорошая статья!

    Меня интересует вопрос как быть если нужно что-то срочно сделать, а идей как решить задачу нет. То что делать в таком случае ? )

    Reply
  20. dmt

    (18) BuhBuhov, пишет же.

    1. Пользоваться записями — разгрузка памяти.

    2. Не делать одновременно несколько дел — не переключатся между делами.

    3. Пользоваться помидорами — не переключаться и одновременно восстанавливаться (перерывы).

    Reply
  21. Pr-Mex

    Был на докладе вживую.

    В тексте также здорово!

    Reply
  22. v3rter

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

    Reply
  23. Dementor

    (18) BuhBuhov, 12 практических совета из раздела Заключения вам мало?

    Reply
  24. zqzq

    (18) BuhBuhov, конкретики действительно мало, НО! Это вводная/теоретическая статья, конкретика есть в записи вебинара, например: http://blog.micromiles.co/webinar-toc

    Reply
  25. teller

    Картинки забавные.

    Reply
  26. Scop

    Отличная статья!

    Reply
  27. WellMaster

    Большое спасибо!

    Reply
  28. BuhBuhov

    (20) dmt, (23) Dementor, Я всего лишь высказал свое мнение. Совет, записывать на бумажке все, чтобы не забыть, это не совет. Любой нормальный человек, который занимается большим количеством дел, имеет блокнот или ежедневник. И повторюсь, я не критикую статью. Она достаточно интересная как теоретический материал, но вот с моей точки зрения в ней нет практической реализации, что делает ее пустой.

    Reply
  29. v3rter

    Как и везде во всём — непрактичная теория бесплатно, практика за деньги. И очень много вокруг нас «теорий» со скрытой мотивацией потратиться на действия либо запомнить автора, место, секту или бренд. Спасибо автору, что обошелся без маркетинговых «закладок» )

    Reply
  30. dmt

    (28) BuhBuhov, я понял (0) немного по другому.

    Писать на бумаге, не для того что бы не забыть, а для того что бы не вспоминать.

    В один момент помнить только об одной задаче. Зато решать ее на 100%

    Reply
  31. S2Sps

    Позновательно!

    Reply
  32. dreamcreal
    И ты хлопаешь себя по лбу – твою мать!!!

    Можно без таких фраз обходится. Думайте, что Вы говорите.

    Reply
  33. Agapov_Stas

    (32) dreamcreal, Именно так и говорим ) Прям оскорбили Вас этими словами

    Reply
  34. user646945_153

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

    А даже если можно решить — где такое начальство понимающее найти?)) обычно подгоняют только

    Reply
  35. &rew

    Самая основная мысль статьи (для меня) в картинке с динозавром. По дней так и написано «В этой великой философской мысли как раз и заключается секрет эффективности.»

    Много времени тратится на то, что клиенту как бы не надо. На «защиты от дурака», на всевозможные проверки и пр. По сути оно надо, но на проектах с приличным бюджетом, т.е. когда можно заниматься одной темой не отвлекаясь. Получается приличный дорогой продукт. Если проектов много, и бюджеты небольшие, то рептилия права. Быстро получится через JOBу, но клиент будет видеть результат, чувствовать что процесс идет, тестировать функционал вместо вас.

    Reply
  36. more

    Отлично! Огонь!

    Reply
  37. HAMMER_59

    Интересно, по какому принципу статьи попадают в «выбор экспертов».

    Думал, что Максим новую статью на инфостарт, а нет, всё та же.

    Много времени прошло с момента появления статьи, уже книга вышла «Джедайские техники».

    Reply
  38. starik-2005

    И даже прочитавшие это спрашивают, нафига нужны спринты в аджайле? Или не спрашивают? )))

    Reply
  39. RinGo

    Очень полезная статья! Как для руководителей, так и для исполнителей! Особенно — для руководителей!

    Reply
  40. Reznik_Nikolay

    Спасибо вам большое, очень интересная информация, что-то похожее на книжку 45 татуировок менеджера, вроде как-то так называется!

    Мне хоть и 20 лет, но я уже участвовал во многих хороших проектах и в вашей статье увидел то описание событий, что иногда окружало меня =)

    Reply
  41. valex1c

    Спасибо , какая точная копия 🙂 с реальной жизни…

    Reply
  42. Infector

    Дополнение: Обучение ишака богословию. (Как вариант особо запущенный — беседа с ишаком богословии)

    Кто-нибудь сталкивался с тем, что вместо четкого указания на ошибку и того как должно быть правильно Вам предлагают ознакомиться с приказом № N M-ского министерства.

    Reply
  43. ifilll

    Вполне хорошая годная статья.

    Хорошо что автор упор делает на когнитивный ресурс, многие ставят во главу угла именно время, а как мы все знаем «высадить» могут и за 2 часа, что потом делать с этим временем, когда думать уже никак.

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

    Автор молодец, творит просвещения направо и налево !

    Reply
  44. for_sale

    С одной стороны интересно почитать, с другой стороны — это всё больше констатация, чем решение. С интересом читаю описание проблемы, думаю — ну всё, сейчас уж этот автор в такой интересной манере каааак опишет решение. И тут вдруг — конец! Ну… ок. Но о том, что у нас проблемы, мы и сами знаем, раз читаем это)

    Поэтому, когда человек говорит: «Сложная задача, надо разобраться…» – это сигнал, означающий, что он чего-то не понимает. Надо напрячься, подумать, прояснить какие-то вопросы – но зачем все это, умножить на два ведь проще! Из-за этого и получается такой результат.

    Опять же — в теории всё красиво. А в жизни — да, действительно, так и есть, я когда не понимаю, что от меня хотят, увеличиваю оценку, чем больше не понимаю, тем больше увеличиваю. Но давайте посмотрим на ситуацию — есть я, есть заказчик, есть что-то, что он хочет сделать. И там хороший такой кусок работы. При этом, понятное дело, описано в самых общих чертах. Понимания, что надо сделать, у меня 30%. И варианты у меня такие — выставить счёт заказчику за то, что я буду «разбираться со сложной задачей». Тогда заказчик меня просто шлёт, потому что ему ещё ничего не дали по существу, а ему уже надо заплатить (и немало, мы же хотим сразу хорошо разобраться!). Второй вариант — разбираться за свой счёт. Потратил я день-два-неделю, разобрался, оказывается, ничего сложного, можно за Х сделать. А заказчик мне такой — Х??? Да ну, дорого, всего хорошего. Упс! Вроде на инфостарте писали, что надо разобраться, а вот как получилось нехорошо — бесплатно разбирался! И третий вариант — прикинуть на глаз, умножить на 2-5-10 и дать оценку. Согласится — хорошо, не согласится — ну и хрен с ним, значит так хотел. И давайте теперь вместе подумаем, какой из вариантов меня жизнь заставляет выбрать?

    Reply
  45. dreamcreal

    (33) Мам нельзя оскорблять. Ничьих.

    Reply
  46. acanta

    Система 1 правое полушарие, система 2 левое. Между ними мозжечок, отвечающий только за передачу команд мясу.

    Любая мысль проходит от одного полушария к другому через весь организм. Поэтому физические нагрузки так полезны для умственной деятельности.

    У паралитиков соответственно такая связь отсутствует. Они отдельно думают, и отдельно — действуют по системе наивного экстренного реагирования.

    Ёмкость бачка с мыслетопливом можно менять.

    Внешние носители информации доступны всем желающим.

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

    (44) жизнь заставляет нас самим становиться заказчиками, но пока безрезультатно…

    Reply

Leave a Comment

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