<?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='\
Всё отлично! Спасибо! Используем на ERP 2.4.5
Не работает на Управление торговлей, редакция 11 (11.3.3.231) , в демо режиме предыдущая версия работала
(2) Приложил версию для УТ 11.3
Супер! Только не понятно куда добавлять отсрочку?
(4) Не понял вопроса.
(4)реквизит «Дата платежа» документа реализации, он заполняется из графика в соглашении, можно и вручную, типовой функционал
Почему то не везде указывается «просрочено», если дата просрочки больше возможного указанного срока в соглашении (договоре)
(7) Флаг «Динамический расчет дат оплат» взведен?
(8) Да
(8)
(10) Посмотрите в настройках параметр «Разбивать по интервалам» — если он равен «дебиторку», то просрочка будет вычисляться именно по дебиторской задолженности, если «кредиторку» — по кредиторской.
если в настройка СКД убрать контрагента и организацию, то отчет не свернет оплаты по партнеру, т.е. сворачивание происходит только по аналитике, есть в планах подобные доработки, чтобы оплаты сворачивались по одному из выбранных полей?
(12) нет, дорабатывать ничего нового не планирую
Добрый день! Есть ли вариант развернуть по срокам, но осаткти собирать не по партнеру, а по конрагенту?
В чём проблема, есть сеть, Контрагент — для взаиморасчетов, партнер — торговая точка, оплата разнесена не совсем коректно правильный контрагент но не правильный партнер (в палтежках указывается и тот и тот), и взаиморасчеты старые не закрываются, доже если из структуры отчета убрать партнера
(14) Напишите в личку — обсудим
Доброго времени!
Возможно ли собирать долги по срокам в разрезе контрагента, а не партнера (контрагент — плательщик, партнер — торговая точка).
Когда в структуре убрать партнера, долги не списываются по фифо в разрезе контрагента, так как собираются по партнеру
или подскажите как это исправить???
не увидел ответа, сейчас напишу
(17) В личке что-то сломалось похоже — не отсылаются сообщения. Напишите на почту eeeio@ya.ru
написал
Отчет формируется всегда на начало дня, и отгрузки за текущий день не учитываются, даже если ставить время 23:59:59
Купил три дня назад, и после обновления на УТ (11.4.6.166) перестала работать…
(21) Посмотрел изменения в УТ 11.4.6 — в реализацию и приобретение добавили новую табличную часть «Этапы оплаты» и убрали реквизит «Дата платежа». Изменения не то, чтобы кардинальные, но и не просто «имя реквизита сменилось». Выложил версию отчета для УТ 11.4.6 — она работает, но пока не использует новый механизм уточнения этапов оплат в накладной.
(20) Да, спасибо за замечание. Попозже сделаю более прозрачно.
(22) Протестено на ERP 2.4.6.160. Нет теперь ошибки и всё работает!
Коллеги, режим взаимрасчетов «Онлайн» в 2.4.6.160 работает с ошибками (в проводках по рег.учёту при возврате от поставщиков, например, суммы с минусом). Будьте осторожны! Я не рекомендую пока включать этот режим.
Скачал обновленную версию для 11.4.6. Она как-то странно работает. Если сформировать отчет — отчет формируется. Но, при повторном формировании — вылетает с ошибкой <временная таблица уже существует «Шаг268435456» >.Пробовал разные варианты: удалял отчет полностью и добавлял заново, менял внутренний идентификатор формы через конфигуратор — чтобы настройки сбросились (думал из-за вариантов), заметил что в новой версии есть форма отчета — удалял ее и указывал стандартную форму из конфы — ошибка не уходит. Просьба исправить.
(25) Ошибка подтверждается. Планирую адаптировать отчет и исправить ошибку на праздниках.
(26) Получилось адаптировать?
(27) Не успел. Сегодня-завтра обязательно сделаю.
(25) Исправил ошибку и замечание из (20), но адаптацию не успел пока сделать.
(29)
Для 11.3 не исправляли?
(30) Нет. Но планирую.
(31) Спасибо, будем ждать.
Добрый день! До июня 2018 году расчеты по контрагенту были по договору, потом включили соглашения. В отчет с этого момента перестали попадать данные по Приобретению товаров и услуг. Вот отчет:https://yadi.sk/i/B6DQoYzmsp1k8g , а вот универсальный отчет по регистру Расчеты с пост
https://yadi.sk/i/J6Z77lJAnszolw https://yadi.sk/i/6UVUMCBkyNXivg https://yadi.sk/i/oaVxeTHLYebQ3A Аналитика учета по партнерам: https://yadi.sk/i/QqblDH-Urw7aZw и https://yadi.sk/i/KVwRPcprqmMINw
авщиками:
(33)Крепите картинки к посту, внизу есть кнопка. А не по сторонним сервисам!
(34) Добрый день! До июня 2018 году расчеты по контрагенту были по договору, потом включили соглашения. В отчет с этого момента перестали попадать данные по Приобретению товаров и услуг. Вот отчет: , а вот универсальный отчет по регистру Расчеты с поставщиками: Аналитика учета по партнерам: и . Вот вопрос с картинками, ответ будет, что в таком случае делать?
(28) Добрый день!
Подскажите, еще не готова версия для 11.4.6?
Пока занят, к сожалению. Текущая версия работает нормально, но не учитывает график платежей, установленный в документе реализации.
Добрый день! А подскажите, пожалуйста, а при возврате товара от покупателя долг уменьшается, но все равно эта сумма попадает как просроченная. Как то можно это подправить или это было задумано изначально?
(39) Добрый. Киньте скрин, пжл
В 11.4.8 перестала запускаться, похоже перенесли процедуры в общих модулях
{ВнешнийОтчет.ЗадолженностьПоИнтерваламФИФО_УТ_11_4_6_вер_39.Форма.Основная.Форма(83)}: Метод объекта не обнаружен (ТипОтчета)
ТипОтчетаСтрокой = ВариантыОтчетовКлиентСервер.ТипОтчета(Параметры.Отчет, Истина);
(41) Спасибо за сигнал. Занялся исправлением.
(42) Доброго времени суток, подскажите получилось исправить ошибку которая описана в (25)
работающая версия для 11.4.8
https://yadi.sk/d/hmp84ipx_QY9xw
(44)Спасибо большое
Не работает на версии ERP 2.4.8.84
Поле не найдено «ДатаПлатежа»
(46) Переименовали реквизит в конфигурации. Добавили к нему слово «Удалить»
(46) Извините за задержку с ответом. Вам нужна более новая версия отчета (тут выше выкладывал)
Доброе время суток, при запуске обработке выдает ошибку
«{ВнешнийОтчет.ЗадолженностьПоИнтерваламФИФО_УТ_11_4_8_вер_39.Форма.Основная.Форма(1231)}: Метод объекта не обнаружен (ПараметрыРасчетаПоказателейЯчеек)
ПараметрыРасчета = ОбщегоНазначенияСлужебныйКлиент.ПараметрыРасчетаПоказателейЯчеек(ОтчетТабличныйДокумент);»
Управление торговлей, редакция 11 (11.4.9.70)
Спасибо! Замечательный отчёт, автору низкий поклон.
скачали ваш отчет для ут 11 4.5(первый вариант), ошибка с шагом, приведенная выше(в посте 25) вылетает при повторном формировании отчета. напишите что нужно исправить плз)
(51)
спасибо огромное автору, все исправлено оперативно