Пишу первую обработку на УФ. Вроде, ничего ужасного не делаю. А он так ругается, так ругается :))))
&НаКлиенте
Процедура Загрузить(Команда)
Выборка = СформироватьВыборкуИЗЗапроса();
КонецПроцедуры
&НаСервере
Функция СформироватьВыборкуИЗЗапроса()
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Пользователи.*
|ИЗ
| Справочник.Пользователи КАК Пользователи»;
ТаблицаДанных = Запрос.Выполнить().Выбрать();
Возврат ТаблицаДанных;
КонецФункции
{ВнешняяОбработка.ВнешняяОбработка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
Найденные решения:

Возникла при написании кода индивидуальной конфигурации. Но, как оказалось, может подстерегать программиста из-за его невнимательности и при конфигурировании в других конфигурациях. Итак, в чем же причина возникновения данной ошибки. В управляемой форме был создан реквизит типа «СписокЗначений». При открытии формы по коду срабатывает обработчик заполнения этого списка значений. Т.е. в коде создается переменная с помощью конструктора «Новый СписокЗначений», значение которой потом и устанавливается реквизиту формы. Но, перед тем как это происходит, в коде список значений изменяется — в частности выполняется его дополнительная сортировка. Конечно, ошибка «Ошибка отображения типов: Отсутствует отображение для типа ‘ЭлементСпискаЗначений’» может возникнуть у Вас не только в такой ситуации. Сейчас разберемся в чем ее суть.
Как было отмечено в этой частной задаче выполняется сортировка исходного заполненного списка значений. Но, т.к. в этой частной задаче не подходило использование метода «СортироватьПоЗначению(<Направление>)«, т.к. сортировка более сложная (по текстовым данным с разделителями порядка, содержащих разделитель «.», пример: 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)
Доброе время суток всем ! Проблема в следующем. Из 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 Метки нет (Все метки)
Пытаюсь получить из регистра цену на выбираемый в табличной части товар по текущему контрагенту.
Ругается стр. 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 |
В управляемых формах может появиться следующая ошибка:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: param Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
С данной ошибкой я столкнулся, когда пытался в управляемой форме на стороне сервера выполнить следующую команду:
ОбъектФормы = РеквизитФормыВЗначение("Объект");
ТЗВывода = ОбъектФормы.Бонусы.Выгрузить().Скопировать();
ЗначениеВРеквизитФормы(ОбъектФормы, "Объект");
Решением данной проблемы было обнулить переменную с таблицей данных:
ТЗВывода = Неопределено;












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