Имя: Пароль:
1C
1С v8
Переход с платформы 8.3.5 на 8.3.6, проблема с ФабрикаXDTO
0 Berezzka
 
09.09.15
12:29
Доброго времени суток. Помогите решить проблему, при переходе на новый релиз платформы с 8.3.5.1460 на 8.3.6.2152 перестали работать ШМД(Шаблоны медицинских документов). В общем это внешние обработки данные которых при записи сохраняются в базе данных в виде xml файлов. Структура хранится отдельно... При попытке прочитать ШМД (на новой платформе) ШМД открывается, но данные пустые (не подтягиваются из xml).
   Я решил что возможно 1с ники перелопатили фабрикуXDTO и сериализатор записывает в xml другую структуру. Взял файл xml созданный на платформе 8.3.5 и сравнил его с файлом из 8.3.6, в общем  они полностью идентичны за исключением того что в файле из 8.3.6 появились новые теги.
1) Файл xml из 8.3.5
<?xml version="1.0"?>

-<FormDataStructure xsi:type="FormDataStructure" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns="http://v8.1c.ru/8.2/uobjects">;


-<descriptions trackChanges="true" remoteKey="81ADFEA8-A1FB-4C3A-A243-453418B0B4A7">

2) Файл xml из 8.3.6
<?xml version="1.0"?>

-<FormDataStructure xsi:type="FormDataStructure" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns="http://v8.1c.ru/8.2/uobjects">;


-<descriptions seqUo="0" sinUo="0" seqDe="0" sinDe="0" trackChanges="true" remoteKey="23AE6981-2D01-4F58-BC26-04F92A7D2540">

Вот эти теги seqUo="0" sinUo="0" seqDe="0" sinDe="0" , инет про них ничего не знает, никакой информации об изменениях к платформе 8.3.6 нет.
1 Serginio1
 
09.09.15
12:33
Посмотри различие в схеме
2 Serginio1
 
09.09.15
12:35
Если, что то грузи по старой схеме
3 Berezzka
 
09.09.15
14:27
В том то и дело, конфигурация самописная на основе 1С.Медицина8, сама конфа не менялась, обновили только платформу, в общем уже решили написать свои функции для записи в ХМЛ и чтения, чтобы не зависеть от изменений 1С-ников... (сегодня ужасный день, 1200 пользователей материли нас, я прям это чувствую :) )
4 Serginio1
 
09.09.15
15:03
(3) Ты схемы выгрузи и посмотри.
Встань на XDTO пакеты правой кнопкой Экспорт XML схемы конфигурации
5 Serginio1
 
09.09.15
15:10
Либо
Процедура ЗпаисатьПакет(Фабрика,URIПространстваИмен,ИмяФайла) Экспорт

         НаборСхем = Фабрика.ЭкспортСхемыXML(URIПространстваИмен);
        Для Счетчик = 0 по НаборСхем.Количество() - 1 Цикл
            Схема = НаборСхем.Получить(Счетчик);
            Схема.ОбновитьЭлементDOM();
            ЗаписьDOM = Новый ЗаписьDOM;
            ЗаписьXMLСтрока = Новый ЗаписьXML;
            ЗаписьXMLСтрока.УстановитьСтроку();
            ЗаписьXMLФайл = Новый ЗаписьXML;
            ЗаписьDOM.Записать(Схема.ДокументDOM, ЗаписьXMLСтрока);
            ЗаписьXMLФайл.ОткрытьФайл(ИмяФайла +"[" + Формат(Счетчик,"ЧЦ=10;ЧГ=0;ЧН=") + "].xsd");
            ЗаписьXMLФайл.ЗаписатьБезОбработки(ЗаписьXMLСтрока.Закрыть());
            ЗаписьXMLФайл.Закрыть()
        КонецЦикла;    
  
КонецПроцедуры

Я так понимаю тебе нужно пространство "http://v8.1c.ru/8.2/uobjects";

http://catalog.mista.ru/public/258947/
6 Serginio1
 
09.09.15
15:22
Сейчас такая схема

<xs:element name="tree" type="tns:FormDataTreeDescription" minOccurs="0" maxOccurs="unbounded"/>
        </xs:choice>
        <xs:attribute name="remoteKey" type="tns:RemoteKey" use="required"/>
        <xs:attribute name="trackChanges" type="xs:boolean" use="required"/>
        <xs:attribute name="sinDe" type="xs:unsignedInt" use="required"/>
        <xs:attribute name="seqDe" type="xs:unsignedInt" use="required"/>
        <xs:attribute name="sinUo" type="xs:unsignedInt" use="required"/>
        <xs:attribute name="seqUo" type="xs:unsignedInt" use="required"/>
    </xs:complexType>
    <xs:complexType name="FormDataFieldDescription">
        <xs:sequence>
            <xs:element name="type" type="tns:FormDataTypeDescription"/>
        </xs:sequence>
        <xs:attribute name="id" type="ns1:CompositeID" use="required"/>
        <xs:attribute name="name" type="xs:string" use="required"/>
        <xs:attribute name="nameRu" type="xs:string" default=""/>
        <xs:attribute name="mode" type="tns:AccessMode" default="rw"/>
        <xs:attribute name="imode" type="tns:AccessMode" default="rw"/>
        <xs:attribute name="fromCntx" type="xs:boolean" default="false"/>
    </xs:complexType>
7 Serginio1
 
09.09.15
15:25
Сохрани схему из старой платформы.
Создай фабрику
Фабрика=СоздатьФабрику(ИмяФайла);
И десериализуй из неё, а сохраняй уже через ФабрикаXDTO
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.