<?php // Полная загрузка сервисных книжек, создан 2026-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с не нужны
(2) Alien_job,
Ок. Дорабатывайте формочки на предмет новых реквизитов. Но затем не жалуйтесь на отсутствие работы, так как 1С вылизала типовые конфы до неприличного блеска.
(3) AlX0id, Для каждой задачи нужно применять соответствующий инструмент: дорабатывать формы — 1с, решать дифуры — матлаб. Проблемы с отсутствием работы рекомендую решать специализацией а не разного рода экспериментами с микроскопом.
Не хочу придераться, но в конструкции
Показать
Не лучше ли писать
За красоту и оптимальность боремся же =), лишнее выделение памяти оно же лишнее?
Пошли лабораторные работы — в массу)
(6) Светлый ум, 1С это одна сплошная и нескончаемая лабораторная, по моему )).
(5) Иной, ага, я сперва так и написал, но так менее понятно новичкам. Там вообще-то есть более серьёзный недостаток — в методе парабол, из-за которого этот метод немного «допиливают».
классная девка на аватарке статьи
увеличить картинку нельзя оказывается
(9) RainyAugust22, хе-хе это не аватарка, а картинка для анонса. Я для будущих статей специально ещё насобирал ))). А увеличивать их да нельзя, а то слишком уж говорят вызывающие, хотя мне нравятся.
ну теперь заживем!!!!
А серьезно если , в каких практических задачах использовались эти алгоритмы?
(11) iov, ну собственно в любой задаче на одномерную оптимизацию. В этой статье такая рассмотрена и решена 3 методами (в т.ч. графически). Если говорить применительно к практическим задачам по 1С, то наверное тоже можно применить. Например к задачам, где надо найти оптимальный уровень чего-либо, а хоть бы и оптимальный уровень запаса, где общие издержки по хранению это функция от времени или от того же наличия запаса. Ну или как-то так. Почитайте литературу, поищите. Очень рекомендую книгу Таха по основам исследования операций.
(12) ценность как раз имеет не теория вроде этих функций, а её практическое применение. Набросай хоть один наглядный пример — подымем твою публикацию не раздумывая. ildarovich — , такие штуки периодически выкладывает.. и сидишь потом смотришь, каким бедным арсеналом сам обладаешь.
(13) Светлый ум, это не теория в виде функций, а метод решения определенного класса задач. Т.е. теории нет вообще, хоть она и сравнительно проста и интересна. В начале статьи специально про это написано. Пример такой задачи в статье есть. Если вы не видите ценности, то это ваше дело. Проходите мимо да и делов. Как применять подобные методы именно в практике программирования 1С — подумаю над этим.
В свое время тоже писали что угодно на делфи ради практики. Даже что-то подобное было более 2000 строк по пересечению кривых для гистерезиса. А все чтоб язык изучить. Знали бы что 1С пригодится на ней бы писали…Правда тут проблема с запуском 🙂 Без платформы то никак 🙂
Зачем?! Почему не просто
(16) Mr.Rm, мне показалось, что так более читаемо. Так меньше вероятность пропустить минусик спереди.
функция для вычисления модуля числа легко заменяется выражением Макс(Число, -Число).
(5) Не хочу придираться, но «придираться» пишется через И во втором слоге, а ещё учишь, как жить надо.
Вот не понимаю смысла этих статей.
Автор, не спеши посылать меня в даль -)))
Объясню.
Сидит некий просветленный чел, только что выдумал как решить на 1С узкий математический класс задач. Считает себя крутым и вытирает носом потолок.
А дай, думает, выложу, народ по-удивляю. Распирает же ж.
Но писать много букав лень. Он же много ночей не спал, книг… две прочитал. А может уродился весь такой гениальный. Нечего безграмотных обучать, захотят — сами эти же книги прочитают. Может что-то и поймут, хотя и не факт. Зато он по-прежнему будет умнее и круче всех.
Только какой смысл этой и подобных статей? Порисоваться?
Лови плюс в карму, ты красавчег -))) уважуха.
После анонса, где «теории опять нет», читать дальше не стал. Все равно не пойму ни тему ни область ее применения.
Мне отчего-то кажется до сих пор, что этот портал для того, чтобы помочь коллегам подрасти и продвинуться, сэкономить время в нелегких трудах, а не наоборот, увеличить их трудности еще и на освоение тонн теоретической информации, чтобы выудить из нее ту самую крупицу, которую эдак небрежно тут освещают.
Ага, увидел аватарку, показалось, что это наша университетская преподавательница 🙂 Как сейчас, помню, вернулись с картошки, сидим в аудитории, ждем ботана-препода, который только что отчитал нам лекцию по матану на своем птичьем языке («о чем поет страшнАя птица?») Но, вдруг, заходит длинноногая стройная блондинка — оказалось, что лекции читает один, практику другой преподаватель. Слышно было, как у парней бряцнули об стол отпавшие челюсти и в мыслях раздался шорох от массового скидывания с нее этого тесного красного платьишка с коротенькой юбочкой, кто-то сглотнул слюну, подумав: «Ну все, подкачуууу и стану великим математиком» (…закатились мечтательно глазки). А она с порога:
«Меня зовут Имя Отчество, мне 26 лет, у меня серьезный муж. Кто подумал, что сможет подкатить и сдать, забудьте! Я, в прошлом, студентка, знаю, кто, где, прячет шпоры — даже не думайте!» что-то типа того, в общем. Тот случай, когда понимаешь, что в человеке может быть все прекрасно, и тело, и ноги, и платье, и аналитический склад ума, и тончайшее притягательнейшее чувство юмора 🙂
Курсовую по математике считал под ее руководством. Тема «решение дифференциальных уравнений методом Рунге-Кутта». Детали расчета давно забыл, но итерационный подход к решению много раз пригодился на практике. В армии — «перелет, недолет, точное попадание!» и в управлении распределенными программными проектами 🙂
зачем это в 1С?
я знаю человека который написал в ALtera Учетную систему. Скажу честно выглядело убого.
но круто, hardware 1с такой.
зачем это в 1С?
А пусть будет. Оно никому не мешает )))
(9) [ 18+ ] написать в яндекс-поиске-картинок «мисс училка» — и да пребудет с тобой сила )))
В общем-то, после прочтения учебника математики для 9-10 класса и вспоминания пройденного в школе материала, вопрос к автору только один — почему на аватаре публикации девушка выглядит как порядочная проститутка, а не добропорядочная учительница, сеющая разумное, доброе, вечное?