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