“1С” предлагает формат EnterpriseData для обмена бизнес-данными. Обмен через универсальный формат Принятые сокращения в этой публикации

Интернет

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

Обмен данными будем настраивать односторонний , из УТ ---> БП. Также возможно настроить двухсторонний обмен, но на практике это не так часто требуется, поэтому в нашем примере мы его рассматривать не будем.

Подготовительные действия для настройки обмена в БП

Давайте приступим к настройке синхронизации, сначала зайдем в базу 1С "Бухгалтерия предприятия 3.0" (приемник), нам необходимо проверить включена ли синхронизация для этой базы, для того чтобы это сделать нам нужно сначала зайти в базу. Как только база откроется переходим на вкладку "Администрирование" ---> "Настройки синхронизации данных"


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

Продолжаем настройку синхронизации данных в УТ


После того как мы сделали все необходимые действия в базе приемнике (БП 3.0), для продолжения настройки обмена данными нам необходимо открыть базу источник (УТ 11.1). Заходим на вкладку "Администрирование", слева в меню выбираем пункт "Настройки синхронизации данных" . Если синхронизация не включена, то включаем ее с помощью флажка, также не забываем указать префикс базы источника. Как только мы выполнили все пункты 1-4 как показано на изображении ниже, необходимо нажать на гиперссылку "Синхронизация данных" (пункт 5).


В новом отобразившемся окне необходимо нажать на зеленый плюсик (Настроить синхронизацию данных), в выпавшем меню выбираем пункт "Бухгалтерия предприятия 3.0".

Настройка важных моментов в обмене данными между УТ и БП


Теперь мы видим окно с настройкой синхронизации данных в 1С, выбираем пункт "Указать настройки вручную" и жмем "Далее".


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


На следующей странице мы должны заполнить правила отправки и получения данных из конфигурации БП 3.0 (приемник). Жмем "изменить правила выгрузки данных".


Перед нами открылось окно "Правила отправки данных", в нем мы задаем следующие параметры:

  • Какая НСИ будет отправляться (в нашем примере нас интересуют только документы и НСИ используемая в них, поэтому мы бырали соответствующий пункт, если выбрать первый пункт "Отправлять всю" то вместе с документами будут перегружаться и все справочники, зачастую если информация не используется в документах то она бесполезна для приемника, ведь она никак не влияет на учет)
  • С какой даты отправлять всю информацию (ручную синхронизацию мы в этой статье рассматривать не будем)
  • По какой или каким организациям выполнять отправку данных (в нашем примере мы выбрали одну организацию ИП "Предприниматель")
  • Правила формирования договоров
  • Обобщенный склад
  • Сворачивать ли документы по складу

После того как мы сделали настройки нажимаем "Записать и закрыть".


Поскольку в нашем примере мы настраиваем и пользуемся односторонним обменом, из УТ в БП , то настройки правил получения данных из "Бухгалтерии предприятия 3.0" нас не интересуют, поэтому жмем "Далее".


В новом окне нам предлагается настроить правила для базы приемника (БП). В пункте 1 называем обзываем как-нибудь нашу базу, задаем ей префикс. ПРЕФИКС должен быть таким же каким мы его задавали в самой базе БП в начале этой статьи, если префиксфы будут отличаться синхронизация данных в программе 1С работать не будет. После этого жмем пункт 2, а потом пункт 3.



В пункте 3 нам необходимо разрешить проведение документов при их загрузке в базу. Нажимаем "Записать и закрыть".


Теперь окно должно иметь примерно такой вид как показано ниже, жмем "Далее".


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


На следующем шаге программа предложит выполнить синхронизацию сразу после создания настройки обмена данными . Согласимся с этим и нажмем "Готово".

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

Давайте рассмотрим пример, допустим в УТ есть контрагент с наименованием "ООО ФармГрупп" и ИНН 1234567, а в БП также есть контрагент с ИНН 1234567, но наименованием "ФармГрупп", если мы при сопоставлении данных на этапе синхронизации не сопоставить эти два объекта, то после синхронизации в приемнике (Бухгалетрия предприятия 3.0) мы будем иметь два контрагента с ИНН 1234567 и двумя наименованиями "ООО ФармГрупп" и "ФармГрупп" соответственно. Для того чтобы не возникало подобных ситуаций и был изобретен механизм сопоставления объектов.


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

Заключительный этап выполнения обмена данными между 1С


На заключительном этапе программа отобразит следующее окно, в нем пользователя проинформируют о том, что синхронизация была проведена успешно, жмем "Готово". На этом синхронизация между базами в одностороннем обмене из "Управлении торговлей 11.1" (УТ) в "Бухгалтерию предприятия 3.0" (БП) завершена.

И показываем, как с ее помощью СИЛЬНО упростить решение своих задач

Сегодня мы разберем, как буквально за 10-15 минут настроить и сделать простой перенос справочников и начальных остатков.

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

Поэтому позовите коллег, им это будет тоже очень полезно.

Особенно, если они уже видели КД 3 и успели испугаться:)

Да, когда ее видишь в первый раз – там вообще ни фига не понятно.

Но на самом деле – все ОЧЕНЬ просто. Настолько просто, что вам потом даже скучно будет:)

Что конкретно в сегодняшних видео

Это 4 видео по обмену данными через универсальный формат обмена EnterpriseData .

Кроме того, мы покажем пример доработки типовых правил обмена в 1С:Конвертации данных 3.0

Общая длительность – 34 минуты . Содержание:

  • Настройка обмена на примере 1С:Бухгалтерии 8 и 1C:ERP
  • Как сделать загрузку типовых правил и универсального формата обмена в Конвертации Данных 3.0
  • Перенос структуры метаданных в КД 3.0
  • Как выполнить первый обмен данными
  • Доработка правил конвертации
  • Как загрузить новые правила без изменения конфигурации (без снятия с поддержки )

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

Если бы подобная задача решалась в Конвертации данных 2.0, то изменения пришлось бы вносить в правилах и источника, и приемника.

Данные видеоуроки актуальны для БСП редакции 2.3.2 (для любой сборки старше 2.3.2.43).

Если Вы используете более старшую версию БСП,0 сделайте «поправку» на изменившийся интерфейс и расширенную функциональность. Для этого самостоятельно повторите пример из видео.

Видео 1:
Загрузка правил обмена между типовыми конфигурациями в Конвертацию данных 3.0

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

  • Загрузка в КД структуры формата обмена (
  • Создание конвертации
  • Выгрузка файлов правил из типовой конфигурации
  • Выгрузка модуля менеджера обмена

Видео 2:
Доработка правил обмена в КД 3.0

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

Будет решена задача – при загрузке объектов из конфигурации-источника устанавливать комментарий “Загружено из БП 3.0”.

Для решения задачи потребуется внести изменения в правилах конвертации объектов , в событии “Перед записью полученных данных”.

Разработанные правила будут сохранены в виде внешней обработки для дальнейшего использования.

Видео 3:
Настройка универсального обмена между типовыми конфигурациями

В этом уроке мы покажем, как настраивать новый обмен между типовыми.

Настройки будут сделаны в конфигурации-источнике и затем загружены в конфигурацию-приемник.

Также в этом видео мы покажем, как без изменения конфигурации подгрузить новые правила обмена.

Видео 4:
Перенос начальных остатков с помощью правил обмена

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

P.S.

Да, обмены через txt / dbf / ole и т.д. имеют право на существование. В каких-то специальных случаях, типа стыковки с веб-сервером или переноса из готового формата внешнего приложения.

Однако для стандартных обменов – стандартные методы и быстрее, и сильно проще.

А если кто-то изобретает велосипед, когда есть готовое универсальное решение – это как написать себе на лбу “инструментом не владею, изучать не хочу, буду строить костыли за ваши деньги” .

P.P.S.

Мы хотим показать, что Конвертация Данных 3.0 – это не сложно.

Непривычно – да. Не все сразу понятно – да. Есть очень неоднозначные моменты – да.

Но с помощью готовых инструкций и видео ее можно освоить буквально за 1-2 недели.

27.08.2015

Фирма "1С" выпустила первую версию нового формата обмена бизнес-данными EnterpriseData, базирующегося на XML. Формат позволяет эффективно организовать обмен данными между разнородными системами автоматизации бизнеса, использующимися в компании, независимо от того, кто является их разработчиком и для каких сфер деятельности они предназначены.

Выпуск стандарта стал для фирмы "1С" очередным шагом на пути повышения открытости своих продуктов для интеграции с ПО сторонних производителей. Фирма "1С" всегда уделяла особое внимание этому направлению. Продукты "1С" поддерживают формат CommerceML , используемый для обмена коммерческой информацией в формате XML. Заслуживает отдельного упоминания формат обмена финансовыми документами между системой "1С:Предприятие" и модулями систем дистанционного банковского обслуживания ("Клиент-банк"), разработанный фирмой "1С" совместно c ведущими разработчиками информационных банковских систем. Этот формат, который поддерживают на сегодня сотни российских банков (включая Сбербанк России, ВТБ 24, Газпромбанк, Россельхозбанк) стал, по сути, стандартом индустрии. Дальнейшее развитие это направление получило в технологии прямого обмена DirectBank , делающей взаимодействие с банком из 1С:Предприятие еще более удобным и безопасным.

При этом ранее форматы, поддерживаемые "1С", служили в основном для решения задач по обмену данными между разными организациями только в определенных областях деятельности (электронная коммерция, интеграция с банковскими системами). Теперь новый формат EnterpriseData покрывает все сферы деятельности предприятия - финансы, производство, закупки и продажи, складские операции и т.п. Первая версия формата включает в себя описание 94 типов документов из различных областей бизнеса. Формат является расширяемым, фирма "1С" будет добавлять в него новые документы и детализировать существующие.

Формат рекомендован к использованию при интеграции сторонних приложений с программами "1С". Также формат может использоваться для обмена информацией между любыми другими информационными системами: он не зависит от особенностей программного обеспечения или структур информационных баз, которые участвуют в обмене и не содержит в себе явных ограничений использования.

В настоящее время формат Enterprise Data уже применяется для синхронизации данных между программными продуктами самой фирмы "1С", он поддерживается в продуктах:

  • 1C:ERP Управление предприятием 2.0
  • 1С:Бухгалтерия 8, редакция 3.0
  • 1С:Бухгалтерия 8 КОРП, редакция 3.0
  • 1С:Розница, редакция 2.0
  • 1С:Управление торговлей, редакция 11

Одним из наиболее распространенных случаев интеграции продуктов "1С" является тандем "1С:Бухгалтерия" - "1С:Управление торговлей"; эти два популярных продукта компании обмениваются 73 типами документов в формате EnterpriseData, что позволяет поддерживать их данные в актуальном, синхронизированном между собой состоянии. Разработчики фирмы "1С" отмечают, что принятие формата EnterpriseData позволило повысить качество и скорость разработки прикладных решений системы "1С:Предприятие" за счет унификации кода.

Для сторонних продуктов, интегрирующихся с продуктами "1С", использование формата позволит снизить как объем разработки, так и трудозатраты на внедрение и поддержку систем. Раньше, когда каждый продукт поддерживал свой формат обмена данными, при наличии в системе обмена данными N продуктов добавление нового продукта требовало 2*N изменений (см рис.1); каждый существующий продукт нуждался в изменениях, чтобы поддержать импорт данных из нового продукта, и новый продукт должен был поддержать импорт данных из существующих продуктов. После введения единого формата добавление нового продукта потребует лишь реализации в нем импорта и экспорта в формате EnterpriseData и не вызовет изменений в существующих продуктах.

Рисунок 1 Обмен данными в отсутствие единого формата

Рисунок 2 Обмен данными через формат EnterpriseData

Формат поддерживает совместимость "снизу вверх" - все программы сторонних производителей, обменивающихся данными в формате EnterpriseData с ПО фирмы "1С", при выходе новых версий формата продолжат работу.

  • для интеграции собственных разработок на платформе "1С:Предприятие" (как заказных, так и тиражных) с типовыми решениями 1С
  • для интеграции других (не-1С) систем с решениями на платформе 1С:Предприятие
  • для организации взаимодействия других (не-1С) систем между собой.

Цель данной статьи - ответить на первые вопросы по КД3 и на простом примере показать как доработать типовые правила. Информация полезна начинающим и тем, кто уже приступил к освоению и появились новые вопросы.

Принятые сокращения в этой публикации

КД2 - конфигурация Конвертация данных, редакция 2.0.
КД3 - конфигурация Конвертация данных, редакция 3.0, конфигурация 3.0.5.3.
ED - универсальный формат обмена EnterpriseData.

Ответы на вопросы после поверхностного знакомства с КД3. Если Вы знаете зачем нужна КД3 можно не читать этот абзац;)

Вопросы и ответы

  • КД3 это новая версия КД2? Нет! Это другой инструмент, который решает аналогичные КД2 задачи. Каждому инструменту своё применение.
  • КД3 лучше КД2? Их нельзя сравнивать, т.к. это разные инструменты и у каждого есть свои плюсы и минусы.
  • Для изменения правил обмена КД3 нужно снимать конфигурацию с поддержки? Нет НЕ нужно снимать с поддержки! В типовых конфигурациях можно штатно подключить внешнюю обработку с правилами, а на конфигурациях поддерживающих платформу 8.3.10 и выше можно редактировать правила с помощью расширения.
  • Нужно перенести данные из конфигураций собственного изготовления. Для целей изучения можно воспользоваться КД3? Если Вы задаёте этот вопрос, скорее всего нельзя. Для КД3 в составе конфигурации должна быть БСП 2.3 и выше с синхронизацией через универсальный формат. КД2 вам подойдёт 100%, КД3 под вопросом.
  • Можно ли использовать КД3 для типовых доработанных конфигураций? Да, можно. Если ваши нетиповые данные можно передать используя ED или реквизит AdditionalInfo, то хорошо. Иначе есть вариант изменения формата обмена (XML схемы). В этом случае возможности КД3 почти сравняются с КД2, но пропадёт основной плюс КД3 - универсальность формата обмена.
  • Конфигурации, поддерживающие ED, могут обмениваться между собой? Да! Но для обмена БП 3.0 - БП 3.0 при создании синхронизации нельзя выбрать БП 3.0. Ничего страшного, выбирайте «Другая программа». Если нужен разовый обмен, достаточно воспользоваться обработкой «Выгрузка загрузка EnterpriseData» в меню Все функции.
  • После обновления конфигурации нужно загрузить свежие правила из комплекта поставки? Нет! Правила содержаться в модуле конфигурации. Для обмена с другими базами 1С не требуется загружать правила другой базы. Почему? Подробности в этой статье.
  • После обновления одной базы необходимо привести в актуальное состояние другую базу, участвующую в обмене? Нет! Не требуется синхронно обновлять все базы, участвующие в обмене. Это один из плюсов КД3.
  • Наши конфигурации сильно доработаны, там новые виды документов и справочников, КД3 может их перенести? Есть вероятность, что без изменения формата не сможет. Это один из "минусов" КД3 по сравнению с КД2.

Зачем тогда нужна КД3? Плюсы и минусы

Плюсы КД3

Рассмотрим основной плюс КД3 на примере часто встречающейся задачи. Есть конфигурация УТ 11.3, которая не обновляется по каким либо причинам. Необходимо организовать обмен с БП 3.0, которая постоянно обновляется до актуального релиза.

Нет проблем.

  • Универсальный формат обмена, который используется в КД3 предназначен для решения подобных задач.
  • Правила обмена в УТ создаются не для обмена с БП а для обмена с универсальным форматом EnterpriseData.
  • Если оперировать понятиями КД2, то УТ обменивается с конфигурацией ED, которая не меняется. БП 3.0 тоже обменивается с ED.

У каждой конфигурации свои правила обмена с ED. Таким образом УТ выгружает данные всегда в один и тот же формат. Конфигурация БП 3.0, какая бы она новая не была должна уметь принимать данные из этого формата.

Получается что в УТ не нужно заботится о том, что БП поменяются какие-то реквизиты. Задача простая - выгрузить в ED, а конфигурация БП должна уметь принять данные из этого формата.

  • В связи с тем, что конфигурация источник выгружает всегда в одном формате, любая конфигурация приемник может загрузить в себя данные из этого универсального формата.
    Т.е. для произвольной комбинации обменов УТ - БП, УТ - КА, УТ - ERP, КА- БП, ERP - БП. не нужно писать индивидуальные правила. В КД3 правила универсальны. Любая конфигурация, поддерживающая обмен в универсальном формате может обмениваться с любой конфигурацией, поддерживающей формат ED.

Отладка алгоритмов и правил доступна в самой конфигурации, т.к. все правила это код общего модуля или внешней обработки. Можно обойтись без КД3 для оперативного исправления ошибки.

Минусы КД2

Правила обмена индивидуальны для каждой пары конфигураций. Для всех вышеперечисленных комбинаций обмена между разными видами конфигураций и разными версиями конфигураций нужны свои правила обмена. Поэтому для решения вышеозвученной задачи обмена УТ 11.3 и БП 3.0 потребуется почти после каждого обновления БП 3.0 отлаживать и дорабатывать правила обмена.

Отладка алгоритмов и правил затруднена для начинающего программиста или для того, кто редко сталкивается с этой задачей. Правила хранятся в xml файле. Быстрое исправление ошибки недоступно. Необходимо загрузить правила в КД2, исправить и выгрузить обратно.

Минусы КД3

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

Для осуществления синхронизации в формате ED конфигурация должна поддерживать эти механизмы. Всё это есть в БСП 2.3 и выше. Это не совсем минус, это скорее особенность.

Основной плюс немного меркнет из-за ограниченных сроков поддержки формата. Это уже ощутили на себе пользователи УТ 11.1, УТ 11.2, которые обмениваются с БП 3.0. Сроки поддержки указаны по этой ссылке . Там сказано, что минимальный гарантированный срок поддержки формата составляет год, фактически около 3-х лет. Таким образом если Вы настроите синхронизацию сегодня, то минимум год можно не обновлять базу УТ 11, а потом либо обновить конфигурацию, либо просто добавить новый формат, внести небольшое изменение в БСП и в правила при необходимости. Как это сделать? Будет указано позднее в этой статье.

Плюсы КД2

Возможности КД2 безграничны. Можно создать правила обмена для любых конфигураций на любой платформе. От 1С 7.7 до последней 8.3. От конфигурации ничего не требуется, БСП не обязательна. Правила могут быть созданы в автоматическом режиме и доработаны.

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

Надеюсь пришло понимание зачем нужна КД3, продолжаем по существу.

Принятые сокращения далее

БСП - Библиотека стандартных подсистем.
ПОД - правило обработки данных.
ПКО - правило конвертации объекта.
ПКПД - правило конвертации предопределенных данных.
ПКС - правило конвертации свойства.

Рассмотрим пример - необходимо изменить типовые правила обмена БП 3.0 и УТ 11.3

На желтом фоне указаны шаги из инструкции, которая открывается в КД3. Предложенная в этой статье последовательность шагов другая, чтобы не запутаться и сразу логически завершить начатое действие.

Как изменить правила ED?
  1. Доработать модуль с правилами обмена прямо в конфигурации. Этот вариант пока не рассматриваем, т.к. для понимания что и где нужно менять, необходимо хотя бы один раз сделать это в КД3. В этом случае будет проще в будущем оперативно решать проблемы, отлаживать в модуле и переносить в КД3 при необходимости.
  2. Воспользоваться КД3 .
    Как это делается в КД2? Выгружаем метаданные обеих конфигураций и загружаем в КД2.
    Шаг 1. Для КД3 делаем аналогично - в каждой конфигурации в режиме предприятия обработкой \tmplts\1c\Conversion\3_0_5_3\MD83Exp.epf выгружаем метаданные конфигураций,
    например, в папку «D:\Правила БП3\БП 3.0.54.15\ », имя файла «МД.xml ».

Непонятно с какой целью скрыты настройки этой обработки, в результате по умолчанию не выгружаются данные по регистрам сведений. Устраняем этот недочет.
В процедуре ИзменитьРежимОбработки() основной формы комментируем строку

// Элементы.Настройки.Видимость = Ложь;

Сохраняем обработку, открываем в режиме предприятия, ставим флаг на «Выгружать регистры сведений», выгружаем.

Шаг 3. Загружаем ранее созданный файл «МД.xml » в КД3, раздел флаг «В новую версию конфигурации ».

Т.к. в КД3 для обмена используется «промежуточная конфигурация» (ED), загружаем и её «метаданные», которые представляют собой XML схему, файл с расширением «xsd». Шаг 2. Взять её можно из конфигурации УТ 11 или БП 3.0. Они одинаковы. Открываем конфигурацию, в строке поиска вводим «enter », видим в дереве Общие - XDTO-пакеты примерно такие пакеты: EnterpriseData_1_3_8, EnterpriseData_1_4_4 и подобные.. Это версии формата 1.3 и 1.4 соответственно и 1.2, 1.1, 1.0 если есть. Правая кнопка мыши на пакете, в контекстном меню выбираем «».

Шаг 4. В КД3 раздел , выбираем ранее выгруженные файлы с расширением «xsd». Нужно выбирать один файл ! Множественный выбор совместно с ExchangeMessage не нужен ! Это предлагалось в старых инструкциях КД3 предыдущих версий. В последних КД3 этого не требуется.

После загрузки формата в разделе Формат данных - Дерево объектов формата , выберите версию формата. Если там есть документы и справочники, значит Вы загрузили правильный файл. Если нет, начните всё сначала с новой пустой КД3 и первым делом загрузите формат и проверьте дерево.

Этап 2. После загрузки метаданных в КД3 приступаем к загрузке типовых правил обмена.
Как это делается в КД2? Правила загружаются в конвертацию.
В КД3 почти так же. Выгружаем правила из типовой, создаём конвертацию, а потом загружаем в неё правила.

Выгрузка типовых правил из конфигурации для загрузки в КД3

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

Открываем конфигурацию БП 3.0 или УТ 11.3 в режиме конфигуратора, в строке поиска можно ввести «мен уни », открываем общий модуль . Если это БП 3.0, то открываем . В открытом модуле переходим в меню Файл - Сохранить копию , сохраняем файл с произвольным именем, например, «D:\Правила БП3\БП 3.0.54.15\Общий модуль МенеджерОбменаЧерезУниверсальныйФормат_ Модуль ».
Открываем конфигурацию БП 3.0 или УТ 11.3 в режиме предприятия, открываем обработку \tmplts\1c\Conversion\3_0_5_3\Выгрузка правил синхронизации.epf

Недостаток типовой обработки:

  • часто завершается с ошибкой;
  • выгружает правила из внешней обработки, подключенной к узлу, а нам нужны типовые правила;
  • не работает в БП 3.0.53 и выше.

Доработка модуля основной формы обработки. Вносим изменения в процедуры ПриСозданииНаСервере .

&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Список выбора версий формата. ВерсииФормата = Новый Соответствие; ОбменДаннымиПереопределяемый.ПриПолученииДоступныхВерсийФормата(ВерсииФормата); Для Каждого ПланОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(ПланОбмена) Тогда ВерсииФорматаПланаОбмена = Новый Соответствие; ВерсияБСП243 = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СтандартныеПодсистемыСервер.ВерсияБиблиотеки(), "2.4.3.1") >= 0; МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); Если ВерсияБСП243 Тогда ВерсииФорматаПланаОбмена = МодульОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ПланОбмена, "ВерсииФорматаОбмена"); Иначе ПланыОбмена[ПланОбмена].ПолучитьВерсииФорматаОбмена(ВерсииФорматаПланаОбмена); КонецЕсли; Для Каждого ВерсияПланаОбмена Из ВерсииФорматаПланаОбмена Цикл МодульМенеджера = ВерсииФормата.Получить(ВерсияПланаОбмена.Ключ); Если МодульМенеджера = Неопределено Или МодульМенеджера <> ВерсияПланаОбмена.Значение Тогда ВерсииФормата.Вставить(ВерсияПланаОбмена.Ключ, ВерсияПланаОбмена.Значение); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Для Каждого ВерсияФормата ИЗ ВерсииФормата Цикл Элементы.НомерВерсииФормата.СписокВыбора.Добавить(ВерсияФормата.Ключ); КонецЦикла; АдресХранилищаВерсииФормата = ПоместитьВоВременноеХранилище(ВерсииФормата, УникальныйИдентификатор); КонецПроцедуры

  • Выбираем «Номер версии формата», например, «1.3 »,
  • «Каталог обмена» - создадим папку, например, «»
  • Нажимаем кнопку «Выгрузить ».

Повторяем эти действия для других версий формата и сохраняем в соответствующие папки "1.4", "1.5" и т.п.. Для БП 3.0 достаточно выгрузить все форматы от 1.3 и выше. Для других конфигураций от 1.2 и выше.

Правила выгружены, теперь нужно загрузить их в КД3. В КД2 правила загружаются одновременно с созданием конвертации. В КД3 нужно создать конвертацию и загрузить в неё правила.
В КД3 Раздел Конвертации - Конвертации - Создать . . Выбираем конфигурацию. Для удобства можно изменить наименование конфигурации, перейдя в режим редактирования элемента. Например, вместо БухгалтерияПредприятия указать «БП 3.0.54.15 ». Реквизит Имя не нужно менять! Наименование конвертации можно указать таким же, например, «БП 3.0.54.15 ». В табличную часть выбираем поддерживаемые версии формата. Версии формата те, которые мы выгрузили из базы выше. Сохраняем конвертацию.

Переходим в раздел Конвертация - Загрузка правил синхронизации из файлов .
:

    Место загрузки: «В существующую конвертацию »

    Каталог обмена: «D:\Правила БП3\БП 3.0.54.15\1.3 »

  • Файл с модулем обмена: «D:\Правила БП3\БП 3.0.54.15\Общий модуль МенеджерОбменаЧерезУниверсальныйФормат13_ Модуль.txt »
  • Конвертация: «БП 3.0.54.15 »

При загрузке правил синхронизации из файлов для УТ 11.3 появляется ошибка "Поле объекта не обнаружено ". Причина - для ТекПКО.ИспользоватьДляПолучения=Ложь КД3 требует наличия информации по варианту идентификации при получении. Если в файле правил этого нет, возникает ошибка. Исправляем это недоразумение. Либо снимаем эту форму с поддержки, либо используем расширение.

// Основная форма обработки ЗагрузкаПравилСинхронизацииИзФайлов // До внесения изменений: // Процедура загружает правила конвертации объектов &НаСервере Процедура ЗагрузитьПКО() ... ЗаполнитьЗначенияСвойств(ТекПКО, СтруктураАтрибутов); // Вариант идентификации - особая логика. ТекПКО.ВариантИдентификации = Перечисления.ВариантыИдентификацииОбъектов[СтруктураАтрибутов.ВариантИдентификации]; ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда // Запись загруженного ПКО. ... // Изменения помечены "//ED" // Процедура загружает правила конвертации объектов &НаСервере Процедура ЗагрузитьПКО() ... ЗаполнитьЗначенияСвойств(ТекПКО, СтруктураАтрибутов); // Вариант идентификации - особая логика. Если ТекПКО.ИспользоватьДляПолучения Тогда //ED ТекПКО.ВариантИдентификации = Перечисления.ВариантыИдентификацииОбъектов[СтруктураАтрибутов.ВариантИдентификации]; КонецЕсли; ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда // Запись загруженного ПКО. ...

Нажимаем кнопку «Загрузить ». «Обработчики предназначены для другой конвертации: БП 3.0.44 (формат 1.4). Продолжить загрузку? » Нажимаем «Да ».
Не закрывая форму выбираем другой «Каталог обмена » и нажимаем кнопку « ». Повторяем несколько раз загрузку правил для каждого формата в текущую конвертацию.
После успешной загрузки переходим в раздел «Конвертации» - «Настройка правил конвертации », открываем нашу конвертацию из формы списка.
Если видим , ПОД и т.п., значит загрузка в КД3 удалась.

Проверка корректности загрузки правил

Это не обязательная операция! Если Вы будете использовать одну версию формата в правилах, добиваться идентичности текста модуля не требуется.

  • Открываем конфигуратор БП, создаём новую внешнюю обработку, например, Имя «СинхронизацияEDБП », синоним «Синхронизация ED БП 3.0 ».
  • В КД3 в форме «Настройка правил обмена » нажимаем кнопку «» и вставляем этот код из буфера обмена в нашу новую обработку.
  • В конфигураторе БП проверяем модуль на синтаксические ошибки. Сохраняем обработку.
  • создаём в БП ещё одну пустую обработку, например, Имя «СинхронизацияEDБПтиповая », синоним «Синхронизация ED БП 3.0 типовая ». Копируем текст общего модуля БП МенеджерОбменаЧерезУниверсальныйФормат13 в модуль обработки и сохраняем её.

Сравниваем обе обработки. Меню Файл - Сравнить файлы .

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

Аналогичным способом создаём в КД3 конвертацию для УТ 11.3.

БП 3.0.54.15

  • Замечена некорректная загрузка ПКО "Справочник_Пользователи ". Необходимо исправить . Должно .
  • В ПКО "Документ_ИнвентаризацияТоваров_Отправка " для ПКС "ОтветственноеЛицо " не указано ПКО. Откройте , перевыберите свойство конфигурации и свойство формата чтобы заполнился их тип, после чего будет доступен выбор в поле "Правило конвертации свойства ". Выберите "Справочник_ФизическиеЛица_Отправка ".

Рассмотрим пример доработки

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

Необходимо перенести реквизит "ВидНоменклатуры " справочника "Номенклатура", тип реквизита "Справочник.ВидыНоменклатуры ". Этот вид справочника не переносится типовыми правилами КД3 и не поддерживается форматом ED версии ниже 1.6.

Есть несколько вариантов решения подобной задачи

  • Доработка XDTO пакета , добавление в формат объекта "Справочник.ВидыНоменклатуры". В результате теряется основное преимущество универсального формата - он перестаёт быть универсальным. Доработка XDTO пакета потребуется во всех базах, участвующих в обмене.
  • Использовать свойство формата "ДополнительныеРеквизиты ", которое есть во многих объектах. Этот вариант рассматривать в данной статье не будем ввиду некоторой сложности. Примем к сведению что есть такой способ.
  • Реквизит AdditionalInfo. Он присутствует в шапке всех объектов формата. Тип anyType. Предназначен для подобных случаев. Воспользуемся им как самым простым способом.

Перед тем как приступить к доработке типовых правил, создадим в группе правил две группы «Добавлено », «Изменено ». Это делается в "Конвертации - ".
Новые ПОД, ПКО, Алгоритмы и т.п. будем создавать в группе «Добавлено», типовые объекты, в которые вносим изменения, переносим в группу «Изменено». Это облегчит последующую поддержку изменённых правил.

Итак, приступим.

Изменения правил в УТ 11.3

В КД3 в форме «УТ 11.3.4.12 Настройка правил обмена » на вкладке Алгоритмы создаём новый алгоритм

  • Имя алгоритма «AdditionalInfoВставить»
  • Группа: "Добавлено"

Параметры: «ДанныеXDTO, Имя, ДопЗначение»

Код алгоритма

Если ДанныеXDTO.Свойство("AdditionalInfo") И ТипЗнч(ДанныеXDTO.AdditionalInfo)=Тип("Структура") Тогда ДопДанные = ДанныеXDTO.AdditionalInfo; Иначе ДопДанные = Новый Структура; КонецЕсли; ДопДанные.Вставить(Имя, ДопЗначение); ДанныеXDTO.Вставить("AdditionalInfo", ДопДанные);

Сохраняем алгоритм и переходим на вкладку «Правила конвертации объектов »

По кнопке «Найти » ищем «Номенклатура», открываем ПКО «Справочник_Номенклатура_Отправка ». Переходим на вкладку «При отправке ». Там видим поле «Имя обработчика:» «». Можно прямо туда внести изменения.
Более сложный код, требующий отладки можно писать в конфигурации. Ищем в модуле обмена в УТ 11.3 процедуру с именем «ПКО_Справочник_Номенклатура_Отправка_ПриОтправкеДанных » и дорабатываем там.
Для переноса изменений из УТ 11.3 в КД3 копируем всю процедуру в буфер обмена, в КД3 в форме «Настройка правил обмена » нажимаем кнопку «».

Для нашего примера код такой

Если ЗначениеЗаполнено(ДанныеИБ.ВидНоменклатуры) Тогда //ED AdditionalInfoВставить(ДанныеXDTO, "ВидНоменклатуры", Строка(ДанныеИБ.ВидНоменклатуры.УникальныйИдентификатор())); AdditionalInfoВставить(ДанныеXDTO, "ВидНоменклатурыНаименование", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеИБ.ВидНоменклатуры, "Наименование")); // AdditionalInfoВставить... //добавляем другие служебные реквизиты КонецЕсли;

После переноса изменений в КД3 нажимаем кнопку "Сохранить модуль менеджера обмена " и переносим код из буфера в модуль УТ 11.3.

Изменения правил в БП 3.0

Вносим изменения в ПКО "Справочник_Номенклатура_Получение ", на вкладке "При конвертации данных XDTO ", имя процедуры "ПКО_Справочник_Номенклатура_Получение_ПриКонвертацииДанныхXDTO ".

Код, добавляемый в модуль "ПКО_Справочник_Номенклатура_Получение_ПриКонвертацииДанныхXDTO"

Если ДанныеXDTO.Свойство("AdditionalInfo") И ТипЗнч(ДанныеXDTO.AdditionalInfo)=Тип("Структура") Тогда //ED ДопДанные = ДанныеXDTO.AdditionalInfo; Если ДопДанные.Свойство("ВидНоменклатуры") Тогда ВидНоменклатуры = ОбменДаннымиXDTOСервер.СсылкаОбъектаПоУИДОбъектаXDTO(ДопДанные.ВидНоменклатуры, Тип("СправочникСсылка.ВидыНоменклатуры"), КомпонентыОбмена); Если ВидНоменклатуры.ПолучитьОбъект()=Неопределено И ДопДанные.Свойство("ВидНоменклатурыНаименование") Тогда //Создаём новый ВидНоменклатурыОбъект = Справочники.ВидыНоменклатуры.СоздатьЭлемент(); ВидНоменклатурыОбъект.УстановитьСсылкуНового(ВидНоменклатуры); ВидНоменклатурыОбъект.Наименование = ДопДанные.ВидНоменклатурыНаименование; // заполняем другие служебные реквизиты ЗаполнитьЗначенияСвойств(ВидНоменклатурыОбъект,ДопДанные); ВидНоменклатурыОбъект.Записать(); ВидНоменклатуры = ВидНоменклатурыОбъект.Ссылка; КонецЕсли; ПолученныеДанные.ВидНоменклатуры = ВидНоменклатуры; КонецЕсли; КонецЕсли;

Одного кода недостаточно. Необходимо на вкладке "Правила конвертации свойств" добавить ПКС со свойством конфигурации " " и флажком "Используется алгоритм конвертации ".

Переносим модуль менеджера обмена в модуль конфигурации БП 3 или во внешнюю обработку.

Как загрузить доработанные правила КД3 в базу?

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

Правила, подготовленные в КД3 можно установить в конфигурацию тремя способами

  1. Снять конфигурацию с поддержки и внести изменения в общий модуль МенеджерОбменаЧерезУниверсальныйФормат ;
  2. На конфигурациях, работающих в режиме совместимости с платформой 8.3.10 и выше можно вносить исправления в общий модуль с помощью расширения.
  3. Подключить расширение, которое полностью подменяет общий модуль с правилами.
  4. Не снимая конфигурацию с поддержки подключить к узлу внешнюю обработку с правилами;

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

Третий вариант - использование расширения с правилами обмена в универсальном формате в настоящее время самый оптимальный. Недостаток пока один - необходимо снимать флаг "Безопасный режим" при подключении данного расширения. Это ограничивает его использование в облачных сервисах. Ждём решения от 1С о порядке замены правил обмена в универсальном формате в 1С фреш.

Суть в том, что необходимо найти в конфигурации участок кода, который отвечает за выбор общего модуля в зависимости от версии формата обмена и заменить выбор модуля на свой модуль. Пример для БП 3.0.67:

//////// // Общий модуль ОбменДаннымиПереопределяемый &Вместо("ПриПолученииДоступныхВерсийФормата") Процедура ED_ПриПолученииДоступныхВерсийФормата(ВерсииФормата) ED_ОбменДаннымиСервер.ПриПолученииДоступныхВерсийФормата(ВерсииФормата); КонецПроцедуры //////// // План обмена СинхронизацияДанныхЧерезУниверсальныйФормат: Модуль менеджера #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда &Вместо("ПриПолученииНастроек") Процедура ED_ПриПолученииНастроек(Настройки) Настройки.ИмяКонфигурацииИсточника = ОбщегоНазначенияБП.ИмяКонфигурацииИсточника(); Настройки.ЭтоПланОбменаXDTO = Истина; Настройки.ПредупреждатьОНесоответствииВерсийПравилОбмена = Ложь; Настройки.ФорматОбмена = "http://v8.1c.ru/edi/edi_stnd/EnterpriseData"; ВерсииФормата = Новый Соответствие; ED_ОбменДаннымиСервер.ПриПолученииДоступныхВерсийФормата(ВерсииФормата); //ED Настройки.ВерсииФорматаОбмена = ВерсииФормата; Настройки.ПланОбменаИспользуетсяВМоделиСервиса = Истина; Настройки.Алгоритмы.ПриПолученииВариантовНастроекОбмена = Истина; Настройки.Алгоритмы.ПриПолученииОписанияВариантаНастройки = Истина; Настройки.Алгоритмы.ПредставлениеОтбораИнтерактивнойВыгрузки = Истина; Настройки.Алгоритмы.НастроитьИнтерактивнуюВыгрузку = Истина; КонецПроцедуры #КонецЕсли //////// // Общий модуль в расширении ED_ОбменДаннымиСервер Процедура ПриПолученииДоступныхВерсийФормата(ВерсииФормата) Экспорт ВерсииФормата.Вставить("1.2", МенеджерОбменаЧерезУниверсальныйФормат); ВерсииФормата.Вставить("1.3", ED_МенеджерОбменаЧерезУниверсальныйФормат); ВерсииФормата.Вставить("1.4", ED_МенеджерОбменаЧерезУниверсальныйФормат); ВерсииФормата.Вставить("1.5", ED_МенеджерОбменаЧерезУниверсальныйФормат); ВерсииФормата.Вставить("1.6", ED_МенеджерОбменаЧерезУниверсальныйФормат); КонецПроцедуры //////// // Общий модуль в расширении ED_МенеджерОбменаЧерезУниверсальныйФормат // Конвертация БП3.0.44 (формат 1.6) от 27.11.2018 11:23:58 // Доработка для БП 3.0.67.х от 31.12....

Рассмотрим 4-й вариант, который не описан в документации, т.к. в БСП нет такой возможности. Данный вариант уже устарел. Внешняя обработка с правилами применялась в первых версиях с универсальным форматом обмена. Сейчас 1С постепенно избавляется от этого функционала.

В режиме предприятия, в разделе администрирования переходим по ссылке Синхронизация данных - Настройки синхронизации данных , нажимаем кнопку "Настроить... " если настройка одна или "Изменить ", если настроек несколько. Переходим в режим редактирования формы через меню " " , Разворачиваем "Группа ", там включаем скрытый элемент формы " ", "ОК ".
На вкладке "Служебная информация " выбираем "Путь к менеджеру обмена ", подставляем туда нашу обработку с правилами.

Подключение внешней обработки с правилами к БП 3.0.52 и выше

В БП 3.0.52 и выше по неизвестным причинам внешняя обработка с правилами не используется. Интерфейс для подключения обработки остался. Хотя бы на этом спасибо.

Задействовать обработку с правилами можно с помощью расширения. Необходимо внести исправление в общий модуль "ОбменДаннымиXDTOСервер ", функцию "ВерсииФорматаОбмена ".

