Расчет страховых взносов 2024. 1С: ЗиК 7.7, релиз 363




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

26 Comments

  1. irina_ph

    (0)Скажите а как на счет переходящих больничных — они тоже не попадают в общую базу

    Reply
  2. o'neill

    Теперь, да.

    Reply
  3. leosoft

    А должны попадать!

    Reply
  4. o'neill

    (3) Леонид, нормальные б/листы всегда попадали в отчеты. Ирина не верно формулирует в данном сообщении свою проблему, с которой она столкнулась. Дело не в переходящих больничных, а в сторнировании дохода, облагаемого страх. взносами декабря в январе и отсутствии январских начислений, облагаемых взносами. И у нее отчет «Расчет страховых взносов» сообщает: «Иванов И. И.: облагаемая база отрицательная, сотрудник не включен в отчет!». Что, собственно, и делали аналогичные отчеты с 2010 года: январские отрицательные базы никогда не включались.

    В идеале, в ситуации отрицательной базы в январе, надо сдавать корректировку РСВ-1 (если ее уже сдали), либо отразить уменьшение облагаемого дохода при сдаче годового отчета. И учитывать отрицательный НДФЛ в 6-НДФЛ. Потому что в январе отрицательных страховых не может быть, так как не от чего отнимать.

    На практике, я бы обнулила сторно и учла бы этот минус при первом положительном начислении: в феврале или марте. А до тех пор база = 0.

    Reply
  5. user734221

    Не попадают в отчет уволенные сотрудники, которым производились выплаты.

    Reply
  6. AlexDaewoo

    Добрый день, а в вашем отчете попадают авторские вознаграждения и договора подряда? Если да, то скачаю и отплюсую)

    Reply
  7. o'neill

    15/04/2017 Добавлена версия 3

    Физические лица, получившие вознаграждение по авторским договорам и договорам ГПХ, а также физические лица, получившие доход, но не являющиеся сотрудниками организации в отчетный период не входили в численность «Количество застрахованных лиц» и «Количество физ.лиц, с выплат которым начислены страховые взносы».

    Кто скачал версию 1 и 2 — могу выслать измененный отчет.

    Reply
  8. o'neill

    (6)Да, попадают. Сегодня еще поправила, чтобы физ.лица не сотрудники, получившие доход, попадали в численность.

    Reply
  9. o'neill

    Обманула. Договорники в предыдущих версиях уже попадали в численность.

    Reply
  10. Dimanchi_

    Скачали вроде все считает )) спасибо, а как в xml выгрузить для отправки в налоговую?

    Reply
  11. o'neill
    Reply
  12. AlexDaewoo

    (11)

    даже ругается на копейки округления

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

    Кстати раздел 1 вроде должен в ФО для 7.7 автоматом заполниться на основании приложения 1 и приложения 2. Не проверял конечно вариант когда данные берутся из ЗИКа, но когда ЗП ведется в Бухгалтерии 7.7, то раздел 1 заполнился только после заполнений приложений 1 и 2, надо проверить еще раз, но кажется это так.

    Reply
  13. o'neill

    (12)

    Да, Раздел 1 заполняется по приложениям 1 и 2. Просто описывала подробно с номерами граф для контроля. Глаз еще не привык к новой форме, и, пока, эти таблицы воспринимаются хаосом.

    На остальных не тестировала еще, а в СБИС-е специально наделала ошибок, чтобы убедиться, что проверяет.

    Tester (к Налогоплательщику ЮЛ), кстати, пропускает ошибки. Ему все равно, что итоги Раздела 1 и Раздела 3 не сходятся.

    Reply
  14. AlexDaewoo

    (13)

    Tester (к Налогоплательщику ЮЛ)

    Тестер не пробовал, обычно онлайн проверкой пользуюсь на сайте бухсофта или встроенными от провайдеров электронной отчетности, у них всегда свежие проверочные модули.

    Reply
  15. o'neill

    (16)

    Сегодня, после загрузки в КОНТУР, специально сделала ошибки: 1.уменьшила облагаемый доход в Разделе 3 без изменения начисленных страховых и итогов Разделе 3, в Приложениях 1 и 2 и Разделе 1; 2.изменила сумму начисленных страховых без изменения итогов.

    КОНТУР все «скушал» — проверка прошла успешно, отправляйте свой отчет.

    Так что не доверяйте слепо всем встроенным проверочным программам!

    Reply
  16. xslava2008

    Я делаю гораздо проще: через стандартную обработку выгрузки из ЗИК выгружаю Организацию, Начисленные страх взносы и Физлица за квартал. Это очень быстро. И загружаю в пустую ЗБУ. Там все прекрасно заполняется. НО. После этого в регистре «Гражданство» прощелкиваю все записи без гражданства. (кнопка ОК и все). Это тоже не так долго

    Reply
  17. Akmen

    Вячеслав прошу прощения горю и не понимаю как можно открыть зарплату 361 релиз для отчета из зарплаты 363?

    Reply
  18. Akmen

    (18)

    Вячеслав можно поподробнее ваш вариант-что за обработка выгрузки и что за ЗБУ?

    Reply
  19. xslava2008

    (20) Добрый вечер Николай. Стандартная обработка переноса данных из Зик в ЗБУ 1.0. Ее можно получить через справочник «Конвертации» в ЗБУ, там есть кнопка сохранения. Можно выбрать какие объекты выгружать. Потом полученный файл загружается в ЗБУ через стандартный обмен данными.

    Reply
  20. victuan

    Обработка для релиза ЗИК 364 с учетом исправленных автором разработки ошибок во вложении.

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

    Reply
  21. victuan

    Обсуждение проблем РСВ для ЗИК 7.7 релиза 364 в данной теме http://forums.kuban.ru/f1040/vyshel_reliz_364_zarplata_i_kadry-8294895.html

    Reply
  22. Hirondelle

    (4)

    На практике, я бы обнулила сторно и учла бы этот минус при первом положительном начислении: в феврале или марте. А до тех пор база = 0.

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

    Reply
  23. victuan

    Выкладываю исправленный РСВ для ЗИК 364 https://yadi.sk/d/8CA3kTgx3HKRfJ с учетом исправления ошибок, выявленных в следующих источниках:

    1) Вышел релиз 363 Зарплата и Кадры

    2) http://infostart.ru/public/607334/

    Исправление выгрузки в хмл-файл РСВ в рег.отчетности 1С 7.7:

    https://yadi.sk/d/F_aNjTy13HPhSY

    1) Исправил ошибку «нет заполненных строк в Подразделе 3.2.1» при выгрузке отчета РСВ. Теперь отказа при выгрузке не происходит, файл формируется корректно

    2) добавил в диагностику ошибок при выгрузке Раздела 3 вывод СНИЛС и ФИО сотрудника — для быстрого поиска источника ошибки.

    Исправленный текст в модулях обработок снабдил комментарием //тщи

    Прошу автора публикации учесть мои «фиксы» и выложить в своей разработке.

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

    Reply
  24. victuan

    (11)

    В СБИСе есть проверка математики контольных соотношений. При «Проверить отчет» — сверяет итоги Раздела 3 и Приложения 1 (доходов, баз и страховых по месяцам).

    При «Проверить реестр» (внутри Раздела 3) проверяет математика внутри каждого человека (база*0,22, итоги по месяцам) и, даже ругается на копейки округления (но отчет отправляет — не считает это за ошибку).

    Можно проверять через Налогоплательщик ЮЛ. Загружаете в него хмл-файл декларации, открываете в нем декларацию и нажимаете кнопку «К» для проверки контрольных соотношений. В версии НЮЛ 4.53.1 проверяется 484 контрольных соотношения.

    Tester же проверяет только формат файла, поэтому особой пользы не имеет.

    Reply
  25. victuan

    (16)

    обычно онлайн проверкой пользуюсь на сайте бухсофта

    Ссылкой на эту проверку налоговой декларации РСВ не поделитесь?

    Reply
  26. AlexDaewoo

    (27)

    Ссылкой на эту проверку налоговой декларации РСВ не поделитесь?

    https://online.buhsoft.ru/test/

    Правда там нужно зарегистрироваться, но это бесплатно, как и сервис проверки (сейчас бухсофт за расшифровку ошибок стал требовать денег, но обычно мне достаточно кода ошибки чтоб понять что не так)

    Reply

Leave a Comment

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