<?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='\
Собрать готовые отчеты в один флакон — тоже нужная работа!
Извините, а для бюджетки 6.1 подойдет?
(2) Управление отчетами — да, а сами отчеты нужно пробовать. Все-таки Бюджет, там совсем другие субконто…
Посмотритеhttp://infostart.ru/public/14474/ и не изобретайте велосипед с квадратными колесами
(4)
.
У azernot другая заточка.
беглый осмотр показал — что у Зернятко инструмент более предпочтительный.
(6) «Нас уже 103060». Простых пользователей — 98 %. Для запуска серьезных работ нужен специалист, время и контакт с клиентом.
Работу регламентированных отчетов знают все. Просто и надежно.
С уважением отношусь к механизму azernot’а . Его обработка без доработок, с сохранением авторства использована мною в трех проектах.
Ориентировался на бухгалтеров, пользователей, находящихся без поддержки 1С-ника . Фишка не в управлении отчетами, а в составе пакета…
(7) Пока минусую из-за цитаты «Фишка не в управлении отчетами, а в составе пакета…»
Где состав пакета? где хотя бы краткое описание каждого отчета?
Поправишь, минус уберу.
(8)
См СкринШоты, рис 3,4,5.
Да и размер скачивания 321 кб
(9) Спасибо. Минус убрал.
Отчеты понравились.Очень.Только вот, самый нужный для меня..Налоги. Есть пару вопросов. Ну тот же Пенсионный. Вначислении идет разбивка сумми по фондам (32,2%,4%,2%), а вот с «Оплочено» у меня идет одной суммой,попадая ПФ с з/п с банковской выписки.Хотя…платежек было 3(32,2%,4%,2%),и в банковской выписке проходит тоже три суммы, а не одна общая, как показано в отчете. В итоге, остатки к начислению в отчете,не совпадают сфактическими по бух учету. Может кто-то объяснит в чем проблема???
отчеты понравились, вроде иду, но пока проверяю еще..
Отчет Необоротные активы не захотел на моей конфе работать, не давал выбирать план счетов, пришлось маленько подправить под себя. Может кому то пригодится:
Если ((сч.Забалансовый = 0) И ((сч.видсубконто(2) = ВидыСубконто.НеоборотныеАктивы) или (сч.видсубконто(3) = ВидыСубконто.НеоборотныеАктивы)))
//Если (сч.Забалансовый = 0)и ((строка(сч.видсубконто(2)) = ВидыСубконто.НеоборотныеАктивы) или (строка(сч.видсубконто(3)) = «Необоротные активы») )
(13) a237, Пожалуйста
В публикации упомянута Украина…
Вопрос- данный продукт будет работать в российских конфигурациях?
(15) Управление внешними отчетами — да, сами же отчеты затачивайте под себя. В России другой план счетов и субконто.
(16) Спасибо!
То есть это навигатор по отчетам? Комплектовать самостоятельно или есть набор по умолчанию?
(17) По умолчанию — в пакете много отчетов и обработок. Прочитайте описание настройки и ВПЕРЕД самостоятельно. Навигатор — для любой конфигурации 7.7.
(18)
Загрузил…Попробовал.
Сам инструмент нормально загрузился, работает.
Первые три папки с отчетами (Налоги,денежные счета и ТМЦ), судя по
всему, не от моей семерки.
При загрузке ругаются. Остальное (ОСВ и Технологические обработки)
работает.
По моему мнению, сложноват процесс добавления новых отчетов.
Хотелось бы указанием пути прямо из меню.
+ за проведенную работу.
Спасибо.
«В публикации упомянута Украина… »
А я наоборот нигде (в шапке и кратком описании) не увидел этих упоминаний — только в разделе обновлений от 9 августа 2011 года (по новому налоговому кодексу).
Благодарю за проделанную работу! Очень нужно и своевременно!
Реально пригодилась) Очень круто) Большое спасибо
Очень нравится пакет обработок, но, две работают у меня почему-то не правильно.
В обработке «Основные средства 2012г» пишет:
Ти.Загрузить(т_);
{D:БО СБФДБТ1SBUKREXTFORMSОСНОВНЫЕСРЕДСТВА2012.ERT(593)}: Значение не представляет агрегатный объект (Загрузить)
Что это такое не знаю?
И в обработке » Расчет_налогов»:
не правильно считает налоги к уплате,в расчет попадает итоговая сумма (выделенная цветом) по сч.651 (в частности). Можно ли это исправить?
(25) Проверю «Расчет налогов» и отпишу. А «Загрузить» — у Вас нет компоненты 1СPP.
Положите ее в каталог ИБ.
Спасибо за быстрый ответ и 1СРР, буду ждать Ваших результатов
Посмотрела обработку «Основные средства 2012г»- на опции «бухгалтерский учет» в наличие ОС показывает не корректно период. Выбираю квартал, показывает данные на последний день квартала, а это искажение данных (т.к. остатков на начало периода не было). И в шапке не помещается название предприятия.