<?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='\
иногда еще выдается сообщение,что невозможно прочитать.
PowerBoy, Спасибо тебе огромное, ты меня просто спас. Спецально зарегался чтобы тебе + тыкнуть.
Скажите, а что делать если и эта обработка не помогает? Также, пишет что конфигурация БД не соответствует ожидаемой, хотя её перед этим загружали
(4) А новую конфигурацию точно загрузили? Номера сообщений еще сверьте.
Всё гениальное оказывается просто!
Если под 8.1 не запускается, то необходимо зайти в режиме конфигуратора, открыть эту обработку и перекодировать.
Есть нюанс: ежели у тебя более одного ПО с РИБ??? Тада тока плакать и лить первоначальный образ или как? Нигде не нагуглил решение 🙁
Все туплю работает…. сорри 🙂
спасибо большое, помогло
не помогает =(
сделал, теперь при чтении или записи сообщения закрывается 1ска полностью, без ошибок
спасибо большое, очень полезная обработка. помогло.
Однозначно +
Проблему с нумерацией сообщений тоже решает. +
Помогите восстановить Главную (центральную) базу по подчиненной (периферийной). спасибо!
А так +1
Однозначно плюс от новичка в 8-ке, который чуть не поседел при виде этого сообщения и угрозе остановки обменов 🙂
А реально както отключить главную базу, если в общем модуле при запуске допущена ошибка и 1С закрывается? Т.е. нет возможности както запустить обработку в режиме предприятия.
(17) запустить конфигуратор с параметром командной строки /ResetMasterNode
спасибо
ОГРОМНОЕ СПАСИБО РУЛЬНАЯ ОБРАБОТКА!!! СПАСЛА ЖИЗНЬ ВСЕЙ ФИРМЕ!!! РЕСПЕКТ ТЕБЕ АВТОР!!!!!!
присоединяюсь к предыдущим ораторам. спасибо! немного только переделал третий пункт под себя
просто спасибо
Поставил + за обработку. А вообще у меня была такая проблема. Думал все капец.
А потом сделал обмен не спомощью «Типового обмена», а через планы обмена и все заработало.
А что делать если в подчиненной базе ТОЛЬКО добавили нового пользователя, конфигу не меняли. И теперь при ПРИЕМЕ выдается сообщение о несоответствии. Эта прожка поможет?
(24) Поможет
Кстати не замечали, на 8.2 в УТ 10.3.10.4 если сделать РИБ то при первом же обмене возникает такая ошибка (не соответствие конфиги ожидаемой). Думал руки кривые, позабыл 1С. Поставил 8.1 и УТ 10.3.6.8 — все заработало.
(26) на 8.2 в УТ 10.3.10.4, данная обработка помогла, спасибо автору!!!
Спасибо за такое лекарство.
Спасибо! 🙂
срочный вопрос
после обработки перестало выдаваться сообщение «Конфигурация узла распределенной ИБ не соответствует ожидаемой!», НО сейчас при начале обмена на 10 % на подчиненном узле падает приложение если убрать сообщение центральной базы то оно закрывается при 55%. никаких сообщений в журнале нет только «начало обмена» и все
что посоветуете?
конфа — измененная УТ 10.3.3.3
до этого обмен работал но пришлось сделать новый образ подчиненного узла.
до настройки обмена между центром и новым узлом в БД (данные) центра внесли изменения, так же наверно как и в подчиненный узел
)) гениально и просто!!! спасибо автор за идею
супер! 😀
1С 8.1 УТ 10.4. Обновлял БД третьего уровня подчиненности
Спасибо хорошая штука.А что делать если мне после лечения распределенной ИБ в ЦБ начало писать — Конфигурация узла распределенной ИБ не соответствует ожидаемой
В итоге что все таки спасает от этой напасти? напишите по подробнее и про как запустить файл лечения?
Удалось сделать, все с помощью этой обработки
спасибо, очень сильно помогла данная обработка…..
Отличная работа, спасла от тяжкого труда.
Спасибо. Очень помогло.
Спасибо большое за обработку, очень помогла!
Большое спасибо!
Спасибо большое за обработку! Иногда после обновлений РИБ прекращает нормально обмениваться, выход только один — обновить базы все по-очереди. И здесь ваша обработка единственное лекарство!
Спасибо за обработку, если б не она не знаю что бы делала!!!!
Большое спасибо.
Хоть обработка и простая, но при косяках УРБД выручила.
Спасибо!
В какой базе запускать?
12
спасибо! 1раз помогло
Спасибо, очень помогла обработка
Описание слабоватое. Но столько оценок за пару строк кода 🙂
(49) Нажмите в обработке F1 или кнопку Помощь и получите исчерпывающую информацию.
В очередной раз помогает. Уже подзабыл команды работы с РИБ.
Спасибо!надеюсь поможет))
Стоящая вещь, не раз уже пользовался очень удобно и просто
Однажды эта обработка меня ну просто спасла, когда при обмене вылетела та самая ошибка. Так что рекомендую иметь её в своём арсенале на всякий пожарный.
в центре смотрю, модуль документа есть полностью, на периферии обрывется посередине процедуры. :(( ТИИ, chdbfl, выгрузку-загрузку делал, не помогло. ппц какойта… никто не сталкивался?
спасибо, очень полезная обработка)))
весьма полезная вещь. уж сколько раз ее юзал для лечения дочерних узлов. спасибо автору!
спасибо еще раз, не раз спасла меня.
правда если несколько пользователей в базе, нужно делать все под одним и тем же, иначе не получается.
Хорошая обработка. Очень помогла.
спасибо огромное. помогло очень
спасибо 🙂 пользовались вашей обработкой во время внедрения в крупной компании — после очередного обновления конфигурации приходилось реанимировать некоторые узлы %)
Рабочая обработка. Советую.
Очень нужная обработка! В распределенной базу бывают часто проблемы с синхронизацией баз с главным узлом. Эта обработка помогает решить большую их часть.
Большое спасибо! очень важная обработка! с помощбю нее решил свои проблемы 🙂
Так все хвалят,проблем пока не было но на будущее скачал и плюс поставлю, думаю пригодиться
Спасибо большое! Полезная обработка!
интересно было ли у кого такое чтоб эта обработка глючила….ну типа чтоб когда хочешь восстановить узел она не дает это сделать…ну мож ошибка какая нибудь? а то я копию базы не делаю мало ли че..страшно))
(67) Обработка заглючить не может, так как представляет собой всего навсего обёртку для одной штатной процедуры.
Долго валялась на флэшке без дела и вот пригодилась !! Автору респект, выручила в трудную минуту !!!
крутая вещь, спасибо большое автору за труд
Спасибо — пользуюсь регулярно.
да,спасибо)))тоже постоянно пользуюсь)
Спасибо … Отличная вещь. Если бы не эта обработка фирма бы стала на колени.
Спасибо! Классная вещь!
спасибо. помогло , когда лег узел на рабочем магазине. восстановил достаточно оперативно работу.
Спасибо, уже не знал что делать когда выпала ошибка. Работает отлично!
Как-то на работе вдруг встала система планов обмена данных между филиалами и центром. Система была в два уровня. Сидели 3-4 дня втроем, перерыли весь интернет, меняли внутренний формат xml-файлов. Но все равно выскакивала ошибка «Конфигурация узла распределенной ИБ не соответствует ожидаемой!»
Все оказалось гораздо проще, чем мы думали. Мы начали обновление платформ на части из филиалов. Видимо на разных версиях платформы контрольная сумма считается по-разному или что-нибудь в этом роде. Поэтому везде нужны одинаковые версии.
Спасибо за обработку! очень полезная штука.
Спасибо огромное. Спас!
Я уже думал все, приплыли. А тут такая отличная обработка! Спасибо большое за проделанную работу.
А кто знаем как она под плтфОРМОЙ 8.2.15 работает?
И в чем разница в функциоанле между вот этимhttp://infostart.ru/public/20819/
У меня уже бухгалтерия центральную два раза умудрилась обновить а с периферийки не грузились. не знаю как им это удалось но факт. Попробую этой штукой похимичить
все зашибись, но сделай выбор главного узла, если планов обмена несколько. пришлось переделать таки эту простейшую вещицу.
(88) дык попроще будет, да и пораскрученнее. Я почему-то эту юзаю…
Спасибо, большое.
В свое время очень помогла данная обработка.
Скажу всем по секрету эта обработка достаточно мощная) правда я пользуюсь другой но смысл тот же. выручает постоянно. пока без проблем
пыталась запустить обработку, пишет, что внешняя обработка не может быть прочитана текущей версией программы. стоит 1С:Предприятие 8.2 (8.2.13.219)Бухгалтерия предприятия, редакция 2.0 (2.0.32.6) . Может, делаю что нибудь не так?
(93) Надо сконвертировать ее, открыв в конфигураторе.
Мощный мальчик, ты еще живой?
сделай выбор главного узла при подключении.
Если видов плана обмена несколько (все типовые) не работает.
кодом кинуть, или сам доработаешь?
(95) Доработаю.спс.
(96) о, живой! Клево. Доработай. Юзаю только эту обработку. Привык к ней. Спасибо!
(97) Обновил, спец. для тебя. Теперь ты мой должник. 🙂
(98) я так и знал, что инициатива наказуема. Только я у себя уже давно обновил, будем считать, что победила дружба. Но для других пригодится. Красавчег!
Отличная оработка. Уже не раз спасала.
так она теперь только для 82?
(94)
вот что пишет?
ЧЯДНТ?
(101) Там три обработки для 8.0,8.1,8.2!
(103) (файл скачан)
Остановились на 4 пункте — сняли РИБ, загрузили, установили РИБ. Обмен заново — сначала из центральной надо прочесть изменения? Если выгружаем сначала из периферии — в центральном узле ругается — «Ошибка при чтении изменений при обмене РИБ: …. Изменения конфигурации не могут быт получены из подчиненного узла периферийной ИБ…» — заметили по объему выгруженного файла — как из центрального узла по объему.
Ошиблись с порядком выгрузки/загрузки?
(100) Sharloc, Да,меня тоже очень выручила при обновлении базы которая уже 3 года не обновлялась.Главный узел затерялся)
(77) AlexanderKai,
по ходу аналогичная проблема. Филиалы на 8.2, а центр на 8.3. Удаленные обмен принимают, а центр не хочет. Поставил на удаленном 8.3 пока также. Ковыряем дальше.
Помогите кто чем может!