1с ошибка отображения типов отсутствует отображение для типа полеформы

   Иде я

Модератор

17.03.11 — 09:55

Подскажите, делаю выбор из поля строки на управляемой форме в табличном поле:

Выходит ошибка:

   ФормаВыбора = ПолучитьФорму(«Справочник.Сотрудники.Форма.ФормаВыбораПодразделение»,ПараметрыФормы,Элемент);

по причине:

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

по причине:

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

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

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

   имя: {http://v8.1c.ru/8.2/mngsrv/ws}val

по причине:

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

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

   Иде я

1 — 17.03.11 — 09:55

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

       ФормаВыбора.Подразделение = Объект.Подразделение;
   ФормаВыбора.ОтборПоПодразделению = Истина;

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

       ФормаВыбора.Открыть();
   ФормаВыбора.Элементы.Список.Обновить();
   СтандартнаяОбработка=Ложь;

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

   Иде я

2 — 17.03.11 — 09:56

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

       ФормаВыбора.Подразделение = Объект.Подразделение;
   ФормаВыбора.ОтборПоПодразделению = Истина;

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

       ФормаВыбора.Открыть();
   ФормаВыбора.Элементы.Список.Обновить();
   СтандартнаяОбработка=Ложь;

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

   xReason

3 — 17.03.11 — 09:58

где-там там между клиентом и сервером лежет такой тип данных который нельзя передать. Что-то типо фундаментального объект (справочник, документ и т.д.)

Ошибка возникает перед появлением формы или после?

   xReason

4 — 17.03.11 — 09:58

«лежет » => лезет (т.е. передается)

   Defender aka LINN

5 — 17.03.11 — 09:59

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



ПараметрыФормы.Вставить(«ТекущаяСтрока»,Элемент);

Вопросы есть?

   detec

6 — 17.03.11 — 10:02

(0) В 8.2 для ссылочных значений есть связи параметров выбора. При правильной настройке их в Конфигураторе форма выбора открывается уже отфильтрованная. И не нужно городить сложный код в стиле обычного приложения.

   Иде я

7 — 17.03.11 — 10:10

(5) есть, что делать-то ?
(6) Пользователь захотел форму отбора с вынесенным фильтром по подразделению — им неудобно лезть в меню действия и тп…

   Иде я

8 — 17.03.11 — 10:12

(5) Убрал строку — теперь работает, но если открывает выбор в поле с уже выбранным сотрудником, список не позиционируется на нем :(((
Как сделать уже выбранного сотрудника текущим ?

   Defender aka LINN

9 — 17.03.11 — 10:13

(7) Ну, какбе… «Элемент» — это поле формы. А ты его пытаешься передать куда-то. Судя по названию, там должно быть что-нибудь другое все-таки.

   Иде я

10 — 17.03.11 — 10:14

(9) Ну как бы да…Элемент.Значение типа того ?

   Иде я

11 — 17.03.11 — 10:16

Ага, как получить текущее значение поля сотрудник табличной части сотрудники в момент выбора ?

   Defender aka LINN

12 — 17.03.11 — 10:18

ТабличнаяЧасть.ТекущиеДанные.Сотрудник

   Иде я

13 — 17.03.11 — 10:22

(12)    {Документ.ИзменениеУсловийТруда.Форма.ФормаДокумента.Форма(531)}: Поле объекта не обнаружено (ТекущиеДанные)
   ПараметрыФормы.Вставить(«ТекущаяСтрока»,Объект.Сотрудники.ТекущиеДанные.Сотруд

   Defender aka LINN

14 — 17.03.11 — 10:25

(13) Я говорил что-то про объект?

Элементы.ТабличнаяЧасть, забыл написть :)

   Иде я

15 — 17.03.11 — 10:27

(14) Действительно, при чем здесь Объект…

  

Иде я

16 — 17.03.11 — 10:28

(14) Гениально! Работает…вроде бы.

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

Автор Дммитррий, 14 ноя 2022, 13:26

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

Объясните что не так? И почему…13124.jpg


а куда ты его впихал или как посмотреть пытаешься?


NaumovAlexey, скрин не сразу вставился)


может так

&НаСервереБезКонтекста
Функция ПокупательПриИзмененииНаСервере(Покуматель)
возврат Покупатель.Скидка;
конецФункции;

&НаКлиенте
Процедура ПокупательПриИзменении(Элемент)
//передаем не элемент а реквизит
Объект.Скдика = ПокупательПриИзмененииНаСервере(Объект.Покупатель);
конецПроцедуры;

  • 1 пользователь сказал спасибо!

если помогло нажмите: Спасибо!



Дммитррий, поторопся, исправил

если помогло нажмите: Спасибо!


LexaK, о, сработало, спасибо


  

Иде я

Модератор

17.03.11 — 09:55

Подскажите, делаю выбор из поля строки на управляемой форме в табличном поле:

Выходит ошибка:

   ФормаВыбора = ПолучитьФорму(«Справочник.Сотрудники.Форма.ФормаВыбораПодразделение»,ПараметрыФормы,Элемент);

по причине:

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

по причине:

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

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

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

   имя: {http://v8.1c.ru/8.2/mngsrv/ws}val

по причине:

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

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

  

Иде я

1 — 17.03.11 — 09:55

Вот код:
&НаКлиенте

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

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

  

Иде я

2 — 17.03.11 — 09:56

то же саамое, но при выборе не из таблицы, а из просто поля отрабатывает нормально:
&НаКлиенте

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

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

  

xReason

3 — 17.03.11 — 09:58

где-там там между клиентом и сервером лежет такой тип данных который нельзя передать. Что-то типо фундаментального объект (справочник, документ и т.д.)

Ошибка возникает перед появлением формы или после?

  

xReason

4 — 17.03.11 — 09:58

«лежет » => лезет (т.е. передается)

  

Defender aka LINN

5 — 17.03.11 — 09:59

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

ПараметрыФормы.Вставить("ТекущаяСтрока",Элемент);

Вопросы есть?

  

detec

6 — 17.03.11 — 10:02

(0) В 8.2 для ссылочных значений есть связи параметров выбора. При правильной настройке их в Конфигураторе форма выбора открывается уже отфильтрованная. И не нужно городить сложный код в стиле обычного приложения.

  

Иде я

7 — 17.03.11 — 10:10

(5) есть, что делать-то ?
(6) Пользователь захотел форму отбора с вынесенным фильтром по подразделению — им неудобно лезть в меню действия и тп…

  

Иде я

8 — 17.03.11 — 10:12

(5) Убрал строку — теперь работает, но если открывает выбор в поле с уже выбранным сотрудником, список не позиционируется на нем :(((
Как сделать уже выбранного сотрудника текущим ?

  

Defender aka LINN

9 — 17.03.11 — 10:13

(7) Ну, какбе… «Элемент» — это поле формы. А ты его пытаешься передать куда-то. Судя по названию, там должно быть что-нибудь другое все-таки.

  

Иде я

10 — 17.03.11 — 10:14

(9) Ну как бы да…Элемент.Значение типа того ?

  

Иде я

11 — 17.03.11 — 10:16

Ага, как получить текущее значение поля сотрудник табличной части сотрудники в момент выбора ?

  

Defender aka LINN

12 — 17.03.11 — 10:18

ТабличнаяЧасть.ТекущиеДанные.Сотрудник

  

Иде я

13 — 17.03.11 — 10:22

(12)    {Документ.ИзменениеУсловийТруда.Форма.ФормаДокумента.Форма(531)}: Поле объекта не обнаружено (ТекущиеДанные)
   ПараметрыФормы.Вставить(«ТекущаяСтрока»,Объект.Сотрудники.ТекущиеДанные.Сотруд

  

Defender aka LINN

14 — 17.03.11 — 10:25

(13) Я говорил что-то про объект?

Элементы.ТабличнаяЧасть, забыл написть :)

  

Иде я

15 — 17.03.11 — 10:27

(14) Действительно, при чем здесь Объект…

  

Иде я

16 — 17.03.11 — 10:28

(14) Гениально! Работает…вроде бы.

Alwarus

0 / 0 / 0

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

Сообщений: 6

1

1C 8.x

Открытие формы документа с заполнением данных из формы справочника

13.07.2016, 22:39. Показов 9309. Ответов 7

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


Здравствуйте!
Платформа 1с 8.3, пытаюсь создать базу пациентов.))
Есть Справочник с формой элемента

Открытие формы документа с заполнением данных из формы справочника

И есть Документ, созданный на основании реестра сведений

Открытие формы документа с заполнением данных из формы справочника

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

1C
1
2
3
4
5
6
7
8
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ПараметрыФормы = Новый Структура("Наименование", ПараметрКоманды);
    ПараметрыФормы.Вставить("Отбор", Новый Структура("Пациент", ПараметрКоманды));
    ОткрытьФорму("Документ.ПерсональныеДанные.Форма.ФормаДокумента", ПараметрыФормы,
                ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность,
                ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);
    КонецПроцедуры

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

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

0

Dethmontt

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

13.07.2016, 22:54

2

Alwarus, почему не передается?

Добавлено через 1 минуту

1C
1
2
//ПараметрыФормы.Вставить("Отбор", Новый Структура("Пациент", ПараметрКоманды));
ПараметрыФормы.Вставить("ЗначенияЗаполнения", Новый Структура("Пациент", ПараметрКоманды));

Добавлено через 2 минуты
Alwarus, ты его туда передал вот так

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

ПараметрыФормы = Новый Структура(«Наименование», ПараметрКоманды);

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

ОткрытьФорму(«Документ.ПерсональныеДанные.Форма.Фо рмаДокумента», ПараметрыФормы,

Но такой параметр ты должен обработать вручную в процедуре ПриСозданииНаСервере

Добавлено через 2 минуты

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

ПараметрыФормы.Вставить(«ЗначенияЗаполнения», Новый Структура(«Пациент», ПараметрКоманды));

При таком подходе, у реквизита должна стоять галка «Заполнять из данных заполнения»

0

0 / 0 / 0

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

Сообщений: 6

14.07.2016, 07:41

 [ТС]

3

По второму варианту выдает ошибку:

{Справочник.Пациент.Форма.ФормаЭлемента1.Форма(83) }: Ошибка при вызове метода контекста (ОткрытьФорму)
ОткрытьФорму(«Документ.ПерсональныеДанные.Форма.Фо рмаДокумента», ПараметрыФормы);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘val’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/mngsrv/ws}val
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘ПолеФормы’

Наверно и при этом надо создать процедуру ПриСозданииНаСервере. Или ПриОткрытии?

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

14.07.2016, 11:29

4

Alwarus, что стоит в Тип параметр команды — в свойствах команды?

Добавлено через 3 минуты
Alwarus, и почему нельзя использовать команды формы?

0

Alwarus

0 / 0 / 0

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

Сообщений: 6

14.07.2016, 13:47

 [ТС]

5

Тип команды СправочникСсылка.Пациент

Команды формы наверно можно использовать, создал кнопку на форме с командой в модуле объекта:

1C
1
2
3
4
5
6
7
&НаКлиенте
Процедура ВвестиПД(Команда)
    СсылкаНаЭлемент = Элементы.Наименование;
    ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", СсылкаНаЭлемент);   
    ОткрытьФорму("Документ.ПерсональныеДанные.Форма.ФормаДокумента", ПараметрыФормы);
 
КонецПроцедуры

Выдает такую же ошибку.

0

Dethmontt

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

14.07.2016, 14:48

6

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

Решение

Alwarus,

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

Элементы.Наименование;

Что это такое?

Добавлено через 48 секунд

1C
1
2
    ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", Новый Структура("Пациент", Объект.Ссылка));    
    ОткрытьФорму("Документ.ПерсональныеДанные.Форма.ФормаДокумента", ПараметрыФормы);

Добавлено через 3 минуты

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

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

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

по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘ПолеФормы’

Ошибка о чем говорит?

Что ты передаешь на сервере Хрень, сервер не знает таких типов как «ПолеФормы»
Забудь навсегда слово ЭЛЕМЕНТЫ. к данным так обращаться НЕЛЬЗЯ!

1

0 / 0 / 0

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

Сообщений: 6

14.07.2016, 21:03

 [ТС]

7

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

1
2
ПараметрыФормы = Новый Структура(«ЗначенияЗаполнения», Новый Структура(«Пациент», Объект.Ссылка));
ОткрытьФорму(«Документ.ПерсональныеДанные.Форма.Фо рмаДокумента», ПараметрыФормы);

Заработало, спасибо! И за совет про Элемент тоже…)) Интересно получается, мы создаем структуру с ключом «ЗначенияЗаполнения» и значением, которое получаем созданием еще одной структуры с ключом по справочнику «Пациент» и значением-ссылкой на него, правильно?
А почему выдает такую же ошибку при работе с командой справочника? Там же не было ссылки на элементы формы.

0

Модератор

Эксперт 1С

3697 / 2897 / 569

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

Сообщений: 11,398

Записей в блоге: 1

14.07.2016, 21:09

8

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

правильно?

Совершенно верно

Добавлено через 1 минуту

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

Там же не было ссылки на элементы формы.

Параметр может быть чем угодно, его нужно настраивать (может зависеть от группы и т.д.)

0

IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

14.07.2016, 21:09

Помогаю со студенческими работами здесь

Открытие формы на добавление записи с автоматическим заполнением связанного поля
Приветствую всех! Помогите разобраться!
В БД имеются две таблицы, связанные через поле "код…

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

Открытие формы на добавления на основе данных из другой формы
Помогите решить две проблемы:
1. Есть "форма 1" со свободным полем "Код предприятия", нужно чтобы…

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

Автоматическое открытие формы справочника при переходе в Подсистему.
Как можно реализовать, чтобы когда я нажимаю на подсистему, при переходе сразу открывалсь форма…

Открытие формыдокумента во фрейме
Всем привет.

Столкнулся с проблемой, пока не знаю как её разрулить (все в web)

1. Есть…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

8

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

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

&НаСервере
Функция ТестВызоваСервера(Форма)

	Форма.ТолькоПросмотр = Истина;

КонецФункции // ТестВызоваСервера()

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

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

&НаСервере
Функция ТестВызоваСервера()

	ЭтаФорма.ТолькоПросмотр = Истина;	

КонецФункции // ТестВызоваСервера()

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

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

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

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

Сергей

Местный

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

#10

0

28.06.2022 13:36:40

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

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

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

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

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

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

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

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

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

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

Alwarus

0 / 0 / 0

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

Сообщений: 6

1

1C 8.x

Открытие формы документа с заполнением данных из формы справочника

13.07.2016, 22:39. Показов 10019. Ответов 7

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


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

Здравствуйте!
Платформа 1с 8.3, пытаюсь создать базу пациентов.))
Есть Справочник с формой элемента

Открытие формы документа с заполнением данных из формы справочника

И есть Документ, созданный на основании реестра сведений

Открытие формы документа с заполнением данных из формы справочника

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

1C
1
2
3
4
5
6
7
8
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ПараметрыФормы = Новый Структура("Наименование", ПараметрКоманды);
    ПараметрыФормы.Вставить("Отбор", Новый Структура("Пациент", ПараметрКоманды));
    ОткрытьФорму("Документ.ПерсональныеДанные.Форма.ФормаДокумента", ПараметрыФормы,
                ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность,
                ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);
    КонецПроцедуры

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



0



Dethmontt

Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

13.07.2016, 22:54

2

Alwarus, почему не передается?

Добавлено через 1 минуту

1C
1
2
//ПараметрыФормы.Вставить("Отбор", Новый Структура("Пациент", ПараметрКоманды));
ПараметрыФормы.Вставить("ЗначенияЗаполнения", Новый Структура("Пациент", ПараметрКоманды));

Добавлено через 2 минуты
Alwarus, ты его туда передал вот так

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

ПараметрыФормы = Новый Структура(«Наименование», ПараметрКоманды);

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

ОткрытьФорму(«Документ.ПерсональныеДанные.Форма.ФормаДокумента», ПараметрыФормы,

Но такой параметр ты должен обработать вручную в процедуре ПриСозданииНаСервере

Добавлено через 2 минуты

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

ПараметрыФормы.Вставить(«ЗначенияЗаполнения», Новый Структура(«Пациент», ПараметрКоманды));

При таком подходе, у реквизита должна стоять галка «Заполнять из данных заполнения»



0



0 / 0 / 0

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

Сообщений: 6

14.07.2016, 07:41

 [ТС]

3

По второму варианту выдает ошибку:

{Справочник.Пациент.Форма.ФормаЭлемента1.Форма(83)}: Ошибка при вызове метода контекста (ОткрытьФорму)
ОткрытьФорму(«Документ.ПерсональныеДанные.Форма.ФормаДокумента», ПараметрыФормы);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘val’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/mngsrv/ws}val
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘ПолеФормы’

Наверно и при этом надо создать процедуру ПриСозданииНаСервере. Или ПриОткрытии?



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

14.07.2016, 11:29

4

Alwarus, что стоит в Тип параметр команды — в свойствах команды?

Добавлено через 3 минуты
Alwarus, и почему нельзя использовать команды формы?



0



Alwarus

0 / 0 / 0

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

Сообщений: 6

14.07.2016, 13:47

 [ТС]

5

Тип команды СправочникСсылка.Пациент

Команды формы наверно можно использовать, создал кнопку на форме с командой в модуле объекта:

1C
1
2
3
4
5
6
7
&НаКлиенте
Процедура ВвестиПД(Команда)
    СсылкаНаЭлемент = Элементы.Наименование;
    ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", СсылкаНаЭлемент);   
    ОткрытьФорму("Документ.ПерсональныеДанные.Форма.ФормаДокумента", ПараметрыФормы);
 
КонецПроцедуры

Выдает такую же ошибку.



0



Dethmontt

Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

14.07.2016, 14:48

6

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

Решение

Alwarus,

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

Элементы.Наименование;

Что это такое?

Добавлено через 48 секунд

1C
1
2
    ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", Новый Структура("Пациент", Объект.Ссылка));    
    ОткрытьФорму("Документ.ПерсональныеДанные.Форма.ФормаДокумента", ПараметрыФормы);

Добавлено через 3 минуты

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

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

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

по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘ПолеФормы’

Ошибка о чем говорит?

Что ты передаешь на сервере Хрень, сервер не знает таких типов как «ПолеФормы»
Забудь навсегда слово ЭЛЕМЕНТЫ. к данным так обращаться НЕЛЬЗЯ!



1



0 / 0 / 0

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

Сообщений: 6

14.07.2016, 21:03

 [ТС]

7

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

1
2
ПараметрыФормы = Новый Структура(«ЗначенияЗаполнения», Новый Структура(«Пациент», Объект.Ссылка));
ОткрытьФорму(«Документ.ПерсональныеДанные.Форма.ФормаДокумента», ПараметрыФормы);

Заработало, спасибо! И за совет про Элемент тоже…)) Интересно получается, мы создаем структуру с ключом «ЗначенияЗаполнения» и значением, которое получаем созданием еще одной структуры с ключом по справочнику «Пациент» и значением-ссылкой на него, правильно?
А почему выдает такую же ошибку при работе с командой справочника? Там же не было ссылки на элементы формы.



0



Модератор

Эксперт 1С

3724 / 2918 / 575

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

Сообщений: 11,491

Записей в блоге: 1

14.07.2016, 21:09

8

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

правильно?

Совершенно верно

Добавлено через 1 минуту

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

Там же не было ссылки на элементы формы.

Параметр может быть чем угодно, его нужно настраивать (может зависеть от группы и т.д.)



0



IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

14.07.2016, 21:09

Помогаю со студенческими работами здесь

Открытие формы на добавление записи с автоматическим заполнением связанного поля
Приветствую всех! Помогите разобраться!
В БД имеются две таблицы, связанные через поле &quot;код…

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

Открытие формы на добавления на основе данных из другой формы
Помогите решить две проблемы:
1. Есть &quot;форма 1&quot; со свободным полем &quot;Код предприятия&quot;, нужно чтобы…

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

Автоматическое открытие формы справочника при переходе в Подсистему.
Как можно реализовать, чтобы когда я нажимаю на подсистему, при переходе сразу открывалсь форма…

Открытие формыдокумента во фрейме
Всем привет.

Столкнулся с проблемой, пока не знаю как её разрулить (все в web)

1. Есть…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

8

Добрый день, коллеги. Версия 1с 8.3 Проблема: в документе у меня 2 реквизита: КонтрагентВалюты  и НомерПаспорта КонтрагентВалюты — ссылочный тип на Справочник «КонтрагентыВалюты» НомерПаспорта — строка 10 знаков. В справочнике «КонтрагентыВалюты» также есть реквизит НомерПаспорта, строка 10 симв. Я хочу, чтобы в форме документа после того, как выберу контрагента, в поле документа «НомерПаспорта» автоматически появился номер паспорта, взятый со справочника «КонтрагентыВалюты» для конкретного человека В модуле формы таков код: При  запуске 1с в пользовательском режиме когда я вставляю Контрагента выдается сообщение: Ошибка отображения типа. Отсутствует отображение для типа «Поле формы» Когда я подробней просмотрел ошибку, то выдано следующее: {Документ.ПокупкаВалюты.Форма.ФормаДокумента.Форма}: Ошибка при вызове метода контекста (ПолучиНомерПаспорта)     НомерПаспорта=ПолучиНомерПаспорта(Элементы.ПродавецВалюты); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства ‘param’:     форма: Элемент     имя: { по причине: Ошибка отображения типов: Отсутствует отображение для типа ‘ПолеФормы’ Подскажите пожалуйста, помогите. Заранее благодарен. Удачного дня!

в отладчике встань на строку НомерПаспорта=ПолучиНомерПаспорта(Элементы.ПродавецВалюты); и посмотри на тип Элементы.ПродавецВалюта

Как просмотреть тип функции или переменной при отладке в 1С

Тэги: 1С 8

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

  • 1с ошибка отображения типов отсутствует отображение для типа valuetable
  • 1с ошибка открытия прикрепленного файла
  • 1с ошибка операции криптографии неизвестная ошибка 0x800a138f
  • 1с ошибка обращения к интернет поддержке 1с
  • 1с ошибка обновления риб