<?php // Полная загрузка сервисных книжек, создан 2025-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='\
Классная, правда, опасная штука.
К перечню регистров НДФЛ относится еще РН «НДФЛИмущественныеВычетыФизлиц», с их возвратом тоже бывают проблемы
Вот отбор по организациям точно не помешал бы!!!
(2) Спасибо за замечание!
Добавил отбор по организации.
Добрый день!
Отличная обработка мы первый раз скачали ее 13.04.2017г., до изменения ее, эта обработка подходила не только для ЗУП 2.5, но и для 1С Бухгалтерия 2.0. Но к сожалению после переустановки компьютера, файл был потерен. Мы 12.01.2018 скачали его повторно и теперь он работает только в ЗУП 2.5, можете ли вы опубликовать тот файл до изменений для его скачивания?
Заранее будем признательны.
(4) Я завтра проверю на работоспособность в Бухгалтерии 2.0 и исправлю несовместимости.
Спасибо за поддержку!
(4) Исправил ошибку совместимости с Бухгалтерии 2.0, однако проверить результат работы пока не смог.
Проверю, как найду базу Бухгалтерии, в которой ведётся учёт зарплаты.
Спасибо большое! Все работает теперь в Бухгалтерии 2.0.
Может кто объяснит, что это?
{ВнешняяОбработка.ПоискИРедактированиеЗаписейНДФЛ.Форма.Форма.Форма(163)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(42, 2)}: Поле не входит в группу «НДФЛСведенияОДоходах.Организация»
<<?>>НДФЛСведенияОДоходах.Организация,
Запускал в ЗУП 2,5. Почему выходит данная ошибка?
(8) В последнем обновлении была допущена ошибка. Исправил. Обновил обработку на сайте.
В УПП 1.3 работает? Никто не проверял?
По платформе проходит. Думаю, структура регистров та же.
Я проверю УПП 1.3 и напишу.
(10) я проверил на УПП 1.3, работает.
Если проблема возникнет, оперативно исправлю.
Спасибо за оперативность и отчет
Будел ли работать для ЗУП КОРП 2.5.141.1?
(14) да, будет
Добрый день serge_msk, у нас есть вопросы по обработке. Скажите, пожалуйста, что означает в обработке на закладке ИТОГО цвета красный, фиолетовый? На закладке НДФЛ Расчеты с бюджетом не вижу выписок? Может быть у вас есть подробная инструкция по этой обработке?
(16) Добрый день, закладку ИТОГО я сделал в тестовом режиме для проверки соответствия исчисленного, удержанного и перечисленного НДФЛ в разрезе сотрудников и месяцев. Красный — ошибка, фиолетовый — предупреждение. Однако, это условное разделение т.к. не производится глубокий анализ прохождения сумм налога. Налог может быть начислен в одном месяце, удержан и перечислен в другом. Так что надо смотреть в динамике.
ошибки и предупреждения появляются в случае, если исчисленный налог не совпадает с удержанным или перечисленным.
На закладке НДФЛ Расчеты с бюджетом должны быть выписки, т.к. именно при проведении этих документов ЗУП 2.5. регистрирует удержание налога. проверьте, если ли у вас выплаты и в каком периоде, проведены ли документы.
Как раз для такого рода проверок и делалась обработка. Документы могут быть, данные в документах могут присутствовать, а записи в регистрах могут отличаться от документов по тем ли иным причинам. Частая причина — проведение документов не в хронологическом порядке, либо ошибки в более ранних периодах. Это помогает избежать ошибок в 6-НДФЛ, т.к. она составляется именно на основании записей в регистрах.
Как раз в обработке можно оперативно проконтролировать корректность записей в регистрах НДФЛ в разрезе сотрудников и выявить ошибочные документы.