<?php // Полная загрузка сервисных книжек, создан 2025-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='\
Отлично. Вот бы моему прошлому заказчику почитать. Но уже поздно … 😥 Все тоже самое. Крыши нет — завезли мебель … начали завозить плазму вдруг поняли что она не пройдет через двери…. перекинули через отверстие для крыши … сейчас разламываем дверной проем, а то мало ли чего еще не пролезет……
😀
Наконец-то прочел у соседа. Текст — мне на мыло, пожалуйста»
Bpmn- вот ключ ко многим проблемам
(3) увидев суть сообщения в письме, решил зайти и заорать от радости! мол Ураа!!! хоть кто то из 1С это понимает!!! а когда увидел кто это написал афигел, впал в шок и не знаю че сказать )))
А в чем такая ЖУТКАЯ сложность? Если, к примеру, кладовщик в 1С работает, так он будет Приходный/Расходный ордер на товары забивать, и все. Научить (и научиться) этому несложно, а знать тонкости ведения партионного учета ему нет необходимости. То же самое – оператор, кассир и многие другие. Понятно, что тот, кто отвечает за ведение учета, должен знать программу на уровне, близком к совершенству, так там и уровень знаний и умений другой.
К тому же, если 1С – жутко сложно, то как главбуху проще вести учет, в екселе?
Вообще, мне показалось, что основной смысл статьи сведен к ключевому пункту «Найм бригады с самой дешевой ценой». Логический вывод, который напрашивается, — чем дороже услуги специалистов, которые возьмутся за внедрение ИС, тем лучше будет результат?
(4) к моей персоне столько внимания потому то я когда то влепил Вам минус?
BPMN давно использую, и ощущаю от него реальную пользу, изредка использую схемы в инструкциях.
http://blog.1c-ei.ru/search/label/BPM
❗
(5) все относительно и взаимозависимо. к сожалению универсальность имеет прямую зависимость к сложности в большинстве случаев. 1С сложнее других менее универсальных и более простых учетных систем. называть не буду.
1С выгоднее использовать в малом бизнесе, т.к. вся затратность с универсальностью гасится за счет услуги ИТС. и малому бизнесу это выгодно.
но в большом бизнесе эта же универсальность мешает быстро и дешево вносить изменения. одна доработка вызывает шквал ошибок, которые потом долго отлаживать.
хотя это я теоретизирую ) т.к. реальных цифр и фактов под рукой нет. это лишь догадка на основе личного опыта работы с другими системами.
что касается жуткой сложности, то и она есть. к примеру в Навижн, КАС БЛ или ДИРЕКТУМ многие функции интуитивно понятны. в отличие от 1С. где часть функций или не понятна, или названа так что не сразу и поймешь, или тупо отсутствует в документации. а т.к. порядка действий нигде нет, то вникнуть и разобраться в этом пользователям достаточно сложно.
в общем все относительно. 1С самая сложная система из тех, которые мне встречались. и виной тому ее универсальность.
и я не атеист 1С )) просто это ее объективный минус. который обходится как и любой другой минус в этом мире. наши минусы это продолжение наших плюсов. сложность это минус являющийся продолжением плюса — универсальности. и наличие грамотных инструкций это единственное решение по обходу этого минуса.
(6) может и напрашивается, но это мое наблюдение. к нам часто обращаются и отказываются т.к. мы вставляем в смету затраты на все эти этапы. потом ищут еще и видят что по соседству предлагают туже программу по цене горазд ниже (многие этапы исключены). и там говорят да мы вам поставим ее за бесплатно. только купите.
покупают. пол годика помучаются, а потом звонят и просят помочь, т.к. нифига не работает.
кстати п. 3 гласит что нужно искать бригаду с опытом. не обязательно дорогую, но просто опытные ребята редко стоят очень дешево. и да, цена это не показатель качества. и о том что нужно искать дорогих ребят в статье ни слова. т.к. сам так не считаю.
(7) а что ты хотел? ))) у меня тот же подход. но меня удивил твой пример по разжовыванию справочника номенклатуры как идеал инструкции в твоем понимании.
(8)
Если не называть, то это не считается за аргумент. Мне так кажется.
А в учетной системе (которую не хотите называть) все-таки вносятся изменения дешево или нет?
Проблема в том что 1с стремится в крупный бизнес с своим менталитетом.
Сложность появляется когда один человек пытается внедрить что то типа УПП потому что уже 10 и более лет внедряет разные пограммы малому и среднему бизнесу.
Процесс очень простой…. Поставил 1С бух. … сотрудничаю уже много лет …. клиент покрупнел…. мне доверяет …. нужно что то серьезнее … может УПП ?…. и вот после этого начинаются проблемы — вот здесь действительно сложно.
Опытному менеджеру проекта и в голову не прийдет идти на крупный проект с 1 программистом в штате, даже если у программиста большой опыт…. это нонсенс.
(9) на самом деле я их назвал ) просто чуть ниже )
тот же Navision, DIRECTUM, КАС БизнесЛюкс. Эти системы понятны. Минимум галочек с кнопочками, без перегрузки интерфейса. КАС БЛ кто то называет русским SAP. Из-за масштаба их проектов. и да, почти во всех этих проектах используется 1С Бухгалтерия как прослойка между управлением и государством. из ИС выгружаются данные в 1С чтобы сформировать регламентированные отчеты.
если говорить об аналогии к 1С, то хорошо подходит АСР Онима, тоже приходилось встречаться, позиционирует себя как 1С для провайдеров массовых услуг. Может считать хоть трафик, хоть звонки, хоть воду с теплом. Ей поборобану, а пользователю это надо освоить ) но это тяжело, особенно без инструкций ) и система как и 1С мне нравилась, отчасти именно своей сложностью, 3 месяца сам голову ломал чтобы понять ее логику и освоить, а потом 1,5 года ломал голову пользователям внедряя ее по филиалам ))
в том то и дело, что это пока что теоретический прогноз. я видел код Navision и код DIRECTUM. там код на много проще и менее путанный чем в 1С. подозреваю что в первые системы вносить измненения быстрее и проще. но коли от разработки отошел уже давно, то подтвердить практикой это не могу, и управленческих цифр для сравнения тоже нет, т.к. сейчас занимаемся только 1С. прочие системы были в прошлом )
(8)
Если продолжить аналогию с домом, то вы сейчас говорите про поклейку обоев и пианино для ребенка. А у разработчиков более приоритетная проблема — как бы по стенам трещины не пошли от новых архитектурных изысканий.
Кстати, ваше замечание уже по немногу теряет актуальность. Посмотрите на рабочие столы БУхи и ЗУПа — в конце-концов все типовые и отраслевые решения будут переписаны в угоду эргономике.
У типовых конфигураций 1С с разбором кода всегда было нелегко. Помню комплексную 7.7, ещё второго поколения, 1999 года, так и там в глобальном модуле можно было ногу сломить. Это скорее вопрос соглашений и дисциплинированности разработки, а не самой платформы. На любой системе можно накатать ясный код и чёткие принципы, а можно устроить кастрюлю с лапшой.
чем-то напоминает бородатый юмор «если бы программисты строили дома»
или вот ещеYouTube
Какой смысл в этих аналогиях?
(16) смысл — понятие индивидуальное и субъективное.
1. мне эта статья нужна была чтобы донести риски до заказчика. в этом смысл этой статьи для меня.
2. тем кто плюсанул тоже какой то смысл был виден.
3. тебе смысл не виден. такое тоже бывает. значит его просто нет или пока нет. может быть когда нибудь появится, а может и нет.
— за отсутствие проекта дома (роль архитектор), без которого не имеет смысла что-либо закупать