<?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) Блин, вдвойне приятно… Первый раз меня «прикручивают» до Украины. Передайте привет Балаклаве, там есть оччень приятный дайв-клуб.
А почему на форме написано «Акт сверки взаиморесчетов»…. ??? исправь 😉
Для Украины поменяла в схеме компоновки названия счетов в фильтре
по счетам, все работает.
Для меня на сегодня было злободневно посмотреть акты сверки
по счетам «Расчеты по кредитам и займам».
Хороший отчетик, будем использовать, Спасибо автору.
(3) Сенькс
(4) Так опубликуйте свою доработку. Если будет ссылка на первоисточник — тогда никаких возражений. Сенькс.
(2)
да какая там Балаклава, крым то практически независимый от Украины)))
спасибо, удобно.
(9) «Шапка и подвал с подписЯми..» находятся в штатном документе «Акт сверки взаиморасчетов». Данный отчет предназначен для получения оперативной информации по взаиморасчетам с группой контрагентов. Каким образом вы представляете формирование данного отчета по множеству договоров и контрагентов с формированием шапок и подписЕй? Да и для чего это нужно?
(13) Сенькс
(13) Поправлено уже давно, скриншот староват ))))
(12) Буду рад если подскажете каким отчетом для этого лучше пользоваться в ТИПОВОЙ конфигурации БП 1.6 (1.6.20.6).
Я искал, но что-то не нашел.
Спасибо!!! Именно то,что искал!
(17) Пожалуйста. Всегда рад.
всё бы ничего, но нет начального и конечного сальдо… о каком анализе (заявленом в описании) можно говорить?
(19) Коды, впринципе, открыты… Мне этого было ненужно.
Хороший отчет! Зачет!
Только в редакции ред. 1.6.21.6 не работает — из конфигурации убрали функцию ТиповыеОтчеты.ЭтоПроизвольныйОтчет()
У вас есть такая функция в модуле, а почти везде в ФормаНастройкиСтруктурыОтчета вызывается из общего модуля.
(21) Поправил.
(22) Оперативно!
Спасибо! удобная и нужная штука!
Какой же это АКТ?
Хорошая штучка именно как отчет, но контрагенту такой акт не предъявить. Пришлось править в печатной форме.
Вот если бы реквизиты документов проставлялись реальные, а не присвоенные программой, и шапка с подписью соответствующие.
😥 как исправить ошибку? редакция 1.6.25.9
{Форма.ФормаНастройкиСтруктурыОтчета(208)}: Метод объекта не обнаружен (ЭтоПроизвольныйОтчет)
Если ТиповыеОтчеты.ЭтоПроизвольныйОтчет(ОтчетОбъект) Тогда
(26) Видимо у вас старая версия отчета (скачивали давно). Скачайте новую версию отчета, проблем быть не должно
(27) Скачивал позавчера. скачал сейчас еще раз — тоже самое.
15.11.2010 14:22 124747 byte АктСверкиДляБП.erf
Можете подсказать какую функцию надо использовать вместо этой?
(28) Олег, я тоже скачал отчет только что. Все работает в типовом релизе. Вызывается экспортная процедура модуля отчета. Если у вас так и не получится, готов проверить на вашей базе данных. Можете выслать базу на мой персональный ящик. (мой майл вышлю вам по личке)
(29) Ошибка исправлена, можете пользовать. Спасибо за замечание
Огромное спасибо! 🙂
Очень удобно — посадил девочку с этим отчетом и она обзванивает клиентов на предмет долгов. Еще добавлю туда основное контактное лицо — чтобы было сразу видно кому звонить.
Валерий, еще побеспокою — есть ли возможность добавить расчет «Итого» для последней колонки «Конечный остаток»?
Дабы видеть сумму для определенной выборки 🙂
(32) Я долго пыхтел над этим, так и не победил. 😥
В файлах уже 2.0? Не могу запустить на 8.1.15. внешний отчет не может быть прочитан текущей версией программы
Присоединяюсь к nkorkin. 8.1.15 «Внешний отчет не может быть прочитан текущей версией программы». Будьте добры, выложите для 8.1, очень хочется плюсануть)))
Также присоединяюсь: 8.1.15 «Внешний отчет не может быть прочитан текущей версией программы». Будьте добры, выложите для 8.1
Мне тоже нужен под 8.1!
Спасибо! для Комплексной 8.2 подходит.
платформа 1с 8.1.15.14
БП 1.6.29.2
почему же пишет «внешний отчет не может быть прочитан текущей версией программы» хотя написано у вас «для 1С: Предприятие 8.1». что я делаю не так?..
(39) Да, действительно, ранее отчет предназначался для версии платформы 8.1. Позднее файлы отчета были изменены (выложены под 8.2) , а описание не отредактировано.
Спасибо за замечание. Поправил публикацию.
а версию для 8.1 можете выслать мне? мыло = МойНик + «@mail.ru»
(41) К сожалению на 8.1 не работаю уже пару лет. Навряд ли что сохранилось…
акт не фонтан, форма не та
(43) «не та» — а какая? там по идее либо унифицированная, либо произвольная
спасибо для общего обозрения удобно
44, нужна такая форма, чтобы не стыдно было послать контрагенту, такая как в 1С родная пойдет, только она без сальдо по договорам
(46) gala2009,
Понятие «стыда» для каждого индивида — вещь достаточно индивидуальная. В данном случае — это скорее всего вопрос эстетического восприятия действительности )))))
Когда разрабатывал отчет, не мог себе представить: как данный отчет представить в виде акта (с обоюдной подписью сторон). Ведь данный отчет (ВЕДОМОСТЬ- сказано в анотации) формируется по множеству контрагентов.
Вы предлагаете, чтоб все эти контрагенты ставили внизу свои подписи? По -моему, многим при этом было бы «стыдно» ))))
Прошу прощения за флуд…
(46)http://infostart.ru/public/86454/
(48) e.kogan,
спасибо за инв-17! но это не то, что хотелось бы в данный момент(ни разреза договоров, ни докуметов), но буду иметь ввиду, может быть пригодиться
(47)
я ваш акт переделывала под нужды нашей бухгалтерии, и шапочку, и штанишки, но они все равно кривились. зато я потренировалась в выводе группировок на печать в скд. нашла в инете отчетик потом такой как хотелось (не в скд), после небольшой допилки бухи не нарадуются. м б найду ссылку, если кому надо. так то ведь нельзя чужое здесь размешать?
Добрый день не хватает money сбросьте на email amistad2012@mail.ru, буду очень признателен .
Нужный отчет. Переконвертировал на 2,0. Интересно пойдет ли на 3,0
Спасибо, взял за основу для разработки под Управляемые формы