В начало
План обмена справочника «Должности» Очередной пример плана
обмена простенького справочника «Должности» между главной базой, выполненной на
обычных формочках и базой филиала некой организации на управляемых формах в
интерфейсе Такси. Рис.
Структура и внешний вид справочника «Должности» в главной базе Сначала создаем план обмена в
разделе метаданных «Общие – Планы обмена», называем его скажем «ОбменДолжностей». Сразу переходим на закладку свойств
объекта и изменяем состав плана обмена, а именно добавляем пресловутый
справочник «Должности». Конечно, можно сразу надобавлять
различных объектов в один план объекта, но торопиться не будем, ибо незачем. Рис.
Свойства объекта «ОбменДолжносте», закладка
«Основные» Далее переходим на вкладку свойств
«Данные» и создаём реквизит «ГлавныйУзел» с типом
«Булево» для разрешения конфликтной ситуации, когда одновременно в двух базах
был изменен один и тот же элемент справочника «Должности». Естественно, более
приоритетными будут изменения совершенные в главном узле. Рис.
Свойства плана обмена «ОбменДолжностей» в
конфигураторе, Закладка
«Данные» Потом переходим на закладку «Формы»
свойств плана обмена «ОбменДолжностей» и создаем
формы: ФормуУзла и ФормуСписка. Рис.
Свойства плана обмена «ОбменДолжностей», закладка
«Формы» Теперь нужно добавить необходимый
код. Начинаем с модуля объекта. В данном модуле нужно размести две процедуры
для записи и чтения сообщений, а именно: ПрочитатьСообщениеСИзменениями()
и ЗаписатьСообщениеСИзменениями(). Листинг.
Модуль объекта плана обмена «ОбменДолжностей»
Далее переходим к модулю формы узла
и добавляем обработчик события «ПередОткрытием», в
котором пишем код для установки доступности элемента формы «Главный узел». Листинг.
Модуль формы узла плана обмена «ОбменДолжностей»
Затем переходим к форме списка плана
обмена «ОбменДолжностей». Создаём на данной форме
кнопочку «Зарегистрировать изменения». Добавляем обработчик нажатия кнопки. А
также добавляем код «ПриАктивацииСтроки», который
будет управлять доступностью кнопки «ЗарегистрироватьИзменения»
для нажатия. Листинг.
Модуль формы списка плана обмена «ОбменДолжностей»
Теперь запустим программу в режиме
«1С:Предприятие» и настроим план обмена. Необходимо заполнить код и
наименование для главного узла и филиала, примерно как показано далее. Рис. План
обмена «Обмен должностей» И наконец, возвращаемся в
конфигуратор и создаем обработку «ОбменДолжностей»,
для которой создаём форму обработки. Добавляем код на кнопку «Выполнить обмен». Рис. Форма
обработки «ОбменДолжностей» в конфигураторе Далее приведен листинг модуля формы
с кодом обработчика нажатия кнопки. Листинг. Модуль
формы обработки «ОбменДолжностей»
Протестируем данную обработку. Для
этого запустимся в режиме отладки, откроем обработку «ОбменДолжностей»,
нажмем кнопочку «Выполнить обмен». При этом должен сформировать XML-файл сообщения с данными для обмена между главной
базой и базой филиала. Файл можно найти в каталоге временных файлов, а его имя
– «Сообщение_ОбменДолжностей_ЦБ-ФЛ.xml». Данный файл можно открыть или в
текстовом редакторе или браузере. Листинг.
Кусок кода файла обмена «Сообщение_ОбменДолжностей_ЦБ-ФЛ.xml»
Далее настроим базу филиала
аналогичным образом. Начнем с создания плана обмена «ОбменДолжностей».
Код в модуле объекта «ОбменДолжностей» аналогичен тому, что расположен в
конфигурации главной базы. Создаем
для плана обмена «ОбменДолжностей» форму узла. Рис. Форма
узла плана обмена в конфигурации филиала В модуль формы узла добавляем
обработчик «ПриСозданииНаСервере». Листинг.
Модуль узла плана обмена «ОбменДолжностей»
Далее добавляем форму списка,
создаем команду «ЗарегистрироватьИзменения» и
перетаскивая ее в левую часть конструктора формы, создаем, таким образом,
одноимённую кнопку, для которой добавляем обработчик нажатия. Рис. Форма
списка плана обмена «ОбменДолжностей» в
конструкторе конфигурации филиала фирмы Также необходимо добавить обработчик
«ПриАктивацииСтроки» для списка формы списка.
Приведен ниже листинг формы списка для наглядности. Листинг.
Модуль формы списка плана обмена «ОбменДолжностей» в
конфигурации филиала организации
Протестируем план обмена в режиме
отладки. Также нужно изменить код и наименование предопределённого узла и
создать узел для центральной базы. Для центральной базы нужно установить
галочку «Главный узел» на форме узла. Рис. План
обмена «Обмен должностей» Теперь вернемся в конфигуратор и
создадим обработку «ОбменДолжностей». Для обработки
сделаем формочку и добавим команду/кнопку выполнить обмен. Рис. Форма
обработки «ОбменДолжностей» в конфигураторе Далее привожу процедуры, расположенные
модуле формы обработки. Листинг.
Модуль формы обработки «Обмен должностей»
Протестируем обработку в режиме
отладки. Открываем план обмена «ОбменДолжностей»,
нажимаем кнопочку «Зарегистрировать изменения». Далее запускаем обработку
«Обмен должностей» и нажимаем кнопу «Выполнить обмен». Если ошибок нет, то
будет прочитан файл, созданный в главной базе «Сообщение_ОбменСотрудников_ЦБ-ФЛ.xml», а вместо
него создан другой «Сообщение_ОбменСотрудников_ФЛ-ЦБ.xml». При
этом будут внесены изменения в справочник «Должности». Рис.
Справочник «Должности»: в главной
базе (слева) и базе филиала (справа) Проверяем обмен, удаляем, добавляем элементы справочника «Должности» в
разных базах и одновременно. Все работает. |
||||||||||