<?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) b-dm,
Конфигурацию КОРП не видела, что в ней существенно другого?
Пробовали отчет сформировать на вашей базе? неверно формирует?
Нужна конфа с данными — чтобы разработать для КОРП.
Проверила отчет при наличии обособленных подразделений — пока в отчете нет отбора по обособленным подразделениям!
Постараюсь разобраться и сделать!
Нужно уточнение от тех, у кого есть обособленные подразделения:
при наличии обособленных подразделений, отчетность подается в разрезе Организация/КПП? или Организация/ОКТМО?, или Организация/КПП/ОКТМО?
Пока понимание такое, что у обособленного подразделения другой КПП. Не может быть обособленных подразделений с одинаковым КПП, но разными ОКТМО. Верно?
Добавила отчет с учетом обособленных подразделений. Обособленное подразделение идентифицируется по ОКТМО и КПП. Надеюсь верно?
Кто сдает отчетность по обособленным подразделениям — скажите — верно я мыслю?
(5)
(6) Спасибо!
(7) спасибо за отчет. Есть некоторые «хотелки» по доработке. Позже отпишусь.
спасибо! буду ждать ваших замечаний!
(9) да у меня не замечания, а скорее хотелки.
И так:
например 17 числа начисляем разовую премию сотруднику, по которой НДФЛ должен быть перечислен не позднее след. дня и концом месяца начисляем ЗП.
В 6-НДФЛ оба этих начисления увидим в одном блоке: дата получения дохода — конец месяца, срок уплаты — след. день, хотя они должны быть в разных блоках, т.е. необходимо всегда помнить про премии.
Хотелось бы, чтобы из отчета данная ситуация была видна.
Ну и полноценная расшифровка, которая давала бы возможность открыть документ из таблицы в «Расшифровка фактического перечисления НДФЛ» не помешала бы.
(10) Спасибо за замечания.
Про премии — вы хотите чтобы этот отчет выделял премии где? В таблице с «расшифровкой данных 6-НДФЛ Раздел 2»? Так ведь это данные вашего отчета — 6-НДФЛ — который вы сдаете/сдали в налоговую. Как у он у вас сформировался или как вы его откорректировали — такие данные и будут браться для анализа.
Смысл данного отчета в том, чтобы до сдачи отчета 6-НДФЛ проверить отчет так, как это сделает налоговая, это проверка показывает есть ли у вас недоплаты — по которым вам потом налоговая выставит штраф 20%. Данный отчет преследует именно эту цель! И при выявлении недоплат — можно ведь подправить даты удержания налога — подогнать под даты перечисления налога. А может быть это просто неверно заполнен отчет — и ошибка визуализирована.
Расшифровку перечислений НДФЛ — думаю возможно сделать. Вопрос — это реально нужно? Для чего? У нас документы по перечислениям НДФЛ в ЗУПе формируются автоматически при проведении платежа в 1С.Бухгалтерии. Для данного отчета важны только дата платежа и сумма. Т.е. маловероятно, что что-то нужно править в документах «Перечисление НДФЛ».
Поделитесь — как вы используете этот отчет…
Выложила версию отчета 1.2 — добавлена расшифровка документов «Перечисление НДФЛ в бюджет».
Если вы скачали предыдущие версии отчета, тогда можете сами внести одно исправление:
Открыть модуль объекта.
В процедуре «Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)» найти строку кода:
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных);
заменить на:
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);
Все!
(11) Да, вы правы, пытались использовать этот отчет не по назначению.
(12) Спасибо, что добавили расшифровку. У нас документы по перечислениям НДФЛ в ЗУПе автоматически не формируются и возникает человеческий фактор, иногда требующий корректировок.
(13) buKIN, понятно!
меня в этом отчете смущает тот факт, что в данный момент в нем никак не учитывается сальдо (недоплата/переплата) на начало периода…. думаю: откуда правильнее брать эту цифру… так как, из опыта, сальдо по 68 счету в Бухгалтерии, сальдо по налогу к перечислению в ЗУПе, и сальдо по организации в самой налоговой — обычно не идут — причем могут быть разными все три цифры…. вот. А чтобы сделать проверку — как это сделает налоговая (для чего и предназначен отчет) — надо знать сальдо налоговой…. а знают ли его наши бухгалтера???? сомневаюсь…. либо сделать поле — для ввода сальдо вручную? — введут какое нужно?
какие мысли/предложения?
И все-таки нюанс есть: при наличии корректирующего отчета для анализа выбирается первичный.
(15) я правильно понимаю: есть первичный отчет 6-НДФЛ, например, за 1 квартал. Затем сформировали корректировочный отчет 6-НДФЛ также за 1 квартал. В моем отчете выбираете корректировочный отчет — но проверяется все равно первичный?
(16) да, именно так.
(17) buKIN, проверила — у меня все корректно — при выборе корректировочного отчета — в отчете анализируются данные именно корректировочного отчета. в частности «Расшифровка данных 6-НДФЛ Раздел 2».
При выборе отчета не видно никакой информации — первичный это отчет или корректировочный… может вы ошибочно выбрали первичный?
(18)Что-то я все перепутал, извиняюсь.
Но фишка оказалась намного глубже:
1. Похоже ситуация обратная: при наличии корректировочного отчета первичный проанализировать невозможно.
2. Даже после удаления корр. отчета (не пометки на удаление, а именно удаления) в анализ подтягиваются его данные (как такое возможно?). Ситуацию исправляет только кнопка «записать» в первичном отчете.
3. После повторного создания корр. отчета его данные не подтягивались до нескольких нажатий кнопки «записать».
Теперь все нормально.
Короче я не знаю, что у меня происходит в базе. Не обращайте внимания. Буду наблюдать. ))))
(19) buKIN, Хорошо! О проблемах — пишите!
(19) buKIN, ваша проблема про первичный и корректировочный отчет не дает покоя.. может быть есть какой-то нюанс, который у меня в отчете не отслеживается… сегодня потестила отчет еще раз… тоже обнаружила какие-то странные цифры (сверяла итоги по удержанному НДФЛ в моем отчете и с 1 разделом 6-НДФЛ)… но потом разобралась в чем в моем случае проблема: в 1 квартале мы перечисляли НДФЛ за декабрь 2015 — эта сумма отражается во 2 разделе, но не попадает в строку 070 «Сумма удержанного налога» в Раздел 1 6-НДФЛ, т.е. я некорректно сверяла итоги… может быть и вы также проверяли?
(21) не мой вариант, к сожалению.
(22) buKIN, у вас проблема осталась?
(23) больше пока не экспериментировал.
подождем — может быть кто-то тоже проблемы обнаружит…
с помощью этого отчета можно проверить строку 060? есть подозрение, что отчет показывает неверное количество сотрудников
(26) KoldunOne, Данный отчет проверяет данные Раздела 2 отчета 6-НДФЛ — так как это делает налоговая. В чем весь смысл 6-НДФЛ — контроль своевременности перечисления НДФЛ в бюджет. Налоговая проверяет данные раздела 2 и ваши фактические перечисления НДФЛ в бюджет. Если вы не вовремя перечислили налог — вам начисляется штраф. Данный отчет позволяет увидеть — есть у вас несвоевременное перечисление НДФЛ, и если есть — можете подкорректировать Раздел 2.
Данные строки 060 — Количество физлиц получивших доход — здесь ключевое слово «получивших доход». В данном отчете нет информации о доходе вообще, соответственно и нет возможности рассчитать Количество физлиц получивших доход = 060.
Поясните, в каком учете у вас рассчитывается неверное количество сотрудников? Попробуем разобраться с вашей проблемой.
Появилось такое письмо:
Как заполнить 6-НДФЛ, если в отчетном периоде организация возвращала работнику излишне удержанный налог?
В письме от 13.10.2016 № БС-4-11/19483@ ФНС России разъяснила порядок заполнения расчета 6-НДФЛ в следующей ситуации. В отчетном периоде работнику выплачен доход в сумме 200 000 рублей, с которого удержан налог в сумме 26 000 рублей. В этом же отчетном периоде организация возвратила работнику НДФЛ в сумме 1000 рублей (который был излишне удержан с дохода в предыдущем отчетном периоде). Поэтому в бюджет перечислен налог за минусом возврата, то есть 25 000 рублей.
Налоговое ведомство отметило, что раздел 2 расчета 6-НДФЛ в рассматриваемом случае заполняется без учета возврата налога, то есть следующим образом;
• по строкам 100 – 120 указываются соответствующие даты;
• по строке 130 – 200 000;
• по строке 140 – 26 000.
Что касается суммы НДФЛ в сумме 1000 рублей, которая возвращена работнику организацией, то она отражается по строке 090 раздела 1 расчета 6-НДФЛ за этот же отчетный период.
Не согласна с этим письмом. Как тогда налоговая будет проверять своевременность перечисления НДФЛ? Сумма удержанного налога будет 26000, и срок перечисления у нее будет конкретный. а перечислим мы фактически 25000. А 1000 — как налоговая отследит?
Может быть налоговая будет анализировать сколько итого не уплачено и сверять с 090? Странно…
Добрый день!
Анализ отчета 6-НДФЛ в разрезе платежей в бюджет РФ , в котором сопоставляются 6-НДФЛ и платежные поручения из Бухгалтерии 2.0(3.0), выводятся возможная пеня и штрафы на каждый отчетный день.
В ЗУП 2.5 нет привязки документов перечисления в бюджет РФ к платежным поручениям, поэтому, по мотивам этого отчета
(и истерики нашего бухгалтера по расчету ЗП после вызова в ИФНС), а также с использованием некоторых полей формы отчета (надеюсь автор простит меня за это) разработал отчетскачал — все версии пишут одинаково
Выбран неверный регламентированный отчет! Выберите отчет 6-НДФЛ!
указываю имено его — как-то можно по быстрому исправить
Попробую исправить. С 2.5 давно не работала… У вас какая версия 2.5?
(30) какая у вас версия 2.5?
Вопрос как специалисту по зарплате
6-НДФЛ Регламентный отчет
до конца 2017 расшифровка работает в отчете
затем нет
посмотрел по обновлениям — обновления данного отчет с апреля 2018 года
не было
(33) ваша версия программы еще обновляется? или снята с тех поддержки?
Есть версия, что если конфа снята с тех поддержки, то 1С могла специально убрать расшифровку — чтоы народ все-таки переходил на следующую версию. Для ЗУПа же бы официально заявлено, что сдать можно только отчетность за 2017 год. И все. Это как версия.
(33) а вообще — надо смотреть код…. Если отчет 6-НДФЛ заполняется, то, по идее, расшифровка тоже должна работать…
(35) я же обьясняю —
1. программа с техподдержки не снята
2..За 2016,2017 нормально все формируется
как-только пытаюсь в 2018 выполнить те же операции
выдает что нет расшифровки
О как «Для ЗУПа же бы официально заявлено, что сдать можно только отчетность за 2017 год.»
(36) у вас отчет за 2018 год формируется? Попробуйте обновить копию базы и посмотрите будет ли формироваться отчет и расшифровка
Чем я сейчас и занимаюсь — у нас не типовая — концы потеряны
(39) когда сильно переписанная конфа и обновить сложно — я делаю так: обновляю копию базы и в ней формируем отчетность. (я вам уже ранее о таком варианте писала). В этом случае обновления, не так важно перенести все свои изменения.
я примерно так и сделал — расшифровка заработала
(41) замечательно!
спасибо за понимание
(43) 🙂 всегда пожалуйста!