Обмен через универсальный формат 1с

Обновлено: 05.07.2024

(54) Так сможешь сделать скриншоты как я показал в (50) ?

И скажи какой префикс у какой базы.

И это же универсальный формат. Идеология в том, что конфигурации могут быть любые. Ему как бы всё равно БП-БП, УТ-БП, БП-ЕРП

(55) скрины пока не могу сделать. с идеологией согласен. и заказчик из-за этой идеологии и уперся в решение.
(55) коды центральных узлов планов обменов в обоих базах "БП"
(58) Вот и разбирайся с кодами, чтобы в двух базах предопределённые узлы имели разный код.
(49) в копии данные руками не заносятся. просто к этим базам по разному настроен доступ (не спрашивайте почему, заморочки заказчика) в копию заходит руководство через хер пойми какое соединение. и им требуются актуальные данные
(62) ты будешь удивлён, но не все операции описаны в универсальном обмене. Т.е. 2 базы не будут идентичны
(61) ок. не вопрос. у тебя в твоей базе получится изменить код узла "ЦБ" на какой нибудь другой?
(62) Есть еще как минимум два решения без универсального обмена в таком случае
(67) Настрой веб-сервер и через него дай доступ к основной базе с правами на просмотр
(69) для файловой базы? потому что как раз такой вариант настроен для копии в которую и нужно настроить обмен
ОФФ: Иногда обсуждения с Заказчиком технических подходов позволяет убедить их в более рациональном решении. Я исхожу только из того, что ты озвучил.
(72) ну хватит переливать из пустого в порожнее. условия я озвучил. заказчик их не собирается изменять (если ты думаешь что с ним не пытались это обсуждать). так что этот тупизм данность и надо решить задачу с учетом этого
(73) сделать идентичные базы через универсальный формат обмена типовым механизмом невозможно
(74) ну смотря что понимать под "идентичным"? актуальную справочную информацию и документы? почему невозможно?
(76) Начни с настройки обмена, а там будешь смотреть как и что обменивается. Только не удивляйся, что при изменении настроек в одной из баз, в другую они не выгрузятся, тем самым документы могут не проводиться в базе-приёмнике

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

к тс. Да напиши уже свой собственный обмен и при этом вся конфигурация в целом останется обновляемой типовыми средствами.

(78) нет там никаких доп. хотелок. конфигурации не изменяемые (с поддержки снимать нельзя)

а по поводу собственного обмена ))) не хочется получить ярлык "не справился со стандартной задачей". по моему у Гилева я эту фразу увидел

(79) спроси у Гилева, кстати. За спрос денег не берут. Может у него уже готовый курс есть и может даже среди бесплатных. Их там уже так много накопилось, что без спроса и не найдешь нужного.
(81) я не потерялся, просто занимаюсь другими задачами )))
З.Ы. Гилевский курс по КД 3.0 в планах есть,но чуть позже
(66) Вот же решение вопроса проблемы с префиксом (2).
Изменить код узла в какой-нибудь базе и настроить обмен заново.

(0) использовать обработку "Универсальный обмен данными XML". Предварительно создав правила в КД 2 - создаются в полпинка..

зы.. данная обработка к универсальному обмену в последних релизах (кстати, дуболомы его придумали) отношения не имеет..

Подсистема «Обмен данными» библиотеки стандартных подсистем содержит 4 варианта ( технологии) обмена информацией между различными информационными базами:

  • распределенные информационные базы (РИБ);
  • обмен данными через универсальный формат;
  • обмен данными по правилам обмена (правила обмена создаются при помощи конфигурации «Конвертация данных», редакция 2.1);
  • обмен данными без правил обмена.


Рис. 1 Последние релизы БСП 2.3

Описание формата EnterpriseData

Что такое формат EnterpriseData ?

Это формат, позволяющий описать объект информационной базы (контрагента, накладную и т.п.) или сообщить о факте удаления этого объекта. Ожидается, что конфигурация, получившая файл в формате EnterpriseData, отреагирует соответствующим образом – создаст у себя новые объекты и удалит те, которые в файле помечены как удаленные. Он предназначен для обмена информацией между конфигурациями УТ, РТ, УНФ, БП. Также формат может использоваться для обмена информацией с любыми другими информационными системами: он не зависит от особенностей собственного программного обеспечения или структур информационных баз, которые участвуют в обмене и не содержит в себе явных ограничений использования.

Версия формата EnterpriseData


Рис. 3 Структура XDTO-пакетаExchangeMessage

