Типы, порождаемые элементом проекта вида «Планы Обмена»
После того как вы добавили в проект план обмена, «1С:Шина» создаст несколько типов, имена которых в общем случае выглядят следующим образом:
имя-плана-обменаимя-плана-обмена.Ссылкаимя-плана-обмена.Объектимя-плана-обмена.Данные
Например, если в проекте есть план обмена Склады, то будут созданы следующие типы:
СкладыСклады.СсылкаСклады.ОбъектСклады.Данные
Тип «имя-плана-обмена»
Это тип-одиночка.
Тип имя-плана-обмена содержит методы для работы с узлами плана обмена и ссылками на них. Например, НайтиПоКоду(), ПолучитьСсылку().
Также он позволяет пересчитать разрешения доступа: ПересчитатьРазрешенияДоступа(), ПересчитатьРазрешенияДоступаДляОбъектов() (подробнее).
Этот тип не имеет конструктора и имеет единственный экземпляр, обращение к которому выполняется по имени типа:
// Получить менеджера плана обмена «Склады»
пер МенеджерПланаОбмена = Склады
// Пересчитать разрешения доступа плана обмена «Склады»
Склады.ПересчитатьРазрешенияДоступа()
Модуль плана обмена
В проекте модуль, расширяющий тип имя-плана-обмена, называется модулем плана обмена и имеет название имя-плана-обмена.xbsl.
В этом модуле вы можете обработать событие ПолучитьЗначенияВыбора для того, чтобы изменить стандартный алгоритм подбора узлов плана обмена при вводе по строке.
Также в модуле плана обмена можно обработать события вычисления разрешений доступа: ВычислитьРазрешенияДоступа, ВычислитьРазрешенияДоступаДляОбъектов (подробнее).
Вы можете расширить тип имя-плана-обмена, добавив в модуль плана обмена собственные публичные методы. Например, метод, создающий элементы определенного вида:
// Создает узел в плане обмена «Склады»
@ВПроекте
метод СоздатьСкладМосква(Наименование: Строка): Склады.Ссылка
пер Склад = новый Склады.Объект()
Склад.Наименование = Наименование
Склад.Регион = Регионы.Москва
Склад.Записать()
возврат Склад.Ссылка
;
Этот метод будет доступен в других модулях:
// Вызов метода разработчика у менеджера справочника «Сотрудники»
пер НовыйСкладМосква = Склады.СоздатьСкладМосква("Север")
Тип «имя-плана-обмена.Объект»
Тип имя-плана-обмена.Объект доступен в окружении КлиентИСервер.
Экземпляр этого типа содержит дан ные одного узла плана обмена и предназначен для создания, изменения или удаления узла плана обмена.
Этот тип имеет конструктор новый имя-плана-обмена.Объект(), который позволяет создать новый узел плана обмена. Заполнив этот экземпляр данными, вы можете затем сохранить его в базе данных.
Модуль объекта плана обмена
В проекте модуль, расширяющий тип имя-плана-обмена.Объект, называется модулем объекта плана обмена или модулем узла. Он доступен в окружении Сервер.
В нем вы можете обработать такие события, как:
ПриЗаполнении,ПередЗаписью,ПослеЗаписи,ПередУдалением.
Например:
@Обработчик
метод ПередУдалением(ПараметрыУдаления: Склады.ПараметрыУдаления)
// Действия, которые выполняются перед удалением плана обмена
;
Во время записи узла плана обмена «Шина» открывает в базе данных транзакцию записи и в ызывает следующие события:
Вы можете расширить тип имя-плана-обмена.Объект, добавив в модуль объекта собственные публичные методы. Например, метод, пересчитывающий данные узла плана обмена, которые зависят от каких-то внешних данных, которые хранятся вне плана обмена:
@ВПроекте
метод ПересчитатьДанные()
// Алгоритм пересчета данных
// ...
;
Этот метод будет доступен в других модулях:
// Вызов собственного метода объекта плана обмена «Склады»
// В переменной Склад находится значение типа Склады.Объект
Склад.ПересчитатьДанные()
Склад.Записать()
Тип «имя-плана-обмена.Ссылка»
Тип имя-плана-обмена.Ссылка доступен в окружении КлиентИСервер.
Он предназначен для описания ссылки на один узел плана обмена.
Он имеет конструктор новый имя-плана-обмена.Ссылка(), который позволяет создать новую ссылку по Ууид и метод ЗагрузитьОбъект(), который есть только на сервере и который позволяет получить экземпляр (имя-плана-обмена.Объект) из ссылки (имя-плана-обмена.Ссылка).
Чтобы узнать, является ли какое-либо значение ссылкой на элемент плана обмена, можно использовать ключевое слово это, например:
метод ЯвляетсяСсылкойНаПланОбмена(Элемент: Объект): Булево
возврат Элемент это ПланОбмена.Ссылка
;
Тип «имя-плана-обмена.Данные»
Тип структуры с реквизитами, соответствующими реквизитам плана обмена. Тип имя-плана-обмена.Данные доступен в окружении Сервер.
Используется только в обработчиках событий имя-плана-обмена.Объект.ПередЗаписью и имя-плана-обмена.Объект.ПослеЗаписи.
Не имеет конструктора. «Шина» сам создает экземпляр этого типа при наступлении упомянутого события. Он передает в обработчик события экземпляр этого типа, наполненный «старыми» значениями.
Тип «ПланыОбмена»
Тип ПланыОбмена доступен в окружении