<?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://infostart.ru/public/19343/ высказывалась просьба:
«Автору надо все это «добро» сложить в откомпилированный chm или html и тогда будет однозначно большой ПЛЮС».
Я выложил этот файл, поскольку не нашёл на данном ресурсе этого хелпа в формате chm и считаю что в формате файла шаблонов будет удобнее использовать заготовки кода.
Мой файл шаблонов пока сырой, но я его буду обновлять.
Если мы будем совместно его создавать, то файл шаблонов будет богаче и быстее создан.
А что за расширение st?
А почему 8.0? ведь уже давно есть версия для 8.1?
(2) .st — расширение для файла шаблонов.
(3) Уже 8.2. Читайте внимательнее название «Файл шаблонов на основе книги А.П. Габец, Д.И. Гончаров 1С:Предприятие 8.0 Простые примеры разработки»», в теме присутствует число 8.0. Не думаю что есть смысл делить на 8.0, 8.1, 8.2. Можно вставлять комментарии перед кодом (8.х)
Зарегестрированным урезано скачивание, наверное эта информация для ГУРУ, раз всем закрыто, только в сутки раз, вот гуру пусть качают и учатся, да…уж. Понимаю, что пополнять должны профи, но как же начинающим то учится? Хотя конечно каждый в праве распоряжаться «своим» добром.
(5) для ГУРУ «Только для разработчиков с рейтингом больше 3-х. «.
Поставил свободное скачивание.
Кто ставит минусы просьба оставлять комментарии. Чтобы я знал, в чем я не прав.
(4) Нифига не понял.
Данный шаблон из книги для 8.2 или все-таки для 8.0 ?
все-таки есть разница 🙂
Если 8.2, то измени описание и заголовок на 8.Х
Вот теперь большое русское мерси+, давайте развивать мысль, а как добавлять? просто скидывать описание полезняшек сюда или как? и по темам или только 8.1;8.2 или только недокументированные? Не ёрничаю, а хотелось бы действительно полезный для всех (особенно чайникового периода) help.
Шаблон будем делать для 8.Х. Предлагаю скидывать мне на мыло dobrynin.i.s@mail.ru код, ссылки на полезные книги,…
Я буду сортировать материал и вносить изменения в файл шаблонов. Если код предназначен под конкретную версию платформы будет пометка //8.Х.
Желательно описание кода и наличие указания на авторство (страна должна знать своих героев)
(7) Данный шаблон из книги для 8.0, но там не только из этой книги код.
Я отвечал на вопрос (3) «А почему 8.0? ведь уже давно есть версия для 8.1?» Я не так понял вопрос (artbear имел ввиду книгу, а я платформу)
(8) Любой грамотный код, без извратов. Если кому-то покажется код в файле корявым, предлагайте свой вариант в письме и обоснования, если не очевидна оптимизация.
Участники редактирования файла могут вносить предложения по улучшению файла шаблонов. Лучше это делать в этом топике, чтобы народ обсуждал.
Извините сообщение (9) написал я (system_fatal_error) на компе залогинился мой брат (я это не заметил).
Обновил файл шаблонов.
тут http://www.chistov.spb.ru есть файл шаблонов от Павла Чистова. Не стал добавлять его шаблон в свой.
Думаю развивать ветку «На спеца» для тех кто готовится на спеца.
Добавил шаблоны из книг
Радченко «Практическое пособие разработчика 8.1» и «Энциклопедия разработчика».
Скажите а можно как то делать поиск по файлу шаблона?
(12) Кроме как открыть с помощью блокнота и искать в тексте идей нет.
тутhttp://infostart.ru/public/13864/ тема «Редактор шаблонов языка для конфигуратора 1С 7.7. Генерация шаблона.»
Можно сделать аналог для 8ки и в нём предусмотреть нужный функционал.
Передумал развивать ветку «На спеца», так как шаблоны кода будут заточены под каркасную конфу, как решаются задачи можно посмотреть тут http://www.chistov.spb.ru.
добавил в шаблон чужой подшаблон расчетные задачи на сдачу спеца по платформе.
А что за обман с отдельным файлом «Расчетные задачи»? Там практически пустой файл (с одним символом). И как теперь вернуть одну попытку скачки7
(15) Отдельный файл не нужен, всё есть в главном.
Сам только что обнаружил. что он пустой.
Извините, что потратил драгоценную попытку скачки (никак теперь не вернеш попытку)
Сейчас удалю ненужный файл.
(16) пост мой. Как видите чтобы иметь несколько попыток скачек нужно несколько аккаунтов.
Давно не был тут поэтому не вспомнил аккаунт нужный.
Не могу удалить 2 ой файл. Нужно админов просить.
Допетрил как файл удалить, но на ссылке посмотреть и скачать все файлы (1), а как заходиш 2 файла. Наверно потом удалится.
Не качайте файл «Расчётные задачи»
Спасибо, попробую использовать в своей практике.
Спасибо, давно искал 🙂
я тоже качаю, пригодится…