<?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='\
Для бухгалтерии 2.0 такого отчета нет?
Для бухгалтерии 2.0 нет, но если есть желание, можно будет сделать.
Отчет удобен и функционален. Вопрос-почему остатки на начало периода минусовые даже по новым только открытым счетам?
(3) valya977,
Действительно на начало периода отчет может показывать отрицательные остатки, даже если вы пытаетесь расшифровать его по реквизиту «Документ движения (регистратор)». Происходит это потому, что отчет пытается показать вам итоговую строку вначале расшифровки. Если же вам необходимо восстановить картину событий по реквизиту «Документ движения (регистратор)» с отображением реальных остатков на начало и на конец «движения документа», тогда необходимо использовать группировку строк по реквизиту «ПериодСекунда», поставив его выше реквизита «Документ движения (регистратор)», как показано на рисунке. Если я не понял вопроса и вы имели ввиду что то другое, тога прошу вас описать проблему подробней.
А в чем отличие от стандартного отчета из СТАНДАРТНОЙ поставки в УПП и КА ???
(5) motorkuzbassa.it, Практически не в чем, за исключением одной не значительной детали. Стандартный отчет, вы можете сформировать только по оборотному ресурсу, а в этом отчете можно вывести и обороты и остатки.
Да и конечно есть еще одно отличие, в стандартном отчете есть возможность выводить ресурс, точнее его представление в «валюте упр учета». Такую возможность я тоже учту и вскоре постараюсь обновить файл.
День добрый, у вас на модуле объекта пароль стоит, можно как-нить снять, просто отчет хотелось бы весь глянуть)
А ничего что обработка ДЕМО и об этом нет ничего написаного?
(7) batuevds, исправления внесены? Сейчас можно выводить данные в валюте упр. учета или еще нет?
И еще один вопросик — работает ли отчет на «Управление торговым предприятием для Украины»? Заглядывал в конфу, по идее структура «денежных» регистров там не отличается от УПП…
(9) draf,
Ограничение демо режима снято, теперь отчет работает в боевом режиме. При публикации не обратил на это внимания.
(10) realmrak,
Отчет должен работать на любой «локализованной» конфигурации УПП. Если это утверждение не верно, просьба сообщить, для исправления.
(10) realmrak,
Возможности работать с валютой упр. учета пока нет.
А зачем пароль вешать? Вот скачал, в УТП запуститься не хочет, незначительные отличия в УниверсальномОтчете (нету там в УТП одной переменной). Может сам бы и подправил, а из-за пароля ничего сделать не могу…
В УПП таки запускается, но в разрезе проектов не показывает остатки (только общие). А это меня как раз интересовало… Я, конечно, понимаю, что там оборотный регистр и все такое, но можно было и указать в описании, что остатки выводятся далеко не по всем доступным измерениям. Жаль только, что потратил стартмани.
подскажите, пожалуйста, под БП 2.0 будет работать или нужно допиливать?
Бухгалтер попросил сделать отчет о движении денежных средств по месяцам за выбранный период. Решила посмотреть что-то готовое. У нас КА. Будет ли работать отчет в КА?
Если в отчете поставить отбор по статьям движения денежных средств, тогда не показывает начальные остатки по счетам.
И пароль не убрали!
Нужный отчет, только скачать пока не могу — все стартмани потратились. В любом случае придется дорисовывать, потому как бухи желают еще и с НДС и сам НДС отдельной колоночкой.
Здравствуйте.
Хотела воспользоваться вашей обработкой, но выдает ошибку.
Форма.Форма.Форма(25)}: Значение не является значением объектного типа (мДействиеПолеВводаВидСравненияПриИзменении)
УниверсальныйОтчет.мДействиеПолеВводаВидСравненияПриИзменении = Новый Действие(«ПолеВводаВидСравненияПриИзменении»);
У меня
http://www.1cbit.ru/arenda)
http://www.1cbit.ru)
1С:Предприятие 8.3 (8.3.5.1383)
БИТ.Учет аренды, редакция 1.2
Copyright © 2009-2014, ООО «БТ». Все права защищены. (2.0.64.3/1.2.45.1) (
Copyright (С) ООО «1C», 2009 — 2015. Все права защищены
(
Можно ли что то сделать?
Скачал отчет, в нем необходимо ограничнитьб данные только по кассе, а никак, зачем то пароль на модуль. Зря потратил стартмани.