|   |   | 
| 
 | Обмен хмл | ☑ | ||
|---|---|---|---|---|
| 0
    
        slonelefant 07.08.18✎ 17:45 | 
        есть бух 3 и самописка  между ними обмен. часть данных мигрирует прекрасно а часть стопориться на строчке 
 ТекущийОбъект = ПрочитатьXML(ЧтениеXML); выпадает исключение с ошибкой "Возможно поменялась структура конфигурации" что я пробывал: переписать схему преобразование хмл файла соответственно xsd схеме справочника номенклатура полученной путем экспорт схемы конфигурации. со справочником ОКОФ у меня получилось но там нет сложных типов, только строки и булево с числом. а вотс номенклатурой косяк. Внимание вопрос на сколько полно необходимо заполнять значениями передаваемый файл чтобы сериализатор его превратил в объект, то есть можно ли опустить необязательные реквизиты или их надо указать но можно оставить пустыми (<X/>) или нужно обязательно все заполнить. в обратнуюс сторону их буха в самописку все работает если необходимо могу предоставить всю инфу по структурам файлов реквизитов и тд | |||
| 1
    
        MaxS 07.08.18✎ 17:55 | 
        в схеме указано какие реквизиты обязательны     | |||
| 2
    
        Fram 07.08.18✎ 17:55 | 
        (0) эээ.. без конвертации что ли писал?     | |||
| 3
    
        Fram 07.08.18✎ 17:56 | 
        Открой для себя конфу Конвертация данных     | |||
| 4
    
        slonelefant 07.08.18✎ 18:01 | 
        (3) писал не я а штат из 8 прогеров три года назад.все ушли . меня полтора месяца назад взяли в "соло". тут все уже наполовину работало     | |||
| 5
    
        Fram 07.08.18✎ 18:02 | 
        (4) охренеть!     | |||
| 6
    
        slonelefant 07.08.18✎ 18:02 | 
        (1) в 
 <xs:complexType name="CatalogObject.Номенклатура"> <xs:sequence> <xs:element name="IsFolder" type="xs:boolean"/> <xs:element name="Ref" type="tns:CatalogRef.Номенклатура"/> <xs:element name="DeletionMark" type="xs:boolean"/> <xs:element name="Parent" type="tns:CatalogRef.Номенклатура"/> <xs:element name="Code" type="xs:string"/> <xs:element name="Description" type="xs:string"/> <xs:element name="PredefinedDataName" type="xs:string" minOccurs="0"/> <xs:element name="Артикул" type="xs:string" minOccurs="0"/> <xs:element name="ВидНоменклатуры" type="tns:CatalogRef.ВидыНоменклатуры"/> <xs:element name="ЕдиницаИзмерения" type="tns:CatalogRef.КлассификаторЕдиницИзмерения" minOccurs="0"/> <xs:element name="НаименованиеПолное" type="xs:string" minOccurs="0"/> <xs:element name="Комментарий" type="xs:string" minOccurs="0"/> <xs:element name="Услуга" type="xs:boolean" minOccurs="0"/> <xs:element name="НоменклатурнаяГруппа" type="tns:CatalogRef.НоменклатурныеГруппы" minOccurs="0"/> <xs:element name="СтранаПроисхождения" type="tns:CatalogRef.СтраныМира" minOccurs="0"/> <xs:element name="НомерГТД" type="tns:CatalogRef.НомераГТД" minOccurs="0"/> <xs:element name="СтатьяЗатрат" type="tns:CatalogRef.СтатьиЗатрат" minOccurs="0"/> <xs:element name="ОсновнаяСпецификацияНоменклатуры" type="tns:CatalogRef.СпецификацииНоменклатуры" minOccurs="0"/> <xs:element name="Производитель" type="tns:CatalogRef.Контрагенты" minOccurs="0"/> <xs:element name="Импортер" type="tns:CatalogRef.Контрагенты" minOccurs="0"/> <xs:element name="КодТНВЭД" type="tns:CatalogRef.КлассификаторТНВЭД" minOccurs="0"/> <xs:element name="КодОКВЭД" type="tns:CatalogRef.КлассификаторВидовЭкономическойДеятельности" minOccurs="0"/> <xs:element name="КодОКП" type="tns:CatalogRef.ОбщероссийскийКлассификаторПродукции" minOccurs="0"/> <xs:element name="СтавкаНДС" type="tns:EnumRef.СтавкиНДС" minOccurs="0"/> <xs:element name="ПродукцияМаркируемаяДляГИСМ" type="xs:boolean" minOccurs="0"/> <xs:element name="ПериодичностьУслуги" type="tns:EnumRef.Периодичность" minOccurs="0"/> <xs:element name="хлУчетПоСерийнымНомерамБУ" type="xs:boolean" minOccurs="0"/> <xs:element name="КодРаздел7ДекларацииНДС" type="tns:CatalogRef.КодыОперацийРаздела7ДекларацииПоНДС" minOccurs="0"/> <xs:element name="ДополнительныеРеквизиты" type="tns:CatalogTabularSectionRow.Номенклатура.ДополнительныеРеквизиты" minOccurs="0" maxOccurs="99999"/> </xs:sequence> </xs:complexType> вот какую схему дает конфа бух где сдесь что указано? | |||
