Статья описывает шаги необходимые для обмена данными из конфигурации 1С:Предприятия версии 7.7 в 8.2 с помощью такой же конфигурации Конвертация данных, редакция 2.1.4.1.

Найдем в составе дистрибутива конфигурации Конвертация данных файл оработки MD82Exp.epf. Он понадобиться для выгрузки описания структуры метаданных конфигурации базы приёмника.

Ещё найдем в составе этого же дистрибутива файл оработки V8Exchan82.epf — «Универсальный обмен данными в формате XML». Он понадобиться для выгрузки базы приёмника. Как видно из названия эти обработки предназначены для работы с версией 1С:Предприятия 8.2.

Затем найдем инструменты для работы с версией 1С:Предприятия 7.7.

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

Ещё найдем в составе этого же дистрибутива файл оработки V77Exp.ert — «Универсальная выгрузка данных в формате XML». Он понадобиться для выгрузки базы источника.

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

Сначала выгрузим описания структуры метаданных источника и приёмника.

  1. Откроем базу источник в режиме 1С:Предприятие 7.7 и запустим обработку MD77Exp.ert для выгрузки описания структуры метаданных источника. Сохраним структуру метаданных источника в файл Rules1.xml.
  2. Откроем базу приёмника в режиме 1С:Предприятие 8.2 и запустим обработку MD82Exp.epf для выгрузки описания структуры метаданных приёмника. Сохраним структуру метаданных приёмника в файл Rules2.xml.

Загрузим описания структуры метаданных обеих конфигураций.

  1. Запустим конфигурацию Конвертация данных в режиме 1С:Предприятие 8.2.
  2. Откроем справочник «Конфигурации» (Справочники—>Конфигурации). Он хранит информацию о конфигурациях, между которыми может производиться настройка правил обмена.
  3. Добавим информацию о конфигурации источнике. Нажмём кнопку «Добавить» или клавишу «Insert».
  4. Укажем путь к файлу со структурой метаданных источника Rules1.xml. Нажмём кнопку «Выполнить загрузку».
  5. Добавим информацию о конфигурации приёмнике. Нажмём кнопку «Добавить» или клавишу «Insert».
  6. Укажем путь к файлу со структурой метаданных приёмника Rules2.xml. Нажмём кнопку «Выполнить загрузку».

Итак, мы загрузили информацию об источнике и приёмнике. Теперь мы можем производить настройку правил обмена.

  1. Откроем справочник «Конвертации» (Справочники—>Конвертации). Этот справочник содержит иформацию, в которой определяется между какими конфигурациями осуществляется обмен и в каком направлении.
  2. Добавим новый элемент. Нажмём кнопку «Добавить» или клавишу «Insert».
  3. Укажем кофигурацию источник из справочника «Конфигурации». Поле «Конфигурация — источник:».
  4. Укажем кофигурацию приёмник из справочника «Конфигурации». Поле «Конфигурация — приемник:».
  5. Важная деталь!!! Откроем закладку «Дополнительно». Поле «Имя файла модуля выгрузки:».
  6. Укажем место расположения файла модуля выгрузки, например: C:BasesМодульВыгрузки.txt.
  7. Содержимое этого файла необходимо, чтобы в будущем (подробнее об этом ниже) заменить весь модуль в обработке V77Exp.ert. Без этой замены выгрузка невозможна!
  8. Нажмём кнопку «ОК».

Отлично, мы произвели настройку правил обмена. Осталось эти правила обмена выгрузить в файл.

  1. В справочнике «Конвертации» выделим только что созданный элемент.
  2. На панели справочника нажмём кнопку «Перейти к правилам». Откроется форма с правилами конвертации.
  3. Во вкладке «Правила выгрузки данных» укажем, что конкретно мы хотим выгружать.
  4. На вкладке «Конвертация свойств» мы можем указать сопоставление реквизитов обменивающихся объектов.
  5. На этой форме в левом верхнем углу найдём кнопку «Сохранить правила».
  6. Укажем имя файла и путь (Например, C:BasesПравилаОбменаДанными.xml). Нажмём кнопку «Открыть».
  7. Позже, указанный путь мы можем изменить в справочнике «Конвертации»—>«Изменить текущий элемент (F2)»—>закладка «Дополнительно»—>поле «Имя файла правил обмена:».
  8. Во время сохранения правил, также записывается модуль выгрузки, по указанному нами ранее пути: C:BasesМодульВыгрузки.txt.

Правила конвертации готовы! Теперь сделаем обмен данными.

Откроем базу источник в режиме 1С:Конфигуратор 7.7, затем откроем обработку V77Exp.ert — «Универсальная выгрузка данных в формате XML». Откроем закладку «Модуль», удалим всё содержимое модуля. Вставим строку: #ЗагрузитьИзФайла C:BasesМодульВыгрузки.txt.

Дерективой «ЗагрузитьИзФайла» мы переключаем загрузку программного модуля на загрузку из текстового файла. Теперь нужно следить, чтобы файл с кодом выгрузки МодульВыгрузки.txt всегда был в указанной нами папке.

Сохраним обработку V77Exp.ert.

Для осуществления выгрузки данных необходимо:

  1. Открыть базу источник в режиме 1С:Предприятие 7.7, затем открыть только что сохраннёную обработку V77Exp.ert.
  2. Указать имя файла правил обмена в поле «Имя файла правил:» (мы его сохраняли здесь: C:BasesПравилаОбменаДанными.xml) и выбрать файл в поле «Имя файла данных:», в который будет осуществляться выгрузка данных (Например, C:BasesВыгрузкаДанныхИз7.7.xml).
  3. Далее необходимо загрузить правила обмена, нажав кнопку «Загрузить правила обмена».
  4. Для выгрузки документов за определенный интервал необходимо указать период — «Дату начала» и «Дату окончания».
  5. Флажки в списке «Правила выгрузки данных» указывают, какие данные будут выгружаться, а какие нет.

Теперь загрузим данные в базу приёмник. Откроем её в режиме 1С:Предприятие 8.2 и запустим обработку «Универсальный обмен данными в формате XML» для загрузки данных источника.

Это файл оработки V8Exchan82.epf. Или открыть «Сервис»—>«Прочие обмены данными»—>«Универсальный обмен данными в формате XML»

  1. В обработке на вкладке «Загрузка данных» выберем имя файла данных (мы его сохраняли здесь: C:BasesВыгрузкаДанныхИз7.7.xml).
  2. Нажмём кнопку «Загрузить данные» (Находится на панели вверху).

Данные загружены!

Те же действия для выгрузки из версии 1С:Предприятие 7.7 применимы для версий 1С:Предприятие 8.1 и 1С:Предприятие 8.0. В составе дистрибутива конфигурации Конвертация данных идут файлы оработок для этих версий MD81Exp.epf и V8Exchan81.epf, MD80Exp.epf и V8Exchan.epf.

Если Вы хотите загружать данные в 1С:Предприятие 7.7, тогда нужно пользоваться обработкой V77Imp.ert. Перед загрузкой данных необходимо выполнить те же действия с модулем обработки V77Imp.ert, что были описаны для обработки V77Exp.ert.

Если Вы выбираете обработку из списка быстрого доступа (Файл — V77Exp.ert) и выдается сообщение, что файл не найден, хотя файл расположен там же и название не менялось, тогда нужно просто сделать все как в начале — «Файл | Открыть» и снова выбрать файл V77Exp.ert.

1. Вступление.

2. Что понадобится: конфигурация 1С: Конвертация данных 2.* и обработки из пакета. Для Примера задач возьмем конфигурации 1С: Управление торговлей 11 и 1С: БП 3.*.

Итак, для разработки правил выгрузки данных в 1С потребуется конфигурация 1С: Конвертация объектов 2, а также обработки, входящие в пакет.

Например, у нас уже развернута база конвертации и запущена.

Разработку правил обмена будем писать между конфигурацией 1С: Управление торговлей 11 и 1С: Бухгалтерия предприятия 3 (правила обмена УТ / БУХ).

3. Нам понадобятся Обработки для выгрузки структуры метаданных и обмена.

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

Собственно, в распакованном каталоге конфигураций для конфигураций на управляемых формах нас интересует обработка MD83Exp.epf. Если выгрузку нужно сделать из конфигураций на обычных формах, тогда используется обработка MD82Exp.epf. Это если, например, нужно получить структуру из таких конфигураций, как 1С: УТ 10, 1С: Управление производственным предприятием 1.3, 1С: Комплексная автоматизация 1.1, 1С: Зуп 2.5 и так далее.

Далее уже для выгрузки-загрузки данных в 1С с помощью наших правил понадобится обработка «Универсальный обмен данными в формате XML» V8Exchan83.epf для конфигураций на управляемых формах таких как 1С: Управление торговлей 11.*, 1С БП 3, 1С: ERP 2.* и подобных. И соответственно V8Exchan83.epf - для конфигураций на обычных формах.

4. Выгрузка структуры метаданных конфигурации 1С: Управление торговлей 11.3 и 1С: Бухгалтерия предприятия 3.0.*

Начнем с выгрузки структуры метаданных из конфигурации 1С: Бухгалтерия предприятия 3.
Откроем обработку MD83Exp.epf

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

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

В диалоговом окне загружаем структуру БП:

И аналогично - структуру Управления торговлей.

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

6. Создание правил конвертации в 1С на конкретном примере задачи.

Далее переходим в «Настройка правил объекта», где создаем новую настройку.
В диалоговом окне создания конвертации выбираем конфигурацию «источник» и конфигурацию «приемник» (которые ранее загрузили) и нажимаем ОК.

Так как в этой статье планировал показать создание «с нуля» и «без мусора», напоминаю, что ничего автоматически не создаем. Никаких прототипов.

В этом диалоговом окне ничего выполнять не будем, просто нажмем - «Закрыть».

Создадим правила для выгрузки не один документ в один, а один вид в другой, например, документ РеализацииТоваровУслуг из УТ 11 с необходимыми справочниками в документ ПоступлениеТоваровУслуг в БП 3.

Итак, создаем новое ПКО (правило конвертации объектов в 1С)

Выбираем источник РеализацияТоваровУслуг и приемник ПоступлениеТоваровУслуг и нажимаем ОК.
При этом появится диалоговое окно, где опять отказываемся от автоматического создания ПКС (Правил конвертации свойств). Далее выберем только необходимые.

А вот на предложение создать ПВД (правил выгрузки данных) отвечаем «Да».

Создаются ПВД, которые и будут отражаться в обработке универсального обмена XML для выбора:

Создадутся так же правила конвертации данных с пустыми правилами конвертации свойств.

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

Снимаем поиск по УИО:

Теперь начнем сопоставление необходимых свойств (реквизитов) объекта. Для этого жмем «СинхронизацияСвойств» (метка «1» на скрине). Убираем рекурсивное создание правил («2»). Снимаем все отмеченные реквизиты ("3"). И выберем самостоятельно, что нам нужно.

Для примера выбираем необходимое:

Обращаю внимание на то, что мы сделаем ПКС контрагента в организацию, а организацию в контрагента, и еще сопоставим некоторые реквизиты, которые не совпадают по имени, например, «Валюта» и «Валюта документа».

Где видим, что еще нет правил конвертации.

Начнем по реквизитам проходить и описывать. Сначала настраиваем поиск документа так, как писал ранее, делаем выгрузку и поиск документа на начало даты, и сделаем подмену нумерации. Первые три символа будем подменять на свой префикс «УТБ». А так как в БП и УТ нумерация по 11 символов, делаем составной номер: наш префикс и 8 символов от источника. Пример на скрине ниже.

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

Для этого ПКС установив, как не проведен, 0 или 1, используем как булево.

На примере валюты создаем для ПКС правило конвертации объекта. При этом считаем, что в обеих базах валюты имеются, и они должны синхронизироваться по коду. Поэтому в ПКО валют не будем создавать все ПКС, а только добавим Код для поиска. Т.е. от предложения создать ПКС для объекта - отказываемся.

В ПКО документа для ПКС подставилось созданное Правило конвертации. А само правило по умолчанию предлагается по уникальному идентификатору. Исправляем, делаем поиск по коду и устанавливаем свойство, чтобы не создавать новый объект.

В итоге получаем вариант:

Далее по аналогии создаем для остальных реквизитов ПКО и ПКС. Причем поиск организации по контрагенту и наоборот устанавливаем по ИНН. Примерно так это выглядит с минимальными реквизитами (можно добавлять при необходимости).

Для ПКО Договоры контрагентов делаем поиск по ПКС Контрагент, наименование и владелец.

