<?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!
Ща попробую и как внешнее приложение.
Круто!
Юзаю в 1С для юзеров с админовскими правами…
присоединяюсь, +1
Круто! В особенности «..возможность закрыть доступ ко всем диалогам открытиясохранения файла для режима «предприятие 7.7».
Спасибо!
всем спасибо,
>Che: а остальных чтоже обделил…
>mdzen: навеяло очередной дискуссией этого дела на Т1С
а с серверным вариантом 8 получится?
(IronDemon): если ты имееш ввиду чтобы работала кнопка Каталог ИБ, то нет, 8-ку я смотрел только на локальном компьютере, и как работают другие варианты незнаю
На локальном компе, для БД в файловом варианте КаталогБД работает на ура, как и в 7.7, а для БД в серверном (база на этой машине) КаталогБД открывает Windows
(IronDemon): всё верно, каталог Windows открывается, если по какой-либо причине «ненашёлся» каталог бд. Как работает «Сервер 1С:Предприятия» пока незнаю…
В 1с-ской обработке при выборе не существующего файла, если использовать стандартный диалог, то файл выбирается, при использовании FDSubst1C -ругается, нет такого файла. А если мне нужно создать новый файл, т.е. не существующий?
(wolfsoft): исправлено
+1 респект, руки дойдут вживлю к себе в конфу
2 (metaeditor)
Я наверное не корректно объяснил, сумбурно. Попробую уточнить.
В 1с-ской обработке при выборе не существующего файла, если использовать стандартный диалог открытия (не сохранения), то файл выбирается все равно, при использовании FDSubst1C -ругается, нет такого файла. Только что скачал, проверил, все по прежнему.
Например,
Перем ИмяФ, ПутьФ;
ИмяФ = Пар;
Если ФС.ВыбратьФайл(0, ИмяФ, ПутьФ, , «Файлы txt (*.txt) |*.txt», «txt») = 1 Тогда
Пар = ПутьФ + ИмяФ;
КонецЕсли;
Можно, конечно, поменять первый параметр ФС.ВыбратьФайл() с 0 на 1, но тогда кнопка в диалоге будет «Сохранить» вместо «Открыть». Есть возможность, чтобы именно в диалоге открытия файла можно было выбирать не существующий файл?
А в принципе, фигня все это.
(wolfsoft): такбы сразу и сказал 🙂 можно конечно. просто я убрал этот баг для диалогов созранения а для открытия неубрал… завтра доделаю…
можно забирать
2 (metaeditor) Уже лучше 🙂 но все равно глюк. Открываю диалог, ввожу имя файла меньше 4 символов без расширения (например, «111»), жму «открыть», возвращается имя файла, в котором после точки вместо расширения «по умолчанию» (вместо «111.txt») стоит непечатный символ (выглядит примерно так «111.|»). Если имя файла больше 4 симоволов, то вроде все нормально.
проверь сейчас
Все работает 🙂
После Конфигуратор + OpenConf как не хватало этой «вкусности»
в 1С:Предприятие. Спасибо автору!
Подключил к ОпенКонфу, обновил старый вариант в базе для юзеров. Радует что автор пошел навстречу пожеланиям и прикрутил кнопочку «Избранного», а то в реестр лазить лениво было… вот
+1
проблема:
1. в конфигураторе открываю файл:
C:Documents and SettingsXРабочий столНовая папкаExtForms!!.ert
2. в заголовке окна — полноценный путь
3. нажимаю открыть в отладчике — открывается — ставлю брык — тишина…
мнение:
отладчик не понимает полноценных путей
проверка:
1. делаю явную ошибку: 1/0
2. запускаю — получаю ошибка в:
C:DOCUME~1XРАБОЧИ~1НОВАЯП~1EXTFORMSШАХМАТКИ.ERT
3. тыкаю в err — в конфигураторе открывается ещё 1-но окно — т.е. это для него разное
4. нажимаю из вновь открытого — открыть в отладчике — открывается так же 2-ое окно — ставлю брык — заработала…
вопрос:
можно такое вылечить?
(SerGeBOZz):
делаю всё точно также, создаю C:Documents and SettingsXРабочий столНовая папкаExtForms
открываю !!.ert, запускаю предприятие, открываю обработку, открываю в отладчике, бряк работает и ошибка выглядит как
Сообщить(«хелло» + 1/0);
{C:DOCUMENTS AND SETTINGSXРАБОЧИЙ СТОЛНОВАЯ ПАПКАEXTFORMS!!.ERT(4)}: Деление на 0
и открывыется вотладчике по клику на ошибке
интересно, почему у тебя в первом случае название обработки «!!.ert» а ошибка в «ШАХМАТКИ.ERT»
может в этом дело?
и ещё непонял, это происходит из-за моей программы или вообще?
если да, то как запускается (программа/плагин)?
v3.0.1.1
исправлен баг, из-за которого в определённых ситуациях вылетал конфигуратор
с установленным плагином oc2vba63.dll
вот тут кстати статья ещё есть с описанием
http://www.script-coding.info/FdSubst.html
не получается выделением открыть несколько файлов…
(SerGeBOZz): множественное выделение я не менял, в некоторых случаях оно и не разрешено например в том-же ФС.ВыбратьФайл() можно выбрать только один файл а если через
Файл->Открыть то там можно выбрать несколько файлов…
выловил кстати толькочто ещё один баг при открытии несколько файлов… исправил, в понедельник положу. Этот и предыдущие глюки были из-за исправления обрезки имени файла до 63 символов блин. одно исправил, другое добавил)
ктото молча добавил +2 в рейтинг, скажите хотьчтонибудь )
Что значит в настройках
флажок Увеличивать диалоги?
версия 3.0.1.2
исправлен баг, при открытии группы файлов в «предприятии», приложение в некоторых случаях закрывалось с ошибкой
(Che) : это значит что диалог немного увеличивается в размерах (программу надо перезапустить после установки этой галки), мне например так удобней искать файлы
Ашипка!
Например, нахожусь в папке
h:\_каталогразработок.direst
кликаю в звездочку «добавить в список» — в список избранного добавляется папка
h:\_каталогразработок.dir
..
с какого…?
Глюк номуер 2.
http://slil.ru/23090229
Если растянуть диалог за правый нижний угол на большой размер и расположить по центру экрана — все ок. закрываем диалог. Отекрываем диалог — открывается по центу ИСХОДЯ ИЗ СТАНДАРТНОГО МИНИМАЛЬНОГО РАЗДЕЛА, в результате получается плохо…
иллюстрацию смотри здесь:
(Che):
>Ашипка!
захожу в h:\_каталогразработок.direst
кликаю в «добавить в список» — в список добавляется папка
h:\_каталогразработок.direst — ашипки нет
а вот если ты в «h:\_каталогразработок.dir» нажмеш на «добавить в список» то тут я согласен, добавится «h:» потомучто нефик называть папки как файлы 🙂
>Глюк номуер 2.
опятьже повторить неудалось.
Открыл, растянул, закрыл, открыл, диалог на томже месте и стеми же размерами, такой же растянутый что и был в прошлыйраз…
зы, похоже на то что у тебя гдето работает старая длл, ещё та которую я попочте присылал… или может параллельно ВК и программа…
Так.. про «ашипку» я проверю…
А какой запрет есть на именование папок с расширениями? никакого… различать папка или файл по расширению — вы падаете в мои глазах…
запрета естественно никакого нет…
папки с файлами различаю не я а стандартная функция ExtractFilePath()
которую можно, впринципе, специально для Вас переделать )
Или я тупой или что… ЭкстрактФайлПас — это одно… должно быть что-то типа isFolder() или атрибуты файлового объекта где для каталога выставлен соотв.флаг…?
А если поставить в атостарт FDsubst1C.exe — то при старте 1С надо подгружать аналогичную фиговину dll…?
(Che):
ладно, в подробности вдаватся небуду, как там это работает…
сделаю я эти папки…
но не сейчас, подожду, может ещё каких глюков найдётся, заодно и это исправлю…
>А если поставить в атостарт FDsubst1C.exe — то при старте 1С надо подгружать аналогичную >фиговину dll…?
нет, программа+длл у ей в каталоге самодостаточны, никаких больше действий по загрузке в предприятие с пом-ю ВК ил в конфигуратор ненадо…
ВК, это просто как альтернативный способ использования, например для конфы в терминале
Клёвая фича!
Автору респект!!!
Еще раз. Юзаю 3012
Если растянуть диалог за правый нижний угол на большой размер и расположить по центру экрана — все ок. закрываем диалог (или открываем файл). Отекрываем диалог — открывается по центу ИСХОДЯ ИЗ СТАНДАРТНОГО МИНИМАЛЬНОГО РАЗДЕЛА, в результате получается плохо… Приходится перетягивать диалог на центр.
Где что кому мешает/почему не работает… Как отловить? Причем это у меня дома.
В офисе вроде все ок.
???
продолжаю таки предполагать что утебя гдето старая версия именно ДЛЛ…
потомучто, подтверждаю, так раньше и было… других предположений уменя нету.
+
это во всех программах так или только в одинэсе?
В Ворде например — обычный диалог открытия файла, немодифицированный..
??
а проверить надо версию именно fdsubst.dll ?
да, оба файла, и эхэ и длл должны быть 3012…
меняются только «стандартные» диалоги, а в вордеекселеитд там вообще свои собственные…
Сейчас проверю…
Не, везде последняя версия.
В опенконфе тоже показывает последнюю.
Ситуация — по-прежнему — давлю в конфигураторе открыть — дальше сабж…
ок, начнём выяснять…
сначала с плагина…
убедись что
(1) FDSubst1C.exe НЕзапущена
(2)в <1C>BINConfig лежит последняя длл
запусти конфигуратор, открой диалог, растяни на весь экран, закрой, открой опять…
если он опять откроется «по центу исходя из стандартного минимального раздела»
то я сдаюсь…
Ага! Проблема локализована!!!
Траблы наблюдаются под W2K, под XP — нормально!
Ройте землю, товаришч МетаЭдитор!!!!
😉
будем рыть… хорошо 2к на виртуальной машине есть…
угум… хотелось бы…
я чего тупил долго — в офисе и дома почти везде в2000, а в офисе на рабочем ноуте хрюня оемная оьлегченная от красот и приведенная к классическому стилю в2000
Молча давлю +1.
Оставляю у себя самую первую длл, выложенную здесь, ибо нет у нее глюков ;о)
(корум): а вотэтовы зря… всё глюки которые тут внизу описаны как раз и было в той самой 3.0.1.0
зы, за +1 спасибо 🙂
так.. уже двое суток прошло, а версии под Ц2Л так и нет… долго еще мучаться? 😉
(сквозь сон), а? что? да, да… уже иду… (засыпает)
(Maniac) да, попробую сделать без регистрации в реестре…
http://openconf.1cpp.ru/vk/vkloader/index.html
кстати vkloader.dll сам не регистрируется в реестре и позволяет загружать другие компоненты таким же образом
версия 3.0.1.3
-исправлено, в Win 2000 не запоминалось предыдущее положение диалога
— добавлено пару фич:
(1) ключ в реестре BlockAllDialogs = «1» блокирует вообще
все диалоги в системе (можно использовать для настройки безопасности в терминале, например)
в этом случае надо запускать уже програму, например, в стартовом скрипте
Set Shell = CreateObject(«WScript.Shell»)
Shell.RegWrite «HKEY_CURRENT_USERSoftware1C1Cv77.7OpenConfPluginsFDsubstOptionsModifyAllDialogs», «1»
Shell.RegWrite «HKEY_CURRENT_USERSoftware1C1Cv77.7OpenConfPluginsFDsubstOptionsBlockAllDialogs», «1»
Set Proc = Shell.Exec(«FDSubst1C.exe»)
Shell.Run «<1C>», 1, true
Proc.Terminate
‘или Shell.Run «logoff»
(2) ключ DisableExplorerFunction позволяет «отключить» в диалоге контекстное
меню в списке файлов, то есть через диалог нельзя скопировать, удалить, открыть другой файл, итд.
Таким образом, остается возможность сохранять печатные формы отчетов,
но при этом файловые операции будут недоступны.
BlockAllDialogs и BlockEnterpriseDialogs приэтом, соответственно должны быть отключены.
(Maniac):
http://openconf.1cpp.ru/vk/vkloader/index.html):
Пример загрузки внешней компоненты SimpleDllLoader.dll без регистрации в реестре
с помощью vkloader.dll(
ЗагрузитьВнешнююКомпоненту(«vkloader.dll»);
ЗагрузчикВК = СоздатьОбъект(«ЗагрузчикВК»);
ЗагрузчикВК.ЗагрузитьВК(«SimpleDllLoader.dll»,»Addin.SimpleDllLoader=0062aee4-ace8-473f-b384-f544af1e7974″);
ЗагрузчикДЛЛ = СоздатьОбъект(«AddIn.SimpleDllLoader»);
ЗагрузчикДЛЛ.ЗагрузитьБиблиотеку(КаталогИБ()+»fdsubst.dll»);
как только разберусь, доделаю саму компоненту без регистрации в реестре
Это просто песня…
Опочки.. поторопился…
у меня по-прежнему на W2K не запоминает положения растянутого окна диалога.
Ни в конфигураторе, ни в обычном режиме 1С.
В конфиге проверил — в опенконфе показывает версию 3.0.1.3
…
так что…?
(Сhe Burashka): даже и незнаю… видимо придетсо закинуть тебе версию с отладочными сообщениями…
проверял в ц2000 проф в виртуальной машине… уменя запоминалось…
Запихни в заголовок окна версию FDsubsta -чтоб полешче было на этапе «вылавливания блох»
если считаешь необходимым отладочную версию кинуть — кидай, мыло — в профиле
(Сhe Burashka): нашлось вроде… утебя галка «увеличивать диалоги в размере при открытии» поставлена?
если нет, поставь, перезапусти конфигуратор… положение должно запомнится
Все ок.
но свои 3 цента я все равно вставлю 🙂 по идее до лампочки д.б. есть галка или нет… — где закрыли диалог, там следующий раз и открываем…
поправил… можно забирать…
А что симпатично 😉
эх, давно мне тут никто неписАл )
Под 8.1 будет? Привык 🙂
гдебы её ещо найти и главное запустить )
а что там неработает? вообще никак диалоги неподхватываются?
Ага, вообще не перехватывает 🙁
версия 3.0.1.4 (22.06.2007):
— иногда неверно определялся КаталогИБ в Win 2003
— устранён баг с диалогами инсталляторов 1с-ных конфигураций
— добавлена опция «не показывать иконку в трее» (ключ реестра «HideTrayIcon» = «1»)
У меня виста и 8.1.
Думаю я не скоро увижу это в действии. Не так ли?
думаю да…
как только попадется в руки 8.1, буду смотреть…
file-ex — подобного рода программа универсальнее и шире возможностями, глючила на wXP и еще сильнее глючит на vista, но работать можно, если притереться. однако я хочу нормальную, может дадите исходники, да я сам попытаюсь там разобраться?
вообще, это был изначально всего лишь плагин для опенконфа, а программа это уже так, до кучи…
file-ex посмотрел, имхо избыточно функционала в ней. Файловые диалоги предназначены для открытия/сохранения файла, чего мне в них нехватало (статус бар с текущей папкой и список частоиспользуемых папок) то и сделал, остальное — перебор.
Насчет исходников, если delphi не смущает, берите конечно, куда слать?
3.0.1.5 (22.07.2007):
— теперь работает в Win2003 и висте
— иконка на кнопке «избранное» сделана прозрачной
на 8.1 попрежнему непроверял
Под вистой меню появляется далеко от самой кнопки.
В окне присутсвует две звездочки. У левой меню в правильном месте появляется, а у правой далеко вправо.
Висты под рукой нету…
Всегда, на всех диалогах? «далеко вправо» — только по-горизонтали или по-вертикали тоже уходит? от положения самого диалога положение меню зависит?
Только по горизонтали. Смещение вроде пропорционально размеру диалога.
Вроде на всех.
Еще есть баг с размером диалога. Он все время че то какой то большой, даже если последний раз закрывал его предварительно уменьшив.
попробуй вот эту длл…
в окне настройки есть галка «увеличивать диалоги в размере при открытии», стоит?
Похоже от галки «увеличивать диалоги в размере при открытии» не зависит.
О какой новой dll идет речь? Скачал — вроде та же самая версия и размер.
Скоро проверю на Висте тоже
>О какой новой dll идет речь? Скачал — вроде та же самая версия и размер
ну вон же, второй прикрепленный файл, fdsubst_dll.rar
С dll понятно. Обновил.
Только ничего не изменилось =(
Положение меню по горизонтали похоже привязывается к правому краю формы.
Кстати например в опере 9.23 при попытке изменить размер диалога пропадают 3 наклонные линии в правом нижнем углу и больше его уже не получается изменять.
Проверил под вистой. В целом ОК — но есть мелкий косяк…
Непонятно как ведет себя кнопка КаталогИБ() — сразу после установки ВК запустился, жмакаю в 1С открыть файл — жмакаю каталогИБ — вываливается в папку МОЕГО ПОЛЬЗОВАТЕЛЬСКОГО КАТАЛОГА 1С.
ВНИМАНИЕ!! перехожу в какую-нить папку внутри каталогаИБ — вношу ее в ФАВОРИТЫ. Жмакаем в кнопку КаталогИБ — попадаем в только что внесенную папку-фаворит.
…где-то косячок
Причем если слева на панели нажать какую-нить кнопку (и попасть в объект) — то после выбора фаворита — кнопка КаталогИБ становится прижатой
еще раз попробовал — каталогИБ каким-то образом ассоциируется с последним внесенным фаворитом
если последнего внесенного фаворита удалить — то привязка кнопкиКаталогИБ к этому бывшему «фавориту» — осталась — таким образом я привязал кнопку КаталогИБ к каталогу моей базы
всё понятно… это косяки с определением каталогаИБ… если неполучилось определить то там берется ТекущийКаталог (отсюда и «привязка к фавориту»)… буду разбираться… а по поводу меню как, не съезжает вправо?
Вот скриншот из вистыhttp://www.rapidshare.ru/425835
(89) да нет, у меня все нормально вроде — я юзаю только в обычном режиме, в конфигураторе не подключал
(90) Нет, у меня такой шняги не наблюдается… открывается там где надо — под звездочкой.. завтра еще раз точно гляну…
В общем наконец нашел под висту вот это FileBox Extender Beta2 Vista 32xhttp://www.hyperionics.com/downloads/beta/FbxVista32bit-Beta2.zip
Пока буду этой прогой пользоваться.
когда будут поправлены косяки (89)..?
завтро наверно возьму дистриб с вистой поставлю и буду смотреть…
v3.0.1.6
—
Показать полностью
— Vista©® compatible
— меню не съезжает вправо
Добрый день.
А можно ли добавить возможность открывать не последнюю открытую папку, а указанную в параметре
ИмяНачКаталога.
т.е чтобы диалог всегда открывался в указанном каталоге?
можно… ИмяНачКаталога имеется ввиду ещё один параметр в реестре?
Я наверно сумбурно объяснил.
При выборе файла на данный момент открывается последняя открытая папка.
хотелось бы, чтобы открывалась папка, акузанная в параметре ИмяНачКаталога.
Пример.
Последняя открытая папка C: ttuuu (например)
ИмяНачКаталога = «С:aaabb»;
ФС.ВыбратьФайл(0,ИмяФайла,ИмяНачКаталога,»Выберите файл»,»Все файлы (*.pdf) |*.pdf»,»pdf»,);
В текущей версии FDSubst открывается не С:aaabb, а C: ttuuu .
да, пожалуй это баг… щас исправлю… сделаю так что если ИмяНачКаталога указано то открываем его иначе предыдущий