| 7
    
        slonelefant 07.08.18✎ 18:03 | 
        (5) сам в шоке . можно конечно написать заново обмен но этот то почти работает надо просто разобраться и понять     | |||
| 8
    
        Fram 07.08.18✎ 18:04 | 
        Это идиотизм методом тыка подгонять хмл  под десериализатор. Перепиши через Конвертацию     | |||
| 9
    
        DrShad 07.08.18✎ 18:06 | 
        [Внимание вопрос на сколько полно необходимо заполнять значениями передаваемый файл чтобы сериализатор его превратил в объект]
 в данном случае вообще пофигу, а вот чтобы объект мог быть сохранен - тут вопрос | |||
| 10
    
        MaxS 07.08.18✎ 18:38 | 
        (6) эээ ну тогда в (9) ответ ;)
 Может быть лучше обрадовать начальство, мол недавно появилась Конвертация данных. Жаль что когда те 8 программистов работали "КД ещё не придумали" | |||
| 11
    
        Franchiser 08.08.18✎ 00:32 | 
        (6) кто же схему в таком виде анализирует? Загрузи куда-нибудь     | |||
| 12
    
        Franchiser 08.08.18✎ 00:35 | 
        Minoccurs = 0 это значит не обязательный     | |||
| 13
    
        slonelefant 08.08.18✎ 07:57 | 
        (11) Куда?
 смотри тут система такая есть регистр сведений который заполняется объектами из планаОбмена у каждого объекта есть схема преобразования. просле записи хмл файла "как есть" он трансформируется с помощью схемы под конфигурацию приемника и приемник сериализует его как объект. и обратный механиз такой же. из буха в самопис номенклатура передается а из самописки нет хотя остальные объекты прекрасно переносятся | |||
| 14
    
        hhhh 08.08.18✎ 08:32 | 
        (10) наоборот сейчас модно WSDL, XSD, преобразование схем из источника для приемника, язык преобразований. Это самый шик. А конвертация - это типа у них  дерьмо мамонта.     | |||
| 15
    
        messulete 08.08.18✎ 09:15 | 
        (0) сейчас разберешься может быть 
 но потом же тоже поддерживать ) | |||
| 16
    
        slonelefant 08.08.18✎ 09:47 | 
        для поддержки всего механизма необходимо как раз и разобраться как поправить xsd схему для изменившего состав реквизитов метаданных     | |||
| 17
    
        slonelefant 08.08.18✎ 10:09 | 
        этот пакет читается
 <?xml version="1.0"?> <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><CatalogObject.ОбщероссийскийКлассификаторОсновныхФондов NameOfSourceObject="Справочник.ОбщероссийскийКлассификаторОсновныхФондов"> <IsFolder>true</IsFolder> <Ref>6528cb36-8983-11e8-840b-0025b3238bca</Ref> <DeletionMark>false</DeletionMark> <Parent>00000000-0000-0000-0000-000000000000</Parent> <Code>ОК 013-2014 </Code> <Description>Принят и введен в действие Приказом Федерального агентства по техническому регулированию и метрологи</Description> <КонтрольноеЧисло>0</КонтрольноеЧисло> <НаименованиеГруппировки>Принят и введен в действие Приказом Федерального агентства по техническому регулированию и метрологии от 12 декабря 2014 г. N 2018-ст. (ред. от 04.07.2017 № 3) тест12 </НаименованиеГруппировки> </CatalogObject.ОбщероссийскийКлассификаторОсновныхФондов> </Data> а этот не читается Передаваемый пакет: <?xml version="1.0"?> <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><CatalogObject.Номенклатура NameOfSourceObject="Справочник.Номенклатура"> <Ref>0b977205-93fa-11e8-840b-0025b3238bca</Ref> <IsFolder>false</IsFolder> <DeletionMark>false</DeletionMark> <Parent>ac1e8408-d0d4-11dc-8e79-001a649433a4</Parent> <Code>УУ000025822</Code> <Description>Судно на воздушной подушке «Кайман-10»</Description> <НаименованиеПолное>Судно на воздушной подушке «Кайман-10»</НаименованиеПолное> <Артикул /> <ЕдиницаИзмерения>192e083a-ae08-11dc-9099-001a649433a4</ЕдиницаИзмерения> <СтавкаНДС>НДС18</СтавкаНДС> <Комментарий></Комментарий> <Услуга>false</Услуга> <НоменклатурнаяГруппа>f50c13d1-cfc8-11dc-8e79-001a649433a4</НоменклатурнаяГруппа> <СтранаПроисхождения>215d0c81-effa-4108-8ce4-d57185730a3b</СтранаПроисхождения> <НомерГТД>145fe76b-e5c5-11dc-8e79-001a649433a4</НомерГТД> <СтатьяЗатрат>00000000-0000-0000-0000-000000000000</СтатьяЗатрат> <ОсновнаяСпецификацияНоменклатуры>00000000-0000-0000-0000-000000000000</ОсновнаяСпецификацияНоменклатуры> <Производитель>00000000-0000-0000-0000-000000000000</Производитель> <Импортер>00000000-0000-0000-0000-000000000000</Импортер> <КодТНВЭД>00000000-0000-0000-0000-000000000000</КодТНВЭД> <КодОКВЭД>00000000-0000-0000-0000-000000000000</КодОКВЭД> <КодОКП>00000000-0000-0000-0000-000000000000</КодОКП> <ВидНоменклатуры>00000000-0000-0000-0000-000000000000</ВидНоменклатуры> <ПродукцияМаркируемаяДляГИСМ>false</ПродукцияМаркируемаяДляГИСМ> <хлУчетПоСерийнымНомерамБУ>true</хлУчетПоСерийнымНомерамБУ> <КодРаздел7ДекларацииНДС /> <ДополнительныеРеквизиты /> </CatalogObject.Номенклатура> </Data> | |||
| 18
    
        slonelefant 08.08.18✎ 12:16 | 
        ап     | |||
| 19
    
        Franchiser 08.08.18✎ 16:30 | 
        (18) загрузи хотя бы в 1С8 эту схему в конфигуратор, или используй спец инструменты. 
 "на сколько полно необходимо заполнять значениями передаваемый файл чтобы сериализатор его превратил в объект, то есть можно ли опустить необязательные реквизиты или их надо указать но можно оставить пустыми" Можно оставить пустыми если Minoccurs = 0 | |||
| 20
    
        slonelefant 08.08.18✎ 17:03 | 
        (19)
 сейчас только что посмотрел на как передается справочник договорыКонтрагентов он без ошибок, при сравнении все было заполнено кроме 1 реквизита <xs:element name="PredefinedDataName" type="xs:string" minOccurs="0"/> сделал схему по которой трансформируется номенклатура точно как в базе приемнике и без этого реквизита и с ним . порядок реквизитов совпадает но все равно в эту сторону миграция не работает. в обратную работает | |||
| 21
    
        hhhh 08.08.18✎ 17:25 | 
        (20) ну английский не учил в школе? PredefinedDataName это ИмяПредопределенныхДанных. То есть и козе понятно, что в договорах и в номенклатуре предопределенных элементов нету. То есть ты впустую роешь, потратил полдня.     | |||
| 22
    
        hhhh 08.08.18✎ 17:28 | 
        (18) номенклатура понятно почему не читается, там несколько лет назад добавился реквизит ВидАлкогольнойПродукции     | |||
| 23
    
        MaxS 08.08.18✎ 17:37 | 
        (14) Для современной типовой базы 1С и самописки наилучший вариант - КД3. Нужно лишь сосредоточится на правилах самописки после внедрения туда БСП. При обновлении БП 3.0 не нужно переделывать правила в самописке.
 С другой стороны если у ТС цель быть незаменимым и обеспечить себя работой надолго, то копаться в том, что есть - тоже вариант. Главное чтобы за это платили. А то эти знания в другом месте не будут так востребованы. | |||
| 24
    
        slonelefant 08.08.18✎ 17:45 | 
        (22) если ты имеешь ввиду реквизит "ПродукцияМаркируемаяДляГИСМ" то он есть . а видалкогольной продукции нет такого в БП 30.57.17
 (20) английский учил ипол дня именно на это не тратил. просто хочется понять почему что то читает а другое нет вот и сравниваю смотрю | |||
| 25
    
        slonelefant 08.08.18✎ 17:47 | 
        (23) незаменимых небывает )) в декабре прогера который 8 лет до меня тут сидел и знал то что писал уволили и сидели до июля вообще вез программистов     | |||
| 26
    
        slonelefant 08.08.18✎ 17:51 | 
        И вообще КД это прекрасно когда с нуля надо поднять обмен а когда 1 самописка другая переделанная типовая и как я понял с кучей условий в какой момент какая инфа по каким условиям передается где что должно переноситься а где нет на мой  взгляд необходимо поднять то что упало и не трогать то что работает. просто перекинуть номенклатуру это же не проблема вариантов много начиная как вы сказали КД кончая екселем.     | |||
| 27
    
        hhhh 08.08.18✎ 17:55 | 
        (26) ну в кд ты за 20 минут напишешь эти условия, а с этой хренью ты уже завис на полдня, причем даже не понял из-за чего.     | |||
| 28
    
        hhhh 08.08.18✎ 23:35 | 
        (24) ПериодичностьУслуги ? где у тебя?     | |||
| 29
    
        slonelefant 09.08.18✎ 09:55 | 
        (28) есть периодичность
 <Ref>0b977205-93fa-11e8-840b-0025b3238bca</Ref> <IsFolder>false</IsFolder> <DeletionMark>false</DeletionMark> <Parent>ac1e8408-d0d4-11dc-8e79-001a649433a4</Parent> <Code>УУ000025822</Code> <Description>Судно на воздушной подушке «Кайман-10»</Description> <Артикул /> <ВидНоменклатуры>00000000-0000-0000-0000-000000000000</ВидНоменклатуры> <ЕдиницаИзмерения>192e083a-ae08-11dc-9099-001a649433a4</ЕдиницаИзмерения> <НаименованиеПолное>Судно на воздушной подушке «Кайман-10»</НаименованиеПолное> <Комментарий></Комментарий> <Услуга>false</Услуга> <НоменклатурнаяГруппа>f50c13d1-cfc8-11dc-8e79-001a649433a4</НоменклатурнаяГруппа> <СтранаПроисхождения>215d0c81-effa-4108-8ce4-d57185730a3b</СтранаПроисхождения> <НомерГТД>145fe76b-e5c5-11dc-8e79-001a649433a4</НомерГТД> <СтатьяЗатрат>00000000-0000-0000-0000-000000000000</СтатьяЗатрат> <ОсновнаяСпецификацияНоменклатуры>00000000-0000-0000-0000-000000000000</ОсновнаяСпецификацияНоменклатуры> <Производитель>00000000-0000-0000-0000-000000000000</Производитель> <Импортер>00000000-0000-0000-0000-000000000000</Импортер> <КодТНВЭД>00000000-0000-0000-0000-000000000000</КодТНВЭД> <КодОКВЭД>00000000-0000-0000-0000-000000000000</КодОКВЭД> <КодОКП>00000000-0000-0000-0000-000000000000</КодОКП> <СтавкаНДС>НДС18</СтавкаНДС> <ПродукцияМаркируемаяДляГИСМ>false</ПродукцияМаркируемаяДляГИСМ> <ПериодичностьУслуги /> <хлУчетПоСерийнымНомерамБУ>true</хлУчетПоСерийнымНомерамБУ> <КодРаздел7ДекларацииНДС /> <ДополнительныеРеквизиты /> | |||
| 30
    
        slonelefant 09.08.18✎ 10:29 | 
        (28) есть там периодичность     | |||
| 31
    
        hhhh 09.08.18✎ 10:51 | 
        (30) все остальные проверь. чтобы все реквизиты четко были. Должно идеально совпадать, может типы реквизитов тоже проверить.     | |||
| 32
    
        slonelefant 09.08.18✎ 12:45 | 
        (31) походу дело не в точности 
 создал два одинаковых справочника в обоих базах добавил в план обмена написал схему где всего 4 реквизита код наименование ссылка и пометка запустил обмен а он также не хочет десериализовывать. где может быть зарыта собака определяющая набор реквизитов для сериализации? | |||
| 33
    
        slonelefant 09.08.18✎ 17:25 | 
        (32) не верно
 при перестановке местами реквизитов или при удалеии 1 реквизита обмен перестает работать а в случае с 2 справочниками был "лишний реквизит" родитель проблема "возможно" изза перечисления которого нет в базе источнике а в приемнике есть щас буду пробовать добавить перечисления к вновь созданному справочнику | |||
| 34
    
        slonelefant 10.08.18✎ 12:02 | 
        Удалось. 
 РЕшение вот такое заходим в базу приемник открываем обработку регистрация изменений и получаем результат стандартной выгрузки. под него подгоняем схему и все начинает работать конкретно у меня "замылился глаз" я КодРаздел7ДекларацииНДС передавал не как пустую ссылку справочника а как пустой простой тип | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |