изменение

This commit is contained in:
artem 2025-10-12 17:48:57 +05:00
parent 76d2c8f7d0
commit 428e09a8e2
6 changed files with 85 additions and 138 deletions

View File

@ -1,42 +0,0 @@
---
title: Как выгрузить изменения в сообщение обмена
slug: общие-обмен-данными-1-планы-обмена/как-выгрузить-изменения-в-сообщение-обмена
---
```bsl
УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
Если НЕ УзелОбмена.Пустая() Тогда
// 0. Создаем объект ЗаписьXML для формирования XML-файла
ПутьКФайлуСообщения = "S:\Exchange\Message_ИСР.xml";
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(ПутьКФайлуСообщения);
// 1. Создаем объект "ЗаписьСообщенияОбмена"
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
// 2. Начинаем запись сообщения обмена для выбранного узла в файл XML
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);
// 3. Выбираем изменения
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения);
// 4. Записываем изменения в файл XML
Пока ВыборкаИзменений.Следующий() Цикл
Данные = ВыборкаИзменений.Получить();
ЗаписатьXML(ЗаписьXML, Данные);
КонецЦикла;
// 5. Заканчиваем запись сообщения обмена
ЗаписьСообщения.ЗакончитьЗапись();
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Сообщение обмена успешно сформировано!";
Сообщение.Сообщить();
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не найден узел плана обмена";
Сообщение.Сообщить();
КонецЕсли;
```

View File

@ -1,26 +0,0 @@
---
title: Как зарегистрировать изменнеия в план обмена
slug: общие-обмен-данными-1-планы-обмена/как-зарегистрировать-изменнеия-в-план-обмена
---
```bsl
УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
Если НЕ УзелОбмена.Пустая() Тогда
Контрагент = Справочники.Контрагенты.НайтиПоКоду("000000005");
Если НЕ Контрагент.Пустая() Тогда
ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, Контрагент);
Текст = "Изменения контрагента зарегистрированы";
Иначе
Текст = "Контрагент не найден";
КонецЕсли;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = Текст;
Сообщение.Сообщить();
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не найден узел плана обмена";
Сообщение.Сообщить();
КонецЕсли;
```

View File

@ -1,49 +0,0 @@
---
title: Как прочиттать изменения
slug: общие-обмен-данными-1-планы-обмена/как-прочиттать-изменения
---
# С присваиванием номера сообщения
```bsl
УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
НомерСообщения = 1;
Если НЕ УзелОбмена.Пустая() Тогда
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
Объект = ВыборкаИзменений.Получить();
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = Объект;
Сообщение.Сообщить();
КонецЦикла;
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не найден узел плана обмена";
Сообщение.Сообщить();
КонецЕсли;
```
# Просто запросом
```bsl
УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Узел", УзелОбмена);
Запрос.Текст =
"ВЫБРАТЬ
| КонтрагентыИзменения.Узел КАК Узел,
| КонтрагентыИзменения.НомерСообщения КАК НомерСообщения,
| КонтрагентыИзменения.Ссылка КАК Ссылка
|ИЗ
| Справочник.Контрагенты.Изменения КАК КонтрагентыИзменения
|ГДЕ
| КонтрагентыИзменения.Узел = &Узел";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = Выборка.Ссылка;
Сообщение.Сообщить();
КонецЦикла;
```

View File

@ -1,18 +0,0 @@
---
title: Как удалить изменения из таблицы регистрации изменений
slug: общие-обмен-данными-1-планы-обмена/как-удалить-изменения-из-таблицы-регистрации-изменений
---
```bsl
УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
Если НЕ УзелОбмена.Пустая() Тогда
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Изменения для узла ""Приемник"" удалены";
Сообщение.Сообщить();
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не найден узел плана обмена";
Сообщение.Сообщить();
КонецЕсли;
```

View File

@ -0,0 +1,80 @@
---
title: Работа с планом обмена
slug: общие-обмен-данными-планы-обмена/работа-с-планом-обмена
---
## Как вручную зарегистрирвоать изменение объекта
```bsl
УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
Если ЗначениеЗаполнено(УзелОбмена) Тогда
ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, Объект);
КонецЕсли;
```
## Как создать сообщение обмена
```bsl
// 0. Создаем объект ЗаписьXML для формирования XML-файла
ПутьКФайлуСообщения = "S:\Exchange\Message_ИСР.xml";
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(ПутьКФайлуСообщения); // Или Запись.УстановитьСтроку()
// 1. Создаем объект "ЗаписьСообщенияОбмена"
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
// 2. Начинаем запись сообщения обмена для выбранного узла в файл XML
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);
// 3. Выбираем изменения
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения);
// 4. Записываем изменения в файл XML
Пока ВыборкаИзменений.Следующий() Цикл
Данные = ВыборкаИзменений.Получить();
ЗаписатьXML(ЗаписьXML, Данные);
КонецЦикла;
// 5. Заканчиваем запись сообщения обмена
ЗаписьСообщения.ЗакончитьЗапись();
```
## Как прочитать изменения, зарегистрированные в плане обмена
### С присваиванием номера сообщения
```bsl
// См. описание в синтакс-помощнике
Выборка = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);
```
### Просто запросом
```bsl
УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Узел", УзелОбмена);
Запрос.Текст =
"ВЫБРАТЬ
| КонтрагентыИзменения.Узел КАК Узел,
| КонтрагентыИзменения.НомерСообщения КАК НомерСообщения,
| КонтрагентыИзменения.Ссылка КАК Ссылка
|ИЗ
| Справочник.Контрагенты.Изменения КАК КонтрагентыИзменения
|ГДЕ
| КонтрагентыИзменения.Узел = &Узел";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = Выборка.Ссылка;
Сообщение.Сообщить();
КонецЦикла;
```
## Как удалить регистрацию объекта из плана обмена
```bsl
// См. описание в синтакс-помощнике
ПланыОбмена.УдалитьРегистрациюИзменений(<Узлы>, <Данные>);
```

View File

@ -1,6 +1,6 @@
---
title: Как создать план обмена
slug: общие-обмен-данными-1-планы-обмена/как-создать-план-обмена
title: Настройка плана обмена
slug: общие-обмен-данными-планы-обмена/настройка-плана-обмена
---
## Создание объекта метаданных
@ -64,3 +64,5 @@ slug: общие-обмен-данными-1-планы-обмена/как-со
После включения объекта метаданных в состав хотя бы в одного план обмена, для объекта метаданных создается таблица `изменений`, содержащая поля `Ссылка`, `Узел` и `НомерСообщения`. Для отображения таблиц изменений в кострукторе запроса нужно нажать на кнопку `Отображать таблицы изменений`
![Изображение](/obmen-dannymi/plan-obmena/3.png)
[Консоль запросов](/poleznoe/УправляемаяКонсольОтчетов_3.8.9.epf)