Ошибка отображения типов отсутствует отображение для типа выборкаизрезультатазапроса

Пишу первую обработку на УФ. Вроде, ничего ужасного не делаю. А он так ругается, так ругается :))))

&НаКлиенте

Процедура Загрузить(Команда)

    Выборка = СформироватьВыборкуИЗЗапроса();

КонецПроцедуры

    
&НаСервере

Функция  СформироватьВыборкуИЗЗапроса()

    
    Запрос = Новый Запрос;

      Запрос.Текст =    «ВЫБРАТЬ

                      |    Пользователи.*

                      |ИЗ

                      |    Справочник.Пользователи КАК Пользователи»;

    ТаблицаДанных = Запрос.Выполнить().Выбрать();

    
    Возврат ТаблицаДанных;

    
КонецФункции

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(3)}: Ошибка при вызове метода контекста (СформироватьВыборкуИЗЗапроса)

    Выборка = СформироватьВыборкуИЗЗапроса();

по причине:

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.

по причине:

Ошибка преобразования данных XDTO:

Запись значения свойства ‘ret’:

    форма: Элемент

    имя: {http://v8.1c.ru/8.2/managed-application/modules}ret

по причине:

Ошибка отображения типов:

Отсутствует отображение для типа ‘ВыборкаИзРезультатаЗапроса’

Ошибка отображения типов: Отсутствует отображение для типа ‘ЭлементСпискаЗначений’

Описание ошибки:
Ошибка при программировании, конфигурировании кода в 1С 8:

Ошибка отображения типов:
Отсутствует отображение для типа ‘ЭлементСпискаЗначений’
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘v’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/uobjects}v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘value’:
форма: Элемент
имя: {http://v8.1c.ru/8.1/data/core}value

Найденные решения:

1C 8 Ошибка отображения типов: Отсутствует отображение для типа ЭлементСпискаЗначений,

Нажатие на изображении увеличит его
1C 8, Отсутствует отображение для типа ЭлементСпискаЗначений, по причине, ошибка передачи данных между клиентом и сервером, значение недопустимого типа

Возникла при написании кода индивидуальной конфигурации. Но, как оказалось, может подстерегать программиста из-за его невнимательности и при конфигурировании в других конфигурациях. Итак, в чем же причина возникновения данной ошибки. В управляемой форме был создан реквизит типа «СписокЗначений». При открытии формы по коду срабатывает обработчик заполнения этого списка значений. Т.е. в коде создается переменная с помощью конструктора «Новый СписокЗначений», значение которой потом и устанавливается реквизиту формы. Но, перед тем как это происходит, в коде список значений изменяется — в частности выполняется его дополнительная сортировка. Конечно, ошибка «Ошибка отображения типов: Отсутствует отображение для типа ‘ЭлементСпискаЗначений’» может возникнуть у Вас не только в такой ситуации. Сейчас разберемся в чем ее суть.

1С 8, Ошибка для типа ЭлементСпискаЗначений, передачи данных между клиентом и сервером, значение недопустимого типа, по причине, ошибка преобразования данных XDTO

Как было отмечено в этой частной задаче выполняется сортировка исходного заполненного списка значений. Но, т.к. в этой частной задаче не подходило использование метода «СортироватьПоЗначению(<Направление>)«, т.к. сортировка более сложная (по текстовым данным с разделителями порядка, содержащих разделитель «.», пример: 1.1, 2.2, 2.2.1, 2.2.2, 3.1, 3.2, 3.3.1, 3.3.2). Поэтому сортировка выполнялась программно с созданием новой переменной типа «СписокЗначений» и ее заполнением по данным исходного списка.

После сохранения кода и попытки проверки появилась ошибка, текст которой приведен в начале страницы. Анализ данных через предмет отладки неявно, но показал ошибку.

Нажатие на изображении увеличит его

1C 8, как устранить, исправить ошибку, ошибка преобразования данных XDTO, отсутствует отображение для типа ЭлементСпискаЗначений

Не смотря на то, что в методической информации «Синтакс-помощника» 1С 8 указано, что значение элемента списка значений может быть любым (произвольным), все-таки для случая использования в управляемой форме в качестве реквизита накладывается ограничение по типу. И нельзя в значение такого списка значений поместить «ЭлементСискаЗначений» другого списка значений.

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

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

Нажатие на изображении увеличит его

Было выполнено исправление в коде для обращения к значениям и передачи их в качестве значений нового списка значений. 

Нажатие на изображении увеличит его
1С 8, в чем причина ошибки в форме, отсутствует отображение для типа Элемент списка значений, ошибка отображения типов

В данном случае значениями списка были значения примитивного тип «Строка», поэтому дальнейшая работа доработанного кода стала возможной. И это все-таки позволило реализовать задачу. Если у Вас будут другие типы, например ссылки, то продумывайте заранее, как будете упорядочить, возможно придется через другие универсальные объекты, например использование таблицы значений, и потом заполнять конечный список значений. Другие примитивные типы не проверялись, но предполагаю, что они так же подойдут для корректной работы в управляемой форме. в качестве значений списка. Поэтому учитывайте это, если столкнетесь с данной ошибкой при Вашем конфигурировании — подбирайте по возможности простой тип для значений списка.

Нажатие на изображении увеличит его
1С 8, в чем, причина ошибки, как устранить, Ошибка передачи данных между клиентом и сервером, отсутствует отображение для типа элемент списка значений

Таким образом на примере данной частной ситуации возникновения ошибки при конфигурировании в 1С 8 «Отсутствует отображение для типа ЭлементСпискаЗначений, по причине, ошибка передачи данных между клиентом и сервером, значение недопустимого типа» извлекаем вывод о том, что нужно быть внимательным и не заполнять значения объекта «Список значений» элементами другого списка значений. А передавать значения элемента списка значений, если одна переменная типа «СписокЗначений» заполняется за счет другой подобной.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

16-03-2022

Журавлев А.С.
(Сайт azhur-c.ru)

Доброе время суток всем ! Проблема в следующем. Из 1С 7.7 по ОЛЕ подключаюсь в 1С 8.2 где хочу выполнить код из общего модуля (запрос) и вернуть выборку в 1С 7.7 Сделал такое при подключении из 1С 7.7 в 1С 8.2  Бухгалтерия предприятия, редакция 2.0 (2.0.37.14) — все работает отлично. Запрос выполнялся и в 1С 7.7 возвращалась выборка с которой далее работал. У пользователя ОЛЕ в 1С 8.2 в БП 2.0 ставил в правах «Полные права» «Дополнительное право внешнего подключения (соединения)» Возникла необходимость подключиться из 1С 7.7 в 1С 8.2 Управление торговлей, редакция 11.0 (11.0.9.12) но база ФАЙЛОВАЯ. В серверном варианте базу использовать нельзя — нет лицензий на MS SQL нужной версии. У пользователя ОЛЕ в 1С 8.2 поставил в правах «Администратор системы» «Полные права» Подключение из 1С 7.7 в 8.2 в УТ 11 происходит. Но при попытке выполнить запрос получаю сообщение Подключение к базе 8.2 установлено … Выборка = БазаБух.АСУП_ОЛЕ.ВернутьВыборку(ТекстЗапроса); 1C:Enterprise 8.2.16.352: Ошибка при вызове серверного метода. Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. Ошибка преобразования данных XDTO: Запись значения свойства ‘ret’: имя: { Ошибка отображения типов: Отсутствует отображение для типа ‘ВыборкаИзРезультатаЗапроса’ Вопрос — можно ли как-то при использовании файловой базы 1С 8.2 подключится к ней по OLE из 1С 7.7, выполнить по OLE запрос и вернуть выборку (на серверной базе это отлично получается) ? Поиск в Гугле ничего не дал.

почему же на серверной базе все работает ?

Потому что бухгалтерия 2.0 — обычное приложение, а Ут 11 — управляемое с четким разделением клиента и сервера.

я на сервере получаю а ВыборкаИзРезультатаЗапроса доступна же <Сервер, толстый клиент, внешнее соединение (то есть OLE)>

УТ11 работает под тонким клиентом. Выборка на клиенте не может существовать.

уверен ? директива запуска какая у твоей функции ?

Тебе надо вернуть данные в 7.7 с клиента.

ну да. не пойму — в чем проблема ? ВыборкаИзРезультатаЗапроса доступна же и в клиенте OLE и в 1С 7.7

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

barracuda1991

1 / 1 / 1

Регистрация: 30.07.2015

Сообщений: 121

1

1C 8.x

Подстановка цены в документ из регистра сведений через табличную модель

21.05.2016, 15:57. Показов 5755. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Пытаюсь получить из регистра цену на выбираемый в табличной части товар по текущему контрагенту.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Функция ПолучиЦенуПродажи(СсылкаНаТекЭлСправ)
    // табличная модель
    Запрос= новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЦеныПоставщиковСрезПоследних.Цена
                   |ИЗ
                   |    РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
                   |ГДЕ
                   |    ЦеныПоставщиковСрезПоследних.Контрагент.Ссылка = &СсылкаНаКонтрагентаВдокументеПН
                   |    И ЦеныПоставщиковСрезПоследних.Номенклатура.Ссылка = &СсылкаНаТоварВдокументеПН";
    Запрос.УстановитьПараметр("СсылкаНаКонтрагентаВдокументеПН",Объект.Контрагент.Ссылка);
    Запрос.УстановитьПараметр("СсылкаНаТоварВдокументеПН",СсылкаНаТекЭлСправ);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    Если Выборка.Следующий() Тогда
        Возврат Выборка;      
    КонецЕсли;
    
КонецФункции
 
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
    // табличная модель
    Стр = Элементы.Товары.ТекущиеДанные;
    Контрагент = Элементы.Контрагент;
    Стр.Цена = ПолучиЦенуПродажи(Стр.Номенклатура.Ссылка);
КонецПроцедуры

Ругается стр. 14
Значение не является значением объектного типа (Выбрать)
Выборка = Результат.Выбрать();



0



GreenkA

Эксперт 1С

3053 / 2000 / 524

Регистрация: 25.06.2009

Сообщений: 6,964

21.05.2016, 16:59

2

barracuda1991, а где вы выполняете функцию?
И еще: на вот эту строку не ругается?

1C
1
Стр.Цена = ПолучиЦенуПродажи(Стр.Номенклатура.Ссылка);

а должно бы)



0



1 / 1 / 1

Регистрация: 30.07.2015

Сообщений: 121

21.05.2016, 18:07

 [ТС]

3

функция выполняется &НаСервере

Добавлено через 27 минут
неверно передаю ссылку на текущий товар в функцию?

Добавлено через 31 минуту
1С:Предприятие 8.3, учебная версия (8.3.6.2014)
управляемые формы
Смотрю в отладчике, результат запроса почему то пустой
хотя Объект.Контрагент.Ссылка
и
СсылкаНаТекЭлСправ заполнены
стр 13 Результат = Запрос.Выполнить();



0



GreenkA

Эксперт 1С

3053 / 2000 / 524

Регистрация: 25.06.2009

Сообщений: 6,964

21.05.2016, 20:37

4

передавайте номенклатура без обращения к ссылке:

1C
1
Стр.Цена = ПолучиЦенуПродажи(Стр.Номенклатура);

и прописывайте сразу:

1C
1
Выборка = Запрос.Выполнить().Выбрать();

Почему у вас на Выбрать() ругается — непонятно.
Проверьте регистр, по данным отбора информация есть в нем?



1



1 / 1 / 1

Регистрация: 30.07.2015

Сообщений: 121

21.05.2016, 20:59

 [ТС]

5

Цитата
Сообщение от GreenkA
Посмотреть сообщение

Почему у вас на Выбрать() ругается — непонятно.
Проверьте регистр, по данным отбора информация есть в нем?

Через консоль запросов пробовал, в результирующей таблице есть данные. Теперь пишет:
{Документ.ПостаплениеТоваров.Форма.ФормаДокумента.Форма(56)}: Ошибка при вызове метода контекста (ПолучиЦенуПродажи)
Стр.Цена = ПолучиЦенуПродажи(Стр.Номенклатура);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘ret’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘ВыборкаИзРезультатаЗапроса’



0



GreenkA

Эксперт 1С

3053 / 2000 / 524

Регистрация: 25.06.2009

Сообщений: 6,964

21.05.2016, 21:30

6

Лучший ответ Сообщение было отмечено barracuda1991 как решение

Решение

barracuda1991,

1C
1
Возврат Выборка.Цена;



0



1 / 1 / 1

Регистрация: 30.07.2015

Сообщений: 121

22.05.2016, 21:55

 [ТС]

7

Работает! ) Спасибо! )



0



В управляемых формах может появиться следующая ошибка:

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: param Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'

С данной ошибкой я столкнулся, когда пытался в управляемой форме на стороне сервера выполнить следующую команду:

 ОбъектФормы = РеквизитФормыВЗначение("Объект");
 ТЗВывода = ОбъектФормы.Бонусы.Выгрузить().Скопировать();
 ЗначениеВРеквизитФормы(ОбъектФормы, "Объект");

Решением данной проблемы было обнулить переменную с таблицей данных:

ТЗВывода = Неопределено;

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Ошибка операции криптографии неизвестная ошибка 0x80070057
  • Ошибка отображения типов отсутствует отображение для типа comобъект
  • Ошибка операции криптографии неизвестная ошибка 0x0000065b
  • Ошибка отображения пространства имен отсутствует отображение для префикса
  • Ошибка операции клиента ошибка 0x80004005 0x0004b9 0x000501

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: