<?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='\
Полезный отчет спасибо!
Плюсанул, пригодилась очень своевременно.
Хорошая идея. Для проверок в 2013 году пришлось подправить код, там новый документ. Далее все отработало. Спасибо!
higs, Вы наверное мой отчетик с другим перепутали, у меня отчетик на компановке данных и кода совсем нет ((,
изменения 2013 года (ПачкаДокументовСЗВ_6_4), уже учтены))
(4) Прошу прощения, было открыто две страницы, написал немного не в ту тему. Писал про расхождения по индивидуальным сведениям, там как раз СЗВ-6-4 учтены не были. В Вашем все хорошо, спасибо!!
Очень приятно, что отчетик пригодился))
+++ Отлично всё сложил за 3 года и 2013 I кв
ММММ…не совсем всё правильно складыавет, если есть человек в 2013 году двоящийся один раз в пачке с договорниками а другой раз в пачке с ТРУДОВОЙ то не сумирует ту карточку где стоят суммы его как ДОГОВОР. Будет исправление? А так отчёт отличный
спасибо! скачала. буду пробовать. хотя в принципе 1С выдает сальдо по сотрудгикам при формировании новых ИС или по кнопке Комментировать. но там проблемы с учетом корр.пачек, да и тольео остатки — переплата, недоплата. еще выводила остатки чрез консоль запросов с запросом по регистру сведения принятые в пфр
(8) belyy, Посмотрите пожалуйста, а случайно пользователи не завели два Физ лица(зачастую кадры не понимают что должно быть только одно физ лицо и два сотрудника), тогда можно воспользоваться обработкой Поиск и замена значение.
(9) gala2009, Совершенно согласна с вами по первому пункту, именно поэтому показала пользователям, что теперь 1с показывает переплату, но они попросили дописать отчет, т.к. форма проверки выдается модально, если скопировать в файл, то данные становятся не читаемыми и нет возможности проанализировать. Если формировать сведения по Регистру принятых в ПФР, то не попадают данные текущего периода, а ведь зачастую именно в текущем периоде выявляется переплата.
да, конечно, удобно быстро проверить в том числе и начисления с уплатой текущего периода, не загоняя его в регистр сведения принятые в ПФР. Отчет сформировала, быстро, наглядно, сальдо с минусом (если недоплата), как и в отчетах ПФР, которые они присылают для сверки. Но получается, в вашем отчете считаются начисления и уплата по всем пачкам(с приоритетом как я поняла КОРР), и которые не прведены, и не стоит галка Приняты в ПФР? просто часто видела у клиентов кучу пачек-дублей в списке документов ПФР, уж не знаю как умудряются. что-то загрузили, что-то сами сформировали и пр.. в данном случае как быть? убрать все лишние пачки? а помеченные на удаление пачки в расчете не участвуют?
(11) по поводу сальдо из 1С, выделяла и копировала в файл ексель неоднократно, все по строчкам ложится аккуратно, фио, сальдо, только понятное дело, сначала блок переплаты. потом недоплаты. да, еще в суммах лишние пробелы убирала с помощь найти и заменить. вообще такой отчет как вы сделали — давно уже нужен в 1с-ке и странно что разработчикам не до этого
(13) gala2009, Вы все правильно поняли, отчет формируется с приоритетом кор пачек, собираются данные по всем пачкам, кроме помеченных на удаление. Поэтому достаточно на ошибочные пачки установить пометку удаления. Действительно странно, что так получается когда слишком много лишних документов, ведь при работе с обработкой Подготовка данных в ПФР, при удалении пачек документы помечаются на удаление, а если сформировать новые пачки, то изменения вносятся в старые. Хотя, пользователи зачастую многое могут, может они из журнала вручную формируют сведения )).
Спасибо за отчет! Очень пригодится.
Спасибо за отчет!
Какие корректировки внесены в вариант от [06.05.2013 21:49] ?
(17) Loader_1C, просто заголовок публикации поменяла))
(18) понятно, просто, надо было наверно как-то обозначить этот момент, чтобы не перекачивать повторно)))
Будет ли этот отчет показывать остатки по людям «глазами 1С», т.е. если заполнить сведения в ПФР штатным методом ЗУП, то остатки будут совпадать с тем, что показывает отчет?
Или конкретнее:
Как исправить учет, имея распечатку с фамилиями и суммами задолженности на начало 2013 года?
(20) gradus, Совершенно верно, остатки по людям будут совпадать с остатками в 1С, копейка в копейку, как вы знаете в одном из последних релизов ЗУП появилась проверка превышения, эту проверку сразу показала пользователям и сказала т.к. 1с реализовала данную возможность, то отчет переписывать не буду, но они настояли на своем, пришлось дописать отчет)). Если в отчете пользователи обнаружили превышение, то просто эту сумму в документе Пачка СЗВ 6-4 вручную снять с сотрудника и перенести на другого. Если посмотреть на мой пример, то у Антоновой Ирины есть превышение по страховой — 350, и по накопительной — 220, можно перенести на Петрова Петра Васильевича. Что касается второго вопроса, здесь все сложнее, т.к. все зависит от вашего отделения ПФР, у нас более 30 организаций в разных регионах и даже если отделения находятся в одном городе, то требования все равно у каждого свои. Вам лучше созвониться со своим отделением и уточнить у них как лучше подготовить отчеты. скорее всего с учетом что 2012 год уже закрыт, вам придется сдавать корректирующие сведения в составе текущего периода, за 2012 год(это будет СЗВ 6(1 или 2)).
Спасибо большое за отчёт!
Точно пригодится!!!))
Добрый день! Подскажите, можно ли в этой обработке выбирать пачки СЗВ которые нужно проверить? У меня предыдущий бух за один период создавала по 2 по 3 пачки СЗВ и теперь не разберешься какая правильная. А так с помощью обработки можно было бы выявить.
(23) Prelude, По вашей просьбе доработала отчет, добавила возможность отбора по документам (Пачка документов СЗВ-6-4 и Сведения о страховых взносах и стаже застрахованных лиц (СЗВ-4, СЗВ-6)) и по признаку принято в ПФР. В отчете можно установить отбор как по одному документу, так и по нескольким. Сегодня выложу обновленный отчет, после одобрения модератором можно будет скачать.
(23) Prelude, если вопросы еще актуальны, отчет можно скачать.
Если в отчете есть конечное сальдо, тогда должно быть и начальное сальдо.
(26) makas, теперь в отчете есть и начальное сальдо
Такой вопрос, друзья:
Можно ли сравнивать данные этого отчёта и итоговые данные карточки счёта 69.02?
Как можно проверить корректность данных… выплаченных, оставшихся…
Есть ли какие-то стандартные отчёты???
Спасибо всем!
(28) 4el, Вы правы, данные отчета можно сравнить с итоговыми данными по счету 69.02 и с Описью сведений АДВ 6-2 за соответствующий период. К сожалению стандартными отчетами можно проверить только начисленные взносы: «Анализ начисленных налогов и взносов» вариант отчета ПФР, Карточка по страховым взносам, Отражение зарплаты в регламентированном учете.
Текущий отчет по проверке начисленных и уплаченных страховых взносов как раз и позволяет собрать данные и проверить нет ли превышения, т.е. при формировании отчетов за каждый отчетный период нарастающим итогом с 2010 года(в этом случае начало периода всегда устанавливаете 2010 год и меняете только на конец следующего периода 30.06.2010, 31.12.2010, 31.03.2011 и т.д.) Конечное сальдо не должно превышать 99 копеек, если больше, то это ошибка. В скриншоте как раз видно, что у Демина Степана по страховой части как раз переплата(если текущий период, то исправляем, если прошлый сдаем корректирующие) на 2676,73, а по накопительной все нормально, мы потом доплатим 1305,81. У сотрудников Легкого Ивана Алексеевича и Николаева Сергея Дмитриевича начисление и уплата расходятся на допустимые 0,99 коп, у остальных все хорошо. Так же в отчете можно проанализировать данные за каждый отчетный период отдельно и сверить с описью.
Спасибо за отчет. Подобного действительно недостает в ЗиУП.
Добрый день.
Ошибка при открытии! 8.2.18.61 (2.5.64.3)
Ошибка при выполнении файловой операции ‘C:Проверка уплаты страховых взносов 2013 г.erf’
по причине:
Неверный формат хранилища данных
Подскажите что делать?
Попробуйте включить отчет в ИБ. Сервис > Дополнительные отчеты и обработки > Дополнительные внешние отчеты. Если не заработает, попробуйте обновить конфигурацию. Наученная горьким опытом, никогда сразу не обновляю, жду пока все критические ошибки исправят. На релиз 2.5.64.3 не обновляла, в тот период было слишком много проблем и подряд вышло много релизов с исправлениями, релизов шесть точно пропустила))
Спасибо за ответ.
В доп. отчеты не добавляется с той же ошибкой.
Сейчас попробую обновить базу.
Есть предположения что файл отчета «порченый», если вам не сложно попробуйте скачать его с сайта и открыть.
Обновление не помогло.
Если у вас откроется напишите пожалуйста на какой платформе и конфигурации.
Только что скачала отчет, все работает замечательно, даже без включения в конфигурацию. Платформа 8.2.18.61, Конфигурация 2.5.67.1. На 2.5.69.1 не обновляла, так как ждала ошибок, так и получилось, выявлена критическая ошибка при обновлении Справок о заработке при расчете пособий, произошло зацикливание. Сегодня вышел новый релиз с исправлением, но я пока еще немного подожду… А вы на какой релиз обновили?
Спасибо что помогали разобраться и отдельно за отчет.
Проблема с локальным компьютером (пока не определил в чем).
Скачал на другом компьютере. Все работает.
Файл даже другого размера.
Замечательно, что все заработало 🙂
Отчет отличный. Но есть недочет. Если бы его исправить, то цены бы не было этому отчету. Недочет заключается в следующем. Например, отчетный период 1 квартал. Иванов с 01.01 по 28.02 является инвалидом. А с 01.03 перестает им быть. При подготовке данных в ПФР за 1 квартал он попадает в две разные пачки: Общественные организации инвалидов (с 01.01 по 28.02) и Наем/Работник (с 01.03 по 31.03). В результате при формировании отчета по проверке начисленных и уплаченных взносов данные по Иванову попадают только из пачки с инвалидами, а из пачки наемных работников данные не попадают. Исправьте, пожалуйста, этот недочет. Спасибо.