Top.Mail.Ru
Меню
Каталог Программы 1С Опыт и отзывы Услуги Компания Статьи Контакты

1С обмен данными истина

Основатель и генеральный директор компании MoscowSoft, Сорокин Сергей
Сорокин Сергей, Генеральный директор MoscowSoft  15.10.2025 Актуальность проверена: 15.10.2025   5 мин.
Подобрать перенос данных 1С

Специализируемся на переносах данных 1С с 2015г.

Подобрать перенос данных 1С >>

Интеграция 1С с маркетплейсами

Специализируемся на интеграциях 1С с маркетплейсами с 2021г.

Изучить продукты >>

Содержание

Что за зверь такой — ОбменДанными.Загрузка

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

Если говорить простыми словами, то когда ОбменДанными.Загрузка = Истина, система понимает что объект записывается через механизм обмена данными. Это означает, что данные уже прошли всю валидацию и проверки в той базе, где были созданы, и нам не нужно их проверять заново. В общем, данные загружаются "как есть", без всяких изменений и дополнительных телодвижений.

Главное правило каждого обработчика событий

Вот тут-то и начинается самое интересное! В любом порядочном обработчике событий (ПередЗаписью, ПриЗаписи, ПередУдалением) самыми первыми строчками должна идти проверка на ОбменДанными.Загрузка. Если этот флаг установлен в Истина, то сразу делаем Возврат и никакую бизнес-логику не выполняем.

Процедура ПередЗаписью(Отказ)
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	// Тут уже идет вся наша логика проверок
	
КонецПроцедуры

Эту конструкцию можно назвать "этикетом хорошего тона" среди 1С-разработчиков. Если её не ставить, то при загрузке данных через обмен могут возникать всякие глюки и ошибки, потому что система будет пытаться выполнить логику, которая уже отработала в исходной базе.

Зачем это всё нужно практически

Представь ситуацию: у тебя есть два магазина с отдельными базами 1С, и они обмениваются данными. В первом магазине создали товар, он прошёл все проверки, заполнились все нужные реквизиты. Теперь этот товар передается во второй магазин через обмен.

Если во втором магазине в обработчике ПередЗаписью нет проверки на ОбменДанными.Загрузка, то система попытается заново выполнить все проверки. А может быть такое, что проверяемые данные ещё не загрузились (например, связанные справочники), и тогда получится ошибка.

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

Как это работает в стандартных обработках

В типовых конфигурациях 1С везде используется эта фишка. Если зайдёшь в любую стандартную обработку типа "Поиск и замена значений" или "Групповая обработка данных", то увидишь специальную настройку для корректного программирования.

Кстати говоря, есть специальные процедуры в БСП для установки этого режима, например УстановитьОбменДаннымиЗагрузка(), которая не только ставит флаг Загрузка = Истина, но и может настроить другие параметры обмена.

Когда можно нарушить правило

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

Но таких случаев очень мало, и новичкам я бы советовал всегда ставить проверку на ОбменДанными.Загрузка в начале каждого обработчика событий. Лучше перестраховаться, чем потом разбираться с глюками в обмене данными.

В общем, запомни эту простую истину: ОбменДанными.Загрузка = Истина — значит "руки прочь от проверок и дополнительной логики"!

MoscowSoft логотип

Нужна помощь?

Если не получается разобраться с вопросом самостоятельно, обратитесь к нам. Получите бесплатную консультацию эксперта!

Основатель и генеральный директор компании MoscowSoft, Сорокин Сергей
Сорокин Сергей, Генеральный директор MoscowSoft

Возврат к списку