<?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) Спасибо.
(2) Это не дизайн это стиль 😉 а вот дизайнера к сожалению нету 🙁
(3) Програмно подключенные привязки в связке со сверткой панелей дают довольно странный эффект (логику работы 1С при этом так и не могу понять), поэтому проблемы с отображением возможны при изменении размера окна обработки, опишите проблему (можно в аську) постараюсь решить.
(4) а где можно взять вашу аську?)
(5) в профайле все есть (1.6.5.7.6.8.9.3.8)
Для 8.2 , я так понимаю, предложенная обработка не нужна ?
Красавчики! Сбылась мечта идиота! )))
Прикольно. +
(7) Если 8.2 используется исключительно как «толстый клиент» то думаю обработка не помешает.
(8) 😉
(9) Получил первое сообщение (на почту), хоть сам и не люблю рекламу, но без нее никуда да и закоментарить ее всегда можно.
альтернативная разработка:http://infostart.ru/public/21387/
Пожелание.
При выборе объекта (Справочник, документ) можно автоматически заполнять «представление» автоматически из Синонима объекта.
Думаю если эт оОбработка или отчет то тоже возможно
(12) Доработал автоматическое заполнение представления по метаданным.
Обновил разработку.
А вот еще пожелания:
1. в дополнение к (12), что если и в иконку будет добавляться типовая картинка документа, отчета или обработки в соответствии с метаданными.
2. но гораздо важнее подцепить сюда еще и возможность подключения внешних отчетов и обработок. вот это было бы просто экстаз! ))
(14) Реализовал пожелания. Обновил разработку.
P.S. Скриншоты поменяю позднее (в «Общей настройке» добавился каталог файлов, по аналогии с каталогом картинок)
Ещё пожелания:
Реализовать возможность пользователю самому настраивать меню.
Список доступных метаданных в этом случае фильтаровать по праву доступности
картинки не видны:(
(17) Проблема была в нашем местном провайдере, который предоставляет услуги хостинга (картинки грузятся по ссылке с нашего сайта)
(16) Добавил функцию «ЕстьПравоДоступа», можете корректировать ее по своему усмотрению (по умолчанию проверяется право доступа на просмотр). Обновил разработку.
да, это не для пользователей
скачала, вертикальное меню не получилось, зато теперь радостно появилась вертикальная реклама 33lab.ru, которую убрать не удается
(20) Это рекламный вирус 🙂
Ну а если серьезно, закрыть рекламу можно просто нажав на крестик (в правом вернем углу формы). Для настройки меню необходимо нажать на форме правой кнопкой мышки, появится меню выбора из 2 пунктов (настройка и закрыть), нажимаем «настройка» и далее по интуиции.
(21) закрыла программу, снова открыла уже не было боковой панельки 😀
ВОПРОС
1. выбранные в избранное строки аатоматически выстраиываются по алфавиту (кроме документов) и их нельзя менять местами?
например , я перенесла в извбранное и строки выстроились так:
Авансовые отчты
акт сверки
возврат товаров от покупателя
корректировка долга
поступление товаров и услуг
внешние обработки
вычеты по НДФЛ
доходы буд периодов
но!!!
я на лист бумаги специально выписала, что я еще переносила только что в избранное:
расчеты по страховым взносам
кассовые документы
складские документы
документы учета кадров
они были в «избранном» считанные минуты и исчезли
как нужно закреплять в «избранном» выбранные строки?
и как удалить из избранного , что решила удалить?
и как поменять их местами?
пока что не нашла ответов на вопросы, экспериментирую
2. можно сделать две, три, четыре папки ИЗБРАННОЕ?
3. стала «набирать» в папку «избранное» и увидела, что строки , которые я переношу в папку избранное странным образом исчезают.
я смотрю, что ваши скриншоты совсем не такие, как тот вид , что у меня в 1С
у меня итнтерфейсная панель,
это, видать, не ваша обработка, сорри
(22) Подобные вопросы лучше писать в аську иначе комментарий получается уж слишком большой.
Ответы:
1.Менять местами можно все что угодно, смотрим на рисунок «Настройка», удаление,добавление,редактирование — смотрим все тот же рисунок .
2.Можно
3.Само собой ничего исчезнуть не может
P.S. Обработка достаточно подробна описана, как можно в ней не разобраться даже не представляю.
Адназначна +!
Реализовал то, о чем я мечтал и помаленьку воплощал в действительность. Но по сравнению с этой обработкой — я просто неуч =)
Косяк: при редактировании пункта мею, в представлении всегда выставляется первое из метаданных.
Показать
(26) Спасибо за выявленную ошибку. Лучше исправить ее следующим кодом:
В вашем примере при смене «ТипаОбъекта» — «ВидОбъекта» меняться не будет (если представление было заполнено).
Обработку обновил.
Спасибо! Очень пригодилось!