Как обмениваться данными в формате EnterpriseData?

  • через выделенный файловый каталог,
  • через каталог FTP,
  • через веб-сервис, развернутый на стороне информационной базы. Файл с данными передается как параметр веб-методов.

При обмене с использованием планов обмена конфигурации в ходе синхронизации передают только информацию об изменениях, произошедших со времени последней синхронизации (чтобы минимизировать объем передаваемой информации). При первой синхронизации конфигурация выгрузит все объекты в формате EnterpriseData в XML-файл (поскольку все они являются «новыми» для стороннего приложения).


При передаче данных от внешнего приложения в конфигурацию картина меняется на обратную. Приложение должно заполнить секцию <Confirmation> соответствующим образом, а в секцию <Body> поместить объекты для синхронизации в формате EnterpriseData.


Более подробно об обмен данными с прикладными решениями на платформе «1С:Предприятие» в формате EnterpriseData можно посмотреть здесь

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


Рис. 4 Структура модуля менеджера обмена через универсальный формат

Модуль создается автоматически с помощью конфигурации «Конвертация данных», редакция 3.0, на основе настроенных правил обмена либо вручную в конфигураторе.

Модуль состоит из нескольких крупных разделов, каждый из которых содержит свою группу процедур и функций.

  1. Комментарий. Первая строка модуля содержит комментарий с наименованием конвертации. Эта строка необходима для идентификации модуля при использовании команды Загрузка обработчиков в программе «Конвертация данных», редакция 3.0., например. // Конвертация УП2.2.3 от 01.06.2017 19:51:50
  2. Процедуры конвертации. Содержит предопределенные процедуры, которые выполняются на разных этапах синхронизации данных: перед конвертацией, после конвертации, перед отложенным заполнением.
  3. Правила обработки данных (ПОД). Содержит процедуры и функции, которые описывают правила обработки данных.
  4. Правила конвертации объектов (ПКО). Содержит процедуры и функции, которые описывают правила конвертации объектов, а также правила конвертации свойств данных объектов.
  5. Правила конвертации предопределенных данных (ПКПД). Содержит процедуру, заполняющую правила конвертации предопределенных данных.
  6. Алгоритмы. Содержит произвольные алгоритмы, которые вызываются из других правил (ПОД или ПКО).
  7. Параметры. Содержит логику заполнения параметров конвертации.
  8. Общего назначения. Содержит процедуры и функции, которые широко используются в правилах и алгоритмах.

Ниже описаны параметры процедур и функций, которые используются в нескольких видах процедур модуля менеджера.

КомпонентыОбмена. Тип – Структура. Содержит параметры и правила обмена, инициализированные в рамках выполнения сеанса обмена.

НаправлениеОбмена. Тип – Строка. Либо «Отправка», либо «Получение».

ДанныеИБ. Тип – СправочникОбъект либо ДокументОбъект.

Процедуры, связанные с событиями конвертации

Предусмотрены три предопределенные процедуры, которые вызываются в процессе конвертации:

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

Процедуры ПОД

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

ДобавитьПОД_<ИмяПОД>. Набор процедур, которые наполняют таблицу ПОД правилами для конкретных объектов. Количество таких процедур соответствует количеству ПОД, предусмотренных для данной конвертации в программе «Конвертация данных», редакция 3.0. Параметры: ПравилаОбработкиДанных (таблица значений, инициализированная в рамках выполнения сеанса обмена).

ПОД_<ИмяПОД>_ПриОбработке. Процедура содержит текст обработчика ПриОбработке для конкретного ПОД. Обработчик предназначен для реализации логики конвертации на уровне объектов. Например, назначить конкретному объекту определенное ПКО в зависимости от содержимого объекта. Параметры:

  • ДанныеИБлибо ДанныеXDTO (в зависимости от направления обмена):
  • при отправке – объект (СправочникОбъект,ДокументОбъект);
  • при получении – структуру с описанием объекта XDTO.
  • ИспользованиеПКО. Тип –Структура. Ключ содержит строку с именем ПКО, а значение типа Булево (Истина – ПКО используется, Ложь – ПКО не используется).
  • КомпонентыОбмена.

ПОД_<ИмяПОД>_ВыборкаДанных. Функция содержит текст обработчика ПриВыгрузке. Обработчик предназначен для реализации произвольного алгоритма выборки объектов, подлежащих выгрузке. Возвращаемое значение: массив объектов, подлежащих выгрузке. В массиве могут содержаться как ссылки на объекты информационной базы, так и структура с данными для выгрузки. Параметры: КомпонентыОбмена.

Процедуры ПКО

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

ДобавитьПКО_<ИмяПКО>. Набор процедур, которые наполняют таблицу ПКО правилами для конкретных объектов. Количество таких процедур соответствует количеству ПКО, предусмотренных для данной конвертации в программе «Конвертация данных», редакция 3.0. Параметры: ПравилаКонвертации (таблица значений, инициализированная в рамках выполнения сеанса обмена).

ПКО_<ИмяПКО>_ПриОтправкеДанных. Процедура содержит текст обработчика ПриОтправке для конкретного ПКО. Обработчик используется при выгрузке данных. Предназначен для реализации логики конвертации данных, содержащихся в объекте информационной базы, в описание объекта XDTO. Параметры:

  • ДанныеИБ. Тип –СправочникОбъект, ДокументОбъект. Обрабатываемый объект информационной базы.
  • ДанныеXDTO. Тип –Структура. Предназначен для доступа к данным объекта XDTO.
  • КомпонентыОбмена.
  • СтекВыгрузки. Тип –Массив. Содержит ссылки на выгружаемые объекты с учетом вложенности.

ПКО_<ИмяПКО>_ПриКонвертацииДанныхXDTO. Процедура содержит текст обработчика ПриКонвертацииДанныхXDTO для конкретного ПКО. Обработчик используется при загрузке данных. Предназначен для реализации произвольной логики конвертации данных XDTO. Параметры:

  • ДанныеXDTO. Тип –Структура. Свойства объекта XDTO, прошедшие предварительную обработку для упрощения доступа к ним.
  • ПолученныеДанные. Тип –СправочникОбъект, ДокументОбъект. Объект информационной базы, сформированный путем конвертации данных XDTO. Не записан в информационную базу.
  • КомпонентыОбмена.

ПКО_<ИмяПКО>_ПередЗаписьюПолученныхДанных. Процедура содержит текст обработчика ПередЗаписьюПолученныхДанных для конкретного ПКО. Обработчик используется при загрузке данных. Предназначена для реализации дополнительной логики, которую необходимо выполнить перед записью объекта в информационную базу. Например, нужно ли загрузить изменения в существующие данные ИБ либо следует загрузить их как новые данные. Параметры:

  • ПолученныеДанные. Тип –СправочникОбъект, ДокументОбъект. Элемент данных, сформированный путем конвертации данных XDTO.

Записывается в случае, если эти данные являются для информационной базы новыми (параметр ДанныеИБ содержит значение Неопределено).

В противном случае ПолученныеДанные замещают собой ДанныеИБ (все свойства из ПолученныеДанные переносятся в ДанныеИБ).

Если стандартное замещение данных ИБ полученными данными не требуется, следует прописать свою логику переноса, после чего установить параметру ПолученныеДанные значение Неопределено:

  • ДанныеИБ. Тип –СправочникОбъект, ДокументОбъект. Элемент данных информационной базы, соответствующий полученным данным. Если соответствующие данные не найдены, содержит Неопределено.
  • КонвертацияСвойств. Тип –Таблица значений. Содержит правила конвертации свойств текущего объекта, инициализированные в рамках выполнения сеанса обмена.
  • КомпонентыОбмена.

Процедуры ПКПД

ЗаполнитьПравилаКонвертацииПредопределенныхДанных. Экспортная процедура, в которой располагается логика заполнения правил конвертации предопределенных данных. Параметры: НаправлениеОбмена, ПравилаКонвертации (таблица значений, инициализированная в рамках выполнения сеанса обмена).

Алгоритмы

В программе «Конвертация данных», редакция 3.0 есть возможность создавать произвольные алгоритмы, которые вызываются из обработчиков ПОД и ПКПД. Наименование, параметры и содержимое алгоритмов определяются при разработке правил.

Параметры

ЗаполнитьПараметрыКонвертации. Экспортная процедура, в которой происходит заполнение структуры с параметрами конвертации. Параметры: ПараметрыКонвертации (тип – Структура).

Процедуры и функции общего назначения

ВыполнитьПроцедуруМодуляМенеджера. Параметры: ИмяПроцедуры (строка), Параметры (структура). Экспортная процедура, которая предназначена для вызова неэкспортной процедуры модуля, имя и параметры которой получены на вход. Позволяет выполнить вызов процедуры или функции по строке без использования метода Выполнить.

ВыполнитьФункциюМодуляМенеджера. Параметры: ИмяПроцедуры (строка), Параметры (структура). Функция, назначение аналогично ВыполнитьПроцедуруМодуляМенеджера. Отличие в том, что она вызывает функцию и возвращает ее значение.

В этой статье опишу свой, пока небольшой, опыт организации обмена данными через универсальный формат EnterpriseData.

В моём случае обмен настраивается между конфигурациями "Управление торговлей 11.2" (далее УТ) и "Бухгалтерия предприятия 3.0.43" (далее БП). Обмен односторонний, из УТ в БП. До обновления "Управление торговлей 11.1" на версию "11.2" обмен данными был настроен с помощью конфигурации "Конвертация данных 2.0". Однако после перехода на "11.2" в "Управление торговлей" появились ошибки при работе пользователей. Процедура обновления правил обмена была проведена, но результата это не дало. Отладчик показывал, что проблема в обмене данными. Было решено удалить настройку обмена данными в обеих конфигурациях и настроить заново.

И "Управление торговлей", и "Бухгалтерия предприятия" у нас работают в клиент-серверном варианте. Настройку синхронизации я начал с УТ. Выполнил её таким образом, чтобы данные выгружались из УТ в файл. То есть синхронизация через сетевой каталог. В БП настроил обмен таким образом, чтобы из БП никакие данные не выгружались.

Далее запустил синхронизацию на стороне УТ. Выгрузка данных не произошла. В журнале регистрации появились ошибки:

Ошибка при вызове метода контекста (Проверить): Ошибка проверки данных XDTO:
Структура объекта '/БанковскийСчетКонтрагента/Банк' не соответствует типу: КлючевыеСвойстваБанк
Проверка свойства 'БИК':
форма: Элемент
имя: БИК
тип:
Отсутствует обязательное свойство
Объект: ДоговорСКонтрагентом № .

Повторил попытку синхронизировать данные из УТ. На этот раз данные успешно выгрузились. В сетевой папке сформировался XML файл, содержащий данные для переноса из УТ в БП.

Событие: Обмен данными
: Аварийно завершился рабочий процесс фонового задания
ВызватьИсключение(ТекстОшибки);

Чтобы локализовать ошибку, попробовал изменять настройки синхронизации и вараанты работы базы БП. В итоге, когда я перевёл базу в файловый вариант, система отработала адекватно: открылась форма сопоставления двух баз. После сопоставления объектов начальная синхронизация прошла успешно. Затем я снова перевёл базу в клиент-серверный вариант.

При дальнейшей "обкатке" синхронизации, потребовалось внести кое-какие изменения в правила конвертации объектов. Настало время воспользоваться конфигурацией "Конвертация данных 3.0". Во встроенной справке конфигурации описан порядок работы. Также помогли статьи на сайте ИТС.

В итоге я загрузил в "Конвертация данных 3.0" следующие данные:

  • Тексты общего модуля "МенеджерОбменаДаннымиЧерезУниверсальныйФормат" из двух баз
  • Схема обеих баз
  • Описание формата EnterpriseData (из одной любой базы)
  • Правила конвертации

После загрузки открыл в "Конвертация данных 3.0" правила конвертации данных, объектов, свойств. Внёс необходимые мне правки. Затем воспользовался кнопкой "Выгрузить модуль менеджера обмена". Текст модуля скопировался в буфер обмена. Осталось только вставить его в конфигурацию.

Поэксперементировав с настройкой правил в "Конвертация данных 3.0", я для себя заключил, что в случае, когда вносимые правки незначительны, проще настраивать правила непосредственно в конфигурациях УТ и БП, в общем модуле "МенеджерОбменаДаннымиЧерезУниверсальныйФормат". Если же правки серъёзные, такие как, например, добавление нового объекта в обмен, тогда стоит воспользоваться конфигурацией " Конвертация данных 3.0".

Задачу по добавлению документа "Заказ поставщику" в план обмена я выполнял с помощью " Конвертация данных 3.0". В стандартном варианте УТ - БП этого документа в плане обмена нет.

Будем помнить, что правила регистрации объектов для выгрузки попрежнему настраиваются в конфигурации "Конвертация данных 2.0".

Вот такие первые впечатления о синхронизации данных через универсальный формат EnterpriseData.

В статье описан порядок действий при подключении нетиповых документов к механизму «Синхронизация данных через универсальный формат» (КД 3.0).

В контексте данной статьи термин «нетиповой» означает, что документ не описан ни в одном из XDTO-пакетов механизма «Синхронизация данных через универсальный формат».

