<?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) Brawler, Согласен, изменил на Отказ = Истина в процедуре ПриСозданииНаСервере. Спасибо!!!
Вот это дельная вещь, задолбали рекламой. Но…Не такие они и простые эти разработчики типовых конфигураций. Они каждый раз будут менять процедуры запуска чтоб Вы запарились решать проблемы с правкой расширения.
(3) kostyaomsk, Вызов они пусть меняют как хотят, здесь реклама не в выове отключается, а при попытки открыть обработку, которая её показывает, так что, если не будут каждый раз писать новую, будет работать — ПриСозданииНаСервере форма пропустить не может 🙂
судя по последней строке в п. 32.1http://its.1c.ru/db/v83doc#bookmark:dev:TI000001516 и по по последней строке на стр 3 в http://fs.kursypo1c.ru/free/1C-Administration/02-How-2-use-extentions-in-8.3.6.pdf ограничения все-таки есть(
(5) vikad, Написано, что не поддерживается, но в случае, когда базовая версия работает на платформе с ключем ПРОФ расширение подключилось и работает. Проверить, кода работает ТОЛЬКО базовая пока не могу, как получится — отпишусь, или кто — нибудь тут напишет, надеюсь…
А не проще написать простенькую обработку, которая для всех пользователей установит настройку ДатаБлижайшегоПоказа в какое-то о-о-чень далёкое от сегодняшнего дня значение, 01.01.2500 г., например, и не париться с подключением расширения?
(7) premier, Конечно проще, уже написал (http://infostart.ru/public/333876/) , только Вы невнимательно прочитали
В базовой версии пофиг даты — до них просто код не доходит 🙂
К тому же перезапись настройки «ДатаБлижайшегоПоказа» происходит при закрытии формы. А откроется она очень даже не скоро )))
(8) а там что, код запуска отличается? Просто базовой БП под руками нет, чтобы проверить.
(9) premier, Откройте базовую, найдите там галку «не показывать»…
По поводу внешней обработки, в публикации (см. выше) так и сделал внешнюю, но даже в своей базе (не базовой) как то забывается её запускать, расширение. ИМХО, более красивый выход из положения — для ПРОФ просто встроил обработку в расширение, и запускаю её при появлении окна «Информация при запуске» — теперь забыть не получится 🙂
(9) premier, Уууууу, как всё запущено… Я же код привёл в статье — Вы совсем не смотрите?
Показать
(12) я же писал в (10), базовой под руками нет, теперь понятно, что там ФлажокПользователя всегда будет принимать значение Истина. Перемудрили, конечно 1С-ники со своей рекламой навязчивой.
(13) premier, ИМХО, базовая — дёшево и сердито — смотрите рекламу 🙂
А что такое «базовая версия платформы»?
насколько я знаю Платформа одна, а вот ключ и конфигурация может быть Базовой и ПРОФ.
или я что-то путаю?
(15) 3BEPb777, Не, ничё не путаете, я неправильно выразился. имеется ввиду, что когда платформа активирована базовой лицензией.
Платформа одна, но ключ ПРОФ может быть на компе, когда есть конфигурации ПРОФ (ну хоть у меня есть ключ, но базовые версии на нём остаются базовыми). В общем то пока работает (хотя что будет дальше, с развитием платформы ХЗ) — уже проверил, хоть и нет «Расширения» в интерфейсе базовой БП, но через «Все функции» ставится и работает…
1С:Предприятие 8.3 (8.3.7.1845)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.100)
Не работает.
Надо так
(17) 3BEPb777, Круто, а в чём отличие?
(18) НаКлиенте не срабатывает
(19) 3BEPb777, Конечно на сервере, а что, выложено на клиенте? вообще то это предопределённая процедура, на клиенте ПриОткрытии()
(17) 3BEPb777, Вау, и правда, исправил, спасибо!!!!
Спасибо!!! На проф версии , было замечено вообще при снятии этой галки, окно появлялось постоянно. Мои пользователи теперь довольны, как слоны!
(22) ASV085, Пожалуйста! Рад, что пригодилось)))
(22) ASV085, Вообще то для ПРОФ есть более продвинутая штукаhttp://infostart.ru/public/333876/ . Тут не только информация при запуске отключается, но и много чего ещё…
(16) на самом деле есть БАЗОВАЯ платформа.
Мой мир больше не будет прежним. (с)
(25) 3BEPb777, И что это меняет с точки зрения этой публикации?
ЗЫ Базовая платформа…ссылочкой не поделитесь, откуда скачать?
По поводу подключения расширения к базовой версии. Проверял недавно.
На компе установлена 1С Розница базовая. И только она. Активирована лицензия базовой розницы.
В результате при входе в конфигуратор раздела с Расширениями нет в принципе.
При входе в режим предприятия в меню Все функции — Стандартные — Управление расширениями можно добавить расширение, но оно не работает.
Скорее всего с другими базовыми конфигурациями будет то же самое.
Если же на компьютере активирована обычная лицензия от проф версии любой из конфигурации, то расширения начинают работать и на базовых конфигурациях.
(27) duck, А платформа какая?