Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1C-DevGuide83

.pdf
Скачиваний:
355
Добавлен:
14.05.2015
Размер:
46.69 Mб
Скачать

Занятие 24 741

Рис. 24.8. Командный интерфейс подсистемы «Предприятие»

В режиме «1С:Предприятие»

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

Прежде всего, зададим значение константы Префикс нумерации ЦБ. Для этого выполним команду Общие настройки в подменю Сервис панели команд раздела Предприятие (рис. 24.9).

Рис. 24.9. Значение константы «Префикс нумерации»

Нажмем Записать и закрыть. После этого откроем план обмена Филиалы и зададим параметры узла по умолчанию, то есть параметры нашей базы.

742 1С:Предприятие 8.3. Практическое пособие разработчика

Для этого выполним команду Филиалы в панели команд раздела Предприятие. В списке планов обмена уже присутствует одна запись. Откроем и отредактируем ее.

Код базы будет ЦБ, а наименование – Центральная база.

Не забудьте, что именно код идентифицирует узлы обмена в  различных базах, поэтому в базе филиала мы будем создавать узлы с такими же кодами (рис. 24.10).

Рис. 24.10. Создание узла плана обмена

Нажмем Записать и закрыть.

Затем нажмем кнопку Создать или воспользуемся командой Филиал в  подменю Создать.

Создадим новый узел, который будет соответствовать базе филиала, присвоим ему код Фил и наименование Филиал (рис. 24.11).

Рис. 24.11. Создание узла плана обмена

Обратите внимание, что предопределенный узел нашей информационной базы (Центральная база) выделен в списке узлов обмена специальной пиктограммой. Кнопка Зарегистрировать изменения недоступна для этого узла.

Занятие 24 743

Выделим в списке новый узел Филиал и нажмем кнопку Зарегистри-

ровать изменения.

Теперь вызовем обработку Обмен данными и нажмем Выполнить обмен. В окне сообщений появится следующий текст (рис. 24.12).

Рис. 24.12. Окно служебных сообщений

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

Запуск базы филиала

Настало время перейти к базе филиала.

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

мационной базы. Нажмем Далее.

В следующем окне выберем Создание информационной базы без конфигурации для … загрузки выгруженной ранее информационной базы.

Нажмем Далее, затем укажем наименование информационной базы,

например, база Филиала.

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

пособие разработчика 8.3\Филиал, нажмем Далее и затем Готово.

744 1С:Предприятие 8.3. Практическое пособие разработчика

В режиме «Конфигуратор»

Откроем созданную нами конфигурацию база Филиала в режиме Конфигуратор. Выполним команду главного меню Конфигурация Открыть конфигурацию. Мы видим, что список объектов конфигурации пуст.

Теперь загрузим конфигурацию из файла (Конфигурация Загрузить конфигурацию из файла…).

В окне выбора файла выберем каталог и имя файла, где находится сохраненная конфигурация, например, D:\Практическое пособие разработчика 8.3\Филиал\1Cv8.cf. На вопрос системы об обновлении конфигурации ответим утвердительно и в окне изменений структуры конфигурации нажмем Принять.

Теперь все объекты конфигурации перенесены из нашей центральной базы.

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

Основной.

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

Обновление предопределенных данных для этих объектов стан-

дартно устанавливается в значение Авто. Это приводит к тому, что при реструктуризации базы данных или при первом обращении к  таблице, хранящей данные объекта конфигурации, создаются или обновляются элементы данных, связанных по имени с предопределенными элементами данных в конфигурации.

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

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

Занятие 24 745

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

Прочее и установим свойство Обновление предопределенных данных в  значение Не обновлять автоматически (рис. 24.13).

Рис. 24.13. Редактирование свойств справочника «Склады»

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

В режиме «1С:Предприятие»

Запустим «1С:Предприятие» в режиме отладки.

Первым делом зададим значение константы ПрефиксНумерации ФЛ

(рис. 24.14).

Рис. 24.14. Редактирование константы

746 1С:Предприятие 8.3. Практическое пособие разработчика

Затем откроем план обмена Филиал и опишем предопределенный узел (узел текущей информационной базы). Для этого выполним команду Филиалы в панели команд раздела Предприятие.

В списке планов обмена уже присутствует одна запись. Откроем и отредактируем ее. Зададим код Фил и наименование Филиал

(рис. 24.15).

Рис. 24.15. Создание узла плана обмена

После этого создадим новый узел плана обмена с кодом ЦБ, наимено-

ванием Центральная база и признаком Главный (рис. 24.16).

Рис. 24.16. Создание узла плана обмена

Выделим в списке узлов обмена новый узел Центральная база

и  нажмем кнопку Зарегистрировать изменения.

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

Не обновлять автоматически.

Занятие 24 747

Запустим обработку Обмен данными и нажмем Выполнить обмен.

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

Рис. 24.17. Сообщения плана обмена

ПРИМЕЧАНИЕ

Чтобы увидеть клиентов, перенесенных из центральной базы, нужно обновить список клиентов (Еще Обновить – F5).

Теперь проверим, как будет происходить обмен в другую сторону.

Создадим в справочнике Клиенты нового клиента с произвольным наименованием.

Обратите внимание, что нумерация кода нового клиента начинается с  единицы и имеет префикс ФЛ.

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

748 1С:Предприятие 8.3. Практическое пособие разработчика

Механизм распределенных информационных баз

Механизм распределенных информационных баз является развитием универсального механизма обмена данными.

ВНИМАНИЕ!

Если вы используете учебную версию платформы «1С:Предприятие  8.3», то воспроизвести этот пример не удастся, так как учебная версия не поддерживает работу с распределенными информационными базами.

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

Механизм распределенных информационных баз реализуется планами обмена. Для этого объект конфигурации План обмена

содержит свойство Распределенная информационная база.

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

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

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

Основные сведения

Как мы уже говорили выше, распределенная информационная база должна иметь четко определенную древовидную структуру. Количество уровней в такой структуре не ограничено, главное – между двумя связанными узлами всегда должно быть определено отношение «главный – подчиненный» (рис. 24.18).

Занятие 24 749

Рис. 24.18. Структура распределенной информационной базы

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

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

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

Разрешение

коллизий

также будет производиться исходя

из  отношения

«главный

– подчиненный». Если изменения

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

750 1С:Предприятие 8.3. Практическое пособие разработчика

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

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

Постановка задачи

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

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

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

офис, причем если главный офис вносит

какие-либо изменения

в  свою конфигурацию, они должны быть

своевременно внесены

и  в  конфигурации отделений.

 

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

Интерактивный обмен

В режиме «Конфигуратор»

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

Для этого плана обмена мы установим свойство Распределенная информационная база (рис. 24.19).