Обмен между базами 1С 8.3. Доработка типового плана обмена (синхронизации) между конфигурациями 1С на примере обмена 1С: Зарплата и управление персоналом 3 и 1С: Бухгалтерия предприятия 3

Обмен - Перенос данных из 1C8 в 1C8

#1С: БУХ #1С: ЗУП #Обмен между базами

93
Для чего нужно изучить данную статью и когда эти знания могут пригодиться? В первую очередь приведенная ниже информация потребуется программистам 1С, когда перед ними встанет задача доработать типовой обмен между конфигурациями, который настроен через синхронизацию данных, т.е. по плану обмена. Что же такое «План обмена»? План обмена в 1С – это объект, который входит в состав метаданных конфигурации и служит для синхронизации данных между информационными базами.

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

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



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

 

Живой пример потребности в доработке типовых правил обмена

 

Например, заказчик обратился к нам с такой проблемой: при синхронизации между ЗУП и БП нет возможности передать данные справочника «Регистрации в налоговом органе», которые необходимы для заполнения документа «Отражение зарплаты в бухучете». Сейчас табличная часть этого документа на стороне приемника БП содержит пустую «Регистрацию…» и пользователям приходится вручную создавать такие записи в справочнике. Согласитесь, это неудобно.  Можем доработать этот момент.
 

  Решение проблемы: доработаем пакет конвертации из плана обмена ОбменЗарплата3Бухгалтерия3. Добавим в типовые «Правила обмена 1С» новое «Правило конвертации объектов» (ПКО) для справочника «Регистрации в налоговом органе» и соответственно «Конвертацию свойств» этого справочника (ПКС). Обязательно доработаем типовые «Правила регистрации объектов», т.к. возникла необходимость зарегистрировать изменения справочника на узле обмена. И пересмотрим «Правила обмена 1С» базы корреспондента.

Где все это будем редактировать? для написания и изменения правил нам потребуется конфигурация «1С:Конвертация данных 2».

 

  Доработка типовых правил конвертации из Плана обмена ЗУП – БП

 

Итак, доработку правил обмена 1С начнем с того, что в конфигураторе для плана обмена ОбменЗарплата3Бухгалтерия3 в состав добавим новый элемент – справочник РегистрацииВНалоговомОргане. Данное изменение сделаем в обоих конфигурациях «1С:Зарплата и управление предприятием 3» и «1С:Бухгалтерия предприятия 3».

 

  Сохраним и обновим конфигурации.

В режиме предприятия для каждой базы выгрузим описание структуры метаданных с помощью обработки MD83Exp.epf для платформы «1С:Предприятие 8.3». Обработку можно найти в комплекте «1С:Конвертация данных».

На следующем этапе выгрузим пакет конвертации из ЗУП и БП. Пакет должен состоять из 3 файлов: ПравилаРегистрации, ПравилаОбмена, ПравилаОбменаКорреспондента. 

В рамках данной статьи не будет описания как настраивается синхронизация данных, это можно прочитать на сайте компании «Кодерлайн» в разделе «Статьи экспертов»  либо посмотреть записи вебинаров. Сейчас в базах уже настроена данная опция. Поэтому переходим в настройку синхронизации (Администрирование –> Синхронизация данных –> Настройка синхронизации данных), нажимаем кнопку «Загрузить правила». Перед нами откроется форма «Правил для синхронизации». По кнопке «Еще» выберем пункт «Сохранить правила в файл».


 

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

 
 

Аналогичные действия выполним и для другой информационной базы «1С:Бухгалтерия предприятия».
В итоге все подготовительные работы для редактирования правил готовы. У нас есть:

- описание структуры метаданных для загрузки в «1С:Конвертация данных 2» (для ЗУП и БП);

- пакет конвертации, который содержит правила обмена 1С и правила регистрации, необходимые для загрузки в «1С:Конвертация данных 2» (для ЗУП и БП).

Переходим в «1С:Конвертация данных 2» . Выполним следующие действия по порядку для обоих информационных баз:

- загружаем структуры метаданных наших конфигураций;

- создаем конвертации и загружаем правила обмена данными 1С из пакетов конвертации (файл правил называется ExchangeRules);

