<?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='\
Законченности и оптимальности решений в обработке можно только завидовать)))
А в тз Вы каким способом читаете?
Для «полного счастья» неплохо бы добавить возможность сохранения настроек для разных видов документов.
К примеру запомнить шаблоны импорта счетов от разных поставщиков.
Баян лютый, но публикация оформлена хорошо.
(3) Yashazz, баян в чем и тем более лютый — судить за глаза просто, объяснить трудно
(1) это скорее всего и фишка данной обработки — она самостоятельно на 98% правильно умеет определять из любого файла — то , что нужно для загрузки в документ
Тоже понравилась, очень крутая обработина, и описано нормально!
Под УФ пойдёт или только обычные формы?
(6) Glebis, это для обычных форм (не УФ)
здравствуйте!
есть вопрос: почему в заголовке написано «бесплатно», а на скачивание требуется 3sm ?
здравствуйте!
есть вопрос: планируется ли версия под Управляемые Формы ?
Не запускал, но видно, что прикольненько сделано ))
(11) По ссылке увидел очепятку 😉
«из EXCEL илп ПРЫГ-СКОК 82»
(12) dj_serega, Спасибо. исправил
(11) Ну, как бы слово «бесплатно» подразумевает получение чего-то за «ничего», а так, это получается обман и надувательство 🙁 Всегда напрягали рекламы которые везде кричат «БЕСПЛАТНО!!!» и тут же звездочка, и мелкий текст под ней…
Прикольненько!!! Думаю скачивать или нет, у меня осталось только одна конфа (из 7) на обычных формах и скорее там не пригодится.Но+
(14) Alex Star, +1
Уберите «бесплатно» из заголовка.
Действительно совершенно некорректно слово используется.
3SM это сейчас около 50руб. Мелочь, но все равно не бесплатно.
p.s. Верю, что обработка хорошая. И сама публикация отлично оформлена. Приятно смотреть.
(8)(14)»Что-то за ничего» бывает только в вымышленном мире халявы. В реальной жизни же нет ничего абсолютно бесплатного. Вы платите за электричество, интернет, тратите свои силы, время и т.д. Поэтому в реальной жизни «бесплатно» означает «без дополнительной оплаты».
Автор не берет денег за свою обработку, он лишь берет условные очки для возможности скачивания других бесплатных обработок с этого сайта.
Никто вам не запрещает сделать так же, наоборот, это только приветствуется.
(17) ekaruk, Любой каприз — заголовок исправил , цену скачки снизил с 3 до 1 Sm
(хотел сделать бесплатно, но уже не дает)
По описанию очень бодрая обработина, если понадобится в работе возьму на вооружение!
(18) Минимум — 3sm, А лучше 5-8 sm. Потому что большой труд вложен и в обработку и в описание.
(18) Бесплатно только для статей можно сделать скачиваемый файл, как я понимаю.
При этом : бесплатное не ценится.. И не используется.
Бесплатное раздувает гордыню одариваемого. С последствиями дарителю.
На мой взгляд, 3sm — это минимум для такой разработки. Я бы и 5sm сделал.
Только время на публикацию заняло часов 8, наверное ?
И публикация очень хороша ! По полочкам все разложено. Сколько времени экономится для разработчиков !
Благодарю !
(21) Designer1C, Спасибо большое очень приятна оценка собственного труда.
Sm мне не нужны априори(их около 2500 на личном счету) без них раньше было намного продуктивнее для пользователей
Была бы возможность выложил бы для бесплатного скачивания.
Тут три месяца была опубликована моя собственная конфигурация для розничного магазина
Программа платная ! но для пользователей ИС она шла с бесплатной лицензией
(т.е. скачал и пользуйся на законных основаниях)
я хотел , взамен диалога — протестировать в рабочем режиме.
публикация начала приобретать успех… слишком много комментариев и звезд (релиз обновляется по 2-3 раза в неделю)
и вдруг появился ОН… сказал что нужно обязательно сделать публикацию платной !
сделал и платную версию и бесплатную
в ответ прилетело , что я на основании правил должен удалить все упоминания обо мне
из программы…
а по теме , было 3 sm — смотри сколько желчи и злости вылезло )))), сделаю 8 никто и качать не будет, а звёздочку поставить
так это вообще запредельное мечтание.
Удачи во всех начинаниях.
(22) Не принимайте близко к сердцу придирки насчет платно/бесплатно, просто напишите что обработка открытая и за SM, думаю вопросов ни у кого не будет и все поймут о чем речь. А вообще видно что проделана огромная работа по улучшению юзабилити данной обработки и программы такого уровня обычно продают за рубли на Инфостарте, это к я к тому что вам большой плюс за хорошую публикацию 🙂
(23) Synoecium, Спасибо за слова поддержки
(тот кто у тебя на аватарке у меня две таких в банке уже второй год живут)
(22)
как это знакомо)))))
Отличная обработка, надо будет изучать. Мне кстати очень пригодилась Ваша обработка «счеты» со звуком. На складе пикать когда надо 😉
А то что некоторые выступают что мол это не бесплатно — прям даже обидно! Честное слово, это как-то прям за гранью добра и зла!
А Оформление — это просто шедевр! так всё расписано!
Только время на публикацию заняло часов 8, наверное ?
Часов 8… ну не знаю, у меня бы часов 80 заняло, мелочи все эти вылизывать — это только кажется что раз плюнуть.
(14) Alex Star, та вы, сударь, зажрались!
Какими же все-таки бывают люди жадными и вредными.
Ну вот, чуток остался до 100
Полноценную версию можно протестировать в конфигурации
MAGAZKA & MAGAZKA (NS) — программа для розничного магазина
На Главном окне — Обработки- Прыг-СКОК
Я тут как всегда к шапочному разбору явилась, но автору огромное спасибо за ту магазьку, которая в семерку документы загружала.
Лопает все, даже не пришлось к конфе приспосабливать.
Эту скачать потестить не могу — потому как девушка бедная.
А зачем стока букаф в описании и столько наворотов? Есть прекрасная обработка «Загрузка данных из табличного документа» стандартная что под управляемое приложение, что под обычное. Прекрасно ею пользоваться, если умеючи. Зачем еще изобретать велосипед?
(32) Выбор должен быть всегда!
Не попробуешь не узнаешь.
Просто.удрбно.надежно !
(9)
Извините, что прерываю вашу высокоинтеллектуальную беседу — повторю свой вопрос про УФ
(43)Когда появится спрос на MAGAZKA на управляемых формах тогда и ПРЫГ-СКОК переведу.
Спрос рождает предложение.
(32) просто есть деревянный велосипед придуманный в 200 лет назад (Загрузка данных из табличного документа), а есть прыг-скок — современный нормальный велосипед.
посмотрю
Прекрасно! БЕСПЛАТНАЯ ОБРАБОТКА!!!! ОТКРЫТЫЙ КОД! Но чтобы скачать — заплати 1500р., потому что она бесплатная!!!
(47) Она раньше было размещена бесплатно
— обработка бесплатная (ресурс добавил зачем то маню — я убрать не могу (((
Пришли почту вышлю
(0)»3 ЭТАП : Загрузка данных в базу
Вот на этом этапе нужно будет «допилить» загрузку под свою конфигурацию»
Нет, не работает уже на «По кнопке «Настройка обработки» попадает в параметры настройки (в зависимости от конфигурации данные могут отличаться)».
Слева — пустое поле.
Как для УПП, так и для конфигурации MAGAZKA с сайта.
(50)
Слева — пустое поле.
Как для УПП,
Ирина — здесь выложена «РЫБА — ШАБЛОН» — чтобы работало как нужно — допишите под себя
так и для конфигурации MAGAZKA с сайта.
ПОЛНОСТЬЮ РАБОЧАЯ ВЕРСИЯ есть в составе конфигурации MAGAZKA ver. 1.0.027
(не нужно там, эту подгружать и запускать)
— Главное окно — Обработки — ПРЫГ-СКОК
запустите и проверьте -все работает ! И сразу поймете к чему нужно стремиться.
Показать
(51) В описании обработки сказано:
«3 ЭТАП : Загрузка данных в базу
Вот на этом этапе нужно будет «допилить» загрузку под свою конфигурацию»
А это не соответствует действительности!
Не работает не на этом этапе, а уже намного раньше.
Здравствуйте, для розницы подходит 2.2.7.29?
(54) «Хорошая новость — данная обработка БЕСПЛАТНАЯ и с ОТКРЫТЫМ КОДОМ
Плохая в том, что это незаконченное универсальное решение (под свою конфигурацию нужно немного поправить код).
Так что это скорее всего для программистов шаблон/рыба/заготовка.»
Отличный обработчик, до этого пользовался для версии 7.7
Обработка востребована для УТ11 (УФ).
Планируется ли новая обработка?
(57) «Хорошая новость — данная обработка БЕСПЛАТНАЯ и с ОТКРЫТЫМ КОДОМ
Плохая в том, что это незаконченное универсальное решение (под свою конфигурацию нужно немного поправить код).
Так что это скорее всего для программистов шаблон/рыба/заготовка.»
готовый полностью вариант был создан и успешно работает вконфигурации для розничного магазина : MAGAZKA
а так все в ваших руках.
(58)
Будьте добры, если данная обработка действительно бесплатна, не могли бы Вы ей поделиться?
taul@mail.ru
Моя благодарность!
Добрый день
Права на ошибку нет, накопила 1$M под загрузку данных из УПД в УТ 10.3.49.1 (обычные формы). Случайно нашла описание вашей обработки. Мега-круто! Как думаете, в моей конфигурации она запустится? Допилить под себя я смогу 🙂
(18)любой труд должен оплачиваться хоть как-то. Пускай даже и маленькими бонусами