Если же документ описан в типовом XDTO-пакете, то порядок его подключения к обмену можно посмотреть в статье «Обмен через универсальный формат (КД 3.0): подключение типового документа».

1. Зачем изменять типовой XDTO-пакет?

Основной смысл технологии КД 3.0 (обмен через универсальный формат) – это добиться «универсальности» правил обмена, чтобы правила выгрузки/загрузки объектов не зависели от того, какая конфигурация (или ее релиз) находятся на том «конце провода». И если мы корректируем типовой XDTO-пакет, то мы эту «универсальность» разрушаем.

Но в полной мере преимуществом «универсальности» может воспользоваться только сама 1С (и ее партнеры – разработчики конфигураций), которая таким образом упрощает себе процедуры обновления правил обмена при переходе от одного релиза типовых конфигураций 1С 8.3 к другим, а также упрощает подключения к обменам новых конфигураций.

На стороне пользователя выгоды от «универсальности» гораздо меньше, ведь он работает с конкретной конфигурацией-источником и конкретной конфигурацией-приемником. Все изменения правил обмена между этими конфигурациями (в т.ч. структура XDTO-пакетов) согласованы внутри его «корпорации». А то, что его правила обмена становятся несовместимы с правилами обмена, принятыми в других «корпорациях», его в большинстве случаев не волнует. Поэтому изменить структуру XDTO-пакета обычно некритично.

Более того, если речь идет о добавлении в обмен новых объектов, то технически это проще сделать через технологию КД 2.0:

· Там нужно писать всего один комплект правил обмена вместо двух для КД 3.0.

· Включение в обмен КД 3.0 промежуточного «универсального формата» сильно повышает уровень абстракции (он уже не связан напрямую с прикладной областью) и избыточности (он же «универсальный»). А это, в свою очередь, повышает требования к квалификации специалистов, которые этот обмен будут настраивать.

Но в последних конфигурациях 1С продвигается обмен именно по технологии КД 3.0. И чтобы для своих нетиповых объектов не строить параллельно еще и второй механизм обмена (на КД 2.0), приходится корректировать типовые XDTO-пакеты.

Есть описания примеров, когда для нетиповых объектов создаются отдельные XDTO-пакеты, а для работы с ними в 1С запускается отдельная 1С 8.3 XDTO-фабрика. Но это опять-таки – построение параллельного механизма обмена (два механизма на КД 3.0), а этого хочется избежать.

Итак, если мы хотим остаться внутри единого механизма «Синхронизация данных через универсальный формат», и для нас некритичен факт изменения типового XDTO-пакета, то изменим типовой XDTO-пакет.

2. Образцы описания документа в XDTO-пакете

Объекты обмена, которые включены в состав механизма «Синхронизация данных через универсальный формат», описаны в XDTO-пакетах, наименования которых начинаются с «EnterpriseData». Например, EnterpriseData_1_2_3 … EnterpriseData_1_6_20, где 1_2, … 1_6 – это номера «версий форматов».


Добавлять описание своего объекта необязательно во все XDTO-пакеты EnterpriseData_1_2_3 … EnterpriseData_1_6_20. Достаточно это сделать только для того номера версии формата, на котором обмениваются наши конкретные конфигурации. Узнать его можно в настройках синхронизации данных.



Т.е. в нашем примере достаточно скорректировать пакет EnterpriseData_1_5_20.

Корректировать XDTO-пакет можно либо вручную, либо с использованием специализированного редактора.

Посмотрим на образец описания документа. В примере добавляем описание нетипового документа «экзРапортФ114». Вносим описание типа значения:



Вносим описание его структуры (реквизиты шапки, в т.ч. ключевые свойства, табличную часть «Сырье» и реквизиты строки табличной части:



Такую настройку необходимо выполнить в обеих обменивающихся конфигурациях. Поскольку одноименные XDTO-пакеты во всех конфигурациях одинаковы, то настройку достаточно произвести в одной из них, а во вторую – перенести настройки через «сравнение и объединение».

3. Обновление 1С 8.3 записей регистра сведений НастройкиОбменаДаннымиXDTO

После добавления описания документа в XDTO-пакет есть один тонкий момент. Даже если Вы включили свой документ (в примере - это «экзРапортФ114» синоним «Рапорт на выработку комбикорма») в состав плана обмена «СинхронизацияДанныхЧерезУниверсальныйФормат», и он появится на форме регистрации изменений, этот документ еще не включен в механизм обмена. Об этом свидетельствует его отсутствие на ветке «AvailableObjectTypes» файла обмена.




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

А) Из состава XDTO-пакет при первичной настройке плана обмена à определяются объекты, которые «в принципе могут обмениваться».

Б) При анализе правил обмена текущей конфигурации à уточняется перечень объектов, доступных на «прием» и «отправку» относительно текущей базы.

В) При анализе ветки AvailableObjectTypes полученного файла обмена от конфигурации-корреспондента à уточняется перечень объектов, доступных на «прием» и «отправку» относительно конфигурации-корреспондента.

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

Для того, чтобы выполнить п.Б и п.В достаточно настроить правила обмена (инструкции и примеры можно найти в интернете оп запросу «1С:Конвертация данных 3»).

А вот с п.А сложнее. Как уже сказано, он выполняется при первичной настройке плана обмена 1С 8.3. Когда Вы добавляете свой объект, как правило, первичная настройка обмена уже произведена. Как быть?

Можно, например, в настройку синхронизации добавить команду «Обновить настройку синхронизации», которая перечитывает состав XDTO-пакетов. Текст модуля этой команды приведен в прил.1.



Данную команду необходимо настроить и выполнить в обеих обменивающих конфигурациях.

После того как Вы включили свой нетиповой документ в состав «доступных объектов», в т.ч. выполнили настройку правил обмена, Ваш документ появится на ветке AvailableObjectTypes.

В примере выполняется односторонний обмен документом «экзРапортФ114» из конфигурации Бухгалтерия 3.0 в конфигурацию «1С:ERP Управление предприятием 2». Поэтому в файле, выгруженном из «1С:Бухгалтерия 3.0» документ прописан на ветке «Sending».


А в файле, выгруженном из «1С:ERP Управление предприятием 2», документ прописан на ветке «Receiving»/



Нетиповой документ готов к обмену через типовой механизм.

Если документ не описан в XDTO-пакете, то для его включения в обмен посредством механизма «Синхронизация данных через универсальный формат» необходимо выполнить следующие процедуры:

1. Описать документ в XDTO-пакете обеих обменивающихся конфигураций.

2. Обновить записи регистра сведений НастройкиОбменаДаннымиXDTO обеих обменивающихся баз.

3. Выполнить действия для «типовых» документов (см. статью «Обмен через универсальный формат (КД 3.0): подключение типового документа», - ссылка в начале):

a. В конфигурации-источнике подключить документ в состав плана обмена «СинхронизацияДанныхЧерезУниверсальныйФормат».

b. Настроить правила обмена (КД 3.0) в обеих конфигурациях

Данный способ универсален и пригоден для любых конфигураций и любых видов объектов (Документов, Справочников и т.п.).

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

Правила Выгрузки данных

1. Порядок правил выгрузки данных

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

Пример: Нужно выгрузить два справочника Пользователи и Физические лица. Справочник Пользователи имеет реквизит Физ. лицо - ссылка на справочник Физические лица. То есть справочник Пользователи ссылается на справочник Физические лица. Рекомендуемая последовательность правил выгрузки в этом случае: Физические лица, пользователи.

2. Выбирать данные для выгрузки одним запросом

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

Правила Конвертации объектов

3. Использовать быстрый поиск при загрузке

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

Пример: Справочник Пользователи. Практически все документы имеют ссылку на этот справочник и количество элементов справочника не превосходит 1000.

4. Не выгружать объекты свойств по ссылкам

Режим позволяет для правила конвертации объектов не выгружать все элементы на которые есть ссылки. Если режим установлен, то при выгрузке будет выгружен сам объект и информация для поиска всех его ссылок, но полная информация о зависимых элементах выгружена не будет. Эта оптимизация может в несколько раз ускорить выгрузку и загрузку данных.

5. Не запоминать выгруженные объекты

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

6. Не делать общих обработчиков событий для всех объектов

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

Обработка "Универсальный обмен данными XML"

7. Использовать оптимизированный формат для обмена данными

8. Загружать данные в режиме обмена

Позволяет отказать от излишних проверок на этапе загрузки данных

9. Записывать только измененные объекты

Позволяет производить запись только измененных объектов в информационную базу. Если объект изменен не был, то при загрузке из файла обмена он не будет перезаписан.

10. Оптимизированная запись объектов

Режим позволяет резко сократить количество обращений в информационной базе для записи объектов.

11. Записывать регистры наборами записей

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

12. Обмен данными через COM

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

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Читайте также: