<?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С написал?
Нет, я думал они здесь на форуме прочитают!
Не знаю что у вас за конфигурация, у нас никаких задвоений НДФЛ нет, хотя длина ОКТМО — 8 символов.
Я же ссылку на целую ветку привел:http://forum.infostart.ru/forum34/topic100041/
у нас ОКТМО 8 символов и все задвоилось(
на партнерском форуме 1с этот вопрос обсуждался, так что 1с в курсе. а так я просто убирала галки по окато или октмо в группировке в настройках отчета
(6) gala2009, когда я тоже так делал, то плыли отчеты за предыдущие месяцы. Я не разбирался правда почему. Но суммы по НДФЛ в отчете оказывались меньше фактически начисленных. Скорее всего на те суммы, где ОКАТО по каким-либо причинам был не проставлен.
отчет не работает
сори а для бухгалтерии отчет этот есть
Все-равно что-то не то. Если группировка без ОКАТО — то правильные суммы, если добавить ОКАТО — суммы уже другие.
(10) horntankur, а зачем группировка по ОКАТО? И за какой период вы формируете отчет?
(9) serg1983, это типовой ЗУПовский отчет, просто немного подправленный.
В бухгалтерии такого отчета нет. В 3-ке есть отчеты «Анализ начислений и удержаний» и «Анализ НДФЛ». А не слышал, чтобы кто-то жаловался, что там задваивают суммы НДФЛ
(11) Формирую за 2013 год. ОКАТО необходимо для контроля уплаты НДФЛ по обособкам. Заменяю ОКАТО на ОКТМО те же неправильные цифры. Вот(
Отчет не работает. Проверил на УПП
В свое время это обработка писалась для ЗУП релиза 2.75. Сейчас в релизе ЗУП 2.5.78 есть удобный 1с инструмент для исправления всяких косяков. Называется «Замена кодов ОКТМО в учете НДФЛ»
Для релиза 2.5.77.2 расчет чуть ли не задваивает ндфл исчисленный, остальное не стал проверять.
(15)
Инструмент только лишь допроводит по полям ОКТМ в регистре за 2013 год документы начисления. И все.
Если в Организации в ОКТМО 8 символов (именно 8 без пробелов в конце) — то получите в регистре вместо ОКТМО: «8 символов» + «/» и 2 символа от начала КПП (всего 11 символов).
так что — это далеко не паначея, и уж тем более никак не «для исправления всяких косяков», не смущайте народ.
(16) MikeLetto,
Там проблема в интерпретации даных в СКД. А править 4 тыс строк запроса основного — как-то не хочется.
(12)
Структуру вывода отчета подправили?
Как дела с отчетом. Есть ли какая-то информация, когда отчет будет исправлен?
работает, но отчёт кривой конечно изначально
Взносов ОПС с 2014 г. нет в отчёте !!!