<?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='\
Обработка предназначена для восстановления последовательности проведения документов.
Пригодится, когда возникает ситуация необходимости перепроведения документов, в хронологическом порядке или в том порядке, в котором нужно пользователю за определенный период времени.
Отличается от стандартной обработки «Проведение документов», тем что, можно сделать отбор документов по фирме, по контрагенту или группе контрагентов, и нет необходимости в монопольном доступе, а также можно менять последовательность документов по усмотрению пользователя.
Эта версия обработки для использования на платформе 8.2 в типовых конфигурациях БП 2.0, а также и для УТ 10.3 и УТП 1.2
Перейти к публикации
Ваша обработка перепроводит(за выбранный период) документы банковской выписки, требование-накладная, документы поступления ? Или это делать не обязательно
+ поставил за идею
(1) gutentag, Чтоб программа считала правильно, желательно перепроводить все документы которые попадают в последовательность.
При нажатии кнопки заполнить:
{Форма.Форма.Форма(70)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
по причине:
{(9, 2)}: Таблица не найдена «Последовательность.ОбщаяПоследовательность»
<<?>>Последовательность.ОбщаяПоследовательность КАК ОбщаяПоследовательность
(4) avcherkasov, Эта обработка предназначена для БП 2.0, вы скорей всего пытаетесь использовать ее для
другой конфигурации, если она вам очень нужна,то напишите для какой конфигурации и я поправлю обработку именно под вашу конфу.
(5) Kuzyabr, да у меня УТП
(5) Kuzyabr,http://files.mail.ru/5AH5L6
Кидаю ссылочку с файлом конфигурации
Спасибо! очень полезная обработка
Хорошая штука когда ручками лень переставлять даты документов + автору
Теперь обработка работает и для конфигураций УТ 10.3 и УТП 1.2
то что надо, постоянно пользователи нарушают последовательность а потом удивляются почему итоги некорректные :(, автору спасибо…
А как нибудь решена проблема с блокировкой(тормозами) при массовом перепроведении документов?
(12) Вот здесь решенаhttp://infostart.ru/public/18394/
Не монопольно, єто прикольно.
(12) kereo,теперь решена, обработка блокирует документ который в данный момент перепроводиться
Полезная вещь! Спасибо!
После переноса документов из 1с7 очень пригодилась, спасибо
Еще бы на пару месяцев пораньше это чудо, а то времени на корректировки у клиента убито уйма… но процесс еще не завершен, качаю.. спасибо, о результате напишу
Удобно, Спасибо!
Конечно же самый огромный плюс,учитывая, что процесс восстановления последовательности весьма длителен, это возможность не выгонять пользователей. Так что огромное спасибо!
Удобно, когда отчет есть в программе, скачаю, Конечно же самый огромный плюс,учитывая, что процесс восстановления последовательности весьма длителен, это возможность не выгонять пользователей. Так что огромное спасибо!
Хорошая обработка, очень помогла спасибо
Хорошая обработка помогла спасибо
на SQL версии — начинаются дикие тормоза у пользователей которые, работают в момент выполнения обработки. Можете что-либо посоветовать?
К сожалению я не тестировал на SQL версии, и ни когда с ней не работал. Скорей всего тормоза происходят из-за блокировок регистров. Если найду какое-то решение. То обязательно напишу вам.
В УПП 1.3 при нажатии на «Заполнить» выдает:
{Форма.Форма.Форма(103)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(9, 2)}: Таблица не найдена «Последовательность.ОбщаяПоследовательность»
<<?>>Последовательность.ОбщаяПоследовательность КАК ОбщаяПоследовательность
(26) romann, дело в том, что она адаптирована только для БП и УТ. Киньте мне вашу конфигурацию (точнее ссылку на нее в обменнике). Сейчас у меня со свободным временем не очень, поэтому не могу обещать, что быстро, но постараюсь адаптировать ее и под вашу конфу, как можно быстрей.
(27) конфа — типовая, последний релиз (29.2)
(28) romann, у меня нет этой конфы вообще. Если есть возможность, то скинте мне её.
(29)
http://depositfiles.com/files/8bqlu7xvi
http://letitbit.net/download/75695.7801845d9c421b1c2eedc8f58d9e/ITS_092012_RU_UPP_1.3.29.1_setup_21082012.zip.html
http://turbobit.net/qyrmt20d9797.html
Интерфейс обработки мрак просто, все колонки табличного поля не отрегулированы…
В принципе полезная обработка, бывает нужна и после снятия флажков в партионном учете-списывать по партиям.
Добрый день! Скачала для УНФ, а кнопка Игнорировать восстановление последовательности неактивна((( а мне надо именно восстановить последовательность. Можете помочь?
Как скорость работы зарание спасибо за ответ
Добрый День уважаемый Автор, данная обработка работает в управляемых формах на УТ 11.2? Если нет можно ли её доработать?
(35) viktor2008, Добрый день, она не работает на управляемых формах, но если надо можно сделать. От вас потребуется выгрузка вашей базы или хотя-бы сама конфигурация, лучше выгрузка базы, чтоб я мог протестировать, т.к. у меня нет Баз УТ 11.2
Добрый день при использовании обработки выдает ошибку — используем 1С:Предприятие 8.2 (8.2.19.102) Комплексная автоматизация, редакция 1.1 (1.1.64.2) (http://v8.1c.ru/ka/)
{Форма.Форма.Форма(103)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(9, 2)}: Таблица не найдена «Последовательность.ОбщаяПоследовательность»
<<?>>Последовательность.ОбщаяПоследовательность КАК ОбщаяПоследовательность
(37) tdradiator, нужна ваша конфигурация, чтоб я смог разобраться, в чем дело, обработка проверялась только на БП 2.0, УТ 10.3, УТП 1.2 для обычных форм, и отдельно еще обработка для управляемых форм конфигурации БП 3.0. Скинте ссылку на вашу конфигурацию я посмотрю.
в УТ 10.3 не попали документы «Платежное поручение». Очень жаль.
(39) Agkorepanov, В типовой конфигурации УТ 10.3 «Платежные поручения» не входят в состав последовательности «ПартионныйУчет», поэтому они и не попадают в восстановление последовательности. В состав входят только те документы у которых есть движения по регистрам накопления — ПартииТоваровНаСкладах и ПартииТоваровПереданные. Вот список этих документов:
АвансовыйОтчет, ВозвратТоваровОтПокупателя, ВозвратТоваровПоставщику, ЗаказПокупателя, ЗакрытиеЗаказовПокупателей, КомплектацияНоменклатуры, КорректировкаЗаказаПокупателя, ОтчетОРозничныхПродажах, ОтчетКомиссионераОПродажах, ПеремещениеТоваров, ПереоценкаТоваровПринятыхНаКомиссию, РасходныйОрдерНаТовары, РеализацияТоваровУслуг, СписаниеТоваров, ТребованиеНакладная, КорректировкаСерийИХарактеристикТоваров, КорректировкаКачестваТоваров, ПоступлениеТоваровУслуг, РезервированиеТоваров, ВозвратТоваровПоставщикуИзНТТ, ПоступлениеТоваровУслугВНТТ, ПриходныйОрдерНаТовары, КорректировкаСтоимостиСписанияТоваров.
(39) Agkorepanov, И все таки если очень надо, можно добавить в конфигурацию свою последовательность и включить в ее состав те документы которые вам нужны, ну и конечно нужно будет немного доработать саму обработку «Восстановления последовательности».
Добрый день!
При выборе заполнить выскакивает ошибка:
{ВнешняяОбработка.ВосстановлениеПоследовательности.Форма.Форма.Форма(103)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(9, 2)}: Таблица не найдена «Последовательность.ОбщаяПоследовательность»
<<?>>Последовательность.ОбщаяПоследовательность КАК ОбщаяПоследовательность
Конфигурация УПП вер.1.3
Возможно ли сделать под эту конфигурацию? Очень нужно.
(43)Добрый. Нужна ваша конфигурация, чтоб посмотреть.
(0)
Пригодится, когда возникает ситуация необходимости перепроведения документов, в хронологическом порядке или в том порядке, в котором нужно пользователю за определенный период времени.
Отличается от стандартной обработки «Проведение документов», тем что, можно сделать отбор документов по фирме, по контрагенту или группе контрагентов, и нет необходимости в монопольном доступе, а также можно менять последовательность документов по усмотрению пользователя.
Обработка хорошая , жаль что на 8.3 и в БП 2.5 работать не будет
Спасибо за обработку, пользуемся)))
(0)х
Документ «корректировка долга» попадает в отбор?
(48) смотря какая у вас, конфигурация, если это документ включен в «общую последовательность» , тогда да. Например для типовой «Бухгалтерии предприятия 2.0» попадает.