Имя: Пароль:
1C
1С v8
Передача элемента справочника через веб-сервис
0 Evgeny_S_K
 
03.02.15
21:37
Добрый день!
Есть две идентичных базы - база-источник и база-приемник. Стоит задача передать через веб-сервис элемент справочника из базы-источника в базу-приемник так, чтобы в базе-приемнике был создан идентичный элемент справочника (с таким же UID, что и в базе-источнике). У элемента справочника помимо реквизитов с простыми типами данных имеются реквизиты-ссылки на др. справочники и табличные части. При передаче элемента справочника должны быть переданы и элементы связанных с ним справочников, на которые ссылаются реквизиты данного справочника. Сам веб-сервис сделан, загвоздка в том, как написать обмен, т.е. что возвращать из функции базы-источника и как переданные данные обработать в базе-приемнике.

Пробовал в базе-приемнике в функции веб-сервиса написать так:

Возврат СериализаторXDTO.ЗаписатьXDTO(СпрНоменклатураОбъект);

Не сработало - при попытке прочитать XDTO в базе-приемнике выдается сообщение:

{ОбщийМодуль.РаботаСВебСервисом.Модуль(1676)}: Ошибка при вызове метода контекста (ПрочитатьXDTO)
    СтруктураДанных = СериализаторXDTO.ПрочитатьXDTO(ДанныеXML);
по причине:
Несоответствие типов XDTO:
Тип '{http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.Номенклатура' не найден
Тип принадлежит пакету, отсутствующему в фабрике типов XDTO

При том, что у веб-сервиса я поставил все галочки в настройке "ПакетыXDTO", в частности, у пакета "{http://v8.1c.ru/8.1/data/enterprise/current-config";

Подскажите, пожалуйста, как мне данную проблему решить?
1 Asmody
 
03.02.15
21:45
current-config - это всегда __текущая__ конфигурация.
current-config одной конфигурации не равен current-config другой конфиграции, даже если они идентичны.
Создавай фабрику от веб-сервиса и десериализуй объекты с ее помощью.
2 Evgeny_S_K
 
03.02.15
21:57
Если можно, опишите подробнее, как это сделать: фабрика создается программно?
3 sapphire
 
03.02.15
23:25
(0) можно несколькими путями, самое простое после записи получаете обьект и запмсываете его представление через сериализатор в строку, которая передается web сервису и агрегируется в базе приемнике.
4 Evgeny_S_K
 
04.02.15
12:27
Можете привести пример?
5 Сергиус
 
04.02.15
12:51
(4)СериализаторXDTO.XMLСтрока(<ТвояСсылка>)
6 Serginio1
 
04.02.15
12:53
7 Dolphinbet
 
04.02.15
13:21
(5) Это как так?)