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