<?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) xten, вы все правильно понимаете, но есть пара моментов:
1) регистры не стал добавлять так как в типовых конфигурациях есть универсальный отчет по регистрам.
2) Ограничения не реализованы.
Регистры в принципе могу добавить: тут нет никаких технических препятствий.
По поводу ограничений ничего не могу сказать т.к. не понимаю, как их в данном отчете можно использовать.
Но ограничений на «хитрость» и разнообразие условий нет, так?
(3) xten, не совсем понял, что вы имеете в виду под «хитростью условий») если вы имеете в виду отбор, то он такой же, как здесь:http://infostart.ru/public/189338/ Плюс при сложной настройке СКД есть возможность задавать условия для каждой группировки.
понял, спасибо
Хотел еще пару моментов уточнить:
Он только под УФ или для обычного приложения тоже?
При формировании отчета где-нибудь генерируется код запроса?
Есть ли возможность сохранить вариант отчета в виде внешнего отчета, никак не зависящего от данной разработки?
Спасибо!
(6) xten, только для УФ. Для обычного уже реализовано несколько вариантов. Средствами встроенного языка 1С создать независимый внешний отчет программно невозможно. Можно сохранять схему компоновки данных и грузить ее вручную в созданный в конфигураторе отчет
В УТ 3.0 для Украины работать будет же?
(8) neurotechnic, должна работать
Где кнопки группировок?
(10) Светлый ум, не очень понял вопрос. Может, вы хотите знать как задавать группировки? Это можно увидеть на 37-ой секунде видео. Если я вас понял неправильно, то распишите подробнее пожалуйста
Хорош отчет, надо будет купить
(7)
Для УФ также есть вариант от 1С — в БП 3.0.
(13) AlX0id, спасибо, я в курсе, что в БП 3.0 есть «Универсальный отчет по метаданным». Функционал уже и он совсем не универсальный. Его нельзя использовать как внешний
Странно, а я каким пользуюсь? У меня более универсальный отчет и работает с бОльшим функционалом, чем представленный тут платный экземпляр.
Поэтому фразы, типа, «Хорош отчет, надо будет купить» не совсем понимаю. Или это пиарство, якобы, под видом благодарного пользователя?
(15) OBEH, ну продемонстрируйте свой бесплатный отчет с бОльшим функционалом.
Можно мне с вами побеседовать на тему одного отчета?
напишите мне на tuktuk7@bk.ru ЖДУ
(15) OBEH, Эх, не дождался я бесплатного отчета! А на платный не потяну! А так хотелось! (
Купил данный отчет. В целом доволен, но очень хотелось бы добавить регистры. Это как-то отдельно надо оплачивать или можно будет получить в качестве обновления?
(19) yurank, Регистры добавлю. Получите в качестве обновления
(19) yurank, Добавил регистры. Пока что без виртуальных таблиц, но в ближайшее время сделаю и это. Обработка должна была прийти вам на e-mail. Если не пришла — пишите адрес в личку
Хороший отчет для работы с одной таблицей, но это для совсем нетребовательных пользователей 🙂
У меня в своей время стояла задача написать универсальный отчет, который может «всё» без конфигуратора и запросов, возможностями толковых ребят (не программистов) проектной группы фин. отдела.
В режиме «непрямого редактировании» — любые физические/виртуальные таблицы (есть даже эмуляция виртуальной таблицы периодических таблиц для связки «на дату» — бьет все записи на непересекающиеся в пределах измерений с полями периода начало=конец периода). Правда, для нетривиальных задач, когда требовалось специфически свернуть некоторые измерения, приходилось дописывать спец. таблицы.
Поскольку после реализации базового функционала постоянно появлялись новые хотелки (постановщиком у нас была талантливая и очень настойчивая девушка 🙂 ) есть также несколько доп. фишек отчета:
— возможность указывать регистры сведений для расшифровки по значениям полей текущего уровня данных
— возможность вывода в шаблон (созданную пользователем печатную форму)
— есть режим отладки, фактический исполняемых запрос (запросы для нескольких наборов) можно поглядеть и даже экспортировать в консоль запросов вместе с параметрами
Поглядеть реализацию можно в конфе здесьhttp://infostart.ru/public/298367/
Конечно на новой работе лично я сейчас использую только «прямой режим редактирования» и никому не говорю что есть «непрямой» 😉 поскольку написать инструкцию для подобного продукта — адский труд, да и пользователей такого уровня здесь нет 🙂
(22) Kashemir,
— смутно могу себе представить, чем такой отчёт будет легче в изучении для юзверей, чем консоль запросов, если их функционал примерно равен, с ваших слов… Надо будет глянуть как-нибудь. Ещё непонятно, что этот отчёт делает в конфе для изучения ин-язов… И почему он не удостоился отдельной публикации…
(23) Патриот, ссылка непонятно на что дана. Долгое время она вообще не работала
Мне нравятся универсальные решения.
(25) KRIHA, мне тоже=) я их сам умею делать при этом
Действительно, что-то я выпал. За это время уже понапродано, наверное этого «универсального решения»?
Может быть как-то показать видео, как работает(причем, повторюсь, с гораздо бОльшим функционалом)? Есть возможность какая-то это дело записать и на каком-либо ресурсе выложить?
(27) OBEH, к публикации прикреплено видео. Вам его недостаточно?
(28) Я про то, чтобы показать возможность бесплатного.
А прикрепленное видео не смотрел. Может быть, его использовать для показа?
Ну я к тому, чтобы показать по аналогии.
(29) OBEH, с какой целью в пишите здесь?
Показать, что есть бесплатная и более совершенная обработка.
(31) OBEH, покажите, что вам мешает?
Добрый день!
Скажите, пожалуйста, я правильно понимаю, что я могу сформировать практически Отчет по проводкам любого документа?
В каком релизе Обработка работает? Или она подойдет для любого релиза 8.3?
Можно ли купить обработку и попробовать ее?
Спасибо!
(33) Tata7772,
отчет по проводкам не совсем верно. Вы можете посмотреть движения любого регистра с отбором по нужному вам документу.
Обработка работает без ограничений на любой конфигурации на Управляемом приложении любого релиза на платформах 8.3 и 8.2.
Если у вас обычное приложение, то ее нужно будет включить в конфигурацию (могу отдельно проконсультировать как это делать в случае необходимости)
Конечно, обработку можно купить и попробовать. Если она вам по каким-то причинам не подойдет, то вы всегда можете оформить возврат покупки. Но таких еще не было=)
Добрый вечер! Спасибо большое за ответ!
Очень извиняюсь. А у меня у одной звук не работает на видео? И через YouTube попробовала…. ничего не слышно. Можно попросить, пожалуйста, проверить))))
Заранее приношу извинения за беспокойство!
Спасибо!
(35) Tata7772, звук не работает потому, что его нет)) да я и не понимаю, что там можно рассказывать. Все просто
Скажу честно! Вам- может быть и просто!
Я же просто аудитор. И таких вещей, какие умеете Вы, не то что не умею, даже названия не слышала!
Мне нужны обработки для облегчения работы и возможности формировать необходимую информацию в удобном виде )))
(37) Tata7772, понятно. вы всегда можете задать вопрос по отчету сюда, в личные сообщения или на почту. Я не оставлю его без ответа
Добрый день!
Сразу прошу прощения, но я совсем не программист, далеко не программист…
В общем скачала отчет, добавила его в список внешних, открываю, а там ничего…Данные никаких нет, есть возможность только настраивать сам внешний вид отчета. Может необходимо какие-то еще манипуляции совершить? Помогите пожалуйста! Еще раз прошу прощения!
(39) vinik1005, добрый день! У вас обычное приложение или управляемое?
Обычное приложение (если я правильно поняла, то это стационарно установленная программа).
(41) vinik1005, в таком случае отчет нужно включить в конфигурацию. Внешние отчеты на упр.приложении в обычном не запускаются. Пишите в личку почту, я дам инструкцию
(42) скинула почту
А за СМ никак не сделать ? (10, 20 SM).
http://infostart.ru/public/281400) уже скачал, но там настройка совсем слабая.
Тут вроде и нормального отчета нигде нет и за 2000 пробовать не охота.
Такой (
(44) 7OH, извините, но никак
Не могу понять, где в публикации видео?
(46) пропало( восстановлю
(44) последовал вашему совету
Можно ли доработать данный универсальный отчет чтобы он мог принимать как параметр уже готовый макет СКД ?
В таком варианте он будет использоваться как форма для задания параметров, настройки СКД и работы с результатом отчета.
У меня возникла необходимость работать с присланными из вне готовыми макетами СКД, но нужна возможность их настраивать, задавать параметры отбора и сортировки.
И это сложные макеты с несколькими наборами данных, с внешними источниками данных (таблицы значений).
А ссылочка на видео имеется?
(50) отчёт интуитивно понятный, видео нет. Показывать особо нечего
А как в запрос параметры передавать?
При выходе пишет ошибка формата объекта настроек.
Даже если просто открыть и закрыть обработку.
(53) ошибка на функционал не влияет. поправлю в обозримом будущем
(54) Просим параметры для произвольного запроса)
(55) должна появиться вкладка «параметры» слева
(56)Не появляется..
(57) нажмите «Вариант отчета»-«изменить вариант»
(58)запрос тот же:
(59) текст покажите
(60)
(61) поставьте отборы
(62)Отборов нет, параметров нет
(63) выберите в запросе все поля ,по которым надо ставить отбор
(64)
А если это не поле а параметр виртуальной таблицы?
(65) надо отчетик поправить тогда
(66)Если будет время и возможность поправьте , пожалуйста.
Отчет по произвольному запросу это единственная фишка вашего отчета , которая меня интересует. Остальное есть в встроенном отчете.
>> 2.3
>> -Исправлена ошибка, не позволяющая запускать отчет в обычном приложении.
что-то не запускается в обычном, в управляемом — все супер
(68) для работы в обычном приложении нужно встроить отчет в конфигурацию