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




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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 не будет опубликован. Обязательные поля помечены *