Принудительная регистрация изменений в 1С

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

Если же первый параметр представляет собой массив ссылок на узлы, то второй параметр обязательно должен быть указан:
Впрочем, второй параметр может присутствовать и в том случае, если первый параметр - одиночная ссылка на узел. В зависимости от способа задания второго параметра можно зарегистрировать изменения одного элемента данных или же всех данных, относящихся к одному объекту конфигурации. Кроме этого, можно зарегистрировать удаление объекта (указав в качестве второго параметра объект типа УдалениеОбъекта) .
Для регистрации изменений одного элемента в качестве второго параметра может быть указан сам элемент данных, ссылка на объект базы данных или объект конфигурации.
Пример регистрации изменений всех данных, относящихся к объекту конфигурации, приведен в листинге:

До сих пор ничего не говорилось об очистке таблицы регистрации изменений По большому счету существуют две основные стратегии выполнения данного действия:

  • Гарантированная доставка сообщений. В этом случае очистка таблиц регистрации изменений производится сразу же после того, как сообщение будет сформировано.
  • Ожидание квитанции. В этом случае очистка таблиц регистрации изме­нений производится при приеме сообщения, исходя из номера последнего полученного «от нас» сообщения (этот номер передается как квитанция в заголовке сообщения).

 

Рассмотрим следующий пример. Считаем, что таблица регистрации изменений документа Расходная Накладная имеет следующее наполнение (табл. 2.10).

Таблица 2.10. Таблица регистрации изменений

ДокументСсылка.РасходнаяНакладная

Узел

Номер сообщения

Расходная накладная № 1 от...

Оптовый

3

Расходная накладная 1 от...

Розничный

Null

Расходная накладная № 2 от...

Оптовый

1

Расходная накладная № 2 от...

Розничный

1

Расходная накладная № 3 от...

Оптовый

2

Расходная накладная № 3 от...

Розничный

1

Расходная накладная № 4 от...

Оптовый

3

Расходная накладная № 4 от...

Розничный

Null

Исходя из данных таблицы, можно сказать, что в узел Оптовый было отправ­лено три сообщения, в узел Розничный - одно.

 

Используется стратегия ожидания подтверждающей квитанции, при этом от участника обмена Оптовый приходит сообщение, в котором указано, что последнее полученное от «нас» сообщение имело номер 2. Исходя из этой информации, можно удалить изменения, отправленные в сообщениях 1 и 2 (поле НомерСообщения таблицы регистрации изменений).

 

Таблица примет следующий вид (табл. 2.11).

Таблица 2.11. Таблица регистрации изменений

ДокументСсылка.РасходнаяНакладная

Узел

Номер сообщения

Расходная накладная № 1 от...

Оптовый

3

Расходная накладная № 1 от...

Розничный

Null

Расходная накладная № 2 от...

Розничный

1

Расходная накладная № 3 от...

Розничный

1

Расходная накладная № 4 от...

Оптовый

3

Расходная накладная № 4 от...

Розничный

Null

В случае гарантированной доставки таблица регистрации изменений очища­ется сразу после отправки сообщения. Например, таблица регистрации изме­нений имела следующий вид (табл. 2.12).

Таблица 2.12. Таблица регистрации изменений

ДокументСсылка.РасходнаяНакладная

Узел

Номер сообщения

Расходная накладная № 1 от...

Оптовый

3

Расходная накладная № 1 от...

Розничный

Null

Расходная накладная № 2 от...

Оптовый

1

Расходная накладная № 3 от...

Оптовый

2

Расходная накладная № 4 от,..

Оптовый

3

Расходная накладная № 4 от...

Розничный

Null

В узел Розничный формируется сообщение с номером 2. После того как сообщение сформировано, таблица регистрации будет иметь следующий вид (табл. 2.13).

Таблица 2.13. Таблица регистрации изменений

ДокументСсылка.РасходнаяНакладная

Узел

Номер сообщения

Расходная накладная № 1 от...

Оптовый

3

Расходная накладная № 1 от...

Розничный

2

Расходная накладная № 2 от...

Оптовый

1

Расходная накладная № 3 от...

Оптовый

2

Расходная накладная № 4 от...

Оптовый

3

Расходная накладная № 4 от...

Розничный

2

Далее производится вызов метода по удалению записей в таблице peineiрации изменений (метод рассматривается чуть позже). Таблица регистрации изменений примет такой вид (табл. 2.14).

Таблица 2.14. Таблица регистрации изменений

ДокументСсылка.РасходнаяНакладная

Узел

Номер сообщения

Расходная накладная № 1 от...

Оптовый

3

Расходная накладная № 2 от...

Оптовый

1

Расходная накладная № 3 от...

Оптовый

2

Расходная накладная № 4 от...

Оптовый

3

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

 

Для удаления записей таблицы регистрации изменений с номерами сообщения не больше переданного (в примере с номерами 1 и 2) может использоваться фрагмент кода:
Пример удаления записей регистрации изменений для всех данных, которые зарегистрированы для узла, приведен в листинге:
Узел = ПланыОбмена.УдапенныеСклады.НайтиПоКоду('Оптовый');
ПланыОбмена.УдалитьРегистрациюИзменений(Узел);
Можно удалить записи регистрации изменений конкретного элемента данных для одного или нескольких узлов:
Также можно удалить записи регистрации изменений всех данных, относящихся к объекту конфигурации для одного или нескольких узлов:
dle

Помоги проекту! Расскажи друзьям о сайте: