Перейти к основному содержимому

{ИмяПланаОбмена}

Версия 7.0 и выше

{ИмяРазработчика}::{ИмяПроекта}::{ИмяПодсистемы}::{ИмяПланаОбмена} Тип-одиночка Доступность: КлиентИСервер

Содержит методы для работы с элементами плана обмена и ссылками на них.

Соответствует наборам статических методов или объектам-компаньонам в других языках.

Сравнение ссылочное

Иерархия типа

Базовые типы: Объект, Одиночка, Стд::ПланыОбмена::ПланОбмена


Методы

ВыбратьИзменения

Версия 8.0 и выше

Доступность: Сервер

ВыбратьИзменения(
Узел: {ИмяПланаОбмена}.Ссылка,
ФильтрВыборки: ИмяРегистраНакопления.КлючОсновногоФильтра|ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяСправочника.Ссылка|ИмяДокумента.Объект|ИмяДокумента.Ссылка|{ИмяРегистраСведений}.КлючОсновногоФильтра|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта|Обходимое<ИмяРегистраНакопления.КлючОсновногоФильтра|ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяСправочника.Ссылка|ИмяДокумента.Объект|ИмяДокумента.Ссылка|{ИмяРегистраСведений}.КлючОсновногоФильтра|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта|Тип<Объект>|Тип<Объект>|? = Неопределено
): ВыборкаДанных<ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяДокумента.Объект|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта>
Формирует выборку измененных данных для переданного узла.

Параметр Узел определяет узел плана обмена, для передачи в который отбираются изменения.

Параметр ФильтрВыборки определяет условия отбора изменений.

  • Если передан объект, представляющий данные, хранимые в базе данных, или ссылка, то выбирается только одно изменение указанных данных либо ни одного изменения, если данные не менялись.
  • Если передан набор записей регистра, то для регистрации изменений используются только условия фильтрации. Сами записи из БД не загружаются. В качестве ключа основного фильтра используется совокупность измерений, входящих в условия фильтрации. Если регистр является периодическим и включен в основной фильтр, то ключ также включает в себя период.
  • Если передан объект типа УдалениеОбъекта, то используется ссылка, установленная в этом объекте.
  • Если передано значение Неопределено, выбираются все изменения по узлу.
  • Если передан объект типа Обходимое, то вызов будет аналогичен серии вызовов метода для каждого отдельного элемента.

ВыбратьИзменения

Версия 7.0 и ниже

Доступность: Сервер

Метод заменен на ВыбратьИзменения.


ВыбратьИзмененияВСообщение

Версия 8.0 и выше

Доступность: Сервер

ВыбратьИзмененияВСообщение(
Узел: {ИмяПланаОбмена}.Ссылка,
НомерСообщения: Число,
ФильтрВыборки: ИмяРегистраНакопления.КлючОсновногоФильтра|ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяСправочника.Ссылка|ИмяДокумента.Объект|ИмяДокумента.Ссылка|{ИмяРегистраСведений}.КлючОсновногоФильтра|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта|Обходимое<ИмяРегистраНакопления.КлючОсновногоФильтра|ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяСправочника.Ссылка|ИмяДокумента.Объект|ИмяДокумента.Ссылка|{ИмяРегистраСведений}.КлючОсновногоФильтра|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта|Тип<Объект>|Тип<Объект>|? = Неопределено
): ВыборкаДанных<ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяДокумента.Объект|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта>
Формирует выборку измененных данных для передачи их в узел плана обмена. При этом в процессе выборки изменений, если в записи регистрации изменений не проставлен номер сообщения, то проставляется номер сообщения обмена данными, в котором должны передаваться изменения. Номер сообщения в записи регистрации проставляется для того, чтобы при подтверждении приема сообщения, в котором передавались изменения, соответствующие записи регистрации изменений были удалены и в дальнейшем изменения больше не передавались.

Параметр Узел определяет узел плана обмена, для передачи в который отбираются изменения.

Параметр НомерСообщения определяет номер сообщения обмена данными, в которое будут помещены выбранные изменения.

Параметр ФильтрВыборки определяет условия отбора изменений.

  • Если передан объект, представляющий данные, хранимые в базе данных, или ссылка, то выбирается только одно изменение указанных данных либо ни одного изменения, если данные не менялись.
  • Если передан набор записей регистра, то для регистрации изменений используются только условия фильтрации. Сами записи из БД не загружаются. В качестве ключа основного фильтра используется совокупность измерений, входящих в условия фильтрации. Если регистр является периодическим и включен в основной фильтр, то ключ также включает в себя период.
  • Если передан объект типа УдалениеОбъекта, то используется ссылка, установленная в этом объекте.
  • Если передано значение Неопределено, выбираются все изменения по узлу.
  • Если передан объект типа Обходимое, то вызов будет аналогичен серии вызовов метода для каждого отдельного элемента.

ВыбратьИзмененияВСообщение

Версия 7.0 и ниже

Доступность: Сервер

ВыбратьИзмененияВСообщение(
Узел: {ИмяПланаОбмена}.Ссылка,
НомерСообщения: Число,
ФильтрВыборки: УдалениеОбъекта|Обходимое<УдалениеОбъекта|Тип<Объект>>|Тип<Объект>|? = Неопределено
): ВыборкаДанных<УдалениеОбъекта>
Метод заменен на ВыбратьИзмененияВСообщение.


ВыгрузитьСообщение

Доступность: Сервер

ВыгрузитьСообщение(
ЗаписьСодержимого: ЗаписьXml,
Узел: ПланОбмена.Ссылка)
Выгружает сообщение обмена данными для указанного узла.

Реализует следующую логику:

  • вызывает метод СоздатьОбработкуИсходящегоСообщения(),
  • вызывает метод ВыбратьИзмененияВСообщение(),
  • для каждого изменения вызывает метод ВыгрузитьДанные().

Примеры

Выгрузка сообщения обмена

метод ЗаписатьСообщениеОбмена(Получатель: УдаленныеСклады.Ссылка):Файл
исп ПотокЗаписи = новый СтроковыйПотокЗаписи()
знч ЗаписьXml = новый ЗаписьXml(ПотокЗаписи)

область
УдаленныеСклады.ВыгрузитьСообщение(ЗаписьXml, Получатель)
// Заменяет код без использования метода ВыгрузитьСообщение().
// исп ОбработкаИсходящегоСообщенияОбмена = УдаленныеСклады.СоздатьОбработкуИсходящегоСообщения(ЗаписьXml, Получатель)
// исп ВыборкаДанных = УдаленныеСклады.ВыбратьИзмененияВСообщение(Получатель, ОбработкаИсходящегоСообщенияОбмена.НомерСообщения)
// для Данные из ВыборкаДанных
// // Реализация записи данных в сообщение, зависит от конкретных данных.
//;
;
// Реализация записи сообщения в файл, зависит от выбранного способа обмена сообщениями между узлами.
знч СообщенияОбмена = Файлы.СоздатьВременныйФайл(УдалитьПослеОкончанияРаботы = Ложь)
знч НастройкиЗаписиДанных = новый НастройкиЗаписиДанных()
НастройкиЗаписиДанных.МеткаПорядкаБайтов = МеткаПорядкаБайтов.Добавлять
исп ФайлПотокЗаписи = СообщенияОбмена.ОткрытьПотокЗаписи()
знч ЗаписьДанных = новый ЗаписьДанных(ФайлПотокЗаписи, НастройкиЗаписиДанных)
ЗаписьДанных.ЗаписатьСтроку(ПотокЗаписи.ВСтроку())
возврат СообщенияОбмена
;

ВычислитьРазрешенияДоступа

Версия 8.0 и выше

ВычислитьРазрешенияДоступа(): Массив<РазрешениеДоступа>
Обработчик, предназначенный для задания прав доступа на план обмена целиком.


ВычислитьРазрешенияДоступаДляОбъектов

Версия 8.0 и выше

ВычислитьРазрешенияДоступаДляОбъектов(Элементы: ЧитаемыйМассив<{ИмяПланаОбмена}.ДанныеРасчетаРазрешений>): Соответствие<{ИмяПланаОбмена}.ДанныеРасчетаРазрешений,Массив<РазрешениеДоступа>
Обработчик, предназначенный для задания прав доступа на отдельные элементы плана обмена.

Принимает данные для расчета разрешений доступа объектов, для которых нужно вычислить права, и возвращает соответствие данных для расчета разрешений доступа объектов и установленных для них разрешений.

Используется, только если включено управление доступом для отдельных объектов в элементе проекта, то есть для какого-то права указано значение РазрешенияВычисляютсяДляКаждогоОбъекта.


ЗагрузитьСообщение

Доступность: Сервер

ЗагрузитьСообщение(
ЧтениеСодержимого: ЧтениеXml,
ДопустимыйНомерСообщенияОбмена: ДопустимыйНомерСообщенияОбмена = ДопустимыйНомерСообщенияОбмена.Больший)
Загружает сообщение обмена данными.

Реализует следующую логику:

  • вызывает метод СоздатьОбработкуВходящегоСообщения(),
  • для каждого элемента данных в сообщении вызывает метод ЗагрузитьДанные(),
  • вызывает метод УдалитьРегистрациюИзмененийПоСообщению().

Примеры

Загрузка сообщения обмена

