1с ошибка отображения типов отображение лексического значения
Исходные: Две конфигурации с одинаковыми названиями перечислений но отличающимися значениями: Конфигурация 1: Перечисление1 Создаю объект XDTO по своей схеме. Делаю выгрузку данных из Конфигурации 1, где у нас в конфигурации только 2 значения. Заполняю объект XDTO. Вариант1: ОбъектXDTO.Свойство = Значение3Строкой; Выдает ошибку: Ошибка при установке значения атрибута контекста (Перечисление1): Ошибка отображения типов: Отображение лексического значения 'Значение3' в значение типа 'ПеречислениеСсылка.Перечисление1' Не работает. Пытается преобразовать значение в ссылку 1С, не выходит, отваливается в ошибку. ОбъектXDTO.Свойство = Значение2Строкой; Работает. Перобразовал в ссылку 1С, так как нашел ее. Вариант2: Переименовываем(удаляем) объект метеданных Перечисление1 в конфигурации. ОбъектXDTO.Свойство = Значение3Строкой; Записывается без ошибки. Записывается как строка без преобразования. ОбъектXDTO.Свойство = Значение2Строкой; Записывается без ошибки. Записывается как строка без преобразования. Вопрос. Как в данном случае записать в объект XDTO значение перечисления отсутствующее в конфигурации источнике если перечисление с одинаковыми названиями есть в обоих конфигурациях. Пока вопрос решил добавлением значение3 из конфигурации2 в конфигурацию 1, но это однозначно костыль.
Корректировка: Исходные: Две конфигурации с одинаковыми названиями перечислений но отличающимися значениями: Конфигурация 1: Перечисление1 Создаю объект XDTO по своей схеме. Делаю выгрузку данных из Конфигурации 1, где у нас в конфигурации только 2 значения перечисления. Заполняю объект XDTO. Вариант1: ОбъектXDTO.Свойство = Значение3Строкой; Выдает ошибку: Ошибка при установке значения атрибута контекста (Перечисление1): Ошибка отображения типов: Отображение лексического значения 'Значение3' в значение типа 'ПеречислениеСсылка.Перечисление1' Не работает. Пытается преобразовать значение в ссылку 1С, не выходит, отваливается в ошибку. ОбъектXDTO.Свойство = Значение2Строкой; Работает. Перобразовал в ссылку 1С, так как нашел ее. Вариант2: Переименовываем(удаляем) объект метеданных Перечисление1 в конфигурации. ОбъектXDTO.Свойство = Значение3Строкой; Записывается без ошибки. Записывается как строка без преобразования. ОбъектXDTO.Свойство = Значение2Строкой; Записывается без ошибки. Записывается как строка без преобразования. Вопрос. Как в данном случае записать в объект XDTO значение перечисления отсутствующее в конфигурации источнике если перечисление с одинаковыми названиями есть в обоих конфигурациях. Пока вопрос решил добавлением значение3 из конфигурации2 в конфигурацию 1, но это однозначно костыль.
Через Пакеты XDTO ты описываешь свои данные. Данные могут быть как структурой так и массивом или списком структур или примитивных типов.
Для того что бы создать массив нужно указать минимальное количество 0, максимальное количество размер массива, для списка это -1. Ну и выдумать свое пространство имен. Все достаточно просто.
А ты обычным чтение XML пройдись, а сериализатору подсовывай не весь файл, а только данные относящиеся к одному объекту. Объект может быть списком.
еще я чет не понял - нафик я создаю сериализатор, если все равно пользуюсь только Сериализатор.ФабрикаХДТО?
Не СписокОбъектов.Добавить посмотри в отладчике какие у СписокОбъектов свойчтва. Сейчас сам посмотрю тже
по причине:
Несоответствие типов XDTO:
Тип 'TypeDescription' не найден
Значение не может быть установлено свойству, имеющему объектный тип
напоролся
по причине:
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: Array - [7,16]
Проверка дополнительного свойства:
имя: Value
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: CatalogObject.усНоменклатура - [16,3]
Проверка дополнительного свойства:
имя: БазоваяЕдиницаХранения
по причине:
Ошибка отображения типов:
Отображение лексического значения '' в значение типа 'СправочникСсылка.усЕдиницыХранения'
по причине:
чего то снова не хваатет?
(68)Не правильно. Не точно мысль выражена.
Для объектов справочника в xml данных, должны быть все реквизиты которые определены для объекта с учетом значения предопределенного реквизита ЭтоГруппа. Реквизиты могут быть определены для групп и для элементов по-разному. Это никак не отражается в xml-схеме, но это влияет на сериализацию и успешность десериализации.
В сериализации первого объекта в массиве видно что это группа (
1)они все определены для группы?
2)пустые значения (в понятиях 1С значения по умолчанию) не всегда могут быть представлены просто пустой строкой, например xml-предствление пустой ссылки - это вовсе не пустая строка (если БазоваяЕдиницаХранения это ссылочный тип, то должно быть 00000000-0000-0000-0000-000000000000).
по причине:
Несоответствие свойства и элемента данных XDTO:
Свойство: 'ТипТранспортнойЕдиницы'
на момент установки это свойство неопределено
Ты эксортируй пакеты в выгружаемую конфигурацию из загружаемой. Тогда заполнение должно пройти нормально и загрузка.
(70)почему CatalogObject.усТипыТранспортныхЕдиниц?
там не может быть CatalogObject, там должен быть CatalogRef
Ну и вообще в целом в Array выгружать все это вовсе не обязательно. Можно выгружать в корневой элемент с любым именем, а потом просто читать сериализатором последовательно уже в объекты, как написано в (28).
(74) фабрика в моей конфиге создается по хмл-схеме приемника
(73) при попытке создать ref - получаю вместо ссылки Неопределено, так хоть объект создается
(75) да я хочу без лишнего класса, через фабрику )
при попытке загрузки
имя: БазоваяЕдиницаХранения
по причине:
Ошибка отображения типов:
Отображение лексического значения '' в значение типа 'СправочникСсылка.усЕдиницыХранения'
по причине:
(75) С эрраем то проще читать. Меньше буковок нажимать. Он для выгрузки использует родной сериализатор, а по уму должен заполнять объекты из пакета в экспортируемую конфигурацию
Внешняя обработка для работы с настройками, хранящимся в стандартном хранилище (ХранилищеОбщихНастроек, ХранилищеНастроекДанныхФорм, etc.). Не требует БСП, дополнительных библиотек. Платформа: 8.3. Интерфейс: Такси, 8.2.
Рано или поздно разработчики сталкиваются с проблемой управления настройками форм, отчетов, хранящимся в стандартных хранилищах. К сожалению, платформа не содержит пользовательских механизмов для работы с такими настройками. Кое-что, конечно, реализовано в БСП, но, как правило, этого далеко не достаточно. Предлагаемая обработка позволяет отчасти решить эту проблему.
Поддерживаются стандартные хранилища настроек:
- ХранилищеНастроекДанныхФорм
- ХранилищеВариантовОтчетов
- ХранилищеОбщихНастроек
- ХранилищеПользовательскихНастроекДинамическихСписков
- ХранилищеПользовательскихНастроекОтчетов
- ХранилищеСистемныхНастроек
Основная форма обработки разделена на две части: в левой отображается полный список настроек по выбранному хранилищу, в правой - настройки, отобранные по пользователю. В левой части также доступен отбор. Список настроек отображается в виде дерева, что упрощает навигацию.
При позиционировании на строке списка в левой части, система пытается найти похожий объект в правой и позиционироваться на нем - в ряде случаев это можно использовать для сравнения. Под каждым списком находится поле для значения настройки.
Реализовано множественное копирование: несколько выбранных настроек можно скопировать нескольким выбранным пользователям. Для этого надо переключить режим правой части формы.
Возможно копирование "групп" настроек.
Настройки можно редактировать, добавлять, удалять.
Редактирование значений простых типов и ссылочных типов доступно напрямую, в поле формы:
Редактирование коллекций значений, и значений других сериализуемых типов доступно с помощью XML-сериализации:
Как обычно, приветствуются замечания, предложения, вопросы.
Upd 27.03.2018
Добавлен новый функционал: экспорт выделенных настроек в файл и импорт настроек из файла. Экспорт возможен только сериализуемых настроек. Если выбрано имя пользователя, то при импорте все настройки из файла принудительно записываются для этого пользователя, если имя пользователя не выбрано - то используются имена пользователей из файла.
Добрый день.
При выгрузке базы для перехода в сервис 1с ФРЕШ выходит ошибка:
При выгрузке данных произошла ошибка.
Ошибка отображения типов:
Отображение лексического значения ‘ПризнаниеВНУЛизинговыхПлатежей’ в значение типа ‘ПеречислениеСсылка.ВидыРегламентныхОпераций’
:ВыгрузитьЭлементНастроек(
:ВыгрузитьНастройкиСтандартногоХранилища();
:МенеджерВыгрузки.ВыгрузитьДанные();
:Обработки.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиНастроекПользовате-лей.ВыгрузитьНастройкиПользователейИнформационнойБазы(
:Возврат ВыгрузкаЗагрузкаДанныхСлу-жебный.ВыгрузитьДанныеТекущейОбластиВАрхив(ПараметрыВыгрузки);
:Результат = ВыгрузкаЗагруз-каДанных.ВыгрузитьДанныеТекущейОбластиВАрхив(ПараметрыВыгрузки);
по причине:
Ошибка формата объекта настроек
по причине:
Ошибка формата потока
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: item Форма: Элемент Тип: anyType
по причине:
Ошибка преобразования данных XDTO:
Значение: ПризнаниеВНУЛизинговыхПлатежей Тип: EnumRef.ВидыРегламентныхОпераций
по причине:
Ошибка отображения типов:
Отображение лексического значения ‘ПризнаниеВНУЛизинговыхПлатежей’ в значение типа ‘ПеречислениеСсылка.ВидыРегламентныхОпераций’
Здравствуйте!
Без базы не поможем, к сожалению. Такие ошибки смотрятся только Отладчиком остановкой на ошибке. Думаю, что вы «подкованный» пользователь и кеш чистили. Поэтому сказать можем только то, что видим: у меня в редакции 3.0.107.37 в перечислениях Виды регламентных операций значения Признание в НУ лизинговых платежей нет, только арендных.
Сейчас обновлю базу, проверю на актуальной.
Смотреть тут конечно, нужно, код. У меня подобной ошибки не случалось. В интернете раньше на старых платформах иногда мелькали подобные ошибки, но на текущих платформах не видела. Если база менялась (даже расширениями), то попробуйте удалить все расширения, возможно, если конфликт на той стороне, что-то изменится.
В актуальной версии также среди видов регламентных операций нет значения Признание в НУ лизинговых платежей. Так что информация к размышлению у вас есть.
Вот это место, где происходит ошибка, судя по скрину, у вас может быть больше информации в ЖР.
Также можно почистить перед выгрузкой все настройки пользователей и даже попробовать удалить самих пользователей, поскольку ошибка именно в обработке ВыгрузкаЗагрузкаДанныхМенеджерЗагрузкиНастроекПользователей
Но ошибки такого рода все-таки без базы не решаются.
Ирина спасибо огромное за ответ.
В журнале регистрации больше информации не смогла найти.
Попробую отладчик и другие предложенные вами варианты.
Пользователя не было в базе — пробовала создавать и удалять — все равно ошибка сохраняется.
Больше, к сожалению, не помогу.
Мы консультируем по типовому функционалу 1С, ошибки требуют анализа как самой базы, так и среды в которой она работает. Тут нужно отдавать базу программисту. Все, что я смогла посмотреть по типовому коду я написала, но этого, конечно, мало.
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Спасибо Марии за умение доходчиво донести информацию!
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Описание ошибки:
Ошибка при программировании, конфигурировании кода в 1С 8:
Ошибка отображения типов:
Отсутствует отображение для типа 'ЭлементСпискаЗначений'
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'v':
форма: Элемент
имя: v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'value':
форма: Элемент
имя: value
Нажатие на изображении увеличит его
Возникла при написании кода индивидуальной конфигурации. Но, как оказалось, может подстерегать программиста из-за его невнимательности и при конфигурировании в других конфигурациях. Итак, в чем же причина возникновения данной ошибки. В управляемой форме был создан реквизит типа "СписокЗначений". При открытии формы по коду срабатывает обработчик заполнения этого списка значений. Т.е. в коде создается переменная с помощью конструктора "Новый СписокЗначений", значение которой потом и устанавливается реквизиту формы. Но, перед тем как это происходит, в коде список значений изменяется - в частности выполняется его дополнительная сортировка. Конечно, ошибка "Ошибка отображения типов: Отсутствует отображение для типа 'ЭлементСпискаЗначений'" может возникнуть у Вас не только в такой ситуации. Сейчас разберемся в чем ее суть.
Как было отмечено в этой частной задаче выполняется сортировка исходного заполненного списка значений. Но, т.к. в этой частной задаче не подходило использование метода " СортироватьПоЗначению() ", т.к. сортировка более сложная (по текстовым данным с разделителями порядка, содержащих разделитель ".", пример: 1.1, 2.2, 2.2.1, 2.2.2, 3.1, 3.2, 3.3.1, 3.3.2). Поэтому сортировка выполнялась программно с созданием новой переменной типа "СписокЗначений" и ее заполнением по данным исходного списка.
После сохранения кода и попытки проверки появилась ошибка, текст которой приведен в начале страницы. Анализ данных через предмет отладки неявно, но показал ошибку.
Нажатие на изображении увеличит его
Не смотря на то, что в методической информации "Синтакс-помощника" 1С 8 указано, что значение элемента списка значений может быть любым (произвольным), все-таки для случая использования в управляемой форме в качестве реквизита накладывается ограничение по типу. И нельзя в значение такого списка значений поместить "ЭлементСискаЗначений" другого списка значений.
Т.е. для моего случая использования списка значений в управляемой форме в качестве реквизита ошибка была в коде, где происходило заполнение значений нового списка по данным исходного при сортировке.
Нажатие на изображении увеличит его
Было выполнено исправление в коде для обращения к значениям и передачи их в качестве значений нового списка значений.
Нажатие на изображении увеличит его
В данном случае значениями списка были значения примитивного тип "Строка", поэтому дальнейшая работа доработанного кода стала возможной. И это все-таки позволило реализовать задачу. Если у Вас будут другие типы, например ссылки, то продумывайте заранее, как будете упорядочить, возможно придется через другие универсальные объекты, например использование таблицы значений, и потом заполнять конечный список значений. Другие примитивные типы не проверялись, но предполагаю, что они так же подойдут для корректной работы в управляемой форме. в качестве значений списка. Поэтому учитывайте это, если столкнетесь с данной ошибкой при Вашем конфигурировании - подбирайте по возможности простой тип для значений списка.
Нажатие на изображении увеличит его
Таким образом на примере данной частной ситуации возникновения ошибки при конфигурировании в 1С 8 "Отсутствует отображение для типа ЭлементСпискаЗначений, по причине, ошибка передачи данных между клиентом и сервером, значение недопустимого типа" извлекаем вывод о том, что нужно быть внимательным и не заполнять значения объекта "Список значений" элементами другого списка значений. А передавать значения элемента списка значений, если одна переменная типа "СписокЗначений" заполняется за счет другой подобной.
Читайте также: