<?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='\
удобно
Спасибо, старался.
Премного благодарен. Очень полезная вещь
Программа хорошая но много еще делать до совершенства
http://apxi.pioner-plus.ru/delphi/for1c/run1c/index.php
пока выбрал эту
DDD2005, Их нельзя сравнивать. В той только базы 7.7.
А в StartPlus можно указать любую командную строку.
StartPlus первоначально задумывался не для 1С. А был потом адаптирован под 7.7
поставлю плюс, чтобы в «избранных» был, хоть и проверить бы надо…
кто-нибудь проверял работоспособность?
автору авансом спасибо! 🙂
всем успехов!
(6) Я проверяла. Работает.
Только плюс поставить забыла. Исправляюсь.
(5) та программа может просканировать каталог с базами 1с и сама создать ссылки на все найденные базы.
это очень и очень большой плюс..
то что там нет возможности запуска 8.2 — соответственно тотальный минус 🙂
это очень и очень большой плюс..
то что там нет возможности запуска 8.2 — соответственно тотальный минус
Я админ, и мои пользователи, (которых около сотни) не должны сами ничего сканировать и добавлять.
Мои базы все в сети. Я сам должен управлять списком баз и программ, которые им нужны.
А на своем компе я пользуюсь стандартными лаунчерами 1С.
Стояла задача, чтобы пользователь одним стартером мог запустить любую базу 1С: 7.7, 8.1, 8.2. Этот стартер оказался то что нужно…
В эксплуатации уже примерно год…
(8) то что нет интерактивной возможности лазить шаловливыми ручками по настройкам — это очень большой плюс! 🙂
У меня, конечно, шаловливые ручки, но еще кроме этого около 40 семерочных баз клиентов на жестком диске. Согласитесь, не совсем удобно при добавлении новой базы лезть в файл и прописывать путь.
А так как часто бывает, что я обновляю базы, и храню оригинал и копию, которую обновляю — опять таки чертовски неудобно будет все это дело заносить в файл *.lst вручную.
Автор, может можно уже добавить кнопку добавления баз/объектов уже. (с) Маша и Медведь
Не согласен.
У меня, конечно, шаловливые ручки, но еще кроме этого около 40 семерочных баз клиентов на жестком диске. Согласитесь, не совсем удобно при добавлении новой базы лезть в файл и прописывать путь.
А так как часто бывает, что я обновляю базы, и храню оригинал и копию, которую обновляю — опять таки чертовски неудобно будет все это дело заносить в файл *.lst вручную.
Автор, может можно уже добавить кнопку добавления баз/объектов уже. (с) Маша и Медведь
Если вы ставите базы на каждом локальном компе, то все равно, вам к нему придется идти (или удаленно подключатся). И так же легко Вы можете добавить базу в стандартный лаунчер. Эта программа больше подходит для сетевых баз. Видимо это не ваш случай. :).
http://apxi.pioner-plus.ru/delphi/for…/index.php
Вам, скорее всего, подойдет эта
На сегодняшний день готовится новая версия, где при закрытии программы будет выполнятся корректное завершение терминальной сессии.
На сегодняшний день готовится новая версия, где при закрытии программы будет выполнятся корректное завершение терминальной сессии.
Замечательно… весьма нужная вещь…
У меня сейчас организовано так. При подключении клиента через терминал, запускается пакетный файл, в котором производится запуск стартера. Следующей командой идет logoff. Т.е. как только пользователь закрывает стартер, происходит завершение сессии. Без этого терм. сессии периодически подвисали.
Такойвелосипед уже давно изобретен 🙂
Такой велосипед уже давно изобретен 🙂
Такого велосипеда нет!!!
Еще раз объясню свою позицию:
-моя программа запускает не только 1С. (любой батник, или даже документ word)
-кнопок редактирования списка программ для пользователя не должно быть!
(16) Hot tray тоже умеет запускать любые программы
А вот отсутствие кнопок редактирования никак не вписывается в его философию 😀
Попробовали данную программу. Из-за нехватки некоторого функционала написали собственную. Описание здесьhttp://infostart.ru/public/91323/
очень хорошая вещь, может я конечно ничего слаще редьки не ела, но мне нравить. Я вообще люблю чтобы всяких значков на рабочем столе и на панели задач было по минимуму. Удобная вещь — рекомендую.
Спасибо автору отличная программа удобно и практично ждем новых версий можно было бы добавить нечто вроде проверки подключения торгового оборудования, компонент и так далее вообще админский инструмент получится неплохой ну голь на выдумку хитра желаю творческих успехов 🙂
Отличное и простое решение.
Есть пожелание добавить возможность отключения строки состояния.
А еще не плохо было бы сделать режим работы «вместо оболочки», чтоб прога запускалась в виде панели задач (компактно и поверх всех окон).
MegaPoster Вместо оболочки — наверное лучше прописать в политиках (GPO)?
кому как удобно, но это не изменит свойств окна программы
Неплохая вещь, но зачем она делает в командной строке upcase перед тем как отправить на выполнение? Невозможно передавать регистрочувствительные пароли.
Неплохая вещь, но зачем она делает в командной строке upcase перед тем как отправить на выполнение? Невозможно передавать регистрочувствительные пароли.
Исправлю в следующей версии.
Отлично. Спс
При запуске из командной строки как задать чтоб не разворачивалась на весь экран?
напрасно ребята «хаяли» эту вещицу
замечательная штука
тем более сейчас, когда у 8.2 нет административной установки
из этой программки можно выжать удивительные вещи
в качестве развития программы есть несколько «просьбулин»:
1. пора подумать над солидной иконкой. ставить существующую пользователям не совсем … приходится менять. а жаль. авторство — есть авторство. тем более что работа сделана красиво.
2. запуск программы с параметрами — замечательно. у каждого пользователя может быть свой набор меню. но …. если с одного компа с этой программой работают несколько пользователей (скажем текущий — постоянно а админ — по мере необходимости) — получить личные списки меню не так просто. не плохо было бы добавить выбор пользователя и пароля. причем в «Global.ini» включить функцию скажем «Предлагать смену пользователя» и «Пользователь по умолчанию».
3. если честно, мне как то «до лампочки» какие папки будут у пользователя. руководить этим тоже … «в лом». мне (как админу) главное ЧТО будет запускаться и КАК, а «интерфейс» пусть рисуют себе сами. хорошо бы добавить (скажем так) кнопок «Добавить папку», «Изменить имя папки», «Удалить папку (без удаления элементов)»,»Перенести в папку», «Переместить вверх (и вниз)». т.е. добавить чуть-чуть сервиса.
4. но не менять сути. достоинства этой вещицы как раз в том, что она позволяет запускать все что пожелаешь (а не только 1С) и не дает пользователям лазить куда не следует. а «наполнением содержания» могут занимаются те, кто и должен заниматься (ручками или другими инструментами — кому как будет удобно)
5. и последнее — простота залог надежности, стабильной работы и красоты в конце концов. такого качества этой программулины менять не нужно
Спасибо. Ее дальнейшем развитием занимается другой человек. Ему и передам Ваши пожелания.
Спасибо автору, хорошая вещь.
Когда жать новых версий?
(32) MegaPoster, альтернативный Проектhttp://infostart.ru/public/91323/ развивается.
Какие есть пожелания ??
Какие есть пожелания ??
Как-то пропустил ее… Скачаю, посмотрю.
Автор, не ведись на предложения добавить то, и добавить сё. Эта программа хороша именно в том виде, в каком есть.
Но тем не менее, пожелания 🙂 1) сворачиваться в трей; 2) иконку на кнопку «выход» прилепить другую (с этой есть стойкая ассоциация «выключить компьютер»).
Спасибо. Реально удобно, когда пользователь работает через удаленный рабочий стол. Обычно сисадмин старается ограничить его во всем, настраивая запуск одной программы при входе на сервер. В том случае, если пользователь работает и с 7.7 и с 8, это не прокатит. Ваш вариант мегаудобен
Судя по объявленному функционалу — довльно полезная вещь. Особенно лично мне нравится то, что пользователь но может сам редактировать списки баз (зачем это ему, если есть админ и прог…)