Объект не может быть создан самостоятельно. Объект данного типа представляет собой значение свойства ОбменДанными объектов, представляющих данные, по которым ведется учет изменений.
Примеры платформы
Объект.ОбменДанными.Получатели.Заполнить();Полное описание, параметры и ограничения
ПараметрыОбменаДанными (DataExchangeParameters)
ПараметрыОбменаДанными (DataExchangeParameters)
Доступен, начиная с версии 8.0.
Свойства:
Загрузка (Load)
Отправитель (Sender)
Получатели (Recipients)
Описание:
Объект не может быть создан самостоятельно. Объект данного типа представляет собой значение свойства ОбменДанными объектов, представляющих данные, по которым ведется учет изменений.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
Объект.ОбменДанными.Получатели.Заполнить();
См. также:
УдалениеОбъекта, свойство ОбменДанными
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Прочитать набор по новой собственной ссылке и проверить состояние без обхода правил
Новая ссылка на незаписанный документ даёт пустой отбор. ДополнительныеСвойства относятся к объекту в памяти, а Записывать не защищает от прямого Записать.
Где и как запускать
Полный серверный общий модуль своей отдельной конфигурации УчебнаяБухгалтерия85.
Подготовка
Создайте НОВУЮ пустую файловую базу с именем корневой конфигурации УчебнаяБухгалтерия85, управляемым режимом блокировок. Это отдельный стенд, не УТ/КА2/УНФ/БП и не копия с рабочими данными.
Планы счетов → УчебныеСчета85: код Строка 20, Максимальное количество субконто 0, без флагов учёта. Создайте два предопределённых негрупповых счёта: УчебныйАктив, код DEMO-A, вид Активный; УчебныйПассив, код DEMO-P, вид Пассивный. Оба не забалансовые. Не создавайте счёт 41/60 и не называйте опыт реальным планом бухучёта.
Документы → УчебнаяОперация85: номер Строка 40, автонумерация выключена. Без пользовательских реквизитов, проведения, обработчиков, подписок, планов обмена и внешних вызовов.
Регистры бухгалтерии → УчебныеПроводки85: план УчебныеСчета85, Корреспонденция включена. Единственное измерение МеткаОперации: Строка 80, Балансовый включён, проверка заполнения Показывать ошибку. Единственный ресурс Сумма: Число 15,2, Балансовый включён. Реквизитов нет. Длина уточнения периода 3.
Создайте второй регистр УчебныеОдносторонние85 с теми же планом, измерением, ресурсом и длиной уточнения периода, но Корреспонденция выключена. У обоих единственный регистратор УчебнаяОперация85. Модули наборов и документа пустые, кроме отдельной экспортной учебной процедуры в последнем уроке.
Обновите конфигурацию базы данных и убедитесь, что предопределённые счета созданы как данные. Создайте серверный общий модуль УчебнаяБухгалтерияПримеры с флагом Сервер. Вставьте весь модуль одного урока, вызовите УчебнаяБухгалтерияПримеры.ВыполнитьПример() из серверной команды своей обработки.
Первые семь задач не записывают данные. Восьмая кратковременно записывает собственный документ и проводки в собственной транзакции, которую обязательно отменяет. Девятая относится к модулю собственного набора, а не общему модулю.
Отмена транзакции не отменяет письма, HTTP и внешние файлы. Поэтому у собственного документа и наборов не должно быть таких обработчиков или подписок. Привилегированный режим не включается.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Документы.Количество() <> 1
ИЛИ Метаданные.ПланыСчетов.Количество() <> 1
ИЛИ Метаданные.РегистрыБухгалтерии.Количество() <> 2
ИЛИ Метаданные.Документы.Найти("УчебнаяОперация85") = Неопределено
ИЛИ Метаданные.ПланыСчетов.Найти("УчебныеСчета85") = Неопределено Тогда
ВызватьИсключение "Разрешены только собственные документ, план счетов и два регистра";
КонецЕсли;
Если Метаданные.ПланыСчетов.УчебныеСчета85.МаксКоличествоСубконто <> 0 Тогда
ВызватьИсключение "В этом опыте план счетов без субконто";
КонецЕсли;
Для Каждого ИмяРегистра Из СтрРазделить("УчебныеПроводки85,УчебныеОдносторонние85", ",") Цикл
Описание = Метаданные.РегистрыБухгалтерии.Найти(ИмяРегистра);
Если Описание = Неопределено Тогда
ВызватьИсключение "Не найден собственный регистр " + ИмяРегистра;
КонецЕсли;
Если Описание.Корреспонденция <> (ИмяРегистра = "УчебныеПроводки85")
ИЛИ Описание.ПланСчетов.Имя <> "УчебныеСчета85"
ИЛИ Описание.Измерения.Количество() <> 1
ИЛИ Описание.Ресурсы.Количество() <> 1
ИЛИ Описание.Реквизиты.Количество() <> 0
ИЛИ Описание.Измерения.Найти("МеткаОперации") = Неопределено
ИЛИ Описание.Ресурсы.Найти("Сумма") = Неопределено
ИЛИ Описание.ДлинаУточненияПериода <> 3 Тогда
ВызватьИсключение "Схема собственного регистра отличается от учебной";
КонецЕсли;
КонецЦикла;
СчетДебета = ПланыСчетов.УчебныеСчета85.УчебныйАктив;
СчетКредита = ПланыСчетов.УчебныеСчета85.УчебныйПассив;
Если СчетДебета.Пустая() ИЛИ СчетКредита.Пустая() Тогда
ВызватьИсключение "Нужны два собственных предопределённых счёта";
КонецЕсли;
Если СчетДебета.ПолучитьОбъект() = Неопределено ИЛИ СчетКредита.ПолучитьОбъект() = Неопределено Тогда
ВызватьИсключение "Данные собственных счетов не созданы";
КонецЕсли;
Менеджер = РегистрыБухгалтерии.УчебныеПроводки85;
СвояСсылка = Документы.УчебнаяОперация85.ПолучитьСсылку(Новый УникальныйИдентификатор);
Набор = Менеджер.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(СвояСсылка);
Сообщить(Не Набор.Выбран());
Набор.Прочитать();
Сообщить(Набор.Выбран());
Сообщить(Набор.Количество() = 0);
Сообщить(Не Набор.Модифицированность());
Набор.ДополнительныеСвойства.Вставить("СвояУчебнаяМетка", "DEMO-READ");
Метка = Неопределено;
Сообщить(Набор.ДополнительныеСвойства.Свойство("СвояУчебнаяМетка", Метка) И Метка = "DEMO-READ");
Набор.Записывать = Ложь;
Набор.БлокироватьДляИзменения = Ложь;
Сообщить(Не Набор.Записывать И Не Набор.БлокироватьДляИзменения);
Сообщить(Не Набор.ОбменДанными.Загрузка);
Запись = Набор.Добавить();
ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, 750);
Сообщить(Набор.Модифицированность());
Сообщить(Не Набор.Выбран());
КонецПроцедуры
Процедура ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, СуммаСтроки)
Запись.Период = Дата(2026, 9, 15, 10, 0, 0);
Запись.Регистратор = СвояСсылка;
Запись.Активность = Истина;
Запись.СчетДт = СчетДебета;
Запись.СчетКт = СчетКредита;
Запись.МеткаОперации = "DEMO-BOOK";
Запись.Сумма = СуммаСтроки;
КонецПроцедурыРазбор по шагам
Создать пустой набор с отбором только по своей новой ссылке, до чтения Выбран=Ложь.
Прочитать: записей нет, набор считан и не модифицирован.
Вставить собственную временную метку в ДополнительныеСвойства. Само readonly свойство не присваивается.
Явно оставить Записывать и БлокироватьДляИзменения ложными. Загрузка обмена только читается, не включается.
Добавить собственную заполненную запись в память. Модифицированность становится Истина, Выбран — Ложь.
Как проверить результат
Девять булевых сообщений Истина: пустое чтение, своя метка, безопасные исходные флаги и изменение памяти.
Нет прямого Записать: параметр Записывать=Ложь не преподносится как запрет сохранения.
Ожидаемый результат
Состояние считанного набора и временные параметры показаны без отключения проверок обменом.
На что обратить внимание
Модифицированность не обнаруживает изменения, сделанные другим пользователем в базе.
БлокироватьДляИзменения используется при будущей записи в управляемом режиме, а не заменяет все правила конкурентного доступа.
Загрузка=Истина отключает часть проверок соответствия настройкам счетов. Это не способ исправить ошибочную проводку.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Вызвать штатную проверку заполнения своей проводки
Обязательная собственная метка сначала пуста, затем заполнена. ПроверитьЗаполнение проверяет настроенные правила, а не все бизнес-правила бухучёта.
Где и как запускать
Полный серверный общий модуль своей отдельной конфигурации УчебнаяБухгалтерия85.
Подготовка
Создайте НОВУЮ пустую файловую базу с именем корневой конфигурации УчебнаяБухгалтерия85, управляемым режимом блокировок. Это отдельный стенд, не УТ/КА2/УНФ/БП и не копия с рабочими данными.
Планы счетов → УчебныеСчета85: код Строка 20, Максимальное количество субконто 0, без флагов учёта. Создайте два предопределённых негрупповых счёта: УчебныйАктив, код DEMO-A, вид Активный; УчебныйПассив, код DEMO-P, вид Пассивный. Оба не забалансовые. Не создавайте счёт 41/60 и не называйте опыт реальным планом бухучёта.
Документы → УчебнаяОперация85: номер Строка 40, автонумерация выключена. Без пользовательских реквизитов, проведения, обработчиков, подписок, планов обмена и внешних вызовов.
Регистры бухгалтерии → УчебныеПроводки85: план УчебныеСчета85, Корреспонденция включена. Единственное измерение МеткаОперации: Строка 80, Балансовый включён, проверка заполнения Показывать ошибку. Единственный ресурс Сумма: Число 15,2, Балансовый включён. Реквизитов нет. Длина уточнения периода 3.
Создайте второй регистр УчебныеОдносторонние85 с теми же планом, измерением, ресурсом и длиной уточнения периода, но Корреспонденция выключена. У обоих единственный регистратор УчебнаяОперация85. Модули наборов и документа пустые, кроме отдельной экспортной учебной процедуры в последнем уроке.
Обновите конфигурацию базы данных и убедитесь, что предопределённые счета созданы как данные. Создайте серверный общий модуль УчебнаяБухгалтерияПримеры с флагом Сервер. Вставьте весь модуль одного урока, вызовите УчебнаяБухгалтерияПримеры.ВыполнитьПример() из серверной команды своей обработки.
Первые семь задач не записывают данные. Восьмая кратковременно записывает собственный документ и проводки в собственной транзакции, которую обязательно отменяет. Девятая относится к модулю собственного набора, а не общему модулю.
Отмена транзакции не отменяет письма, HTTP и внешние файлы. Поэтому у собственного документа и наборов не должно быть таких обработчиков или подписок. Привилегированный режим не включается.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Документы.Количество() <> 1
ИЛИ Метаданные.ПланыСчетов.Количество() <> 1
ИЛИ Метаданные.РегистрыБухгалтерии.Количество() <> 2
ИЛИ Метаданные.Документы.Найти("УчебнаяОперация85") = Неопределено
ИЛИ Метаданные.ПланыСчетов.Найти("УчебныеСчета85") = Неопределено Тогда
ВызватьИсключение "Разрешены только собственные документ, план счетов и два регистра";
КонецЕсли;
Если Метаданные.ПланыСчетов.УчебныеСчета85.МаксКоличествоСубконто <> 0 Тогда
ВызватьИсключение "В этом опыте план счетов без субконто";
КонецЕсли;
Для Каждого ИмяРегистра Из СтрРазделить("УчебныеПроводки85,УчебныеОдносторонние85", ",") Цикл
Описание = Метаданные.РегистрыБухгалтерии.Найти(ИмяРегистра);
Если Описание = Неопределено Тогда
ВызватьИсключение "Не найден собственный регистр " + ИмяРегистра;
КонецЕсли;
Если Описание.Корреспонденция <> (ИмяРегистра = "УчебныеПроводки85")
ИЛИ Описание.ПланСчетов.Имя <> "УчебныеСчета85"
ИЛИ Описание.Измерения.Количество() <> 1
ИЛИ Описание.Ресурсы.Количество() <> 1
ИЛИ Описание.Реквизиты.Количество() <> 0
ИЛИ Описание.Измерения.Найти("МеткаОперации") = Неопределено
ИЛИ Описание.Ресурсы.Найти("Сумма") = Неопределено
ИЛИ Описание.ДлинаУточненияПериода <> 3 Тогда
ВызватьИсключение "Схема собственного регистра отличается от учебной";
КонецЕсли;
КонецЦикла;
СчетДебета = ПланыСчетов.УчебныеСчета85.УчебныйАктив;
СчетКредита = ПланыСчетов.УчебныеСчета85.УчебныйПассив;
Если СчетДебета.Пустая() ИЛИ СчетКредита.Пустая() Тогда
ВызватьИсключение "Нужны два собственных предопределённых счёта";
КонецЕсли;
Если СчетДебета.ПолучитьОбъект() = Неопределено ИЛИ СчетКредита.ПолучитьОбъект() = Неопределено Тогда
ВызватьИсключение "Данные собственных счетов не созданы";
КонецЕсли;
СвояСсылка = Документы.УчебнаяОперация85.ПолучитьСсылку(Новый УникальныйИдентификатор);
Набор = СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита);
Набор.Получить(0).МеткаОперации = "";
ПервыйОтвет = Набор.ПроверитьЗаполнение();
Сообщить(ПервыйОтвет = Ложь);
Набор.Получить(0).МеткаОперации = "DEMO-BOOK";
ВторойОтвет = Набор.ПроверитьЗаполнение();
Сообщить(ВторойОтвет = Истина);
Сообщить(Набор.Количество() = 2 И Набор.Итог("Сумма") = 800);
Сообщить(Набор.ОбменДанными.Загрузка = Ложь);
КонецПроцедуры
Функция СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита)
Набор = РегистрыБухгалтерии.УчебныеПроводки85.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(СвояСсылка);
Для Каждого СуммаСтроки Из СтрРазделить("750,50", ",") Цикл
Запись = Набор.Добавить();
ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, Число(СуммаСтроки));
КонецЦикла;
Возврат Набор;
КонецФункции
Процедура ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, СуммаСтроки)
Запись.Период = Дата(2026, 9, 15, 10, 0, 0);
Запись.Регистратор = СвояСсылка;
Запись.Активность = Истина;
Запись.СчетДт = СчетДебета;
Запись.СчетКт = СчетКредита;
Запись.МеткаОперации = "DEMO-BOOK";
Запись.Сумма = СуммаСтроки;
КонецПроцедурыРазбор по шагам
В собственном измерении МеткаОперации обязательно установить Показывать ошибку.
Стереть только метку первой собственной записи и вызвать ПроверитьЗаполнение; ожидается сообщение о незаполненном поле и Ложь.
Вернуть DEMO-BOOK и проверить снова: настроенное обязательное поле теперь заполнено.
Проверить суммы и обычный режим обмена. Загрузка не включалась, обработчик проверки в собственной схеме пустой.
Наличие непустой ссылки на ещё незаписанный документ не доказывает наличие документа в базе. Записи здесь не сохраняются.
Как проверить результат
Четыре булевых сообщения Истина: сначала ответ Ложь, потом Истина, сумма 800 и Загрузка=Ложь.
При первом вызове видно штатное сообщение по МеткаОперации; исправление не требует отключать проверки.
Ожидаемый результат
Штатная проверка с намеренно созданной и исправленной ошибкой обязательного поля.
На что обратить внимание
ПроверитьЗаполнение вызывает событие ОбработкаПроверкиЗаполнения; в рабочих базах оно может иметь дополнительные действия.
Истина не подтверждает существование всех ссылок, экономическую правильность или готовность проводки к рабочему сохранению.
Не очищайте сообщения и не включайте Загрузка для сокрытия собственной ошибки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.