<?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='\
круто!
Сильно!
Ты только в файле testOLAP.ert написал ЗагрузитьВнешнююКомпоненту("olap.dll");
вместо ЗагрузитьВнешнююКомпоненту("MPLUS.dll");
+ в процедуре построения можно сделать так:
Показать полностью
Спасибо за совет JohnyDeath. Все учтено в версии DemoOLAPv2.rar.
Я вот чего не понял: выкладывал я MPLUS к кодами, пользуйтесь, плиз, но копирайт-то там стоял А. Кучер.
С каких хренов теперь 1С? Ну перекомпилируйте тогда с другим именем MMinus, например.
(4) Полностью поддерживаю — забывать автора -как-то дурно попахивает у вас, господа… Поскольку минусов не ставлю принципиально — минус виртуальный (так сказать — поставить на вид…)
еще не смотрел, но за работу в данном направление несомненно +1
А нет случайно списка методов, событий для этого АктивИкса?
Все методы с примером вызова в примере.
Прям все? Ну а свойства, события?
to JD:
я пока не смотрел — а что intsOlegenerator его не подхватывает?
блин штука красивая…
да вот только Интерфейс не руский
Так что все классно, кроме Интерфейса англосакского.
+1 я уже поставил
>я пока не смотрел — а что intsOlegenerator его не подхватывает?
ТОЧНО! Работает: сгенерировал себе интсы и als-файлы -> ЛАФА. А я совсем забыл про это замечательное творение Трошева Димы.
Просто сначала открывал в ActiveX Inspector, а он почему-то не хочет его кушать…
Русский интерфейс в процессе. Подправилена ошибка при закрытии 1С. Отдельная благодарность А. Кучер за идею создания окон, в следующей версии изменю название компоненты. 🙂
еще момент
в качестве бояна — вдруг автор этой обработки не видел
(13) >Отдельная благодарность А. Кучер за идею создания окон, в следующей версии изменю название компоненты
А может лучше сохранить имя настоящего автора компоненты? 😉
хм.. выглядит привлекательно…
а лицензироваться если по полной — это сколько чатлов?
Для начала достаточно 112$.
Так что присылайте компоненты, сделаю сборку с полной лицензией. 🙂
Не в обиду Абадоне:
можно вообще отказаться от MPlus (люди говорят, что проблемы бывают), а сделать сделать русский АктивИкс и пихать его на любую форму, используя 1с++. Можно, в принципе, скачать с указанного сайта их активИкс, но единственный минус — у него лицо не русское.
(18) а какие обиды, там ЕГО либа, просто он название не сменил 😉
Новая версия на растерзание OLAP_Report-v3.RAR 🙂
чё-т ругается:
Ошибка при создании объекта из компоненты <ПутьКБазе>ReportEx.dll (отсутствует CLSID)
Сижу под админом на этом компе.
Даже regsvr32.exe ReportEx.dll сделал (причём прошло успешно)
Всё равно не катит ((
Попробуй regsvr32.exe zCube.dll
(22) Конечно делал.
Зато вот так прокатило:
Показать полностью
Одно замечание: должна быть загружена 1с++ не ниже 2.5
Давай через аську. Я тебе в личку напсал.
Давай, только что то ничего не пришло. Проверь свою почту
чё-то тут с почтой не то…
Стучись 326265225
Если при запуске говорит что нет GUID и все такое, попробуйте GUID_PATCH.RAR. Инструкция прилагается
Новая версия, в основном исправил старые баги и некоторые косметические улучшения.
При запуске демо вылетает ошибка Виндоус:
«Ошибка при создании
Access violation at … in module ReportEx.dll…»
В архиве нет батника, компонеты зарегил regsvr32.exe и положил в каталог базы.
Что я сделал не так?
Могу только посоветовать попробовать на другом компе попробовать. Т.к. данная версия стоит у меня на пяти компах среди которых 2003 и XP, подобного поведения не наблюдалось.
(29) Поддерживаю — ошибка есть! Тестировалось на XP SP1, SP2 и Win2003. Проблема решается с помощью «GUID_PATCH.rar», который был с версией 3.
Сразу хочется задать вопрос: проблема с печатью решаема или нет? Хотелось бы иметь возможность выбора принтера и настроек печати (книжная/альбомная и т.п.)
В целом хочется искренне поблагодарить автора за отличный проект. Огромное спасибо!
Кстати, по кнопке «Закрыть» остается пустое окно с заголовком «OLAP» — пустячок, а не приятно 🙂
Добавьте, пожалуйста, GUID_PATCH.rar в архив.
Выложил все в одном. Версия 41
Буду пробовать в ближайшее время! очень интересно!
GUID патч теперь не нужен. У меня была ошибка при создании окна.
Да.. убойная вещь…
Скачал у китайцев PivotCube VCL 6.7. Похоже что версия с полной лицензией. Перезалил на рапидшару. Вот линк:http://rapidshare.com/files/72584413/pivot.exe.html (5,67Мб)
Когда запускаю Вашу обработку c dll из вышеприведенной ссылки — 1с вылетает при попытке сформировать отчет. Может посмотрите что там и как? Думаю полнофункциональная лицензионная dll никому не помешает.
Спасибо.
надо б скачать пока ссылку не удалили )))
но всё равно ломаную не получится использовать в своих продуктах.
можно рядом класть ДЕМО и преименованную полную. а чего с ней делать- народ сам решит
+1
Классный отчет. Легко пишется, только выскакивает сообщение о количестве записей и времени выполнения. Демо-версия может накладывает ограничения. Какое максимальное кол-во записей может быть? И где найти guid-patch.rar?
guid-patch.rar теперь не требуется, эту проблемму я уже пофиксил. Максимально записей может быть 5000, потом включается режим ограничений (некоторые значения пустые).
А если cells=8284 и time=3641 msec не обрезается ли отчет? Я весь журнал расчетов за месяц записываю в ТЗ вместе с структурой института, должностями, категориями, ВР и разбивкой по фондам для финансистов, ОТИЗ и руководства. Численность предприятия большая — 2000 чел.
+1 несомненно. Вы не представляете, насколько жизнь веселее показалась 🙂 Спасибо автору
Новая версия! Испытана и готова к бою :). Единственная досада выскакивает ошибка при закрытии 1С если пользоваться сохранением настроек. Жду обновлений от разработчика компонет.
+ 100K Молодец!
Жаль не сохраняются настройки.Вещь интересная!
Вопрос автору. А если приобрести компоненту zCube.dll, не будет вылетов 1С, как описано в [38]? Можно $112 потратить, не великие деньги для дела. А вот выкинуть их, если не пойдет, будет жаль.
Если только приобрести за 395.00$ с полными исходниками то тогда можно будет уже фиксить баги самостоятельно.
С возникающей ошибкой оказалось все просто :)))
Надо обновить ваш старый zCube.dll на файл в архиве с компонентой и все будет работать нормально.
Обнаружился странный косяк: в терминальном режиме (Win2003 R2 Rus, 1С 7.7 27 SQL, база DBF) при построении отчета под пользователем терминала с обычными правами, появляется окно отчета, но заполнение измерениями не происходит, после 10 секунд раздумью 1С тихо закрывается. Если строить куб под пользователем с административными правами все работает нормально. Возможно нет доступа к реестру?
Странное поведение, у нас пользователи тоже в терминалке не под правами админа, но такого не наблюдалось. Возможно требуется сначала сделать regsvr32 zCube.dll на сервере.
У нас на HKLM права только чтение.
Какие права пользователей у вас?
(52) 🙂 Это косяк из серии: «Учите мат.часть» 🙂 Ошибка в правах доступа к самой компоненте, т.к. ее копировали под правами админа, то ей присвоились права доступа только админа, вот и вся проблема. Спасибо.
Я оплатила по б/налу 112$ в Германию в Кельн в соответствии с платежными реквизитами на сайте PivotCube.com. Как шла оплата — это песня. Сначала у нас были праздники новогодние, потом у них — две недели, потом они никак не могли найти куда ушли деньги. Я брала подтверждение в банке и посылала на сайт. Отвечают они не сразу, а через 3 дня. Писать надо по-английски, по-русски они не отвечают.Наконец прислали какой-то файл для регистрации и всe. Оказывается надо скачивать free версию PivotCube VCL с сайта и заменить только этот файл. В результате zcube.dll осталась та же и программа все равно показывает, что это демо. Чтобы изменить приложение мне сказали, что надо перекомпилировать его в дельфи. Где взять исходный код? Мне нужно снять ограничение на 5000 записей и все. Что нужно для этого сделать? Перекомпилировать ReportEx.dll ? Не хотелось бы еще углубляться в Дельфи.Помогите! Мой e-mail Prolex@nm.ru.
Удобная штука, не хватает возможности передавать заголовки колонок в куб.
Когда идет выполнение глПостроитьКУБ и снимается ИмяКолонки, то лучше чтобы делалось так:
ИмяКолонки = ТЗ.ПолучитьПараметрыКолонки(Кол,Тип,,,Заголовок,Положение);
и Заголовок как-то можно было бы устанавить в Куб как заголовок колонки 🙂
Если использовать для загрузки vkloader.dll, то в терминальном режиме форма отчета ReportEx не открывается. При ЗагрузитьВнешнююКомпоненту() все работает нормально… А штука вообще классная. Изучаю по принципу включил — попробовал — не получилось — полез в справку:)
Формула не сохраняется в настройках куба. И еще нельзя установить программно номер колонки для добавленной формулы, только интерактивно
Присоединяюсь к (55) посту. Не хватает заголовков. При этом интерактивно можно задать название колонки с пробелами.
И еще та zcube.dll, которая прилагается к архиву, неправильно работает (не добавляет числовые значения в куб для расчета). Скачал dll с pivotcube — все заработало
Еще не хватает отображения на форме какой-нибудь произвольной текстовой информации. Например периода формирования отчета (название отчета все же не очень удобно в эксплуатации, порой не знаешь что за отчет перед тобой)
Для передачи заголовков ТЗ в куб используйте код:
ИмяКолонки = ТЗ.ПолучитьПараметрыКолонки(Кол,Тип,,,Заголовок,Положение);
ИмяКолонки = Заголовок;
СЗКолонки.Установить(Кол,ИмяКолонки);
(59) Пока что можно установить заголовок формы отчета
Как понимать такую ошибку:
«олап.Build();
AddIn.OLAP: Разрушительный сбой» ?
Выкладываю на обозрение версию без ограничений на кол-во записей и прочее. Основана на других компонентах, но все остальное работает так же.
(62) Уже все понял
Помогите с таким. На моем компе все поставилось, зделал отчет, проверел и т.д. все ОК. Пробую на сервере не работает. Везде 2003 винда. Права админа.
Делаю так:
Попытка
ЗагрузитьВнешнююКомпоненту(«ReportEx.dll»);
Сообщить(«Компонента OLAP загружена!»);
Исключение
Сообщить(«Пытались, но не загрузили компоненту OLAP :(«);
КонецПопытки;
Ответ:
Ошибка при создании объекта из компоненты D:Program Files (x86)1Cv77BINReportEx.dll (отсутствует CLSID)
Компонента OLAP загружена!
Будет ли все ето работать под х64
Как раз на 2003 x64 в терминалке и работают мои пользователи.
Возможно что надо сначала с правами локального админа запуститься.
Спасибо за обновление. Но…
У меня сохранена огромная куча видов отчетов в старом hc-формате.. Огромные отчеты, огромная проделана работа. А теперь формат изменился на cubx и старый формат не подгружается (изменение расширения не помогает). Можно ли как-то не вручную восстановить все мои старые отчеты? 🙁
ReportEx-HireCube(без ограничений).zip <- это новая версия с форматом hc
«ReportEx-HireCube(без ограничений).zip <- это новая версия с форматом hc»
Я положил в папку с базой файл ReportEx.dll из указанного архива, внешний вид отчета поменялся, а кнопка «Открыть» просит файл настройки в формате cubx, hc она не берет. Что делать?
Хотелось бы услышать ответ…
набор полей или измерений менялся?
При: ЗагрузитьВнешнююКомпоненту(«ReportEx.dll»);
Ошибка: Ошибка при создании объекта из компоненты D:Program Files1Cv77BINReportEx.dll (отсутствует CLSID)
ОС: Windows XP SP2, Права Администратора. dll зарегистрирована
Можно ли избавиться от ограничения по количеству символов в ячейке ТЗ, передаваемой ReportEx? А то если в ячейку фактовой таблицы поместить строку длиной больше 40 символов — она обрезается.
А возможно ли программно создавать группы? Или только вручную в настройке группировки?
Обновил версию, качайте ReportEx-HireCube(без ограничений).zip
Много чего исправил. Основные изменения были направлены на стабильность.
С группами самое просто что можно придумать это добавить колонку Родитель в исходную таблицу значений.
Я не совсем понял ситуацию с обновлениями. Можете разъяснить?
1) Та версия, которая сейчас лежит как ReportEx-1.0.4.31.zip, это я так понимаю HireCube версия, которая загружает hc-файлы, так? Но она, я так понял, полностью локализована на русский, и соответственно, старые hc-файлы она не берет. Рунается на разные функции типа «Min» (видимо ждет вместо нее функцию «Минимальное»). Как решить вопрос с совместимостью? Можно ли сделать, чтобы новая версия понимала функции на английском? Ведь даже в 1С можно писать как хочешь — или If..Then, или Если..Тогда.
2) Та версия, которая лежала раньше рядом (которая загружает cubx-настройки), я видел в ней гораздо больше функциональности — в частности возможность форматирования вычисляемых параметров и т.д. Эта версия будет обновляться и поддерживаться? Я так понимаю, что под нее hc-файлы точно придется вручную переделывать на cubx? Стоит ли это того, будет ли она дальше обновляться?
Вобщем я активно использую в работе эту компоненту, мне она нравится, и я готов платить деньги за ее использование, но хотелось бы большей определенности от автора о планах разработки и поддержки. Какую версию перспективнее использовать — cubx или hc?
Ошибка при создании объекта из компоненты C:Data1Cv77КонфигурацииБазаReportEx.dll (отсутствует CLSID)
олап = СоздатьОбъект(«AddIn.OLAP»);
{Глобальный модуль(13893)}: Неудачная попытка создания объекта (AddIn.OLAP)
?????????????
почему то именно новая версия на одном из терминальных серверов падает с невозможностью считывания памяти 🙁
старая версия, это была именно cubx, а новая соответственно та, что сейчас на сайте 🙁
При: ЗагрузитьВнешнююКомпоненту(«ReportEx.dll»);
Ошибка: Ошибка при создании объекта из компоненты …(отсутствует CLSID)
ОС: Windows XP SP3, Права Администратора. dll зарегистрирована
эта проблема как-то решается?
Ошибка при создании объекта из компоненты …(отсутствует CLSID)
Все получилось: сначала нужно скачать старую версию,
зарегистрировать zCube.dll, а ReportEx взять из нового архива.
Поправил ошибку с CLSID!! Натолкнулся на неё на чистой оси :). Теперь не пойму как же оно раньше работало :). Качать ReportEx-1.0.4.41.zip и обновлять ReportEx.dll
Отличная вещь! Только вот экспорт в Excel не работает. Создается файл .xls минимального размера и ексель его за свой формат не признаёт. 🙁
(84) работало у тех, у кого первая версия компоненты была зарегистрирована
Сортировочку строк по умолчанию лучше бы сделать «Отсортировать как в БД»…
Жаль диаграммы не строит. 🙁
олап = СоздатьОбъект(«AddIn.OLAP»);
{Глобальный модуль(13261)}: Неудачная попытка создания объекта (AddIn.OLAP)
Почему, и как зарегестрировать эту компаненту
Очень хорошая вещь! Но нужен нормальный экспорт в Execel. Не понимает Execel того, что экспортится в формат xls.
(90) Подтверждаю, экспорт в Excel пока не работает; по крайней мере, в Excel 2003 созданный файл открывается с ошибками.
Экспорт в Excel не работает, пробовал открывать и 2007 офисом
А где можно достать
ReportEx.als
?
Заранее благодарен admin@olap.com.ua
Почему-то не сохраняет полностью куб в hcc. Выбираешь hcc, а сохраняет все равно только hc настройки куба. В чем проблема?
Подскажите как вывести колонку, чтобы она изначально выводилась не как «суммируемая», а к примеру «среднее» и др.?
А еще лучше как передать формулу расчетной колонки — вот это было бы супер!
Извиняюсь, невнимательно посмотрел страницу публикации
спасибо. забрал. пригодилась!
удобная вещь. пользуемся.
Интересная штука, спасибо!
Жаль только, действительно куб не сохраняет (((