<?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.0.109.2, вроде всё корректно работает. Жаль, нельзя сразу отправить из программы
(2) Спасибо, дружище, за конструктивные предложения… внес изменения в текст запроса.
Проблема: если человек когда-либо работал в организации внешним совместителем, то в отчет он не попадает.
(4) Добрый день, так и должно быть (см. п.5.8)
5.1. принятых на работу после 1 апреля или уволенных до 1 мая;
5.2. имевших в апреле листки временной нетрудоспособности;
5.3. находившихся в отпуске по беременности и родам или в отпуске по уходу за ребенком;
5.4. работавших на условиях неполного рабочего времени (в соответствии с трудовым договором), если оно составляло менее половины нормальной продолжительности рабочего времени;
5.5. находившихся в отпуске без сохранения заработной платы по письменному заявлению работника более 5 рабочих дней апреля;
5.6. не работавших по причине простоя по вине работодателя или по причинам, не зависящим от работодателя и работника (оплата которых осуществляется в соответствии со статьей 157 Трудового кодекса Российской Федерации), более 5 рабочих дней апреля;
5.7. работавших в режиме неполного рабочего времени по инициативе работодателя, если неотработанное время составило в апреле более 40 часов;
5.8. работавших на условиях внешнего совместительства;
5.9. выполнявших работы по договорам гражданско-правового характера.
Человек работал в 2008 году совместителем, затем уволился и принялся на основное место с 2009 года, т.е. в справочнике сотрудники 2 записи с одной организацией. В отчет за апрель 2017 не попадает, а в п.5.8 идет речь о работавших совместителями в апреле 2017г.
Показать
Вот тут должен быть еще анализ на работу в периоде отчета.
(6) Привет, дружище…. исправлено.
выражаю благодарность за отчет! СПАСИБО!
Скажите а для бюджетных организаций у вас нет такого отчета с отбором по подразделениям для конфигурации ЗКБУ 1.0???
(9) По отзыву в первом сообщении отчет работает на ЗКБУ 1.0.109.2. Сам, к сожалению, не тестировал.
Апрельская премия за март не попадает.
(10)Спасибо не обратила внимания а в данном отчете есть отбор по обособленным подразделениям??
(12) Есть. На последней закладке заполняете отбор сотрудников нужного подразделения.
(13)Спасибо огромное буду пробовать тогда))))
(11) кстати, да у меня тоже не попадает премия
премия у нас в апреле выплачивается за март, то есть базовый период 01.03.17 — 31.03.17
посмотрите. пожалуйста, про премию
(15) Если кроме премии нет других начислений рассчитывающихся по предыдущему месяцу, то можно залатать заменив код
на
(18) как раз таки у нас есть такие начисления: надбавка за выслугу и единовременные выплаты по кол.договору, соответсьвенно заменив код, добавил эти начисления в отчет
Скажите, пожалуйста, а для ЗУП 3.1 ни у кого нет точно такого же отчета?
(19) Условие добавьте
(21)
И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета.ВидПремии = ЗНАЧЕНИЕ(Перечисление.ВидыПремии.Премия)
Премии бывают не только ежемесячные.
Если уж в отчете расшифровка делаем сортировку по полю «Сотрудник» то надо понимать что работать она не будет как положено.
Показать
(18)
Предположим, что в апреле сотруднику платят сверхурочные за февраль, это выходит надо -2 месяца делать… Уж проще равняться на период регистрации документа, он хотя бы показывает месяц в котором произведены расчеты. Но у него тоже есть минусы, некоторые виды расчета не должны на него равняться (например: отпуска будущих периодов).
(19) (21) (25) Доброе утро, коллеги. Внес изменения в отчет в части сумм премий, начисленных по периоду регистрации в апреле, но с базовым периодом в марте.
Важно! Кто уже скачал отчет до исправления ошибок, напишите мне в личку адрес своей электронной почты. Вышлю последнюю версию.
(25)
Правила заполнения смотрите, только премия марта и 1/3 квартальной никаких февралей быть не должно.
(27) Я знаю что не должно, просто пример привел.
Хотя стоит признать, что в данном случае попасть в март через «-1 месяц» рационально.
Но не вижу я ограничения по оплате тех же сверхурочных (обычно они платятся месяцем позже или если успеет приказ то в текущем месяце на момент выплаты зарплаты) в инструкции.
6.1. в заработную плату работника не включаются: вознаграждение по итогам работы за год, единовременное вознаграждение за выслугу лет, выплачиваемые один раз в году, единовременные премии и поощрения, включая стоимость подарков, материальная помощь к отпуску, а также другие выплаты, носящие разовый характер, независимо от того, предоставлялись они отдельным или всем работникам;
6.2. при премировании по результатам работы за месяц включаются суммы, предусмотренные в апрельской расчетно-платежной ведомости, за работу в апреле или за работу в марте (если начисление премий производилось в апреле);
6.3. если начисление заработной платы или ее части (премий, других выплат) производилось по результатам работы за квартал, то в заработок работника за апрель, подлежащий отражению в форме, включается одна треть квартальной суммы, начисленной по результатам работы за I квартал (независимо от того, в каком месяце она была начислена);
6.4. если заработная плата начислена работнику за период, превышающий один месяц (например, при вахтовом методе организации работ), то данные по такому работнику приводятся в расчете на один месяц. Для этого рассчитывается заработная плата одного отработанного часа (общую сумму начисленной работнику заработной платы разделить на число отработанных часов), которая затем умножается на установленное число рабочих часов в апреле;
6.5. премии за ввод в действие производственных мощностей и объектов строительства включаются в отчет, если они начислены к оплате в апреле;
Пункт 6.5 к примеру разрешает нам учитывать некоторые премии (например: «Запуск ТЭЦ» в январе-феврале), но начисленную в апреле (за месяца которые были ранее).
Все же вопрос с периодом несколько спорный в плане расчетов, которые надо включать в отчет.
(26) Алексей, сделайте, пожалуйста, отчет под ЗУП 3.1! Я думаю, что вам будут благодарны многие.
(30) Если верить поиску, то он есть на форуме «Форма № 1 для «Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.2.213)»http://infostart.ru/public/619035/
Подскажите, пожалуйста, сотрудник весь апрель отсутствовал по невыясненной причине, следовательно начисленная зп за апрель 0, должен ли этот сотрудник попадать в отчет в графу до 7500,00?
Добрый день! Если сотрудник принят по основному месту работы,а также у него есть договор ГПХ, то сумма по основному месту работы не попадает в отчет. Неважно,было начисление по договору в апреле или не было. Может оперативно подскажете как исправить?
(32) «5. В графах 3 и 4 показываются данные о работниках списочного состава, принятых на постоянную, временную, … которым была начислена заработная плата за апрель». В данном случае работнику не начислена зп за апрель, соответственно, данные о нем не надо отображать.
(6)
Продолжает исключать сотрудников, которые когда-либо (не в отчетный период) работали по договорам подряда. Не заметил бы, если бы сам таким не был.
решил пока поменяв код
Показать
на
Показать
Благодарствую!
В очередной раз инфостарт экономит мое время))
Добрый день. У меня в отчет почему то не попадаете сотрудник по основному месту работу, на которого был оформлен прием на работу по внутреннему совместительству с 01.04.2017 года. Понятно что по внутреннему он и не должен попадать, но по основному месту работу он же был принят до 01.04.2017. А в отчете его(как основного работника) выкидывает.
Спасибо за отчет. Проверяем на ЗКБУ, ищем ошибки. Точно не работает кусок
— Неявки в РегистреНакопления не проводятся, вышли из положения отбором по ВидуРасчета и посчитали количество дней как РазностьДат. Тоже не совсем правильно, ну так процентов в 90 случаев работает.
(38) Необходимо вручную удалить этого сотрудника на закладке «Исключаемые».
(40) А если нет такой закладки?
(41) Напишите мне в личку адрес электронной почты и я скину последнюю версию отчета.
(36) да, действительно, у нас тоже есть такие сотрудники. Спасибо Вам, поменяла код, сейчас попадают такие работники.
Алексей Комиссаров (salbey), обновление обработки будет по данной проблеме?
(43) Светлана, список исключаемых из отчета сотрудников доступен для редактирования вручную в последней версии отчета. Для решения вашей проблемы достаточно удалить их на закладке «Исключаемые».
Подскажите пожалуйста, а на 2.5.117.1 — будет работать этот отчет?
(44) во вчерашнем отчете, который вы отправили на почту, у меня нет такой закладки
(36) После такой правки стали попадать внешние совместители. В итоге вернули на изначальный код,а убрали с закладки «Исключаемые» сотрудников,по которым оформлен плюсом договор ГПХ
(35) Алексей,просто низкий поклон за этот отчет, за оперативные правки ошибок, за отклик!!!!
(45) Будет.
(46) Отправил на почту последнюю версию с закладкой «Исключаемые».
(50) получила, большое человеческое спасибо!
Спасибо!!!
и от нашей расчетчицы отдельное Спасибо!
Есть ли ли выгрузка в XML? Если нет планируется ее делать?
(53) Добрый день, не планируется.
Здравствуйте! Для ЗУП 3.1 есть такой отчет?
(55) Добрый день, естьhttp://infostart.ru/public/619035/
(56) уже скачала )
А где же выгрузка в XML , без выгрузки отчет ни комильфо..
Согласен с Константином, было бы удобно реализовать выгрузку в XML. Хотя по-большому счету на то, чтобы заколотить 20 строчек в Контур (мы отправляем отчетность через него) ушло 5 минут. А так отчет сэкономил кучу времени!!! На нашем предприятии очень сложный учет зарплаты, есть и сделка и повременка и договорники, большая текучка, вообщем чего только нет. Пришлось немного скорректировать список видов расчета, но это мелочи. Проверил на вскидку из отчета человек 15, все попали с правильными зарплатами, те кого не должно быть — не попали. Большое спасибо Алексей!!!
Добрый день. Подскажите как быть с квартальными премиями? У нас есть кварталка, готовим отчет за апрель. Статистика сказала, так как она у нас положена — то берем кварталку за первый квартал, делим на 3 и ставим в апрель.
(60) Добрый день, если премия за апрель или за март, но начислена в апреле, то размер премии делится на три, при условии, что эта премия имеет тип квартальная.
(61) тут немножко другая история. квартальная премия начисляется в конце квартала, т.е. начислим мы ее в июне. а статистика требует чтоб мы добавили в зп апреля 1/3 премии за первый квартал. так как за второй еще начисления не было.
(62) Если период регистрации премии за первый квартал попадает в март или апрель, то треть суммы премии попадет в отчет.
(63) проверил. период регистрации премии за первый квартал приходится на март. в отчет за март 1/3 попадает. а в отчет за апрель не попадает.
(64) Чтобы попала мартовская премия вне зависимости от периода регистрации, необходимо закомментировать в запросе все строки, где встречается условие
И (ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &НачДата И &КонДата)
(65) спасибо за ответ. но решение не идеальное. в январе почему то попала и квартальная за 4 кв 16 года. и за 1 кв 2017. в апреле вроде все лучше, но! на премию идет серверка и районка. а отчет ее не увидит ((((. утром попробую поиграться с запросом. может что получится