Почему менеджеры не изменяют?




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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='\

32 Comments

  1. Art1387
    Почему менеджеры не изменяют?

    Изменяют, еще как, но все это

    Бессмысленные изменения

    Собственно комдир, которая запросила кучу доработок и внесла кучу изменений в КПЭ (что послужило причиной почти полного обновления отдела продаж, снабжения, логистики), в итоге уволилась и открыла свою фирму в той же сфере, попутно уведя самых «вкусных» клиентов. Прибыль фирмы в результате изменений в отделах упала процентов на 30.

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

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

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

    Reply ↓
  2. Hans

    Это все кто то еще читает?

    Reply ↓
  3. dmt

    Все правильно. Компаний много, и гениев или хотя бы профессионалов на всех не хватит.

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

    Reply ↓
  4. pm74

    явно не для ИС написано

    Reply ↓
  5. ildary

    (4) неважно для кого написано, главное что на ИС эти статьи работают как психоаналитик для одинэсников — «дело не в вас, а в менеджерах, которые толком задачи не ставят».

    Reply ↓
  6. t.v.s.

    (1)

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

    б**дей надо менять, а не кровати двигать!

    Reply ↓
  7. Sapiens_bru

    (5) Не, у Ивана другая цель — показать что управленцы компаний в среднем менее компетентны в вопросах управленя, чем рядовые программисты 1С и оказались на своих местах не благодаря высокому интеллекту и аналитическим навыком, а по знакомству и случайно. Он взывает к 1Сникам пойти брать бразды правления(ответственности) в свои руки.

    Reply ↓
  8. kudlach

    (3) Недавно же в Екатеритбурге застрелся владелец ОЛМИ Олег Ёлкин (предварительно застрелив нарулившего консалтера Пашу Неверова). Так что, нет-нет, да упадет домик.

    А по милионным долгам в итоге расплачиваться будут их семьи.

    Reply ↓
  9. Art1387

    (6)в нашем случае следовало изначально поменять одну бл*дь — комдира.

    Reply ↓
  10. acanta

    Те кто уже начал обратный отсчет до выхода на пенсию не самая лучшая команда для внедрения новой системы.

    Reply ↓
  11. Артано

    (7) Ах, Боже мой, он карбонарий!

    Reply ↓
  12. sergathome

    (9) неоднократно замечал, что если изменения запрашивает руководитель-женщина, то её увольнение лишь вопрос времени и величины нанесённого убытка. наверное я сексист…

    Reply ↓
  13. sergathome

    (10) слабО озвучить конкретные параметры начала отсчёта ? ж))

    Reply ↓
  14. Dzenn

    «Угадай автора по заголовку»

    Reply ↓
  15. acanta

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

    Reply ↓
  16. t.v.s.

    (15) А давайте я тоже чужое время оценю, это ведь так просто со стороны-то:

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

    Reply ↓
  17. ildary

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

    Reply ↓
  18. whitedi

    статья складно написана, но выводы я не нашел. Или это в следующей статье будет?

    Что делать-то: тренировать компетенции или увольнять или забивать? 95% людей ведь такие.

    Reply ↓
  19. sergathome

    (16) ещё уточню, пожалуй:

    много оплаченного рабочего времени 1Сников бездарно тратится на самообразование в смежных областях (вместо продвижения новинок 1С), что чрезвычайно их достаёт, поскольку те, у кого это входит в должностные обязанности, обязанностей тех не исполняют…

    Reply ↓
  20. acanta

    (12) А зачем ждать? Надо сразу как только женщина захочет что-нибудь изменить, так и приказ на увольнение строчить.

    Reply ↓
  21. Art1387

    (15)Зато у менеджеров много времени для придумывания всяких галочек, оформлений, контролей, отчетов и прочей показухи насчет полета мысли и инициативности. Ну и еще менеджеры частенько забывают собственные запросы и заказывают их повторно или наоборот отменяют. Про пользователей тоже отдельно замечу: при большой текучке или большом количестве доработок встает вопрос обучения, инструкции пользователи читать не хотят, поэтому звонят в отдел ИТ и приседают на уши (первой линии поддержки естественно нет, экономия же: два сисадмина и три программиста на 250+ пользователей). Так что освоении новинок или обучение в смежных областях — в нерабочее время, или, если повезет, по ходу разработок.

    Reply ↓
  22. genayo

    (18) Как что делать? Обратиться к Автору, конечно. Он знает очень много и решит проблемы.

    Reply ↓
  23. sergathome

    (20) Неа. На самом деле ключевое слово тут — обосновать. Соотношение хочу/обосную в случае женского руководство стремится к бесконечности. Лучшее, что я слышал, это «сделайте хорошо»…

    Reply ↓
  24. ВикторП

    (18) по моему , это относится ко многим (все не читал) статьям автора

    Reply ↓
  25. whitedi

    Перешел вчера на сайт, указанный в профиле автора, пробежался по статьям, все именно в таком стиле)

    В целом понравилось, хороший слог и понимание «боли жизни»).

    Reply ↓
  26. boln

    (11)

    Ах, Боже мой, он карбонарий!

    Надо было © поставить, а то школьный курс литературы многие забыли уже 🙂

    Reply ↓
  27. gendal

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

    Reply ↓
  28. 1c-intelligence

    (2) скорее не «еще», а «уже». Аудитория существенно расширилась, на других площадках.

    Reply ↓
  29. 1c-intelligence

    (4) сколько можно писать «для ИС» или «для программистов 1С». Полно людей кругом.

    Reply ↓
  30. 1c-intelligence

    (7) не в вопросах управления, а в вопросах построения систем, в том числе управления.

    «Управление» — это «пользование». Вот главбух проводит расчет себестоимости — он «управляет» системой. А программист эту систему создает, улучшает, сопровождает.

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

    Reply ↓
  31. 1c-intelligence

    (18) Читайте и пробуйте.

    Например, жизненный цикл задачи (https://infostart.ru/public/830605/), если мозги не конопатить, в течение месяца эффективность вдвое повысит.

    Reply ↓
  32. 1c-intelligence

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

    Reply ↓

Leave a Comment

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