Классика: Ошибка отображения типов: Отсутствует отображение для типа |
Я |
26.02.22 — 00:00
Пытаюсь открыть одну форму из другой, передавая туда параметры. В параметрах только ссылки и простые типы, никакие таблицы значений не передаю:
https://disk.yandex.ru/i/bTk0282HaaGC2Q
https://disk.yandex.ru/i/Y2undFzJ11HVSQ
Получаю ошибку:
Ошибка отображения типов:
Отсутствует отображение для типа ‘{http://v8.1c.ru/8.1/data/core}ValueTable’
Не могу понять, что не так?
Причем процедура ПриСозданииНаСервере() открываемой формы отрабатывает без ошибок. Ошибка возникает, когда вызов возвращается в ОткрытьФорму().
Подскажите, что делаю не так, в чем ошибка?
1 — 26.02.22 — 00:12
А 1ска говорит, что передаешь
2 — 26.02.22 — 00:15
(0) Почитайте раздел рекомендации правил форума.
3 — 26.02.22 — 00:34
(1) Поэтому и не понимаю, где ошибка. Вижу, что говорит, но так же вижу и в отладке, что я передаю — см. 2 скриншот, там ТЗ нет, только ссылки и простые типы.
(2) Если вы про поиск, то, естественно, им пользовался, ответа на свой вопрос не нашел.
4 — 26.02.22 — 00:50
(0) Ты ТаблицуЗначений в каком то из параметров возвращаешь с сервера. Скинь конфигу
5 — 26.02.22 — 01:14
(4) По завершению процедуры ПриСозданииНаСервере, когда вызов возвращается обратно на клиент, в параметрах так же нет никакой ТЗ, так же только ссылки и простые типы:
https://disk.yandex.ru/i/qezDhmDrPg1Mjg
6 — 26.02.22 — 02:33
(5) Скинь Cf на liveups@yandex.ru
7 — 26.02.22 — 07:30
Тз это не реквизит формы?
8 — 26.02.22 — 07:59
Вместо ТЗ надо передавать массив.
9 — 26.02.22 — 09:11
>> Причем процедура ПриСозданииНаСервере() открываемой формы отрабатывает без ошибок. Ошибка возникает, когда вызов возвращается в ОткрытьФорму()
Значит скрины не актуальны. Вы нас в заблуждение ими вводите.
«Курите» код по всем событиям в открываемой форме , начина с ПриСозданииНаСервере()
10 — 26.02.22 — 09:12
Вы с сервера на клиент в уже откываемой форме что-то универсальное передаете.
11 — 26.02.22 — 09:31
Всем спасибо, разобрался, проблема оказалась в другом. (5) Вот тут на скрине полностью не видно, но в открываемой форме я создаю ТЗ и пытаюсь передать ее в качестве параметра в динамический список, чего, оказывается делать нельзя.
Ввело в заблуждение то, что исключение вызывалось после вызова ОткрытьФорму(), а само создание формы (ПриСозданииНаСервере) отрабатывало без ошибок.
12 — 26.02.22 — 14:24
ТаблицуЗначений передать с сервера на клиента нельзя.
Как ни странно,но создать ТЗ можно в толстом клиенте и с ухищрениями в тонком,а передать нельзя,так как ограничение искуственное.
13 — 26.02.22 — 16:07
(12) > и с ухищрениями в тонком
Веб клиент — достаточно тонкий?
ДедМорроз
14 — 26.02.22 — 19:56
Есть несколько видов клиентов:
Толстый клиент,
Тонкий клиент,
Web-клиент,
Мобильный клиент.
В последних двух никакого намека на таблицу значений,так как ее там никогда не было.
|
RUBYX 0 / 0 / 0 Регистрация: 13.02.2021 Сообщений: 39 |
||||
|
1 |
||||
Ошибка отображения типов10.05.2022, 09:53. Показов 1051. Ответов 5 Метки нет (Все метки)
Еще раз всем здравствуйте! Когда пытаюсь обменяться данными между мобильной и основной центральной базой, почему то выходит ошибка отображения типов: Отсутствует отображение для типа ‘ТаблицаЗначений'{Справочник.Пьесы.Форма.ФормаСпис ка.Форма}. Данные появляются в центральной базе после добавления данных в мобильной базе, но вот ошибка меня смущает Сам код вот (Мобильная платформа)
Если нужна дополнительная информация могу потом прикрепить или выгрузку обеих баз дать. Заранее спасибо
__________________
0 |
|
260 / 216 / 94 Регистрация: 07.04.2011 Сообщений: 1,334 |
|
|
10.05.2022, 15:52 |
2 |
|
Решение ПолучитьРезультатВБазе() почему это функция? Значение возврата то на клиенте нигде не используется
1 |
|
0 / 0 / 0 Регистрация: 13.02.2021 Сообщений: 39 |
|
|
10.05.2022, 18:29 [ТС] |
3 |
|
Вроде когда я писал «процедура», то мне ошибку выдавало, что нельзя использовать в процедуре или что-то типо такого, да и мы это по инструкционке делаем) Добавлено через 17 минут
0 |
|
260 / 216 / 94 Регистрация: 07.04.2011 Сообщений: 1,334 |
|
|
10.05.2022, 18:51 |
4 |
|
то мне ошибку выдавало, что нельзя использовать в процедуре Верно.Процедура не может возвращать значение.
Кстати спасибо, я просто удалил эту строку и все работает как надо!) Ну возможно оно где-то и должно использоваться.Тут вариант что результат должен возвращаться в процедуру с директивой «НаСервере» и обрабатываться,и предаваться на клиент в виде «простого типа».
1 |
|
0 / 0 / 0 Регистрация: 13.02.2021 Сообщений: 39 |
|
|
10.05.2022, 19:04 [ТС] |
6 |
|
Всем спасибо еще раз!
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
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = РаботаСоСпискамиДокументовКлиент.ПолучитьДанныеТекущейСтрокиСписка(
Элементы.Список, Элементы.Список.ТекущаяСтрока);
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если Поле = Элементы.Файлы Тогда
ОткрыватьЗакладкуФайлы=ПроверкаОткрытияЗаклФайлы(ЭтаФорма)
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуФайлы», ТекущиеДанные.Ссылка, ОткрыватьЗакладкуФайлы);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;
Если Поле = Элементы.ПодписанЭП Тогда
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуЭП», ТекущиеДанные.Ссылка, Истина);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;
Если Поле = Элементы.Задачи Тогда
ОткрытьФорму(«ОбщаяФорма.ПроцессыИЗадачи»,
Новый Структура(«Предмет», ТекущиеДанные.Ссылка),
ЭтаФорма);
Возврат;
КонецЕсли;
Если Поле = Элементы.ЕстьКатегории Тогда
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуКатегории», ТекущиеДанные.Ссылка, Истина);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;
Если Поле = Элементы.СостояниеКонтроля Тогда
КонтрольКлиент.ОбработкаКомандыКонтроль(ТекущиеДанные.Ссылка, ЭтаФорма);
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура(«Ключ», ТекущиеДанные.Ссылка);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
КонецПроцедуры
На чтение 3 мин Просмотров 3.4к. Опубликовано 07.09.2021
Привет друзья! На днях в одном из офисов, меня попросили посмотреть 1с, с жалобами, что она очень долго и медленно работает. Посмотрел, при подборе номенклатуры сканером штрих-кодов, позиция добавлялась в районе 30 секунд.
Начал смотреть, в чем же проблема. А оказалось просто. База была файловая, расшарена на сервере в другом конце города и все данные гонялись через интернет. Так как через «толстого клиента» передается достаточно объемные данные, база хоть и работала исправно, но долго. В голове промелькнули мысли, сделаю сейчас RDP, будут работать прямо на сервере с минимальной передачей данных, но…
Посмотрел на сервер и понял, что это обычная рабочая станция с Windows 10, но с относительно хорошим железом. Там было 16 гб оперативной памяти, intel i5. Компьютер в принципе работал бодро, но изгаляться с установкой RDP Wrapper мне не захотелось, я не любитель пиратских доработок, да и к тому же работает это все не стабильно, а мне проблемы не нужны.
Пораскинув мыслями, решил настраивать веб-сервер IIS и настраивать работу в «тонком клиенте», объем передаваемых данных тут гораздо ниже и скорость работы должна быть выше в разы. Поднял IIS, завесил на него базу, протестировал работу. Все было отлично, скорость сканирования штрих-кодов увеличилась раз в 6, база летала. Пользователи радовались. Проработали так пол дня и вот звонок. У нас не работает…
Подключаюсь, и вижу ошибку: «Ошибка отображения типов: Отображение типа `Булево` в тип `{http://v8.1c.ru/8.2/managed-application/core/}ChoiceParameterLinks`»

Как всегда в офисе много народа и желающих что-то купить, продавцы нервничают и не знают чего делать. Не долго думая, открываю расшаренную базу, что бы хоть как-то можно было работать. Исследование ошибки отложил на нерабочее время.
Вечером подключаюсь к серверу и пытаюсь воспроизвести ошибку на этом же документе, на котором была ошибка. Ошибка есть… Решил посмотреть, что происходило в журнале регистрации, захожу в журнал, отображаю первые 200 записей, все хорошо, отображаю 500, все хорошо. Отображаю 1000 записей и опа, журнал вывалился с ошибкой:

Ошибка в журнале, как раз ссылается на документ «Реализации товаров и услуг», который делали. Удаляю журнал регистрации за сегодняшний день, проверяю сформируются ли 1000 записей для вывода. Да! Журнал сформировался моментально, ошибок нет.
Делаю тестирование и исправление базы, а так же физической целостности. Проверяю опять на этом документе, ошибки нет. Тестирование и исправление помогло. Так же на всякий случай, сделал перепубликацию базу на веб-сервере.
Прошло 5 дней, все работает стабильно и быстро. Тестирование и исправление базы помогло в решении данной проблемы!
Сообщение было отмечено RUBYX как решение
