1с предприятие конвертация данных. Обучение нескольких сотрудников

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с-ники. Это перекидка справочников и документов из одной конфигурации в другую. Для решения таких задач 1с предлагает использовать специализированную конфигурацию «Конвертация данных». Возьмем, например задачу перекинуть контрагентов из базы 7,7 в базу 8. Что нам для начала нужно?

Разумеется сама база «Конвертация данных» и несколько внешних обработок, для 7.7 это:

  • MD77Exp.ert - обработка, которая выгружает в хмл файл структуру конфигурации 7.7 (выгрузка описания структуры метаданных)
  • V77Exp.ert - универсальная выгрузка данных в формате хмл

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

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

Аналогичную операцию проделываем для конфигурации 8. только там обработки называются:

MD81Exp.epf и MD82Exp.epf - выгрузка описания структуры метаданных для 1с 8.1 и 8.2 соответственно.

Аналогично с семеркой загружаем данные из хмл файла в нашу «Конвертацию данных».

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

Или запустив, стартовый помощник

В стартовом помощнике выберем «Создать новые правила обмена данными (с нуля)» и укажем две конфигурации, между которыми будем делать обмен.

Давайте перекинем из одной конфигурации в другую справочник «Номенклатура».

После того как отработают встроенные алгоритмы ми можем наблюдать соответствия реквизитов справочника «Номенклатура» в 7,7 и 8. Стандартно соответствие ставится для реквизитов с одинаковыми названиями, добавим соответствие между «ПолнНаименование» и «НаименованиеПолное», у меня выглядит так:

Заказчик сказал, что у него во всей номенклатуре единица измерения должна стоять «шт.», в этом мне помогут обработчики событии. Если вы мышкой клацните по номенклатуре, в верхней табличной части то откроется мастер настроек правила конвертации объектов, там, на 3 шаге можно указать свой код в обработчиках событий. Для нашей цели подойдет последний обработчик «После загрузки» который вызывается после загрузки объекта, но до его записи в базу данных, мы пропишем эму такой код:

если Объект. ЭтоГруппа= ложь тогда Объект. ВидНоменклатуры= справочники. ВидыНоменклатуры. НайтиПоНаименованию(" товар " ) ; Объект. ЕдиницаИзмерения = справочники. ЕдиницыИзмерения. НайтиПоНаименованию(" шт " ) ; конецесли ;

Все просто без изысков Объект - это наш обьэкт до записи в базу, очень помогает встроенная справка, которая вызывается при нажатии на кнопку «Информация по обработчикам».

Сохраняем правила конвертации в хмл файл, он нам понадобится в дальнейшем для перекидки справочника.

Эффективная работа программ 1С Предприятие 8.3 обусловлена правильностью настройки обмена данными между ними, то есть выгрузки и загрузки справочников, а также другой информации. В некоторых ситуациях достаточно воспользоваться обработкой «Универсальный обмен данными XML» или имеющимися типовыми правилами переноса, к примеру, при переходе с одной редакции программ на другую. Они могут быть встроены в программу с определенным списком правил обмена или находиться в папке установленного обновления. Например, AccountingBase («Бухгалтерия», базовая версия) и там находится папка «Обмен данными».

Рис.1

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

Для описания метаданных используется внешняя обработка MD83Exp.epf – для продуктов на платформе «1С:Предприятие 8.3» (управляемое приложение), MD82Exp.epf – для обычного приложения, в формате XML-файла. Обычно файл обработки располагаются в каталоге шаблонов, куда установлена конфигурация. К примеру, C:\Program Files\1cv8\tmplts\1c\Conversion\3_0_5_3\. В нашем примере используется «1С:Конвертация данных, ред. 3.0» (релиз 3.0.5.3).



Рис.2

Подготовка файла конвертации заключается в формировании XML-файла правил обмена. Рассмотрим на небольшом примере ход его создания.

Шаг 1. Программу можно скачать с сайта ИТС или установить с диска ИТС. Предположим, нам необходимо выгрузить справочник «Контрагенты» из «Бухгалтерии» в «УТ 8.3». Первая программа у нас – «База-источник», а вторая – «База приемник». Отметим, что обмен настраивается не только между базами 8.3, но и между 7.7 и 8.3 и другими.

Шаг 2. Выгружаем в файл XML структуру метаданных баз, задействованных в обмене, с помощью обработки MD83Exp.epf. Для этого в «Базе-источнике» и «Базе-приемнике» в режиме «1С Предприятие» открываем указанную обработку и выгружаем с ее помощью структуру конфигураций, указав имя формируемого файла. Для примера, так и назовем файлы – «База источник» и «База приемник».



Рис.3



Рис.4


Рис.5

Шаг 3. Выполняем экспорт xml-схемы формата обмена. Это файл с расширением «xsd». Получить его можно и из «Источника», и из «Приемника». Для этого откроем информационную базу в режиме «Конфигуратор» («Открыть конфигурацию»), в дереве метаданных раздел «Общие» и подраздел XDTO-пакеты.


Рис.6

Найдем строки с именем «EnterpriseData» (разные цифры – это разные версии формата) и, нажав правой кнопкой мышки, выберем команду «Экспорт XML-схемы».


Рис.7



Рис.8


Рис.9

Шаг 4. Добавляем структуру базы выгруженных конфигураций (источника и приемника) в базу «1С:Конвертация данных». Для этого в пункте меню «Конфигурация» для каждого сформированного файла (источник и приемник) выполняем «Загрузку структуры конфигурации».



Рис.10

Указываем путь к нашему файлу, способ загрузки выбираем – «В новую версию конфигурации», и нажимаем кнопку «Выполнить загрузку».



Рис.11



Рис.12

После загрузки файлов, если мы зайдем в раздел меню «Конфигурации», мы увидим две наших загруженных конфигурации.



Рис.13



Рис.14

Шаг 5. Загружаем структуры формата обмена. В пункте меню «Формат данных» выбираем команду «Загрузка структуры формата».



Рис.15

Указываем ранее выгруженный файл и нажимаем кнопку «Выполнить загрузку».



Рис.16

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



Рис.17

Шаг 6. Создание конвертации. Для выполнения поставленной нами задачи, создаем две конвертации. Первая – для выгрузки справочников «Сотрудники» и «Контрагенты» из «Бухгалтерии», а вторая – для загрузки в «УТ». Перейдем в меню «Конвертации».



Рис.18

Для каждой операции указываем наименование, например – «Выгрузка из БП», «Загрузка в УТ», название – БухгалтерияПредприятия, УправлениеТорговлей и версию формата (который мы загрузили, в нашем примере 1.6).



Рис.19



Рис.20

Шаг 7.



Рис.21

Открыв отдельно каждую операцию, настроим ее. На закладке «Правила конвертации объектов» нажимаем кнопку «Создать».

Рис.22

На закладке «Основные сведения» указываем идентификатор нашего правила (например, Справочник_Контрагенты_Выгрузка), объект конфигурации и объект формата. Область применения – «Для отправки».



Рис.23



Рис.24

Жмем «Автосопоставление», а нажатием кнопки «Создать правила конвертации свойств» сохраняем результат.



Рис.25



Рис.26



Рис.27

При необходимости другие поля настраиваются для конвертации вручную.

Шаг 8. Аналогично настраивается правило конвертации для загрузки, в нашем примере в «Управление торговлей». Обращаем внимание, что область применения – «Для получения».



Рис.28

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



Рис.29

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



Рис.30



Рис.31



Рис.32

Указываем новое правило конвертации свойства «ЮридическоеФизиескоеЛицо» для нашего справочника. Откроем правило конвертации объекта «Справочник_Контрагенты_Выгрузка».



Рис.33

На закладке «Правила конвертации свойств» добавим правило конвертации свойства, указав в нем «Перечисление_ЮридическоеФизическоеЛицо».



Рис.34



Рис.35

Действие аналогично и для второго правила «Справочник_Контрагнеты_Загрузка».



Рис.36

Шаг 10. Создаем правило обработки данных. Действия одинаковы для обоих созданных нами правил. Перейдя в правило конвертации, нажимаем кнопку «Создать на основании» - «Правило обработки данных».



Рис.37

Данные в него попадают автоматически.



Рис.38



Рис.39



Рис.40

Шаг 11. Выгрузить модуль менеджера обмена, или в правиле конвертации, нажав «Сохранить модуль менеджера обмена», или через пункт «Конвертация» - «Выгрузка модуля».

Рис.41



Рис.42



Рис.43

Далее открываем конфигурацию, для которой предназначается наш модуль, и в дереве метаданных ищем «МенеджерОменаЧерезУниверсальныФормат», открываем его и вставляем туда свой скопированный в буфер обмена модуль.



Рис.44

При настройке обмена рассматриваемая программа имеет пока единственную функцию – формирование текстов общих модулей МенеджерОбменаЧерезУниверсальныйФормат для каждой из баз, используя структуру метаданных конфигураций, участвующих в обмене, и схемы универсального формата. Эти модули лучше сформировать и применять на исходном этапе настройки обмена, а продолжать их доработку стоит прямо в тексте модуля конфигуратора.

Редакция конфигурации «Конвертация данных 3.0» – новая, но прогрессивная технология упрощения обмена между конфигурациями, используя универсальный формат обмена EnterpriseData.