<?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) цыц, цыган, цыпленок, цыпочки — всего 4 слова в русском, где после «ц» пишется «ы», помню класса с третьего 😉
P.S. Отмазка на украинский не пройдет, там тоже «принцИп» 😀
А чем оно круче «Настраиваемого журнала документов» (unijourn.ert) с дискак ИТС? На первый взгляд только тем, что позволяет задавать условия по списку значений. А во всем остальном хуже. Может стоит доработать обработку с ИТС?
на первый взгляд ничё так. посмотрим…
да классная весчь!!! обрабатывает и табличную часть, безусловно плюс!
(1), (2), исправил 😉
(3). Открыл рекомендуемый Вами отчетик (unijourn.ert)
Может он для кого то и более удобен, но для меня не очень. Бухгалтера они ж любят чем поменьше кнопочек нажимать, но при этом чтоб у них работало и выводило именно так как они думают и хотят.
В том что предлагаете вы уж надо очень много всего выбирать, а моим бухам это не нравиться, но достоинством в нем вижу то что можна делать отбор по нескольким документам.
В том что предлагаю я есть закладка «шаблон» где можна сохранить настройку вывода. Так можна сохранить несколько настроек, для каждого бухгалтера, а бухгалтеру только остаеться выбрать свою настройку и нажать сформировать.
Для своих сделал так.
Прошелся пообщался с каждым бухгалтером, добавил в шаблоны все что ему надо, потом кнопку «УДАЛИТЬ» заблокировал, тоесть сделал недоступной (чтоб случайно не удалили чужие настройки) и все.
(6) Ну субъективное ощущение — это святое. Для использования простыми бухгалтерами unijourn.ert действительно обычно сложноват. Разве что 1Сник предварительно наделает для них типовых настроек.
А достоинства не только отбора по нескольким документам. Управление столбцами (что выводится, размеры столбцов), возможность пакетной обработки выбранных документов (легко и непринужденно пишутся обработки, которые можно добавить). Впрочем, опять таки каждому своё.
Настроить и сохранить настройки и в unijourn.ert можно.
Я его помянул не потому, что он однозначно лучше. А потому что довольно часть люди делают что-то свое, тратя кучу трудочасов, только из-за того, что не знают штатных (диски ИТС вполне можно считать штатными) возможностей. Которые, при необходимости, зачастую можно минимальными трудозатратами заточить под себя.
(7) спасиба за подсказку.
unijourn.ert раньше в глаза не попадался, будет чуток свободного времени попробую поиграться с ним более лучше. 😉
плюсов понаставили
а вот чем он отличается от подлинника
называемого seldoc.ert
если кардинально отличается тогда ладно,
Надо описать принцыпыальные отличия
а то больше смахивает на плагиат
Работает, но не эффективно
Надо бы попроще
прикольно, нашим бухам понравился.
(9) Чем отличаеться не могу сказать, нет под рукой этого вашего seldoc.ert. Киньте в личку его, сравню..
В самых первых строках писал.
«»Предупреждаю сразу писалось не мной! Разрешение автора получить не удалось, поскольку где бралось уже не помниться, а в самой обработке нет данных про автора!!»»
Но ведь вы же не с головы писали
и интерфейс один в один
это с чего а?
(13)
Во-первых, читать умеем? Вам же уже несколько раз сказали: «писалось не мной».
Во-вторых, в описании обработки есть такая фраза «При вставке данного отчета в конфигурацию используется файл: «…ExtFormsseldoc.dat», если каталога «ExtForms» не существует, то файл сохраняется в каталоге базы данных.»
Когда и кем было утеряно оригинальное имя, неизвестно. Но выставлять претензии dobraleks тут смысла нет, сразу было сказано, что не свое, а просто поделиться хорошей вещью с общественностью.
Я не спорю, просто автор публикации попросил
кинуть в личку оригинал вот и ответ
соответствующий, pardon
(15) Чёй-то не пойму:
1. Автор темы чесно предупредил, что не его? — предупредил.
2. Приблуда работает, данные не портит? — работает.
3. Вопроссы?
Кому нравится, тот качает и благодарит. Кому не нравится… Буде проходить мимо — ну так проходите, проходите…
Так нашелся автор?
Потрібна штука. Качайте всі, кому треба.
чтото сегодня день не подходящий.. 🙁
автор нет не нашелся 🙂
что вас всех так мутит авторство??
Давайте возмем другой пример, вы нашли какую-то статью, очень толковую и полезную, взяли выложили здесь на ИС, указали копирайт первоисточника и все. Люди читают, плагодарят вас «+», за полезную и ценную информацию!!!
Никто никогда не задавал вопросы, «А ты спросил у создателя сайта чтоб выложить на ИС»???
Давайте не спорить друг с другом.
(16) пост сказан прямо в десятку!!
Нужно добавить возможность быстрого выделения/снятия всех полей в отчет(по вашему появляется иконка принтер), а то не удобно по каждому щелкать двойным щелчком.
(0) а как сделать по всем документам?
(27) ? а зачем?
Вероятность того что вам нужно печатать все реквизиты документа стремительно приближается к «нулю».
Возьмите любой документ например туже самую БВ, там очень много реквизитов, а на печать выводиться меньшая половина.
Мне этот отчет и нравиться, что один раз сделал и забыл, добавил себе в шаблон, а потом вызываешь …
(28) 🙂 .. по всем документам…
можно использовать разрекламированный в посте (3) и (7) 😉
Не увидел на скринах галки: «Выводить итоги», её нет или просто не видно?
(30) А доделать тяжело под все? 😀
Я-бухгалтер. Мне понравился отчет.Спасибо!
7.7 ЖИВА!
(34) Да куда она денется? 🙂
(34) Подозреваю Олежа, что еще долго продержится. Вот мои жлобятся на 8-ку — видимо придется на 7-ке до пенсии кувыркатся.
(35) 7.7 ! Она еще себя покажет !
😮 мда интересно получается 738 скачивавших, а только 44-м помогло и поблагодарили.
(38) ты же сам написал что в (0)
бооооольшущее спасибо!!!!
Спасибо!!! 😉
Очень помог.А то уж в ручную собрались выбирать, где НДС включен в стоимость материалов.
Еще раз спасибо.
Благодарю за обработку, т.к. еще не все перешли на 8-ку. Думаю еще не один раз скачают.
Спасибо, будем смотреть. Может в хозяйстве пригодиться.
Забыл добавить : пользуюсь этим отчётом с давних времен, ОЧЕНЬ полезная вещь : оформление вообще супер !
Для простого менеджера незаменима. Не надо программёров просить создать какой-либо отчёт по продажам — всё здесь. Если чего нет — универсальный реестр документов + стандартные отчёты + ексель в помощь.
Всем рекомендую !!!
Спасибо. очень помогает в работе простому бухгалтеру.
Большое спасибо! Очень удобная форма!
Ещё раз большое спасибо автору! Можно сказать единственная программа «на все случаи жизни» в бухгалтерии! Универсальная программа! Я, бывший программист, а в настоящем-главный бухгалтер, пользуюсь постоянно. Поставила в меню для бухгалтеров, без проблем пользуются. Можно найти всю подробную информацию по контрагенту: какие выставлены счета и на какую номенклатуры, в 1С вы этого не найдете. У нас, и бухгалтер и менеджер-в одном лице. Для них-это «палочка-выручалочка». Спасибо!