<?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='\
Да но зато бесплатно! (Боремся с кризисом! :)))
Хорошая идея! Я подумаю.
Я молодой — мне 30 лет. Можно на «ты».
http://infostart.ru/projects/2912/) .
Выложив данный файл, я не преследую цели с кем-нибудь соревноваться, достаточно того, что кому-то он действительно поможет.
Плюс моего файла в том, что он маленький, не нужно устанавливать отдельную конфу, его можно распечатать или работать с ним как это рекомендует fixin в своем предложении (
(4) Конфигурацию, подобную твоей, я видел с полным функционалом (наличие скриншотов), причем бесплатную.
На самом деле не призываю выкладывать все бесплатно. Считаю, что труд должен быть оплачен.
Если твоя разработка помогает людям — замечательно! Удачных продаж! 🙂
Здорова, мне понравилось.
ссылка тут удобнее чем на 1С-pro 🙂
Хм….. я автор 🙂
А что макрос до сих пор актуален и реально работает? В нем насколько я помню три алгоритма «шифрования» ответа. я думал что он в очередной раз поменялся и не работает 🙁
(2)На момент написания это был первый опыт в макросах — ни когда не обращал на это внимания…..
Если кто готов дорабатывать пароль — Q73LlF5
Изначально жило тутhttp://1c.proclub.ru/modules/mydownloads/personal.php?cid=120&lid=5652 😉
Автору — респект! 🙂
Ну а тебе плюсы за реанимацию 🙂 — и приятно и не думал что это еще актуально 🙂
а пароль то не подходит(
(15)CtrlC + CtrlV …… — подойдет — век воли не видать…
Спасибо за разработку. Очень помогла.
Отличная вещь для подготавливающихся!! Мне очень помогла и тест сдал, скажем так, не без этой обработки!! Все ответы действительно правильны.
буду стараться учиться по ней!надеюсь мне это поможет!
весчь очень помогло при сдаче теста пров, еще очень помогают тестеры написанные на 1с, а то вопросы разрабов иногда очень двоякие
Отличная работа. ОЧЕНЬ ПОМАГАЕТ при подготовки к сдаче теста на сертификат профессионал. Единственный минус дублирование вопросов. Хорошо было бы доработать чтобы не было дублей. Спасибо разработчику. Жду дальнейше йдоработки.
Спасибо за файл! Не нужно ничего лишнего устанавливать, бери и готовся! Я сдала 🙂
Помогла. Спасибо
Мне, наверное, тоже поможет. Только, как файл из Data.cab вытащить? «E:Database1CBudgetStorageData.cab: Архив повреждён или имеет неизвестный формат»
Спасибо. Ваша публикация очень выручила меня.
спасибо. пригодилось
А последний файл не могли бы перезалить?
(25) klaus, А мне никто не поможет?
А вы какой файл пытаетесь распаковать? Не из [18] последний? если его, залейте пожалуйста, вместе попробуем открыть его
(30) HameleonA, С бюджетного ИТС тесты по Бухгалтерии Государственного Учреждения 8. И «весит» файл почти 800МБ
Спасибо автору
классная штука!) нашел ее в одной сборке тестов.
немного доработал под себя. теперь отлично помогает в подготовке к тестам.
Спасибо за подборку. Еще предлагаю посмотретьhttp://www.1c-test.ru — онлайн подготовка к тестированию.
Мне при изучении тестов помогли диски ИТС. Там не только можно пройти тесты, но и набраться опыта в работе с другими программами. Также там есть все законодательные и нормативные документы.
(37) Onecprof, спасибо, воспользовался.
А кто-нибудь мне может объяснить, зачем нужны сертификаты? Всегда было интересно…
(40) starik-2005, Для статуса франча.. откроешь если свой франч.. сразу по деньгам почувствуешь наличие или отсутствие сертификатов))))