Пример правила конвертации объектов. Пример правила конвертации объектов Продолжение работы с помощником

Доброго времени суток, уважаемые читатели блога . Раньше на этом сайте уже была опубликована статья о конвертации
, в этой статье было показано,
как можно настроить обмен, используя конструкторы, с помощью которых создаются правила обмена.
Этот способ можно используется при конвертации баз из 1С версии 7.7 в 8.2.
Сейчас мы поговорим, как переносить данные между конфигурациями 1С 8.2, которые несколько отличаются друг от друга.

Основное внимание в этой статье будет уделено конвертации табличной части документа, а это значит, что
мы будем работать с правилами конвертации группы свойств — ПКГС .

Подготовка к настройке ПКГС — правил конвертации группы свойств

Мы будем переносить документ «ПоступлениеТоваровУслуг», который имеет отличия в реквизите СтавкаНДС табличной части «Товары»
в базе источнике и приёмнике. В базе источнике этот реквизит имеет тип «СправочникСсылка.СтавкиНДС»,
а в базе приёмнике — тип «ПеречислениеСсылка.СтавкиНДС».

Кстати, для удобства можно определить

Кроме того, в базе приёмнике нам необходимо заполнять реквизит «СчетУчетаБУ», который также находится
в табличной части «Товары» документа «ПоступлениеТоваровУслуг». Данные для заполнения мы возьмём из реквизита «СчетУчетаБУ»
справочника «Номенклатура» базы приёмника.

Ситуация осложняется тем, что мы будем работать с табличной частью, поэтому нужно настраивать
правила конвертации группы свойств — ПКГС . Нам нужно будет обращаться к текущей строке табличной части.

Создание правил конвертации группы свойств 1С

У нас уже разработаны правила конвертации для документа «ПоступлениеТоваровУслуг».

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

Появится диалог «Настройка правил конвертации свойств (ПоступлениеТоваровУслуг)».

Нужно повторить то, что сделано на изображении и нажать кнопку «ОК».

Хотя мы создали правило конвертации для группы свойств , но пока оно не готово.
Помните, что реквизиты табличной части «СтавкиНДС» отличаются типами значений.
В базе источнике этот реквизит имеет тип «СправочникСсылка.СтавкиНДС»,
а в базе приёмнике — тип «ПеречислениеСсылка.СтавкиНДС». Здесь нам не хватает правила
конвертации из справочника в перечисление.

Обработчики событий для правил конвертации группы свойств

Чтобы настроить конвертацию свойства правильно, нужно создать новое правило конвертации объектов.

В появившемся диалоге указываем, что справочник «СтавкиНДС» конвертируется в перечисление с таким же названием.

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

В диалоге с вопросом «Создать правила выгрузки данных?» тоже выберем «Нет».

Двойным нажатием откроем диалог с настройкой правила конвертации объекта (ПКО) «СтавкиНДС».
Здесь на закладке «Обработчики событий» выберем событие «При выгрузке» и определим «Источник» и
«УзелСсылки», то есть то, что будет переносится.

Если Источник. Ставка = 0 Тогда
УзелСсылки = «Ставка0» ;
ИначеЕсли Источник. Ставка = 12 Тогда
УзелСсылки = «Ставка12» ;
ИначеЕсли Источник. Наименование = «без НДС» Тогда
УзелСсылки = «БезНДС» ;
КонецЕсли ;

После написания обработчика нажимаем кнопку «ОК».

В информации по обработчикам:

Источник — Произвольный — выгружаемый объект источник (ссылка или произвольные данные).
УзелСсылки — инициализированный xml-узел ссылки. Может использоваться,
например, для инициализации свойств других объектов.

Теперь явно укажем использование этого правила конвертации объекта при выгрузке реквизита «СтавкаНДС».
Преходим на закладку «Конвертация свойств (*)» документа «ПоступлениеТоваровУслуг» и открываем конвертацию
группы свойств «Товары», два раза щёлкаем на свойстве «СтавкиНДС» и в открывшемся диалоге, в поле «Правило»
выбираем правило конвертации объекта «СтавкаНДС».

Нажимаем кнопку «ОК».

Теперь нам осталось установить счета учёта в соответствии с теми значениями, которые определены для номенклатуры.
Перейдём на закладку «Правила конвертации объектов», найдём объект «ПоступлениеТоваровУслуг» и
двойным нажатием на нём откроем диалог правил конвертации объектов (ПКО).
Перейдём на закладку «Обработчики событий» на событие «После загрузки» и напишем следующее:

Для каждого СтрокаТЧ Из Объект. Товары Цикл
СтрокаТЧ. СчетУчетаБУ = СтрокаТЧ. Номенклатура. СчетУчетаБУ;
КонецЦикла ;

Теперь загрузим эти правила в источнике, используя внешнюю обработку «Универсальный обмен данными в формате XML» — «V8Exchan82.epf».
Выгрузим данные в xml-файл. Затем, откроем эту же обработку в базе приёмнике и выберем xml-файл выгрузки и загрузим данные.

Кстати, обработку «Универсальный обмен данными в формате XML» можно открыть через пункт меню
«Сервис» | «Прочие обмены данными» | «Универсальный обмен данными в формате XML». Об этом было немного написано в заметке о .

Мы ведем обучение с 2008 года, уверены в качестве наших курсов и даем на этот курс нашу стандартную 60-дневную гарантию .

Это значит, что если Вы начали заниматься по нашему курсу, но вдруг передумали (или, скажем, не имеете возможности), то у Вас есть 60-дневный срок для принятия решения – и если Вы производите возврат, мы возвращаем 100% оплаты.

Рассрочка платежа

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

Это возможно при оплате от физических лиц на сумму от 3 000 руб. до 150 000 руб.

Все, что Вам нужно сделать – это выбрать способ оплаты “Оплата через Яндекс.Касса”. Далее на сайте платежной системы выбираете “Заплатить по частям”, указываете срок и размер выплат, заполняете небольшую анкету – и через пару минут получаете решение.

Варианты оплаты

Мы принимаем все основные формы платежей.

От физических лиц – оплаты с карт, оплаты электронными деньгами (WebMoney, ЯндексДеньги), оплаты через интернет-банкинг, оплаты через салоны связи и так далее. Возможна также оплата заказа по частям (в рассрочку), в том числе без дополнительных процентов.

Начните оформлять заказ – и на втором шаге Вы сможете выбрать предпочтительный способ оплаты.

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

Обучение нескольких сотрудников

Наши курсы предназначены для индивидуального обучения. Групповое обучение по одному комплекту является незаконным распространением.

Если компании требуется обучить нескольких сотрудников, мы обычно предлагаем “дополнительные комплекты”, которые стоят на 40% дешевле.

Для оформления заказа на “дополнительный комплект” выберите в форме 2 и более комплектов курса , начиная с второго комплекта стоимость курса будет на 40% дешевле .

Есть три условия использования дополнительных комплектов:

  • нельзя приобрести только дополнительный комплект, если до этого (или вместе с ним) не был приобретен хотя бы один обычный
  • на дополнительные комплекты не действуют еще какие-то скидки (они и так дисконтированны, получилась бы “скидка на скидку”)
  • на дополнительные комплекты не действуют акции (например, компенсация в 7000 рублей) по той же причине

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

  • Бухгалтерия предприятия (демо-версия), редакция 3.0.30;
  • Зарплата и управление персоналом (демо-версия), редакция 3.0.25.

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

Важно отметить, что Ковертация данных позволяет организовать обмен не только между базами 8 версии программы, но и между 7 и 8 версиями платформы 1С.

Стартовый помощник

После установки конфигурации «Конвертация данных» и её запуска первое окно которое открывается – Стартовый помощник (Рис.1) .

Вызвать его повторно можно из меню Операции->Обработки либо из Справки, где эта обработка выделена в отдельную команду.

Так как мы не планируем использовать типовые правила переноса, а собираемся создать свои в следующем окне мы выберем соответствующий пункт из списка (Рис.2) .

Рис.2

Кроме создания новых правил обмена мы можем:


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

Файлы структуры метаданных

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

Важное правило! Обработки выгрузки структуры для разных баз данных должны принадлежать одной версии КД.

Для разных версий платформы фирма 1С реализовала разные обработки выгрузки структуры:

  • MD77Exp.ert – позволяет сохранить в файл структуру конфигураци семерочной базы данных;
  • MD82EXP.epf – выгуржает структуру баз данных, работающих на платформах версии 8.0-8.2;
  • MD83EXP.epf – предназначена для платформы 8.3.

Так как в условиях нашей задачи стоит организовать обмен между базами, работающими на релизе 8.3, мы воспользуемся третьей обработкой (Рис.4).

Рис.4

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

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

Для этого:


Для второй базы повторяем те же самые действия.

Вернемся к нашему помощнику.

Продолжение работы с помощником

После добавления двух наших баз в справочник он имеет вид (Рис.6).

Продолжим работу с помощником

В следующем окне (Рис.7) мы должны выбрать базу приемник и базу источник.

Рис.7

И вот мы подошли к окну, в котором на предложат определить по каким законам и соответствиям будет строиться наш обмен (Рис.8).

Рис.8

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

Так как мы хотим создать собственные правила мы пойдем по третьему пути.

Создание правила для обмена между справочниками

Устанавливаем переключатель в третий пункт списка и нажимаем кнопку «Выполнить».

Мы попали в мастер настроек элемента справочника «Правила конвертации объекта» (Рис.9)

Рис.9

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

В базе приемнике – таблицу, куда эти данные будут попадать.

На следующем этапе нам предстоит определиться с параметрами загрузки:

  • По каким реквизитам будет происходить поиск соответствия;
  • Что делать с существующими элементами;
  • Создавать ли отсутсвующие элементы;
  • Как поступать со ссылками;
  • Какие правила использовать для нумерации новых элементов.

И параметрами выгрузки.

Если мы решим выполнить автоматическое сопоставление данных, этот пункт мы пропустим.

В конце мы должны выгрузить созданные правила на диск.(Рис.10).

Рис.10

Обмен данными

Дальнейший обмен данными мы будем производить с помощью обработки V8Exchan83.epf (Рис.11), также входящей в комплект поставки. Использование стандартного обмена данными, входящего в состав конфигурации или самописной обработки, при использовании правил созданных в КД может закончится возникновением исключительной ситуации.

Рис.11

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

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

Эффективная работа программ 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.

Одна из самых распространенных проблем с которой сталкиваются 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 шаге можно указать свой код в обработчиках событий. Для нашей цели подойдет последний обработчик «После загрузки» который вызывается после загрузки объекта, но до его записи в базу данных, мы пропишем эму такой код:

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

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

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