<?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='\
Много очень важного не было сказано, на пример, что делать если нужно внести в основную базу изменения и как потом обновлять удаленные базы, а так же про права на обмен. Если автору интересно то могу поделиться опытом.
(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кб)». Смотрите выше… Там все есть.
А в удаленном филиале тоже должны видеть все изменения, которые делают в базе в центральном офисе?
— Если да, тогда получается обычный двухсторонний обмен, который описывали уже не раз.
— Если нет, тогда не увидел где производится настройка, чтобы в удаленный филиал не выгружались изменения из центрального офиса, а выгружались только подтверждения о получении пакетов.
Статья сворацивается до слов «смотрите ИТС+ справку+книги в поставке».
Но все равно плюс.Только сделай картинки (я понял что в вордовском йайле они есть, а здесь ?), и исправь по пожеланиям. Да и на самом деле опиши-ка нормально.
ПОКА плюс, но если не сделаешь хотя бы описание «минус, плюс,подводные камни» поставлю минус ! 😀
А с картинками в последнее время, после обновления платформы сайта, у меня тоже косяк… Дома вижу, а на работе не вижу…
Народ, подскажите. Риб я в УТ настраивал все без проблем, почему в бухгалтерии при создании начального образа в подчиненную базу не переносяться документы, а только справочники???????
Все ступил, вопрос снимаеться:)))
«Никто не пинает дохлую собаку» (С) Д. Карнеги
Автору РЕСПЕКТ!!!, и однозначно «+». Жду продолжения…
спасибо.
Мда… а тут давеча все про рабочие столы ворчали… Типа мало мыслей, да код суровый… А тут вольное прочтение хелпа + ленность в прочтение ИТС. Низачот 😮
А насчет что человек написал многа букофф и надо плюс за енто — дык, давайте я с понедельника буду вписывать в инфостарт войну и мир. Там на год работы…. Мне плюсов двадцать хватит….
только терминальный доступ
Компонента «Управление распределенными ИБ»
Основные принципы работы компоненты
Более полное описание.
Спасибо за работу.
Автору респект, на ИТС подобной статьи не нашел, чтобы с картинками.
Может сможете помочь, как по электронной почте настроить обмен? Чтобы в Главном узле данные выгружались, посылались по почте подчиненному узлу, и наоборот.
нашел только два вариант: обмен через файловый ресурс и обмен через фтп ресурс.
Подскажите, как в 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,
Если еще актуально, а может и кому еще поможет — есть статья, как сделать базу для нового узла.
Сейчас как раз изучаю данный вопрос.
картинки потерялись
Очень хотелось бы правда с картинками, а так статья хорошая, полезная!
А для розницы 2.0 есть подобная инструкция, какие нюансы использования РИБ в рознице 2.0 по сравнению с БП8?
(57) stas1kbob, (58) Ann13a, картинки в файле «Статья с картинками», который вы можете скачать бесплатно, нажав на соответствующую кнопку внизу статьи.
Как настроить риб в 1с 8.3 или в 1С 8.2? Настройка распределенной информационной базы. Пошаговая инструкция | Подробнее: