<?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='\
(0) Напиши в описании, какие форматы поддерживаются.
(1) mp3 и wav. Щас добавлю в описание
Файлов для закачки нет… 🙁
(3) хз почему он первый раз не залился.. залил
В клюшках тоже работает..
Классный эффект в клюшках — при закрытии формы отчета — файло так и проигрывается, пока саму 1с-ину не прибьёшь 🙂
(6) Поставь в ПриЗакрытии() StopPlay()
Пользоваться не буду, но вещь хорошая. 😎
(8) Думаешь я буду? 😀
(10) Это вопрос или утверждение?
(10) Вообще-то в анонсе написано черным по белому:
Я не люблю, я сторонник разделения труда
(12)
Надо было написать красным. По зеленому. 😀
Советую в актив-иксину засовывать GOM Player или RealOne, работают устойчиво, к тому же у них и интерфейс приятственный, и доступных методов да свойств превеликое множество. Себе такое соорудил, когда учёт музыки на компе базой 1С делал. А ежели на компе нет, всегда из двоичного макета можно вынуть дистрибутив и заинсталлировать.
Вещь!!! Молодец Abadonna! Я думал в 1С это никто не сможет сделать. Пригодиться, буду музыку слушать из 1С (это прикольно).
(15) Windows media player запихайте и не надо ничего устанавливать, к тому же еще и видео в 1С сможете смотреть.
Вот вам и идея, пока отчет формируется, можно крутить клипы.
Правильно, пока отчет формирует, клипы смотреть, а бухов в это время плясать заставить 😀
(17) с барабанами и бубнами вокруг компа 😀
Шрифт такой хочу, как у компоненты! 😉
Честно-говоря, мне больше понравилось вот этоhttp://infostart.ru/public/20223/ решение. Очень просто в использовании и не требует ВК. Просто система должна уметь воспроизвести нужный контент и все.
(20) У меня просто ностальгия по цветомузыкам, которые я в советские времена паял 😉
Где ж ты раньше был, я уже на Дельфях плеер в офис написал, чтоб за лицензионный не платить 🙂
Не вижу смысла. Есть например Windows Media Player — тот же многоформатный плеер, плагины вроде есть, и в качестве activex объекта присутствует на каждом компьютере…
(23) Своя рубашка.. ближе к телу..
(23) Дело вкуса, я никогда не использовал родной, для звука aimp, для авишек Media Player Classic, для DVD — Power DVD
24,25: Согласен, WMP — вариант не лучший для повседневного юзанья. Но признайтесь, музыка и видео из 1С это же просто для прикола? Я например для музыки запускаю foobar2000 — он явно легче чем 8.1 🙂
Да и насчет своей рубашки: наверняка есть множество плееров с открытыми исходниками поддерживающих плагины. Уж если хотели сделать для себя «самый лучший плеер» — можно было взять за основу какой-нибудь популярный исходник с широкими возможностями. Или так и было?
И каким же это макаром «Формировать отчет и клипы крутить»?, 1С же однозадачная, вот размогозадачилась бы и все её полюбилибы, а товарижчу Нуралиеву пальцы бы растопырили. скачаю для опыта, спасибо.
Не так 😉
Тем более, не для себя, как я указывал в (9,12)
(для себя я просто нормальный плейер напишу, отдельный)
Да вообще тут фича в анализаторе спректа и «цветомузыке», а файл проиграть — какие проблемы?
(27)
Да очень просто! АктивИкс будет себе спокойно работать в отдельном потоке, практически сам по себе
(30) Насчет отдельного потока ты точно уверен?
Насчет видео тоже не уверен что не будет мешать формированию данных, т.к. 1С сама прилично жрет ОЗУ, виртуальную тоже. Даже если отдельный поток, а он скорее всего отдельный иначе бы никак, хотя не буду утверждать т.к. не спец, то всё равно конфигурация особенно такая как УПП или подобная но с приличной уже базой, нормально нагружает ресурсы ОС и железо ПК. Но всё равно идея хорошая, сам установлю себе в офис! Спасибо разработчику!
(30) А на фига бы тогда в активиксе код? 😀
Ну, к примеру, PlayList организует цикл по песням, оно ж не мешает другие отчеты запускать. Активикс запустился и пашет сам по себе
(31) Мне кажется, но я не уверен, что запуск видео внутри 1С будет так же мешать формированию мощного отчета, как и запуск видео через внешний плейр.
Но еще раз хочу подчеркнуть, что лично я не стронник впихивания всего в 1С: кесарю кесарево, слесарю слесорево.
Так что никогда не понимал игрушек внутри 1С, разве что ради интереса их попроггить…
(30) см. (7)…
работает в фоне…
Abadonna
Мда.. что -то не хочет он у меня открываться даже, посоветуй что не так сделал следовал «readme.txt» пишет ошибка совместного доступа к файлу и дальше путь к папке с этим файлом …local SettingsTempv8_39_47.tmp
(34) К какому файлу? Обработки? Создай отчет по новой — у меня в пустой базе что-то криво записалось… Тоже самое иногда пишет, по после нескольких попыток открывается. Подозреваю потому, что в практически пустой базе создавал
P.S. Не тот я еще спец в 8-ке, чтобы причину сказать, но что она не связана с компонентом — точно!
понятно, ага я хотел прицепить твоё сразу и все) даже не глядел… ок создам!
Странно, второй раз открывается не сразу, минут через 8-10
(37) Ну не знаю.. Сейчас раз 15 перезапускал в рабочей базе БП — всё нормал