Тест при приеме на работу (+ еще от Связного)(+от Группы Компаний РЕГИОН)




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

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

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

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

60 Comments

  1. tango

    идея публикации родилась здесь:

    http://forum.infostart.ru/forum24/topic37681/message411211/?result=edit#message411211

    Reply
  2. Alraune

    Надо же, в первый раз вижу вариант доступа «Только для друзей», не знала, что и такое бывает.

    Reply
  3. tango

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

    Reply
  4. tango

    вопрос к суппорту

    Reply
  5. tango

    сам скачал, хотя в друзьях у себя не стою 🙂

    Reply
  6. Alraune

    Да, у меня тоже скачалось.

    Reply
  7. tango

    😀

    Reply
  8. Alraune

    (7) А что? Что-то не так?

    Reply
  9. tango

    Эстонская инспекция по защите данных запретила работодателям при найме на работу проверять в интернете, в том числе в социальных сетях, личные данные соискателя на вакантную должность. Согласно разработанной инспекцией инструкции, если работодатель все же захочет проверить через всемирную паутину личные данные будущего работника, он должен будет предупредить того заранее, сообщила эстонская пресса. Работодателю запрещено и читать без разрешения переписку воего сотрудника по электронной почте. Под личными данными инспекция подразумевает все данные, как-либо характеризующие человека, начиная от имени. Эти данные имеет смысл защищать, ведь человек не оставляет частную жизнь за дверью после прихода утром на работу, — сказал руководитель Инспекции по защите данных Вильяр Пеэп (Viljar Peep). Согласно инструкции, работодатель не имеет права спрашивать соискателя во время собеседования о его частной жизни, не связанной с профпригодностью. Составители инструкции исходят из того, что в Сети о человеке можно найти и ложную информацию, которая может негативно отразиться при приеме на работу. В то же время, во многих странах работодатели не считают зазорным втайне изучать «подноготную» соискателя на должность по социальным электронным сетям, сообщает «Интерфакс».

    http://news.rambler.ru/8871623/

    (8) я не смеюсь, я улыбаюсь 🙂

    Reply
  10. tango

    прикольная статистика: 34 скачания, три плюса = 10% сознательных товарищей

    Reply
  11. Alraune

    (10) Я три файла скачала. Плюс поставила один))

    Reply
  12. luns

    тест связного

    «Использовать форматирующие функции языка 1С нельзя» как то это странно, когда на работать идешь 1сником 😀

    Reply
  13. Ish_2

    Миша , мне не понравилось.

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

    Reply
  14. luns

    тест эксперта

    вопрос про ведение расчетов по документам расчетов

    Вы должны понимать сложность ведения учета в этом случае, особенно если большой документооборот. Что делать с зачетами авансов? Что делать с ошибками? Действительно-ли этот механизм жизнеспособен? Я бы рекомендовал его в УПП только для расчетов с прочими контрагентами (за свет, за газ и т.п.), когда входящим документом может быть уже счет-фактура. А для других случаев есть договоры и заказы. Не зачитывается

    пусть тогда он продажникам расскажет как дебиторку мониторить по срокам оплаты.

    а это делают 99% продающих компаний.

    Reply
  15. tango

    (13) ну извини

    (14) дык срок оплаты — в договоре?

    Reply
  16. luns

    (15) в заказе.

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

    тогда можно будет вот такие отчеты юзать: http://infostart.ru/public/80774/

    благодарность манагеров и ФЭО обеспечена.

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

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

    Reply
  17. tango

    короче, тема:

    как в РАУЗЕ сделать (14),(16)

    **

    это плюс к теме расчета вознаграждения манагеров по «их прибыли»

    http://forum.infostart.ru/forum27/topic37417/

    Reply
  18. luns

    (17) вряд ли продажнику надо оперировать понятием прибыль.

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

    Reply
  19. tango

    (18) дык какой кипиай считают. если KPI — по проценту от (выручка — затраты (прямые+доп)), то без партий не взлетит

    Reply
  20. luns

    (19) имхо.

    грамотный kpi не должен быть тем на что не может повлиять человек которого оценивают.

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

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

    Reply
  21. tango

    (20) факт, что такие «кипиай» бывают, подтверждается фактом моей расстачи с последним работообеспечителем 🙂

    а по жизни есть механизм размещения заказов пок-лей в заказах поставщикам…

    **

    зы, насчет «последнего» КиПиАй: в формуле имеется процент (показатель эффективности, который надо «перекрыть», чтобы начало капать), численно равный абсолютной величине оклада в рублях. хороша фишка? и фоновая песня: «все в твоих руках»

    Reply
  22. ILM

    Скачал один файл. Жаль, что доступ не для всех…

    Остальные качать не буду, подписку оформлять тоже.

    Если не трудно, скачал бы с другого обменника.

    Reply
  23. tango

    (22) извини, брат, ключевое слово — обменник 🙂

    Reply
  24. tango

    56 качков, 5 плюсов, 10% — тенденция, однако

    Reply
  25. ILM

    Посмотрел блок программист.doc — Это что им в магазины «Связного» нужны такие тесты? 😀 😀 😀

    Reply
  26. ILM

    Ну хотя бы с народа

    Reply
  27. tango

    почту давай, перешлю

    Reply
  28. tango

    шесть из 94 — нестабильная тенденция, однако

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

    (24) 10 — хороший процент.

    А твоих собеседников я бы с удовольствием удавил.

    Reply
  30. Широкий

    Задача 2.

    Написать функцию, определяющую старшую из двух конфигураций по строчному представлению номера версии в формате «8.1.13.41» — четыре числа, разделенных точкой

    Разве так не катит?

    «8.1.13.41»>»8.1.13.40″

    Reply
  31. KapasMordorov

    (30)

    В строчном представлении чисел нет ведущих нулей.

    Reply
  32. Широкий
    KapasMordorov пишет:

    (30)

    В строчном представлении чисел нет ведущих нулей.

    Ответа не понял.. покажи пример где не подойдет данное сравнение

    Reply
  33. KapasMordorov

    «11»<«2»

    11>2

    Reply
  34. ILM
    Арчибальд пишет:

    А твоих собеседников я бы с удовольствием удавил.

    В Мемориз. 😀

    Reply
  35. tango

    ух ты, 282/20 — почти 10%, тенденция держится!

    Reply
  36. tango

    (29) без проблем, Арчи

    http://gppl.ru/about/

    Reply
  37. tango

    елы-палы, качков 345, тенденция падает!!!

    Reply
  38. tango

    сорри, файло отправлено на доработку

    Reply
  39. NPetrovichev
    tango пишет:

    сорри, файло отправлено на доработку

    А когда снова будет доступна публикация?

    Reply
  40. SirYozha

    (39) присоединяюсь

    жду публикацию

    Reply
  41. tango

    спасибки за +2.

    собственно, мысль подредактировать файло возникла именно из-за отставания тенденции: скачиваний дофига, а эреакции — затормозилось на 20.

    поскольку когда руки дойдут до этого проекта — неопределено, восстанавливаю файло как есть, т.е. в первоначальном виде без доработок. по просьбам трудящихся 🙂

    Reply
  42. tango

    продолжение следует

    http://infostart.ru/public/81095/

    Reply
  43. antek

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

    Не удивительно что там такая «текучка» кадров. Объявление о приеме на работу в Связной на hh висит постоянно вот уже года три, что неудивительно с таким «мудрым» IT отделом как у них

    Reply
  44. jjinn

    как скачать?

    Reply
  45. Art77

    Действительно «мудрый» ИТ отдел

    Reply
  46. Maluta03

    Спасибо огромное, очень помогло в работе!

    Reply
  47. Veduin

    Очень интересно.

    Reply
  48. йцукенн

    Чо то не пойму как эти тесты скачать?

    Завтра иду к ним на беседу-))

    Reply
  49. netserfer

    А одним архивом выложить нельзя?

    Reply
  50. dandrontiy

    А кто с какими интересными вопросами еще сталкивался на собеседованиях ?

    Reply
  51. tango

    (50) можно, конечно, но лень

    (51) есть еще :))) сейчас выложу… упс, нет, не сейчас

    Reply
  52. pt_olga

    спасибо автору… публикация актуальности не теряет 🙂

    Reply
  53. jump0

    Прикольная штука.

    Reply
  54. tango

    (52) елы-палы, чего выложить-то хотел? уже как бы сто пудов можно… 🙁 начало февраля… что это было? во, время летит

    (53) связной курса не меняет? а чё, торговлишка как бы идет, чего менять-то

    Reply
  55. Makushimo

    скачал один файл. Полная каша разнокалиберного текста. Очень трудно понять ход диалога с вербовщиком. Где чей текст. Идея хороша. а на выходе фарш какой-то.

    Reply
  56. tango

    (57) Makushimo, ну извини

    Reply
  57. _Ramzes

    Как то все мутно и сумбурно. Скачал тест от связного, какая-то обработка. Что с ней делать не описано в описании.

    Скачал файл Эксперт.doc, размышления на свободные темы. Автор, сделай нормальный пост.

    Содержимое doc файлов можно вынести в пост.

    Я если честно не понимаю как админы пропустили такое оформление.

    Простите если кого-то обидел, но сначала поставил плюс, а потом скачав два файла минус.

    Reply
  58. tango

    (59) _Ramzes, не парься, всё пройдет

    Reply
  59. tango

    Самая популярная, однако, у меня публикация… Надо бы добавить тестов. Однако.

    Reply
  60. lustin

    Ой — как давно всё это было…

    Теперь тесты с автотестами 😉 https://github.com/silverbulleters/whereismythirty

    Reply

Leave a Comment

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