метод ПрочитатьСообщениеОбмена(Отправитель: УдаленныеСклады.Ссылка, ПотокФайла: ПотокЧтения)
знч ЧтениеXml = новый ЧтениеXml(ПотокФайла)
исп ГрупповаяОперация.Начать(РежимЗагрузкиДанных = Истина)
УдаленныеСклады.ЗагрузитьСообщение(ЧтениеXml)
// Заменяет код без использования метода ЗагрузитьСообщение()
// исп ОбработкаВходящегоСообщенияОбмена = УдаленныеСклады.СоздатьОбработкуВходящегоСообщения(ЧтениеXml)
// знч ОтправительВСообщении = ОбработкаВходящегоСообщенияОбмена.Отправитель как УдаленныеСклады.Ссылка
// если ОтправительВСообщении != Отправитель
// выбросить новый ИсключениеНедопустимоеСостояние("Отправитель в сообщении отличается")
//;
// УдаленныеСклады.УдалитьРегистрациюИзмененийПоСообщению(ОтправительВСообщении, ОбработкаВходящегоСообщенияОбмена.НомерПринятого)
// пока ЧтениеXml.ВидУзла == ВидУзлаXml.НачалоЭлемента
// Реализация чтения данных из сообщения, зависит от конкретных данных.
//;
;

ЗарегистрироватьИзменения

Версия 8.0 и выше

Доступность: Сервер

ЗарегистрироватьИзменения(
Узлы: {ИмяПланаОбмена}.Ссылка|Обходимое<{ИмяПланаОбмена}.Ссылка>,
Данные: ИмяРегистраНакопления.КлючОсновногоФильтра|ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяСправочника.Ссылка|ИмяДокумента.Объект|ИмяДокумента.Ссылка|{ИмяРегистраСведений}.КлючОсновногоФильтра|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта|Обходимое<ИмяРегистраНакопления.КлючОсновногоФильтра|ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяСправочника.Ссылка|ИмяДокумента.Объект|ИмяДокумента.Ссылка|{ИмяРегистраСведений}.КлючОсновногоФильтра|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта|Тип<Объект>|Тип<Объект>)
Регистрирует изменения одного или группы элементов данных. Используется для последующей выборки и передачи изменений в адрес одного или нескольких узлов планов обмена.

Параметр Узлы определяет узлы плана обмена, для которых регистрируются изменения.

Параметр Данные определяет набор данных, для которых регистрируются изменения.

  • Если передан объект, представляющий данные, хранимые в базе данных, или ссылка, то регистрация изменений будет произведена только для указанных данных.
  • Если передан набор записей регистра, то для регистрации изменений используются только условия фильтрации. Сами записи из БД не загружаются. В качестве ключа основного фильтра используется совокупность измерений, входящих в условия фильтрации. Если регистр является периодическим и включен в основной фильтр, то ключ также включает в себя период.
  • Если передан объект типа УдалениеОбъекта, то используется ссылка, установленная в этом объекте.
  • Если передан элемент проекта, то регистрация изменений будет произведена для всех элементов данных, относящихся к указанному элементу проекта. Элемент проекта должен входить в состав планов обмена всех узлов, указанных в первом параметре.
  • Если передан объект типа Обходимое, то вызов будет аналогичен серии вызовов метода для каждого отдельного элемента.

Метод доступен только пользователям с правами администратора.

Примеры

Зарегистрировать изменения для одного узла и одного элемента справочника.

УдаленныеСклады.ЗарегистрироватьИзменения(
УдаленныеСклады.НайтиПоКоду("Склад1"),
Товары.НайтиПоКоду("Телевизор"))

Зарегистрировать изменения для одного узла и всех элементов справочника.

УдаленныеСклады.ЗарегистрироватьИзменения(
УдаленныеСклады.НайтиПоКоду("Склад1"),
Тип<Товары.Объект>)

Зарегистрировать изменения для одного узла и одного элемента справочника по объекту типа УдалениеОбъекта.

УдаленныеСклады.ЗарегистрироватьИзменения(
УдаленныеСклады.НайтиПоКоду("Склад1"),
новый УдалениеОбъекта(Товары.НайтиПоКоду("Телевизор")))

Зарегистрировать изменения для нескольких узлов и одного элемента справочника.

УдаленныеСклады.ЗарегистрироватьИзменения(
[УдаленныеСклады.НайтиПоКоду("Склад1"), УдаленныеСклады.НайтиПоКоду("Склад2")],
Товары.НайтиПоКоду("Телевизор"))

Зарегистрировать изменения для одного узла и нескольких элементов справочника.

УдаленныеСклады.ЗарегистрироватьИзменения(
УдаленныеСклады.НайтиПоКоду("Склад1"),
[Товары.НайтиПоКоду("Телевизор"), Товары.НайтиПоКоду("Компьютер")])

ЗарегистрироватьИзменения

Версия 7.0 и ниже

Доступность: Сервер

Метод заменен на ЗарегистрироватьИзменения.


ЗарегистрироватьИзмененияПоУзлу

Доступность: Сервер

