<?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='\
Ну что работает… это радует…. будем посмотреть.
При открытии cf (26мб) файла пишет «Выполняется открытие файла» и все, не открывает 🙁
как насчет исходников? может будет новые предложении?
(2) У меня есть подозрение, что ты перепутал с вот этим плагиномhttp://infostart.ru/projects/1485/ , так как такая надпись есть именно там.
http://infostart.ru/projects/1843/) , мною не сделано, кроме двух моментов: разобрался до конца со временем создания и модификации файлов внутри контейнера, и понял, как удалять файлы из контейнера cf/epf, не переписывая целиком контейнер.
(3) Как мне кажется, исходники рано выкладывать, они сыроваты еще. К тому же, ничего принципиально нового, по сравнению с v8Unpack (
Интересно… А можно как-нить сделать, что бы cf/epf файлы не отображались со значком архива, а то путаешься с непривычки… )
(5) В текущей версии нет, в следующей планирую сделать это настраиваемым. Есть два варианта, предоставляемые Total Commander’ом для архиваторных плагинов: 1. Отображение файлов значком архива, вход в архив по Enter и по Ctrl-PgDn; 2. Отображение файлов стандартным значком по-умолчанию и вход в архив только по Ctrl-PgDn.
Спасибо за быстрый ответ! Но все же вместе более быстро сможем устранить ошибки, как говориться «одна голова хорошо а двое лучше!»! Я еще заинтересован как найти статические коды? может проще будет разобрать файлы из папки bin. Видел что есть спец. база где это делает… но боюсь что там не все можно узнать!
(7) Что такое статические коды? О чем идет речь?
на пример:
7e7123e0-29e2-11d6-a3c7-0050bae0a776 Аттрибуты очета
5c83cba4-7a20-4102-a5be-add0ee74f6a1 форма
ded41cfe-0184-4364-9486-46fe93469d47 DefaultConstantForm
и по GUI:
09ccdc77-ea1a-4a6d-ab1c-3435eada2433 Панель
6ff79819-710e-4145-97cd-1618da79e3e2 Кнопка
(9) Так ты хочешь сделать разбор метаданных? Это отдельная большая работа. Лучше всех в этом преуспели MMF и German, имхо. Тут я выложил известные мне GUID 1Chttp://ifolder.ru/7160530
Да.. не маловато! к стати можешь добавить найдены мною значения!
7e7123e0-29e2-11d6-a3c7-0050bae0a776 Атрибуты отчета
ded41cfe-0184-4364-9486-46fe93469d47 DefaultConstantForm
Может вместе соберемся и доводим до ума разбор метаданных… иначе по одиночеству до результата не дойдем!
Продолжения не будет?
(12) Лето же на дворе! Время отпусков, дач и прочих развлечений! Вот как начнутся тоскливые осенние вечера, которыми делать больше нечего, кроме как писать очередную нетленку… ))
Распаковать смог, а как теперь отрыть скрытые модули? У кого-то есть опыт?
(14) исчо один хакер? ) Всё ужо открыто до вас…
кто этот плагин тестил?
у меня он не ставится, говоритв окне файловых ассоциаций:
«Этот файл не является корректным плагином»
это только у меня так?
(или что то с вирусом связано?!)
Trend micro нашёл в нём вирус, drweb — нет
(3) Выложил исходники.
Огромное спасибо за Ваши разработки «Архиваторный плагин Total Commander для работы с файлами cf, epf и erf как архивами (контейнерами)» и «Tool_1CD. Программа просмотра файлов баз *.1CD (1Сv8.x)»
Очень выручили. Во время работы упала 1с и больше не открылась. Выдавала «Ошибка формата потока», оказались сломанными и рабочая конфигурация и базы данных, но с помощью Вашего Tool_1CD удалось сохранить в файл битую конфигурацию, которую 1с тоже не смогло открыть, но с помощью плагина скопировал в небитую конфигурацию (последнего бекапа) последние изменения из битой и получил не битую конфигурацию с последними изменениями.
Очень помог несколько раз)))
Попробовал. Работает только с версией 8.1 (cf/epf), а с версией 8.2 только epf, cf не открывает.
Возникла проблема, файл побился во время отключения света, epf обработка побилась и ничем не открывалась, данный сабж не помог, если у кого-то возникла подобная проблема — помогает софтина Ontrack_EasyRecovery_Professional
Удобная вещь. Помог, когда надо было быстро найти определенную строку в тексте нескольких десятков внешних обработок. Спасибо.
p.s. кст, на TC 8.0 (64 bit, win7) не устанавливается — пишет «This is not valid plugin!».
Спасибо, очень удобная вещь. Так будет ли работать с версией 1С 8.2, о чем писал kredko?
(0)
а есть то-же самое только в виде dll чтоб использовать в 1С?
(4)
Поделитесь информацией?
(25) Исходники приложены же. Будут вопросы — пишите в личку.
awa, большое спасибо. За годы работы так привык к этому плагину, что уже не представляю себе TC без него 🙂
У меня есть маленькая просьба… Соберите, плиз, x64 версию. Ну или хоть makefile для VS2012, чтобы самостоятельно можно было собрать.
(27) Собрал. Правда, размеры файла получаются чудовищные, так я и не поборол это. Embarcadero пихает в файл до фига лишнего.
(28) на сколько чудовищные?
(29) win64 dll получилась 10 мегабайт.
(30) 10 мег. не шибко страшно. Главное чтобы размер на скорость работы не влиял.
Класс!
TC 7.50 работает, 8.01 нет. Так, для справки
В UnrealCommander v2 подключил, но хоткей не открывает.
вот тепперь без тотала никуда))
При использовании плагина обнаружил такой глюк. Захожу в файл .cfu, ничего не меняя, размер возрастает с 250 кБ до 1.2 МБ. Сам файл после этого становится нерабочим, 1С выдаёт ошибку при обновлении.
Файл прикрепил во вложении, если кому-то будет интересно…
(36) Спасибо за сообщение об ошибке. Выложил новую версию с исправлением.
приветствую
при открытии конфы упп вылетает ошибка
Плагин установился успешно в тотале, но комбинация клавиш Ctrl-PgDn по файле *.cfu (УТП) ничего не происходит. В чем может быть проблема?
(40) Возможные причины: при установке плагина, когда Total выдавал окошки по привязке к расширениям была нажата не клавиша ОК, а Отмена или Escape. Попробуйте переустановить плагин и нажмите ОК во всех окошках запроса по каждому расширению.
Также попробуйте входить в архив не по Ctrl-PgDn, а по Enter. Если не получится, выложите Ваш cfu-файл для проверки.
(41) спасибо, уже работает
Кто-нибудь имел успешный опыт использования данного плагина в Double Commander ? Вроде бы совместимость плагинов между TC и DC есть.