Ошибка отображения типов отсутствует отображение для типа описаниепомещенногофайла

Я
   JuixyJes

16.07.19 — 11:53

{Документ.ПриходныйКассовыйОрдер.Форма.ФормаДокумента.Форма(93)}: Ошибка при вызове метода контекста (ОплатаДопУслуг)

            ОплатаДопУслуг(Объект.ПринятоОт)

по причине:

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

по причине:

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

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

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

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

по причине:

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

Отсутствует отображение для типа ‘ФормаКлиентскогоПриложения’

Помогите пожалуйста, не могу понять в чем дело.

   JuixyJes

1 — 16.07.19 — 11:54

Функция ОплатаДопУслуг (ФЛ)

Выб = Документы.ДопУслуга.Выбрать();

Пока Выб.Следующий() Цикл

Если Строка(Выб.ФизЛицо) = Строка(ФЛ)  Тогда

Об = Выб.Ссылка.ПолучитьФорму(«ФормаДокумента»,Выб);

КонецЕсли;

КонецЦикла;

Возврат Об

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

&НаКлиенте

Процедура ПриОткрытии(Отказ)

    Если (Объект.СуммаДокумента = 0)  Тогда

        Ответ = Вопрос(«Не оплачены дополнительные услуги, оплатить сейчас?»,РежимДиалогаВопрос.ДаНет);

        Если Ответ = КодВозвратаДиалога.Да Тогда

            ОплатаДопУслуг(Объект.ПринятоОт)

        КонецЕсли;

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

   JuixyJes

2 — 16.07.19 — 11:55

При попытке открыть форму созданного документа Доп Услуги выдается ошибка из (0)

   JuixyJes

3 — 16.07.19 — 11:56

Не понимаю, что я не так передаю на сервер?

   JuixyJes

4 — 16.07.19 — 11:58

Есть предположение, что я Объект.ПринятоОт передаю на сервер и на это ругается.

   sqr4

5 — 16.07.19 — 11:58

кто тебя научил формы на сервере открывать?

   sqr4

6 — 16.07.19 — 11:59

Есть предложение на фото в купальнике)

   JuixyJes

7 — 16.07.19 — 12:00

(5) никто, потому и спрашиваю. Мне нужно впринципе открыть документ уже созданный.

   hhhh

8 — 16.07.19 — 12:02

(7) открывают на &Клиенте. Запросы к базе наоборот, &НаСервере. Запиши у себя где-нибудь на бумажке.

   sqr4

9 — 16.07.19 — 12:03

Получаешь ссылку, возвращаешь на клиент, открываешь форму, кидаешь фото на форум! Все!

   Zmich

10 — 16.07.19 — 12:05

Поиск нужного документа тоже оставляет желать лучшего. Все документы перебирать один за другим, да и еще преобразовывать что-то в строку — мягко говоря, не оптимальное решение.

   hhhh

11 — 16.07.19 — 12:07

(4) да, там есть уже физлицо в документе, не надо ПринятоОт колбасить.

   catena

12 — 16.07.19 — 12:16

(4)Думаешь, он именно поэтому написал, что не умеет отображать ФормаКлиентскогоПриложения?

  

D_E_S_131

13 — 16.07.19 — 12:25

1. Для открытия формы должно быть где-то «ОткрытьФорму()».

2. Что бы открыть форму имеющегося документа, нужно передать ссылку в параметр формы «Ключ».

3. Что бы не открывать текущую форму, нужно ПриОткрытии сделать «Отказ=Истина».

Ошибка? Это не ошибка, это системная функция.

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

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

Описание ошибки:
Ошибка при программировании, конфигурировании кода в 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)

<?php // Полная загрузка сервисных книжек, создан 2023-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='

Related Posts

  • Получение логина и пароля техподдержки 1С из базы
  • Класс для вывода отчета в ExcelКласс для вывода отчета в Excel
  • Счет-фактура для УПП
  • Библиотека классов для создания внешней компоненты 1С на C#
  • Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86
  • Прайс-лист с артикулом в отдельной колонке

44 Comments

  1. С клиента на сервер

    С сервера на клиент

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

    Reply

  2. (1)

    НачатьПомещениеФайла

    В справке говорится, что нужно указать:

    В веб-клиенте, если расширение работы с файлами не установлено, то параметр <ПомещаемыеФайлы>:

    в интерактивном режиме должен иметь тип ДиалогВыбораФайла,

    в неинтерактивном режиме СсылкаНаФайл.

    Я использую не интерактивный режим. Что вы в ссылку на файл помещаете?

    А для

    ПолучитьФайл

    Выйдет что обязательно пользователю диалог кидать, что по моему мнению не всегда нужно!

    <Интерактивно> (необязательный)

    Тип: Булево.

    Истина — режим, в котором пользователю показывается диалог, в котором он может выбрать действие с получаемым файлом: запустить его или сохранить по выбранному расположению.

    В веб-клиенте параметр должен быть равен Истина. В противном случае будет сгенерировано сообщение об ошибке.

    Reply

  3. (1) а второй момент, что эти методы для 1 файла, я рассматривал ситуацию, где передается 1 файл и легко расширить до множества файлов, но с вашей рекомендацией масштабировать до нескольких файлов за раз не получится.

    Reply

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

    Reply

  5. (4) не универсально. Интересовал конкретный пример.

    Reply

  6. (1) реализовал данные методы. Но как было сказано для корректной работы данных методов нужна платформа 8.3.13.1513 и выше. Режим совместимости конфигурации не влияет.

    И на мобильной платформе параметр <Интерактивно> игнорируется и диалоговое окно выбора файла не отображается никогда.

    Что делает реализацию еще более ограниченной.

    Поэтому выкладываю обработку отдельным файлом.

    Reply

  7. С сервера на клиент по упрощенной версии 2:

    Диалог отлично показывается и отрабатывает на Тонком клиенте, а в веб-клиенте IE показывает странный диалог, на который не реагирует.

    Подозреваю что это где то в настройках IE. Подскажите где искать?

    Вот кусок моего кода:

    ПолноеИмяФайла = КаталогЭкспортаДокументов + МассивФайлов[Сч].Имя; ПолучитьФайл(МассивФайлов[Сч].Хранение, ПолноеИмяФайла, Истина); 

    Reply

  8. (8) почитайте ограничение. Ничего странного!

    Когда выпустят стабильную версию 8.3.15 сделаю 3 версию, возможно они полный путь на клиенте получат иначе тоже самое будет.

    Reply

  9. (9) да, ждем 8.3.15

    А пока посоветуйте как быть? Попробовать по 1 сложной версии?

    Reply

  10. Прошу подсказки по первому варианту ЧЯДНТ

    ПолучаемыеФайлы = Новый Массив; Для Сч = 0 По МассивФайлов.Количество() — 1 Цикл ОписаниеПередаваемогоФайла = Новый ОписаниеПередаваемогоФайла(МассивФайлов[Сч].Имя, МассивФайлов[Сч].Хранение); ПолучаемыеФайлы.Добавить(ОписаниеПередаваемогоФайла); КонецЦикла; ОповещениеОЗавершении = Новый ОписаниеОповещения(«ВыполнитьПослеПолученияФайлов», ЭтотОбъект); НачатьПолучениеФайлов(ОповещениеОЗавершении, ПолучаемыеФайлы, КаталогЭкспортаДокументов, Ложь); 

    Показать

    На тонком клиенте отрабатывает и файл создает,

    на веб-клиенте задает вопрос нужно ли сохранить файл

    (и кто его просил вопросы задавать) и никакого файла нет((

    хотя в ОповещениеОЗавершении вместо открытия у меня сообщение об успехе с полным именем — его выводит

    пити разные задавала не помогает

    складывается впечатление что в IE что-то не так, полазила там — ничего не нашла

    Reply

  11. (11) для начала вы не описали что у вас в переменных, а во вторых посмотрите какой код написан в примере или скачайте обработку.

    Разница же видна не вооруженным взглядом.

    Reply

  12. (10) первый и второй вариант практически не отличаются.

    Reply

  13. (12) Обработку скачала.

    Да, код несколько упростила, но думала не критично — раз на тонком выполняется.

    Мои переменные

    1) МассивФайлов состоящий из структуры:

    Имя (просто название без пути)

    Хранение (адрес указывающий на значение во временном хранилище)

    2)КаталогЭкспортаДокументов путь куда должно сохраняться состоит из выбранного в диалоге и «/», если не хватает

    Прощу подсказать, что видно невооруженным глазом? У меня уже замылился наверное.

    Reply

  14. (14) скорее всего косяк в КаталогЭкспортаДокументов. Создайте лучше тему для обсуждения вашего написания кода.

    Reply

  15. (11) как оказалось у код был рабочий, просто были проблемы с ОС или антивирусом, и файл получался пустой!

    Reply

  16. Можно указать конкретное место на сервере куда перемещаем файл с клиента ???

    Reply

  17. (17) да. Из описания и скриншотов это было не понятно?

    Reply

  18. Зачем вопросы, проще сразу подсказать.

    В итоге мне нужно загрузить текстовый (txt) файл в табличную часть внешней обработки…..

    У меня пишет файл не найден…и текст переданного файла.

    Reply

  19. (19) разбирайтесь с настройками вашего сервера. И по данному описанию не понятно что вы делаете и как.

    Reply

  20. понятно, спасибо за помощь…

    Reply

  21. Скачал 8.3.15.1489.

    Перевел конфигурацию в режим совместимости 8.3.15.

    Решил просто заменить на новые методы НачатьПомещениеФайловНаСервер.

    И получаю ошибку:

    Ошибка преобразования данных XDTO: НачалоСвойства: param Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType по причине: Ошибка отображения типов: Отсутствует отображение для типа ‘ОписаниеПомещенногоФайла’

    ОписаниеПередаваемогоФайла преобразуется в ОписаниеПомещенногоФайла, а оно не доступно на сервере.

    Проверил. Ошибка вылетает даже если оставить конфигурацию на 8.3.14.

    Reply

  22. (22) БРЕД!! Я перевел все методы в нетиповой на новые методы и прекрасно отрабатывает, как с диалогом, так и без!

    Ничего там не подменяется)))

    Ничто не мешает вам создать общие функции ВыгрузитьФайлы/ЗагрузитьФайлы (например) и вызывать их с оповещениями и параметрами.

    Reply

  23. (23) почитайте внимательно что написано и посмотрите что конфигуратор выдает.

    В любом случае в 3 версии все корректно работает.

    Reply

  24. (24) я не только читаю, но и практикую, к сведению!

    Reply

  25. (23) Бывают и экзотические косяки, просто вы везунчик или мало вариантов реализовывали

    Reply

  26. Закреплю описание статьи, теперь буду так оформлять +1

    Reply

  27. (26) Вы про что? Есть 3 вариант событий?

    Reply

  28. (28) я не про ваш функционал а про работу с файлами в целом

    Reply

  29. (26) вы не читаете, что вам пишут?

    Синтаксис откройте! Там все варианты перечислены!

    Я не вижу реализации их у вас! Зато много слов в воздух

    Reply

  30. (29) понял. Да реализованы базовые сценарии обработки, что в 90% покроет потребность разработчика. Остальное конечно пилить, как нужно клиенту!

    Reply

  31. второй вариант не хочет работать

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

    Reply

  32. (32) не указана платформа, тип клиента и последовательность действий. Внимательно прочтите описание.

    Reply

  33. (33)

    windows_8_3_15_1534

    веб клиент

    открываю файл , жму Загрузить с клиента на сервер

    Reply

  34. (34) и вылетает ошибка?

    Reply

  35. (36) завтра проверю на 8.3.15.

    Возможно надо использовать 3 версию.

    Reply

  36. (36) проверил, да все верно. Это операция требует расширения. Как сказано в описании работа без расширения возможна только в интерактивных операциях, т.к. доступа к файловой системе у 1С нету.

    Reply

  37. (38)

    так а как решить ? расширение установить ?

    расширение скачивается , устанавливается , но все равно не пашет

    это наверно уже другая проблема правда

    Reply

  38. (39) данная кнопка работает только с расширением. Да это другая проблема. Если не получается решить, поменяйте браузер.

    Reply

  39. Редкий случай, когда я поставил плюс за оформление публикации, а не за содержание. Вот шикарно сделано, да.

    Reply

  40. (41) а чем содержание не угодило?

    Reply

  41. (42) Да содержание тоже вполне себе очень даже, но не настолько восторг, чтоб прям плюсить. Просто хорошее изложение общеизвестных вещей.

    Кстати, вкину свои 5 копеек: теперь появился новый способ передавать файловые данные на сервер. Можно на клиенте получить двоичные данные, забросить их на сервер и там не сохранять во временные файлы, как раньше делали, а обрабатывать через буфер как файловый поток. Правда, пока у платформы на это есть ограничения (табдокумент, например, кушает только mxl и ods), но, думаю, допилят.

    Reply

  42. (43) вы не до конца ознакомились с публикацией? Я не использую временные файлы!

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

    На днях была задача еще дополнить использование каждого имени файла своим расширением. Вообще бомба вышла!

    В свое время пришлось на одном источнике руками набивать данный код, а здесь я сделал так что бери и копируй!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

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

Автор mahaidor, 17 апр 2014, 17:22

0 Пользователей и 1 гость просматривают эту тему.

Здравствуйте.Платформа 1с 8.3.437 . Выгружаю результат запроса в таблицу значений, в ответ возникает ошибка отображение типов: отсутствует отображение типа ValueTable.

&НаКлиенте
Процедура Ант_Вес_РостПриИзменении(Элемент)
Возраст=СТрока(Объект.Возраст);
Пол=Объект.Пол;
//обращение к табличной чати
СтрТабЧ=Элементы.Ант_Вес_Рост.ТекущиеДанные;
СтрокаВыборки=ВыборРезультатаЗапросаРоста(Возраст,Пол);

//СтрТабЧ.ОценкаРоста=ВыборРезультатаЗапроса(Возраст,Пол);

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

&НаКлиенте
Функция ВыборРезультатаЗапросаРоста(Возраст,Пол)
Рез=ВыборСтрокиКритериевРоста(Возраст,Пол);
Возврат Рез;
КонецФункции

Функция ВыборСтрокиКритериевРоста(Возраст,Пол)
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| КритерийРоста.Р_1,
| КритерийРоста.Р_2,
| КритерийРоста.Р_3,
| КритерийРоста.Р_4,
| КритерийРоста.Р_5,
| КритерийРоста.Р_6
| ИЗ Справочник.ТаблицаРоста КАК КритерийРоста
|ГДЕ КритерийРоста.Наименование=&Возраст и КритерийРоста.Пол=&Пол";
Запрос.УстановитьПараметр("Возраст",Возраст);
Запрос.УстановитьПараметр("Пол",Пол);
     РезультатЗапроса = Запрос.Выполнить();
ТблЗн=РезультатЗапроса.Выгрузить();
  Возврат ТблЗн;

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


Да действительно нельзя передавать таблицу значений с сервера на клиент. Мутабельные переменные не передаются между серверным и клиентским контекстом. Попробуйте максимально перенести логику выполнения на сервер, а  на клиенте получайте уже готовый результат.

Так же можно использовать временное хранилище для передачи таких значений.


Цитата: MuI_I_Ika от 17 апр 2014, 19:17
Да действительно нельзя передавать таблицу значений с сервера на клиент. Мутабельные переменные не передаются между серверным и клиентским контекстом. Попробуйте максимально перенести логику выполнения на сервер, а  на клиенте получайте уже готовый результат.

Так же можно использовать временное хранилище для передачи таких значений.

То есть вы имеете ввиду, что можно использовать объект «Хранилище значений» для передачи таблицы значений?


Не ХранилищеЗначений, а временное хранилище — серверный объект, как раз применяющийся для передачи данных с сервера на клиент. Поищите примеры, как в управляемом приложении реализован подбор товаров.

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.


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

&НаКлиенте
Процедура Ант_Вес_РостПриИзменении(Элемент)
Возраст=СТрока(Объект.Возраст);
Пол=Объект.Пол;
//обращение к табличной чати
СтрТабЧ=Элементы.Ант_Вес_Рост.ТекущиеДанные;
Рост=СтрТабЧ.Рост;
СтрТабЧ.ОценкаРоста=ВыборКритерияРоста(Возраст,Пол,Рост);
КонецПроцедуры

&НаСервере
Функция  ВыборКритерияРоста(Возраст,Пол,Рост)
//Запрос на получение строки критериев роста согласно полу и возрасту
Запрос=Новый Запрос;//создаем новый запрос
Запрос.Текст=      //вводим содержание запроса
"ВЫБРАТЬ             
| КритерийРоста.Р_1,
| КритерийРоста.Р_2,
| КритерийРоста.Р_3,
| КритерийРоста.Р_4,
| КритерийРоста.Р_5,
| КритерийРоста.Р_6
| ИЗ Справочник.ТаблицаРоста КАК КритерийРоста
|ГДЕ КритерийРоста.Наименование=&Возраст и КритерийРоста.Пол=&Пол";
Запрос.УстановитьПараметр("Возраст",Возраст);//вводим в запрос значениие возраста
Запрос.УстановитьПараметр("Пол",Пол);  //вводим в запрос значениие пола
     РезультатЗапроса = Запрос.Выполнить(); //выполениеие запроса
//обработка результатов запроса
ТблЗн=РезультатЗапроса.Выгрузить();//выгружаем результаты запроса в таблицу значений для обработки в ней данных
Для Каждого СтрокаТблЗн из ТблЗн Цикл //запускаем цмкл обработки данных в таблице значений
//определение критерия очень низкого роста
Если СтрокаТблЗн.Р_1>Рост Тогда КритерийРоста=Перечисления.Критерии_Рост_Вес.Очень_низкий; КонецЕсли;
  //определение критерия низкого роста
Если ((СтрокаТблЗн.Р_1=Рост) или (СтрокаТблЗн.Р_1<Рост))
    И (СтрокаТблЗн.Р_2>Рост) Тогда КритерийРоста=Перечисления.Критерии_Рост_Вес.Низкий; КонецЕсли;
  //определение критерия  роста ниже среднего
Если ((СтрокаТблЗн.Р_2=Рост) или (СтрокаТблЗн.Р_2<Рост))
И (СтрокаТблЗн.Р_3>Рост) Тогда КритерийРоста=Перечисления.Критерии_Рост_Вес.Ниже_Среднего; КонецЕсли;
  //определение критерия среднего роста
Если ((СтрокаТблЗн.Р_3=Рост) или (СтрокаТблЗн.Р_3<Рост))
И (СтрокаТблЗн.Р_4>Рост) Тогда КритерийРоста=Перечисления.Критерии_Рост_Вес.Средний; КонецЕсли;
    //определение критерия  роста выше среднего
Если ((СтрокаТблЗн.Р_4=Рост) или (СтрокаТблЗн.Р_4<Рост))
И (СтрокаТблЗн.Р_5>Рост) Тогда КритерийРоста=Перечисления.Критерии_Рост_Вес.Выше_Среднего; КонецЕсли;
     //определение критерия высокого роста
Если ((СтрокаТблЗн.Р_5=Рост) или (СтрокаТблЗн.Р_5<Рост))
И ((СтрокаТблЗн.Р_6>Рост)или (СтрокаТблЗн.Р_6=Рост)) Тогда КритерийРоста=Перечисления.Критерии_Рост_Вес.Высокий; КонецЕсли;
     //определение критерия очень высокого роста
Если (СтрокаТблЗн.Р_6<Рост)  Тогда КритерийРоста=Перечисления.Критерии_Рост_Вес.Очень_Высокий; КонецЕсли;
КонецЦикла;
  Возврат  КритерийРоста;
КонецФункции


Вопрос решен, всем спасибо.


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

Рассмотрим следующий модуль управляемой формы:

&НаСервере Функция ТестВызоваСервера(Форма) Форма.ТолькоПросмотр = Истина; КонецФункции // ТестВызоваСервера() &НаКлиенте Процедура ПокупательПриИзменении(Элемент) //попытка передачи переменной локального контекста на сервер ТестВызоваСервера(ЭтаФорма); КонецПроцедуры 

Дело в том, что в контексте модуля управляемой формы переменная ЭтаФорма доступна всегда (как на клиенте, так и на сервере) и дополнительно ее передавать не требуется (если только вы не вызываете процедуру или функцию, перед которой указана директива &НаСервереБезКонтекста). Правильным будет следующий код:

&НаСервере Функция ТестВызоваСервера() ЭтаФорма.ТолькоПросмотр = Истина; КонецФункции // ТестВызоваСервера() &НаКлиенте Процедура ПокупательПриИзменении(Элемент) //вызов контекстной серверной функции ТестВызоваСервера(); КонецПроцедуры 

Аналогичное замечание относится к серверным вызовам. Вы не можете передать содержимое переменной ЭтаФорма на сервер. Вы можете только запросить необходимую информацию на сервере и изменить форму в контексте клиента, либо реализовать это через серверный метод самой формы. Например, такой код работать не будет:

&НаКлиенте Процедура ПокупательПриИзменении(Элемент) //попытка передачи переменной локального контекста на сервер ОбщийМодульСервер.Тест(ЭтаФорма); КонецПроцедуры 

Подумайте сами, чем можно заменить такой вызов

RUBYX

0 / 0 / 0

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

Сообщений: 39

1

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

10.05.2022, 09:53. Показов 1068. Ответов 5

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


Еще раз всем здравствуйте! Когда пытаюсь обменяться данными между мобильной и основной центральной базой, почему то выходит ошибка отображения типов: Отсутствует отображение для типа ‘ТаблицаЗначений'{Справочник.Пьесы.Форма.ФормаСпис ка.Форма}. Данные появляются в центральной базе после добавления данных в мобильной базе, но вот ошибка меня смущает

Сам код вот (Мобильная платформа)

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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 
 &НаСервере Процедура ПолучитьПьесы()     Попытка         HTTPСоединение=Новый HTTPСоединение("192.168.43.241",,,,,30);           HTTPЗапрос=Новый HTTPЗапрос("/CenterMaxServer/hs/HTTPEx");           HTTPЗапрос.Заголовки.Вставить("Content-Type","text/html; charset=utf-8;");         ОтветСервера=HTTPСоединение.Получить(HTTPЗапрос);         Если ОтветСервера.КодСостояния=200 Тогда             ДанныеСервера=Десериализовать(ОтветСервера.ПолучитьТелоКакСтроку("UTF8"));               Для Каждого СтрокаСервер Из ДанныеСервера Цикл                 Пьеса=Справочники.Пьесы.НайтиПоНаименованию(СтрокаСервер.Наименование);                 Если Пьеса.Пустая() Тогда                     Пьеса=Справочники.Пьесы.СоздатьЭлемент();                 Пьеса.Наименование=СтрокаСервер.Наименование;              Иначе                                                               Пьеса=Пьеса.ПолучитьОбъект();                             КонецЕсли;                 Пьеса.Записать();                             КонецЦикла;         Иначе             Попытка                 Сообщить(Десериализовать(ОтветСервера.ПолучитьТелоКакСтроку("UTF8")));             Исключение                 Сообщить(ОтветСервера.ПолучитьТелоКакСтроку("UTF8"));                 КонецПопытки;             КонецЕсли;     Исключение             Сообщить("Возникла проблема с интернетом");     КонецПопытки; КонецПроцедуры    &НаСервере Функция Сериализовать(ТелоJSON)     ЗаписьJSON=Новый ЗаписьJSON;     ЗаписьJSON.УстановитьСтроку();     СжатыйОбъект=Новый ХранилищеЗначения(ТелоJSON, Новый СжатиеДанных(9));     СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, СжатыйОБъект);     Возврат СтрЗаменить(ЗаписьJSON.Закрыть(),"#","_РЕШЕТКА_"); КОнецФункцИИ    &НаСервере Функция Десериализовать(СтрокаJSON)     ЧтениеJSON=Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(СтрЗаменить(СтрокаJSON,"_РЕШЕТКА_","#")); СЖатыйОбъект=СериализаторXDTO.ПрочитатьJSON(ЧтениеJSON, Тип("ХранилищеЗначения")); ЧтениеJSON.Закрыть(); Возврат СжатыйОбъект.Получить(); КОнецФУНКциИ   &НаКлиенте Процедура Обновить(Команда)     ПолучитьПьесы(); КонецПроцедуры    &НаСервере Функция ПолучитьРезультатВБазе()     Запрос = Новый Запрос;     Запрос.Текст =         "ВЫБРАТЬ         |   Пьесы.Наименование КАК Наименование         |ИЗ         |   Справочник.Пьесы КАК Пьесы";     СтрТела = Запрос.Выполнить().Выгрузить();       Попытка         HTTPСоединение=Новый HTTPСоединение("192.168.43.241",,,,,30);           HTTPЗапрос=Новый HTTPЗапрос("/CenterMaxServer/hs/HTTPEx/plays");           HTTPЗапрос.Заголовки.Вставить("Content-Type","text/html; charset=utf-8;");           HTTPЗапрос.УстановитьТелоИзСтроки(Сериализовать(СтрТела));         ОтветСервера=HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);         Если ОтветСервера.КодСостояния=200 Тогда             Возврат Десериализовать(ОтветСервера.ПолучитьТелоКакСтроку("UTF8"));               Иначе             Попытка                 Сообщить(Десериализовать(ОтветСервера.ПолучитьТелоКакСтроку("UTF8")));             Исключение                 Сообщить(ОтветСервера.ПолучитьТелоКакСтроку("UTF8"));                 КонецПопытки;             КонецЕсли;     Исключение             Сообщить("Возникла проблема с интернетом");         КонецПопытки;           КонецФункции             &НаКлиенте         Процедура ОтправитьДанные(Команда)             ПолучитьРезультатВБазе();         КонецПроцедуры

Если нужна дополнительная информация могу потом прикрепить или выгрузку обеих баз дать. Заранее спасибо

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

260 / 216 / 94

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

Сообщений: 1,334

10.05.2022, 15:52

2

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

Решение

ПолучитьРезультатВБазе() почему это функция? Значение возврата то на клиенте нигде не используется
Если ОтветСервера.КодСостояния=200 Тогда
Возврат Десериализовать(ОтветСервера.ПолучитьТелоКакСтроку («UTF8»));
Вот тут возможно летит мутабельное значение .

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

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

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

Верно.Процедура не может возвращать значение.

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

Кстати спасибо, я просто удалил эту строку и все работает как надо!)

Ну возможно оно где-то и должно использоваться.Тут вариант что результат должен возвращаться в процедуру с директивой «НаСервере» и обрабатываться,и предаваться на клиент в виде «простого типа».

1

0 / 0 / 0

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

Сообщений: 39

10.05.2022, 19:04

 [ТС]

6

Всем спасибо еще раз!

0

Сергей

Местный

Сообщений: 8
Баллов: 15
Регистрация: 26.06.2022

#10

0

28.06.2022 13:36:40

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = РаботаСоСпискамиДокументовКлиент.ПолучитьДанныеТекущейСтрокиСписка(
Элементы.Список, Элементы.Список.ТекущаяСтрока);

Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;

Если Поле = Элементы.Файлы Тогда
ОткрыватьЗакладкуФайлы=ПроверкаОткрытияЗаклФайлы(ЭтаФорма)
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуФайлы», ТекущиеДанные.Ссылка, ОткрыватьЗакладкуФайлы);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;

Если Поле = Элементы.ПодписанЭП Тогда
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуЭП», ТекущиеДанные.Ссылка, Истина);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;

Если Поле = Элементы.Задачи Тогда
ОткрытьФорму(«ОбщаяФорма.ПроцессыИЗадачи»,
Новый Структура(«Предмет», ТекущиеДанные.Ссылка),
ЭтаФорма);
Возврат;
КонецЕсли;

Если Поле = Элементы.ЕстьКатегории Тогда
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуКатегории», ТекущиеДанные.Ссылка, Истина);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;

Если Поле = Элементы.СостояниеКонтроля Тогда
КонтрольКлиент.ОбработкаКомандыКонтроль(ТекущиеДанные.Ссылка, ЭтаФорма);
Возврат;
КонецЕсли;

ПараметрыОткрытия = Новый Структура(«Ключ», ТекущиеДанные.Ссылка);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
КонецПроцедуры

Классика: Ошибка отображения типов: Отсутствует отображение для типа

Я
   TrueBuild

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’

Не могу понять, что не так?

Причем процедура ПриСозданииНаСервере() открываемой формы отрабатывает без ошибок. Ошибка возникает, когда вызов возвращается в ОткрытьФорму().

Подскажите, что делаю не так, в чем ошибка?

   vicof

1 — 26.02.22 — 00:12

А 1ска говорит, что передаешь

   МихаилМ

2 — 26.02.22 — 00:15

(0) Почитайте раздел рекомендации правил форума.

   TrueBuild

3 — 26.02.22 — 00:34

(1) Поэтому и не понимаю, где ошибка. Вижу, что говорит, но так же вижу и в отладке, что я передаю — см. 2 скриншот, там ТЗ нет, только ссылки и простые типы.

(2) Если вы про поиск, то, естественно, им пользовался, ответа на свой вопрос не нашел.

   H A D G E H O G s

4 — 26.02.22 — 00:50

(0) Ты ТаблицуЗначений в каком то из параметров возвращаешь с сервера. Скинь конфигу

   TrueBuild

5 — 26.02.22 — 01:14

(4) По завершению процедуры ПриСозданииНаСервере, когда вызов возвращается обратно на клиент, в параметрах так же нет никакой ТЗ, так же только ссылки и простые типы:

https://disk.yandex.ru/i/qezDhmDrPg1Mjg

   H A D G E H O G s

6 — 26.02.22 — 02:33

(5) Скинь Cf на liveups@yandex.ru

   pechkin

7 — 26.02.22 — 07:30

Тз это не реквизит формы?

   МимохожийОднако

8 — 26.02.22 — 07:59

Вместо ТЗ надо передавать массив.

   SuperMario

9 — 26.02.22 — 09:11

>> Причем процедура ПриСозданииНаСервере() открываемой формы отрабатывает без ошибок. Ошибка возникает, когда вызов возвращается в ОткрытьФорму()

Значит скрины не актуальны. Вы нас в заблуждение ими вводите.

«Курите» код по всем событиям в открываемой форме , начина с ПриСозданииНаСервере()

   SuperMario

10 — 26.02.22 — 09:12

Вы с сервера на клиент в уже откываемой форме что-то универсальное передаете.

   TrueBuild

11 — 26.02.22 — 09:31

Всем спасибо, разобрался, проблема оказалась в другом. (5) Вот тут на скрине полностью не видно, но в открываемой форме я создаю ТЗ и пытаюсь передать ее в качестве параметра в динамический список, чего, оказывается делать нельзя.

Ввело в заблуждение то, что исключение вызывалось после вызова ОткрытьФорму(), а само создание формы (ПриСозданииНаСервере) отрабатывало без ошибок.

   ДедМорроз

12 — 26.02.22 — 14:24

ТаблицуЗначений передать с сервера на клиента нельзя.

Как ни странно,но создать ТЗ можно в толстом клиенте и с ухищрениями в тонком,а передать нельзя,так как ограничение искуственное.

   acht

13 — 26.02.22 — 16:07

(12) > и с ухищрениями в тонком

Веб клиент — достаточно тонкий?

  

ДедМорроз

14 — 26.02.22 — 19:56

Есть несколько видов клиентов:

Толстый клиент,

Тонкий клиент,

Web-клиент,

Мобильный клиент.

В последних двух никакого намека на таблицу значений,так как ее там никогда не было.

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

Описание ошибки:
Ошибка при программировании, конфигурировании кода в 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)

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

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

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

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

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

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

  1. При передаче результата запроса функции через Возврат в Клиент, выходит ошибка «Отсутствует отображение для типа ‘ВыборкаИзРезультатаЗапроса‘».

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

    На клиенте:

    Процедура РаскладкаПКОтПриИзменении(Элемент)
        СтрокаТабличнойЧасти = Элементы.Раскладка.ТекущиеДанные;
        ПКДо = СтрокаТабличнойЧасти.ПКОт + СтрокаТабличнойЧасти.Длина;
        Результат = РаскладкаТрубы.ПересеченияРаскладки(СтрокаТабличнойЧасти.ПКОт, ПКДо);
    КонецПроцедуры

    НаСервере

    Функция ПересеченияРаскладки(От,До)Экспорт
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ТрубаРаскладка.ПКОт,
        |    ТрубаРаскладка.ПКДо,
        |    ТрубаРаскладка.ТрубаНом,
        |    ТрубаРаскладка.ТрубаНом.Длина КАК Длина
        |ИЗ
        |    РегистрСведений.ТрубаРаскладка КАК ТрубаРаскладка
        |ГДЕ
        |    ТрубаРаскладка.ПКОт <= &ПКОт И ТрубаРаскладка.ПКДо >= &ПКОт
        |УПОРЯДОЧИТЬ ПО ТрубаРаскладка.ПКОт
        |";
                
        Запрос.УстановитьПараметр("ПКОт", От);
        Запрос.УстановитьПараметр("ПКДо", До);
        Результат = Запрос.Выполнить().Выбрать();
       
        Возврат Результат;
           
    КонецФункции

  2. alexburn

    Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204

    Почитайте про Выбрать() и про его область видимости — На клиенте, На сервере…

  3. А почему точно в таких же запросах из клиента в сервер все работает? Разница только в другой таблице.


  4. alexburn

    Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204

    Потому что:
    РезультатЗапроса (QueryResult)
    Выбрать (Select)
    Доступность:
    Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

    ВыборкаИзРезультатаЗапроса (QueryResultSelection)
    Доступность:
    Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

  5. Одинаковая ошибка как из Тонкого клиента, так из Толстого.


  6. alexburn

    Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204

    А где вы параметры запросу задаете ? Вернее их значения ?

    — Объединение сообщений, 2 июн 2016

    А, увидел

    — Объединение сообщений, 2 июн 2016

    Отладчиком проходились по серверной функции ? Попадает туда ?

  7. По серверной ходил. Ответ по запросу есть. Но при передаче в клиент путем Возврат, выходит ошибка.
    Перед этим киврялся и пытался передать значения на другую форму. Начала выходить ошибка. Потом эту Другую форму удалил……но результат с ошибкой сохранился.
    Могло это как-то повлиять?


  8. alexburn

    Offline

    alexburn
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204

    Вроде как результат запроса на клиента нельзя передать, обрабатывайте на сервере все.


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

  • Ошибка отображения типов отсутствует отображение для типа описаниеоповещения
  • Ошибка отображения типов отсутствует отображение для типа командаформы
  • Ошибка отображения типов отсутствует отображение для типа кодвозвратадиалога
  • Ошибка отображения типов отсутствует отображение для типа интернетпочтовыйпрофиль
  • Ошибка отображения типов отсутствует отображение для типа данныеформыэлементдерева