Налоговая ведомость 2010 (учитывает скидку по матпомощи и предельную величину базы для начисления страховых взносов 415000)




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?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='\

55 Comments

  1. Pilot741

    оу, спасип за отчетик

    Reply
  2. Tyndra

    в отчете ошибочка., тоесь описочка. а так спасип.+

    НеВзимать = Сотрудник.НеВзниматьВзносыПФРиФСС.Получить(ДатаМесяца);

    НеВзимать = Сотрудник.НеВзиматьВзносыПФРиФСС.Получить(ДатаМесяца);

    Reply
  3. Anna_1978

    ТаблНалоговФОТ.УстановитьЗначение(НомерТекСтроки,Колонка,Результат);

    {C:DOCUMENTS AND SETTINGSАДМИНИСТРАТОРРАБОЧИЙ СТОЛНАСТРОЙКА2007EXTFORMSTAXSH2010.ERT(2328)}: Номер за пределами значения!

    Reply
  4. rimma_n

    Спасибо! у меня без ошибок работает

    Reply
  5. kudina

    Спасибо Вам за отчет. Очень удобный, т.к. наглядный.

    Но у меня с ошибками: обложилась налогами мат. выгода по займам (кредитам), и премия за счет прибыли (взносами в ПФР) (((( И ещё облагаемая база по ФОМС Итого неправильно 😥

    Reply
  6. melenaspb

    (5) Поставьте ВР «Мат. выгода по займам (кредитам)» тип дохода для страховых взносов «не является объектом налогообложения».

    А насчет премии за счет прибыли я вообще бы еще подумала. «За счет прибыли» -это все из налогового кодекса, который к страховым взносам не имеет отношения.

    А так , конечно, отчет очень сырой, я не проверяла многие вещи, мне надо было только что-бы правильно по-месячно отразились суммы за переделом в 415000.

    Reply
  7. kudina

    Понятно, спасибо. Мат. выгоду подправлю. Ну классно что из Вашего отчета можно взять суммы свыше предела и разбиение по годам 🙂

    Reply
  8. rr-irina

    Мне показалась, что не верно отразились суммы за переделом в 415000, т.к. в законе написано: Суммы, начисленные работникам, представляют собой базу для исчисления страховых взносов. Ее определяют отдельно по каждому работнику нарастающим итогом с начала расчетного периода (календарного года) по истечении каждого календарного месяца.

    У меня каждый не получает столько! Может я не правильно закон читаю! 🙁

    Reply
  9. melenaspb

    (8) У меня каждый тоже столько не получает, только один генеральный директор.

    Я считаю превышение по каждому работнику отдельно.

    Если у человека оклад 150000=, то в марте он и перейдет предел в 415000.

    Reply
  10. rr-irina

    (9) У нас бюджет, максимальная зп это у руководителя 26 тыс в месяц, судя по отчёту у меня сумма превышающая предельную величину начинается уже в январе! разве такое может быть при средней оплате в 6-8 тыс?

    Reply
  11. Utjug

    Бухи говорят, что компенсация отпуска при увольнении с 2010-го облагается страховыми взносами.

    Однако в отчете показывается будто по компенсациям страховые взносы не начислялись, хотя в базе расчета взносов компенсация отпуска включена и «тип дохода» выбран «в полном размере».

    Взносы пересчитывались, в карточке учета страховых взносов компенсации есть и взносы с них брались.

    Reply
  12. stepan04

    В базу по ПФР попадает «материальная помошь при рождении (усыновлении) ребенка», а потом эта же цифра учитывается в сумме превышающей предельную величину(т.е. сумма превышающая неправильная), в итоге облагаемая база по ПФР становится правильная, а остальные базы нет.

    Reply
  13. Dima69

    ТаблНалоговФОТ.УстановитьЗначение(НомерТекСтроки,Колонка,Результат);

    {C:DOCUMENTS AND SETTINGSАДМИНИСТРАТОРРАБОЧИЙ СТОЛНАСТРОЙКА2007EXTFORMSTAXSH2010.ERT(2328)}: Номер за пределами значения!

    ошибка выдается при спецрежимах, т.к. в отчете анализируется расчет ПФРНакопительнаяЧастьс2010, а ПФРНакопительнаяЧастьЕНВД — нет аналогично для Страховой части 👿

    Reply
  14. melenaspb

    Попробую проверить спецрежимы, в обычной жизни у меня их нет, надо какую-нибудь базу для примера сделать.

    Reply
  15. gala2009

    Компенсацию отпуска при ув-ии в базе выводит как облагаемую. То, о чем сыр-бор (инф-ция по превышению лимита) в итоговой строке «Суммы, превышающие предельную величину базы для начисления страховых взносов» никакой инфы не выдало, хотя есть. По сотруднику, у которого превысило в тек. месяце лимит, один и тот же вид расчета для ПФР обложен причем полностью (хотя обложилась часть), а по ТФОМС, ФОМС не обложен(база 0), хотя есст-но обложена часть. Единственное, что хорошо, что добавили верный необлагаемый итог (правда без расшифровки), но на него по отчету никак не выйти, так для справки.

    Reply
  16. gala2009

    Вот хочу поделиться сомнениями, осуществимо ли вообще в таком отчете по видам ВР правильно показать начисления по ВР с учетом лимита? Допустим, за месяц у сотра начислений 300т, из них оклад 100т, отпуск 200т. А учитывая лимит с начала года, обложиться у сотра в тек. месяце должно только 80т. Какой должна выйти база сотра по окладу? 80? тогда отпуск 0? или пропорционально суммам ВР? вобщем огород, к-рый городить однако не стоит. В станд. отчете (по ЕСН еще) ведь тоже был лимит в 600т, но облагаемые виды расчетов за месяц выводились полностью, не видя этот лимит, и итоговые суммы были завышены

    Reply
  17. Лёлька

    А у меня выдает вот такую ошибку — е могу понять в чем дело. 🙁

    ТаблНалоговФОТ.УстановитьЗначение(НомерТекСтроки,Колонка,Результат);

    {C:1СPRBASIC_2006EXTFORMSTAXSH2010.ERT(2328)}: Номер за пределами значения!

    Reply
  18. andrey_Gavrilov

    В колонку Расходы за счет ФСС: не попадают суммы пособий до 1,5 лет 🙁

    Reply
  19. Ipse

    (15) ПО поводу облагаемой компенсации отпуска при увольнении:

    Согласно пп. «д» п. 2 ч. 1 ст. 9 Закона N 212-ФЗ не подлежат обложению страховыми взносами для плательщиков страховых взносов, производящих выплаты и иные вознаграждения физическим лицам, компенсационные выплаты (в пределах норм, установленных в соответствии с законодательством Российской Федерации), связанные с увольнением работников, за исключением компенсации за неиспользованный отпуск.

    Таким образом, с 01.01.2010 компенсации работникам за неиспользованный отпуск, выплачиваемые при увольнении, облагаются страховыми взносами в Пенсионный фонд РФ, Федеральный фонд обязательного медицинского страхования и территориальные фонды обязательного медицинского страхования.

    Reply
  20. gala2009

    а, ну хотела сказать выводит необлагаемую, по нулям, что неправильно

    Reply
  21. Arox

    при формировании отчетность на январь выдается ошибка

    ПФР_БазаЗаМесяц = ПФР_База — (ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,2) — ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,3));

    {C:USERSНИКОЛАЙDOWNLOADSTAXSH2010_V2.ERT(2272)}: Номер за пределами

    за февраль и март ошибка не выдается.

    Reply
  22. melenaspb

    (21)Спасибо, исправила. Все время забываю, что у января нет предыдущих месяцев в году.

    Вместо строки 2272

    ПФР_БазаЗаМесяц = ПФР_База — (ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,2) — ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,3));

    можно написать так

    ПФР_БазаЗаМесяц = ПФР_База — ?( Месяц>1,(ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,2) — ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,3)),0);

    Reply
  23. allexx

    Попробовал запустить. Во-первых, по всему предприятию я так и не дождался вывода результата. Тормозит видимо так, что только на ночь оставлять, а по одному человеку выдает ошибку:

    ТаблНалоговФОТ.УстановитьЗначение(НомерТекСтроки,Колонка,Результат);

    Номер за пределами значения!

    Reply
  24. Tyndra

    Привет. Отчетик хороший, но есть маленький недочет. Если в справочнике видов расчета выбрать «материальную помощь при рождении ребенка» и в налоговом учете поставить тип дохода для страховых взносов «материальная помощь при рождении (усыновлении) ребенка, облагается частично» то в отчет суммы не попадают, а если поставить «материальная помощь, облагается частично» то пападают.

    Reply
  25. Tyndra

    (24) что намой взгляд неверно )

    Reply
  26. melenaspb

    (24) Я вручную код дохода выставляла только материальной выгоде по займам(кредитам) — что это не является объектом налогообложения.

    А материальной помощи в глСобратьДанныеДляСтраховыхВзносов явно устанавливается код дохода .



    Если ВР=ВидРасчета.МатПомощьПриРожденииРебенка Тогда

    СоответствиеВРкодамДоходов.УстановитьЗначение(НомерСтроки,2,»МатПомощьПриРожденииРебенка»);

    ИначеЕсли ВР=ВидРасчета.МатПомощь Тогда

    СоответствиеВРкодамДоходов.УстановитьЗначение(НомерСтроки,2,»МатПомощь»);

    ….

    Но это , конечно, справедливо для стандартных видов расчета , уже по умолчанию присуствующих в конфигурации. А для «самодельных » матпомощей — надо проверять.

    Reply
  27. Tyndra

    Спасиб, разобрался. У меня получилось так, я для страховых взносов по Тип дохода для ЕСН по (2009г) убираю «не является объектом налогообложения» тоесть оставляю графу пустой тогда работает как надо.

    Reply
  28. Tyndra

    Народ, а ни кто не пробывал переложить этот отчет под SQL?

    Reply
  29. gala2009

    Начисления и прочие доходы Сумма по виду расчета Страховые взносы и прочие налоги

    ПФР страх. и накопит. ФФОМС и ТФОМС ФСС ФСС_НС

    Компенсация отпуска при увольнении 664 520.72 0.00 0.00 0.00 0.00

    Reply
  30. gala2009

    в отчете «Суммы, превышающие предельную величину

    базы для начисления страховых взносов» 0.00 0.00 0.00

    но расшифровку дает:

    Сотрудник Сумма

    Иванова Светлана Владимировна 201 390.71

    Петров Александр Георгиевич 237 967.32

    Сидоров Иван Михайлович 206 899.20

    Итого: 646 257.23

    Reply
  31. blackjack08

    А кто нибудь её пробовал на инвалидах и на ЕНВД-шниках 😥 ?

    Reply
  32. melenaspb

    (31) На инвалидах и ЕНВД я и не тренировалась еще.

    Я не правильно учитываю ЕНВД или неправильно считаю превышение , суммы ЕНВД попадают у меня в превышение над 415000. Не знаю как правильно отделить общий режим и ЕНВД.

    Вот скажите мне : Если у человека начислений , к примеру, 250000 на общем режиме и 250000 на ЕНВД. У него есть превышение предела? Для определения превышения над 415000 надо складывать начисления по различным тарифам или по каждому тарифу свое?

    Reply
  33. logdog

    1. превышение есть

    2. ЕНВД — только пенсионный, на общим все … скорее всего каждому тарифу своё (государство себя не обманет =)

    пс а под комплексную конфигурацию можно адаптировать отчет?

    Reply
  34. Луна5

    Если в виде расчета не указано ЕСН до 2010 г работает неправильно, для военных работает неправильно в плане оплаты по окладу

    Reply
  35. Serg12

    Спасибо за отчет.

    Добавил от себя:

    стр 1611 глЗаполнитьРазделыНК2009

    стр 1645 Если (Имя = «СВМес3″+МесСНулями)или(Имя = «СВМес4″+МесСНулями)или(Имя = «СВМес5″+МесСНулями)или(Имя = «СВМес8″+МесСНулями) или (Имя = «СВМес9″+МесСНулями)или (Имя = «СВМес10″+МесСНулями)или (Имя = «СВМес11″+МесСНулями)или (Имя = «СВМес12″+МесСНулями)или (Имя = «СВМес13″+МесСНулями) Тогда

    а то когда показывать НДФЛ вычеты не брала…

    Reply
  36. melenaspb

    (35) Спасибо, если честно я НДФЛ и не смотрела вообще — со страховыми бы разобраться.

    (34) Я сейчас, чтобы не путаться, вообще хочу убрать все связанное с ЕСН — отчет будет работать только начиная с 2010 года.

    Reply
  37. Boroda

    Отчёт понравился, но к сожалению, неправильно определяет базу по ФСС и ФОМС: среди начислений есть премия разовая (стандартная), которая «облагается в полном размере». Так вот, в базу ПФР она входит, а в ФСС и ФОМС отчего-то — нет. Из-за этого искажаются и итоговые сумы баз, но сами налоги определяются правильно. Отчего это может быть?

    P.S. Собственно, ответ уже получил: сделал так же, как и (27) — очистил реквизит ЕСН в расчётах, кторые «барахлили», и всё нормализовалось.

    Но, конечно, зависимость от ЕСН нежелательна, поэтому, если будет реализовано, как обещано в (36), то будет просто замечательно!

    Reply
  38. Boroda

    P.S. Собственно, ответ уже получил: сделал так же, как и (27) — очистил реквизит ЕСН в расчётах, кторые «барахлили», и всё нормализовалось.

    Но, конечно, зависимость от ЕСН нежелательна, поэтому, если будет реализовано, как обещано в (36), то будет просто замечательно!

    Reply
  39. Xo66ut

    не учитывает значения записей сторно в журнале расчетов

    Reply
  40. capodastro

    Добрый день!подскажите пожалуйста: а на фсс_нс превышение не распространяется?

    Reply
  41. melenaspb

    (40) Нет, не распространяется. Взносы по НС и ПЗ к страховым взносам, для которых введен предел облагаемой базы 415000 , не имеют никакого отношения.

    Reply
  42. melenaspb

    (39) Исправила немного — теперь должно сторно учитываться, я надеюсь.

    Reply
  43. oleg_k_

    Мат.помощь свыше 4000 при первом получении в году целиком показывает в налоговой базе по стр.взносам. 🙁

    Reply
  44. melenaspb

    (43) Не знаю, я ввожу материальную помощь 10000 — 6000 показывается как облагаемая.

    Надеюсь , вы используете стандартный расчет «материальная помощь»?

    Просто, если у вас для материальной помощи сделаны «самодельные» виды расчета — то этот случай и 1С не отрабатывает , скидка в 4000 при расчете страховых взносов предоставится только по встроенному в конфигурацию виду расчета «материальная помощь».

    Reply
  45. oleg_k_

    Все в порядке, вопрос снят. Матпомощей у нас несколько, все самодельные. В одной из них не выставил «Тип дохода для стр.взносов»=»материальная помощь, облагается частично», после уточнения все заработало правильно. 😀

    Reply
  46. melenaspb

    (45) Вы бы проверили, правильно ли считаются страховые взносы с «самодельных» матпомощей. Если посмотреть глСобратьДанныеДляСтраховыхВзносов, как определяется соответствие ВР и дохода для страховых взносов, то там идет проверка на совпадение вида расчета с предопределенным видом расчета «МатПомощь». А тип дохода для страховых взносов не анализируется.

    Я пробовала вводить собственный вид расчета для матпомощи , и хоть я и указывала в типе дохода для страховых взносов, что это материальная помощь, этот новый вид расчета облагался целиком. Надо править глСобратьДанныеДляСтраховыхВзносов, чтобы взносы считались правильно, хотя может я и ошибаюсь.

    Reply
  47. oleg_k_

    Спасибо за совет, проверил еще раз по цифрам и заглянул в модуль процедуры. Действительно, предопределенная «МатПомощь» обрабатывается отдельно. Но несколькими строками ниже есть еще одна проверка «ИначеЕсли ВходитВБазу = 1 «. Вот тут проходят «прочие» матпомощи. Для верности просмотрел таблицу «ДоходыВычетыНалогиСотрудников», там они есть в нужных колонках. Так что все в порядке, еще раз спасибо. 🙂

    Reply
  48. Nicholas

    Убрал из отчета виды расчета, у которых код дохода по ЕСН — «НеЯвляетсяОбъектом». Бухгалтеры довольны.

    Правда не понял почему используется функция КодДоходаПоЕСН() когда речь идет о страховых взносах, но т.к. отчет выдает нужный результат, заморачиваться этим не стал.

    Reply
  49. constspb812

    Добрый день! можно ли сделать разделение ФФОМС И ТФОМС на основной тариф и инвалидов — вроде как они тоже должны делиться. И по ФСС_НС разделение баз также было бы не лишним, так как при нынешней схеме база по ФСС_НС не совсем логична, хотя и результат в итоге правильный. Еще очет не учитывает иностранцев у которых в карточке указано что не взимать страховые взносы (у них только ФСС_НС) и база завышается…

    Reply
  50. LarMa

    Добрый день! Отчет неплохой, но вот есть еще одно упущение… У тех «договорников», у которых Оплата по договору заводилась как перерасчет за предыдущий период , сумма договора не включается в облагаемую базу НДФЛ, хотя сам НДФЛ берется…..

    Reply
  51. b_production

    Отличный отчет! Постоянно пользуюсь. Но надо бы заточить под 2011 год… 🙂

    Reply
  52. Arin

    спасибо!!!

    Reply
  53. didol3

    Спасибо огромное! Отчет — это просто находка для нас. Без него работа расчетчиков была бы тяжелее. 😉

    Reply
  54. b-dm

    Прекрасный отчет , быстро формируется, но ТОЛЬКО если не ставить галочку НДФЛ.

    НДФЛ наступает конец света для компьютера, ПОЧЕМУ ?)))

    Reply
  55. yukol

    Почему-то материальная помощь попадает в ФСС_НС целиком.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *