Измерение vs Иллюзии




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

51 Comments

  1. Dzenn

    Взял на заметку методику оценки с числами Фибоначчи.

    Остальное — почему-то вызывает негативное восприятие.

    Один новый механизм он, грубо говоря, осваивает за 3 часа, два новых механизма – за 8 часов, три новых механизма – за 16 часов и т.д., зависимость нелинейная.

    — твой падаван гений.

    Третий маркер я пока сам не понял, он случился неделю назад. Задачи были сложные, механизмы новые, алгоритмы серьезные (для его уровня), но он выдал самую высокую эффективность за всю историю. Буду анализировать. Возможно, был какой-то душевный подъем, вообще не связанный с работой.

    https://youtu.be/XrxxJVSE8Og?t=3m40s

    Reply
  2. 1c-intelligence

    (1) спасибо за ссылку, только не понял, что вы имели в виду, приведя ее.

    Reply
  3. Dzenn

    (2) имелось ввиду, что высокая эффективность — результат предшествующего развития с кажущейся низкой эффективностью, экспонента в действии.

    Reply
  4. 1c-intelligence

    (3) я не даю оценок, низкая была эффективность или высокая. Речь лишь о ее повышении, постоянном и непрерывном. Вроде нет противоречий.

    Reply
  5. baton_pk
    Если вы ведете свои задачи в GitHub, то можно использовать метки (labels)

    так вот, что значат эти метки в вашей метадате!!!

    Reply
  6. 1c-intelligence

    (5) да, выкручиваемся, как можем.

    Reply
  7. spezc

    Иван, а когда же вы работаете?)))

    Reply
  8. genayo

    Вот делаешь задачу неделю, эффективно, сил нет. А потом заказчик такой говорит — спасибо, а это уже и не нужно. И остаешься со свой эффективностью и думами, как обустроить Россию…

    Reply
  9. 1c-intelligence

    (7) да как все, то днем, то ночью.

    Reply
  10. 1c-intelligence

    (8)

    И остаешься со свой эффективностью и думами, как обустроить Россию…

    зачем оставаться — берешь следующую задачу и погнали.

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

    Reply
  11. genayo

    (10) Бессмысленная работа демотивирует, а следовательно снижает эффективность :))

    Reply
  12. 1c-intelligence

    (11)

    Бессмысленная

    это же вы ее так назвали, верно? Любую работу можно сделать полезной. В жизни есть масса примеров, когда делаешь одному заказчику, он отказывается, продаешь другому. Или себе оставляешь. Так было, например, со структурой затрат.

    Reply
  13. genayo

    (12) «always look on the bright side of life» (с)

    Reply
  14. pm74

    Смысл прост. Японцы измеряют деталь, получая цифру – например, диаметр вала 26.34 мм. Из этой цифры они выстраивают шикарную систему управления качеством (результаты ездят по дорогам). База всей системы управления качеством в Японии – цифры. По-умному это называется «количественный признак качества».

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

    поясните пожалуйста эту фразу


    По-умному это называется «альтернативный признак качества».

    по умному это называется попаданием в квалитет

    p/s извините придираюсь конечно , понимаю что это все про контроллинг и прочее но ,

    не все на форуме разбираются в системе допусков и посадок и расчете размерных цепей

    Reply
  15. 1c-intelligence

    (14)

    не все на форуме разбираются в системе допусков и посадок и расчете размерных цепей

    я отношусь к числу тех, кто не разбирается.

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

    Если продукт — крокодил, и признак качества у него — «крокодил зеленый?», то понятия «квалитет» уже не существует, и назвать попаданием в квалитет зеленый цвет крокодила уже нельзя.

    Признак качества, или параметр качества — это абстракция более высокого уровня, чем попадание в квалитет, или даже «размер детали».

    Потому что управление качеством — абстрактная наука, которая умеет управлять производством и железяк, и деревяшек, и услуг. Есть ведь такие услуги, эмм, где квалитетов нет, а есть признак качества «клиенту понравилось».

    Придираться — правильно.

    Reply
  16. pm74

    (15) Квалитет — это показатель точности размера (ЕСДП), задается конструктором исходя из технологических требований к изделию. Если размер попадает в поле допуска согласно требуемого квалитета . размер считается выдержанным. Поэтому применение калибров в массовом производстве вполне оправдано. Если японцы же измеряют каждую деталь (с ваших слов ) , очевидно это автоматизированный процесс для корректировки программы обработки с учетом износа режущего инструмента.

    Ладно это все не по делу. Можно ли считать объективным показателем эффективности рейтинг на этом ресурсе ?

    Reply
  17. TODD22
    Смысл прост. Японцы измеряют деталь, получая цифру – например, диаметр вала 26.34 мм. Из этой цифры они выстраивают шикарную систему управления качеством (результаты ездят по дорогам). База всей системы управления качеством в Японии – цифры. По-умному это называется «количественный признак качества».

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

    Иван а вы были на производстве в Японии? Или это только в теории?

    я отношусь к числу тех, кто не разбирается.

    Это мы уже поняли.

    Reply
  18. 1c-intelligence

    (16)

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

    в вас какой-то жуткий технарь говорит 🙂

    Управление качеством построено на мат.статистике, на нормальном законе распределения, поэтому нужны цифры.

    Например, для прогнозирования качества. Если у вас все детали просто «годные», потому что попали в квалитет, то вы не можете спрогнозировать процент брака. Потому что не знаете распределение размера внутри квалитета.

    Если распределение размера занимает весь квалитет, то вы на грани, и в любой момент, по мизерной причине может пойти брак. Прогнозный брак составляет 0.27 %, или 2700 деталей на миллион.

    Если распределение размера занимает 75% квалитета, да еще мат.ожидание совпадает с серединой поля допуска, то у вас есть запас прочности — как на смещение мат.ожидания, так и на увеличение дисперсии размеров. Прогнозный брак составляет 0.006%, или 60 деталей на миллион.

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

    японцы же измеряют каждую деталь (с ваших слов )

    такого я не говорил. Иногда да, иногда нет, иногда тоже Булево используют.

    Можно ли считать объективным показателем эффективности рейтинг на этом ресурсе ?

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

    Reply
  19. 1c-intelligence

    (17)

    Иван а вы были на производстве в Японии? Или это только в теории?

    нет, конечно. Много общался с теми, кто был.

    Reply
  20. unpete

    В статье не сказано, что флакон помогает балансировать потоками задач. Наверное, это тема отдельного разговора, лично мне, идеи и качество этой балансировки нравятся.

    Остаётся вопрос, что делать с балансировкой задач внутри потока. У нас в Окнософте, в каждом потоке, число задач существенно превышает возможности исполнителей. Из длинного списка всегда можно выбрать интересную работу. А что делать с противными скучными задачами? Баллы оценивают только сложность задачи, но даже если искусственно повысить бал неинтересной задачи, это не будет стимулировать ей заниматься. Метки важно, срочно, могут учитываться исполнителем, они подсказывают направление, но не участвуют в оценке эффективности.

    Reply
  21. 1c-intelligence

    (19) решение есть — оценка и приоритет исходя из синергичности + оценка эффективности в комплексных баллах, учитывающих следование синергичности.

    Но это и правда отдельный разговор.

    Reply
  22. genayo

    Вот кстати еще интересен вопрос, на сколько прямая связь между эффективностью и мотивацией, мне кажется, по-отдельности рассматривать их не совсем корректно.

    Reply
  23. TODD22

    (18)

    в вас какой-то жуткий технарь говорит 🙂

    Скорее человек понимающий в производстве чуть больше чем прочитанные книжки по lean и 6 сигмам…..

    Reply
  24. TODD22

    (18)

    такого я не говорил.

    Но привели пример про умных японцев которые измеряют и не очень умных русских которые пользуются лаптем калибром.

    Reply
  25. pm74

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

    для прогнозирования качества

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

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

    тогда в чем смысл? , для самомотивации ?

    Reply
  26. 1c-intelligence

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

    Повышение эффективности через денежную мотивацию рассматривал здесь.

    Если применять повышение эффективности лично к себе, то проблема мотивации переходит в проблему самомотивации, а это совсем другая тема.

    Reply
  27. 1c-intelligence

    (23) спорить не буду, подходы у нас с вами разные, это давно понятно.

    Раз для вас управление качеством производства и производство — одно и то же, то диалога на эту тему у нас не получится.

    Reply
  28. 1c-intelligence

    (24) да, привел, но не говорил, что японцы измеряют каждую деталь.

    Reply
  29. TODD22

    (28) А русские каждую деталь калибром измеряют? Или иногда прибегают к другим методам измерений? Микрометры в руки берут например.

    Reply
  30. 1c-intelligence

    (29) конечно иногда прибегают к другим методам измерений.

    Но все равно ошибаются, потому что измеряют на ОТК, когда уже поздно.

    Reply
  31. 1c-intelligence

    (25)

    тогда в чем смысл? , для самомотивации ?

    в чем смысл чего?

    Вы делаете продукт — например, публикацию на инфостарте.

    Вы решаете, с какой целью делаете публикацию.

    Исходя из цели выбираете показатели, или признаки ее качества.

    Если вы хотите рейтинга — измеряете рейтинг. Если хотите просмотров — измеряете просмотры. Если хотите минусов — измеряете минусы.

    Ну и действия предпринимаете исходя из целей.

    Объективности здесь нет и не будет, все в ваших руках.

    Reply
  32. pm74

    (31) я имел в виду ответ на вопрос (в тизере вашей публикации)

    Почему важно измерять свою работу, и что будет, если этого не делать
    Reply
  33. 1c-intelligence

    (32) статья не дала ответа на этот вопрос?

    Reply
  34. TODD22

    (30)

    Но все равно ошибаются, потому что измеряют на ОТК

    А что станочник сам не измеряет?

    На том производстве где работал я. У каждого токаря(фрезеровщика) были калибры которые проходят поверку и выдаются отделом ОТК для конкретной задачи. Для массового выпуска(когда весь цех занят производством одного какого то вида продукции). Никогда станочник не снимет деталь со станка предварительно не убедившись с помощью измерительного прибора(калибра, микрометра, штангельциркуля и тд) что он получил деталь с нужными параметрами. Ну или он не опытен(стажёр например) ну или сам себе злобный буратино. Потому что при малых допусках ты её назад точно так же не факт что поставишь с первого раза а то и вообще не поставишь. И подгонять потом, делать что бы деталь не «била» то ещё удовольствие. Учитывая то что парк станков уже давно устарел(самые новые были начала 80х годов) на тот момент.

    Токарь точит деталь, с помощью калибра убеждается что деталь соответствует заданным параметрам. Снимает со станка, кладёт рядом в коробку с ГП. По цеху несколько раз в день курсирует сотрудник ОТК который проверяет детали. Потом все детали собираются на складе где так же проводится проверка.

    И это не автомобильный завод. Это просто маленький машиностроительный завод с несколькими сотнями сотрудников который производил детали для шахтового оборудования.

    Или вы хотите сказать что цех взял 8 тонн каких нибудь медных прутков, наточил из них деталей не измеряя их, а потом ОТК признал все детали браком? Я очень сильно сомневаюсь что именно такая ситуация возможна на производстве.

    У нас брак был в основном из за определённых технологических процессов. Но это допустимый брак. Например закалка. Когда деталь в процессе закалки изменила форму так что для дальнейшей обработки уже не пригодна. Брак был потому что у кого то руки кривые, брак был из за изношенных станков. Но это единичная деталь. А не так что весь цех работал и не измерял результат своей работы, а потом пришёл ОТК и сказал что всё брак, всё списать на ВО или отправить на доработку.

    Reply
  35. Ibrogim

    (0) А почему бы в качестве оценки задачи не брать планируемое время выполнения.?

    Reply
  36. 1c-intelligence

    (34) вы описали процесс, который приводит к некоему результату.

    Если результат устраивает — отлично, работаем дальше.

    Если результат не устраивает — смотрим, думаем, ищем, меняем. Ну или говорим херня эти все японцы, скрамы, эффективность, программисты и прочие модные штуки. Мы производственники, нам виднее.

    Каждый сам решает. И потребитель сам решает, что ему покупать.

    Reply
  37. 1c-intelligence

    (35) был такой опыт.

    Reply
  38. TODD22

    (36)

    вы описали процесс, который приводит к некоему результату.

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

    Reply
  39. kare

    все по делу, актуально и жизненно, flash-дурилка с нее проорал.

    Reply
  40. 1c-intelligence

    (38) да, и то, и другое — процесс, которые приводят к некоему результату.

    Потерял нить. Что мы обсуждаем?

    Reply
  41. gubanoff

    (37) автору статьи большое спасибо за его труды! 🙂 все статьи читаю очень внимательно и жду новые с нетерпением.

    По делу: в чем принципиальное отличие баллов от часов на выполнение? По-моему, это одно и то же.

    Reply
  42. 1c-intelligence

    (41) принципиальной разницы нет, и вообще никакой разницы нет, как назвать метрику.

    Автор Scrum рекомендует не использовать именно часы, т.к. у людей плохо получается именно в часах оценивать.

    Лучше в собаках, или попугаях. Не важно. Важен относительный разброс оценок относительно друг друга.

    Reply
  43. gubanoff

    (42) Система мотивации в этом случае строится на баллах? Если так, то все равно как-то придется баллы в часы переводить, пусть даже косвенно. Должны же мы стоимость одного балла определить.

    Reply
  44. 1c-intelligence

    (43) лично мое мнение — не стоит связывать баллы и систему мотивации. Баллы — очень зыбкая сущность, которую легко разрушить, если примешать к ней деньги.

    Деньги должны быть связаны с более реальным результатом — продажами, проектами, метриками автоматизации, актами и т.д.

    Если деньги и баллы существуют параллельно, то так еще интереснее — можно сравнивать то, что вы назвали стоимость балла, внешнюю и внутреннюю.

    И не факт, что у кого больше баллов, будет делать больше часов и денег.

    Мне кажется, во франче такая штука была бы интересна, когда ты повышаешь эффективность разработки (и вообще работы), а клиенту продаешь за те же деньги. Клиенту выгода в более быстром сроке, тебе выгода в большей выработке.

    Reply
  45. TODD22

    (44)

    Баллы — очень зыбкая сущность, которую легко разрушить, если примешать к ней деньги.

    Иногда баллы используют как раз как альтернативу слову «деньги». Для снятия так сказать излишней напряжённости и негатива.

    В одной розничной сети штрафовали продавцов с начало в деньгах: «Депремирование на 1000 рублей. За то что не одела форменную одежду!».

    Было много негатива по этому поводу.

    Заменили деньги на баллы: «Начислен 1 штрафной балл. За то что не одела форменную одежду!»

    Как ни странно хотя 1 балл = 1000 руб. Негатива стало значительно меньше. Потом ещё добавили хитрую формулу пересчета баллов что бы окончательно запутать тех кто их получает.

    Но по сути паритет сохранился 1 балл = 1000 руб. Но тому кто получает штрафной балл было уже не так просто это в уме просчитывать.

    Reply
  46. aspirator23

    «Если есть статья Винни, то в комментариях всегда найдешь оппонентом боряна петрова». Пора патентовать.

    Reply
  47. user-programmist

    Круто написано. Спасибо.

    Reply
  48. 1c-intelligence

    Друзья, прошу прощения за спам — поучаствуйте в голосовании.

    Reply
  49. strange2007

    Может не соглашусь с некоторыми тонкостями методик, но в целом эти знания то, чего мне не хватало в молодости.

    Но я возмущён! Автор, Вы ведь умеете более-менее считать и при этом пишите такую ахинею про японское качество тем более в части автомобилей. Как (!!!!!) вообще такое могло прийти в голову? Ведь ни немцы ни японцы никогда не умели и не умеют делать автомобили. Они умеют их продавать, но не делать. Вы бы хоть поинтересовались, что такое качество, а то ведь можно считать качественными только те автомобили, к которым просто применены стандарты и допуски из космической отрасли. Про японокачественные (или немецике) автомобили все говорят, пока теорию надёжности не поизучают.

    В общем капец. Я возмущён.

    Reply
  50. mangy

    Скажите, в какой программе рисовали графики эффективности и отмечали события?

    Reply
  51. 1c-intelligence

    (50) задачи вел в гитхабе, а графики рисовал в recharts (это, вроде, d3 под react).

    Reply

Leave a Comment

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