<?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='\
Только почему то файл от 1С 8, а где же файл от 7.7 заявлена в публикации обработка под 7.7 и картинки тоже от 7.7?
При скачке, скачивается файл Otpuskasnalogamizaperiod.epf, где расширение от 8, переименовал на *.ert, и открыл в конфигураторе все открылось!!! Проверил отчет, почему то не выводятся Отпуск очередной и Отпуск дополнительный, выводятся только Отпуск учебный и Компенсация отпуска при увольнении, может еще что-то надо настроить?
….помнится, что для зарплаты(или для 7 или для 8) на сайте был отчетик проверяющий закрытие 97-счета
При скачке, скачивается файл Otpuskasnalogamizaperiod.epf, где расширение от 8, переименовал на *.ert, и открыл в конфигураторе все открылось!!! Проверил отчет, почему то не выводятся Отпуск очередной и Отпуск дополнительный, выводятся только Отпуск учебный и Компенсация отпуска при увольнении, может еще что-то надо настроить?
автор ответит на данные вопросы? жду
Извиняюсь, почта не получалась, вопросов не видел.
1.Видимо при загрузке так переименовалось, я грузил файл «Отпуска с налогами за период.ert». Просто поменяйте расширение
2. Сейчас проверю в чем дело
Файл перезалил. Была ошибка в поиске сотрудников для расчета проводок. Теперь должны все попадать.
Главное, чтобы документ «Начисление отпуска» был расчитан, а также начислены все налоги за период, иначе в отчет не попадет, т.к. используется глПроводкиЗаПериод.
(2) Seregalink, посмотрел модуль отчета там не учитывается резерв отпусков 96 счет, у меня проводка на отпусках (очередной и дополнительный стоит проводка Дт 96 Кт 70). Если запрос делаешь через документы, есть вариант потерять какие-то документы, у меня не подбирался сотрудник у которого было исправление отпуска, переделал запрос по журналу расчетов зарплаты все сотрудники сразу появились. Сейчас делаю отчет, чтобы отпуска ложились на 96 счет, а потом подвязывалась текущая проводка сотрудника, например Дт 20 Кт 70, для учета куда же должны были пойти затраты по старому без резерва.
У нас резерв в бух вручную делается, отчет как раз для снятия с резерва отгулянного.
Переделал поиск сотрудников на запрос по ж/р и добавил учет 96-го счета.
(0) А будет ли учитываться разделение 96 счета на 2 (или более) субсчета, как указано в моей публикации
?
9: В настоящей версии, субсчета не учитываются, но если кому-то нужно, там легко переделать — просто убрать обрезку субсчета, при записи счета в таблицу: в 139-й строке счетДТ заменить на ТаблицаКорреспонденций.СчетДебета
Добавил версию с делением на субсчета
Добавил разворот по субсчетам Кт (файл Отпуска с налогами за период субсчета.ert)
спасибо, пригодилась!!!
спасибо очень пригодилось!!!
Спасибо очень помогло
Подскажите, может кто-нибудь видел подобное по 8.2?
(18) Vida,
Имхо вот этот отчет может подойти, если группировку данных в отчете изменить
не пойму — только для ЗИК?
20. Тестировалось только на ЗиК, причем довольно древней. Сейчас клиент этот на 8.2, поэтому давно не используется. Наверняка будет работать на комплексной, но не проверял. Сейчас вообще мало кто на 77 остался