- создаем регистрации и загружаем правила регистрации из пакетов конвертации (файл правил называется RegistrationRules).
   



  
Переходим непосредственно к нашей доработке. В правила обмена 1С добавляем новое правило конвертации объектов (ПКО) – справочник «Регистрации в налоговом органе». Добавляем правило конвертации свойств (ПКС) для этого справочника и правило выгрузки данных (ПВД). Такого рода доработку необходимо выполнить как для правил из пакета ЗУП, так и для правил обмена из пакета БП. Выгружаем наши правила обмена в соответствующие файлы ExchangeRules.

 

  
Переходим к правилам регистрации нового элемента. Добавляем справочник «Регистрации в налоговом органе». Выгружаем правила регистрации в соответствующий файл из пакета RegistrationRules. Это действие также выполняем для обоих баз.

 

  Доработанные правила обмена и правила регистрации готовы. Теперь в правила корреспондента (CorrespondentExchangeRules) из пакета ЗУП копируем содержимое правил обмена (ExchangeRules) из пакета БП. В правила корреспондента (CorrespondentExchangeRules) из пакета БП копируем содержимое правил обмена (ExchangeRules) из пакета ЗУП.

В итоге должно получиться следующее: 

 
На этом работа в «1С:Конвертация данных 2» завершена. Доработанные пакеты правил конвертации готовы, осталось загрузить их обратно в информационные базы и проверить синхронизацию. 

Архивируем файлы из пакетов в Архив ZIP и загружаем в ЗУП и БП свои пакеты конвертации.



  Все готово. Осталось протестировать.

Вспомним условия задачи. Необходимо было зарегистрировать к выгрузке справочник «Регистрации в налоговом органе» и проверить, как заполняется ТЧ документа «Отражение зарплаты в бухучете» на стороне «1С:Бухгалтерия предприятия 3».

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


Проверяем на стороне «1С:Бухгалтерия предприятия 3»:
 
 


  Подведем итог. Результат поставленной задачи выполнен успешно. Мы доработали план обмена ЗУП – БП, добавив новый элемент для регистрации изменений и дописали правила конвертации для синхронизации данных.

93

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. avk72 69 10.11.17 09:58 Сейчас в теме
2. anosin 27 10.11.17 10:05 Сейчас в теме
Интересно было всё тоже самое повторить на КД3
nikivr; IvanovAV; Dmitri93; +3 Ответить
5. katenok86 243 10.11.17 13:00 Сейчас в теме
(2)В 2 х словах. Сначала ищем объект в XDTO пакете. Если нет то добавляем. Добавляем в план обмена, меняем правила регистрации. По том на КД 3 меняем правила выгрузки и загрузки.
9. anosin 27 13.11.17 22:43 Сейчас в теме
(5) Екатерина, в 2х словах так просто на КД3 увы не получится
monkbest; +1 Ответить
3. andypet 10.11.17 11:27 Сейчас в теме
Мне кажется, забыли упомянуть про добавление справочника РегистрацииВНалоговомОргане в качстве источника события для подписки "ОбменЗарплата3Бухгалтерия3Регистрация"?
kivals; monkbest; +2 Ответить
4. guy_septimiy 10.11.17 11:59 Сейчас в теме
отличное пособие для тех кто не разобрался или нет времени это сделать
6. Irwin 291 10.11.17 13:58 Сейчас в теме
Хотелось бы еще почитать про то, как быстро обновлять доработанные правила КД.
7. Brawler 395 10.11.17 20:50 Сейчас в теме
Если я не ошибаюсь, то в данном документе никакой регистрации в налоговом органе указывать не нужно.
Там главное чтобы ОКТМО, КПП и вроде код налогового органа были заданы.
Регистрация в налоговом органе колонка не существующая физически.

Как пример статья вполне канает!
8. Prepod2003 233 13.11.17 15:30 Сейчас в теме
Я думал, что обмен между ЗУП 3 и БУХ 3 сделан только по новому формату через КД 3, а оказывается это можно доработать и через КД 2... Не понимаю как это возможно - это же разные вообще системы? Может кто-то объяснить это дело мне или где об этом можно почитать?
10. monkbest 97 15.11.17 07:58 Сейчас в теме
(8) КД3 не применяется сейчас совсем в типовых обменах 1С-1С. КД3 подразумевает обмен в едином формате, т.е. выгрузка происходит не сразу в формат приёмника как в КД2, а в некий промежуточный универсальный формат, поэтому и нужны фабрики-х*ябрики ИКСДТО.
12. vowg 63 15.11.17 08:14 Сейчас в теме
(10) Сейчас все типовые обмены, постепенно переводят на универсальный формат обмена, т.к. по КД3
15. monkbest 97 15.11.17 08:39 Сейчас в теме
(12) а я вот думаю, что КД3 создан для обмена в формате Enterprise Data. а он придуман для обмена со сторонними системами. Как раз при обмене со сторонними системами удобно, кода есть единый уже задокументированный формат. обе стороны обмена не парятся о другой системе, а только о своей. КД3 трудоемкая, я тут попробовал простенький обмен одного справочника реализовать на ней с нуля - плюнул и передумал :)

Хотя в нынешней версии БСП это тоже жесть, чтобы свой обмен с нуля приделать на КД2. Я обычно добавляю универсальную обработку в обе базы, к ней приляпываю в макете правила и пишу свое регламентное задание в 10 строчек кода и свой план обмена с авторегистрацией объектов. Все типовые модули, подписки остаются на поддержке без изменений.
17. anosin 27 15.11.17 13:55 Сейчас в теме
(15) формат "предопределенных структур Enterprise Data навязывается 1С-ом" и просто так стороннюю систему не подключить необходимо подстраиваться под 1Сные "предопределнные структуры" и самое интересное, что модули "типовых обменов" редактируются вручную а не генерируются из КД3, т.е. эти правила нельзя импортировать и экспортировать повторно.
20. monkbest 97 21.11.17 07:59 Сейчас в теме
(17) помимо того, что они "предопределнные структуры", они уже задокументированы, что на проекте снимает кучу вопросов. Вот были бы они не предопределенные, встретились две рабочих группы САПА и 1С:
- ну что выгрузить вам отгрузки
- давай. в каком формате?
- XML хочу
- годится
... далее 100 часов согласования, какие реквизиты как называются, какой тип данных, вложенным тегом или атрибутом, как назвать теги, как обозначать ссылочные типы...

а тут все уже придумано и годится под 99% случаев, максимум, если упрутся во что-то то согласовать пару нюансов за 5 минут
23. anosin 27 23.11.17 21:51 Сейчас в теме
(20)
Договориться за 5 минут это в случае если у группы САПА есть реализация ED, и боюсь что за реализацию всей структуры они захотят не одну 1000 часов
24. monkbest 97 27.11.17 08:51 Сейчас в теме
(23) сколько часов они будут писать свою часть и сколько это будет стоить не имеет значения, т.к. эти показатели равны что при наличии ED что без него. Все равно нет типововго обмена между этими системами :)
а вот на составление документации (тех задания ) к будущему обмену можно сэкономить.
11. monkbest 97 15.11.17 08:04 Сейчас в теме
Вопрос автру, зачем вносить изменения в обе базы? Это не упрек, я действительно не знаю :)

Поясню, откуда вопрос. Самому приходилось протаскивать номенклатурную группу в ЗУП, для этого как и Вы правил оба набора правил и оба плана обмена и в ЗУП и в Бух. Галку "Синхронизация" ставил в обоих базах и в обоих базах настраивал синхронизацию со своим расписанием.

Но насколько я понял механизм, то ЗУП по КОМ соединению лезет в Бух выгружает туда, а потом загружает оттуда используя правила корреспондента. Потом Бух по КОМ лезет в ЗУП выгружает туда и загружает оттуда. Получается не двухсторонний обмен, а двусторонний в квадрате. Зачем? Можно ли обойтись настройкой синхронизации на одной стороне? Я пробовал, но всегда начинались глюки, что что-то куда-то не выгружается. Есть знания на эту тему?
13. vowg 63 15.11.17 08:19 Сейчас в теме
(11) Насколько я понял, хотя я и не автор данной статьи :) при загрузке выполняются правила корреспондента, если в них прописаны обработчики "ПослеЗагрузкиОбъекта", если этих событий нет в правилах корреспондента, то все нормально выгружается/загружается.
14. monkbest 97 15.11.17 08:29 Сейчас в теме
(13)
при загрузке выполняются правила корреспондента, если в них прописаны обработчики "ПослеЗагрузкиОбъекта", если этих событий нет в правилах корреспондента, то все нормально выгружается/загружается

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

поэтому и вопрос мой возник, технически все должно работать при настройках в одной базе, тем более зачем нам два фоновых задания делающих одно и тоже, они запросто могут попасть во взаимную блокировку, если расписания совпадут
16. vowg 63 15.11.17 10:04 Сейчас в теме
(14) Просто при тестировании, выявил опытным путем, что если нет обработчиков событий "ПослеЗагрузкиОбъекта", то выгрузка проходит, даже если правила отличаются. Стоит только добавить эти события, так в этом случае нужен синхрон между правилами
18. the1 319 15.11.17 22:55 Сейчас в теме
Жирный минус. Не нужно конфигурации снимать с поддержки.

Правила нужно доработать таким образом, чтобы при изменении документа "Отражение" дёргался справочник "Регистрации в налоговом органе"
bb1962; Ali1976; +2 Ответить
19. monkbest 97 21.11.17 07:54 Сейчас в теме
(18) это минус не автору статьи, а автору БСП :) не тронув план обмена новый объект в правила добавлять бесполезно.
21. the1 319 21.11.17 12:16 Сейчас в теме
(19) Не скажите. Всё прекрасно выгружается без добавления в ПО. В ПКС документа Отражение добавить "Регистрац..." и все прекрасно выгрузится
22. monkbest 97 23.11.17 14:28 Сейчас в теме
(21) ну например Бух-ЗУП. Хочу номенклатурные группы в ЗУП. Они реквизит документа отражение ЗП в регл учете.
Создаются элементы в бухгалтерии, т.к. буху потом фин результат считать, а используются в ЗУП в табеле, а данные табеля потом влияют на док отражение ЗП в регл учете.

Имеем, что надо, чтобы новая группа выгрузилась в ЗУП из Бух, но при этом она еще нигде не используется ни в одном документе.

Как вариант не снимать конфу с поддержки прорабатывал сделать отдельную синхронизацию по полному плану обмена, но там тоже все плохо кончилось.
25. the1 319 28.11.17 12:52 Сейчас в теме
(22) Дописываем правила обмена так, чтобы при выгрузке из БП обязательно выгружались номенклатурные группы. То есть вообще в любом случае, были изменения, не было - пофиг.

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

Как-то так
Прикрепленные файлы:
27. bb1962 1965 18.01.18 13:35 Сейчас в теме
(18) Верное замечание. Я добавлю, что в данном случае вообще можно и нужно отказаться от плана обмена. Для того, чтобы 1 - 2 раза в месяц переносить ведомости на выплату и отражение ЗП в БУ, никакая регистрация объектов не нужна. Правила обмена уже есть, можно использовать обработку Универсальный обмен данными в формате XML. Дорабатывается в любом направлении легко без снятия конфигурации с замка. Версия формата файла обмена будет другой, только и всего.
26. milov.aleksey 320 21.12.17 11:41 Сейчас в теме
Стояла задача: перегружать свод проводок(документ Отражение зарплаты в бухучёте) из ЗУП3.1.2.462 в БП3.0.54 так, чтобы не менялась иерархия подразделений, различная в зарплате и бухгалтерии. В бухгалтерии много уровней подчинения. При перегрузке некоторые подразделения перемещаются в корень справочника.
Решение:
1) в бухгалтерии создал подписчик, откатывающий изменения подразделений при загрузке из зарплаты.
2) в типовом правиле обмена изменил приоритет подразделения из ЗУП с "Выше" на "Ниже". Чтобы при разрешении конфликта синхронизации приоритет оставался за подразделением бухгалтерии.
Прикрепленные файлы:
28. lenarha 31.07.18 11:15 Сейчас в теме
просьба уточнить пункт в "На следующем этапе выгрузим пакет конвертации из ЗУП и БП. Пакет должен состоять из 3 файлов: ПравилаРегистрации, ПравилаОбмена, ПравилаОбменаКорреспондента. "

я так понимаю что должен получиться файл архив zip. только я не могу найти как это сделать. подскажите пожалуйста
Оставьте свое сообщение