<?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='\
вот лучше написал бы п.6 для 7.7!!!
А вы попробуйте под 7.7. Вдруг взлетит
еще добавлю извещение о переключении между формами внутри 1С
(1) >вот лучше написал бы п.6 для 7.7!!!
Ты б лучше сделал мне подарок к Новому Году — я б в свою добавил :))))
Хотелось бы к ней хоть какую то документацию. Не понял как события нажатия кнопок получать.
Да не знаю можно ли это, мне нужно получать события как нажатия кнопки так и отжатия, поясню для чего это: например в справочнике номенклатуры пользователь зажал кнопку вниз, при каждом активизации строки я обновляю остатки. Если бы я смог понять что кнопка нажата но не отжата, я бы поставил флаг и в этом случае остатки бы не показывал.
А да Большое спасибо, первая встреченная мной полезная библиотека для v8.
(5) Принято, если что — сегодня выложу версию 1.1.
Даешь исходники!!!
Исходники выложу — как все напишу или надоест.
Пока не буду, ибо пойдет создание альтернативных версий. История Linux-а поучительна.
P.S. Готова версия 1.1 с установкой клавиатурной раскладки, отловом событий от клавы мыша, (как просил 5), хочу добавить запуск пула приложений и выложить..
Очень ждем когда будет выложена версия 1.1, как понимаю еще не выложена.
Спасибо за обработку клавиш, а вот интересно метод ЗакончитьОтловСобытий есть (если нет то желательно сделать)? И для чего нужен параметр в методе НачатьОтловСобытий
Параметр в процедуре — это время в милисекундах, через которое сработает перехват для нового открытого окна.
Чем меньше — тем быстрее новое окно будет перехваче, но и тем более будет загружена система
В 1.2 будет отключение перехвата
P.S. Ну как бы пишите о глюках и багах, а то что — то молчите.
Еще пишите — что кому нужно — подумаем…, реализуем..
а можно как-то реализовать обработку клавиш, чтобы воспринимались комбинации одновремено нажатых клавиш.
Например, чтобы на «shift»+»=» выдавал «+», а не «shift» «shift»»shift»»shift» «=» «=» «shift»
Можно, реализуем
Короче, свежие новости…
Проект VADD1x закрыт. Финита ла коммедиа.
Выходит 2-ая версия. Полная несовместимость с первой версией.
Библиотека будет разделена на несколько объектов, дабы избежать «винигрета» (как упрекали).
Что будет:
1) Расширен функционал существующий
2) Кардинально измениться ОтловСобытий (добавятся фильтры, статусы клавиш SHIFT, CTRL, ALT)
3) Возможно добавится работа с LPT/COM портами
4) Возможно добавится работа с файловым потоком
5) Добавиться CRC32
5) Добавиться работа с UDP (возможно и с TCP/IP) протоколами
6) Обязательно будет документация (без нее не выпущу библиотеку)
Ждите, примерно неделя. Бля, и поддержите хоть кто — нибудь, а то уже в светлое будущее не верю уже.
——————————
|Hadgehogs 23.02.2008
|…
|Выходит 2-ая версия. Полная несовместимость с первой версией.
|…
|Ждите, примерно неделя.
——————————
\
Использовал V8ADD.dll но она видит только первые 15 картинок остальные
картинки видит как пустые ячейки Excel
Сам Excel в окне отображения буфера обмена, также отображает — первые 15
нормально, а остальные как пустую ячейку, но из буфера копирует правильно.
очень подлчечила бы «1) Попытка все же поддержки 7.7», а точнее UDP
заранее благодарен
А документация где?
Сори теперь это НЕТЛЕНКА если я правильно понял.
А можно ли как -нибудь при запуске процесса асинхронно передавать еще параметры. Например я хочу запустить 10 сеансов http://ftp.exe с подключением у разным серверам. Например
ВК.ЗапускИСопровождениеПроцесса(«C:WINDOWSsystem32ftp.exe»,0,Ложь,Истина) срабатывает , а
ВК.ЗапускИСопровождениеПроцесса(«C:WINDOWSsystem32ftp.exe 192.168.1.1:21»,0,Ложь,Истина) нет. 🙁
Подскажите плиз, можно ли с помощью этой ВК ловить сообщения, выводимые в окно служебных сообщений? Заранее спасибо.
Дублирую сообщение с мисты, может, тут оперативнее автор увидит.
Приивет. Спасибо за полезную ВК. Но вот вопрос: ее реально под Win7 использовать из 1С:8? Вроде делаю все, как нужно: кидаю ярлые на рабочий стол, дописываю в путь regsvr32, запускаю от имени админа, пишет, что все прекрасно зарегилось. Но в самой восьмерке говорит, что не удалось загрузить ВК
Подключаю вот так:
Объект = Неопределено;
Попытка
ЗагрузитьВнешнююКомпоненту(«V8ADD.dll»);
Исключение
Сообщить(«Не удалось загрузить внешнюю компоненту «»V8ADD.dll»»!»);
ТипОбъекта=»»;
Объект=Неопределено;
Включен=Ложь;
Возврат;
КонецПопытки;
В чем может быть проблема?
(23) Винда 32 битная или 64?
(24) Вроде 32. Где это точно посмотреть? Стоит на ноуте Asus, Windows Starter цифирь 64 ни где не фигурирует.
(25) Да, скорее всего 32, поэтому дело не в этом (иначе бы ошибку при регистрации компоненты выдавал). Битность можно посмотреть через версию винды — в командной строке winver .( А регистрация для 64 битной винды через %SystemRoot%Syswow64 делается)
Вопрос решил 🙂
Полезная компонента, но хотелось бы иметь подробную документацию всех методов, которые она содержит. А то у меня только dll-ка.