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