<?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='\
Забыл упомянуть в тексте публикации. Если хотите исправить ошибку в пачке раздела 6, не меняя при этом исходные данные, то в нужном подразделе введите какое-нибудь измененное значение, затем снова введите исходное. Ну и далее жмитекнопу «Записать», либо программа сама запросит сохранение при выходе из раздела 6. Иначе, если нет модификации, то в файле ничего не изменится.
Удобная форма. Еще бы добавить заполнение раздела 2.5 из сформированных персонифицированных сведений.
(4) u_n_k_n_o_w_n, но ведь раздел 2.5 и так заполняется на основании сведений из перс. учета. В разделе 6 есть отдельная кнопка для заполнения. Надо только, и об этом сказано в статье, чтобы соответствующие файлы были размещены в каталоге выгрузки. Если у вас есть сомнения в правильности заполненного файла *.pcb, то лучше удалите его, и тогда будет проверяться непосредственно наличие файлов. Или вы имели в виду заполнение на основании файлов сохранения, наподобие _1_ИСХОДНАЯ_12014.pf ? Но для этого надо быть уверенным, что заполняем РСВ-1 в той же конфигурации, что и сведения персучета.
Обновлены файлы для сдачи отчетности за 1 квартал 2015 года, а именно: для тарифов организации инвалидов, СМИ, ЕСХН и некоторых других сделано принудительное приведение к общему налоговому режиму.
Автору огромный «+» за труды!!!
(7), увы, не учёл одну важную вещь — скорость, с которой ПФР клепает изменения в правилах отчетности.
В версии от 24.07.2015 добавлена возможность работы с форматом, введенным постановлением от 04.06.2015 №194п.
а в каком релизе ЗиКа работает?
что за *pcb
(9) lexlex89, работа отчета тестировалась на релизе 252 ЗиК. Насчет работы на более ранних релизах сказать затрудняюсь. Замечу только, что при заполнении используется стандартная процедура сбора данных для страховых взносов, а она почти не изменилась. В разделе 6 появилась, не помню в каком релизе, отметка об увольнении сотрудника.
(10) lexlex89, если в отчете «Подготовка сведений для ПФР» для выгрузки использовать пункт «все пачки (сформировать комплект)» то в дополнение к файлам ПФР будет сформирован файл с именем
с информацией о выгруженных файлах. В данном отчете реализовано 2 варианта заполнения раздела 2.5.
1. С использованием файла ХХХХХХ.pcb
2. Если таковой файл не обнаружен, то заполнение идет на основании имеющихся файлов ПФР
В обоих случаях необходимо, чтобы файлы располагались в каталоге, указанном для выгрузки РСВ-1. Важно: проводится фильтрация файлов по регистрационному номеру ПФР налогоплательщика и по отчетному периоду.
Плохой тип переменной
вот такая ошибка выходит при попытке заполнить раздел 2.5 РСВ_1_2014.ERT(3365)}: :следующие теги не закрыты: Файл обмена
(14) lexlex89, судя по ошибке, в каталоге кроме файлов ПФР имеются «лишние» файлы, которые программа анализирует некорректно. Тег «ФайлОбмена» имеется в файлах Конвертации Данных. Если вы имеете возможность предоставить доступ ко всем файлам из каталога, то я смогу более точно выяснить причину ошибки. Ну или хотя бы дайте доступ к файлу с тегом ФайлОбмена.
(15) могу конечно,архивом либо могу дать доступ через TeamViewer
(16) lexlex89, ОК, дайте ссылочку на архив.
(17) спасибо! с файлами разобрался) теперь не проходит проверку выгрузка в программе chekPFR от 21.07.15,вы не в курсе случайно нет ли более поздних версий для проверки,сколько ни бьюсь толку нет
(18) lexlex89, нет, более свежих версий я не видел. А почему вы решили, что это ошибка проверяющей программы ? Может быть это реальная ошибка в файлах, и её нужно исправлять. Дайте описание ошибки.
1.1. Ошибка
a. РСВ1
30
Значение, указанное в графе 2 строки «Итого» должно равняться сумме значений граф 4-6 строки 204 подраздела 2.1 Расчета по всем кодам тарифов.(Указано в разделе 2.5.1 :8910742,44, Расчитано по разделам 1 и 2.1: 0)
b. РСВ1
30
Значение, указанное в графе 3 строки «Итого», должно равняться значению указанному в графе 3 строки 114 раздела 1 уменьшенному на значения граф 4-6 строки 206 подраздела 2.1(при наличие нескольких подразделов 2 участвуют значения граф 4-6 206 каждого из разделов)(Указано в разделе 2.5.1 :1960363,33, Расчитано по разделам 1 и 2.1: 0)
c. РСВ1
30
По всем разделам 6 по типу «ИСХОДНАЯ» по всем категориям ЗЛ значение графы 4 строки 400 (410,420 и т.д.) подраздела 6.4, должно быть меньше или равно значению, указанному в графе 3 строки 200 подраздела 2.1. по всем кодам тарифов(Указано в РСВ :0, Расчитано: 18957126,83)
d. РСВ1
30
По всем разделам 6 по типу «ИСХОДНАЯ» по всем категориям ЗЛ значение графы 5 строки 400 (410,420 и т.д.) подраздела 6.4, должно быть меньше или равно значению, указанному в графе 3 строки 204 подраздела 2.1. по всем кодам тарифов.(Указано в РСВ :0, Расчитано: 16698110,98)
e. РСВ1
30
По всем разделам 6 по типу «ИСХОДНАЯ» по всем категориям ЗЛ значение графы 5 строки 401 (411,421 и т.д.) подраздела 6.4 должно быть равно значению, указанному в графе 4 строки 204 подраздела 2.1 по всем кодам тарифов(Указано в РСВ :0, Расчитано: 2824522,6)
f. РСВ1
30
По всем разделам 6 по типу «ИСХОДНАЯ»по всем категориям ЗЛ значение графы 5 строки 402 (412,422 и т.д.) подраздела 6.4 должно быть равно значению, указанному в графе 5 строки 204 подраздела 2.1 по всем кодам тарифов(Указано в РСВ :0, Расчитано: 2721275,83)
g. РСВ1
30
По всем разделам 6 по типу «ИСХОДНАЯ» по всем категориям ЗЛ значение графы 5 строки 403 (413,423 и т.д.) подраздела 6.4, должно быть равно значению, указанному в графе 6 строки 204 подраздела 2.1 по всем кодам тарифов(Указано в РСВ :0, Расчитано: 3364944,01)
h. РСВ1
30
По всем разделам 6 по типу «ИСХОДНАЯ» по всем категориям ЗЛ значение графы 7 строки 400 (410,420 и т.д.) подраздела 6.4, должно быть меньше или равно значению, указанному в графе 3 строки 203 подраздела 2.1 по всем кодам тарифов.(Указано в РСВ :0, Расчитано: 196105,23)
i. РСВ1
30
По всем разделам 6 по типу «ИСХОДНАЯ» по всем категориям ЗЛ значение графы 7 строки 403 (413,423 и т.д.) раздела подраздела 6.4, должно быть равно значению, указанному в графе 6 строки 203 подраздела 2.1 по всем кодам тарифов.(Указано в РСВ :0, Расчитано: 196105,23)
(20) lexlex89, получается, что разделы 1 и 2.1 РСВ-1 вообще не заполнены и нужно их заполнить. Видимо, здесь произошла небольшая путаница. На форме имеются две кнопки «Заполнить». Та, что расположена в 6 разделе, заполняет только раздел 2.5 и раздел 6 для просмотра индивидуальных сведений. При выборе любого другого раздела кроме 6 становится доступна другая кнопка «Заполнить», которая собственно и заполняет все разделы РСВ-1.
(21) еще такой момент,в 293 релизе ЗикА не формируется файл pcb, в этом случае откуда заполняется раздел 6 и 2.5?
(22) lexlex89, прочтите ещё раз сообщение (12) начиная со слов «Если таковой файл не обнаружен». Вы должны сначала сформировать файлы ПФР с индивидуальными сведениями с помощью отчета «Подготовка сведений для ПФР», затем поместить их в каталог для выгрузки РСВ-1. А вообще 293 релиз — это же весна 2010 года, начало перехода от ЕСН к страховым взносам. Не могу дать никакой гарантии, что отчет будет нормально работать. Разве только если программист делал изменения в конфигурации, не меняя релиза.
на основании имеющихся файлов отчет не заполняется …ума не приложу что можно сделать вообще,обновляться если то скорее всего все необходимые документы слетят
(24) lexlex89, как то всё это сомнительно. А кто же раньше и каким образом сдавал отчетность за весь 2014 год ? Ведь на 293 релизе получить файлы для раздела 6 невозможно. Там формируются пачки СЗВ-6.
(25) вот внешняя форма отчета с помощью которой и формировали рсв
рсв1
и ещё, скажите пожалуйста у вас нет случаем 4фсс для ЗиКа за 2015 год?
(27) (28) до 4 ФСС руки не дошли. Бухгалтер заполняет вручную на сайте сдачи отчетности Контур Экстерн.
Выложенный вами файл предназначен только для отчетности за 2013 год и не соответствует требованиям 2014 года. Тем не менее в нем так же, как и в моем отчете используется процедура глСобратьДанныеДляСтраховыхВзносов. Если эти самые ДанныеДляСтраховыхВзносов есть в базе, то хоть что-то да должно заполниться. Вы пишете, что «на основании имеющихся файлов отчет не заполняется». Какие конкретно разделы заполняются, а какие нет ?
(29) не заполняется раздел 2.5 и 6,так же у меня имеется не добитая 4фсс,не заполняются поля с указанием итогов,буду весьма признателен если взглянете,конечно если вас не затруднит
(30) Вы уж извините, но разбираться с недоделанной обработкой, которая к тому же написана неизвестно для какой конфигурации — это попусту тратить время. К тому же срок сдачи закончился 25 июля. Лучше выложите те файлы, на основании которых должен заполниться раздел 2.5, но он не заполняется. Кстати, проверяли ли вы эти файлы отдельно с помощью CheckPFR. CheckXML ?
пробовали и эти ,и после обновления,фалы которые выгружаются с релиза 293 естественно не проходят проверку и куча ошибок в них,при обновлении до 352 релиза ошибки лезут по ФОМС т.е излишки какие-то
Я вряд ли смогу вам здесь помочь. Может быть попробуете импортировать файлы с ошибками в какую нить независимую программу типа Документы ПУ 5, а затем выгрузить уже с правильной структурой.
(33) спасибо! со всем разобрались! скажите а можно в вашей обработке установить отбор по организации? или куда и какой код добавить в обработку чтоб можно было выбрать организацию из списка?
(34) lexlex89, не понял, у вас в ЗиК ведется учет по двум организациям или вам нужно делать отбор в комплексной конфигурации? Для комплексной конфигурации сделана отдельная обработка РСВ_1_комплексная. В ней почти всё то же самое, только есть выбор организации, и необходимые для работы параметры берутся не из констант, а из сведений об организации.
P.S. Ещё можно делать отбор с помощью списка сотрудников на последней вкладке.
ЗиК дописанный и ведется расчет по 25 разным организациям….вот и думаю что делать,считает общую сумму по всем сотрудникам ,а их более полутора тысяч с разных организаций
(36) lexlex89, вы же скачивали обработку для комплексной конфигурации. Можете посмотреть, как там сделано. Если вкратце, то помещаете на форму реквизит «ВыбраннаяФирма» с типом «Справочник.СвоиЮрЛица». А в запрос по подбору сотрудников в процедуре ПодобратьСотрудников() добавляете
Естественно, тип справочника и наименование реквизита в справочнике «Сотрудники» поставьте такие, как в вашей конфигурации.
Добрый день!
Можете подготовить для релиза ЗИК 362.
В последнем релизе не работает заполнение раздела 2.1.
Спасибо.
(38) Сделал нужные изменения в первом файле. Пользуйтесь, если успеете. Срок сдачи РСВ-1 заканчивается 20.02.17 и больше этот отчет никогда не понадобится. В дальнейшем будем сдавать отчетность в ФНС. По этой причине второй файл даже не стал смотреть.
Добрый день!
Спасибо огромное. Реализовал своими силами. Может ваше исправление кому то еще пригодится.
Спасибо.