<?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='\
ЗаголовокСистемы(ОрганизацияНазвание+» Егоров Д.М. тел.(9063)818181)»);
вот это нафига, а? :-
Это рудимент. Включил, чтобы бухи мой телефон не забыли :).
Надо убрать.
Хороший отчет, безусловно плюс)
101 раз качнули, только 10 плюсов, поддержите обработку, отчеты то хорошие, функциональные) да и ошибок не каких не вылезало
(4) Приятно 🙂 Спасибо за тёплые слова.
Отчет очень понравился.
(4) 10/101 — весьма хорошая статистика, имхо…
Неплохая ертешка, спасибо….
У меня так:
Возврат глПредставлениеАдреса<<?>>(Контрагент.ЮридическийАдрес);
{D:TESTEXTFORMSАНАЛИЗ.ERT(187)}: Функция не обнаружена (глПредставлениеАдреса)
Возврат глПредставлениеАдреса<<?>>(Контрагент.ПочтовыйАдрес);
{D:TESTEXTFORMSАНАЛИЗ.ERT(189)}: Функция не обнаружена (глПредставлениеАдреса)
Возврат глПредставлениеАдреса<<?>>(Контрагент.ЮрФизЛицо.ЮрАдрес);
{D:TESTEXTFORMSАНАЛИЗ.ERT(224)}: Функция не обнаружена (глПредставлениеАдреса)
Кто-то использует с «Бухгалтерский учет» для Украины 7.70.025?
Отчет отличный. Безусловно +!
(9) Подправил для 1С:Бухгалтерия для Украины и закачал на infostar.
Ссылкаhttp://infostart.ru/projects/5396/
Ставлю плюс, но вижу недостаток — в ИНВ-17 сальдо свернутое по контрагенту. Это неправильно, когда например у контрагента два договора : по одному — сальдо кредитовое, а по-другому — дебетовое. Тоже самое в справке -приложении к ИНВ-17. Фирменный отчет 1С «Инвентаризация расчетов с контрагентами» кстати формирует правильно развернуто, но к сожалению не делает справку- приложение.
Класс. +1
Очень хорошо +
Очень понравилось! Отлично работает и Бух4.5, и в УСН!
+++
МААЛОООДЕЦЦЦЦЦЦЦ!!!! супер +100
Замечательно!
+
Вы мой спаситель!
Однако работает, супер, 5+ ! 😀
Отличная штука
Детализация сальдо взаимных расчетов по периодам. Бухгалтера говорят что выводит суммы без НДС. Сам еще не смотрел. Может подскажете что?
(0) Если на забалансовых счетах есть субконто Контрагенты/Договора, то выводит неверное сальдо с учетом данных по этим забалансовым счетам 🙁
Как минимум в списке дебиторов/кредиторов
ИМХО нужно исправлять, все-таки балансовые и забалансовые счета.
Это при работе по умолчанию,
если непосредственно задать список счетов, то ошибки нет!
Спасибо, вот это отчет!!!
Два дня искала, столько перепробовала,
этот лучший.
Еще СПБ!!!
Большое спасибо! Все, что нужно, все есть. Безусловно Плюс.
Искал очень долго приложение к ИНВ-17, а тут помимо приложения, еще и целый букет отчетов в придачу.
Спасибо автору! Очень нужная и хороший отчет +
Отличный набор отчетов,все что желала душа нашего нового экономиста,и даже сверх того.
Спасибо+
Хороший набор отчетов, для меня самое то…
Спасибо, всё очень понравилось.
Плюсуйте люди!!!! что вам жалко?
Спасибо пользуюсь
Хороший отчет,только не понял, что делают в этим отчетах суммы задолженностей по документам «формирование записей книги покупок»?
Скорее всего не выбраны счета взаиморасчётов в разделе «Настройка», вернее выбраны все счета, где ведётся аналитика по Контрагентам.
Спасибо, полюзуемся, хороший отчет — многофункциональный, только скажи пожалуйста почему иногда задваиваются обороты? Я конечно попонял, что задваиваются авансы, но мне кажется этого не должно быть, ведь в стандарном акте сверки с оборотами все в порядке. Но не смотря на эти мелочи безусловный и огромный+.
Идея хорошая, обработка тоже экономит кучу времени… Можно её модифицировать под БП 8.2, пока 1С сама не догадается включить её в комплект поставки. Программа предназначена для облегчения труда бухгалтеров, пора бы уже и включить её, вещь очень нужная. СПАСИБО!
Жалко что акт сверки по всем поставщикам а не по отдельности(((
Давно скачал, вот и пригодилось недавно.. Автору спасибо, функциональная вещь!!
Спасибо пригодилась
к автору: А что-нибудь похожее для 8.2 вы не писали?
Все работает отлично . автору большое спс. + поставил