<?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) просто я в обновление народу включаю, готовлю обновление, а после уже его отсылаю, так поэтому за месяц приходиться делать.так что вот так то просто если буду позже делать не успеет сработать ))
Если два раза нажать на кнопку кнКак, вылетает сообщение об ошибке:
Персонаж.Speak(массивКакВстречать[СчетчикКак]);
{D:1С_РАЗНОЕПОЗДРАВЛЕНИЕ 8МАРТА_.ERT(338)}: Значение индексного выражения находится за границами массива
А также смотрите раздел «ДРУГИЕ ПУБЛИКАЦИИ АВТОРА» 🙂
Если есть пожелания по изменению вида или внесению чего то нового то пишите, другие отчеты не выкладываю так как пишу под определенную конфигурацию для Белоруссии думаю тут это мало кому надо ))
(3) Процедура КакВстречать()
Персонаж.Stop();
Если (СчетчикКак = 1) Тогда
Персонаж.Play(«Alert»);
Персонаж.Speak(массивКакВстречать[СчетчикКак]);
//Форма.кнКак.Заголовок(Форма.кнКак.Заголовок()+» >>»);
СчетчикКак = СчетчикКак + 1;
ИначеЕсли (СчетчикКак = 10) Тогда
// Персонаж.Speak(массивКакВстречать[СчетчикКак]);
Персонаж.Play(«Congratulate»);
Форма.кнКак.Заголовок(СтрЗаменить(Форма.кнКак.Заголовок(),» >>»,»»));
СчетчикКак = 1;
Иначе
Если (СчетчикКак = 2) Тогда
Персонаж.Play(«Congratulate_2»);
ИначеЕсли (СчетчикКак = 3) Тогда
Персонаж.Play(«Suggest»);
ИначеЕсли (СчетчикКак = 4) Тогда
Персонаж.Play(«Pleased»);
ИначеЕсли (СчетчикКак = 5) Тогда
Персонаж.Play(«Pleased»);
ИначеЕсли (СчетчикКак = 6) Тогда
Персонаж.Play(«Pleased»);
ИначеЕсли (СчетчикКак = 7) Тогда
Персонаж.Play(«Congratulate_2»);
ИначеЕсли (СчетчикКак = 8) Тогда
Персонаж.Play(«Pleased»);
ИначеЕсли (СчетчикКак = 9) Тогда
Персонаж.Play(«Think»);
КонецЕсли;
// Персонаж.Speak(массивКакВстречать[СчетчикКак]);
Если (СчетчикКак = 4) Тогда
Персонаж.Play(«Processing»);
Конецесли;
СчетчикКак = СчетчикКак + 1;
КонецЕсли;
КонецПроцедуры
за комментируйте как тут и будет все гуд. он будет делать всякие штуки прикольные ))) и ошибка не будет вылазить.
(1) Ну да, как до Китая.. Автор пропустил Рождество Христово и Крещенье. Скоро 23 февраля. Автор, давай-давай…;)
Кстати можно пару тройку мусульманских добавить, чтобы братьев мусульман не обижать.Типа:
Маулид ан-Наби — рождение Пророка Мухаммеда 15 февраля
Рамадан 1 Августа
Ид уль-фитр (Рамадан Байрам, Ураза Байрам) 30 августа
Евреев не забудь тоже.Помни, что евреи тоже люди.
Только с картинками поаккуратней , а то будет как всегда 🙂
Microsoft Agent не установлен!
Агент.Characters.Load(«Char», Файл);
{F:ПОЗДРАВЛЕНИЕ 8МАРТА_.ERT(36)}: Значение не представляет агрегатный объект (Characters)
(8) просто у вес не стоит пакет данного агента то есть его попросту нет в системе (мерлина он обычно идет с офисом(полной версии) либо в установках виндовс) его можно доставить отдельно если нужно могу выложить
(9)
Спасибо, установил, все заработало!
Если есть пожелания по изменению вида или внесению чего то нового то пишите, другие отчеты не выкладываю так как пишу под определенную конфигурацию для Белоруссии думаю тут это мало кому надо ))
Какая конфигурация?
(11) Sway
Мне нравится, я даже другие праздники встроил!
Прикольная вещь, и всем кому отправляла понравилась.
Спасибо
Прикольная штука, отработала восьмое марта, день рождения бигбосса, теперь к новому году готовится..