4.
vovan_victory
65
18.02.15 15:13
Сейчас в теме
Во первых:
Для чего и почему именно так?
Задача:
Необходимо выгрузить один документ или элемент справочника из конфигурации "А" в конфигурацию "Б". При этом не изменяя типового функционала.
Если Вы откроете обработку "Универсальный обмен данными в формате XML" в управляемом приложении, то должны сразу заметить , что пропало поле настройки отбора. В таком случае, даже при наличии правил обмена, Вы не сможете выгрузить, ну скажем, один элемент справочника, а только весь справочник целиком. Так же и с документами(правда для документов остался отбор по интервалу дат). Это связано с тем, что у 1С изменился подход к технологии обмена данными(от универсального обмена данными к обмену данными. Если ошибаюсь, поправьте меня). По новой технологии выгрузки, возможность отбора появляется только после настройки обмена данными. Казалось бы , настроить не сложно ,но тут , на мой взгляд, появляется еще некоторое количество проблем, которые усложняют мне решение поставленной задачи. А именно:
1. Если включить "Обмен данными", то начинает работать механизм префиксации, а это означает, что нумерация документов с этого момента будет включать в себя префикс.Может криминального и ни чего нет, но как то не айс, если пол года нумерация шла без префикса, а со второй половины года нумерация пошла с префиксом да и еще с единицы.
2. Обмен данными подозревает обязательное наличие 3 видов правил обмена:
а) Правила регистрации объектов. По новой технологии, авторегистрация изменений отключена,а регистрирует изменений механизм, который обращается к этим правилам.
б) Правила для выгрузки данных в базу приемник
в) Правила для загрузки данных из базы приемника
Все эти правила должны быть созданы под ваши конфигурации и загружены в базу.
3. Для обмена данными с определенными конфигурациями в исходной базе предопределены конкретные планы обменов в состав которых включены некоторые объекты метаданных в числе которых может не оказаться нужного вам объекта(документа или справочника).
В таком случае, вообще не обойтись без изменения конфигурации. Придется либо добавлять и настраивать новый план обмена, либо изменять какой то из имеющихся.
4. Если использовать настроенный обмен данными, то после выгрузки данных из источника и загрузки в приемник, нужно обязательно обменяться квитанциями для очистки таблиц регистрации изменений.
Казалось бы это не сложно сделать, но время на это уходит,да и сами пользователи не в восторге от лишних движений.
Моя же идея, позволяет выгрузить объекты базы без настройки планов обмена, без создания правила регистрации объектов, без создания правил для загрузки из приемника, без открытия обработки "универсальный обмен". Пользователь просто выделяет строки для выгрузки и выбирает "Выгрузить"
Во вторых:
"Но ведь для каждого нового вида документа придется много настраивать ?"
Правила же можно создать для конфигурации целиком. Для объектов которые предполагается выгружать, создать ПВД. В самой же обработке просто перечислить объекты выгрузки в массиве(в модуле обработки)
МассивНазначений.Добавить("Документ.АР_СчетНаАренду");
МассивНазначений.Добавить("Справочник.Контрагенты");
МассивНазначений.Добавить("...............................");
В этом случае выгрузка будет работать как из документа, так и из справочника.
Остается только подключить саму обработку как внешнюю печатную форму. На основании этого массива она сама подключится ко всем объектам.
Теперь можете судить сами, много ли нужно сделать настроек.
В третьих:
"А как с связанными объектами поступает этот механизм ?"
При выгрузке все связанные объекты выгружаются по тем же правилам, которые Вы создадите. Можете сделать чтобы объект выгружался целиком или только ссылка на него, но это уже другая история....