Расшифровка отчета Расчет страховых взносов (с 2025г.) для ЗУП, УПП, ЗиКБУ: Раздел 1, Раздел 2, Раздел 3 (с навигацией по ФИО).
1C-admin
13.11.2017
Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.
В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "///// echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1.
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.
Собственно сам скрипт:
<?php // Полная загрузка сервисных книжек, создан 2025-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) Спасибо! На отчет ушло 4 часа. Хотел еще побольше настроек отчета сделать для расшифровки Раздел 1 и Раздел 2 с подразделами, но подумал важнее опубликовать детальную расшифровку Раздел 3.
Первый БИТ прислал письмо:
»
При подготовке отчета «Расчеты по страховым взносам» за 1 квартал 2017 года учреждения столкнулись со сложностями.
Пенсионный фонд, передал обязанность по приему отчетности в ФНС, но, как показала практика, данные были переданы некорректно. После подачи отчетности приходит отрицательный протокол, в котором говорится, что по некоторым людям не найден СНИЛС. Причем, это уже давно работающие сотрудники, по которым неоднократно сдавалась и принималась отчетность.
По неофициальным источникам из ФНС, они должны устранить эту проблему в течение следующей недели. Однако уже сейчас мы рекомендуем Вам подать отчет, чтобы получить протокол. Если он будет отрицательным, то по каждому сотруднику, по которому обнаружится ошибка в СНИЛСе, необходимо будет предоставить в Ваше отделение ФНС копию ИНН и СНИЛСа для подтверждения того, что данные, подаваемые Вами в отчете, верны.
Все эти действия осуществляются с определенными временными интервалами, поэтому желательно начать сдавать отчёт сейчас, чтобы было время получить протокол и отправить письмо в ФНС.
По действующему законодательству, отчет «Расчеты по страховым взносам» должен быть подан и по нему должен быть получен положительный протокол до 30 апреля 2017 года.
За несвоевременное предоставление отчетности или если у Вас не будет положительного протокола в установленные даты, на учреждение будет наложен штраф в размере 5 % от общей суммы взносов, которые зафиксированы в отчете. Помимо штрафа ФНС может и вовсе заблокировать банковский счет (п. 3 ст. 76 НК РФ).
Поэтому нужно поторопиться и сдать отчет «Расчеты по страховым взносам» заранее!
«
Запустили на 118 в ЗУП, отчет повторяет те же ошибки что были и до обновления(116), т.е. рсв обновленный более корректен стал
При открытии отчет не формируется, нет настроек
А для зарплаты гос учреждений 1.0 он работает???
(6)для гос учреждений не тестировался. Написано по русски для каких релизов.
(5) Дмитрий, учи СКД. Или внимательно читай статью.
Парни, сейчас в 90.1 интрегрирован ЗУП 117.1, когда выйдет упп с зупом 118.1?
Расшифровать отчетом данной публикации — Раздел 1 приложение 2, код строки 070, помесячно или как-то иначе возможно?
Скачал, отчёт не формируется. Что делаю не так ?
Зарплата и Управление Персоналом, редакция 2.5 (2.5.118.1)
(10)
Зарплата и Управление Персоналом, редакция 2.5 (2.5.118.1)
Отчет тестировался на версиях ЗУП 2.5.115-117. К сожалению, не успеваю за пулеметной скоростью выходов релизов ЗУП 2.5 (для ЗУП 2.5 в следующем году фирма 1С официально не будет выпускать обновления рег отчетности). Отчет для версии ЗУП 2.5.118 я выложу сегодня во 2 половине дня.
(8) Вы можете самостоятельно взять код формирования отчета из ЗУП 118.1 и вставить его в свою версию УПП. Это дело 5 минут (с оговоркой, что делать будет профи).
(9)
Конечно, можно.
(9) Есть и типовая возможность : выделите ячейку отчета и нажмите в верхнем правом углу формы отчета кнопку «Расшифровать».
(9) в типовой ЗУП 2.5.117.1 расшифровка этих ячеек описана в общем модуле «ЗаполнениеРегламентированнойОтчетности» в процедуре «РасчетПоказателей_РСВ_2017Кв1» в строке 9730:
Используются показатели: ИсчисленоВзносов, Начислено, НеОблагается, СуммаПревысившаяПределФСС, БазаФССсИностранцев, БазаФармацевта, ПолученоИзФонда, РасходыПоСтрахованию.
Эти поля есть в моем отчете. Их надо просто скомпоновать.
(6) ЗиКБУ ред.1 работать будет
Найдена очередная ошибка уже в последнем 118 релизе ЗУП 2.5:
не попадают сотрудники, уволенные до 2017 года, и по которым были начисления (например, заработок на время трудоустройства, выплаты родственникам сотрудников по решению суда и пр.).
не формирует отчет для релиза 118.1
Дружище, огромное спасибо… лови плюс в карму.
(18) Татьяна, день добрый!
На сегодняшний день 8 пользователей с 8 различных предприятий скачали файл «Отчет Расшифровка Раздел1 и Раздел3 отчета Расчет страховых взносов (с 2017г.) для ЗУП 2.5.118» и смогли его сформировать без ошибок.
Конечно, я сам, как разработчик, тестировал отчет именно для релиза 2.5.118.1.
Ошибка могла возникнуть по причинам:
1) вы случайно скачали отчет не для 118 релиза (см названия скачиваемых файлов) или
2) у вас не типовой ЗУП или
3) ваша конфигурация ЗУП имеет не полностью заполненные данные (учетная политики, рег календарь и пр.).
Что бы вам помочь мне нужен скриншот ошибки и ее полное текстовое описание.
Хм… почему то у меня на 118.1 (и на 118.2) расшифровывает только договорников, остальных сотрудников не видит.
(21) У нас все отлично работает.
Приложите скриншот схемы компоновки данных с отборами, которую вы создали для отчета, или прикрепите ее к сообщению. Это поможет диагностировать ошибку более точно.
скачала отчет за 3 стартмани для ЗУП 2.5.118 — отчет пустой и заголовок отчета «Среднесписочная численность….»
(23)
19 пользователей из 20 скачавших этот отчет проблем не испытывают.
Если вас смущает заголовок, то переименуйте его.
Если отчет пустой — то скомпонуйте его как описано в статье.
Кроме того, вы можете написать на указанную в пункте «Обратная связь» почту, ответ не заставит себя долго ждать.
Напомню, что обращение должно содержать:
(24) что значит не засоряйте? Если бы все работало — никто не писал. что не работает…
вы бы помогли лучше…
(24) Это уже 3-й человек, который говорит, что отчет не формируется, а Вы продолжаете утверждать, что проблем пользователи не испытывают. Рискну предположить, что у Надежда (user_2010) и у Татьяна Соколова (tatyanasok@yandex.ru) в отличие от нашей организации нет договорников, поэтому у них отчёт и пустой, а у нас только эти 2 договорника и попадают. Что касается схемы компоновки, которую Вы просили — то она с Ваших скриншотов в публикации (пытался расшифровать численность (стр 010 и 020). Но суть не в этом, даже если не делать никаких отборов и настроек, а просто запустить отчет с дефолтными настройками, выбрать организацию и добавить в отчёт ЛЮБОЕ поле (например, просто вывести физ. лиц), то в отчет выводятся только те, у кого были договора ГПХ.
Ну, и то, что Вы запрашивали:
1) 8.3.10.2168
2) 2.5.118.2 (пробовал и на 2.5.118.1 до обновления — результат тот же)
3 см. выше — подробно расписано, скриншот думаю излишен
4) общая
(25) (26) Спасибо за участие! Проверяю…
Обязательно напишу о результатах, отчет повторно вышлю.
(25) (26) Единственная найденная «фича» заключается в том, что в группировке отчета было поле «ДанныеФизЛица.Имя», которое нужно заменить на «ДанныеФизЛица.ФизЛицо». Позже выложу видео ролик в публикацию, в котором покажу как делать настройки.
Скриншот фичи
(25)(26)
https://www.youtube.com/watch?v=1NNcsb4tbhk&feature=youtu.be
Рекомендую посмотреть видео на ютьюбе, где пошагово рассказываю и показываю как делать настройку отчета:
Всё оказалось просто — надо было в Параметрах заполнить поле «Обособленное подразделение». Может это надо было сразу указать в описании? Потому что для меня, например, совсем не очевиден такой момент — если нет обособленных подразделений поле всё равно надо заполнить. Я естественно формировал отчёт оставляя это поле в Параметрах пустым. Ну и вдогонку вопрос: как же всё-таки с помощью вашего отчета расшифровать строку 010 («кол-во застрахованных лиц всего»)? Все отборы сводятся к условию ненулевых начислений/баз, а начислений может и не быть.
(30) Отлично, что видео ролик помог Вам. Значит это технология может реально помогать клиентам.
010 строка расшифровывается ещё проще, отбор оставляем только первый из трёх показанных в ролике. Но есть подводные камни — на форумах (см полезные ссылки) коллеги говорят, что типовой отчёт поставляемый горячо любимой фирмой 1С собирает данные с некоторыми ошибками.
(31) Вы, видимо не совсем внимательно прочитали вопрос. В строке 010 должны показываться ВСЕ застрахованные лица не зависимо от наличия дохода. Ваш отбор ставит условие «Всего начислено не равно 0» и отчет показывает только тех физ. лиц у которых был доход, а как увидеть всех застрахованных лиц попавших в строку 010 в том числе и тех у кого доходов не было (например, долгие отпуска за свой счет, длинные отпуска вредников и т.д.)? Например, на вашем видео в феврале у вас строка 010 — 1074 человека, строка 020 — 1064. Покажите настройки (в скринах) как расшифровать те самые 1074 человека (желательно со скрином результата)
(32) В данный момент, основываясь на отзывах пользователей, создается новая версия отчета, которая будет содержать предустановленные настройки отчета для возможности выбора нужного Раздела с целью получения детальной расшифровки. Текущая опубликованная версия отчета — полностью рабочая.
(32) (25)
На основании обращений пользователей 05.05.2017 создана новая версия отчета, которая содержит в себе заранее заложенные варианты настройки структуры и некоторые заполненные отборы.
Предустановленные настройки позволяют пользователю не заботиться о компоновке отчета, а сразу получить готовый результат буквально двумя кликами мыши.
См. пункт в оглавлении публикации.
В новой редакции отчета УЖЕ расшифрованы ВСЕ ячейки отчета, НО (!) в готовых вариантах настройки предустановлены не все варианты расшифровки. Специалисты смогут скомпоновать сами, а вот пользователям я рекомендую дождаться следующих релизов отчета.
Сегодня 16.05.2017 обновил файл с отчетом «Расшифровка отчета Расчет страховых взносов (с 2017г.) для ЗУП 2.5.118 (предустановленные варианты структуры отчета)». Добавлено более 50 полей, которые сгруппированы по папкам, названия которых соответствуют названиям разделов и подразделов отчета. На очереди создание новых предустановленных вариантов структуры отчета, которые позволят еще более детально расшифровывать значения ячеек рег отчета. Так же будет переписано описание работы с отчетом.
Сегодня 21.05.2017:
1. В отчет для ЗУП были добавлены предустановленные варианты структуры отчета. Всего вариантов структуры теперь 16! Полей в отчете более 100 — по числу ячеек рег отчета. Пользователю достаточно просто выбрать 1 из 16 предустановленных вариантов структуры, заполнить отборы и нажать кнопку «Сформировать». Эта версия отчета доступна за 2 условных попугая.
2. Обновлена версия отчета для ЗУП БЕЗ предустановленных вариантов структуры отчета. Функционал тот же, поля те же. Отчет за 1 условный попугай.
3. Обновлена версия отчета для УПП. Для УПП отчет ТОЛЬКО с предустановленными вариантами структуры отчета. Отчет за 3 попугая.
Планы:
А) не все поля отчета названы «по-человечески», многие имена полей совпадают с именами ячеек рег отчета, что не очень информативно. В следующей версии отчета поля будут разыменованы.
Б) переделать описание публикации.
23.05.2017 было создано новое описание отчёта и опубликован 10 минутный ролик как пользоваться отчётом. Все файлы отчетов обновлены.
26.05.2017
Создано условное оформление, заданы удобные макс/мин размеры ширины колонок и высоты строк — теперь больше данных ячеек видно пользователю.
30.06.2017 Введено разделение на группы меню: «Данные РСВ из базы» и «Вывод разделов отчета РСВ». Первое меню позволяет получить на СКД данные из базы, второе меню — данные из УЖЕ заполненного отчета РСВ. Добавлена печать листов Раздела 3 и перенумерация листов с заданием ФИО (как в ЗУП 3.1)
Предлагаю свой опыт использования отчета:
1) Перехватить исполняемую схему компоновки данных, загрузить его в консоль
2) построить дерево запроса (ИР);
3) из получившихся 150 временных таблиц первые 60 собирают данные для отчета, оставшиеся 90 аккуратно их грузят в таблицы отчета. Последние значимые таблицы, аккумулирующие всю информацию — ВТИтоговыйСведенияОСтраховыхВзносах (56) и ВТВредныеДоходыИВзносы (60);
4) далее смотрим в конфигураторе, к какому разделу относятся запросы, так как там разделено на функциональные блоки, соответственно каждая группа запросов обслуживает заполнение своей таблицы в отчете, и завершается это созданием ВТ с названием «ОписаниеТаблиц», а в коде этому соответствует строка ОписаниеТаблиц.xxx=Результат.Выполнить().Выгрузить();
5)Понятно, что профессионалу возможно это и не пригодится, но простому пользователю без наличия этой обработки от этого легче не станет, а всем тем, кто будет пользоваться данной обработкой — возможно поможет
С уважением к сообществу, Беляев Антон
(40)
Спасибо за сообщение.
По большому счету я так и собирал все в один запрос, точнее запросище. Если открыть конструктор запросов, то можно убедиться, что пакеты называются ТОЧНО так же, а типовые ТЗ с именем «ОписаниеТаблиц» у меня называются «ОписаниеТаблиц_Постфикс». Например, «ОписаниеТаблиц_ДоходыФСС2017».
рабает на 119 или 120 релизах??
(42) в данный момент тестирую на 120 релизе, завтра будет точный ответ.
(42) Сравнение релиза ЗУП 2.5.118 с релизом 2.5.120 показал изменения в общем модуле «ЗаполнениеРегламентированнойОтчетности». Это значит, что в ближайшее время мной будет выпущена новая версия отчетов для скачки с ИС.
А как обстоят дела с отчетом по сотруднику 3 раздел и периоду соответственно.
С 1 января 2017 года организации обязали выдавать справки по страховым взносам — это при увольнении сотрудника.
Сейчас в типовой расчет идет по всем сотрудникам и по квартально. у нас ЗКБУ 1.0.108.1. Сделал внешнюю для расчета по одному сотруднику вот только не пойму как вывести за все месяца т.е. произвольный период( с начала года и по июль,к примеру если сотрудник уволился в августе). Сам период везде фигурирует нужный а выводит 3 месяца по последнему кварталу. Пока разбираюсь с запросом.
Если у вас это реализовано. Скачаю.
(44)
Разобрался. Там только по квартально делается. В принципе устраивает уже сделанная мною. Звезду за работу поставил.
Коллеги!
На релизе ЗУП 2.5.120.1 блоки меню «Данные РСВ из базы» пока не работают! Типовые разработчики таки внесли изменения в общи модуль «ЗаполнениеРегламентированнойОтчетности». Блоки меню «Вывод разделов отчета РСВ» (уже заполненного) — работают. В данный момент пытаюсь переделать большой запрос под в соответствии с изменениями в 120 релизе — это очень кропотливое дело. Ждите.
(48) очень ждем! напиши, как будет готово
возникла странность, в УПП за 1кв 2017 формируется, все хорошо. А за второй квартал (или 1 полугодие) 2017 выходит пустой отчет, с чем это может быть связано? пока что не удалось найти в чем причина, настройки одинаковые.
(50) это связано с допилами сделанными в новых релизах ЗУП 2.5 и УПП 1.3, я сейчас переписываю формирования отчета под новые релизы.
В ЗУП 2.5 (2.5.118.2) такая же штука, как и у Олега (50). Будем ждать. А когда примерно может появиться новый вариант?
(52) Я написал свой отчет по расшифровке только 3 раздела, т.к. надо было срочно. Отчет данные берет из сформированного рег.отчета (это одна из функций отчета данной разработки).
Если Иван не против я могу выложить его для скачивания.
Спасибо за код , работает , помогло .
Здравствуйте!
Есть возможность расшифровать строку 010?
Он вроде всё расшифровывает кроме неё…
необходимо расшифровать раздел 1.1 или 1.2, строку 010, все отборы заполнила, отчет получается пустой, что я не так делаю?
(51) Добрый день, Иван. И как, удалось переписать отчет под новые релизы?
(53) конечно не против. Сообщество ис для этого и нужно.
Коллеги! Не хватает времени на адаптацию отчёта под новые релизы ЗУП 2.5 и Зик. Отчёт расшифровывает уже сформированный отчёт. А вот функционал , который повторяет кнопку Заполнить пока не работает корректно в новых релизах.
Уважаемые коллеги! Есть ли шанс, что отчет будет работать с УПП, редакция 1.3 (1.3.99.1) ?
А то с этими новыми контрольными соотношениями РСВ за год не принимается — разницу между итоговой суммой и суммой поля 210 из 3 раздела по каждому сотруднику видит.
Для ЗБУ 1.0 релиза 118 какой из отчетов работает?
Скачала отчет — он под 2017 год((((