1с как создать распределенная база данных
Перейти к содержимому

1с как создать распределенная база данных

  • автор:

«РИБ в 1С простыми словами» и «Как подчиненную базу 1С сделать самостоятельной»

Механизм РИБ — механизм распределенных информационных баз — это когда у вас есть главная база и подчиненная(ые). Главная база может быть только одна, подчиненных может быть много. Каждая подчиненная база может иметь свои подчиненные базы, для которых она будет главной.

Вот посмотрим на картинку из первой ссылки по запросу в Яндексе:

РИБ используется для обмена данными. Причем не только теми данными, с которыми работает пользователь, но и данными изменения конфигурации. То есть РИБ позволяет передавать изменения конфигурации. Но изменить конфигурацию можно только в главной базе!

Визуализируем:

У нас большая компания и много филиалов. Есть доработанная УНФ, которую мы гордо называем УБФ(Управление Большой Фирмой). Но мы решили, что хватит терпеть то, что все филиалы имеют доступ к документам всех филиалов и каждому филиалу решили сделать отдельную базу, которую синхронизировать с нашей основной базой для передачи данных. Что ж, можно. Сделали.

И внезапно мы решили изменить картинку, которая появляется при входе в базу, захотели поместить туда логотип нашей фирмы, а почему бы и нет?

Как запилить картинку во все базы всех филиалов? Ну при текущем варианте, что у всех филиалов отдельная база, только руками. Руками специалистов, которые умеют заходить в конфигуратор и знают что нужно там нажать.

А вот если бы мы сделали подчиненные базы для филиалов, то есть использовали РИБ, то и данными бы обменивались, как при обычной синхронизации, и картинка бы сама добавилась во все «базы-дочки». Однако, в конфигуратор зайти бы все-таки пришлось, но только чтобы нажать кнопочку «Обновить конфигурацию базы данных», вот картинка:

Как создать подчиненную базу, на пальцах:

я буду использовать Управление торговлей, редакция 11 (11.4.13.275), но способ, в целом, одинаковый во всех типовых конфигурациях.

1) Сначала проделаем шаги, как при настройке обычной синхронизации:

2) . поставим галочку, нажмем.

4) тут ознакомимся с описанием. Я выберу обычную настройку, но если бы мы следовали примеру выше, то нужно было бы выбрать «с фильтром» и там одним кликом выбрать нужный филиал.

5) Укажем каталог, где будут храниться файлы обмена — это файлы, которые создают конфигурации при синхронизации через файл. Сначала первая база создает файл обмена, куда записывает информацию о том, что она выгрузила (выгрузка зарегистрированных изменений), вторая база подгружает этот файл себе, на основании информации в нем создает у себя новые данные (или изменяет существующие) и создает свой файл, который предназначен для первой базы, где, в общем случае, записана информация о том, что база приняла изменения и выложила то, что изменилось у нее.

6) Указываем префикс — он будет подставляться к номерам документов, чтобы можно было отличить документы дочки и основной базы.

7) в общем случае, тут ничего не надо нажимать, кроме «Записать и закрыть».

8) А вот теперь создаем нашу новую подчиненную базу:

9) указываем место, куда ее покладем.

10) Зайдем в нашу новую подчиненную базу и закончим настройки синхронизации(синхронизация уже создалась, так как использовали РИБ, но нужно указать каталог для обмена выбрав «Настройки подключения»)

(обратите внимание на верхний левый угол окна программы, там название базы, он отличается от предыдущих, так как это «дочка»)

Кстати, в новой базе все пользователи будут выключены, пароли сброшены, нужно включить руками:

В общем-то ВСЕ.

Подчиненная база создана!

Теперь, когда наши программисты что-нибудь улучшат, эти улучшения прилетят в подчиненные базы сами.

Вот что-то изменили в основной базе:

нам нужно перенести изменения в базы-дочки.

Для этого запускаем главную базу в режиме 1С:Предприятие, то есть в пользовательском интерфейсе, заходим в настройки синхронизации, жмем выделенную кнопку:

После того, как синхронизация закончится, заходим в базу дочку и так же жмем «Синхронизировать», база загрузит данные и напишет:

После нажатия на Далее база закроется и начнет устанавливать обновления.

Когда обновы установятся, база начнет запускаться и сообщит нам следующее:

Это означает, что не обновлена конфигурация базы данных. Та самая маленькая кнопка в конфигураторе и это именно та причина, почему придется ОДИН раз зайти в конфигуратор. Что ж, зайдем в конфигуратор базы-дочки и нажмем эту кнопку, заодно вообще посмотрим что-да-как там, мы ж там еще не были.

Откроем конфигурацию и вот что увидим

Нажмем на «Обновить конфигурацию базы данных».

Увидим список изменений, которые прилетели с обновлениями:

И вот эти обновления появились в подчиненной базе.

Теперь необходимо запустить базу в пользовательском режиме, чтобы выполнились обработчики обновления.

Несколько правил:

1) Все узлы, кроме одного, должны иметь по одному главному узлу и один узел не будет иметь главного узла — это корневой узел.

2) Конфигурация может быть изменена только в узле, не имеющем главного узла (то есть в корневом).

3) Изменения конфигурации будут передаваться от главного к подчиненным узлам.

4) Разрешение коллизий так же будет производиться исходя из отношений «главный — подчиненный» — если изменения сделаны одновременно и в главном и в подчиненном узлах, то приняты будут изменения главного узла.

5) Сделать подчиненный узел в распределенной базе можно разными способами, но создание начального образа является рекомендуемым.

А теперь то, ради чего все писалось.

Как подчиненную базу сделать обычной(нормальной, отдельной, как хотите).

Я опишу только тот способ, которым пользуюсь. Это моя шпаргалка. Но он не единственный.

1) Заходим в свойства ярлыка запуска окна 1С:Предприятие:

2) В поле «Объект» дописываем:

DESIGNER /F»Путь до базы» /N»Имя Пользователя в базе» /P»Пароль пользователя» /ResetMasterNode

В итоге у меня получится:

«C:\Program Files\1cv8\common\1cestart.exe» DESIGNER /F»C:\Users\79119\Desktop\РИБ» /N»» /P»» /ResetMasterNode

логин и пароль пустые, ведь пользователи у меня все выключены.

3) Сохраняем изменения в ярлыке и запускаем его.

4) Не забываем удалить добавленный текст из ярлыка.

5) Готово 🙂 при запуске база сообщит:

Кликаем «Отключить» — база теперь самостоятельная!

Вот и все! Успехов хорошим людям желаю! Спасибо!

  • риб
  • распределённые базы данных
  • распределенные базы данных

Распределенная информационная база

Информационная система, состоящая из нескольких информационных баз 1С:Предприятия (узлов), обладающих идентичными конфигурациями и обменивающихся данными в офф-лайн режиме. Характеризуется жесткой иерархической структурой узлов и наличием одного главного узла.

Для более гибких схем обмена, в том числе между разнородными системами, используется универсальный механизм обмена данными.

Полезные ссылки:

  • Учимся программировать — Как в 1С:Предприятии 8 определить место создания объекта в распределенной информационной базе?,
  • ИТС:
    • Обработка ошибок, возникающих при обмене данными в распределенной информационной базе,
    • Особенности использования последовательности документов в распределенной информационной базе (РИБ),
    • Передача изменений конфигурации в распределенной информационной базе,
    • Восстановление узла распределенной информационной базы из резервной копии,
    • Создание узла распределенной информационной базы,
    • Особенности организации многоуровневой распределенной информационной базы,
    • Подготовка конфигурации к работе в распределенной информационной базе,
    • Демонстрационная конфигурация Обмен данными,

    Распределенная информационная база. Пошаговая инструкция и подводные камни.

    В этом материале подробная инструкция по настройке обмена РИБ для 1С:Предприятие 8 и проблемы, с которыми столкнулся автор.

    1. Создание узлов
    Создаем новые узлы (главный и подчиненный): в пользовательском режиме «Операции / Планы обмена/Полный»
    Выберем план обмена «Полный»
    Создаем две записи:
    — первую запись назовем «ЦБ» (главный узел), код укажем «ЦБ»,
    — вторую запись назовем «Подчиненный узел», код укажем «ПУ».
    Значек с зеленным кружком — «ЦБ» (главный узел)

    Для подчиненного узла нажимаем на иконку «Создать начальный образ». (Потребуется монопольный доступ)
    Создать начальный образ
    Далее в открывшемся окне заполняем параметры новой базы. По окончании нажимаем кнопку «Готово»
    Создание начального образа ИБ
    Начнется создание начального образа подчиненного узла распределенной информационной базы, по окончании появится сообщение «Создание начального образа успешно завершено». Жмем кнопку «ОК».
    Добавляем базу подчиненного узла в список баз, запускаем ее.
    В этой подчиненной базе открываем полный план обмена — значок «ЦБ красный, это значит, что этот узел является главным для информационно базы, в которой мы находимся.

    2. Настройка префиксов
    Для каждой базы, в настройках параметров учета (в УПП «Сервис / Параметры учета») на закладке «Обмен данными», устанавливаем префиксы. Это делается для того чтобы не возникало конфликтов в номерах и кодах документов и справочников, созданных в двух базах.
    Для автообмена, устанавливаем галочку «Использовать механизм автоматического обмена. »
    Закладка «Обмен данными»

    3. Добавляем настройку обмена данными между узлами
    Открываем: «Сервис \Распределенная информационная база (РИБ)\Настроить узлы РИБ»
    Нажимаем «Добавить», откроется окно «Настройка обмена данными»
    Настройка обмена данными

    Нажимаем на значок «Выполнить обмен по текущей настройке»
    Выполнить обмен по текущей настройке

    Теперь о «подводных камнях»
    1. Обмен данными может выполняться в автоматическом режиме и может быть инициализирован в следующих случаях:
    * При запуске программы. Обмен будет выполняться при запуске программы,
    * При завершении работы с программой. Обмен будет выполняться перед завершением пользователем работы с программой,
    * При появлении каталога. Обмен будет выполнен только в том случае, если каталог указанный пользователем был невиден, а в настоящий момент стал виден. Настройка может быть использована для выполнения автоматического обмена при подключении к локальной сети или flash карты. Программа периодически будет проверять видимость указанного в настройках каталога и отмечать его текущее состояние,
    * При появлении файла. Рекомендуется использовать данные режим, когда нужно выполнить обмен, если появляется входящий файл обмена данными. В этом случае, достаточно указать полный путь к входящему файлу обмена данными. Программа периодически анализирует наличие файла, и как только он появится, будет выполнен обмен, а после обмена этот файл будет принудительно УДАЛЕН (это делается для того, что бы процедура обмена не выполнялась постоянно),
    * Периодический обмен данными. Обмен будет выполняться согласно настройкам периодического обмена данными. Если информационная база работает в файл-серверном режиме, то периодический обмен выполняется только у пользователя, который указан в параметрах учетной политики как «Пользователь для регламентных заданий в файловом режиме». В Клиент-серверном варианте обмен выполняется на сервере 1C:Предприятия.

    У меня Клиент-серверный вариант — для работы регламентного автообмена пришлось перегружать сервер

    2. Кодировка Windows.
    Обмен прерывался ошибкой — так как не происходит сжатие файла. Это из-за ошибки кириллицы в командной строке при сжатии.
    Лечится исправлением кодировок в реестре.
    Например, для Windows Server 2008 —
    Код

    REGEDIT4
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
    «1250»=»c_1251.nls»
    «1251»=»c_1251.nls»
    «1252»=»c_1251.nls»
    «1253»=»c_1251.nls»
    «1254»=»c_1251.nls»
    «1255»=»c_1251.nls»

    3. Создавая копию базы (например, для доработки) в клиент-серверном варианте, НЕОБХОДИМО, чтобы РЕГЛАМЕНТНЫЕ ЗАДАНИЯ КОПИИ базы были ВЫКЛЮЧЕНЫ. Блокировка регламентных заданий для копии ВКЛ

    Если их не заблокировать, то копия будет делать обмены по тому же расписанию, что и основная база. Значит, часть сообщений в удаленные узлы будет формироваться из рабочей базы, а часть из копии, что приведет рассинхронизации конфигураций.

    Распределенные информационные базы РИБ

    Инструкция по настройке распределенной информационной базы в 1С на примере Управление торговлей 11. Нюансы работы, наиболее частые ошибки и пути их решения.

    Настройка узлов РИБ в 1С

    Механизм распределенных информационных баз (РИБ) позволяет настроить обмен данными между двумя и более идентичными конфигурациями. Под идентичными понимаются базы с абсолютно одинаковой конфигурацией (например, УТ и УТ ). Данный механизм служит в основном для обмена между базами, которые разделены друг от друга территориально и нет других способов синхронизации (или в случае нестабильного интернета). Работа в таких базах производится независимо друг от друга, а обмен данными происходит через передаваемые файлы сообщений (например, через электронную почту, или посредством копирования на съемные носители).Распределенная база состоит из одного центрального узла и одного (или нескольких) периферийных узлов. Чаще всего задача обменов между узлами РИБ сводится к выгрузке данных из периферийных узлов в центральную базу.

    Рассмотрим механизм создания распределенной базы на примере 1С:Управление торговлей 11 .

    Раздел НСИ и администрирование –> синхронизация данных –> настройка синхронизации данных –> кнопка новая синхронизация данных . Существует два варианта настройки:

    • Распределенная информационная база – предназначена для настройки нового узла обмена РИБ;
    • РИБ с фильтрами — Применяется в тех случаях, когда нужно обмениваться данными не по всем организациям и/или подразделениям, находящимся в базе.

    В дальнейшем примере выбран первый вариант – распределенная информационная база .

    Настройка РИБ

    В открывшемся окне рекомендуется в первую очередь создать архивную копию базы. Нажимаем создать резервную копию , выбираем необходимый путь для создания копии и нажимаем на кнопку сохранить резервную копию . Через некоторое время копия базы будет создана по указанному пути и можно будет переходить к этапам настройки.

    Создание резервной копии

    Переходим по ссылке настроить параметры подключения .

    Настройки параметров подключения

    На этом этапе выбирается каким способом будут синхронизироваться данные. Это может быть каталог – папка на компьютере или в локальной сети, синхронизация через FTP на сервере или электронную почту. Выберем вариант использовать локальный или сетевой каталог для синхронизации данных . Именно в этот каталог будут сохраняться файлы для выгрузки и загрузки. Нажмем Далее .

    Выбор каталога

    Укажем наименование программы – корреспондента и префикс. На примере — ПБ . Нажмем Далее

    Указание префикса

    Настройки подключения для этой программы завершены. Готово .

    Подключение успешно сохранено

    Переходим к следующему этапу настройки РИБ – настроить правила отправки и получения данных .

    Настройки правила отправки и получения данных

    На этом этапе создается начальный образ периферийной программы. Для этого нажимаем Создание начального образа с файлами и указываем каталог, в котором создастся периферийная база. В качестве расширения должно быть указано 1Cv8.CD – программа поставит его автоматически. Нажимаем создать начальный образ .

    Каталог для создания начального образа

    Откроется окно создания начального образа.

    Создание начального образа

    Через некоторое время создание начального образа будет завершено.

    Завершение создания начального образа

    Все этапы настройки распределенной информационной базы для этой программы завершены.

    Завершенные этапы настройки

    Добавим распределенную информационную базу в список программ, зайдем в неё и продолжим настройку.

    Добавление периферийной базы

    После входа в программу автоматически открывается помощник синхронизации данных. Напомним, что настройки всегда можно открыть из раздела НСИ и администрирование –> синхронизация данных –> настройка синхронизации данных –> кнопка новая синхронизация данных — распределенная информационная база . Нажимаем настроить параметры подключения .

    Продолжение настроек

    Вас может заинтересовать

    • Как настроить обмен между конфигурациями 1С
    • Зависимость цены от объема продаж
    • Как выгрузить из базы данные по организации (или удалить)

    Выберем каталог и нажмем Далее .

    Выбор каталога

    На этом этапе видм представление программ и префиксы. Далее . Нстройки подключения второй базы сохранены.

    Проверка префиксов

    Нажмем настроить правила отправки и получения данных .

    Настройки правил отправки и получения данных

    Запишем и закроем настройки. На этом настройки РИБ завершены.

    Завершение настройки

    Рассмотрим совместную работу с двумя базами и разберем основные нюансы работы, некоторые ошибки и методы их исправления. Представим, что пользователи в каждой из баз зашли в карточку контрагента и поменяли в нем название. В центральной базе переименовали контрагента Маяк на Маяк_Н , а в распределенной на Маяк-н (отличие регистре буквы Н ) и провели синхронизацию в обеих базах.

    Проводим обмен между центральной базой и периферийным узлом РИБ (дальнейшия действия нужно сделать поочередно во всех базах РИБ) — Раздел НСИ и администрирование –> синхронизация данных –> настройка синхронизации данных – кнопка синхронизировать .

    Синхронизация

    Когда синхронизация проведена, данные записываются в файлы по тому пути, который был указан в первоначальной настройке. Именно этими файлами нужно будет обмениваться между удаленными рабочими местами.

    Предупреждения

    После проведения синхронизации получили одно предупрждение.

    Предупреждения

    Нажав на предупреждение откроется окно, где можно проанализировать конфликты синхронизации. Нажмем показать отличие .

    Показать отличия

    И посмотрим как изменился объект.

    Отчет по изменениям версий объекта

    Программа автоматически разрешила конфликт в пользу центральной базы, т.к. центральная база имеет приемущество перед периферийной. По кнопке пересмотреть — результат решения можно поменять на противоположный.

    Пересмотр конфликта

    А по кнопке подтвердить – подтверждается разрешение конфликта и он исчезнет из списка предупреждений.

    Подтверждение

    Как видим совместная работа в РИБ может привести к коллизиям, когда одни и те же данные одновременно изменяются в разных узлах. Чтобы этого избежать рекомендуется настроить права доступа таким образом, чтобы изменение одних и тех же данных в разных узлах базы стало невозможным.

    В завершении рассмотрим наиболее распространенные ошибки при работе с РИБ.

    Конфигурация узла распределенной ИБ не соответствует ожидаемой

    Данная ошибка возникает как правило из-за аварийного завершения работы программы во время обмена.

    Рекомендуется выполнить следующие действия:

    1. Создайте архивные копии всех баз и запустите конфигуратор в центральной базе;
    2. Отключите основной узел с помощью специальной обработки;
    3. Сохраните конфигурацию в файл ( Конфигурация —> Сохранить конфигурацию в файл );
    4. Откройте конфигуратор базы подчиненного узла и снимите конфигурацию с поддержки ( Конфигурация —> Поддержка —> Настройки поддержки —> Снять с поддержки );
    5. Загрузите конфигурацию из ранее сохраненного файла центральной базы ( Конфигурация —> Загрузить конфигурацию из файла );
    6. После загрузки нужно применить все изменения для базы данных (нажатие на клавишу F7 );
    7. После реструктуризации необходимо зайти в режим предприятия и с помощью обработки установить главный узел конфигурации;
    8. Исправление завершено, обмен должен работать нормально.

    Новые материалы на сайте

    • Ведение журнала записей в 1С
    • Хранение базы знаний в 1С
    • Перенаправление писем и задач

    Номер сообщения меньше либо равен ранее принятому в 1С

    Чаще всего такая ошибка возникает если одна из баз была восстановлена из архивной копии. В таком случае необходимо выравнять коды сообщений узлов обмена.

    • Сделать архивные копии всех баз;
    • Открыть типовую обработку регистрация изменений для обмена;
    • В ней нажать на гиперссылку с номерами сообщений или на кнопку изменить номера сообщений;
    • В открывшемся окне обнуляем номера сообщений и нажимаем Записать .

    Дмитрий Медведков 1С

    Дмитрий Медведков программист, консультант 1С
    Работаю в 1С с 2012-го, специализируюсь на УТ 11
    Имею 10 квалифиционных сертификатов 1C:Профессионал, 1С:Специалист и 1С:Специалист-консультант

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *