gifts2017

Выгрузка документов в другую конфигурацию

Опубликовал vovan_victory vovan_victory (vovan_victory) в раздел Обмен - Перенос данных из 1C8 в 1C8

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

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

В примере я использую конфигурации "Бухгалтерия 2.0+Бит-Финанс"(приемник) и "Аренда и управление недвижимостью"(источник). 

Задача: 

перенести документы "Счет на опллату" из "Аренды" в "Бит-Финанс"

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

Обработка подключается как внешняя печатная форма.

Скачать файлы

Наименование Файл Версия Размер
ВыгрузкаКонтрагентаВБитФинанс.epf 14
.epf 1,79Mb
09.02.15
14
.epf 1,79Mb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Артем Бичинов (arteast) 13.02.15 03:26
Что-то на Бухгалтерию 2.0 (!) не совсем похоже)
2. vovan_victory vovan_victory (vovan_victory) 13.02.15 08:26
По интерфейсу видно, что источник бух 3.0+аренда и управление недвижимостью, приемник рассчитан на бух 2.0 + бит финанс.Релизы не указываю, но если интересно , напишу релизы. На мой взгляд самое важно - это сама идея.
3. Allexey (alex_4x) 18.02.15 08:57
Но ведь для каждого нового вида документа придется много настраивать ? А как с связанными объектами поступает этот механизм ?
Идея конечно замечательная и оригинальная, но в чем её преимущество перед стандартным обменом ? Настраивать не проще, а сложней мне кажется.
4. vovan_victory vovan_victory (vovan_victory) 18.02.15 15:13
Во первых:
Для чего и почему именно так?

Задача:
Необходимо выгрузить один документ или элемент справочника из конфигурации "А" в конфигурацию "Б". При этом не изменяя типового функционала.

Если Вы откроете обработку "Универсальный обмен данными в формате XML" в управляемом приложении, то должны сразу заметить , что пропало поле настройки отбора. В таком случае, даже при наличии правил обмена, Вы не сможете выгрузить, ну скажем, один элемент справочника, а только весь справочник целиком. Так же и с документами(правда для документов остался отбор по интервалу дат). Это связано с тем, что у 1С изменился подход к технологии обмена данными(от универсального обмена данными к обмену данными. Если ошибаюсь, поправьте меня). По новой технологии выгрузки, возможность отбора появляется только после настройки обмена данными. Казалось бы , настроить не сложно ,но тут , на мой взгляд, появляется еще некоторое количество проблем, которые усложняют мне решение поставленной задачи. А именно:

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

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

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

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

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

Во вторых:
"Но ведь для каждого нового вида документа придется много настраивать ?"

Правила же можно создать для конфигурации целиком. Для объектов которые предполагается выгружать, создать ПВД. В самой же обработке просто перечислить объекты выгрузки в массиве(в модуле обработки)
МассивНазначений.Добавить("Документ.АР_СчетНаАренду");
МассивНазначений.Добавить("Справочник.Контрагенты");
МассивНазначений.Добавить("...............................");

В этом случае выгрузка будет работать как из документа, так и из справочника.
Остается только подключить саму обработку как внешнюю печатную форму. На основании этого массива она сама подключится ко всем объектам.
Теперь можете судить сами, много ли нужно сделать настроек.

В третьих:
"А как с связанными объектами поступает этот механизм ?"

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