<?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='\
Сделай поддержку прокси и авторизации на нем. А то не работает нифига с проксей.
не работает
А откуда берет информацию?
Прикольно!!! Молодец! Буду теперь им пользоваться всегда.
При запуске и обновлении выдает ошибку
===============================
Во время обновления произошла ошибка.
Запустить отладку?
Строка: 1
Ошибка: Синтаксическая ошибка
===============================
Молодца, прикольно сделано, особенно красиво скины переключаются!
Программулина удобная, жаль что только по российским конфигурациям.
to Пашук тестил на 5ти машинах, на одной так же вылезла ошибка, нашел в чем косяк, буду править, к вечеру перезалью.
to mad_maksim от сюдаhttp://1caf.ru/table_renew/index.php
Однозначно +. А то в запарке и забываешь, что настал новый отчетный период и нужны новые отчеты.
А на украинские конфигурации можно????
У меня тож ошибка
===============================
Во время обновления произошла ошибка.
Запустить отладку?
Строка: 1
Ошибка: Синтаксическая ошибка
===============================
Есть предложение дописать сию классную штучку, расширить возможности#k8SjZc9Dxk
1. Добавить спр. контрагенты
2. Программы 1с и версии у контрагентов
3. Чтоб выскакивал список кому необходимо обновление
Думаю будет актуально и удобно сразу видеть что у кого надо обновить, просто организаций у меня например 40
+13
4. Добавить спр. конкуренты
5. Программы 1с и версии у конкурентов
6. Чтоб выскакивал список кому чего не хватает
🙂
to D_Wiss идея хорошая, надо подумать как лучше реализовать
У кого ошибка вылазит, потерпите ещё чуток, косяк в битриксе, а не в проге, пока не удается исправить
(14) Это лишнее 🙂
У кого вылизала ошибка:
Строка: 1
Ошибка: Синтаксическая ошибка
Зайдите в программу и нажмите обновить, должно заработать
Кому интересно посмотреть как приходят сообщения, поставте галку напротив УПП (вчера релиз вышел) и перезапустите программу. (не забудьте покинуть данную ячейку после установки галочки, что бы произошло сохранение) Посмотреть можно только тем, кто скачивал программу до того как произошло изменение на сервере, т.е. до вчерашнего вечера. У тех кто скачал позже данные были обновлены по умолчанию
Не работает через корпоративный прокси сервер ISA
поддержку прокси позже прикручу. как время будет
А нельзя-ли в текстовиках дату выхода конф и их номера записать без дополнительных символов.
т.е. в виде
10.06.2008 «Управление торговлей» 10.3.5.1
Очень надо, т.к. делаю програмку на фоксе которая будет выдавать сообщение о днях затяга с обновлениями. И сейчас приходится выбирать из ваих текстовых файлов эту инфу, что трудновато.
Кстати, поддержка прокси сегодня-завтра появится
Сначала работала, а через пару дней:
«Исключение неизвестное программное исключение (0x0eedfade) в приложении по адресу 0x7c812a5b»
004242F7 mov ecx, ebx
004242F9 mov eax, esi
004242FB mov esi, [eax]
004242FD call dword ptr [esi+$0C]
00424300 cmp ebx, eax
00424302 jz +$17
00424304 mov ecx, [$6B8644]
0042430A mov dl, $01
0042430C mov eax, dword ptr [EReadError]
00424311 call -$00014402
00424316 call -$0001FF3F ; <— EXCEPTION
0042431B pop edi
0042431C pop esi
0042431D pop ebx
0042431E ret
EurekaLog 6.0.15
Application:
——————————————————-
1.1 Start Date : Mon, 29 Sep 2008 10:14:26 +0400
1.2 Name/Description: LI.exe
1.3 Version Number : 0.9.0.3
1.4 Parameters :
1.5 Compilation Date: Tue, 9 Sep 2008 12:12:04 +0400
1.6 Up Time : 16 seconds
Exception:
——————————————————
2.1 Date : Mon, 29 Sep 2008 10:14:42 +0400
2.2 Address : 00424316
2.3 Module Name : LI.exe
2.4 Module Version: 0.9.0.3
2.5 Type : EReadError
2.6 Message : Stream read error.
2.7 ID : 6ECA
2.8 Count : 1
2.9 Status : New
2.10 Note :
Ну эта ошибка похоже приходит с винта. Попробуйте удалите папку LI и скачайте программу еще раз и установите повторно. Ярлычок из папки LI не вытаскивайте.
Переустановил в ту же папку, те же грабли. А поставил на другой диск — все ОК!
несомненно респект, вот только еще бы Украинские конфы…