ЗарегистрироватьИзмененияПоУзлу(Узлы: {ИмяПланаОбмена}.Ссылка|Обходимое<{ИмяПланаОбмена}.Ссылка>)
Регистрирует изменения для всех данных элементов проекта, входящих в состав плана обмена.

Параметр Узлы определяет узлы плана обмена, для которых регистрируются изменения.

Основной сценарий — первоначальная заливка данных в новый узел после его добавления.

Метод доступен только пользователям с правами администратора.

Примеры

Зарегистрировать изменения для одного узла и всех объектов элементов проекта, входящих в состав плана обмена.

УдаленныеСклады.ЗарегистрироватьИзмененияПоУзлу(УдаленныеСклады.НайтиПоКоду("Склад1"))

ИзменениеЗарегистрировано

Версия 8.0 и выше

Доступность: Сервер

ИзменениеЗарегистрировано(
Узел: {ИмяПланаОбмена}.Ссылка,
Данные: ИмяРегистраНакопления.КлючОсновногоФильтра|ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяСправочника.Ссылка|ИмяДокумента.Объект|ИмяДокумента.Ссылка|{ИмяРегистраСведений}.КлючОсновногоФильтра|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта
): Булево
Определяет, зарегистрировано ли изменение одиночного элемента данных по отношению к тому или иному узлу плана обмена.

Параметр Узел определяет узел плана обмена, для которого может быть зарегистрировано изменение.

Параметр Данные определяет данные, для которых может быть зарегистрировано изменение.

  • Если передан набор записей регистра, то для регистрации изменений используются только условия фильтрации. Сами записи из БД не загружаются. В качестве ключа основного фильтра используется совокупность измерений, входящих в условия фильтрации. Если регистр является периодическим и включен в основной фильтр, то ключ также включает в себя период.
  • Если передан объект типа УдалениеОбъекта, то используется ссылка, установленная в этом объекте.

ИзменениеЗарегистрировано

Версия 7.0 и ниже

Доступность: Сервер

ИзменениеЗарегистрировано(
Узел: {ИмяПланаОбмена}.Ссылка,
Данные: УдалениеОбъекта
): Булево
Метод заменен на ИзменениеЗарегистрировано.


НайтиПоКоду

Версия 8.0 и выше

Доступность: Сервер

НайтиПоКоду(Код: <ТипКода>): {ИмяПланаОбмена}.Ссылка?
Метод поиска объектов по коду. Тип параметра зависит от типа кода, определенного для объекта.

Метод НайтиПоКоду() выполняет только однозначный поиск ссылки по коду. Если по указанным условиям поиска будет найдено несколько записей, метод выдает исключение ИсключениеПоискаСущности.


НайтиПоКоду

Версия 7.0 и ниже

Доступность: Сервер

Метод заменен на НайтиПоКоду.


НайтиПоНаименованию

Версия 8.0 и выше

НайтиПоНаименованию(
Наименование: Строка,
ПроверятьУникальность: Булево = Истина
): {ИмяПланаОбмена}.Ссылка?
Метод поиска объектов по наименованию.

Параметр ПроверятьУникальность отвечает за однозначный способ поиска. Если по указанным условиям поиска будет найдено несколько записей, метод выдает исключение ИсключениеПоискаСущности. Если нужно найти любой из имеющихся элементов, то можно передать значение Ложь в параметр ПроверятьУникальность.


ПересчитатьРазрешенияДоступаДляОбъектов

Доступность: Сервер

ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: Обходимое<{ИмяПланаОбмена}.Ссылка>)
Перегрузка:
ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: Обходимое<ИмяПланаОбмена.Ссылка>)
ПересчитатьРазрешенияДоступаДляОбъектов(ИмяРеквизита: Строка)

Метод доступен, только если включено управление доступом для отдельных объектов в элементе проекта, то есть для какого-то права указано значение РазрешенияВычисляютсяДляКаждогоОбъекта.

Пересчитывает разрешения доступа на отдельные объекты в плане обмена, выраженные ссылками.


ПересчитатьРазрешенияДоступаДляОбъектов

Доступность: Сервер

ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: Обходимое<{ИмяПланаОбмена}.Ссылка>)
Перегрузка:
ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: Обходимое<ИмяПланаОбмена.ДанныеРасчетаРазрешений>)
ПересчитатьРазрешенияДоступаДляОбъектов(ИмяРеквизита: Строка)


ПересчитатьРазрешенияДоступаДляОбъектов

Доступность: Сервер

@ИменованныеПараметры
ПересчитатьРазрешенияДоступаДляОбъектов(ИмяРеквизита: Строка)
Перегрузка:
ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: Обходимое<ИмяПланаОбмена.Ссылка>)
ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: Обходимое<ИмяПланаОбмена.ДанныеРасчетаРазрешений>)

Вызов возможен только с именованными параметрами


ПересчитатьРазрешенияДоступаДляОбъектов

Доступность: Сервер

ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: Обходимое<{ИмяПланаОбмена}.ДанныеРасчетаРазрешений>)
Перегрузка:
ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: Обходимое<ИмяПланаОбмена.Ссылка>)
ПересчитатьРазрешенияДоступаДляОбъектов(ИмяРеквизита: Строка)

Метод доступен, только если включено управление доступом для отдельных объектов в элементе проекта, то есть для какого-то права указано значение РазрешенияВычисляютсяДляКаждогоОбъекта.

Пересчитывает разрешения доступа по списку данных для расчета разрешений. Разрешения пересчитаются у всех объектов, данные для расчета разрешений которых совпадают с одними из переданных в метод.


ПересчитатьРазрешенияДоступаДляОбъектов

Версия 8.0 и выше

Доступность: Сервер

ПересчитатьРазрешенияДоступаДляОбъектов(
<Параметр1>: <ТипПараметра1>,
....<ПараметрN>: <ТипПараметраN>)
Перегрузка:
ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: Обходимое<ИмяПланаОбмена.Ссылка>)
ПересчитатьРазрешенияДоступаДляОбъектов(ИмяРеквизита: Строка)

Метод доступен, только если включено управление доступом для отдельных объектов в элементе проекта, то есть для какого-то права указано значение РазрешенияВычисляютсяДляКаждогоОбъекта.

Вызов возможен только с именованными параметрами.

Пересчитывает разрешения доступа на отдельные объекты, значения реквизитов которых совпадают со значениями параметров, переданных в метод. В качестве параметров в метод могут быть переданы любые реквизиты, указанные в настройке РасчетРазрешенийПо элемента проекта.


ПолучитьЗначенияВыбора

Версия 8.0 и выше

ПолучитьЗначенияВыбора(Параметры: ПараметрыПолученияЗначенийВыбора): ЧитаемыйМассив<ЭлементСпискаВыбораЗначения>
Событие, вызываемое при попытке получить данные для выбора по введенной подстроке. В событие передается информация о введенной строке и параметрах фильтра. Событие должно возвратить массив выбранных данных или Неопределено, если требуется выполнить стандартную обработку события.


ПолучитьСсылку

Доступность: Сервер

ПолучитьСсылку(Ид: Ууид): {ИмяПланаОбмена}.Ссылка

ПолучитьЭтотУзел

Доступность: Сервер

ПолучитьЭтотУзел(): {ИмяПланаОбмена}.Ссылка
Получает ссылку на узел, соответствующий данному приложению.


СоздатьНаОсновании

Версия 8.0 и выше

СоздатьНаОсновании(Основание: <Типыисточниковсозданиянаосновании>): {ИмяПланаОбмена}.Объект
Метод создания нового объекта на основании другого.

Параметр Основание служит для указания основания при создании объекта. Значение этого параметра передастся в обработчик события ПриСозданииНаОсновании.

Примеры

Создание узла плана обмена "УдаленныеСклады" на основании элемента справочника "Организации".

У плана обмена "УдаленныеСклады" свойство СозданиеНаОсновании заполнено следующим образом:

СозданиеНаОсновании: [Организации.Ссылка, Филиалы.Ссылка]

Для создания на основании можно использовать следующий код:

метод СоздатьУзелОбменаНаОснованииОрганизации(Организация: Организации.Ссылка): УдаленныеСклады.Ссылка
знч Узел = УдаленныеСклады.СоздатьНаОсновании(Основание = Организация)
Узел.Записать()

возврат Узел.Ссылка
;

СоздатьОбработкуВходящегоСообщения

Доступность: Сервер

СоздатьОбработкуВходящегоСообщения(
ЧтениеСодержимого: ЧтениеXml,
ДопустимыйНомерСообщенияОбмена: ДопустимыйНомерСообщенияОбмена = ДопустимыйНомерСообщенияОбмена.Больший
): ОбработкаВходящегоСообщенияОбмена
Создает объект, с помощью которого выполняется чтение сообщения обмена данными.

Читает заголовок сообщения обмена данными. Проверяет содержащиеся в заголовке данные. Если какие-либо данные указаны неправильно (задан неизвестный план обмена, указан узел, не входящий в план обмена, номер сообщения не соответствует ожидаемому), выбрасывается исключение. При начале чтения сообщения устанавливается блокировка на запись базы данных, соответствующую узлу плана обмена, чтобы предотвратить на время чтения сообщения другие операции чтения и записи сообщений, относящихся к данному узлу, а также не допустить изменения данных узла.

Параметр ЧтениеСодержимого определяет объект, через который будет осуществляться чтение сообщения.

Параметр ДопустимыйНомерСообщения определяет допустимый номер сообщения.

Примеры

Чтения сообщения обмена

