<?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='\
Много очень важного не было сказано, на пример, что делать если нужно внести в основную базу изменения и как потом обновлять удаленные базы, а так же про права на обмен. Если автору интересно то могу поделиться опытом.
(1) Думаю автор в курсе )
Для тех, кто первый раз делает РИБ — пригодится.
зы. ставлю + за много буков и картинки.
(3) я думаю, что на данном уровне изложения — такая терминология впролне допустима. особенно если для пользователя периферийной базы эта РАСПРЕДЕЛЕННАЯ БАЗА выглядит как отдельная база, связанная с ДРУГОЙ (ЦЕНТРАЛЬНОЙ) БАЗОЙ только посредством автообменов..
(0) Автор старался писал — плюс заслужил
(3) Ну все были чайниками. НО согласен что формулировка должна быть максимально точной дабы не вводить в заблуждение.
(0) Картинки у меня почему-то отсутствуют. 🙁
«В нашем случае рабочая база только одна и данные двигаются только в одном направлении.» — Не увидел в описании где это настраивается.
Неясно причем тут медленные каналы связи?
Попробуйте в базе с 16000 доков за месяц сделать групповое перепроведение за месяц и потом запустите типовой обмен РИБ…
Я думал будет описание реализации обмена только документами БЕЗ ДВИЖЕНИЙ, и в дальнейшем в каждой БД фоновое допроведение/удаление/распроведение документов.
УРБД в 4 шага. Уже классическая статья. Не надо велописедов изобретать. Тем более так плохо их описывать.
Даже с выходом 8.2 продолжаю всем советовать терминальный доступ.
РИБ требует очень прямых рук каждый день и имеет ряд минусов.
Ну наехали…
Старался человек, с людьми поделиться знаниями хотел… Стока букафф натыкать…
Плюс.
Хм… А чем это отличается от статьи на ИТСе, которая еще на 8.0 начала выходить? Там то же самое с картинками и примерами. В 2006м году видел ее на ИТСе…
Автору плюс авансом. Ждём описания того, какие действия надо предпринять, если была изменена структура конфигурации. Как заметил
Cyberboy в первом посту, это важно !
Читаю… Коммент за комментом… Изменения в структуре проходят по обмену тем же файлом и Происходит реконфигурация. Народ, почитайте статью на ИТС. Там сама 1С грамотно и подробно описала на примерах мех-м РИБ.
Автору «респект». Статья написана простым языком с илюстрациями — как раз для начинающих.
Меня тут никто не слышит =)
Сейчас на этом сайте зарегистрировано более 82000 пользователей.
В рейтинге участвуют 1291 пользователя (большей частью профессиональные программисты). Пусть рейтинг отражает не всех активных пользователей, пусть их будет в 10 раз больше — 12000.
Вопрос: что делают на сайте оставшиеся 70000 пользователей?
Я думаю, что это не программисты, а «продвинутые» пользователи, которые активно работают с системой 1С. У них, естественно, возникают вопросы и они на этом сайте ищут ответы.
Поэтому эта статья — обмен опытом в доступной нормальному пользователю форме.
Она не всеохватывающая и на документацию по РИБ эта статья не претендует.
(16) Просто мне почему-то кажется, что больше 80% зарегистрированных пользователей знают, что такое ИТС. Если есть уже написанная доступным языком документация с примерами и картинками, смысл повторять это? Описанные здесь примеры ни сложнее, ни легче ИТСовских 😉 А дкоументация по РИБ на ИТСе страниц то ли 9, то ли 12 занимает… В основном, из-за картинок. Ладно, я не бочку качу, просто всем, кто читает это сообщение: Господа, есть отличная инструкция для чайников по РИБ на диске ИТС.
(ghostishe) Без этой статьи многие бы и не узнали о существовании подобной статьи на ИТС. Так что статья полезная ! А тебе спасибо за дополнение !
Да, и ещё, картинки и правда отсутствуют. Может техподдержка сайте поможет решить данную проблему ? У меня IE 8.0
У меня Google Chrome тож не вижу картинок
Скачайте статью в вордовском формате с помощью кнопки «Статья с картинками(398кб)». Смотрите выше… Там все есть.
А в удаленном филиале тоже должны видеть все изменения, которые делают в базе в центральном офисе?
— Если да, тогда получается обычный двухсторонний обмен, который описывали уже не раз.
— Если нет, тогда не увидел где производится настройка, чтобы в удаленный филиал не выгружались изменения из центрального офиса, а выгружались только подтверждения о получении пакетов.
Статья сворацивается до слов «смотрите ИТС+ справку+книги в поставке».
Но все равно плюс.Только сделай картинки (я понял что в вордовском йайле они есть, а здесь ?), и исправь по пожеланиям. Да и на самом деле опиши-ка нормально.
ПОКА плюс, но если не сделаешь хотя бы описание «минус, плюс,подводные камни» поставлю минус ! 😀
А с картинками в последнее время, после обновления платформы сайта, у меня тоже косяк… Дома вижу, а на работе не вижу…
Народ, подскажите. Риб я в УТ настраивал все без проблем, почему в бухгалтерии при создании начального образа в подчиненную базу не переносяться документы, а только справочники???????
Все ступил, вопрос снимаеться:)))
«Никто не пинает дохлую собаку» (С) Д. Карнеги
Автору РЕСПЕКТ!!!, и однозначно «+». Жду продолжения…
спасибо.
Мда… а тут давеча все про рабочие столы ворчали… Типа мало мыслей, да код суровый… А тут вольное прочтение хелпа + ленность в прочтение ИТС. Низачот 😮
А насчет что человек написал многа букофф и надо плюс за енто — дык, давайте я с понедельника буду вписывать в инфостарт войну и мир. Там на год работы…. Мне плюсов двадцать хватит….
только терминальный доступ
Компонента «Управление распределенными ИБ»
http://develop1c.com/komponenta-upravlenie-raspredelennyimi-ib-/osnovnyie-printsipyi-rabotyi-komponentyi.html
Основные принципы работы компоненты
Более полное описание.
Спасибо за работу.
Автору респект, на ИТС подобной статьи не нашел, чтобы с картинками.
Может сможете помочь, как по электронной почте настроить обмен? Чтобы в Главном узле данные выгружались, посылались по почте подчиненному узлу, и наоборот.
нашел только два вариант: обмен через файловый ресурс и обмен через фтп ресурс.
Подскажите, как в 1с: бухгалтерии предприятия 8.1типовой настроить обмен через почту? плииз. запарился искать. Вот допустим выгрузил я файл в каталог, а дальше что? — как его по почте отправить из главного узла и принять в подчиненном?
Получается к типовой бухии еще надо какой-то отчет приделывать? нигде в справке ответа на этот вопрос не нашел, и на итс не нашел в простом и понятном виде: Типа файл выгрузили, сделайте то-то и то-то, чтобы отправить его по почте.
в общем обмен через електронную почту есть в типовой УПП, в типовойЗУПе, а в типовой бухгалтерии нету….
(34)-(36) Через электронную почту можно вести обмен только в ручном режиме, т.е. отправлять и принимать почту с вложениями вручную. Вложения выкладывать в папку обмена на том и на другом узле. Может быть можно автоматизировать в какой-нибудь почтовой программе. Я пользуюсь стандартным Outlook Express — там возможностей авмоматического сохранения вложений нет.
Пересылку пакетов обмена можно вести через mail.ru — там практически нет ограничений на объем вложения.
В общем смысл обмена следующий:
1. на главном узле программа генерирует файл обмена в папку;
2. этот файл вручную отсылается по электронной почте;
3. на на починенном узле принимают почту, файл обмена сохраняют в папку обмена;
4. прогамма обрабатывает этот файл, выдает файл подтверждения + свои данные;
5. этот файл вручную отправляют по почте;
6. на главном узле принимают почту, сохраняют файл в папку обмена;
7. программа на главном узле обрабатывает полученный файл, генерирует новый
и снова по циклу 1-6.
Может быть есть почтовые агенты, автоматизирующие пересылку, а так — вручную.
(37) Спасибо автору за подробный ответ, сам факт определенности много значит, а как автоматизировать — батниками и т.д. — это уже следующий этап.
Просто не знал как решать данную типовую задачу, думал, что может чего-то не учел и т.д. 🙂
А как права настроить? Не хватает у рядового пользователя прав для того, чтобы под его учетной записью выполнялись регламентные задания по обмену 🙁
» Теперь новую ИБ необходимо скопировать в центральный офис» желательно сделать чтобы терминолия была одна. главная база и подчиненная база. у Вас же: главный узел. Копия БП, центральный офис, удаленный филиал, рабочая ИБ. Слишком много названий. не понятно что есть что.
А подскажите как сделать перенос всех пользователей
Норм все написано, не на 5 конечно, но разобраться можно.
Что-то не видно вопроса, а что делать если:
0. В ЦБ делаем изменния в конфигураторе.
1. Из ЦБ выгружаем данные.
2. В ФБ(филиальная база, копия БП и т.д.) их загружаем, получаем сообщение что надо обновить конфигурацию.
3. Обновляем конфигурацию.
4. Выгружаем данные из ПБ (о том что все загружено).
5. В ЦБ пытаемся загрузить данные и получаем
«Данные принимаются от узла, для которого зарегистрированы и
зменения конфигурации. Необходимо произвести перенос измеений конфигурации в узел»
(42) Изменения конфигурации допускаются только в корневом узле РИБ с последующим ее распространением по иерархии от корневого узла к его подчиненным. (в этом случае в базе филиала)
цитата из Радченка Проф разработка
Спасибо но проблема не в этом.
РИБ, если выгружать данные с измененной конфигурацией из главного узла в подчиненный — загрузит только конфигурацию и попросит её обновить(конфигурацию).
Заходим обновляем и ЕЩЕ РАЗ загружаем те же данные. И только потом формируем ответное сообщение.
в свое время очень даже помогло…..
Хорошая статья , мне помог пункт 3. Очень сильно, а то я уже ломанулся писать свои обработки, а тут уже все готово.
Спачибо автору, помогло
Хорошая статья, пригодилось
отличная статья!!!
Большое спасибо, надо было очень срочно, так на итс не нашла, а по вашей статье все оч красиво получилось)
Не всем доступны диски ИТС, а как поисковая система по проблемам они, мягко говоря, проигрывают интернету. Большинство осваивает 1С не по дискам ИТС. За курсы платят большие деньги, а там ведь просто информация с дисков ИТС!
Автору спасибо. Понятным и простым языком написал, когда-то по этой статье первый раз настраивал РИБ. Очень помогла.
Спасибо, автору.
Не большое исправление. Написано:
Для автоматического запуска заданий необходима дополнительная настройка в меню «Предприятие / Настройка параметров учета / Обмен данными». Необходимо заполнить эту закладку.
Нужно:
Для автоматического запуска заданий необходима дополнительная настройка в меню «СЕРВИС / НАСТРОЙКА ПРОГРАММЫ / Обмен данными». Необходимо заполнить эту закладку.
Может кто-то сэкономит 5 минут на поиске вкладки «Обмен данными». 🙂
Может кто поможет с такой проблемкой:
Имеем РИБ с десятком подчиненных узлов (УТ 10.3 на MSSQL). При создании нового подчиненного узла (для нового магазина) выгрузка происходит с черепашьей скоростью, а после 200мб вообще стоит на месте: 4-8 КБ(!) в минуту!!!
Почему такая низкая скорость? Как исправить? СПАСИБО!
(55) cubic,
Статья на KB.Mista.ru
Если еще актуально, а может и кому еще поможет — есть статья, как сделать базу для нового узла.
Сейчас как раз изучаю данный вопрос.
картинки потерялись
Очень хотелось бы правда с картинками, а так статья хорошая, полезная!
А для розницы 2.0 есть подобная инструкция, какие нюансы использования РИБ в рознице 2.0 по сравнению с БП8?
(57) stas1kbob, (58) Ann13a, картинки в файле «Статья с картинками», который вы можете скачать бесплатно, нажав на соответствующую кнопку внизу статьи.
Как настроить риб в 1с 8.3 или в 1С 8.2? Настройка распределенной информационной базы. Пошаговая инструкция | Подробнее:http://www.advanter.net/?p=2749http://www.advanter.net/?p=2749