<?php // Полная загрузка сервисных книжек, создан 2025-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='\
Прикольно. Но не для 8.2. Для 8.2 надо по-другому писать.
чего-то вторые часы не работают есть тока круг
Маладца!
(2) У тебя ИЕ глючит. Всё работает.
Супер! Ну это однозначно — плюс!
Ну теперь понесется душа в рай 😀 Новых панелей на ИС появится бесчисленное количество 🙂
и игрушек типа арканоид )
Афигеть
Блин, а фотошоп в 1с можно засунуть? 🙂
Браво!
+ Области применения… 💡
(1) Попробовал всё то-же самое сделать в 8.2 на тонком клиенте. В принципе, работает аналогично как и в 8.1. Только присвоение текстового значения полю НТМЛ делается не командой «УстановитьТекст», а просто «=». Сами скрипты JS работают в 8.2 и в 8.1 одинаково.
(12) прикольно. Жаль что эта красотища жёстко привязано к ИЕ.
Интересная вещь. +1
(13) думаешь если снести IE (со своим компом не хочу эксперементировать), то работать не будет? Не уверен. Но и на такой случай есть ещё SVG (вместо VML) — то же с помощью текстовых скриптов (текстовые чем хороши — их на «лету» можно генерировать или редактировать как хочешь) рисует графику и работает в FireFox.
(15) >> думаешь если снести IE …, то работать не будет?
Не думаю. Знаю. Поле ХТМЛ документа это и есть ИЕ.
в web клиенте точно работать не будет. Ни в ИЕ ни в Фирефоксе. Там нет такого элемента управления.
(16) почему нет такого элемента управления? Обычная неограниченная строка на форме может быть представлена в 8.2 как ПолеHTML (есть в свойствах спец. выпадающий список)
(17) Если ошибаюсь, то буду очень рад. Пока проверить не могу.
Однозначно плюс
Молодец!
Классно, уверенный Плюс!
Прикольно. Еще бы пример с обратной связью посмотреть 🙂
а что это за объект такой часы, это нарисовано или готовый?
(23) векторная графика в ПолеHTML
Отлично, ПЛЮС! Эта обработка даже сподвигла меня на изучение JavaScript. На основе ее я себе сделал «До конца рабочего дня:» по мотивам аналогичной обработки на ВК. 🙂
18+ Я таки ошибаюсь! 😀
События поля HTML-документа будут отработаны и в тонком и веб-клиенте, если в поле помещен HTML-текст или ссылка, указывающая на тот же домен, что и домен приложения.
События поля HTML-документа будут отработаны только в тонком клиенте, если в поле помещен HTML-текст или ссылка, указывающая на чужой (по отношению к домену приложения) домен. Это поведение связано с политикой безопасности браузеров.
(22) У меня есть пример только в составе конфигурации (а она очень большая), если будет не лень — попытаюсь вырезать оттуда. Хотя наверное проще что-либо простенькое набросать.
(25) Вот! Вчера поместил обработку и человеку хватило одного дня чтобы изучить (пусть не в деталях) JS. Я же говорил — простой язык 🙂
(26) Ну вот видишь — скрипты спокойно отработают хоть в толстом клиенте, хоть в тонком, хоть веб. Да и странно было бы чтобы скрипты на JS (заточенные для интернета) не работали бы на Веб-клиенте, который и сам то из них в основном состоит.
(27) ну вот например тут есть календарь:
http://scripts.protoplex.ru/scripts_show/2217.html
пользователь выбирает дату. Можно сделать пример — сообщить дату, которую он выбрал. 🙂
(28) Ну это очень просто: в модуле формы 1С создаёшь процедуру соотв. событию onclick ПоляHTML. Второй параметр который передаётся в эту процедуру (pEvtObj) и есть тот объект (рисунок, элемент, таблица, ячейка и т.п.) на который ты нажал. Отладчиком смотришь какие свойства присутствуют у объекта (я, например, просто смотрел Id, который в JS скрипте присваивал всем элементам, но можно что-либо другое анализировать) и в зависимости от значений этих свойств делал то или иное действие.
Эх…. Хорошо было бы для 7.7…..
(30) Да вобщем на два пальца.
http://infostart.ru/public/57767/ и туда вставляй код, да и любуйся 🙂
возьми
Прикольно, но кажется, что нишу разработчиков ВК в 7.7 в восьмерке сменят те, кто владеет web-технологиями. Потому, как думается мне, что ВК в 8 менее актуально, чем web.
… только VML — это же типа плагин. Он разве не ставится дополнительно?
(33) да нет — не плагин. VML поддерживается IE начиная с 5-ой версии (т.е уже 11 лет). Отдельно устанавливать не надо. Каким образом это работает в 1С — я не разбирался. То ли используются стандартные библиотеки от микрософт, то ли 1С свои поставляет — по мне не так важно.
В принципе я когда разрабатывал приложение где использовал эту технологию, столкнулся только с одной существенной проблемой — не смог стандартными средствами (без ВК) сохранить полученный векторный рисунок (а ведь по сути это набор команд) в растровом формате (типа bmp, jpeg и т.п.). А это было необходимо для определенных функций в программе. Но потом сменил работу и проблемы не стало 🙂
(34) А что там не понимать? Просто 1С строит свой хтмлдокумент на основе com технологий. Т.е., какой на компе IE, такой и хтмлдокумент.
Мммм… А есть краткое (и не очень) описание функционала VML?
По поводу сохранения… Можно было бы, наверное, что-то придумать. Вплоть до скрина области экрана средствами IE.
(35)http://wdh.suncloud.ru/vml01.htm
блин тока писать умею а читать нет,ниче нимогу сказать
Красиво 😉
Даешь еще примеры в обработку
А пример с обратной связью..
А книжку можешь подсказать по JS, чтобы разобратся в коде
(41) можноhttp://www.w3schools.com . Правда, все английском, но примеров туча.
а на русском что-нибудь есть? 😀
(43) я уже приводил ссылку на пред. странице. Перейди там в оглавление.
(43)http://www.spravkaweb.ru
Ндя… только вот для увеличения юзабельности в типовых конфах давным-давно яваскрипт используется (зачастую исключительно для красивости, но все же))))
Спасибо. Какая перелесть.
Спасибо автор, за пинок в нужном направлении 😉
Я теперь знаю как всадить часики прям на окно MDI (тёмно-серое в 1С).
А хоть бы и ИС туда при старте 1С 😀
Вот, например, привет прям из 1С без всяких внешних форм 😉
О, блин, 1С-кое Поле HTML Документа не поддерживает, оказывается, всех свойств HTML -кода 😥
Нет ни контекстного меню по правой кнопке, ни других свойств актив-икса.
Я у себя порадовался, что у часиков из макета 2 можно открыть/закрыть крышку, решил проверить на на разработке автора — ни фига 🙁
Че-то не долелали они…
(9)>Блин, а фотошоп в 1с можно засунуть?
Я уже попросил Билла, они готовят к выпуску релиз Windows1C, там внутри всё будет 😀
Это мегакруто!
А как что-то похожее написать с ноля?
Ну как минимум — ОТЛИЧНО!!! Немного модификации и работает плеер (не актив Х). Если автору будет в охотку, может заменить на «прикрепленную» 🙂
(54) прикрепленный файлик у меня не скачивается почему-то. Лучше сам сделай обработку и выложи отдельно.
Попробовал смоделировать в 7.7
http://infostart.ru/public/60137/
Тексты HTML те же.
Просто. Великолепно.
Просто великолепно 💡
Отличная вещь
очень нужная вещь
Идея реализации понравилась. Скачал работает. Переделал под собственные нужды
Спасибо, пригодилось. Немного переделала под себя. красота!
Очень интересно. А получится ли сделать показ изображений из внешних файлов через JS на 1с?
Это VML от Microsoft (schemas-microsoft-com:vml). Но развитие не последовало. Работает в IE7,8 и 1С
http://infostart.ru/public/174856
А с html5 в 1c пока все грусно
Очень интересное решение. Давно искал способ использование графики для 1с
(64) t955938, Ну тогда впередhttp://infostart.ru/public/191248
(63) sikuda, а причем тут 1С и HTML5? 1С работает с движком ИЕ, так что все зависит от того, какая версия ИЕ установлена на машине, где все это запускается..
(66) NewLifeMan, Да но работает ie в 1С в режиме совместимости. И в этом универсальность для 1С и сложность применения для интернет технологий.
а есть толковая статья о работе с Полеhtml и js в 1с?подскажите пожалуйста
(68) марксист, а что именно интересует? Скажите, напишу вам статью.
(69) TitanLuchs, меня интересует практически все,от вывода ссылок на элементы,до обработки событий мыши.потому что в веб технологиях я не очень,а какой то структурированный материал для начала понимания очень тяжело найти(буду очень благодарен за статью)
Как вариант можно использовать processinghttps://p5js.org/examples/