Расшифровка налога на имущество 2024г. (8.2)




Принцип обмена данными из 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='\

33 Comments

  1. adhocprog

    Мегакрутой отчет! )

    Reply
  2. nicknick

    Выдает пустой отчет нет ни первоначальных сумм не расшифровок

    Reply
  3. Staniss

    Спасибо , помогло!

    Reply
  4. nedopro

    Тоже выдает пустой отчет.

    Reply
  5. Горыня

    Спасибки! Бухгалтер в шоке 🙂 Ты мегакрут

    Reply
  6. alex.suhanov1979

    1. Тоже стал выдавать пустой отчет (первые запуски нормально)

    2. Как-нибудь учитывается регистр «Объекты с особым порядком налогообложения» (другой налоговый орган)

    Reply
  7. ValeriyZ

    Выдает пустой отчет. Печаль.

    Reply
  8. Lord_Kingovich

    Выдавал пустой отчет, исправил вывод данных и все работает.

    Reply
  9. belochkaNN

    Тоже вопрос про регистр «Объекты с особым порядком налогообложения». А в остальном — всё здорово!

    Reply
  10. elrey

    В рабочей базе на SQL работает.

    Выгрузил базу, загрузил в тестовую в файловом варианте — отчет пустой.

    Базы абсолютно одинаковые, только одна на SQL, вторая на файлах.

    В чем может быть проблема?

    Reply
  11. Insanity

    отчет работает. Отдал бухгалтеру, она довольна. Спасибо.

    Reply
  12. DedMoroz1983

    Чем лучше этого http://infostart.ru/public/195907/

    ?

    Как расшифровку сравнивать с отчетом налога на имущество?

    Reply
  13. ffidelite

    Автору, спасибо!

    Но из трех организаций.

    В одной не указано на первой странице Ост.стоим ОС и в т.ч. Ост стоим льготир. имущества.

    Расшифровка есть.

    В другой все пусто.

    В третьей все есть.

    Reply
  14. xTolstx

    Так что, кто-нибудь решил, почему не работает на некоторых организациях?

    Reply
  15. ffidelite

    Поразбирался с отчетом.

    1) Надо убрать из Настройки Ставки налога на имущество из объектов с льготным налогообложением,

    объекты, которые с 2013 года. По ним льгота ставится автоматически уже по дате, что она больше 01.01.2013.

    2) Если у вас для всех объектов указано — не облагается, то отчет будет пустым, т.к. нет налоговой базы..

    Себе сделал доработку, изменил

    Если Выборка.Период = Нпп И Выборка.ОстаточнаяСтоимость <>0 Тогда

    на

    Если Выборка.Период = Нпп И (Выборка.ОстаточнаяСтоимостьЛьготируемогоИмущества <>0 или Выборка.ОстаточнаяСтоимостьОсновныхСредств<>0) Тогда

    3) Налоговая база в расшифровке считается с учетом освобожденных ос, а в шапке уже правильно-без учета.

    Заменил

    ОбластьСтрока.Параметры.НСтоим =Стр[19];

    ОбластьСтрока.Параметры.ЛСтоим =Стр[20];

    ИтНСтоим =ИтНСтоим+Стр[19];

    На

    Если ОбластьСтрока.Параметры.ОсвИм = Истина тогда

    ОбластьСтрока.Параметры.НСтоим =0;

    Иначе

    ОбластьСтрока.Параметры.НСтоим =Стр[19];

    ИтНСтоим =ИтНСтоим+Стр[19];

    КонецЕсли;

    ОбластьСтрока.Параметры.ЛСтоим =Стр[20];

    Reply
  16. ffidelite

    Еще, отчет не разбивает на несколько льгот, если кроме 2010257 (ОС с 2013 года) , есть еще какие-нибудь.

    Reply
  17. ffidelite

    Конечно, если бы ТС доработал для нескольких льгот, было бы супер.

    Reply
  18. sebum

    (15) ffidelite, Спасибо! Исправления помогли. Отчет заработал.

    ТС видимо самоустранился от отчета.

    Reply
  19. galagala

    Добрый вечер!

    Скажите, пожалуйста, как увидеть расшифровку налоговой базы по налогу на имущество? Расчет вижу, расшифровку — нет.

    Reply
  20. galagala

    Спасибо, уже нашла.

    Reply
  21. suvolod

    столкнулся с тем-же. что уже было у многих здесь: выводится пустой отчет. Самое смешное, что пустым он выводился только на машине моего клиента, а на моем домашнем ПК, после простого копирования базы, отчет нормально отрабатывал и выводил данные. Детальный анализ показал, что в одном из запросов отчета происходит неправильная выборка данных… точнее, проблема связана с неправильной сортировкой выбираемых данных. Вероятная причина, скорее всего, связана со старым релизом платформы 1С на машине клиента. У меня на ПК стояла последняя версия 1С (8.3.6.2100), а у клиента — 8.3.4.496. Обновил платформу клиента — и отчет стал нормально заполнятся..

    Reply
  22. Черный Плащ

    отчет хороший, но как исправить не показывает на клиент серверном варианте а вот на файловом все норма

    Reply
  23. Светлый ум

    формируется только ставки 2,2. А как со ставками 1% и 0% сформировать?

    Reply
  24. Светлый ум

    Не сошлись цифры с декларацией.

    Вопрос решил этим отчетом:

    http://infostart.ru/public/349853/

    Reply
  25. greenlist

    пустой отчет. Все остальные советы не работают! Запрос неверно составлен. Дело в льготах. Нужна сортировка по периодам, иначе проскакивает перебор по циклу. Нужно в запросе (примерно строка модуля 1595) прописать

    |УПОРЯДОЧИТЬ ПО

    | Период

    Reply
  26. a-m-gv

    В отчет за 2015г. гр. Налоговая база попадают ОС, приобретенные в 2016г.

    Reply
  27. MyLoginXXX

    Без этого отчета ошибки бы не нашли, огромное спасибо!

    Reply
  28. DedMoroz1983

    Что-то в этом есть.

    Reply
  29. Sergyhmao

    регистр «ставки налога на имущество по отдельным ОС» учитывается в данном отчете?

    Reply
  30. COMPER

    Перестал работать этот отчет с обновлением бухии 2.0.66.29.

    Пришлось подправить несколько полей.

    Спасибо, полет продолжается.

    Reply
  31. kinliliya

    Отчет перестал работать на последних версиях УПП, у кого-нибудь есть исправленный вариант?

    Reply
  32. a-m-gv

    под БП исправила. Под УПП не проверяла.

    Reply
  33. Consit

    Скачивал в начале июля — отчет не работал на актуальном (2.0.66.32) релизе БП2.

    Начал исправлять, но в итоге забил и вставил в обработку алгоритм расчета версии 2017г (из свежей декларации).

    Все равно на некоторых базах выдавал пустой экран. Оказалось это в случае регистрации ОС в нескольких ИФНС.

    Поправил. Результат в https://infostart.ru/public/661684/.

    Должно работать для 2-го раздела декларации на свежих релизах БП с периодом от 01.01.2017г.

    Reply

Leave a Comment

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