<?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) Тупейший холивар, если-бы легко и просто было-бы «всех нагнуть, а кто не хочет, может идти искать себе работу», тогда везде еще dos и foxpro(клиппер) стоял бы.
(0) по Тест-центр, овчинка выделки не стоит. Никаких метрик не собирается, ни по железу, ни по 1с. Вроде тест есть, а понять в относительных величинах «при увеличении пользователей на 20% насколько у нас будет простаивать железо или увеличится среднее ожидание на транзакции» ответа получить не возможно, или например «сейчас в день 1000 документов, при увеличении до 2000 на что необходимо обратить внимание на железо и конфгурацию?» и т.д. Конечно, может у меня были большие ожидания от тест-центра, но вот анализ и сравнение показателей я там не увидел, поиск корреляций, даже простейшие метрики «средняя длина транзакции», количество ошибок, количество отмененных транзакций и т.д. я не увидел.
(3) pumbaE,
Метрика есть — как в мультиках про богатырей — «Упал»/»Не упал» )
Административный ресурс должен быть обязательно, без него внедрения не будет. Но вот если административный ресурс адекватный, то Вы Yashazz со своим подходом вылетите с проекта очень быстро. Это я как руководитель проекта со стороны заказчика Вам говорю.
Автор, отличный материал! А можно выложить схему управления инцидентами в лучшем качестве? Или статейку, по личному опыту на эту тему, а то эти все itil и pmbook вяло в практику серых будней вливаются, особенно на малых проектах. Интересует не описание хелпдеска, а скорее принципы, фундамент, на котором он строится.
Спасибо.
(0) Со многими пунктами согласен, но есть вопросы.
Государственные предприятия, особенно крупные, работают через механизм открытых тендеров. Для этого им нужно ТЗ на все работы от начала до конца. И договор на основании ТЗ на полную стоимость проекта. Как от водопадной модели безболезненно перейти к итеративно-цилической? Или все равно мухи отдельно, а котлеты отдельно? Гибкие технологии гораздо имеют массу плюсов, но и б’ольшие расходы для достижения того же результата. В водопадной модели мы как-никак идем прямо к результату, а в гибкой на каждой итерации стараемся направиться более точно к видимой цели. При отказе от следования ТЗ нет страховки, что заказчик на n-ом шаге не поймет, что ошибался в начальных требованиях, и не попросит вернуться к первому шагу. Как юридически строить отношения с крупными государственными заказчиками в случае гибкой разработки?
Все знают, что в свежих релизах платформы огромное количество багов. Есть ли опыт реальной разработки конфигураций с использованием БСП, как много ошибок встречается там? Вы правили их сами или через разработчиков из 1С?
Ничего не понятно в статье. Как-то сумбурно. Одно вот заинтересовало. Пишите
С вторым, да, согласен. Особенно когда работать в штате с целью наработки опыта внедрения. А вот с первым удивлен. Там же денег куры не клюют?
Статья интересная -спасибо.
Но есть немного рекламы DB2. Если можно уберите ее))
(2) pumbaE, именно. Оно бы так и было, если б 1С не пропихнула свой стандарт сдачи отчётности в качестве государственно принятого и единственно возможного. Видел десятки организаций, вынужденных работать в 1С только из-за этого.
(5) bondar_vy@mail.ru, вы, вероятно, не поняли. Я не призываю к внедрению кривого-ушатанного продукта, я указываю на вероятность успеха и основные факторы. Адекватный адм.ресурс — это сферический конь в вакууме. Как максимум можно рассчитывать на дядю, который поинтересуется финальным «работает-не работает», или случайно оказавшегося «во власти» собрата-айтишника. Далее адекватность кончается. Можно сделать супер-продукт и убиться об стену, пытаясь сделать так, чтобы он использовался, даже при адекватном начальстве; это я вам как руководитель множества проектов говорю. Есть итальянская забастовка и прочие способы тихого саботажа, потому что » ну мне так привычнее» и «я этой вашей 1С не доверяю, я лучше параллельно в эксельчике буду всё вести». И повторяю, это никак не связано с качеством «вашей 1С».
Вылетают с проектов обычно те, кто больше «высовывается», машет руками и вообще возмущает спокойствие, потому что, чем больше и, значит, бюрократизированней организация, тем меньше руководство интересует реальная эффективность и «конечный выход». Интересует стабильность и соблюдение формальностей, да иногда пилёжка доступных средств без помех. Однажды вы это поймёте)
Ковбойская пословица: «и один человек может привести лошадь на водопой, но даже десятеро не заставят её пить».
Очень интересен чисто денежный аспект. Как правило, заказчик хочет оценку бюджета и затем оценивать его исполнимость (освоенность).
Как вы решали эту проблему ?
Понятно что при многоитерационном подходе рождались десятки мини-ТЗ и мини-бюджетов. И неужели ни один из них не сказал: «Эй, ребята, а сколько еще надо чтобы это все закончилось ?» ?