Версия для печати темы (https://pro1c.org.ua/index.php?s=8f9b24acd59bd562f1ee1a990eb70c01&showtopic=50268)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Нужен алгоритм обмена между базами

Автор: DrLivsi 04.02.19, 11:19

Всем привет!

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

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

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

Как можно "скрестить" эти два способа что-бы получить оптимальный вариант?


Автор: andr_andrey 04.02.19, 11:28

Цитата(DrLivsi @ 04.02.19, 11:19) *
Например создали нового контрагента и новую РТУ, то при переносе нужно понять что есть новый элемент справочника и перенести сначала его и.тд.


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

Автор: DrLivsi 04.02.19, 11:41

andr_andrey @ Сегодня, 11:28 * ,

Только в одном документе насчитал около 20 ссылок на справочники, и что для каждого делать проверку?

Автор: VXIIIZ 04.02.19, 17:31

Цитата(DrLivsi @ 04.02.19, 11:19) *
Если делать через ПланОбмена, то в регистрацию для обмена не попадут документы с прошлых периодов


Почему?

Автор: Fynjy 04.02.19, 22:34

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

Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
   Объект.Записать();
КонецЕсли;

Автор: VXIIIZ 05.02.19, 19:30

Цитата(Fynjy @ 04.02.19, 22:34) *
На уровне приемника сделать заглушку при записи нового объекта в рамках обмена (в двух местах по моему там была запись).

Зачем изобретать велосипеды.

Использовать конвератцию данных.

1. В правилах конвертации данных можно указать "Не замещать существующие объекты в приемнике при загрузке"
2. "При загрузке" можно проверить признак "ОбъектНайден" и дальше решить что с ним делать.

В изначальнов вопросе смешиваются две темы, собственно регистрация объектов для переноса, и непосредственно сам перенос с записью объектов в приемнике.

Обмен с помощью конвертации данных + использование плана обмена с регистрацией объектов прекрасно решают все эти вопросы.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua