<?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Ц не парится по этому поводу?
Думаю, не ошибусь, если поблагодарю уважаемого Арчибальда от имени всех бухгалтеров.
Спасибо, спасибо, спасибо. 🙂 😳 🙂
(3) Предприятие само утверждает форму регистра, есть только перечень реквизитов, которые обязаны присутствовать. Я форму взял у Камина — они, в отличие от 1С уже выпустили релиз зарплаты с регистром.
Несомненный плюс. Благодарю Арчибальда за своевременную
разработку. 😀
Теперь актуальна версия 2.1. (файл RegNDFL_1.ert)
Версия 2.3: работает как на Бух 523, так и на УСН 179.
Респект и уважуха! только плюс! спасибо огромное!
Можно бросить вер.2.3 на мыло?
(9) Да без проблем, было бы мыло.
сенкс заранее. мое мыло taw_1962 собака mail точка ru 😀
Внимание! Новая версия!
а это нормально, что в п 2.9 вычеты не подставляются?? ❓
(13) Похоже, имеется в виду п. 3.1.
Туда должны попадать вычеты с выплат, не относящихся к оплате труда — вычеты из стоимости подарков и т.п.
(14) — При заполнении дивидентов, считываемых из карточки сотрудника по 1ндфл (обработка Registr_4.ert),
помесячно считывается всё, но почему-то для выгрузки в печатную форму передаётся только первый месяц начисления.
Потому, вместо перечня месяцев начисления, получается одна строка.
Пока ещё не успел посмотреть, почему, — просто успел заметить, что все ставки, кроме дивидентов, заполняются верно .
(15) Я вообще-то подразумевал, что дивиденды выплачиваются однократно, по результатам годового собрания акционеров. Поэтому в форму вставил дату их выплаты.
(16) — В общем случае это не так…. — дивиденды могут быть итогом чистой прибыли месяца, квартала, полугодия, года…, а так же — выплачиваться порциями на основании прибыли прошлых лет, то есть — выплаты могут быть распределёнными по периоду, потому фиксировать их на одну дату — неверно…
http://www.tls-cons.ru/news/aktualLetters/2009/at5.html
— читаем пункт «Сроки и порядок распределения и выплат дивидендов акционерам (участникам) общества»
Ну и логически можно представить (я так думаю) — зачем по дивидендам в карточке 1ндфл задействованы 12 месяцев года? — Если бы было так, как предполагалось и никак иначе — дивиденды будут выплачены концом года, одной суммой, тогда не надо было бы оставлять 12 свободных полей.
p.s.
По ходу своего просвещения о дивидендах, узнал, как они правильно пишутся… 😀
Привет, Арчибальд! мона скинуть новую версию на мыло? Снова ставлю плюс…Респект…
(18) Не вопрос…
Еще бы увидеть тот плюс 😮
07.04.2011. Провел углубленное исследование 1С-ной процедуры СобратьДанныеОДоходахСотрудника(). Выяснилось, что она работает правильно лишь для доходов, отражаемых в 1-НДФЛ нарастающим итогом, т.е. по ставке 13(30)%. По «разовым» доходам, именно, дивидендам 9(15)% и остальным, по ставке 35% процедуру пришлось переделать.
Выложил версию 4.2. Первый вариант больше на поддерживается.
(20) — Арчи, у меня было точно так же — разбирал код НачисленияЗП в Бухгалтерии и пришёл к тому же выводу,
http://infostart.ru/public/82633/
в результате и получилась переработанная версия начисления НДФЛ с разделением по ставкам в
🙂
(21) Потому я эту ссылку и вставил в публикацию 😉
😀
ПОТРЯСАЮЩИЙ ОТЧЕТ!!! ПРЕКЛОНЯЮСЬ!!!!!
P.S.
прошу простить за бред, который посмела Вам написать в личку
подстроила 1С-ку и ПОЛУЧИЛОСЬ!!!!
тысяча извинений (чайник-бух что с меня взять)
Спасибо автору! Только вот почему-то платежки все-таки не попадают в отчет! В процессе формирования регистра появляется сообщение «Платежи за 1-ый месяц не оформлены! Начислено 27950, заплачено 0» и так по всем месяцам. Платежные поручения (налоговые) все есть. В чем может быть проблема?
(24) Платежки отбираются по двум признакам:
1. Это должно быть перечисление в бюджет, т.е. сформировано по соответствующей кнопке с указанием кода периода платежа
2. В тексте назначения плажежа должен присутствовать текст «НДФЛ».
Надо было как-то отделить нужные платежки от остальных. По-моему, условия отбора не очень обременительны.
(25) Добавь этот абзац в описании для большей ясности у пользователей!
(26) Да он там есть изначально. Сейчас вот красным цветом выделил.
Спасибо за ответ. Да, все получилось. У меня на самом деле в назначении платежа было написано «Налог на доходы физических лиц», изменил на «НДФЛ» — регистр стал формироваться правильно. Только, мне кажется, этот текст:
«Платежки отбираются по двум признакам:
1. Это должно быть перечисление в бюджет, т.е. сформировано по соответствующей кнопке с указанием кода периода платежа
2. В тексте назначения плажежа должен присутствовать текст «НДФЛ«.»
нужно указать и для Второго варианта, так как Первый вариант больше не поддерживается. Спасибо!!!
А у меня не формирует ни одной справки. Выводится
«Данных о доходах за 2011 год не обнаружено»
А данные есть.
(29) А 1-НДФЛ заполнена? Данные оттуда берутся.
Извините, у меня уже 524 релиз там нет 1НДФЛ. Как мне быть?
(31) Там зато регистр есть. Не знаю, правда, насколько он рабочий. А вместо 1-НДФЛ — Корректировка данных по НДФЛ.
Есть вариант, чтобы работали параллельно мой вариант и вариант 1С. Придется только пару строк поменять в 1_НДФЛ (его не убрали, просто переместили в формы прошлых лет)
Заполняю и сохраняю «Корректировка данных по НДФЛ» и всеравно ничего не работает. А регистр это только печатная форма.
1-НДФЛ в формах прошлых лет заполняет только 2010 год.
(34) Вот если его подправить, он будет с последующими годами работать.
Я однако собираюсь опубликовать регистр для 524 релиза. Тот, что там есть, тупо ставит Перечислено = Начислено, а платежки вручную ставить предлагает.
(33) Еще надо перепровести закрытие месяцев и, возможно, начисление ЗП.
Новая версия 4.3 позволяет работать с последующими релизами Бух и УСН, куда 1С вставила свой вариант налогового регистра, а 1-НДФЛ «спрятала».
Может быть, не в тему, но…. Кто-нибудь пробовал формировать в 524 релизе справки 2-НДФЛ за 2010 год? При правильной общей сумме дохода неправильно формируются налоговая база,налог исчисленный, удержанный — суммы увеличиваются более, чем в 5 раз!!! . Только у меня или у всех так? За 2011 год справки 2-НДФЛ в части налоговой базы, налога исчисленного, удержанного формируется правильно, но перечисленный налог в справку не попадает.
А встроенный в 524 релиз налоговый регистр так и не показывает платежные поручения… Спасибо автору настоящей обработки!!!
(38) В тему, в тему. Если бы 524 релиз нормально работал, не пришлось бы мне извращаться.
(38) — По этому поводу уже писал на форуме 1С:
http://forums.kuban.ru/showthread.php?t=1052634
Повторю здесь:
При формировании отчета СправкаПоНДФЛ, с выбором 2010г, попадаем на ошибку базы дохода.
Ошибка возникла при переадресации модуля Функции глСобратьДанныеДляНДФЛ из СправкаПоНДФЛ 523 релиза в функцию глСобратьДанныеДляНДФЛ2010 Глобального модуля 524-525 релизов в части:
Резидент=?(СтатусНеРезидента=1,2,1);
— найдите эту строку в глобальнике и замените на
Резидент=?(СтатусНеРезидента=1,1,2);
В УСН релизов 180-181 такой ошибки нет.
а для Комплексной конфы нет случайно? очень нужно!!!
(41)
В Комплексной зарплата сделана как в ЗиКе. Это у зарплатчиков надо спрашивать, я же на ЗиК посмотрел однажды, году в 99 — и больше смотреть не захотелось.Виноват, неправ.
Сейчас посмотрю.
+(41) Посмотрел. Все-таки слишком большая разница…
+
Сможете сделать для комплексной? Буду очень признательна.
(44) Надо подумать…
Подскажите пожалуйста куда именно пристроить файл Rrg524_4?
(46) Например, в ExtForms — тогда вызывать через Сервис — Допвозможности. Или в любом месте, и вызывать через Файл — Открыть.
Вопросик — дата выплаты дохода ставится последний день месяца, а если я зарплату за январь выплачиваю 07.02.11? он не может ставить реальную дату выплаты, так как налоговики будут смотреть дату выплаты дохода и дату перечисления НДФЛ.
и еще не могу понять почему у некоторых сотрудников он не видит дохода? все у всех сделано одинаково, а регистры через одного выдает!
УСН 180 редакция
первый вопрос снимается, увидела звездочку 😳
(49) 1_НДФЛ для всех сделан?
сделана корректировка данных по НДФЛ
видно когда была 179 редакция, у некоторых людей была сделана 1-НДФЛ и теперь только по ним выдает регистр
Плюсовала. И буду. Весьма достойная доработка. Мне лично нравится больше, чем типовая 1С-ная.
Это да, 1С каждый месяц дорабатывает-дорабатывает свою, в каждом релизе изменения.
Автору спасибо. после небольшой правки под себя использую на своей работе
Доброе время суток. Обновил релиз до последнего актуального и при формировании карточки 1-НДФЛ столкнулся вот с таким вопросом. Если работник был уволен в Апреле 2010 то сумма накапливалась только до Апреля месяца а остальные месяца сумма начинает дублироваться за исключением колонки ДЕКАБРЬ, она почему-то у меня пустая, это так должно быть или что то я делаю неправильно?
Где же взять этот чудо отчет???
Не выводится: перечислен налог,
не видит платежку !