<?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='\
учитывается в обработке частичное погашение долга или кредита?
здесь можно выбирать другой счет начисления процентов, или только 91?
(2) waithaispa,
Можно выбрать любой счет учета как для процентов к уплате, так и процентов к получению
подскажите еще как добавить нужные счета — у меня 67,3
и будет ли ваша обработка считать проценты, если у договора займа в 1с тип — «Прочее», или это не имеет значение?
(4) waithaispa,
Если вы программист сами легко добавите. Если нет, напишите на algora@rambler.ru какие счета нужны — добавлю
Тип договора не важен
Саму операцию делает и договора в операции за месяц есть, но сумм нет — пусто.
Я правильно заполнила договор? Ваши доп . реквизиты внизу на фото
все получилось! спасибо за оперативную помощь!!!!
спасибо вам большое за обработку!!!!!!!!!!!!!!!!
вы очень облегчили этим бухгалтерский труд!!!!!!!!!
(1) oleg212,
Да
обработка учитывает изменение ставки рефинансирования?
не дождалась ответа, скачала обработку. ставку рефинансирования не учитывает 🙁
Операцию создает, но внутри пусто. Все дополнительные реквизиты заполнены
(3) в последней версии БП 3.0.50.12 закрыли возможность добавления реквизитов в договора. Что делать?
(5)
Добрый день, мы скачали вашу обработку. Добавьте, пожалуйста, в обработку счета 67.01, 67.03, 66.03, эл.адрес sinelnikova77@mail.ru
(12) У нас версия БП 3.0.50.12 добавление реквизитов к договору открыто
(13)
Спасибо за оперативную помощь!!! Обработка работает замечательно, рассчитывает по всем нужным счетам. Для полного удобства не хватает только печатной формы расчета.
Бухгалтерия предприятия, редакция 3.0 (3.0.51.21)
«Дополнительные реквизиты» добавил.
Обработку зарегистрировал в разделе «Дополнительные отчеты и обработки» появилось в Сервис / Дополнительные обработки, но не запускается.
Через меню «Файл»->»Открыть» запускается, но выглядит странно.
По команде выполнить создает пустую проводку в «Операции, введенные вручную, впрочем, у Вас на скинах тоже видны две пустых операции.
Разумеется, ни каких расчетов не производит.
.
Саму операцию делает и договора в операции за месяц есть, но сумм нет — пусто.
доп реквизиты добавил и заполнил их
где то еще сумму займа надо указать? где?
Здравствуйте. Сумма определяется как сальдо по счетам кредитов/займов
если зарегить обработку, то она не запускается. только через файл открыть
(19) исправил, в конфигураторе, в свойстве элемента формы, выставить свойство режим открытия окна = НЕЗАВИСИМЫЙ
(20) спасибо!
(21) Только что повторно скачал обработку, по прежнему не запускается. только через файл открыть
(22)в конфигураторе, в свойстве элемента формы, выставить свойство режим открытия окна = НЕЗАВИСИМЫЙ
(23)
вставил строку:
РежимОткрытияОкна = РежимОткрытияОкнаФормы.Независимый;
Всё заработало, спасибо.
Добрый день! Можно ли и нужно ли (оправдано с точки зрения автора) написать обработку для расчета процентов по договорам займа, чтобы в базе 1С БП 3.0 появились документы Оказание услуг и Поступление услуг.
ОСН, раздельный учет НДС. Нужно для документа распределение косвенных и для Декларации по НДС для заполнения листа 7. Спасибо!
(25) Добрый день, не сталкивался с таким требованием.
(25) Добрый день! Очень нужно.