<?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='\
Попробуй глобальный поиск этой процедуры. У меня они в общих модулях РаботаСДиалогами с пометкой Экспорт. Если это так, то попробуй перед названием функции добавь «РаботаСДиалогами.» без кавычек
Точнее все эти процедуры разбросаны по общим модулям разным.
мдя… лучше бы последовательно вели работу по постановке учета и выяснению причин «в пределах нескольких месяцев»…
как правило — такие проблемы характерны для тех организаций — где бухам/управленцам «наплевать» на учет как таковой…
(4,5) а что мешает вести борьбу и параллельно устранять последствия работы «наплевальщиков» аналогичными обработками?
(1) та же фигня…
потому что я не сторонник закинуть на 8-ой этаж 3 тонны кирпича, а через два дня спускать его обратно… лучше усилия по закидке кирпича на 8 этаж направить на более полезную работу.. ИМХО!!!
ну что я могу сказать… косяк с процедурами исправлю на этой неделе. А вот косяк с исправлениями документов… Если бы только в бухгалтерах было дело. Ещё есть ушлые завсклады, мастера,водители и сетевики. Я даже не начальник отдела автоматизации… Поэтому приходиться хотя бы уменьшать вес кирпичей. И не забывайте, что 1с создает систему по принципу «как должно быть». Если бы на крупных предприятиях всё обстояло с учетом «как должно быть», всё бы работало из коробки. Добавить могу только, что вмешательство в конфу сейчас у нас чисто косметические + увеличение функционала.
(8) … мне иногда кажется, господин ЧЕ, что Вы не из нашей жизни… или не работаете на предприятии — где, как правило, ГлавБух определеяет всю работу программиста 1С и только он знает что хорошо и что плохо и «как» надо вести учёт не взирая на всю методологию 1С … либо вас так Уважают, что ваше слово является последним… и на ваших предприятиях, вами обслуживаемых, не проводят по 50..100 раз документы причем раз 20-30 в закрытых периодах и т.д. и т.п…. и ваше образное сравнение с кирпичами, можно не только поддержать но и усилить не стесняясь…
(9) поддерживаю… заняты тем же самым — по самые уши…
П.С. любая система определяет свое положение в существующих отношениях — лимитирующей стадией… среднее предприятие до 500 человек, средние задачи, «не понимающие» бухи, «неадекватные» 1С прогеры, общее не понимание и в итоге: «ПОСТОЯННОЕ таскание кирпичей с этажа на этаж»…
вооот…
(9) именно к и есть… аналогичным заняты…
(10) может быть и так… главбух определяет не всю работу программиста 1С, а только касающуюся бухучета… у нас, блин, не бухучет определяет учет на предприятии, а то что «получилось» — пытаются «притянуть» к бухучету… и приходится нам работать на стыках, лавируя, изворачиваясь и протискиваясь в разные щели.. 😉 а главбуху «пофиг» что там делается «внизу», ему главное — чтоб ему меньше было бестолковой работы… только вот нигде я не видел целенаправленной и постоянной работы бухгалтерии по поставновке и налаживанию учета… вот про что речь… я не против потаскать кирпичи месяц, два.. но не год.. вот о чем речь..
(11) как ПРАВИЛО если не угождать ГлБуху то и проработаешь недолго… может оно и правильно — бугалтерия сдаёт все «внешнии» отчёты ей и флаг в руки — она, ГлБухия, отвечает за предприятие в конечном счёте и никто с ней связываться не будет… вот и ротируются 1С-ники в городе по разным причинам по предприятиям города… а уж качество бухгалтерии определяется качеством гл.Буха уровнем оператора пользователя … так, что выбор небольшой и система уже сложилась…
«Рабочее место администрации партий», я аж офигел, думал добрались и до политики. Может правильней администрирования?
А я в подобном случае составлением списка «косых» документов и ограничился бы. Ну, может, + список авторов последнего проведения. Конечно, часто проще самому сделать, чем объяснить. Но! имхо НЕ бухгалтер НЕ имеет права проводить документы. Даже если одинэсник у бухгалтера в подчинении.
(12) С ГБ бодаться не надо. Надо его воспитывать. Я вот вырастил себе главбуха из собственного оператора и прекрасно себя чувствую.
(11) Постановка и налаживание учета для бухгалтерии не является основной задачей. Вообще, если кто не помнит, организация не обязана иметь собственную бухгалтерию. Нужность бухгалтеров определяется запутанностью учета. Если работать «как надо», добрая треть бухгалтеров без работы останется.
При ордерной системе закупок хочет препроводить например авансовые отчеты по ордеру. А на самом деле Авансовый сторнирует поступление ордера.
Настройки:
Порицательные партии: Да
Это щас к чему? Это хотелки к обработке, или к УПП? Сейчас как раз переделал отбор недосписаных документов с учетом ордеров. Только запрос в этом случае дольше получаться стал. Сделал ещё одну галочку.
Кстати, как там с глючностью платформы 8.1.13.37?
гыыы… чуть самое главное не забыл… Обновить сам файл (:
Изменены вызовы процедур для соответствия платформе 8.1.13.41 и конфигурации УПП 1.2.19.1
{Форма.Форма(2170)}: Преобразование значения к типу Дата не может быть выполнено
КонтрольнаяДата=КонецМесяца(Результат.Дата);
А у Вас расчитана себестоимость по бух учету?
Точнее, вообще расчитана себестоимость???
На счет модулей — это пипец. Москали любят перекидовать процедуры и функции по разным модулям от релиза к релизу. Так что не на всяком релизе сработает.
Ну и пофиг (: Обработка не на простого юзера нацелена, а больше на админа. Подправить имя общего модуля для вызова процедуры недолго. Да и функции общих модулей используются вроде только при автоматическом проведении по БУ и НУ учетам.
Спасибо, пригодилось.
Что-то не нашел новой публикации: по ссылке «более новая публикацияhttp://infostart.ru/profile/15144/public/?PAGEN_1=3 »
А так кончно неплохая фишка