Посмотрим, как указать в ПКС нужное значение в типе перечисления. Например, реквизит «ВидОперации». Тут можно использовать различные условия и подставлять значения. Например, нам нужно, чтобы «вид операции» выгружался всегда «Товары», в этом случае достаточно в «лоб» написать нужное значение строкой.

Ниже показано, как установить без сложностей и в большинстве случаев ПКС для КратностьВзаиморасчетов, КурсВзаиморасчетов, Счета учета.

Для ПКО Номенклатура оставим поиск по внутреннему уникальному идентификатору. Но обращу внимание на то, как можно переопределить свою группу. Например, мы согласны, что будет выгружаться новая номенклатура из конфигурации 1С: Управление торговлей 11, но нужно, чтобы номенклатура собиралась в определенной группе «НашаГруппа».

Для реализации данной задачи создаем ещё одно ПКО. Назовем его «НоменклатураРодитель», которое укажем в ПКС родителя в правиле конвертации.

Устанавливаем два поиска: по наименованию, где наименование жестко указываем нашей группы, и обязательное свойство признака «ЭтоГруппа» в истина.

Поскольку мы приняли решение, что у нас вся номенклатура падает в нашу группу, то нет необходимости при выгрузке выгружать группы из УТ 11. Для этого в ПКО Номенклатура в обработчике событий «ПередВыгрузкой» поставим фильтр, что не нужно выгружать группы «Отказ = Источник.ЭтоГруппа;».

В ПВД (правила выгрузки данных) РеализацииТоваровУслуг, добавим фильтр, чтобы не выгружались помеченные на удаление документы. Для этого в ПВД в обработчиках событий «ПередВыгрузкой» пропишем фильтр «Отказ = Объект.ПометкаУдаления;».


Сохраним разработанные правила в файл.


7. Подводим итоги: Выгрузка и загрузка данных с помощью разработанных правил обмена данными.

Открываем в 1С:Управление торговлей 11 обработку «Универсальный обмен данными в формате XML» V8Exchan83.epf.

Выгрузка прошла, теперь этой же обработкой делаем загрузку в 1С: Бухгалтерия предприятия 3.


Загрузка прошла. Проверяем, что как загрузилось. Итак, документ загружен, как мы и добивались - у нас Организация загружена в контрагента, а контрагент в организацию. Счета учета все загружены и установлены. Номер документа у нас получился с нашим префиксом и на начало дня. Все реквизиты, которые прописали, заполнены.

Проверяем загрузку номенклатуры. Видим, что всё получилось так, как мы и планировали.


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

Сейчас есть конвертация данных 3, она решает другие задачи. Поэтому конвертация 2, так же нужна. Всем удачи в изучении и освоении.

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

Учебник по 1С Конвертации данных (редакция 2) Правила выгрузки данных

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

Правила выгрузки данными указывают какие объекты разрешить пользователю для выгрузки.

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

Покажем последовательность действий в этом случае:

  1. Создаем новое правило обмена данными
  2. В появившемся окне сообщения указываем, что хотим самостоятельно создать новое правило конвертации объектов:
  3. Указываем объект источник и приемник:

  4. Согласимся с предложением программы автоматически создать правила конвертации свойств и значений (можно заметить, что автоматически были созданы еще правила конвертации объектов, они как раз нужны для того что бы переносить объекты не примитивных типов справочника "Номенклатуры". Посмотрите, что программа создала несколько правил конвертации объектов. Эти правила созданы не случайно!). После чего программа предложит нам автоматически создать правила выгрузки данных. Выберем, что бы программа создала правило выгрузки данных только для номенклатуры:

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

  6. Правила полностью готовы к использованию. Сохраним их в файл:

  7. Откроем программу "Бухгалтерия предприятия". Откроем универсальную обработку выгрузки и загрузки данных из XML и загрузим правила обмена:

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

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

ВНИМАНИЕ!!!

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

Если в правиле конвертации объектов нет конвертации табличных частей или движений и в событиях перед выгрузкой данных нет обращений к самому выгружаемому объекту, то имеет смысл установить у правила Выгрузки данных Флажок "Выбирать данные для выгрузки одним запросом". Такой подход позволит при выгрузке данных одним запросом получить все данные, которые нужно выгружать и это может заметно сократить время выгрузки.

Эти достаточно просты оптимизации позволяют сократить время выгрузки данных на 30-40 (!!!) % и более!




Close