Процедура EDм_ПолучитьВерсиюФорматаОбмена(ВерсииФормата, Знач УзелИнформационнойБазы) Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ | СинхронизацияДанныхЧерезУниверсальныйФормат.ПутьКМенеджеруОбмена КАК ПутьКМенеджеруОбмена, | СинхронизацияДанныхЧерезУниверсальныйФормат.ВерсияФорматаОбмена КАК ВерсияФорматаОбмена |ИЗ | ПланОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат КАК СинхронизацияДанныхЧерезУниверсальныйФормат |ГДЕ | СинхронизацияДанныхЧерезУниверсальныйФормат.ПутьКМенеджеруОбмена <> """" | И СинхронизацияДанныхЧерезУниверсальныйФормат.Ссылка = &Ссылка"); Запрос.УстановитьПараметр("Ссылка", УзелИнформационнойБазы); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ИмяОбработки = Выборка.ПутьКМенеджеруОбмена; Если НЕ ОбщегоНазначенияКлиентСервер.РежимОтладки() Тогда ДанныеОбработки = Новый ДвоичныеДанные(ИмяОбработки); АдресОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки); Если ОбщегоНазначения.ЕстьЗащитаОтОпасныхДействий() Тогда ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки, ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений()); Иначе ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки); КонецЕсли; КонецЕсли; МенеджерОбмена = ВнешниеОбработки.Создать(ИмяОбработки); ВерсииФормата.Вставить(Выборка.ВерсияФорматаОбмена, МенеджерОбмена); КонецЦикла; КонецПроцедуры &Вместо("ВерсииФорматаОбмена") Функция EDм_ВерсииФорматаОбмена(Знач УзелИнформационнойБазы) ВерсииФорматаОбмена = Новый Соответствие; Если ЗначениеЗаполнено(УзелИнформационнойБазы) Тогда ИмяПланаОбмена = УзелИнформационнойБазы.Метаданные().Имя; ВерсииФорматаОбмена = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена,"ВерсииФорматаОбмена"); EDм_ПолучитьВерсиюФорматаОбмена(ВерсииФорматаОбмена, УзелИнформационнойБазы); Иначе ОбменДаннымиПереопределяемый.ПриПолученииДоступныхВерсийФормата(ВерсииФорматаОбмена); КонецЕсли; Если ВерсииФорматаОбмена.Количество() = 0 Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = "Не заданы версии формата обмена. |Имя плана обмена: %1 |Процедура: ПолучитьВерсииФорматаОбмена(<ВерсииФорматаОбмена>)""), УзелИнформационнойБазы.Метаданные().Имя); КонецЕсли; Результат = Новый Соответствие; Для Каждого Версия Из ВерсииФорматаОбмена Цикл Результат.Вставить(СокрЛП(Версия.Ключ), Версия.Значение); КонецЦикла; Возврат Результат; КонецФункции

Как выполнять отладку правил во внешней обработке

    В конфигураторе "Сервис -> Параметры -> Запуск 1С:Предприятия -> Параметр запуска ", указать параметр " ".

  • Ниже приведён код для расширения, для УТ 11.4, КА 2.4, ERP 2.4. Код для БП 3.0 приведён выше. Модуль менеджера плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат.

Код расширения EDОтладка

&Вместо("ПолучитьВерсииФорматаОбмена") Процедура ED_ПолучитьВерсииФорматаОбмена(ВерсииФормата) ОбменДаннымиУТ.ДоступныеВерсииУниверсальногоФормата(ВерсииФормата); Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ | СинхронизацияДанныхЧерезУниверсальныйФормат.ПутьКМенеджеруОбмена, | СинхронизацияДанныхЧерезУниверсальныйФормат.ВерсияФорматаОбмена |ИЗ | ПланОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат КАК СинхронизацияДанныхЧерезУниверсальныйФормат |ГДЕ | СинхронизацияДанныхЧерезУниверсальныйФормат.ПутьКМенеджеруОбмена <> """""); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ИмяОбработки = Выборка.ПутьКМенеджеруОбмена; Если НЕ ОбщегоНазначенияКлиентСервер.РежимОтладки() Тогда //ED ДанныеОбработки = Новый ДвоичныеДанные(ИмяОбработки); АдресОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки); Если ОбщегоНазначения.ЕстьЗащитаОтОпасныхДействий() Тогда ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки, ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений()); Иначе ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки); КонецЕсли; КонецЕсли; МенеджерОбмена = ВнешниеОбработки.Создать(ИмяОбработки); ВерсииФормата.Вставить(Выборка.ВерсияФорматаОбмена, МенеджерОбмена); КонецЦикла; КонецПроцедуры &Вместо("ДоступныеВерсииФорматаОбмена") Процедура ED_ДоступныеВерсииФорматаОбмена(ВерсииФормата) ОбменДаннымиУТ.ДоступныеВерсииУниверсальногоФормата(ВерсииФормата); Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ | СинхронизацияДанныхЧерезУниверсальныйФормат.ПутьКМенеджеруОбмена, | СинхронизацияДанныхЧерезУниверсальныйФормат.ВерсияФорматаОбмена |ИЗ | ПланОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат КАК СинхронизацияДанныхЧерезУниверсальныйФормат |ГДЕ | СинхронизацияДанныхЧерезУниверсальныйФормат.ПутьКМенеджеруОбмена <> """""); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ИмяОбработки = Выборка.ПутьКМенеджеруОбмена; Если НЕ ОбщегоНазначенияКлиентСервер.РежимОтладки() Тогда //ED ДанныеОбработки = Новый ДвоичныеДанные(ИмяОбработки); АдресОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки); Если ОбщегоНазначения.ЕстьЗащитаОтОпасныхДействий() Тогда ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки, ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений()); Иначе ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки); КонецЕсли; КонецЕсли; МенеджерОбмена = ВнешниеОбработки.Создать(ИмяОбработки); ВерсииФормата.Вставить(Выборка.ВерсияФорматаОбмена, МенеджерОбмена); КонецЦикла; КонецПроцедуры

Отладку проще всего вести в файловой базе. Точку останова ставим в обработке с правилами. Чтобы найти нужную процедуру, используем КД3. Находим ПКО, ПОД или Алгоритм, смотрим "Имя обработчика " или "Имя алгоритма ", ищем эту процедуру в модуле правил. После правки модуля не забываем скопировать процедуру в буфер и в КД3 нажать кнопку "". Будьте внимательны, должна быть открыта эта же конвертация.

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

Общеизвестные ссылки на документацию по КД3:
  • 1С-Учебный центр №3, "Конвертация данных 3.0" - http://www.1c-uc3.ru/konvert30.html
Расширить сферу применения КД3 Вы можете используя эти публикации:
  • - конфигурации предыдущих версий на платформе 8.2 и ниже превращаются в совместимые с ED.
Сэкономить время и воспользоваться готовыми правилами для последних версий конфигураций можно здесь
  • - расширенный функционал, исправления замеченных ошибок.

Автоматизированные системы управления в большинстве случаев состоят из отдельных баз данных и зачастую имеют территориально распределенную структуру. При этом правильно реализованный обмен данными - необходимое условие для эффективной работы таких систем.

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

Обмен данными в среде 1С позволяет:

  • Исключить двойной ввод документов;
  • Автоматизировать смежные бизнес-процессы;
  • Оптимизировать взаимодействие между распределенными подразделениями;
  • Оперативно актуализировать данные для работы специалистов разных отделов;
  • «Разграничить» разные виды учета.*

*В случае, когда данные одного вида учета существенно отличаются от другого, необходимо обеспечить конфиденциальность информации и «разграничить» информационные потоки. Например, обмен данными между 1С УТ и 1С Бухгалтерия не требует выгрузки в базу регламентного учета управленческих данных, т.е. синхронизация в 1С тут будет неполная .

Если представлять стандартный процесс реализации первичного обмена данными, когда хотя бы один из его объектов – продукт 1С, то можно выделить следующие этапы:

  • Согласование состава обмена;
  • Определение транспорта (протоколов обмена);
  • Установка правил;
  • Составление расписания.

Выявление состава обмена 1С

Объекты обмена можно условно поделить на «источник» и «приемник». При этом они могут исполнять две роли одновременно, что будет называться – двусторонним обменом. Определение источника и приемника происходит логическим путем в зависимости от необходимости или от функциональных возможностей системы.*

*Например, при интеграции «WA: Финансист» – решения для ведения финансового учета и управления процессами казначейства, разработанного на базе «1С:Предприятие», эксперты WiseAdvice рекомендуют именно его в качестве мастер-системы. Это обусловлено наличием инструментов контроля для соблюдения правил заявочной политики, а соответственно, и для обеспечения эффективности работы решения.

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

На этом же этапе в зависимости от парка имеющихся систем и структуры предприятия определяются с форматом обмена:

Распределенная информационная база

  • РИБ подразумевает обмен между идентичными конфигурациями баз данных 1С, с четкой структурой управления «главный-подчиненный» для каждой пары обмена. Являясь элементом технологической платформы, РИБ помимо данных может передавать изменения в конфигурации и административную информацию БД (но только от главного к подчиненному).

Универсальный обмен данными в 1С

  • Механизм, позволяющий настроить обмен баз 1С, как с конфигурациями на платформе «1С:Предприятие», так и с системами сторонней разработки. Обмен осуществляется посредством перевода данных в универсальный xml-формат в соответствии с «Планами обмена».

EnterpriseData

  • Новейшая разработка фирмы 1С, предназначенная для реализации обмена данными в формате xml между продуктами, созданными на платформе «1С:Предприятие», с любыми системами автоматизации. Применение EnterpriseData упрощает доработки, связанные с обменом. Ранее при включении в систему новой конфигурации была необходима реализация механизма импорта и экспорта данных, как для нее, так и для уже имеющихся систем. Теперь системы, поддерживающие EnterpriseData, не нуждаются в доработках, имея только одну точку «входа-выхода».

Определение транспорта (протоколов обмена)

Для системы на платформе «1С:Предприятие 8» предусмотрен широкий спектр возможностей для организации обмена с любыми информационными ресурсами посредством общепринятых универсальных стандартов (xml, текстовые файлы, Excel, ADO-соединение и т.д.). Поэтому при определении транспорта для данных обмена следует отталкиваться от возможностей базы данных сторонней системы.

Синхронизация справочников

Основным принципом эффективной синхронизации справочников является наличие одной точки ввода. Но если речь идет о работе со справочниками, исторически заполнявшимися по разным правилам, необходимо четко определить поля синхронизации для приведения обмена к «общему знаменателю».*

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

Установка правил

Возможность отображения данных систем-источников в приемниках зависит от правильно заданных правил обмена. Правила, представленные в формате xml, регулируют соответствие ключевых реквизитов объектов источника-приемника. Решение «1С:Конвертация данных» предназначено для автоматизации создания правил для реализации как единоразового обмена, так и постоянного.

Гарантирует отсутствие потерь данных при обмене План обмена. Это составная часть любой конфигурации на платформе «1С:Предприятие», полностью описывающая порядок обмена 1С: состав данных (документы с «опознавательными» реквизитами) и узлы (информационные базы приемники-передатчики), а также активацию РИБ для избранных направлений обмена.

Любое изменение данных, занесенных в План обмена, фиксируется и получает признак «измененности». До тех пор, пока измененные данные не будут соответствовать друг другу в узлах приемника-передатчика, признак сброшен не будет, и система будет рассылать контрольные сообщения в оба узла. После выгрузки данных и подтверждения их полного соответствия в обеих системах, признак сбрасывается.

Расписание обмена в 1С

Для автоматизации регулярного обмена устанавливается периодичность выгрузки данных. Частота обмена зависит от необходимости и технических возможностей. Также конфигурации на платформе «1С:Предприятие» позволяют настроить обмен данными при наступлении какого-нибудь события.

Рассмотрев стандартный процесс реализации обмена, обратим внимание на факторы, которые потребуют доработок на разных этапах:

  • Не типовые, сильно доработанные конфигурации БД;
  • Разные версии платформы «1С:Предприятие»;
  • Давно не обновлявшиеся, не актуальные версии конфигурации;
  • Объекты обмена, ранее подвергшиеся доработкам;
  • Необходимость в нестандартных правилах обмена;
  • Сильно различающийся набор и состав реквизитов в имеющихся справочниках.

Поскольку даже стандартные действия по реализации первичного обмена данными требуют экспертных знаний, их рекомендуется проводить при участии специалистов 1С. Только после выполнения всех вышеописанных действий следует переходить к настройке обмена в конфигурации. Рассмотрим интеграцию баз данных на примере «1С:УПП» и «1С:Розница» (по этой же схеме настраивается обмен с «1С:УТ»). Также к типовой синхронизации относится обмен УПП - УПП, характерный для масштабных систем автоматизации на крупнейших промышленных предприятиях.

В подменю «Сервис» выбираем «Обмен данными c продуктами на платформе…» (выбор прямого обмена с «Розницей» зачастую грозит ошибками на уровне COM-объектов). Обратим внимание на служебное сообщение «Данная возможность недоступна».


Чтобы решить эту проблему, необходимо выбрать «Настройку обмена данными»


…и проставить галочку. Далее сообщение об ошибке игнорируем.


В настройках синхронизации данных выбираем «Создать обмен с «Розница»…



Перед настройкой параметров подключения через локальный или сетевой каталог следует убедиться, что на диске под каталог есть место. Хотя, как правило, он не занимает более 30-50 Мб, в исключительных случаях под него может потребоваться до 600 Мб. Создать необходимый каталог можно прямо из конфигуратора.



При подключении через сетевой каталог предложения настроить подключение посредством FTP-адреса и по электронной почте игнорируем, нажимая «Далее».


В настройках вручную проставляем префиксы – условные обозначения баз (как правило, БП, УПП, РО), задаем правила и начальную дату выгрузки данных. Префикс будет указываться в названии документов, для обозначения базы, в которой они были созданы. Если правила выгрузки не будут отредактированы, данные по умолчанию будут выгружаться по всем имеющимся параметрам.



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


Для автоматизации процесса обмена необходимо настроить расписание.


Меню «Розница».


Проставляем галочку и выбираем «Синхронизацию».


Производим «обратную» настройку, выбирая Управление производственным предприятием.




Загружаем файл с настройками, созданный в УПП.


Проставляем галочку, адрес система подхватывает автоматически.





Действуем так же, как в УПП.









Проверочное сопоставление данных (Ручное сопоставление данных рекомендуется произвести на подготовительном этапе, поскольку эти работу могут стать самыми трудоемкими в процессе реализации обмена). Открытие окна сопоставления происходит по двойному щелчку мыши.



В случае ошибки в синхронизации «Подробно…» будет заменено на «Никогда…».


«Подробно…» открывает журнал регистрации с уточненной информацией по обмену.


Готово.