метод ПрочитатьСообщениеОбмена(Отправитель: УдаленныеСклады.Ссылка, ПотокФайла: ПотокЧтения)
знч ЧтениеXml = новый ЧтениеXml(ПотокФайла)
исп ГрупповаяОперация.Начать(РежимЗагрузкиДанных = Истина)
исп ОбработкаВходящегоСообщенияОбмена = УдаленныеСклады.СоздатьОбработкуВходящегоСообщения(ЧтениеXml)
знч ОтправительВСообщении = ОбработкаВходящегоСообщенияОбмена.Отправитель как УдаленныеСклады.Ссылка
если ОтправительВСообщении != Отправитель
выбросить новый ИсключениеНедопустимоеСостояние("Отправитель в сообщении отличается")
;
УдаленныеСклады.УдалитьРегистрациюИзмененийПоСообщению(ОтправительВСообщении, ОбработкаВходящегоСообщенияОбмена.НомерПринятого)
пока ЧтениеXml.ВидУзла == ВидУзлаXml.НачалоЭлемента
// Реализация чтения данных из сообщения, зависит от конкретных данных.
;
;

СоздатьОбработкуИсходящегоСообщения

Доступность: Сервер

СоздатьОбработкуИсходящегоСообщения(
ЗаписьСодержимого: ЗаписьXml,
Узел: ПланОбмена.Ссылка
): ОбработкаИсходящегоСообщенияОбмена
Создает объект, с помощью которого выполняется запись сообщения обмена данными. Записывает заголовок сообщения обмена данными. При обращении к методу сообщению присваивается номер, определяемый как номер предыдущего отправленного сообщения, увеличенный на 1, производится запись в XML заголовка сообщения, а также записывается начало элемента XML, соответствующего телу сообщения. При начале записи сообщения устанавливается блокировка на запись базы данных, соответствующую узлу плана обмена, чтобы предотвратить на время записи сообщения другие операции чтения и записи сообщений, относящихся к данному узлу, а также не допускать изменения данных узла. Сообщение не считается отправленным, пока не будет произведено обращение к методу Закончить().

Параметр ЗаписьСодержимого определяет объект, с помощью которого будет осуществляться запись сообщения обмена данными.

Параметр Узел определяет узел плана обмена, в адрес которого будет послано сообщение обмена данными.

Примеры

Записи сообщения обмена

метод ЗаписатьСообщениеОбмена(Получатель: УдаленныеСклады.Ссылка):Файл
исп ПотокЗаписи = новый СтроковыйПотокЗаписи()
знч ЗаписьXml = новый ЗаписьXml(ПотокЗаписи)

область
исп ОбработкаИсходящегоСообщенияОбмена = УдаленныеСклады.СоздатьОбработкуИсходящегоСообщения(ЗаписьXml, Получатель)
исп ВыборкаДанных = УдаленныеСклады.ВыбратьИзмененияВСообщение(Получатель, ОбработкаИсходящегоСообщенияОбмена.НомерСообщения)
для Данные из ВыборкаДанных
ЗаписатьДанные(ЗаписьXml, Данные)
;
;
// Реализация записи сообщения в файл, зависит от выбранного способа обмена сообщениями между узлами.
знч СообщенияОбмена = Файлы.СоздатьВременныйФайл(УдалитьПослеОкончанияРаботы = Ложь)
знч НастройкиЗаписиДанных = новый НастройкиЗаписиДанных()
НастройкиЗаписиДанных.МеткаПорядкаБайтов = МеткаПорядкаБайтов.Добавлять
исп ФайлПотокЗаписи = СообщенияОбмена.ОткрытьПотокЗаписи()
знч ЗаписьДанных = новый ЗаписьДанных(ФайлПотокЗаписи, НастройкиЗаписиДанных)
ЗаписьДанных.ЗаписатьСтроку(ПотокЗаписи.ВСтроку())
возврат СообщенияОбмена
;

СоздатьФормуОбъекта

Версия 8.0 и выше

Доступность: Клиент

Перегрузка:
СоздатьФормуОбъекта(Ключ: ИмяПланаОбмена.Ссылка? = Неопределено): ФормаОбъекта<ИмяПланаОбмена.Объект, неизвестно>

Вызов возможен только с именованными параметрами

Создает форму объекта справочника. Если справочнику назначена форма объекта, то будет создана форма ровно этого типа. Иначе будет создана автоматическая форма типа [ExchangePlanName.АвтоматическаяФормаОбъекта]

Параметр Ключ определяет, какой объект будет редактироваться в форме. Если в качестве значения ключа передано Неопределено, то будет открыта форма нового объекта.


СоздатьФормуОбъекта

Доступность: Клиент

