<?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='\
Обработка хорошая, однако при перепроведении документа все ручные правки слетают.
да. слетают. Но это уж придется проведение документа переписывать
(2) я уже понял. пришлось допиливать
(3) А можно получить доделанную обработку? Чтобы при проведении или записи не слетали изменения?
(4) Я саму конфигурацию подпилил. Обработкой никак.
Все верно. Тут надо конфу пилить
Нет возможности корректировать, если ведется налоговый учет. Эти поля нен видны. При сохранении СуммаДтНУ перескакивает в постоянную разницу
Со временем возможно допилю
Не совсем понятен смысл обработки тогда. Посмотреть на свои изменения, которые слетят после проведения?
При корректировке вносятся изменения в регистр. Смысл не посмотреть, а изменить данные
Обработка работает, главное не перепроводить «Отражение ЗП в бухучете» , автору зачёт , давно такую искал.
(11)
но конечно было бы здорово если бы после проведения изменения сохранялись, иначе закрытие месяца всё равно перепроводит все документы
Спасибо на добром слове. Чтобы изменения после проведения сохранялись, придется изменять конфу..ничего не попишешь
(13) Подскажите, чем обусловлена необходимость корректировки проводок? Настройкой отражения в БУ можно загнать вплоть до Сотрудника/Вида начисления?
(14)Сложно ответить на данный вопрос. Люди качают, значит кому то это надо
Вот бы еще НУ можно было б редактировать……
может руки дойдут,.сделаю
Здравствуйте.Подскажите, возможно ли этой обработкой править движения документа: Отражение зарплаты в бухучете в БУ и В НУ? Подходит ли данная обработка для конфигурации Бухгалтерия предприятия, редакция 3.0 (3.0.65.84)? При обновлении конфигурации нужно ли приобретать новую обработку?
Эта обработка правит движения документа. Для того и написана. Проверялась последний раз на версии БП 64.48. Думаю, что будет работать и на 65.84. Если нет, напишите
(19) Спасибо за ответ. Просто выше вижу переписку что руки не дошли НУ сделать. Сейчас уже все ок? Проводки, статьи и подразделения в Налоговом учете тоже можно редактировать верно?
Сейчас вроде уже все сделал. Но может что-то пропустил. Хотя последнее время никто не жаловался
(21) Простите…т.е. я правлю проводки и при закрытии месяца просто все слетает как и было…А зачем тогда эта обработка для правки проводок? Просто посмотреть в ОСВ
Вероятно использовать следует после закрытия месяца
(23)Бред полный.Чтобы потом после закрытия месяца еще кучу исправительных проводок к закрытию месяца делать…по вашему мнению так, видимо так.
что ж вы хотите, друзья.. Это всего лишь внешняя обработка. И она свое отрабатывает. движения правит. А чтобы это не слетало при закрытии месяца. и при проведении документа нужно дорабатывать конфигурацию. Извиняйте
(25)Извиняем …1,5 тыс как с куста…конечно она не нужна в таком виде….так, потатить время на правки и красивую оборотку посмотреть если только…остальные обработки внешние, в т.ч. купленые здесь, фиксируют изменения проводок, а тут даже закрытие месяца не сделаешь.