Пример обмена данными с «1С:Предприятием»
«1С:Шина» позволяет обмениваться данными с информационными базами «1С:Предприятия». Запись и чтение данных производится в формате XML, который используется в механизме обмена данными «1С:Предприятия».
Так как структура данных в «1С:Предприятии» может отличаться от структуры данных в «1С:Шине», для выполнения обмена необходимо настроить правила преобразования данных.
Рассмотрим пример обмена между приложением «1С:Шины» и информационной базой «1С:Предприятия», которые содержат следующие типы данных:
- Справочник «Заказы»
- Реквизиты
- Наименование:
Строка
- Покупатель:
Покупатели.Ссылка
- Стоимость:
Число
- Комментарий:
Строка
- Наименование:
- Табличные части
- ПозицииЗаказа
- Товар:
Товары.Ссылка
- Количество:
Число
- Цена:
Число
- Товар:
- ПозицииЗаказа
- Реквизиты
- Справочник «Товары»
- Реквизиты
- Код:
Строка
- Наименование:
Строка
- Категория:
Категории.Ссылка
- Код:
- Реквизиты
- Справочник «Покупатели»
- Реквизиты
- Наименование:
Строка
- Рейтинг:
Число
- Наименование:
- Реквизиты
- Справочник «Категории»
- Реквизиты
- Наименование:
Строка
- Наименование:
- Реквизиты
- Документ «Заказы»
- Реквизиты
- Наименование:
Строка
- Покупатель:
Покупатели.Ссылка
- Стоимость:
Число
- Комментарий:
Строка
- Наименование:
- Табличные части
- ПозицииЗаказа
- Номенклатура:
Номенклатура.Ссылка
- Количество:
Число
- Цена:
Число
- Номенклатура:
- ПозицииЗаказа
- Реквизиты
- Справочник «Номенклатура»
- Реквизиты
- Код:
Строка
- Наименование:
Строка
- ИмяКатегории:
Строка
- Склад:
Склады.Ссылка
- Код:
- Реквизиты
- Справочник «Покупатели»
- Реквизиты
- Наименование:
Строка
- Наименование:
- Реквизиты
- Справоч ник «Склады»
- Реквизиты
- Наименование:
Строка
- Наименование:
- Реквизиты
Выделим отличия между элементами проекта «1С:Шины» и объектами конфигурации «1С:Предприятия». Это необходимо для дальнейшего описания правил конвертации данных между ними.
- Заказы
- Отличается вид элемента проекта: в «1С:Шине» это справочник, а в «1С:Предприятии» — документ.
- Отличается имя реквизита табличной части: Товар — в «1С:Шине», Номенклатура — в «1С:Предприятии».
- Товары
- Отличается имя справочника: в «1С:Предприятии» это Номенклатура.
- Отличается тип реквизита Категория: в «1С:Шине» это ссылка на справочник, а в «1С:Предприятии» — строковое наименование категорий товаров.
- Реквизит Склад отсутствует в «1С:Шине».
- Покупатели
- Реквизит Рейтинг отсутствует в «1С:Предприятии».
- Справочник Категории отсутствует в «1С:Предприятии».
- Справочник Склады отсутствует в «1С:Шине».
Добавление элемента проекта ПланОбмена
-
Создайте элемент проекта вида ПланОбмена и задайте его имя — УдаленныеСклады.
-
Задайте элементы проекта, входящие в состав плана обмена. В данном примере регистрация изменений будет выполняться для справочников Заказы, Товары и Покупатели.
Настройка конвертации данных
Опишем взаимосвязь между данными, используя свойство плана обмена КонвертацияДанных:
-
Для свойства СхемаДанных данных укажите значение
Конфигурация1СПредприятия8
. Чтение и запись данных будет осуществляться в формате XML, используемом в механизме обмена данными «1С:Предприятия». -
В свойстве Элементы опишите правила конвертации данных. В качестве данных Слева укажите справочники, входящие в состав плана обмена (внутренние данные). Данные Справа — соответствующие им объекты конфигурации «1С:Предприятия» (внешние данные). Необходимо указывать полное имя объекта конфигурации, например: Документ.Заказы, Справочник.Номенклатура и т. д. Далее задайте правила конвертации между внутренними и внешними данными, как показано в примере ниже:
План обмена УдаленныеСкладыВидЭлемента: ПланОбмена
Ид: 5744f770-6102-424d-8335-9383c51fb08b
Имя: УдаленныеСклады
ОбластьВидимости: ВПодсистеме
КонвертацияДанных:
СхемаДанных:
ВидСхемыДанных: Конфигурация1СПредприятия8
Элементы:
-
# В текущей системе "Заказы" — это справочник,
# а во внешней системе — документ.
# Внесем изменения, чтобы автоматически заполнить
# схему данных ДокументОбъект.Заказы.
Слева: Заказы
Справа: Документ.Заказы
ТабличныеЧасти:
-
Слева: ПозицииЗаказа
Поля:
-
# Отличается имя реквизита табличной части:
# в текущей системе — "Товар",
# во внешней системе — "Номенклатура".
Слева: Товар
Справа: Номенклатура
-
Слева: Покупатели
Поля:
-
# Реквизит "Рейтинг" отсутствует во внешней системе.
# Исключим его из процесса обмена данными, иначе
# внешняя система получит информацию о поле, о котором не знает,
# и будет выброшено исключение.
Слева: Рейтинг
Действие: Игнорировать
-
# Отличается имя справочника:
# в текущей системе — "Товары",
# во внешней системе — "Номенклатура".
Слева: Товары
Справа: Справочник.Номенклатура
Поля:
-
# Отличается тип реквизита "Категория":
# в текущей системе это ссылка на справочник,
# а во внешней системе — строка.
# Логика конвертации данных реализуется в обработчиках ПослеКонвертации.
Слева: Категория
Справа: ИмяКатегории
ТипСправа: Строка
Влево:
ПослеКонвертации: ПослеКонвертацииВТовары
Вправо:
ПослеКонвертации: ПослеКонвертацииИзТовары
Реквизиты:
-
Имя: Наименование
Состав:
-
Элемент: Заказы
-
Элемент: Товары
-
Элемент: Покупатели