<?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='\
на 8.2 win7 x64 работает
(1) Спасибо
А как пользоваться, скажите?:) Главное цвет окна изменить хочу
(3)
http://infostart.ru/upload/iblock/94f/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0 %B9%D0%BA%D0%B8.png
Когда активен конфигуратор, жмем кнопку настроек. Единственная кнопка «ключ-отвертка». Далее появляются остальные кнопки.
3-я кнопка в верхнем ряду.
Выбираем нужный цвет. Далее жмем «Да». Теперь для данного конфигуратора этот цвет будет всегда.
Скажите, только Конфигуратор дифференцируется? Режим «Предприятие» не поддерживается?
(5) Да, только конфигуратор.
А есть ли смысл делать тоже самое для режима «Предприятие»? В типовых конфигурациях есть общая настройка «Заголовок программы» — вроде хватало…
спасибо! полезная штука
(4) разобрался, спасибо, винд. сер 2012 р2
Не знаю… с одной стороны может и хватало, с другой встречались ситуации когда хочется дополнительно выделить, особенно когда часто переключаешься и глаз замыливается. В любом случае пусть это будет комментарий по улучшению).
(9) ок, пусть будет )
Уважаемые, скачавшие! Поделитесь впечатлениями о программке. Используете? Помогает?
p.s. Пока создавал и тестировал, настолько привык к удобству, что уже как-то раздражало, если шильдик был не запущен и приходилось делать лишние клики в «Показать информацию о программе», дабы узнать где находишься.
Я что-то непонял, для чего это надо?
И зачем работать из чужого конфигуратора?
А мне и коллегам понравилось — пользуюсь. Единственное пожелание — убрать заголовок окна, пестренький такой — не вписывается) В принципе, видимо его нужно заливать тем же цветом что и форму.
(12) лучше один раз увидеть все-таки. Видео сделал, залью в паблик. Тогда, думаю, будет понятно.
(13) Спасибо за отзыв.
Как опцию внедрю отключение «шапки»
(12) Видео добавил в публикацию:
https://vimeo.com/158964793
Таскаем Шильдик по экрану, переключаемся по Alt+Tab между конфигураторами, смотрим как это выглядит в панеле задач. А если включено Windows Aero — все еще веселее.
(15) и…. сразу не написал — вот лишние «=» в заголовках окон. Совсем лишние. Место на панели задач занимают, а суть не отражают.
Прям сейчас куча окон открыта — от заголовка окна остается первые 6 символов (а можно и меньше) — из них первый «=» — как результат у двух конфигураторов одинаковые заголовки на панели задач.
Супер штука! Огромное спасибо)
Исходники не выложите? тогда с меня плюс и скачивание =)
(18) не вижу смысла
(19)
Спасибо! Поможет в работе.
(11) На Windows Server 2012 не работает. Подозреваю, что на Windows 10 тоже. Нет ли планов доработать? Хотелось бы продолжить использование программы.
В (8) вроде как раз работал. Сообщите другие параметры. Разрядность, версия 1С и т.д.
Проблема существует. Надо разбираться. Как будет новая версия, отпишусь.
Поправил, работает, выложил. Правда, на x86 не тестировал — нет по рукой.
(24) Скачал версию 1.1.0. Подтверждаю, работает на Windows Server 2012 и Windows 10. Есть только небольшое замечание, при использовании англоязычного интерфейса конфигуратора изменение заголовка не поддерживается. Подпишусь на тему на случай появления фикса ))
Штука возможно очень полезная, но я ОЧЕНЬ не внимательный 🙁
Но есть замечание, и оно срочное, не работает на некоторых базах 🙁
(26)
На «некоторых» базах может не работать в том случае, если их запуск происходит не через стартер 1сv8s.exe или 1cestart.exe, а непосредственно через файл 1сv8.exe из директории bin. В этом случае в командной строке запуска отсутствует имя базы, что вероятно является причиной того, что заголовок окна не меняется. Отсутствие имени базы в строке запуска можно наблюдать в этом случае в диспетчере задач.
Попробуйте запускать эти базы через стартер 1С.
На Microsoft Windows 7 Профессиональная 6.1.7601 Service Pack 1 Сборка 7601 32 bit — не работает!
в остальном — это замечательная программа, которую бы сильно хотелось попробовать, но не получилось, что очень жаль(
Спасибо большое! Как же давно хотел такое решение. И как же давно оно существует, а я о нем не знал.
Требуются ли права локального администартора?
Добрый человек, если ты меня слышишь, сделай, пожалуйста, чтоб эта великолепнейшая вещь заработала на платформе 8.3.15
Там она не работает.. (((
Ой сорянчик. Не посмотрел, что у меня старая версия (кстати нет возможности посмотреть версию, только по дате определил). Оказывается на 64 битной не отрабатывала.
Скачал новую версию, все заработало.
Спасибо большое за такую прекрасную вещь! 🙂