<?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='\
в форму попадают удержания?
Да , попадают.
Отбор по учреждению не работает, в форму попадаю все сотрудники по всем учреждениям, в базе несколько организаций. И не выводит в форму подразделение.
(3) Спасибо за замечание, не было баз, где несколько учреждений. Файл перезалила. Напишите почту-кину исправленный вариант
Не работает отбор по подразделению (alfairus@mail.ru)
Извиняюсь, все работает:)
Итог по колонкам считает?
(7) да
Замечательная обработка автору СПАСИБО!!!!
Здравствуйте, отличная обработка, но на последнем релизе Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.4.171) выдает ошибку:
{ВнешнийОтчет.РасчетнаяВедомость.Форма.Форма.Форма(152)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.
объект: ‘Документ.ОтгулСписком’, поле: ‘Дата’; право: ‘Чтение’
{(130, 15)}: Поле не найдено «Т.ФизическоеЛицо»
ЕСТЬNULL(Т.<<?>>ФизическоеЛицо, НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО
по причине:
{(130, 15)}: Поле не найдено «Т.ФизическоеЛицо»
ЕСТЬNULL(Т.<<?>>ФизическоеЛицо, НЕОПРЕДЕЛЕНО) <> НЕОПРЕДЕЛЕНО
(10) У меня ошибка не воспроизвелась. На старом релизе отчет формировался ? Вы ее под полными правами формируете ?
Нашел в чем ошибка.
Дело в том, что 1с накосячила с правами RLS в последнем релизе. на документе отгул списком.
В 3.1.5 из регистра КадровыеДанныеСотрудников убрали поле ВидЗанятости. Корректно ли работает отчет при наличии внутренних совместителей в 3.1.5 ?
(13) пока не работает на 3.1.5, на днях выложу исправленный вариант
Когда выложите исправление?
Когда планируете выложить исправление?
Отчет находится на стадии тестирования, сейчас в него в раздел начислено попадают доходы в натуральной форме, а в удрежано зачтенный ндфл и ндфл к зачету , для кого это не приницпиально и надо срочно пришите адрес -вышлю. Исправленный вариант постараюсь выложить в течении нескольких дней
Убедительная просьба к автору !
Надо решить вопрос с «подработчиками». Нужно сделать как в типовом отчете (см.скрины). Я веду речь о версии для 3.1.5.
(18) Замечание принято. На базах где тестировалось не было подработок , посмотрю обязательно
А для ЗУП 3.1 что-нибудь подобное есть? Или может этот отчет срабатывает?
(20) отчет на зуп работает, проверяла на 3.1.5.129
(21) Делаем выплату аванса, выплата попадает в графу «Заработная плата», хотя она выплачена в межрасчетный период. Как это поправить?
(23) в типовой 0504402 аванс тоже попадает как з/п. Потому что наверное, аванс -это з/п за первую половину месяца. Поправить можете в модуле основной формы . Найдите по поиску перечисление.ВидыВзаиморасчетовССотрудниками.ВыплатаАванса и пропишите какие выплаты куда относить
Доброго дня! Почему у вас в запросе выплата заработной платы за предыдущий месяц включается в межрасчет текущего, ведь в таком случае графа к выплате формируется не правильно?
Пардон, я понял, что в моей версии 3.1.5 не учитывается начальное сальдо, поэтому к выплате ерунда получается. Просьба добавить по возможности начальное сальдо и в версию для 3.1.5
(26) та, которая с сальдо, она и есть для 3.1.5-забыла уточнение добавить в название файла , напишите адрес, вышлю
(27) Отписал в личку
А подскажите, на 3.1.6.37 работает?
Ап. Жду ответа на вчерашний вопрос — не тестировали еще?
(30) работает
(24) спасибо
не работает на 3.1.6. ругается на вид занятости-этот реквизит с какого то релиза убрали-он не используется.даже стандартные отчеты по нему не работают.
3.1.6.37 релиз.пишет»Поле не найдено»КадроваяИсторияСотрудниковСрезПоследнихВид Занятости» и еще там что то в этом же духе.А нам нужна разбивка на основных и внутренних совместителей.
(34) У Вас скорее всего старая версия отчета , которая до 3.1.5 была -напишите адрес вышлю рабочий вариант . Отчет для 3.1.5 работает на 3.1.6
спасибо.напишу.
На 3.1.6.54 не работает такая же ошибка «Поле не найдено»КадроваяИсторияСотрудниковСрезПоследнихВид Занятости», можете выслать рабочий вариант на почту nvkom@.bk.ru.Заранее, спасибо.
nvkom@bk.ru — вот на это адрес, в предыдущем сообщении немного неправильно написано
(38) отправила
Спасибо, я уже сделала сама
отправьте плз исправленный вариант alfairus@mail.ru (прежде всего необходимо корректное отображение НДФЛ к возврату
Здравствуйте. При формировании отчета пишет «Неверное имя колонки», куда копать? Имена начислений посмотрел — вроде ничего особенного. Релиз 3.1.7.61. Формирует февраль нормально, март не хочет, список начислений на скриншотах в приложении.
(42)Имена начислений даже если особенными будут , на отчет не поваляют…. Проанализируйте какое начисление (удержание) появилось в марте, которого не было в феврале или отладчиком воспользуйтесь или базу вышлите — по картинкам я Вам не помогу
(42)в марте у Вас появился Совм. Обработка путается между Совм. И Совмещение(субв). Измените наименование какой-то из них, но только а начале наименования.
(44)
Я менял, не помогло. Именно его.
(43)
попробую еще раз проанализировать, если не выйдет — буду брать базу и вам присылать.
(45)Странно. У меня именно в этой ситуации сработало.
Здравствуйте! Вы еще не тестировали в ЗиКГУ 3.1.7? Есть ли такой же отчет для первой половины месяца?
три файла , и какой качать непонятно
зачем на один отчет выкладывать три файла
(49) разные версии были. Оставила один
Здравствуйте. При наличии нескольких сотрудников по одному физ.лицу (внутреннее совмещение, напр.) неправильно считается НДФЛ по каждому, и соответственно, нет арифметики Начислено — Удержано — Выплачено = Сумма к выдаче.
В таком виде нет смысла в отчете.
Здравствуйте. При наличии нескольких сотрудников по одному физ.лицу (внутреннее совмещение, напр.) неправильно считается НДФЛ по каждому, и соответственно, нет арифметики Начислено — Удержано — Выплачено = Сумма к выдаче.
В таком виде нет смысла в отчете. Мне кажется, что в отчете нужна группировка по физ.лицу, а не по сотруднику.
(52) приложите скрин шот по этиму же сотруднику типовой ведомости 0504402. Там все нормально ?
(53) Да, позже уже проверил на типовой 0504402 и 0504401 — такая же проблема. Написал в 1С. Может это не сложно исправить, чтобы их не ждать?
(54) Это не ошибка в отчете , это данные в программе. Надо смотреть по регистрам, анализировать и исправлять . Может руками ндфл правили . НДФЛ это же вообще большая беда в ЗП 3….
Добрый вечер! Подскажите, пожалуйста, будет обработка работать на ЗИКГУ 3.1.8?
(56) да , проверила на 3.1.8.246
На ЗУП 3.1.8.246 будет работать отчет?
А можно добавить колонки — отработано дней и часов?
На 3.1.9 с большим количеством сотрудников работает?(перенос на несколько листов)
(60) напишите адрес, скину-проверите и отпишитесь . 3.1.9 не ставила пока
(61) heellga@mai.ru
Здравствуйте. Можно ли добавить в параметры отбора, отбор по документу. Что бы можно было выбрать начисление по определенным документам.
Жду ответа вопрос!!!!
(63) отбор по документу пока не планируется
(61) Так все-таки на 3.1.9 работает?
(66) да
Здравствуйте. Напишите на leos_78@mail.ru по трудностям в отчете, не могу разобраться.
(65)
Вообще лички нет, напиши на почту по отчету есть предложение.
Здравствуйте. работает в конфигурации ЗКГУ, редакция 3.1 (3.1.10.78) ?
(70) Да эта обработка работает на 3.1.10.78
а нет ничего подобного в виде печатной формы документа Ведомость в банк (кассу)?
Расчетчики требуют, чтобы вид начисления «Оплата по окладу» в начале был, а не середине отчета, ссылаются на правила оформления данной ведомости. И еще «Дней/часов» с учетом только табеля, а туда и б/л включаются, в т.ч. переходящие некорректная картина получается. Если возможно, выслать на почту Angelok82@inbox.ru. Спасибо