СоздатьФормуОбъекта(Ключ: {ИмяПланаОбмена}.Ссылка? = Неопределено): ФормаОбъекта<{ИмяПланаОбмена}.Объект, неизвестно>
Перегрузка:
СоздатьФормуОбъекта(КлючИсточникаКопирования: ИмяПланаОбмена.Ссылка): ФормаОбъекта<ИмяПланаОбмена.Объект, неизвестно>


СоздатьФормуОбъекта

Версия 8.0 и выше

Доступность: Клиент

@ИменованныеПараметры
СоздатьФормуОбъекта(КлючИсточникаКопирования: {ИмяПланаОбмена}.Ссылка): ФормаОбъекта
Перегрузка:
СоздатьФормуОбъекта(Ключ: ИмяПланаОбмена.Ссылка? = Неопределено): ФормаОбъекта<ИмяПланаОбмена.Объект, неизвестно>

Вызов возможен только с именованными параметрами

Создает форму объекта плана обмена. Если плану обмена назначена форма объекта, то создается форма именно этого типа. Иначе создается автоматическая форма типа [ExchangePlanName.АвтоматическаяФормаОбъекта].

Параметр КлючИсточникаКопирования определяет, какой объект будет использоваться в качестве источника создания копированием. При этом открывается форма нового объекта, являющегося копией того, который был указан в качестве источника.


СоздатьФормуОбъекта

Версия 8.0 и выше

Доступность: Клиент

@ИменованныеПараметры
СоздатьФормуОбъекта(Основание: <Типыисточниковсозданиянаосновании>): ФормаОбъекта
Перегрузка:
СоздатьФормуОбъекта(Ключ: ИмяПланаОбмена.Ссылка? = Неопределено): ФормаОбъекта<ИмяПланаОбмена.Объект, неизвестно>

Вызов возможен только с именованными параметрами

Создает форму объекта плана обмена. Если плану обмена назначена форма объекта, то создается форма именно этого типа. Иначе создается автоматическая форма типа [ExchangePlanName.АвтоматическаяФормаОбъекта].

Параметр Основание определяет, какое значение будет использоваться в качестве основания при создании на основании. При этом будет открыта форма нового объекта, созданного на основании значения, переданного в параметре.


СоздатьФормуОбъекта

Версия 7.0 и ниже

Доступность: Клиент

@ИменованныеПараметры
СоздатьФормуОбъекта(КлючИсточникаКопирования: {ИмяПланаОбмена}.Ссылка): ФормаОбъекта<{ИмяПланаОбмена}.Объект, неизвестно>
Метод заменен на СоздатьФормуОбъекта.


СоздатьФормуСписка

Версия 8.0 и выше

Доступность: Клиент

СоздатьФормуСписка(): ФормаСписка
Создает форму списка плана обмена. Если плану обмена назначена форма списка, то создается форма именно этого типа. Иначе создается автоматическая форма типа [ExchangePlanName.АвтоматическаяФормаСписка].


СоздатьФормуСписка

Версия 7.0 и ниже

Доступность: Клиент

СоздатьФормуСписка(): ФормаСписка<неизвестно>
Метод заменен на СоздатьФормуСписка.


УдалитьРегистрациюИзменений

Версия 8.0 и выше

Доступность: Сервер

УдалитьРегистрациюИзменений(
Узлы: {ИмяПланаОбмена}.Ссылка|Обходимое<{ИмяПланаОбмена}.Ссылка>,
Данные: ИмяРегистраНакопления.КлючОсновногоФильтра|ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяСправочника.Ссылка|ИмяДокумента.Объект|ИмяДокумента.Ссылка|{ИмяРегистраСведений}.КлючОсновногоФильтра|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта|Обходимое<ИмяРегистраНакопления.КлючОсновногоФильтра|ИмяРегистраНакопления.НаборЗаписей|ИмяСправочника.Объект|ИмяСправочника.Ссылка|ИмяДокумента.Объект|ИмяДокумента.Ссылка|{ИмяРегистраСведений}.КлючОсновногоФильтра|{ИмяРегистраСведений}.НаборЗаписей|УдалениеОбъекта|Тип<Объект>|Тип<Объект>)
Удаляет записи регистрации изменений одного или группы элементов данных для одного или нескольких узлов планов обмена.

Параметр Узлы определяет узлы плана обмена, для которых удаляются регистрации изменений.

Параметр Данные определяет набор данных, для которых удаляется регистрация изменений.

  • Если передан объект, представляющий данные, хранимые в базе данных, или ссылка, то удаление регистрации изменений выполняется только для указанных данных.
  • Если передан набор записей регистра, то для регистрации изменений используются только условия фильтрации. Сами записи из БД не загружаются. В качестве ключа основного фильтра используется совокупность измерений, входящих в условия фильтрации. Если регистр является периодическим и включен в основной фильтр, то ключ также включает в себя период.
  • Если передан объект типа УдалениеОбъекта, то используется ссылка, установленная в этом объекте.
  • Если установлен элемент проекта, то удаление регистрации изменений выполняется для всех объектов, относящихся к указанному элементу проекта. Элемент проекта должен входить в состав планов обмена всех узлов, указанных в первом параметре.
  • Если передан объект типа Обходимое, то вызов будет аналогичен серии вызовов метода для каждого отдельного элемента.

