Правила обмена корреспондента 1с что это
В данной статье будут рассмотрены десять приемов работы с конвертацией данных 2.1. Указанные приемы явно не описываются в документации (справке), но их полезно знать и применять. Для наглядности приёмы работы сопровождаются описанием реализации и практическими примерами.
Чтобы выгрузить один объект источника в несколько объектов приемника, можно использовать мощный инструмент расширения возможностей правил конвертации – «ВыгрузитьПоПравилу».
Синтаксис функции:
Пример реальной задачи. Необходимо выгрузить справочник – «НоменклатурныеГруппы» в три объекта на стороне приемника: «НоменклатурнаяГруппа» (справочник), «ЗаказНаПроизводство» (документ), «СтатусыЗаказов» (регистр сведений). Для решения данной задачи можно использовать функцию «ВыгрузитьПоПравилу».
В правилах выгрузки данных (далее-ПВД) в обработчике «ПередОбработкой» происходит выгрузка в объект приемника «НоменклатурнаяГруппа» по стандартной выгрузке (ИмяПКО), а в обработчике «ПослеВыгрузки» происходит выгрузка в объекты «ЗаказНаПроизводство» и «СтатусыЗаказов» с помощью функции «ВыгрузитьПоПравилу»:
Если необходимо выгрузить иерархический справочник (элементы и папки) с учетом иерархии и поиск в базе приемника будет осуществляться по внутреннему идентификатору объекта источника (по полям поиска не будет продолжен поиск), то для корректной выгрузки иерархии необходимо установить галочку – «Поиск» у реквизита «ЭтоГруппа» (см. рисунок 1).
Рисунок 1 – Выгрузка иерархического справочника.
Если не установить галочку «Поиск» у реквизита «ЭтоГруппа», то папки объекта будут выгружаться как элементы.
Объекты регистрируются по правилам регистрации объектов к выгрузке только при изменении реквизитов объекта, которые указаны в правилах конвертации свойств (далее-ПКС) объекта (правила обмена данными). При необходимости регистрировать объект к выгрузке и при изменении реквизитов, которые не указаны в ПКС, достаточно данные реквизиты добавить в ПКС и установить галочку – «отключить» (см. рисунок 2).
Рисунок 2 – Реквизиты объекта для правил регистрации объекта.
Это может потребоваться для задачи, когда у нас есть реквизиты на стороне базы источника, которых нет в базе приемника, и только при их изменении объекты должны регистрироваться к обмену.
Когда стоит задача выгружать вместо регистрируемого объекта другой объект, то при регистрации исходного объекта в правилах регистрации объектов в обработчике «ПослеОбработки» через метод «ЗарегистрироватьИзменения» плана обмена можно зарегистрировать необходимый объект на узлах плана обмена.
Синтаксис метода:
ЗарегистрироватьИзменения (Узлы, Данные)
Пример реальной задачи. Несколько документов «Списания с расчетного счета» по одному документу «Заявка на расходование ДС» необходимо выгружать из конфигурации источника в один документ «Списания с расчетного счета» конфигурации приемника. При изменении документа «Списания с расчетного счета» регистрируется к обмену документ «Заявка на расходование ДС», который при выгрузке собирает по определенным правилам данные со всех документов «Списания с расчетного счета».
В продолжение пункта 4. При выгрузке любого объекта происходит проверка, соответствует ли он существующим правилам регистрации. Если при регистрации вместо исходного объекта регистрируется к выгрузке другой объект, то новый объект также будет проходить проверку по своему типу правил регистрации объектов. В случае несоответствия правилам регистрации, объект будет выгружать, как «УдалениеОбъекта».
Для устранения данной нестыковки выгружаемого объекта и правил регистрации объекта, нужно использовать в правилах регистрации в обработчике «ПослеОбработки» параметр «Выгрузка».
Описание параметра Выгрузка:
Выгрузка (только чтение) – Булево – параметр определяет контекст выполнения правила регистрации. Истина – правило регистрации выполняется в контексте выгрузки объекта. Ложь – правило регистрации выполняется в контексте перед записью объекта.
Пример реальной задачи. При изменении документа «Списания с расчетного счета» регистрируется к обмену документ «Заявка на расходование ДС», который при выгрузке собирает по определенным правилам данные со всех документов «Списания с расчетного счета». Но документ «Заявка на расходование ДС» может выгружать независимо по своим правилам регистрации, которые не совпадают с правилами регистрации при регистрации из документа «Списания с расчетного счета».
Если по одному объекту источнику в правилах конвертации объектов присутствуют несколько правил, то система будет использовать по умолчанию правило, которое совпадает по наименованию с наименованием объекта источника (см. рисунок 3).
Рисунок 3 – Выбор правила конвертации объекта по умолчанию.
Пример реальной задачи. Данный подход может пригодиться при выгрузке субконто, когда система определяет правила выгрузки объекта по умолчанию.
При необходимости создавать на стороне приемника новые элементы документов (справочников) и подставлять их в исходный объект, можно применить следующий подход:
- определить правило заполнения нового документа (справочника) на стороне приемника (например, через входящие данные);
- описать заполнение реквизита нового документа (справочника) в исходном объекте (например, через исходящие данные);
- заполнять при выгрузке на стороне источника новый документ (справочник) уникальным значением (например, числом).
Пример реальной задачи. Необходимо на стороне приемника создавать новые документы «ДокументРасчетовСКонтрагентом» в документе ввод начальных остатков по счетам взаиморасчетов. На стороне источника заполняем реквизит «ДокументРасчетовСКонтрагентом» при выгрузке начальных остатков по счетам взаиморасчетов уникальным значением (числом):
В исходном объекте («ВводНачальныхОстатков») описываем правила выгрузки реквизита «ДокументРасчетовСКонтрагентом»:
Определяем правило заполнения «ДокументаРасчетовСКонтрагентом» на стороне приемника (см. рисунок 4).
Рисунок 4 – Правили выгрузки «ДокументРасчетовСКонтрагентов».
В конвертации данных нельзя создать параметр с типом «ТаблицаЗначений» на вкладке «Параметры» (см. рисунок 5).
Рисунок 5 – Допустимые типы для параметров конвертации данных.
Возможность создать параметр с типом «ТаблицаЗначений» при необходимости присутствует в системе, необходимо в общем обработчике «ПередЗагрузкойДанных» определить параметр.
Также необходимо в общем обработчике «ПослеЗагрузкиДанных» удалить данный параметр.
При выгрузке из базы источника можно указывать вместо элемента перечисления или предопределенного значения справочника текстовое значение, которое равно наименованию элемента перечисления или предопределенного значения справочника.
Пример реальной задачи. В базе приемника присутствует реквизит – «ТипПлатежа» с типом «Перечисление». При выгрузке реквизита (обработчик: «Перед выгрузкой») можно указать текстовое значение равное наименованию элемента перечисления на стороне базы приемника (см. рисунок 6). Данный подход может ускорить процесс разработки в конвертации данных.
Рисунок 6 – Заполнение реквизита с типом «Перечисление».
Когда необходимо выгрузить большой объем данных и нет необходимости выгружать полностью ссылочные данные, то можно сократить объем выгружаемых данных с помощью параметров «ВыгрузитьОбъект» («ВыгрузитьТолькоСсылку») в обработчике «ПриВыгрузке» правил конвертации свойств (ПКС):
Пример реальной задачи. Данное ускорение может потребоваться, когда все ссылочные объекты (нормативно-справочная информация) из базы источника ежедневно интегрируется в базу приемника, а документы должны транслироваться с определенным интервалом (раз в месяц). В таком случае при обмене документами между базами нет необходимости полностью передавать ссылочные объекты, а можно передавать только ссылку, что ускорит процесс выгрузки.
Рассмотренные приемы работы позволят повысить производительность и эффективность работы с программой конвертацией данных 2.1.
Статью подготовил Аналитик-эксперт по информационным системам "ИнфоСофт" Ретунский Александр.
И если допустим в источнике ПравилаОбмена <> макету приемника ПравилаОбменаКорреспондента. То в приемнике по каким правилам грузится будут данные?
Стандартный файл обмена содержит сначала правила, потом данные.
При БСП обмене - секция XML файла с данными, содержащия правила игнорируется.
(2) Уточню - Стандартный файл обмена содержит сначала правила, потом данные.
Стандартный файл обмена содержит сначала правила загрузки, потом данные.
(0) это для безопасности сделано. Чтобы не выполнять куски программ, пришедшие из внешнего источника. Потому что xml-файл, который приходит, практически никак не защищен от вирусной атаки.
(4) И дополню, как правило обмен проводится под максимальными привелегиями, что делает это очень вероятным вектором атаки, а так весь исполняемый код загружается в проверенном контуре.
Подправил обмен только в источнике ПравилаОбмена,(макет ПравилаОбменаКорреспондента не трогал), добавил чтобы еще одно поле загружалось в документ УТ. И оно загрузилось, получается именно у меня взяло из файла обмена XML правила, а не из ПравилаОбменаКорреспондента. С чем может быть связанно? УТ тут какое то самопальное, но общие модули взяты с УТ11, Бухгалтерия 2.0 на обычных формах.
(7) неизвестна глубина модификации.
Но я лично на бухе проверял, что правила берутся не из файла, а из правил
(8) В бухгалтерии есть только ПравилаОбмена, корреспондента нету! а в УТ есть ПравилаОбмена и ПравилаОбменаКорреспондента. Обмен двухсторонний, в бухгалтерию грузятся данные также из УТ. Соответственно бухгалтерия может взять правила, только из файла обмена от УТ, корреспондента нету же. Поэтому и возник у меня вопрос. Подумал Бухгалтерия на обычных формах давно написана, может еще тогда не придумали корреспондента. В УТ есть корреспондент, но походу для красоты, так как опыт показал правила берутся в моем случаи, почему то из файла обмена и для УТ тоже и это при живом то ПравилаОбменаКорреспондента.
(9) так то что ты добавил - это делается на этапе выгрузки. Добавление нового поля.
А ПравилаОбменаКорреспондента работают только на этапе загрузки. В обработчике ПослеЗагрузки поменяй что-нибудь и ты поймешь, что правила из файла обмена не при делах.
(10) я в правила (В источнике) добавил перенос из бухгалтерии реквизита Комментарий - в документ УТ реквизит Примечание. В УТ перенеслась информация в реквизит Примечания из Комментария, значит загрузилась инфа по правилам из источника, а не по ПравилаОбменаКорреспондента, в ПравилаОбменаКорреспондента нет информации о соответствия реквизитов Комментарий -Примечание
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (83):
Здравствуйте. Есть ли возможность выполнить ДЗ 4.16.1 на конфигурациях УТ 11.3.4.31 и БП 3.0.51.22. В УТ для БП 3.0 доступен только универсальный формат. Может стоить заменить ДЗ на более актуальные версии конфигураций?
…
(текст комментария доступен только участникам Мастер-группы)
А я думал КД 2 – это универсальный инструмент, а все остальное дополнение
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте. Использую БП 3.0.48.22 и УТ 11.1.2.9 – не получается настроить обмен. Как я понял – в этой верии УТ нет универсального обмена данными. До какой версии можно использовать УТ 11.1 ?
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте, как выгрузить правила обмена при синхронизации данных через универсальный формат?
в УТ 11.4.2.90 и БП 8.3.10.2667
вижу только сохранение в файл правил регистрации
…
(текст комментария доступен только участникам Мастер-группы)
Пользователю, указанному для подключения к другой программе, должны быть назначены роли “Администратор системы” и “Полные права”
Роль и полные права у пользователя установлены
В чем может быть причина?
…
(текст комментария доступен только участникам Мастер-группы)
Вроде все что возможно проставила
…
(текст комментария доступен только участникам Мастер-группы)
Подскажите, пожалуйста, какой релиз для тестов взять
…
(текст комментария доступен только участникам Мастер-группы)
При выполнении домашнего задания возникли вопросы. Использовал конфигурации УТ 11.1.10 и БП 3.0.43.
1. Выгруженные из УТ правила обмена хранятся в zip-файле и имеют два файла – CorrespondentExchangeRules, ExchangeRules. При загрузке этого файла загружался все время первый файл, потому что полученный обмен назывался “БП – УТ. Но мне нужно было доработать второй файл, так он как раз содержит правила “УТ – БП”.
Я решил проблему, вытащив файл ExchangeRules из архива, загрузив его в КД, доработав и вернув обратно в архив. Этот архив указал в настройках обмена в УТ как используемые правила.
Есть ли какой-то более правильный способ выполнить эти действия? Я видел в КД опцию “Выгружать правила корреспондента”. Это значит, что можно загрузить сразу оба правила в КД и потом выгрузить оба?
2. Загруженные мной правила имели наименование “УТ-БП (11.1.10.131, 3.0.42.1, v.5)”. Получилось, что версии конфигураций, которые я использовал и для которых предназначены правила различались. Возникла ситуация, что мои доработанные правила не сработали. Из журнала регистрации я понял, что в правилах выгрузки записана версия БП 2.0.43, а в правилах корреспондента версия 2.0.42. Это получилось потому, что я загружал метаданные БП и версия конфигурации в КД поменялась на ту, которую использовал я. Я отредактировал вручную правила выгрузки, вернув те версии, которые были изначально, и все заработало.
Как обходить эту ситуацию правильно, может я пропустил какой-то шаг? Мне только приходит в голову, что можно было правила корреспондента тоже загрузить в КД, выгрузить, и версии бы обновились и во вторых правилах.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Появилось несколько вопросов.
1) Когда Евгений показывал пример адаптации правил УНФ, то в макете правил не было правил корреспондента – механизм по обработке правил корреспондента появился позже или это как-то настраивается в системе?
В составе плана обмена в 1С 8.3 БСП есть возможность устанавливать разрешение или запрет автоматической регистрации объекта к обмену данными. Если для объекта разрешена авторегистрация, то при записи он безусловно зарегистрируется к обмену данными. В таком случае нельзя будет выполнить какие-либо проверки свойств объекта перед его регистрацией и нельзя будет управлять регистрацией объектов.
Правила регистрации объектов
При регистрации данных в подсистеме «Обмен данными» библиотеки стандартных подсистем 1С для каждого объекта входящего в состав обмена данными описываются правила регистрации объектов. Правила регистрации объектов используются как в обменах в формате КД 2, так и для обменов в универсальном формате. Правила регистрации объектов в 1С представляет собой текстовый макет плана обмена, содержащий описание правил регистрации в формате XML. Разработка правил регистрации объектов всегда выполняется с использованием конфигурации «Конвертация данных 2», даже если обмен выполняется в универсальном формате (КД 3).
Используя правила регистрации объектов, разработчик обмена данными получает возможность управлять составом данных отправляемых в систему корреспондент. В правилах регистрации есть возможность установить проверку свойств объектов, например, регистрировать к отправке только проведенные документы, относящиеся к определенной организации, начиная с определенной даты. В зависимости от настроек плана обмена можно ограничить регистрацию и выгрузку документов относящихся к разным подсистемам. Например, можно добавить настройку плана обмена «Выгружать банковские документы», и в зависимости от значения настройки отправлять либо не отправлять документы, относящиеся подсистеме «Банк» в систему-корреспондент.
Разработка правил регистрации
Как уже было сказано выше, правила регистрации объектов разрабатываются в конфигурации «Конвертация данных 2».
Рис. 1 Правила регистрации объектов в 1С
Чтобы добавить либо изменить существующие правила регистрации объектов необходимо выполнить следующие действия:
- Выгрузить метаданные конфигурации участвующей в обмене, с помощью специализированной обработки;
- Загрузить их в справочник «Конфигурации информационных баз»;
- Загрузить существующие правила регистрации из макета плана обмена, если требуется доработка существующих правил регистрации, а не разработка с нуля.
Примечание: Более подробно о разработке правил регистрации можно почитать в помощнике, встроенном в конфигурацию «Конвертация данных 2»
Отбор объектов по свойствам узла
Рассмотрим основные возможности разработки правил регистрации объектов с использованием конфигурации «Конвертация данных 2». Рассмотрим, как реализован отбор документов при регистрации в обмен в большинстве типовых правил обмена объектов. В систему-корреспондент могут отправляться не все документы, а только по определенным организациям, начиная с определенной даты. Для реализации этого отбора в план обмена добавлены следующие реквизиты:
- Использовать отбор по организациям – Булево;
- Дата начала выгрузки документов – Дата;
- Организации – табличная часть. Реквизиты: Организация – Справочник «Организации».
Реквизиты выведены в форму узла для возможности изменения настроек обмена пользователем.
Рис. 2 Реквизиты в Плане обмена в 1С
Откроем правила регистрации объекта любого из документов:
Рис. 3 Правила регистрации объекта документа
На рисунке видно, что в правилах регистрации присутствует отбор по свойства узла плана обмена. Документ регистрируется к отправке в систему корреспондент при соблюдении следующих условий:
- значение реквизита документа «Дата» больше или равно реквизита плана обмена «Дата начала выгрузки объекта»;
- значение реквизита плана обмена «Использовать отбор по организации» = «Нет», т.е. флаг отбора по организациям в форме узла отключен;
- значение реквизита документа «Организация» входит в список значений в табличной части плана обмена «Организации».
Обратите внимание, что два последних условия объединены в группу с условием ИЛИ, т.е. регистрация выполняется, если соблюдено одно из этих условий: нет отбора по организации или организация документа есть в списке организаций, участвующих в обмене.
Отбор объектов по значениям реквизитов
Отбор по реквизитам документов используется, когда при регистрации нет необходимости проверять какой-либо из реквизитов плана обмена, и выгрузка зависит только от значений реквизитов самого объекта. Например, нам необходимо регистрировать к отправке только проведенные документы. В этом случае настройка условий отправки будет выглядеть следующим образом:
Рис. 4 Настройка условий отправки в Плане обмена в 1С
Особенности регистрации данных для обменов в формате КД 2, КД 3
В формате КД 3 такая функция отсутствует, и при любой записи объекта будет выполнена его регистрация. Если для объекта выполняются условия, заданные правилами регистрации, он будет отправлен в систему-корреспондент, даже если по факту в нем не были изменены реквизиты, участвующие в обмене, и даже если изменений реквизитов объекта не было совсем.
Работа с правилами регистрации объектов и другие настройки Конвертации данных
Изучите теорию модуля № 4:
- Глава 7. Настройка регистрации объектов в on-line обмене
- Глава 8. Прочие настройки конвертации
Выполните практическое задание:
Отчеты по домашним заданиям размещайте по ссылкам, указанным выше. Отчеты, опубликованные на этой странице, удаляются без предупреждения.
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (147):
Вопрос по режимам выгрузки.
“Если у справочников переключатель режима в положение “Выгружать при необходимости”, тогда эти справочники будут выгружаться полностью, но только в том случае, если они первый раз встретились по ссылкам из других выгружаемых объектов. В дальнейшем эти объекты не будут выгружаться по ссылкам целиком (выгрузится только ссылка)…”
1. Такое поведение будет только в том случае, если в ПКО справочников стоит поиск по УИД? а если его нет, то такой справочник не попадет в РС.СоответствиеОбъектовИБ и будет всегда выгружаться целиком , а не только ссылка?
2. Если в ПРО выбран режим ВыгружатьПоНеобходимости и определены условия – они будут работать совместно? т.е. проверяется соответствие режиму выгрузки + соответствие правилам регистрации?
…
(текст комментария доступен только участникам Мастер-группы)
AlexeyDubrovin сказал: “1) Даже если поиск по уникальному идентификатору отключен, то он все-равно запишется в регистр, соответственно, после успешного обмена, выгружаться будет только ссылка….”
Какие-то противоречивые сведения.
Или в одном из уроков или в ответах преподавателей (не помню точно в каком месте) было сказано следующее:
” Объект записывается в регистр «Соответствия объектов», только если флаг поиска по идентификатору в ПКО установлен. Если он снят, и поиск идет только по полям, то уникальный идентификатор этого объекта не переносится совсем. ”
Все-таки какое утверждение верное?
…
(текст комментария доступен только участникам Мастер-группы)
Провела такой эксперимент: Обмен УТ(11.1.10.145) и БП (3.0.39).
версия БСП 2.2.5. Внесла изменения в существующие ПКО для номенклатуры, убрала поиск по УИД, оставила только по полям поиска.
Т.к. ранее производился обмен, то РС.СоответствиеОбъектовИБ был заполнен, поэтому , для эксперимента, на стороне бухгалтерии удалила одну запись для эл-та номенклатуры. Далее на стороне УТ зарегистрировала этот элемент к обмену.Сразу оговорюсь, что на стороне УТ удалять такую же запись регистра соответствия сразу нельзя, т.к. режим выгрузки справочников = ПоНеобходимости и поэтому невозможно будет зарегистрировать этот элемент к обмену (см. процедуру ОбменДаннымиСобытия.ПолучитьМассивУзловДляРегистрацииВыгружатьПриНеобходимости)
В результате в файле обмена в узле Ссылка были только поля поиска и не было УИД и после обмена на стороне бухгалтерии новая запись в регистре соответствий не появилась
…
(текст комментария доступен только участникам Мастер-группы)
Я не утверждала, что всегда объект будет выгружаться полностью, а спрашивала :) Попробую посмотреть еще раз.
Варинт 3. Регистрируем объект – очищаем Основное свойство (регистрация почему то остается) – Помечаем на удаление (регистрация все равно остается, т.к. до обработчика дело не доходит, потому что объект не проходит фильтр ПРО по свойствам, и если выгрузить сейчас , то выгружается УдалениеОбъекта), – опять возвращаем Основное свойство не снимая пометку удаления – регистрация объекта удаляется (отрабатывает обработчик ПриОбработке)
Читайте также: