<?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/201803/
Бредовое решение. Этим вы на корню убиваете возможность обновления конфигурации через интернет при наличии ИТС и штатной конфы.
(1) HameleonA, а ещё три окна куда деть?
(2) alexdm, была тут одна бухгалтер, самая умная, обновила через интернет, ну и пропали все доработки, за которые директор заплатил, потом каждый раз вздрагивала при открытии программы) – в итоге попросила убрать.
Я не предлагаю всем всё бросить и бежать отключать обновления, но довольно регулярно поступает этот заказ, вспоминать каждый раз где что лежит неудобно, вот и запостил, ну простите) теперь мне будет легче.
(4) Yury1001, Это, похоже, очень умный бухгалтер попался… Встроенный механизм обновления очень сильно помогает, когда конфа штатная, юзеры сами обновляются без проблем, хотя и дольше, чем руками.
(6) Понимаете, то, что Вы опубликовали — это вполне очевидно для 99% программеров и не требует практически никаких затрат времени в случае измененной конфигурации. Если конфа штатная, то это — не решение. Так что ценность Вашей публикации стремится к нулю, увы…
(7) alexdm, хочу вас заверить такие бухгалтера есть и чем меньше город — тем их процент выше)
(8) alexdm, это моя первая публикация — выбрал самое простое из часто встречающегося, от этого и буду расти над собой.
http://infostart.ru/public/336794/ надеюсь получится лучше)
Через пару часов выйдет продолжение
ну, точнее не продолжение, а следующая попытка
(10)
Самое простое для большинства здесь настолько очевидно, что нет смысла изобретать велосипед. Так что публикуйте что-нибудь более-менее серьезное, посмотрим…
(12) alexdm, буду стараться
http://infostart.ru/public/120053/ )))
(13) Ну не до такой же степени… :)))
P.S. У меня куча всего написанного за 15 лет работы, но пока что не считаю достойным это здесь выкладывать.
Решение очевидное, но автору спасибо, добавил в книгу знаний, чтобы потом не искать в случае необходимости, хотя конечно конфигурацию во многих случаях нельзя трогать.
Считаю, что это минус в карму самой фирме 1С.
Дурной тон так назойливо навязывать обновления, рекламу и предложение перейти на другую версию программы.
К тому же, чекбоксы вроде «Не показывать это сообщение» не работают.
Таким незамысловатым способом сотрудники обучаются закрывать все всплывающие окошки.
Решение топорное, но, предложить другого, более изящного, пока нечего.
Потому пусть будет.
Безусловно, такое небольшое изменение в конфигурации даст экономию в несколько секунд при запуске. Однако насколько увеличится время обновления конфигурации с включенной возможностью изменения?
Считаю, что этот топик необходимо поместить в раздел «вредные советы»
Кажется, где-то тут пробегала обработка которая отключает рекламу и прочие сообщения штатными способами без изменения конфигурации
Посмотрите мое решение:
http://infostart.ru/public/318735/
В БП 3.0 точно работает без снятия конфигурации с поддержки. По аналогии можно и для 2.0 сделать.
(16) OrsoBear,
Дурной тон так назойливо навязывать обновления, рекламу и предложение перейти на другую версию программы.
К тому же, чекбоксы вроде «Не показывать это сообщение» не работают.
Плюсанул только за это. У меня, блин, уже сформировалось стойкое неприятие бренда «Петелинка» только из-за
заезадолбавшей рекламы в 1С…(0) Не хочется ставить минус, но перед публикацией можно было бы поискать аналоги.
http://infostart.ru/public/242593/
http://forum.infostart.ru/forum1/topic87810/
Публикация из разряда 18+, чтобы «дети» не читали
(19) clev, в 2.0 некоторые окна открываются безусловно — видно по тексту
http://infostart.ru/public/242593/
мне больше понравилась ссылка
В последних версиях ЗУП 2.5 тоже появилось предложение перейти на 3.0… Ладно, когда предлагали с БУХ 2.0 перейти на 3.0 она хотя бы была уже более-менее вменяемая, ЗУП 3.0 сейчас это паровоз на тротиле, когда рванет — непонятно, в следующем релизе только обещают доделать многие фишки, которые нужны были еще полгода назад и нормально функционировали в 2.5.
Предложение, бесспорно хорошее и полезное, но относится только к тем конфгурациям, в которых изменения уже включены.
вместо текста о том, чтобы немедленно и сразу включить изменения в конфигурации — лучше внесите текст о том, что включать изменения надо только в крайних случаях и ко всем изменениям относиться максимально внимательно.
И, кстати, ваша проблема решается и без изменения конфигурации.
пишется внешняя обработка, которая при запуске проверяет открытые формы всех этих служебных обработок — по доп информации, по переходу на 30 и пр и закрывает их программно.
к ярлыку 1С дописывается подстрока запуска этой обработки /Execute
Спасибо за статью, мне она понравилась, так и делаю в своих конфах, отключаю всю эту лабуддень.
Спасибо большое. Сделал Вашим способом, все очень радует.
А нет ли у Вас подобной инструкции для ЗУП 2.5? Там тоже реклама, только не получается применить метод, предложенный для БУХ 2.0
Рекомендую для этого использовать возможность добавления расширение модулей появившуюся в платформе 8.3.9 и позволяющую вместо типовых процедур клиентских общих модулей вызывать свои процедуры и функции. Снимать конфу с поддержки вовсе не понадобится.
Все что нужно для этого сделать это прописать в расширение общего модуля ОбщегоНазначенияБПКлиент всего три строки кода:
&Вместо(«ПредупредитьОНеобходимостиОбновленияПрограммы»)
Процедура Пустышка(Параметр)
КонецПроцедуры