Метод доступен только пользователям с правами администратора.

Примеры

Удалить регистрацию изменений для одного узла и одного элемента справочника.

УдаленныеСклады.УдалитьРегистрациюИзменений(
УдаленныеСклады.НайтиПоКоду("Склад1"),
Товары.НайтиПоКоду("Телевизор"))

Удалить регистрацию изменений для одного узла и всех элементов справочника.

УдаленныеСклады.УдалитьРегистрациюИзменений(
УдаленныеСклады.НайтиПоКоду("Склад1"),
Тип<Товары.Объект>)

Удалить регистрацию изменений для одного узла и одного элемента справочника, по объекту типа УдалениеОбъекта.

УдаленныеСклады.УдалитьРегистрациюИзменений(
УдаленныеСклады.НайтиПоКоду("Склад1"),
новый УдалениеОбъекта(Товары.НайтиПоКоду("Телевизор")))

Удалить регистрацию изменений для нескольких узлов и одного элемента справочника.

УдаленныеСклады.УдалитьРегистрациюИзменений(
[УдаленныеСклады.НайтиПоКоду("Склад1"), УдаленныеСклады.НайтиПоКоду("Склад2")],
Товары.НайтиПоКоду("Телевизор"))

Удалить регистрацию изменений для одного узла и нескольких элементов справочника.

УдаленныеСклады.УдалитьРегистрациюИзменений(
УдаленныеСклады.НайтиПоКоду("Склад1"),
[Товары.НайтиПоКоду("Телевизор"), Товары.НайтиПоКоду("Компьютер")])

УдалитьРегистрациюИзменений

Версия 7.0 и ниже

Доступность: Сервер

Метод заменен на УдалитьРегистрациюИзменений.


УдалитьРегистрациюИзмененийПоСообщению

Доступность: Сервер

УдалитьРегистрациюИзмененийПоСообщению(
Узел: {ИмяПланаОбмена}.Ссылка,
НомерСообщения: Число)
Удаляет регистрации изменений, относящиеся к указанному узлу, у которых номер сообщения меньше или равен значению переданного номера сообщения.

Параметр Узел определяет узел плана обмена, для которого удаляются регистрации изменений.

Параметр НомерСообщения определяет номер сообщения.

Метод доступен только пользователям с правами администратора.

Примеры

Удалить регистрацию изменений для всех изменений, включенных в сообщения, номер которых меньше или равен указанному.

метод УдалитьРегистрациюИзмененийПоСообщению(КодУзлаОтправителя : Строка, НомерПринятогоСообщенияВУзлеОтправителе : Число)
УдаленныеСклады.УдалитьРегистрациюИзмененийПоСообщению(
УдаленныеСклады.НайтиПоКоду(КодУзлаОтправителя),
НомерПринятогоСообщенияВУзлеОтправителе)
;

УдалитьРегистрациюИзмененийПоУзлу

Доступность: Сервер

УдалитьРегистрациюИзмененийПоУзлу(Узел: {ИмяПланаОбмена}.Ссылка)
Удаляет регистрации изменений для всех объектов элементов проекта, входящих в состав плана обмена.

Параметр Узел определяет узел плана обмена, для которого удаляются регистрации изменений.

Метод доступен только пользователям с правами администратора.

Примеры

Удалить регистрацию изменений для одного узла и всех объектов элементов проекта, входящих в состав плана обмена.

УдаленныеСклады.УдалитьРегистрациюИзмененийПоУзлу(УдаленныеСклады.НайтиПоКоду("Склад1"))

УстановитьПометкуУдаления

Доступность: Сервер

УстановитьПометкуУдаления(
Ссылка: {ИмяПланаОбмена}.Ссылка|Обходимое<{ИмяПланаОбмена}.Ссылка>,
ЗначениеПометки: Булево)

УстановитьЭтотУзел

Доступность: Сервер

УстановитьЭтотУзел(Узел: {ИмяПланаОбмена}.Ссылка)
Устанавливает узел, соответствующий данному приложению (ЭтотУзел равно Истина). В плане обмена только один узел может быть текущим. Наличие текущего узла обязательно. Если в качестве параметра передан текущий узел, то изменения не выполняются.


Список унаследованных методов

Объект

ВСтроку, ПолучитьТип, Представление

ПланОбмена

ПересчитатьРазрешенияДоступа, ПересчитатьРазрешенияДоступаДляОбъектов, ПолучитьСтандартныеЗначенияВыбора