-
При передаче результата запроса функции через Возврат в Клиент, выходит ошибка «Отсутствует отображение для типа ‘ВыборкаИзРезультатаЗапроса‘».
При совершении таких же манипуляций с кодом, ошибок не возникало. На ошибки все проверил.
Какой тут может быть подводный камень?На клиенте:
Процедура РаскладкаПКОтПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.Раскладка.ТекущиеДанные; ПКДо = СтрокаТабличнойЧасти.ПКОт + СтрокаТабличнойЧасти.Длина; Результат = РаскладкаТрубы.ПересеченияРаскладки(СтрокаТабличнойЧасти.ПКОт, ПКДо); КонецПроцедуры
НаСервере
Функция ПересеченияРаскладки(От,До)Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТрубаРаскладка.ПКОт, | ТрубаРаскладка.ПКДо, | ТрубаРаскладка.ТрубаНом, | ТрубаРаскладка.ТрубаНом.Длина КАК Длина |ИЗ | РегистрСведений.ТрубаРаскладка КАК ТрубаРаскладка |ГДЕ | ТрубаРаскладка.ПКОт <= &ПКОт И ТрубаРаскладка.ПКДо >= &ПКОт |УПОРЯДОЧИТЬ ПО ТрубаРаскладка.ПКОт |"; Запрос.УстановитьПараметр("ПКОт", От); Запрос.УстановитьПараметр("ПКДо", До); Результат = Запрос.Выполнить().Выбрать(); Возврат Результат; КонецФункции
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Почитайте про Выбрать() и про его область видимости — На клиенте, На сервере…
-
А почему точно в таких же запросах из клиента в сервер все работает? Разница только в другой таблице.
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Потому что:
РезультатЗапроса (QueryResult)
Выбрать (Select)
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).ВыборкаИзРезультатаЗапроса (QueryResultSelection)
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). -
Одинаковая ошибка как из Тонкого клиента, так из Толстого.
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
А где вы параметры запросу задаете ? Вернее их значения ?
— Объединение сообщений, 2 июн 2016 —
А, увидел
— Объединение сообщений, 2 июн 2016 —
Отладчиком проходились по серверной функции ? Попадает туда ?
-
По серверной ходил. Ответ по запросу есть. Но при передаче в клиент путем Возврат, выходит ошибка.
Перед этим киврялся и пытался передать значения на другую форму. Начала выходить ошибка. Потом эту Другую форму удалил……но результат с ошибкой сохранился.
Могло это как-то повлиять? -
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Вроде как результат запроса на клиента нельзя передать, обрабатывайте на сервере все.

-
При передаче результата запроса функции через Возврат в Клиент, выходит ошибка «Отсутствует отображение для типа ‘ВыборкаИзРезультатаЗапроса‘».
При совершении таких же манипуляций с кодом, ошибок не возникало. На ошибки все проверил.
Какой тут может быть подводный камень?На клиенте:
Процедура РаскладкаПКОтПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.Раскладка.ТекущиеДанные; ПКДо = СтрокаТабличнойЧасти.ПКОт + СтрокаТабличнойЧасти.Длина; Результат = РаскладкаТрубы.ПересеченияРаскладки(СтрокаТабличнойЧасти.ПКОт, ПКДо); КонецПроцедуры
НаСервере
Функция ПересеченияРаскладки(От,До)Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТрубаРаскладка.ПКОт, | ТрубаРаскладка.ПКДо, | ТрубаРаскладка.ТрубаНом, | ТрубаРаскладка.ТрубаНом.Длина КАК Длина |ИЗ | РегистрСведений.ТрубаРаскладка КАК ТрубаРаскладка |ГДЕ | ТрубаРаскладка.ПКОт <= &ПКОт И ТрубаРаскладка.ПКДо >= &ПКОт |УПОРЯДОЧИТЬ ПО ТрубаРаскладка.ПКОт |"; Запрос.УстановитьПараметр("ПКОт", От); Запрос.УстановитьПараметр("ПКДо", До); Результат = Запрос.Выполнить().Выбрать(); Возврат Результат; КонецФункции
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Почитайте про Выбрать() и про его область видимости — На клиенте, На сервере…
-
А почему точно в таких же запросах из клиента в сервер все работает? Разница только в другой таблице.
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Потому что:
РезультатЗапроса (QueryResult)
Выбрать (Select)
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).ВыборкаИзРезультатаЗапроса (QueryResultSelection)
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). -
Одинаковая ошибка как из Тонкого клиента, так из Толстого.
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
А где вы параметры запросу задаете ? Вернее их значения ?
— Объединение сообщений, 2 июн 2016 —
А, увидел
— Объединение сообщений, 2 июн 2016 —
Отладчиком проходились по серверной функции ? Попадает туда ?
-
По серверной ходил. Ответ по запросу есть. Но при передаче в клиент путем Возврат, выходит ошибка.
Перед этим киврялся и пытался передать значения на другую форму. Начала выходить ошибка. Потом эту Другую форму удалил……но результат с ошибкой сохранился.
Могло это как-то повлиять? -
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Вроде как результат запроса на клиента нельзя передать, обрабатывайте на сервере все.
6elka1703 91 / 85 / 27 Регистрация: 29.10.2016 Сообщений: 928 |
||||
1 |
||||
Ошибка отображения типов: Отсутствует отображение для типа ‘РезультатЗапроса’23.04.2019, 10:02. Показов 3605. Ответов 1 Метки нет (Все метки)
Добрый день, пытаюсь заполнить список выбора для колонки таблицы значений результатами запроса, но бьет ошибку Ошибка отображения типов:Отсутствует отображение для типа ‘РезультатЗапроса’ Не подскажете в чем проблема, что делаю не так?
__________________ 0 |
856 / 655 / 111 Регистрация: 01.11.2012 Сообщений: 2,410 |
|
23.04.2019, 10:55 |
2 |
Я знаю в чём ошибка, но пока не выясню как это ты АдресЭП хранишь в табличной части, ничего исправлять не буду Дай пжлста снимок из дерева конфигурации этого справочника и снимок из базы как у тебя там инфа хранится в сотруднике 0 |
Ошибка отображения типов: Отсутствует отображение для типа ‘ЭлементСпискаЗначений’
Описание ошибки:
Ошибка при программировании, конфигурировании кода в 1С 8:
Ошибка отображения типов:
Отсутствует отображение для типа ‘ЭлементСпискаЗначений’
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘v’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/uobjects}v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘value’:
форма: Элемент
имя: {http://v8.1c.ru/8.1/data/core}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 «Отсутствует отображение для типа ЭлементСпискаЗначений, по причине, ошибка передачи данных между клиентом и сервером, значение недопустимого типа» извлекаем вывод о том, что нужно быть внимательным и не заполнять значения объекта «Список значений» элементами другого списка значений. А передавать значения элемента списка значений, если одна переменная типа «СписокЗначений» заполняется за счет другой подобной.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
16-03-2022
Журавлев А.С.
(Сайт azhur-c.ru)
Сергей
Местный
Сообщений: 8
Баллов: 15
Регистрация: 26.06.2022
#10
0
28.06.2022 13:36:40
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = РаботаСоСпискамиДокументовКлиент.ПолучитьДанныеТекущейСтрокиСписка(
Элементы.Список, Элементы.Список.ТекущаяСтрока);
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если Поле = Элементы.Файлы Тогда
ОткрыватьЗакладкуФайлы=ПроверкаОткрытияЗаклФайлы(ЭтаФорма)
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуФайлы», ТекущиеДанные.Ссылка, ОткрыватьЗакладкуФайлы);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;
Если Поле = Элементы.ПодписанЭП Тогда
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуЭП», ТекущиеДанные.Ссылка, Истина);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;
Если Поле = Элементы.Задачи Тогда
ОткрытьФорму(«ОбщаяФорма.ПроцессыИЗадачи»,
Новый Структура(«Предмет», ТекущиеДанные.Ссылка),
ЭтаФорма);
Возврат;
КонецЕсли;
Если Поле = Элементы.ЕстьКатегории Тогда
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуКатегории», ТекущиеДанные.Ссылка, Истина);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;
Если Поле = Элементы.СостояниеКонтроля Тогда
КонтрольКлиент.ОбработкаКомандыКонтроль(ТекущиеДанные.Ссылка, ЭтаФорма);
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура(«Ключ», ТекущиеДанные.Ссылка);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
КонецПроцедуры
Пишу первую обработку на УФ. Вроде, ничего ужасного не делаю. А он так ругается, так ругается :))))
&НаКлиенте
Процедура Загрузить(Команда)
Выборка = СформироватьВыборкуИЗЗапроса();
КонецПроцедуры
&НаСервере
Функция СформироватьВыборкуИЗЗапроса()
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Пользователи.*
|ИЗ
| Справочник.Пользователи КАК Пользователи»;
ТаблицаДанных = Запрос.Выполнить().Выбрать();
Возврат ТаблицаДанных;
КонецФункции
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(3)}: Ошибка при вызове метода контекста (СформироватьВыборкуИЗЗапроса)
Выборка = СформироватьВыборкуИЗЗапроса();
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘ret’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘ВыборкаИзРезультатаЗапроса’
Доброе время суток всем ! Проблема в следующем. Из 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. Показов 5686. Ответов 6 Метки нет (Все метки)
Пытаюсь получить из регистра цену на выбираемый в табличной части товар по текущему контрагенту.
Ругается стр. 14
0 |
GreenkA 3053 / 2000 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
||||
21.05.2016, 16:59 |
2 |
|||
barracuda1991, а где вы выполняете функцию?
а должно бы)
0 |
1 / 1 / 1 Регистрация: 30.07.2015 Сообщений: 121 |
|
21.05.2016, 18:07 [ТС] |
3 |
функция выполняется &НаСервере Добавлено через 27 минут Добавлено через 31 минуту
0 |
GreenkA 3053 / 2000 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
||||||||
21.05.2016, 20:37 |
4 |
|||||||
передавайте номенклатура без обращения к ссылке:
и прописывайте сразу:
Почему у вас на Выбрать() ругается — непонятно.
1 |
1 / 1 / 1 Регистрация: 30.07.2015 Сообщений: 121 |
|
21.05.2016, 20:59 [ТС] |
5 |
Почему у вас на Выбрать() ругается — непонятно. Через консоль запросов пробовал, в результирующей таблице есть данные. Теперь пишет:
0 |
GreenkA 3053 / 2000 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
||||
21.05.2016, 21:30 |
6 |
|||
Решениеbarracuda1991,
0 |
1 / 1 / 1 Регистрация: 30.07.2015 Сообщений: 121 |
|
22.05.2016, 21:55 [ТС] |
7 |
Работает! ) Спасибо! )
0 |