обменданными загрузка что это

Профессия — 1С

рубрики: УРБД | Дата: 1 сентября, 2017

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

Краткий обзор

Если в синтакс-помощнике открыть ветку Прикладные объекты, можно обнаружить, что у многих из них: СправочникОбъект, ДокументОбъект, для регистров НаборЗаписей и т.д. есть свойство ОбменДанными.

Тип у этого объекта: ПараметрыОбменаДанным, который в свою очередь содержит три свойства

Эти свойства используются в процессе обмена между узлами распределенной информационной базы. В свойстве Отправитель храниться ссылка на узел в котором было произведено изменение объекта. Получатели содержит набор узлов плана обмена, в который будут выгружаться изменения. В случае необходимости каких-то нестандартных действий при обменен данными между базами и отправителя и состав набора узлов можно изменять программно. А вот на третьем свойстве — Загрузка хочется остановиться подробнее.

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

Если данное свойство установлено в значение Истина, это указывает на то, что производится запись объекта, полученного через механизмы обмена данными. При этом подразумевается, что объект содержит корректные данные и платформа 1С производит минимальное количество проверок. Но очень часто при записи объекта делается множество программных проверок в предопределенных процедурах модуля объекта. И этот код выполняется в том числе и при записи объекта, полученного из файла обмена. И в этом случае могут возникать ошибки, например, из-за того, что проверяемые данные просто еще не записаны.

Поэтому очень часто в модулях объектов можно встретить вот такой код:

Это позволяет избежать лишних проверок при обмене данными между базами. Конечно же если какой-то код должен выполняться в любом случае — его необходимо разместить перед проверкой свойства Загрузка. Этот момент надо обязательно учитывать при проектировании новых объектов метаданных, если у вас распределенная база данных и новый объект учавствует в обмене.

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

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

Источник

Заметки по 1С:Предприятие 8.2, 8.3

Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования (Linus Torvalds).

Читайте также:  можно ли сочник с творогом при грудном вскармливании в первый месяц

Страницы

среда, 23 апреля 2014 г.

Что означает ОбменДанными.Загрузка = Истина

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

Это является хорошим тоном среди разработчиков 1С.
Если вы когда либо пользовались стандартными обработками (например, Поиск и замена значений, Групповая обработка данных, Универсальный обмен данных и т.п), вы наверное замечали настройку которая называется обычно «Контроль записи». Эта настройка как раз отвечает за включение/выключение атрибута «ОбменДанными.Загрузка».
Использовать этот атрибут очень удобно в программном коде, для отключения всех проверок. Например, данный атрибут необходим если вам необходимо записать объект, но он имеет не заполненные обязательные реквизиты. Это можно так же использовать как способ увеличить скорость массовой обработки данных – если вы отключаете все проверки, система записывает объект быстрее.

Найти контрагента и изменить его наименование, запись выполнить без стандартных проверок на заполнение.

Источник

Использование ОбменДанными.Загрузка Истина в 1С 8.3

Что такое ОбменДанными.Загрузка = Истина, как использовать ОбменДанными.Загрузка.

ОбменДанными.Загрузка

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

Если Вы разрабатываете свою конфигурацию, во всех проверках правильности данных (например, процедура ПередЗаписью) необходимо первой строкой добавить такую строку:

Если ОбменДанными.Загрузка = Истина Тогда
Возврат;
КонецЕсли;

Это является хорошим тоном среди разработчиков 1С.

Контроль записи в стандартных обработках 1С

Если Вы когда-либо пользовались стандартными обработками 1С (например, Поиск и замена значений, Групповая обработка данных, Универсальный обмен данных и т.п), Вы наверное замечали настройку, которая называется обычно «Контроль записи». Эта настройка как раз отвечает за включение/выключение атрибута «ОбменДанными.Загрузка».

Как установить режим ОбменДанными Загрузка

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

КонтрагентСсылка = Справочники.Контрагенты.НайтиПоНаименованию(«Рога и копыта»);

КонтрагенОбъект.Наименование = «Рога и копыта LTD.»

Читайте также:  Фрондерство это простыми словами что

