<?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='\
Ведомость нчислений
ведомсоть
для Бухгалтерия
Автор, в коде то же самое? Т.е. перед запуском сделать проверку синтаксиса и поправить опечатки и ошибки?
Да, и хотелось бы приложенных скриншотов.
ни одна цифра не вышла
я в скриншоте ни чего не вижу — очень мелко!! можн по крупнее?
в ЗУПе не работает. 😥 может неправильно присоединяю. ❓
(4) Работет только в Бухгалтерии предприятия
(2) Данные по начислениям беруться из бух. итогов т.е. должен быть проведен документ отражение зп в регламентированном учете, данные по налогам беруться из соответсвующих регистров т.е. должен быть рассчитан и проведен документ Рассчет страховых взносов.
P.S. данные за прошлые года не будут выводить налоги с ФОТ т.к. отчет ориентирован именно на Страховые взносы не на ЕСН 😉
(1) А ты зпусти и посмотри. Очепятки это не порок, или ты корректором работаеш? 😀
все есть. не заполняется
а! не надо выбирать подразделение
(9) умничка красавица
Слушай пользовался твоей обработкой, всё было нормально, обновил конфигурацию, хотел распечатать отчёт, и увидел, что кроме НДФЛ и сумм начисленных нет ничего ЕСН и ПФР стали пустыми за любой период. Я конечно понимаю, что это не твоя проблема, и там что-то намутили 1С-ники, но если не трудно глянь пожалуйста. Спасибо.
Р.S. Бухгалтерия 2.0.24.10 платформа 8.2 до обновления на 2.0.24.10 всё работало идеально
Пользуюсь постоянно. Супер
Дмитрий, здравствуйте!
Ну посмотри пожалуйста обработку, на самом деле всё работает если есть общий режим, а если есть вменённка, то начисления ФФОМС, ТФОМС и ФСС не показывает начиная с бухгалтерии 24.10 там появидись ФФОМС ЕВНД и так далее в отчёт они не выводяться
13. Сейчас нет времени — на самом деле там просто надо подправить запрос и все будет в шоколаде.
У меня мозгов не хватило, а скоро отчёт, но раз уж нет времени, будем ждать. Спасибо. Если не трудно, когда подправишь напиши в личку