Построение распределенных информационных систем
В следующем окне нас попросят указать каталог информационной базы и язык. Укажем C:\База филиала (если нужной папки не существует, предварительно создадим ее), в качестве языка выберем русский и нажмем Готово.
Процесс создания начального образа ИБ сопровождается серией служебных сообщений, а при успешном завершении этого процесса выводится окно сообщения с соответствующей надписью.
В папке, которая указана при создании начального образа, расположена обычная база данных 1С:Предприятие 8, готовая к работе. Подключим базу в стартовом окне программы (кнопка Добавить в окне Запуск 1С:Предприятия, и, для начала, откроем ее в режиме Конфигуратор. Можно заметить, что конфигурация закрыта от изменений, рис. 7.9. Изменения конфигурации распространяются от главной базы к подчиненной, но не наоборот.
Можно заметить, что в базе присутствуют не только те объекты, которые указаны при настройке плана обмена (в нашем случае среди документов это лишь ПоступлениеМатериалов ), но и другие. Эти объекты присутствуют в базе, однако, если ввести, например, в базе филиала документ НачислениеЗарплаты - он так и останется в базе филиала, на основную базу это не повлияет.
Еще одна особенность - в базе филиала отсутствует список пользователей, определенный в основной базе - этот список не является частью конфигурации, к тому же, вполне логично настроить новый набор пользователей в новой информационной базе.
В сущности, в подобной базе данных конфигуратор нужен лишь для целей администрирования базы, списка пользователей, однако, он выполняет еще одну важную функцию. Если в главной базе, в одном из объектов было замечено изменение метаданных (например, добавлен новый реквизит), или был создан новый объект - для автоматического обновления информационной базы будет вызван Конфигуратор.
Откроем базу филиала в режиме 1С:Предприятие, и первым действием, которое мы выполним, будет установка константы Префикс номера. Откроем форму констант и введем в качестве префикса ФБ, рис. 7.10. В основной базе установим эту константу в значение ГБ.
Если вы откроете в базе филиала форму констант, то, независимо от состояния констант в основной базе, их значения будут пустыми. Константы не отмечены в составе плана обмена, поэтому, хотя объекты существуют, могут редактироваться и использоваться в базе филиала, их изменения не синхронизируются.
Теперь попробуем выполнить некоторые действия в базе филиала. А именно, создадим новый документ ПоступлениеМатериалов ( рис. 7.11). Сразу же можно отметить, что номер этого документа начинается с ФБ. Так же, если мы будем создавать в базе филиала новые элементы справочника Номенклатура, Контрагенты и других (что, учитывая специфику задачи, вполне естественно) - их коды так же будут начинаться с ФБ.
Для заполнения этого документа мы, в основном, пользовались элементами справочников, которые "достались" базе филиала от основной базы, а один из элементов - "Туалетная вода", был создан уже в базе филиала. Так же обратите внимание на состав списка документов Поступление материалов в базе филиала.
Теперь добавим новый документ Поступление материалов в основной базе, на рис. 7.12 показано состояние списка документов этого вида в основной базе.
После того, как в базы внесены изменения, займемся их синхронизацией.
Откроем в основной базе план обмена Распределенная ИБ, выделим элемент ИБ филиала и нажмем на кнопку Записать изменения. Будет выдано диалоговое окно с вопросом о том, куда следует сохранить файл сообщения, рис. 7.13.
По умолчанию имя файла выглядит как Message_ГБ_ФБ.zip (то есть, нечто вроде "Сообщение от главной базы базе филиала). Файл сообщения, на самом деле, является XML-файлом, но благодаря установке параметра Сжимать сообщение он сразу же упаковывается в ZIP-архив.
Произведем аналогичное действие в базе филиала, но теперь в списке плана обмена выделим узел Главная ИБ, файл для главной ИБ будет называться Message_ФБ_ГБ.zip.
Предположим, некий курьер в конце дня привозит на флэш-диске файл Message_ГБ_ФБ.zip в филиал из центрального офиса, и забирает оттуда файл Message_ФБ_ГБ.zip. Эти файлы можно передать любым удобным способом, например, на переносном носителе информации, по электронной почте.
После получения файла в форме списка плана обмена Распределенная ИБ базы филиала выделим элемент Главная ИБ и нажмем на кнопку Прочитать изменения. Появится соответствующее окно, в котором нужно указать расположение и имя файла с сообщением от Главной ИБ, рис. 7.14.
После получения сообщения о том, что чтение данных успешно завершено, мы можем взглянуть на список документов ПоступлениеМатериалов - там появится новый документ из Главной ИБ.
Проделав аналогичную операцию в Главной ИБ, мы получим там новый документ из ИБ филиала и новый, созданный там же, элемент справочника. Естественно, изменения будут внесены и в регистры, по которым проводится документ из базы филиала.
Выше мы говорили о том, что распределенная информационная база поддерживает передачу изменений конфигурации (метаданных объектов) от главной базы к подчиненным.
Рассмотрим пример. Добавим в узле Главная ИБ с помощью конфигуратора новую константу, назовем ее КонстантаДляРИБ. Откроем Главную ИБ в режиме 1С:Предприятие, добавим в справочник Номенклатура новый элемент - Лак для ногтей в группу Прочие материалы.
Запишем сообщение из Главной ИБ в ИБ филиала, при чтении файла в ИБ филиала мы получим такое окно с сообщением, рис. 7.16.
Если мы ответим на данный вопрос утвердительно, запускается Конфигуратор, в базу вносятся изменения, которые, после нажатия на кнопку Обновить конфигурацию базы данных, попадают в нашу рабочую конфигурацию.
После того, как база обновлена, следует еще раз произвести чтение сообщения - для того, чтобы из него были прочитаны изменения данных объектов.
Если после обновления конфигурации не прочесть сообщение повторно - данные в базах не будут синхронизированы. В нашем случае это будет означать, что новый элемент справочника Номенклатура не будет добавлен в ИБ филиала.
7.4. Выводы
В данной лекции мы рассмотрели возможности по организации распределенных баз данных. Мы пользовались стандартными средствами, однако, механизмы РИБ допускают и программное управление. Например, по умолчанию изменения, выполненные в главном узле базы имеют приоритет перед изменениями, выполненными в подчиненном узле. Это позволяет поддерживать базы в синхронизированном состоянии, однако не всегда совпадает с практическими целями. Для организации работы территориально удаленных пользователей можно так же использовать универсальные механизмы обмена данными, которые так же основаны на планах обмена.
Наша следующая лекция будет посвящена некоторым дополнительным возможностям, касающимся разработки для 1С:Предприятие.