Азы настройки обмена данными в 1С с помощью конфигурации «1С Конвертации данных» на примере смотрите в видео:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Использование признака ОбменДанными.Загрузка в обработчиках событий объекта

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1. Все действия в процедурах-обработчиков событий ПередЗаписью, ПриЗаписи, ПередУдалением должны выполняться после проверки на ОбменДанными.Загрузка :

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

Это необходимо для того, чтобы никакая бизнес-логика объекта не выполнялась при записи объекта через механизм обмена данными, поскольку она уже была выполнена для объекта в том узле, где он был создан. В этом случае все данные загружаются в ИБ «как есть», без искажений (изменений), проверок или каких-либо других дополнительных действий, препятствующих загрузке данных.

Кроме механизма обмена данными есть и другие случаи, когда это должно быть так. В общем виде следует руководствоваться следующим подходом: механизмы, не рассчитанные на особенности конкретных конфигураций, должны иметь возможность загрузить данные при установленном флаге загрузки так, как будто текста обработчика нет вообще:

Например, требуется загрузить всю базу из XML «как есть». Для этого должно быть достаточно установить записываемым объектам ОбменДанными.Загрузка = Истина и все данные должны загрузиться без искажений, проверок и дополнительных действий, т. е. так же как и при пустом обработчике.

2. Исключение составляет механизм обмена данными, который в ходе загрузке данных в базу регистрирует эти данные к выгрузке на других узлах плана обмена.

В тех случаях, когда в конфигурации используется подсистема «Обмен данными» БСП, и возникла необходимость отключить ее, следует устанавливать дополнительное свойство ОтключитьМеханизмРегистрацииОбъектов :

Читайте также:  можно выпить супрастин после алкоголя

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

3. Требования выше также распространяются на обработчики подписок на эти события.

Например, при записи объекта через механизм обмена данными в РИБ это обеспечивается корректным состоянием объекта в том узле, где он был создан (или изменен).

В других случаях вызывающая сторона должна принять меры по корректному заполнению записываемого объекта. Например, при загрузке данных через механизм обмена данными по правилам конвертации или с помощью формата EnterpriseData, следует выполнять все необходимые действия по (до)заполнению объекта. Эти действия рекомендуется размещать в экспортных процедурах самого объекта, которые используются вызывающей стороной при записи объекта в режиме обмена данными.

Источник

Ну тут бы вам каждый второй уже посоветовал как обойти проверку или что-то иное, но никому не известна эта легендарная «noname-проверка».
Что за проверка?

Использование:
Чтение и запись.

Описание:
Тип: Булево.
Если значение данного свойства Истина, то при выполнении записи или удаления данных будет производиться минимум проверок, так как при этом делается предположение, что производится запись данных, полученных через механизмы обмена данными, и эти данные корректны.

В процедуре ПередЗаписью модуля документа ППВ (УТ 10) написано:

(1) и потом, зачем запускать обмен «олё» из базы источника.
Не было бы вопросов, я думаю, если бы вы запускали обмен из базы приёмника.

(1) полный текст такой:

. Например, в режиме ВнешнееСоединение (или COM-соединение) недоступен тип «ТабличныйДокумент», поэтому весь исходный код в модулях объектов и общих модулях с галкой «ВнешнееСоединение» должны быть исключен с помощью директивы #ЕСЛИ КЛИЕНТ ТОГДА.

Модули форм можно не менять, поскольку самих форм (со своими модулями) в режиме внешнего соединения нет. Общие модули без галки ВнешнееСоединение тоже можно не трогать, потому что их тоже нет. Модуль приложения заменяется на модуль внешнего соединения.

В типовых конфигурациях очень много ошибок на эту тему: что-то не исключено директивами, что-то исключено нужное. В любом случае программа не работает.

Новый релиз платформы (с 10) позволяет проверить конфигурацию на синтаксические ошибки в этих режимах.

Т.е., как я понял, у тебя не выйдет обойти COM-соединением эту проверку, ведь она именно для этих целей и написана. Видимо писатель, который творил в УТ, позаботился о таких как ты)))

Источник

Строительный портал