Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как без труда передавать данные между системами на базе 1С 8          
Vofka Подменю пользователя
сообщение 10.03.16, 16:14
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Часто приходится писать какие-то обмены данными между разными либо одинаковыми системами. Кто-то использует для этого конфигурацию Конвертация данных. Сам лично не имею большого опыта работы с ней, поэтому не могу судить про её функциональность и удобство работы. Но во многих случаях, если надо сделать какой-то не сложный обмен, например, обменяться номенклатурой или контрагентами, гораздо проще сделать выгрузку в какой-то файл в своем формате с последующей загрузкой оттуда. Отчасти это проще потому, что не надо разбираться с Конвертацией smile.gif . Короче. Статья не про Конвертацию, поэтому кому не интересно - можно закрывать.

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

Функция ДанныеВСтроку(Данные)
    
    Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
    ЗаписьXML = Новый ЗаписьXML();
    ЗаписьXML.УстановитьСтроку();
    Сериализатор.ЗаписатьXML(ЗаписьXML, Данные, НазначениеТипаXML.Явное);
    Возврат ЗаписьXML.Закрыть();
    
КонецФункции


На выходе получаем строку, которую можно записать в файл, передать в web/http сервис или по OLE. В принимающей системе, чтобы получить из строки объект, достаточно вызвать эту функцию:

Функция ДанныеИзСтроки(Строка)
    
    Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
    ЧтениеXML = Новый ЧтениеXML();
    ЧтениеXML.УстановитьСтроку(Строка);
    Возврат Сериализатор.ПрочитатьXML(ЧтениеXML);
    
КонецФункции


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

pablo Подменю пользователя
сообщение 10.03.16, 17:25
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Тогда уже следует озаглавить "Как без труда передавать данные между ИДЕНТИЧНЫМИ конфигурациями на базе 1С 8"


Signature
Правильно поставленный вопрос содержит до 90% ответа.

sava1 Подменю пользователя
сообщение 10.03.16, 17:27
Сообщение #3

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

+ Взять готовую обработку.

Vofka Подменю пользователя
сообщение 10.03.16, 17:36
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата(pablo @ 10.03.16, 17:25) *
Тогда уже следует озаглавить "Как без труда передавать данные между ИДЕНТИЧНЫМИ конфигурациями на базе 1С 8"

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

Сообщение отредактировал Vofka - 10.03.16, 17:36

pablo Подменю пользователя
сообщение 10.03.16, 17:43
Сообщение #5

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Тогда "Как без труда передавать данные ПРОСТЫХ ТИПОВ между конфигурациями на базе 1С 8"


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Vofka Подменю пользователя
сообщение 10.03.16, 20:25
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

pablo, а ТабличныйДокумент, это простой тип? smile.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 16:20
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!