<?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='\
Друже, что такое «ЗАМЕНИТЕ в своей конфигурации — Обработку ФормаСЗВ2010 — на ВНЕШНИЙ отчёт ФормаСЗВ2010.ert», я умею только в Сервисе-Доп возможности- выбирать и управлять доп отчетами, предварительно их поместив в папку Экстформс. Моя проблема в УСН177- человек уволился 30,06,10, страховые взносы за него уплачены в июле(естественно), а она, зараза, пишет ему стаж с 01,09,10 по 30,09,10(?????), другой чел уволился 10,03,10,, за него уплата взносов непонятно почему проходит во втором полугодии(хотя особых долгов по уплате взносов по предприятию не было), а стаж ему указывается с 01,12,10-по 31,12,10(????). При проверке выдаются предупреждения, что стаж есть, а начисления взносов нет. Вот такая фигня…. Поможет ли Ваша обработка решению этой проблемы?
Если «ДА», то напишите, пожалуйста, подробнее, пошагово, как воспользоваться практически Вашей обработкой (типа:Конфигуратор-конфигурация-обработки- есть там формаСЗВ2010, а как ее заменить?
Спасибо
🙂 Понимаю…
Заходим в режиме Конфигуратор нужной базы.
Жмём пиктограмку редактировать конфигурацию (левее пиктограмки с биноклем — поиск во всех текстах).
В поле поиск, вводим ФормаСЗВ2010, находим обработку ФормаСЗВ2010, она подсвечивается, правой кнопкой в выпадающем меню выбрать: «Заменить на внешний отчет(обработку)…» — указываем на файл ФормаСЗВ2010.ert из папки УСН распакованного архива — соответствующей вашей конфигурации УСН177, соглашаемся, сохраняем конфигурацию — обработка из внешнего файла интегрировалась в вашу конфигурацию.
— После этого и получаете возможность работать с обновлённой формой ФормаСЗВ2010!
🙂
:-)Понимаю…
Заходим в режиме Конфигуратор нужной базы.
Жмём пиктограмку редактировать конфигурацию (левее пиктограмки с биноклем — поиск во всех текстах).
В поле поиск, вводим ФормаСЗВ2010, находим обработку ФормаСЗВ2010, она подсвечивается, правой кнопкой в выпадающем меню выбрать: «Заменить на внешний отчет(обработку)…» — указываем на файл ФормаСЗВ2010.ert из папки УСН распакованного архива — соответствующей вашей конфигурации УСН177, соглашаемся, сохраняем конфигурацию — обработка из внешнего файла интегрировалась в вашу конфигурацию.
— После этого и получаете возможность работать с обновлённой формой ФормаСЗВ2010!
🙂
Доброго времени суток. В отчёте ПодготовкаСведенийДляПФР2010.ert есть непонятные моменты. Скажем, сотрудник уволился. Соответственно, по нему нужно, чтобы начисленная сумма совпала с выплаченной, а если он уволился в 1-м полугодии, то чтобы остаток не уплаченной суммы появился в отчёте за 2-е полугодие. Я понимаю, что это сделать непросто. Но проблема ещё и в том, что если удалить этих сотрудников из пачки, то к великому разочарованию сумма к распределению тоже уменьшается.
Отсюда вопрос. Откуда берётся сумма выплаченных взносов и как она распределяется?
отличная работа
http://infostart.ru/public/80216/
спасибо
только, обрати внимание на это:
(для УСН это строка 12011)
Спасибо за ответ. Соответственно пожелание. Хорошо бы описание всех косяков иметь в одном месте. Файл прочти — очень удачное место для этого.
— (6) — Креатив > — Невозможно быть во всех местах сразу…. — У меня тоже есть работа на выезде и желание отдохнуть, потому, как только возникает проблема, берусь анализировать…
Вообще-то, судя по анализу в отчете ПодготовкаСведенийДляПФР20
Здравствуйте,мучаюсь с отчетом в пфр,умные люди подсказали ваш сайт.Я когда захожу в конфигуратор окно-пиктограмма редактировать конфигурацию -не активно.У нас 1с 7.7. усн 177 релиз.Прошу помощи.Спасибо
(8) — еленав > — У вас базовая версия (не редактируемая конфигурация). Если вы договоритесь с кем-то, кто работает с типовыми конфигурациями, взять копию вашей базы для преобразования в типовую — не базовую — для последующего редактирования, тогда сможете воспользоваться предлагаемыми здесь настройками для сдачи отчетности, не трогая свою базовую до очередного обновления, когда, возможно, часть проблем будет снята, но уповать на дядю не стоит — так как вообще не известно, сколько ждать исправления проблем от фирмы 1С.
— если сбросите zip-архив базы на п/я, попробую помочь.
— отправил. 🙂
Обработка классная! Помогла 🙂
Отдуши, масть)
никто не делал обработку для эспорта из xml в pf?