Ошибка преобразования данных XDTO, управляемые формы

1. user612295_death4321 07.12.19 09:41 Сейчас в теме
Коллеги, всем добрый день!

Сегодня я поймал очень интересный кейс, первый раз за свою практику.

При открытии управляемой формы списка одного из регистра сведений, возникает ошибка

{ОбщийМодуль.ксПартии_Меркурий.Модуль(37)}: Ошибка при вызове метода контекста (ОткрытьФорму)
ОткрытьФорму( "РегистрСведений.ксОтправленнаяПродукция_Меркурий.Форма.АвтоматическоеСозданиеПартий",
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'v':
форма: Элемент
имя: {http://v8.1c.ru/8.2/uobjects}v
по причине:
Неизвестное свойство:
Свойство 'ВСД' не обнаружено

Ошибка на мой взгляд не связана с программным кодом (если шагать по отладке, то прошагаем обработчик ПриСозданииНаСервере, далее падает в это исключение, сама процедура при этом успешно шагает до последней строчки кода).

Единственную закономерность которую я заметил это то, что я вчера обновлял эту базу, но на моем локальном ПК по этой базе видимо полностью устаревший кэш (в контрукторе запроса, поля таблицы абсолютно не соответствовали фактическим).

В моем случае данную проблему я полечил, добавив реквизит в регистр сведений, чтоб вызвать платформенную реструктуризацию и провел обновление на ПК разработчика, который всегда этим занимается, затем реквизит удалил. Проблема ушла.

А вот теперь вопрос, влияет ли локальный кэш ПК на обновляемую базу, если структура метаданных локального кэша не соответствует фактической структуре таблицы БД?

Хотелось бы послушать Ваши мысли или готовые ответы если кто уже сталкивался) Платформа 8.3.9.2170, режим совместимости 8.2.13.

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

Старая структура таблицы (которая у меня сохранилась):

Поле1 - Ресурс.

Новая структура таблицы (которая фактически):

Поле1 - Измерение (т.е Имя было изменено на такое же)
Удалить_Поле1 - Ресурс.

Перед тем как дойти до этого:

1. Чистка локального + серверного кэша, ребуты службы, ребут сервера 1С.
2. Детальная отладка каждой строчки кода.
3. Перенос БД с одного сервера приложений, на другой сервер приложений.
4. Перенос БД с одного сервера СУБД, на другой сервер СУБД.
5. Модификация кода внутри формы, в надежде, что она перекомпилируется и ошибка исправится.
6. Создание на СУБД полностью отдельной таблицы - пустышки, абсолютно с такими же колонками, попытка подсунуть 1С эту пустышку. - Именно на этом этапе было понятно, что проблема все таки с данными. При полностью пустой таблице, форма открывается без каких либо проблем, при наполнении хотя бы одной строчкой регистра - ошибка.

Демоническим обновлением не балуемся.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user705522_constantin_h 35 09.12.19 10:38 Сейчас в теме
(1)
Посмотрите в пакетXDTO {http://v8.1c.ru/8.2/uobjects}v свойство ВСД есть?
3. user612295_death4321 09.12.19 13:25 Сейчас в теме
(2) Какой пакет XDTO ? Это интерактивное открытие формы списка регистра сведений.
4. mineralka 09.12.19 13:32 Сейчас в теме
По мне всеже косяк в коде, вот же ошибка (Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.), надо смотреть, может при открытии формы в параметрах что то не то передается!
5. user612295_death4321 09.12.19 13:36 Сейчас в теме
(4)
По мне всеже косяк в коде, вот же ошибка (Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.), надо смотреть, может при открытии формы в параметрах что то не то передается!


У регистра есть 2 формы, одна служебная, другая форма списка (сбоит на обоих формах). На форме списка в принципе отсутствуют обработчики "ПриСозданииНаСервере", "ПриОткрытии", динамический список там собирается не произвольным запросом. Ну а так же как описано выше, решить проблему удалось за счет принудительной платформенной реструктуризации (добавиление\удаление реквизита) без изменения какой либо программной части.

Какой момент участка кода я упустил?
6. mineralka 09.12.19 13:48 Сейчас в теме
(5) Можно код из вот этого модуля {ОбщийМодуль.ксПартии_Меркурий}, и код формы "АвтоматическоеСозданиеПартий"?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот