Взял код с типовой демонстрационной конфигурации к платформе, встроил в свою конфигурацию.
Есть справочник с табличной частью, как только ЧтениеXML доходит до описания табличной части, так все приехали: ошибка преобразования XML.
Обмен между конфигурацией и ее мобильным клиентом, с автономным режимом, соответственно объекты участвующие в обмене включены в состав "автономной конфигурации".
Дополню информацию, в общем методом проб и ошибок, опытов и экспериментов. В общем надеюсь кому нибудь пригодится с ошибкой преобразования XML.
Скриншотов не будет, ибо задолбался с этими экспериментами.
Ситуация следующая: при включении в состав автономной сразу нескольких объектов, которые содержат ошибки (ошибки именно для мобильного клиента с автономным режимом, допустим недоступность на автономном сервере некоторых модулей) нажимаю "Обновить конфигурацию базы данных" и получаю вылет конфигуратора по ошибке "Нарушена целостность конфигурации: перезапустить\завершить".
После перезапуска конфигуратора при повторной попытке обновить конфигурацию снова вылет. Способ: тестирование и исправление -> "пересоздание автономной конфигурации" - посыпались ошибки, о недоступности модулей, о использовании объектов\методов недоступных на мобильном клиенте, все ненужное обрамил "#Если Не МобильныйАвтономныйСервер Тогда #КонецЕсли".
Также на эти вылеты списал следующую ситуацию: несмотря на выставленные галочки относительно доступности объектов и реквизитов в автономной конфигурации, ситуация в реальности (на андроиде) была иная.
Справочник с табличной частью "Параметры", в которой 5 реквизитов: "Параметр, Значение, ЗначениеФакт, ЗначениеПлан, Примечание". Справочник полностью: сам, все реквизиты объекта, все реквизиты табличной части включены в состав автономной конфигурации. Казалось бы, что может пойти не так. Но попытки загрузки объектов этого справочника через XML постоянно обваливались в "Ошибка преобразования XML". Дошел до того, что скопировал справочник в конфигурации, включил его в автономку, прописал права, частично заполнил и обработкой сделал сериализацию одного элемента в XML, полученный текст XML вставлял в обработку в мобильном клиенте (в автономном режиме) и производил обратную сериализацию. На скопированном справочнике все ок, на исходном ошибка. В итоге, в режиме отладки автономного сервера (это важный момент, т.к. именно в этом режиме можно увидеть что реально творится на автономке), через окно "Вычислить выражение" введя выражение: Справочники.ИмяСправочника.НайтиПоКоду("00000001").Параметры[0] увидел что в табличной части один реквизит "Параметр" и "НомерСтроки". А хде блин, другие? А вот хз, хрень.
Тестирование и исправление - пересоздание автономной конфигурации и переключение доступности объектов в автономке с сохранением\обновлением\перезапуском.
С мобильной платформы удалял базу из списка, в надежде на очистку "кэша" не помогло.
(8) Да, включен. ПараметрыУГМ И ТипыКонтейнеров включены.
Единственный важный нюанс: табличная часть "Параметры", там два реквизита: "Параметр" и "Значение". Для "Параметр" составной тип данных: "СправочникСсылка.ПараметрыУГМ, ПланВидовХарактеристикСсылка.ПараметрыУГМ", соответственно оба объекта включены в состав автономной конфигурации. "Значение" - тип данных характеристика от "ПланВидовХарактеристикСсылка.ПараметрыУГМ". На выходе в чистых данных, чаще всего тип это справочник ТипыКонтейнеров.
То что в XML примере тип реквизита "Параметр" обозначен как справочник ПараметрыУГМ, это эксперименты с обменом. Сделал справочник соответствующий ПВХ и перед сериализацией объекта производил подмену Параметра с ПВХ на его аналог в справочнике.
Обмен падает на первой заполненной табличной части.
В общем проверил с использованием исключительно справочников - работает.
Добавил новый ПВХ - более "чистый" по сравнению с имеющимся, через него определил два типа Справочник.ТипыКонтейнеров и Булево. Этим ПВХ определил типы реквизитов Параметр и Значение. Включил ПВХ в состав автономной конфигурации и план обмена - тоже все сработало.
Буду разбираться со своим хитросплетением типов у ПВХ. Плохо, что XML ругается так, что без бутылки не поймешь что именно ему не нравится.
Дополню информацию, в общем методом проб и ошибок, опытов и экспериментов. В общем надеюсь кому нибудь пригодится с ошибкой преобразования XML.
Скриншотов не будет, ибо задолбался с этими экспериментами.
Ситуация следующая: при включении в состав автономной сразу нескольких объектов, которые содержат ошибки (ошибки именно для мобильного клиента с автономным режимом, допустим недоступность на автономном сервере некоторых модулей) нажимаю "Обновить конфигурацию базы данных" и получаю вылет конфигуратора по ошибке "Нарушена целостность конфигурации: перезапустить\завершить".
После перезапуска конфигуратора при повторной попытке обновить конфигурацию снова вылет. Способ: тестирование и исправление -> "пересоздание автономной конфигурации" - посыпались ошибки, о недоступности модулей, о использовании объектов\методов недоступных на мобильном клиенте, все ненужное обрамил "#Если Не МобильныйАвтономныйСервер Тогда #КонецЕсли".
Также на эти вылеты списал следующую ситуацию: несмотря на выставленные галочки относительно доступности объектов и реквизитов в автономной конфигурации, ситуация в реальности (на андроиде) была иная.
Справочник с табличной частью "Параметры", в которой 5 реквизитов: "Параметр, Значение, ЗначениеФакт, ЗначениеПлан, Примечание". Справочник полностью: сам, все реквизиты объекта, все реквизиты табличной части включены в состав автономной конфигурации. Казалось бы, что может пойти не так. Но попытки загрузки объектов этого справочника через XML постоянно обваливались в "Ошибка преобразования XML". Дошел до того, что скопировал справочник в конфигурации, включил его в автономку, прописал права, частично заполнил и обработкой сделал сериализацию одного элемента в XML, полученный текст XML вставлял в обработку в мобильном клиенте (в автономном режиме) и производил обратную сериализацию. На скопированном справочнике все ок, на исходном ошибка. В итоге, в режиме отладки автономного сервера (это важный момент, т.к. именно в этом режиме можно увидеть что реально творится на автономке), через окно "Вычислить выражение" введя выражение: Справочники.ИмяСправочника.НайтиПоКоду("00000001").Параметры[0] увидел что в табличной части один реквизит "Параметр" и "НомерСтроки". А хде блин, другие? А вот хз, хрень.
Тестирование и исправление - пересоздание автономной конфигурации и переключение доступности объектов в автономке с сохранением\обновлением\перезапуском.
С мобильной платформы удалял базу из списка, в надежде на очистку "кэша" не помогло.
(15) ты не понял меня, то что это первая строка тут вопросов нету. Суть в том, что в табличной части 5 реквизитов колонок, но в автономке из этих пяти была доступна только одна колонка "Параметр", остальные реквизиты-колонки не существовали в автономной конфигурации.
Первая картинка реальная, исходная картина мира.
Вторая картинка, это что видел отладчик на "сервере"
Третья картинка, то что видел отладчик на "автономном сервере"
P.S. Само собой, что в окне "Состав автономной конфигурации" для всех реквизитов табличной части были проставлены галки.
(19) Пересоздание автономки как раз и скрывается в ТиИ.
По факту, как только что нибудь включаешь в состав автономки и нажимаешь обновить конфигурацию, конфигуратор генерирует автономную конфигурацию.
Но вот если автономка уже была создана и при включении новых объектов произошли ошибки, в некоторых случаях (у меня при массовом включении объектов), эта созданная автономная конфигурация не завершает некий "процесс сборки" и конфигуратор падает: целостность конфигурации повреждена и все, асталависта.
Я не знаю точно что именно там внутрях происходит, это исключительно догадка.
Мне помогло именно выключение доступности объектов в автономке с обновлением, сохранением, перезапуском и последующим включением.