<?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='\
Славно
Полезная вещица.. +
а для 7-ки случайно нет?
(3) Будет, но позже… 🙂
с запросами не работает
вот универсальный способhttp://blog.1c-ei.ru/2009/05/blog-post.html
(6) и за эту универсальность платить 35 американских?
(7) ну HyperSnap того стоит… как альтернатива можно для всех свою подсветку синтаксиса написать. Возьметесь за 40$? 🙂
(8) Конечно, если тебе надо сразу для всего, тогда возможно…
Мне же просто 1С-подсветка нужна. 35 американских это не стоит, согласись 😉
Да, программа стоящая, спору нет, но я попрежнему снимаю экран принтскрином и далее в Пэйнт.Нэт (
(9) Как вариант, я давно писалhttp://infostart.ru/projects/2419/
Просто 1С-овские проигрывают в скорости раскраски.
(10) Да это ж не частые операции. Несколько секунд можно подождать, не обломаюсь сильно.
Да и твоё творение, оказывается, платным стало…
(11) Где?
(11) Если подождать, то вполне подойдет РаскраскаКода с ИТС.
(12) что «где»? )) где это не частые операции?
(14) Где платные 🙂
(15) Молодец!! Быстро ты!!! ))))
я уж подумал, что меня глюконуло! Ан нет, нас не проведешь:
[quote]Обновления
04.05.2009 Программа
Утилита раскраски текста в стиле 1С © Душелов[/quote]
😉
(16) Я просто забыл залить архив после удаления.
На самом деле разница, которую следовало бы оценивать, заключается собственно в результате:
http://infostart.ru/blogs/939/
1. Можно вставить в статью на infostart.
2. Правильность отображения.
3. Удобство работы (юзабилити).
4. Объем HTML страницы.
5. Глубина вложения тегов.
6. Скорость раскрашивания. А лучше время от начала раскрашивания до вставки в статью. И для сравнения можно еще померять время формировния раскрашенной статьи, по объему сопоставимой с
Ведь данная обработка готовилась специально для infostart’а.
(3) для семерки
(19) Замечательно.
+4 +18 Расчитываю, что результат будет лучше. Иначе нет смысла делать…
(22) «Разукрашка» сделана специально для infostart’а. Я не планирую размещать ее где-либо еще. Я против размещения «Разукрашки» где-либо еще. Т.к. «библиотепа функций» публикуется не только на infostart’е, то я запрещаю ее влючение в библиотеку функций.
(19) Теперь можно раскрашивать тексты для 1С:Предприятия 7.7.
(24) Покупать восьмерку, чтобы покрасить семерочный код?
Мне обработка Рупора Абсурда, больше подходит.
1.3.1.1 — оптимизировал работу с большими объемами данных, исправил неточности разметки.
Аничего, просто и со вкусом. Я тоже ею здесь воспользовался.
Автору плюс.
Добавил возможность включить использование CSS
очень 😉
А под управляемые формы 8.2 варианта обработки не будет?
1.5.1.1 — оптимизировал работу с большими объемами данных. Теперь работает в несколько раз быстрее 1.4.1.5.
10000 строк за 3 секунды…
на 10000 строк работает в 2 раза быстрее
на 60000 строк работает в 8 раз быстрее
хм… это куда же надо разукрасить 60 тыс строк кода, да еще и ВСТАВИТЬ??? 😉
(33) Ну, не знаю. «60 тыс строк кода» — это глобальный модуль из ЗиК 7.7.
Вдруг кому-нибудь нужно поработать с большими строками — можно подглядеть один из вариантов оптимизации… 🙂
(0) Копирование в буфер обмена не работает 🙁
хотел скопировать код в виде HTML, а не получается 🙁
(35) Хм, странно…
Я не нашел способа загонять HTML в буфер обмена. Были примеры только про обычный текст без форматирования. Поэтому сделал через скрипт. В буфер обмена отправляется комбинации клавиш Ctrl+A Ctrl+C. Почему не сработал WScript? Не знаю. Может быть дело в настройках браузера?
(36) Копирование именно HTML-кода в буфер обмена
[code] HTMLДокумент = ЭлементыФормы.ПолеHTMLДокумента.Документ; // твое
// — Артур — 28.01.2010
Если КопироватьВБуферОбмена Тогда
Окно = HTMLДокумент.parentWindow;
Окно.ClipboardData.SetData(«Text», Результат);
КонецЕсли;
// —завершение
HTMLДокумент.body.innerHTML = Результат; // твое
[code]
можно сделать отдельной настройкой, хотя мне нравится именно этот вариант как основной вариант копирования в буфер обмена
(37) Я об этом способе знаю. Копируется в буфер обмена текст, а не HTML документ. Для вставки в Word или в статью на infostart этот способ не подходит. А для сохранения результата вверху есть кнопка «Сохранить». Будет сохранен текст в виде HTML-страницы.
Я находил одну компоненту, которая делает все как нужно, но она платная с регистрацией и все такое…
(38) Для вставки в код публикации на ИС я делаю так:
Редактировать — далее выбираю посмотреть HTML-код публикации — далее выбираю вставку из буфера обмена, а туда занес данные чистого HTML, полученного с помощью (37)
Без (37) ИМХО сложнее — сначала сохранить в файл, потом открыть файл, скопировать его текст и уже потом вставлять.
Возможно, я что-то делаю не так — разукрашкой только начал пользоваться.
Если другого способа нет, то мой удобнее и проще 🙂
(39) Наверное, сделаю 2 варианта: копировать текст и копировать страницу. Вдруг у кого-нибудь тоже не заработает…
(39) Сделал…
(41) Все равно не удается так просто вставить раскрашенный код HTML в статью на ИС 🙁
Делай все-таки 3 вариант — мой 🙂 «Скопировать исходный код HTML текста»
(42) Так он там и есть. Это первый в списке. Влючается как флажек до нажатия кнопки «Раскрасить».
Т.е. предполагается следующий порядок действий:
1. Задаем параметры того что хотим получить в меню Настройка
2. Вставляем текст
3. Нажимаем «Раскрасить»
Потом результат можно сохранить в файл если нужно, но если установлен флажек, то результат уже должен быть в буфере обмена.
(39), (43)
Чисто для размышления.
Пользуюсь обработкой чуть ли не с начала появления её здесь, и никак не могу понять, почему бы автору не добавить дополнительное поле, куда будет помещаться сформированный собственно HTML-код, как это уже давно сделано мною.
На скрине последняя версия с моими доработками.
Поле HTML-код представляет собой простой до безобразия редактор текста. Раскрашенный результат виден сразу же при переходе на соответствующую закладку.
(45) Обновил интерфейс
(0) А можно добавить тєги BB Code?
(47) Можно. А зачем? Результат ведь в браузере не увидеть.
(48) Я как раз для форума и хотел — там же BBCode используются. Вот еще одно поле добавить, в котором BBCode показывать, или опционально html/bbcode.
Хорошая идея? Разница только в тэгах, а структура та же.
(49) Добавилhttp://infostart.ru/public/19856/blog/post/999/
(50)
Автор, добавь наконец в название «раскраска программного кода». А то народ тычется в поиск, и не находит.
(51) Написал в поиске «раскрасить» и нашел сразу. Тем не мение переделал описание. Добавил теги.
(50) Спасибо!
В описании есть опечатка — BBCobe, поправьте, пожалуйста
(5) Работает 🙂
>>> Исключена возможность редактирования списка ключевых слов.
Интересно. А почему? 😮
(55) Для версии 2.1.0.1 всё осталось по прежнему. Списки ключевых слов можно подгружать и изменять.Файлы 2.1.0.1 лежат здесь .
Для версии 3.0.0.1 существующая структура хранения списков ключевых слов уже не подходит, а новую я ещё не придумал. 🙁
Списки ключевых слов пока хранятся в процедуре ПолучитьСтрокуКлючевыхСлов для всех вариантов работы Разукрашки. Т.е. их не нужно дополнительно подключать, они уже внутри. При желании можно поправить.
(55) В версии 2.1.0.1 осталось всё по прежнему. Можно подгружать внешние списки ключевых слов или исправлять существующие.Файлы версии 2.1.0.1 здесь .
Для версии 3.0.0.1 существующая структура хранения списков ключевых слов не подходит, а новую я ещё не придумал. 🙁
Списки колючевых слов для всех режимов работы Разукрашки пока хранятся в функции ПолучитьСтрокуКлючевыхСлов. При желании их можно исправить там.
Во строенном языке «%» не красится красным, а должен.
(58) Исправлено в 3.0.1.3 и в 2.1.0.2
Небольшая ошибочка при раскраске текста запроса, на рисунке обведено красненькими овальчиками 😉
Правильный файл
(61) В приведенном примере не совсем текст запроса, а скорее текст программы. Текст запроса должен быть без кавычек и без разделителей строк. Т.е. так, как в консоли запросов.
(62) т.е. ты хочешь сказать что это не ошибка, а фича такая 😉 ?
(63) Скорее так — не целевое использование.
Хорошо получилось!
(0) Опробовал в боевых условиях — классно.
Только как быть бедным семерочникам, у которых нет на компе 8.1?
Кстати (как и следовало ожидать), без проблем конвертнулась в 8.2
P.S. И почти прилично код Дельфи раскрасило (рис.) 😉
(66) Портировать на 7.7. , вестимо. Плагин к тотал коммандеру для просмотра epf не сегодня утром придуман. Дальше в дело вступают руки и голова.
(67) Надо узнать, есть ли 8.х у Арчибальда? Если нет — буду за бабки ему HTML формировать 😀 😀
Чуток доработал под Дельфи. Английские операторы во многом совпадают, добавил еще некоторые ключевые слова. Ежели что забыл, добавить можно так:
в модуле объекта после строки
ИначеЕсли РежимРаботы = 1 Тогда (номер строки 534)
добавлять по аналогии в строку 535
СписокКлючевыхСлов = «|_getperformancecounter|_idtostr|…………………..
Работать в режиме для 7.7
_________________________
17.08.10 Вот сейчас точно все ключевые от Дельфи в Razukrashka3_1_0_2+.epf
плюс кусок для вставки в KljuchevyeSlova77.xml или (и) в KljuchevyeSlova8.xml — Ключевые слова дельфи XML.txt
(68) У меня даже губозакаточная машинка есть 😉
(69) Добавил раскрашивание кода Delphi, но так как Delphi у меня нет, то в абсолютной правильности раскрашивания кода я не уверен. Нужно проверять
(66) Конвертится обработка под 8.2 замечательно — но только под толстого клиента. alexk-is не планируешь под тонкого клиента сделать?
P.S. Может уже и спрашивали, только станиц обсуждения много…
Работа одобрена группой «Экспертиза публикаций» и получила соответствующий значок
http://infostart.ru/community/groups/148/blog/1159/
(73) Спасибо. Значок прикрутил. 🙂
(74) Значок в 2 раза уменьшал?
(75) Нет. В 2 раза увеличивал. 🙂
(76) Понял 😉 Я-то прям который торчал в анонсе правил, а туда уменьшать пришлось
(69) Теперь любимые цвета стали ещё любимие 🙂
Почему-то при разкраске конструкции : |ИНДЕКСИРОВАТЬ ПО НомерСтроки»; исчезает НомерСтроки. И зачем вот это: ПодключитьОбработчикОжидания(«ПроверитьНовуюВерсию», 100, Истина); — У меня пишет «Подключение…» и зависает 1С 🙁
(79)
Ну, это чтобы проверить наличие новой версии обработки 🙂
Чтобы не проверялось наличие новой версии в меню есть соответствующая галочка и 100 секунд, чтобы её нажать 🙂
Буду проверять
Сходу замечено: в Дельфи не красит оператор IF (рис.)
В общем, тут в файле добавлено несколько ключевых слов к Дельфи, и значения цветов по умолчанию как я, любимый, привык 😉
Алекс, я что-то просохатил или его там нема?
Хотелось бы ключевые слова жирным.
(79) Добавил обработку начала строки с символа «|»
(81) Добавил IF в список ключевых слов
(82) Добавил выделение ключевых слов Delphi жирным шрифтом
(83) 1. Исправил обработку точек в текстах запросах
2. Оптимизировал результат при возможной смене цвета в раскрашиваемом тексте — формируется меньше тегов. Актуально для Delphi и текстов запросов
А можно ли перевести данный парсер на php, я бы тогда вставил бы в обработку показа сообщений из форума?
(86) Конечно можно. Код открыт. Осталось только найти человека, который пишет на php и понимает 1С. 🙂
Алекс, вынужден тебя похвалить еще раз 😉
Сервис-М
Без всяких дополнительных танцев с бубном «Разукрашка» распрекрасно отработала на нашем сайте
(88) Это ты ещё не видел новую версиюуниверсального журнала документов . Вот там чудеса так чудеса.
(89) Вот и бегом по ссылке, регься и публикуй!
(90) Сервис-М — Это что ?
Зашел чего-то … всё пусто . Потыкался , потыкался и вернулся .
Какая сверхидея создания нового сайта ? и чья ?
Чем удивлять собираетесь ?
(91)А чем он должен быть заполнен в первый день?
Даже и не день 😉 А первый час практически
(92) Понял. Удивлять нечем.
Всё как обычно ?
Фриланс, статьи, вакансии ?
Ты бы хоть что-нибудь о сайте и его задачах написал.
Обнаружил досадную ошибку (недоработку) и в версии 2, и в версии 5: если ни до, ни после знака «=» нет пробелов, то следующее слово не воспринимается как ключевое.
Например:
СтандартнаяОбработка=Ложь;
(94) А не фиг так код писать. Положено разделять пробелами.
(94) Исправлено в 5.1.3.2
Обнаружил ещё одну небольшую ошибку и в версии 2, и в версии 5: если после слова стоит точка, то оно не воспринимается как ключевое. А это актуально для 1С 7.7, например:
Док.ПризнакНакладной = Перечисление.ПризнПрихНакл.ВозвратОтПокупателя;
Слово «Перечисление» должно выделяться красным цветом.
(98) (99) Исправлено в 5.2.0.1
Во всех режимах изменен разбор строк, в т.ч. содержащих некоторые синтаксические ошибки.
Есть пример? Например, как (66) (68) (81)
(86) Может это поможет?http://infostart.ru/public/84126/