<?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='\
За 10sm? Может в наименовании кнопки добавить «Сделать все хорошо Павлу Чистову)))» ?
(1) new_user, Не тот эффект будет! 🙂
(2) я думаю действительно будет другой эффект: больше скачиваний)
(3) new_user, идею понял. Надо делать!
(4) была бы обработка на github, сделал бы pull request.
Скачивать не готов, но думаю тема Нового года не раскрыта )
Это что какое-то маркетинговое исследование: типа проверки сколько людей «поведутся»/скачают?
Господи, где же вы раньше были? год то уже заканчивается, вот в начале было бы вообще «все замечатально». Хотя мой друг скачал и сказал, что даже сейчас может помочь: было все плохо, а теперь вдруг все хорошо. Так что — разработчики молодцы, нужная вещь, как накоплю 10sm сразу скачаю, а то к новому году ну очень нужно, чтобы было все хорошо.
P.S. Есть предложение по развитию обработки: некоторые не могут себе позволить, чтобы было все хорошо за такую цену, но можно разбить обработку на лайт версию — «все немного хорошо», про — «все зашибись» , вип — «все супер-пупер», и по поводу оповещения можно сделать отправку на почту, или письмом почтальоном, так как не у всех есть интернет, да и компьютер.
Отличная обработка! Давно была идея в программах 1С вместо множества разных кнопочек сделать одну большую «Выполнить ВСЁ». ))
5 баллов !
(9) давно уже сдеоано
http://infostart.ru/public/14694/
И эту обработку тупо передрали с клюшек:
Смайл
(12) CheBurator, Да, меня уже ткнули носом. Но давайте не забывать, что это УФ! 😉
Да и Гаечка, для тех кто понимает…
По-моему кнопка должна быть ещё больше. И зелёной. И вообще — круглой.
(15) binex, планируется во второй версии.
А подскажите, все будет хорошо? Или только в 1с все будет хорошо? Не очень подробно рассмотрели этот вариант
(17) MiniMuk, я писал вообще «все буде хорошо», просто, писал на 1С. На чем умеем на том и пишем.
Хочу чтоб шуткам тоже было хорошо.
Супер.
В описании не указано для чего поле ввода. ?
(21) masterkio, там нет поля ввода.
сбор стартмани на корпоратив?
Не стыдно?
когда выйдет версия с техподдержкой за рубли?
(24) vano-ekt, обработка не требует поддержки, так как сама делает все хорошо.
хммм, не зря скачал. в ней оказалось, не только извещение пользователя о том, что все хорошо, а кое-что еще 😉
ps. зря только в описании не написал полностью, в чем фишка. Скачиваний на порядок больше было бы.
(23) Lapitskiy, все различными штуками от Павла пользуются, а 10 см жалко. Эх люди люди.
(26) vano-ekt, и таки да, надо было Павлу не юлить, и написать — что действительно находится в этой обработке 🙂
А так да, за такое не жалко 10$m!
(0) хочу заказать автору обработку, но только такую «Сделать все красиво»
(1)(23)
Новогодний сюрприз…
Идеальная публикация на кануне праздника — улыбнуло)
(0) в обработке курс по СКД?
АААА у меня под УТ 10.3 не отрывается. Не видать мне все хорошо =(
(32) igo1, обработка под УФ, можете в настройках конфигурации включить «Разрешить открывать управляемые формы в обычном приложении».
(31) 1cNyb, Просто открыл обработку в базе к курсу.
(9) kit,
Когда то делал (вроде ещ₴ на 8.0) — «распознавалку» голоса для 1С.
Главбух говорил: «Баланс» и получае баланс на текущую дату…
Вот это было счастье у человека…. А это — так…
(34) AnryMc, «1С, внатуре, баланс построй!» 🙂
(35)
«Перло» главбуха от такой крутизны немерено….
(9) kit, Для «умных» бухгалтеров, был сделан отчет с названием «Все отчеты одной кнопкой» (он ничего не делал просто показывал процент выполнения отчета по кругу) — самый умный бух ждал трое суток — просто бухи ржали тихо………………..
Спасибо! Раньше использовал вот эту программу:http://qt-apps.org/content/show.php/Zaebis?content=102362
Но теперь можно использовать весь функционал, не выходя из 1С!
Кнопка должна быть по центру большая и зеленая!
Иначе заказчик не примет!
(39) IDija, это не вписывается в концепцию разработки управляемых форм.
(40) Ну не знаю, заказчик требует!)
(41) IDija, желание заказчика значения не имеет 🙂
(42) Да и правда, чего это я….
Напомнило как лет 15 назад сделал одному из директоров кнопку «Сделать всё!». При нажатии выводилось сообщение на весь экран «Всё в порядке, Шеф!». Попросил убрать только через полгода ))
Весело!
Что-то на управляемых в обычном приложении у меня так и не запустилось. Только после того, как внедрил в конфигурацию заработало, но финальное сообщение не выдалось.
В связи с чем «сваял» вариант на обычных формах.
Замечательная обработка! 🙂
(33) Это была шутка такая. Странно, что ни кто не заценил ((
А я как-то писал противоположную «Сделать очень плохо» (точное название не помню), но это было давно. И то было недоумение: «…может назвать «большая радость»? И продолжение «что главбуху сделал гадость».
Это был процесс сдачи дел при смене работы программистке которая 1С в глаза не видела, но очень хотела научиться.
Необходимо несколько специалистов для внедрения данного решения, на крупном производственном предприятии.
Ну это же просто каменный век какой-то! Какая кнопка? Что за архаичность? Надо же соответствовать как-то хоть немного, идти, так сказать, навстречу чаяниям заказчика. Такую обработку у меня не принял бы ни один заказчик. Требуется срочно все исправить: обработка при открытии должна в автоматическом режиме начать процесс улучшения всего. Ну, прогресс бар конечно, который необходимо снабдить пояснениями: «Начат процесс улучшения всего.», «Процесс улучшения … 10%» и т.д., вплоть до конечного результата. Анимация и звуковое предупреждение, что все стало хорошо, только приветствуются.
А то придумали, заказчик кнопки будет нажимать! Щаз! =)
Обработка как нибудь хорошо НДСу делать умеет? а то он совсем того ( вместе с бухом его считавшим..
Теперь понятно почему у меня когда-то не изменялся индикатор.
А нужно было вызвать обновление…
Спасибо 🙂
Классно! Хоть не Новый год, но улыбнулся:)
Нужно после нажатия на кнопку менять текст кнопки на «Уже почти все хорошо, нажмите еще раз»! Затем «Все хорошо, но можно сделать еще лучше, делаем?», затем «Ну теперь то совсем другое дело. Все почти почти хорошо, еще один клик, и все будет хорошо? «. Ну и так генератор слов сделать! Интересно будет на пользователей потом посмотреть, кто сколько раз кликнул, пока не психанул 🙂
Дарю антикнопку:http://www.nooooooooooooooo.com/
Прикольно)