Распределенная 1с. Распределенная информационная база: Основы

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

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

Базовые принципы работы РИБ

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

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

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

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

Прием и формирование сообщений обмена в РИБ устанавливаются одной командой

Планыобмена. ЗаписатьИзменения(ЗаписьСообщения, 0 )

Содержимое читается посредством команды

Вывод

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

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

В настоящее время данная проблема зачастую решается предоставлением территориально удаленным сотрудникам удаленный доступ к общей базе. Он может быть осуществлен посредством публикации базы на веб-сервере, через удаленный рабочий стол и проч.

Однако, не редки и такие ситуации, когда в территориально удаленном офисе попросту нет интернета, либо он не достаточно стабилен для работы в общей информационной базе. Для этого в 1С существует механизм настройки распределенной базы.

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

В данной статье мы рассмотрим настройку распределенной базы данных для 1С:Бухгалтерия 3.0. Несмотря на это, инструкция подойдет и для большинства других конфигураций 1С 8.3.

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

Главная информационная база

При использовании распределенной базы данных основные настройки приходятся на главную базу. Производить их нужно в разделе «Администрирование», как показано на изображении ниже.

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

Теперь можно приступить к настройке самой синхронизации, а именно к указанию того, с какой базой (или базами) будет производиться обмен данными. Для этого перейдите по гиперссылке «Настройки синхронизации данных». Она будет доступна для перехода только при установленной галке слева.

В открывшемся окне из меню выберем пункт «Полный…». Он позволит нам указать любую информационную базу 1С для произведения синхронизации.

В первом окне подключения подчиненной базы, которая расположена в территориально удаленном офисе, отметим флагом, что подключение будет производиться через локальный или сетевой каталог. В нашем случае это «D:\DB\InfoBase». Так же заранее проверим возможность записи в него.

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

Когда программа предложит вам создать начальный образ, выберите эту опцию. Данная процедура займет некоторое время, после чего сохраните его на компьютер с именем «1Cv8.1CD».

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

Подчиненный узел РИБ

Количество производимых настроек в подчиненной базы значительно меньше. В том же разделе установите флаг «Синхронизация данных» и перейдя по соответствующей ссылке будет доступна кнопка «Синхронизировать».

В рамках нашего примера в главную базу были добавлены две номенклатурные позиции: «Брус» и «Доска». После синхронизации они попали в подчиненную базу. Как вы можете увидеть на рисунке ниже, им присвоился префикс «БГ». Остальным двум позициям («Токарный станок» и «Поддон») присвоен префикс «БП», так как они были заведены непосредственно в подчиненной базе.

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

Для создания распределенной информационной базы необходимо зайти программу в режиме "1С: Предприятие". Для создания узлов распределенной базы в меню выбираем: Операции - Планы обмена. Откроется окно «Выбор объекта: План обмена».


1. Рассмотрим вариант с планом обмена «Полный».

Обмен будет, осуществляться по всем организациям, находящимся в распределенной информационной базе.

Выберем план обмена «Полный». Откроется окно «План обмена полный».

Заполняем две записи:

Первую запись назовем «Главный узел», код укажем «ГУ»,

Вторую запись назовем «Подчиненный узел», код укажем «ПУ».

Как видим из рисунка, у первой записи значок изображен с зеленным кружком, это значок «Главного узла».


Для создания копии информационной базы «Главного узла», кликаем на «Подчиненный узел» и нажимаем на значок «Создать начальный образ». Это будет информационная база «Подчиненного узла».


Откроется окно «Создание начального образа ИБ», выбираем «На данном компьютере или на компьютере в локальной сети», нажимаем «Далее».


В поле «Каталог информационной базы» выбираем местоположение, куда будет установлена копия «Главного узла», нажимаем «Готово».


После создания информационной базы «Подчиненного узла» появится сообщение:


Нажимаем «Ок».

Добавляем информационную базу «Подчиненного узла» в "1С: Предприятие". Заходим в подчиненную базу в режиме "1С: Предприятие". Откроем: Операции - Планы обмена. Откроется окно «Выбор объекта: План обмена». Выберем план обмена «Полный». Откроется окно «План обмена полный». Видим что значок «Главного узла» оранжевый, это значит, что этот узел является главным для той информационной базы, в которой мы находимся.


Следующие настройки делаем и в Главном и в Подчиненном узле:

1. Добавляем префикс для распределенной информационной базы.

Это делается для того чтобы не возникало конфликтов в номерах и кодах документов и справочников, созданных в двух базах, поэтому в каждой базе указываем префикс, который будет добавляться в номера документов и коды справочников. Открываем: Сервис - Настройка программы - закладка «Обмен данными». В поле «Префикс узла для распределенной информационной базы:» в подчиненной базе вводим «ПУ», в главной базе вводим «ГУ».


2. Добавляем настройку обмена данными между узлами:

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


Нажимаем «Добавить», откроется окно «Настройка обмена данными». Вводим «Наименование» вашей настройки.


В поле «Узел» автоматически появится узел, для «Главного узла» будет «Подчиненный узел», для «Подчиненного узла» будет «Главный узел».

В поле «Каталог» выберете папку, в которую будут поступать данные обмена, для главной и подчиненной базы лучше всего указывать один каталог.

В поле «Тип обмена» настраиваем передачу данных между базами: через файловый или фтп-ресурс. Выбирем например «обмен через файловый ресурс».

В остальных полях ничего не меняем.

Нажимаем «Ок». Видим, что появилась настройка.

3. Для обмена данными делаем следующее:

Сначала в базе, в которой были сделаны изменения, нажимаем на значок «Выполнить обмен по текущей настройке», как показано на рисунке.


После выгрузки появится окно результата выгрузки.


Потом в базе, в которую необходимо передать изменения, нажимаем на значок «Выполнить обмен по текущей настройке» и данные попадут в ту базу, в которую вы хотите.

2. Рассмотрим вариант с планом обмена «По организации».

Обмен будет, осуществляется по выбранным организациям, находящимся в распределенной информационной базе.

Для создание узлов распределенной базы в меню выбираем: Операции - Планы обмена. Откроется окно «Выбор объекта: План обмена».


Выберем план обмена «По организации». Откроется окно «План обмена По организации».

Заполняем две записи:

Первую запись назовем «Главный узел», код укажем «ГУ», видим отличие от «Плана обмена: Полный», появилась таблица, в которой указываем Организации по которым будет происходить обмен.

Вторую запись назовем «Подчиненный узел», код укажем «ПУ», указываем организации.


Во всем остальном настройка идет абсолютно аналогично с «Планом обмена: Полный».

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

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

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

В этой инструкции мы на примере создадим центральную и периферийную базы данных, проверим обмен между ними. Это пособие подойдет как для 1С 8.3 Бухгалтерия, так и для 1С Управление торговлей (УТ) и других конфигураций.

Настройка главной (центральной) распределенной базы РИБ

Зайдем в меню 1С «Администрирование», далее по ссылке «Настройки синхронизации данных». В открывшемся окне нужно установить флажок «Синхронизация данных». Станет активной ссылка «Синхронизация данных». Сразу здесь же установим префикс для главной информационной базы – например, «ЦБ»:

Заходим по ссылке «Синхронизация данных», откроется окно с кнопкой «Настроить синхронизацию данных». При нажатии на эту кнопку откроется выпадающий список, где нужно выбрать режим «Полный». Если требуется синхронизация только по одной организации, нужно выбрать «По организации…».

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

После создания резервной копии нажимаем кнопку «Далее». На следующем шаге нам следует определиться, как будет происходить синхронизация:

  • через локальный каталог или каталог в локальной сети;
  • по интернету посредством FTP.

Для простоты и наглядности примера выберем локальный каталог. Я указал следующий путь: «D:\Базы 1С\Синхронизация». Не лишней будет проверка записи в данный каталог, для этого есть специальная кнопка:

Получите 267 видеоуроков по 1С бесплатно:

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

Не забывайте, что префиксы каждой базы должны быть уникальны. В противном случае Вы получите ошибку «Значение префикса первой информационной базы не уникально».

Жмем «Далее», проверяем введенную информацию и опять нажимаем «Далее», затем — «Готово». В поле «Полное имя файловой базы» указываем файл 1Cv8.1CD в каталоге, который создали для синхронизации. Создаем начальный образ распределенной базы 1С:

После создания начального образа РИБ в 1С можно задать расписание синхронизации или синхронизировать вручную:

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

Только сразу в новой периферийной базе заведите хотя бы одного пользователя с правами Администратора.

Настройка синхронизации в периферийной базе данных

В периферийной базе 1С настройка намного проще. Достаточно установить флажок «Синхронизация данных» и перейти по одноименной ссылке. И мы почти сразу попадаем в окно с кнопкой «Синхронизировать». Попробуем создать тестовую номенклатуру в периферийной базе и выгрузить ее в основную с помощью РИБ:

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

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

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

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

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

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

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

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

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

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

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