<?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='\
В ЗиК 7.7 выдает ошибку :
Период.ИспользоватьОбъект(«СостояниеФизЛица», Сотрудник);
{N:SOFTTD1CIKPRBASIC_SQLEXTFORMSА_РЕЗЕРВОТПУСКОВ.ERT(98)}: СостояниеФизЛица не является константой или периодическим параметром!
Отзывы из отпуска учитываются (документы сторно, исправления)?
(1) Это потому, что в отчете не учитывается расположение сотрудников по группам в справочнике «Сотрудники»
В ЗиК 7.7 выдает ошибку :
Период.ИспользоватьОбъект(«СостояниеФизЛица», Сотрудник);
{N:SOFTTD1CIKPRBASIC_SQLEXTFORMSА_РЕЗЕРВОТПУС КОВ.ERT
да, скорее всего это из-за групп в справочнике Сотрудники, у нас их нет просто.
Заменил отчет. Будут пропускаться группы и помеченные на удаление.
Если у кого-то еще проблемы возникнут — пишите, не стесняйтесь, постараюсь помочь.
Классная штучка, огромное спасибо. Но есть проблемка: есть сотрудники, у которых не верно считает не использ. дни отпуска (принят 11.01.2010, отгулял в августе 14 дней, а на сегодняшний день в резерве 35 дней отпуска) в чем может быть проблема? Спасибо.
Вот бы для ЗУП 2.5 такой отчет.. а то пришлось самому делать)
Но есть проблемка: есть сотрудники, у которых не верно считает не использ. дни отпуска (принят 11.01.2010, отгулял в августе 14 дней, а на сегодняшний день в резерве 35 дней отпуска) в чем может быть проблема?
Извините, раньше не мог ответить, только добрался до форума.
Насколько я понял дата приема и резерв правильно считаются, а вот отпуск похоже не учитывается. Нужно проверить, а попадают ли вообще документы отпуска в выборку (например, выгрузить ТЗдокументы в таблицу значений на форме). Дальше два варианта: отпуска в выборку не попадают, тогда надо смотреть почему, либо попадают, но отпуск по сотруднику все равно не считается. А не считаться может по разным причинам, тут бы желательно запустить отладчик на этом сотруднике и посмотреть что происходит, почему отпуск пропускается. Но если с отладчиком не дружите — напишите, придумаем другой вариант.
Вещь хорошая, но не попадает выплата Компенчсаций за неиспользованный отпуск
а для КА или ЗУП есть чтолибо подобное?
Попадают сотрудники,
если в документе ПриказОПриемеНаРаботу установлена дата окончания работы
т.е. принятых на период работы, по ним документов об увольнении нет.
Вставляем начиная со строки 116
😀
Спасибо, немного допилил, бухи счастливы
Вещь хорошая, но не попадает выплата Компенчсаций за неиспользованный отпуск
Извините, сейчас не могу поддерживать отчёт, 8.2 занимаюсь. Как вариант, вы можете либо сами попробовать доделать, либо отдать программисту на небольшую доработку.
Количество дней без сохранения считается в сумме за все года и получается больше 14 (например 8 в 2010 и 8 в 2011). Хотя должно считаться раздельно для каждого года, и тогда эти периоды не учитываются.
Для себя исправил.
Да, не попадает выплата компенсаций за неиспользованный отпуск
Да, не попадает выплата компенсаций за неиспользованный отпуск
да уже видимо бесполезно обсуждать этот отчет — автор уже в пространстве 8.2
не работает так как надо…
пришлось допиливать
не работает так как надо…
пришлось допиливать
Рад бы помочь, но возможности нет 🙁
А в комплексной работает?
Попробуйте. Если не получится — ничего не сломается.
хотелось бы скачать, но коменты оставлять надо…
А что без комментов не даёт скачать?
Доработала под требования своего отдела кадров. Спасибо за отчет, ОК доволен!
У наших работников есть дополнительные отпуска. И, вообще считаю, за основу в таких отчетах следует брать реальную информацию из журнала расчета зарплаты.
И, вообще считаю, за основу в таких отчетах следует брать реальную информацию из журнала расчета зарплаты.
Ключевой момент здесь: «пожелание наших кадровиков». А это значит что им не важно как правильно нужно извлекать данные, главное чтоб это было им удобно. Поэтому данные берутся из документов, а не из журнала.
Скачал, попробовал отчет.
1. Прогулы,отпуска по уходу до 3-х лет, учебные отпуска, компенсации отпуска (должны вычитаться из отпускного стажа)
2. Нужна какая-то доработка по дополнительным дням отпуска.
3. Дни, сверх 14-ти дней за свой счет, вычитаются за каждый рабочий год отдельно.
Да без учета дополнительных отпусков нормально. А под 8.2 такой не делали?
Только в перспективе. Тут (на инфостарте) есть отчет по резервам для 8.2, правда он платный.
неправильно считает
Есть ошибки. Но в целом не плохо. Спасибо!
Очень актуальный обработка. Бухам как всегда все нужно вчера, а тут такой подарок.
Спасибо большое
Может у кого нибудь есть,поделитесь плиз…..Стоит комплексная версия 7.7 надо как всегда вчера,резерв отпусков, чтобы учитывались: в счет отпуска, дополнительный отпуск (Вредные условия труда),оечредной отпуск,и не входили в расчет отпусков по учебе, по уходу за ребенком и без сохранения зп. ОЧень очень нужно.
один раз пригодился отчет, видимо настает время опять его запустить
спасибо огромное, хорошая обработка! Очень помогла для формирования отчетности!! Единственно, неправильно считает резерв отпусков у сотрудников находящихся в декретном отпуске
В отчет не попадает компенсация за неиспользованный отпуск, а так отлично..спасибо
Не хватает фильтра «стандартного» для зик по сотрудникам, а так +
Не хватает фильтра «стандартного» для зик по сотрудникам, а так +
Да, очень не хватает фильтра!! А так большое спасибо!
а мне понравился отчет немного доработать и все готово
Большой вам «ПЛЮС», как раз то, что искала. У меня несколько маленьких фирм, всегда забываю их отпуска контолировать, как правило фактически сотрудники в другое время ходят, а проводить все таки надо как положено. Поэтому вам большое гран мерси!
Правда очень полезно, вот только при расчете сумм надо брать среднедневную за месяц или за 12 месяцев?
Спасибо большое, очень пригодилась обработочка!
Спасибо большое, очень пригодилась, но надо немного доделать…
Почему то средний не выводит, ан двух базах проверяла((((((((((((((((((((((((((
Что-то такие противоречивые отзывы… Так и не понял стоит ли скачивать и использовать в работе или повременить из-за довольно многих недоработок…
(52) Boroda, рад бы доработать, но базы подходящей нет под рукой. Пришлось оставить так.
(52) Boroda, Фигня. Безграмотная поделка, к тому же, без необходимого функционала.
Мы с бухтой сделали это намного круче …
(54) Кошки рулят,
вот и пришлите г-ну Boroda вашу грамотную разработку 🙂
(55)
1. Не могу. Авторов-то двое — как же можно раздавать чужое? На этом ресурсе об авторское право ноги вытирают, но это НЕ значит что все кто здесь такие.
2. Не хочу. С какой радости?
Спасибо
Большая просьба дать ссылку на этот отчет или закинуть на мой ящик msa102@mail.ru
mrdug писал вам сообщение с этой просьбой и удалили похоже…
Заранее благодарен всем кто отзавется!!!! 🙂
P.S.
нет у меня к сожалению валюты сайта…
В 1С зарплату ведем с 2004 года, а почти все работники приняты на работу намного раньше. Соответственно «использовано» дней считает только с 2004 года, а «заработано» с даты приема на работу. Как быть?
в шапке уже исправленный отчет лежит?
Может и опоздас с коментарием….
но пока минусов довольнотоко много…
1. не учитывает административные отпуска по отработанному времени.
2. не учитывает дополнительные дни отпуска.
3. не учитывает неоплачиваемые дополнительные дни отпуска
плюс найден только один
выдает цифры с которыми делай что хочеш(
Весьма актуальный вопрос. Спасибо. Плюс.
Спасибо большое хороший отчет ) У самого руки не доходили для 7.7 написать Плюс
не взлетела:
Если ТаблицаОтпуск.ДнейДопОтпуска >0 Тогда
{D:1C_BASES1С ERTЗИКОТПУСКРЕЗЕРВОТПУСКОВ1.2.ERT(229)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)