<?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) YRAtomic, Демка-то работает. Глючит инфостартовская система отображения демосайтов (если установить просмотр обработок во вкладках).
(2) ок, уже работает
Коллеги, сразу попрошу Вас не включать режим отображения окон во вкладках, т.к. это приводит к невозможности просмотра Вашими коллегами демосайта. Вопрос инфостарту я уже задал. Спасибо.
Подскажите, если куплю вашу разработку, тогда мне не нужно будет платить гуглу за коммерческое использование Google Maps кругленькую сумму?
Или же вы нарушаете лицензионное соглашение гугла на использование сервиса Google Maps?
Скорее всего вы нарушаете…
P.S. Интересно, Инфостарт нарушает ли лицензионное соглашение гугла?
(5) pumbaE, я думаю, что Вы можете задать Ваш вопрос в первую очередь г-ну Душелову. По поводу фрэйма: если заходить через прямой адрес, который по правилам Инфостарта я не могу тут указать, но который Вы можете увидеть, открыв обработку, то все работает хорошо. Глюки начинаются, когда 1С открывается во фрейме.
Идея интересная хоть и не новая, но на мой взгляд реализация жутко сырая для платного использования.
Баги:
1. Маршруты не работают — сыпят кучей ошибок. Как при создании, так и изменении/удалении
2. Причина не выявлена, но после тыркания в разные объекты перестает открываться форма маркера и форма маршрута
3. Поиск можно сказать не работает.
Предложения по улучшению (если интересно)
интерфейс стоит улучшать и к параметрам объектов пояснения.
1. В все формы (линия, маркер,….) в поле цвет добавь выбор из списка и заполняй список возможными значениями. Если добавишь в список картинки с образцами цветов — будет отлично.
2. Полоса масштабирования карты сделай ползунком (Поле полосы регулирования) и вынеси за пределы вкладки, чтоб было доступно с любой закладки.
3. Выбор координат с карты: проверяй открыта ли форма «ввода координат», если открыта то передавай координаты сразу в нее и форму активизируй — иначе куча лишних тырков.
4. Раз всего в конфигурации одна обработка, то есть смысл поставить ее на рабочий стол и все прочие подсистемы отключить. Останется при запуске сразу нужная обработка
(7) bi4ara, спасибо за развернутый комментарий. Информацию принял. Кто, как не Вы, коллеги, ткнете мне в глюки и шероховатости. 🙂
Красиво! Не думал что можно чтото подобное сделать 🙂
Весьма интересно, но дорого «реализация жутко сырая для платного использования»… Будет ли уменьшение цены и новые обновления (исключения багов) к разработке?
(10) допиливаю постоянно. Баги правлю регулярно. Думаю, что через 2-3 месяца все будет стабильно и красиво. Если Вы нашли баг, не поленитесь — отправьте его описание в комментарий.
Здорово. Первый раз вижу такой функционал.
Если не секрет, как обошли проблему вызова
Document.parentWindow.execScript
в браузерах не IE?
Хочется демку)
В разработке обнаружена ошибка:
— добавляем два маркера
— при движения обоих маркеров координаты меняются у только у какого то одного. Неправильно определяется объект в обработчике события (то же самое по событию onClick откроются свойства не того маркера).
В чем может быть проблема?
(15) Ошибка исправлена. Проверяйте. Если Вы купили продукт, укажите номер заказа, и я пришлю Вам обновленную конфигурацию, а заодно и учетные данные для подключения к хранилищу.
Вопрос:
-Пакетное использование геокодирования строго запрещено в коммерческих целях, как у вас этим вопросом (договоренность есть)?
(17) Я предоставляю механизм, а уж в каких целях этот механизм используется — вопрос к пользователю. Вы же не судите производителя оружия, за убитых его оружием людей.
(18) Думаю на счет оружия — это вопрос к другим органам (вам виднее).
А что касается вашего «участия» то деньги вы берете вполне реальные и думаю
производителям услуг будет не без интересно. Спасибо.
(18) Сообщите в таком случае про меня куда надо и дело с концом. Не нужно устраивать словоблудие.
(20) Мое мнение людям будет полезно узнать, что покупая программу с нарушением
лицензионного соглашения компании производителя услуги они становятся соучастниками (по закону).
Интересная разработка.
Не могли бы вы выложить для ознакомления инструкцию по установке вашей компоненты ? Что необходимо установить на Вэб-сервере и т.п. ?
Интересная разработка.
Не могли бы вы выложить для ознакомления инструкцию по установке вашей компоненты ? Что необходимо установить на Вэб-сервере и т.п. ?
(22) Здравствуйте. Никаких внешних компонент нет. Все написано на языке 1С с использованием JavaScript во фрейме HTML. Иными словами просто разверните конфигурацию, опубликуйте ее на веб-сервере и вуаля!
Демо не доступно (
Сделал публикацию бесплатной, пользуйтесь.
было бы зашибись, если бы оно еще и на мобильной платформе работало