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

Преобразование массива структур в Таблицу значений

Преобразование массива структур в Таблицу значений

Я
   iznvi

08.10.18 — 12:28

Ребят,появилась проблема,задача состоит в том чтобы Таблицу значений перевести с Клиента на сервере,делаю это через массив структур(Нашел в интернете функции,приложу их в теме) вроде бы делаю все правильно,но все равно выдает ошибку *Ошибка отображения типов:

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

Так вот «Выберите:» реквизит формы

Код внешней обработки :

&НаКлиенте    

Функция ПреобразоватьТаблицуЗначенийВМассив(тзДанные,мсДанные)

    
    мсДанные = Новый Массив;

        
    // Запишем в массив

    Для Каждого СтрокаТЗ Из тзДанные Цикл

        
        стСтрокаТаблицы = Новый Структура;

        Для Каждого ИмяКолонки Из тзДанные.Колонки Цикл

            стСтрокаТаблицы.Вставить(ИмяКолонки.Имя, СтрокаТЗ[ИмяКолонки.Имя]);

        КонецЦикла;

        
        мсДанные.Добавить(стСтрокаТаблицы);

        
    КонецЦикла;

    
    Возврат мсДанные;

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

&НаСервере

Функция ПреобразоватьМассивВТаблицуЗначений(мсДанные)

    
    тзДанные = Новый ТаблицаЗначений;

    
    Для Каждого ЭлементМассива Из мсДанные Цикл

        // Рисуем колонки для таблицы

        //Если тзДанные.Колонки.Количество() = 0 Тогда

            Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл

                тзДанные.Колонки.Добавить(«Отдел»,,»Отдел»);

                тзДанные.Колонки.Добавить(«Сотрудник»,,»Фамилия сотрудника»);

                тзДанные.Колонки.Добавить(«Оклад»,,»Оклад»);

            КонецЦикла;

        //КонецЕсли;

        
        // Добавляем данные в таблицу

        НоваяСтрока = тзДанные.Добавить();

        Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл

            //НоваяСтрока[ЗначениеСтруктуры.Ключ] = ЗначениеСтруктуры.Значение;

            НоваяСтрока.Отдел=»Отдел 1″;

            НоваяСтрока.Сотрудник=»Иванов»;

            НоваяСтрока.Оклад=5600;

        КонецЦикла;

    КонецЦикла;

    
    Возврат тзДанные;

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

&НаСервере

Процедура СКлиентаНаСервере(Команда,Массив,Список,МсДанные)

    Если Выберите = «Массив» Тогда

        
        Массив.Добавить(«ПередачаМассива»);

    Для Каждого Строки из Массив Цикл

        Сообщить(Строки);

    КонецЦикла;

    
ИначеЕсли Выберите = «СписокЗначений» Тогда

    
    Список.Добавить(«ПередачаСписка»);

    Для Каждого ЭлементСписка из Список Цикл

        Сообщить(ЭлементСписка);    

    КонецЦикла;

    
    ИначеЕсли Выберите=»ТаблицаЗначений» Тогда  

        Для Каждого Колонки из МсДанные Цикл

            Сообщить(Колонки);

        КонецЦикла;

        
    КонецЕсли;

   VladZ

1 — 08.10.18 — 12:31

Есть готовое решение. Почему его не используешь?

   Ник080808

2 — 08.10.18 — 12:32

(1) в бсп?

   hhhh

3 — 08.10.18 — 12:33

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

чтобы его перевести в ТЗ делаешь ТвойРеквизит.Выгрузить(); получаешь таблицу значений.

   VladZ

4 — 08.10.18 — 12:35

(2) Да.

   Ник080808

5 — 08.10.18 — 12:37

(4) а какая версия? я в пятницу облазил в поисках не нашел. знаю есть из тз в массив, а обратно не видел(

   Cyberhawk

6 — 08.10.18 — 12:38

(4) Гонишь

   arsik

7 — 08.10.18 — 12:42

Можно же через значениеВСтроку или сейчас такое не используется?

   Cyberhawk

8 — 08.10.18 — 12:44

(7) Используется. *овнокодерами.

   VladZ

9 — 08.10.18 — 12:45

(6) Не могу пока проверить — база занята.

Возможно гоню. :)

Можно здесь взять готовые:

http://catalog.mista.ru/public/240022/

   iznvi

10 — 08.10.18 — 12:54

(3) Получается что Создаю реквизит формы называю его ТабЗнч и &НаКлиенте

Функция ПредачаТаблицыЗначений()

        
        ТабЗнч.Колонки.Добавить(«Отдел»,,»Отдел»);

        ТабЗнч.Колонки.Добавить(«Сотрудник»,,»Фамилия сотрудника»);

        ТабЗнч.Колонки.Добавить(«Оклад»,,»Оклад»);

        
        ТабЗнч.Отдел=»Отдел 1″;

        ТабЗнч.Сотрудник=»Иванов»;

        ТабЗнч.Оклад=5600;

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

&НаСервере

Процедура СКлиентаНаСервере(Команда,Массив,Список)

    Если Выберите = «Массив» Тогда

        
        Массив.Добавить(«ПередачаМассива»);

    Для Каждого Строки из Массив Цикл

        Сообщить(Строки);

    КонецЦикла;

    
ИначеЕсли Выберите = «СписокЗначений» Тогда

    
    Список.Добавить(«ПередачаСписка»);

    Для Каждого ЭлементСписка из Список Цикл

        Сообщить(ЭлементСписка);    

    КонецЦикла;

    
    ИначеЕсли Выберите=»ТаблицаЗначений» Тогда  

        ТабЗнч.Выгрузить();        

    КонецЕсли;

Всеравно летит ошибка

   iznvi

11 — 08.10.18 — 12:54

(3) Если не понятно,скажи,заредактю:)

   Йохохо

12 — 08.10.18 — 13:14

кажется КомандаФормы не хочет в ТЗ

  

iznvi

13 — 08.10.18 — 13:17

(12) ?

Автор lolozhiga, 18 фев 2014, 10:45

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

Помогите с формой. Есть код:

&НаКлиенте
Процедура ПечатьК(ТабДокумент,Команда)
Печать(ТабДокумент);
КонецПроцедуры

&НаСервере
Процедура Печать(ТабДокумент)
ПечатьАкта(ТабДокумент)  ;
ТабДокумент.Показать();
КонецПроцедуры

&НаСервере
Функция ПечатьАкта(ТабДокумент)

Перем ПодразделениеОтветственныхЛиц; 
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ПолеСверху              = 10;
ТабДокумент.ПолеСлева               = 5;
ТабДокумент.ПолеСнизу               = 10;
ТабДокумент.ПолеСправа              = 5;
ТабДокумент.АвтоМасштаб             = Ложь;
ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет; 
Табдокумент.ОтображатьСетку = Ложь;
ТабДокумент.ОтображатьЗаголовки = Ложь;


//Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка());

Запрос = ЗапросНаСервере(); 
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ТОРГ2");

//СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.ДатаДокумента);
//СведенияОПоставщике = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо,  Шапка.ДатаДокумента);

//Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Руководители, Шапка.ДатаДокумента, ПодразделениеОтветственныхЛиц);
//Руководитель = Руководители.РуководительПредставление;
//Бухгалтер    = Руководители.ГлавныйБухгалтерПредставление;

ОбластьМакета = Макет.ПолучитьОбласть("ШапкаПервойСтраницы");
ОбластьМакета.Параметры.Заполнить(Шапка);
//ОбластьМакета.Параметры.ПредставлениеОрганизации = ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,ЮридическийАдрес,ИНН,КПП,Телефоны");
//ОбластьМакета.Параметры.ОрганизацияПоОКПО = ОписаниеОрганизации(СведенияОПокупателе, "КодПоОКПО");
ОбластьМакета.Параметры.ДатаДокумента  = Формат(Шапка.ДатаДокумента, "ДФ=dd.MM.yyyy");
//ОбластьМакета.Параметры.ДолжностьРуководителя     = Руководители.РуководительДолжность;
//ОбластьМакета.Параметры.РуководительФИО           = Руководители.РуководительПредставление;
//ОбластьМакета.Параметры.Грузоотправитель = ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,ЮридическийАдрес,ИНН,КПП,Телефоны");
ОбластьМакета.Параметры.НомерДокумента = Шапка.НомерДок;
ОбластьМакета.Параметры.НомерОснования = Объект.НомерОснования;
ОбластьМакета.Параметры.ОснованиеДляСоставленияАкта  = Объект.Основание;
ОбластьМакета.Параметры.ПредставлениеПодразделения = Шапка.ПодразделениеОрганизации;
ОбластьМакета.Параметры.ДатаОснования  = Формат(Объект.ДатаОснования, "ДФ=dd.MM.yyyy");
//ОбластьМакета.Параметры.МестоПриемкиТовара = ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес");
ОбластьМакета.Параметры.ПереченьСопроводительныхДокументов = "Накладная № " + Шапка.Номер + " от " + Формат(Шапка.Дата, "ДФ=dd.MM.yyyy");
ОбластьМакета.Параметры.ДатаДоставкиТоваровДень = Шапка.День;
ОбластьМакета.Параметры.ДатаДоставкиТоваровМесяц = Шапка.Месяц;
ОбластьМакета.Параметры.ДатаДоставкиТоваровГод = Шапка.Год;
ТабДокумент.Вывести(ОбластьМакета);

//ТабДокумент.Показать();

Возврат ТабДокумент;


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

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

Запрос.Текст =

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

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

Выдает ошибку:
{Форма.Форма.Форма(168)}: Ошибка при вызове метода контекста (Печать)
   Печать(ТабДокумент);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘param’:
   форма: Элемент
   имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘КомандаФормы’
Как это исправить? Может у кого — нибудь есть простой пример вывода ВПФ с формой? Платформа : 8.3.4.408, Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.29.8), Форма Торг-2.


Подозреваю что ТабДокумент — это у вас реквизит на форме.


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


Цитата: MuI_I_Ika от 18 фев 2014, 11:54
Подозреваю что ТабДокумент — это у вас реквизит на форме.

На форме у меня только  3 вводимых параметра. Туда я нехочу ничего передовать.

Добавлено: 18 фев 2014, 17:08


Цитата: MuI_I_Ika от 18 фев 2014, 11:55
Вам нужно на клиенте получать табличный документ, а уже потом на основании него заполнять поле на форме.

Нет в ланах что-то заполнять на форме! Хочу получить из запроса данные и из формы, вводимые вручную и ими уже заполнять печатную форму.


Тогда что такое ТабДокумент для формы?


Цитата: MuI_I_Ika от 18 фев 2014, 17:12
Тогда что такое ТабДокумент для формы?

Переделала. Убрала ТабДокумент. Теперь выглядит так:

&НаКлиенте
Процедура ПечатьК(Команда,МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
   Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры

&НаСервере
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
   КоллекцияПечатныхФорм     = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(«ТОРГ2»);
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, «ТОРГ2») Тогда
      УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «ТОРГ2», «ТОРГ2»,
      ПечатьАкта()) ;
   КонецЕсли
КонецПроцедуры
Ошибка:
{Форма.Форма.Форма(168)}: Ошибка при вызове метода контекста (Печать)
   Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: param   Форма: Элемент   Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘{http://v8.1c.ru/8.1/data/core}ValueTable’;


По порядку какие типы у реквизитов?

МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода


Цитата: MuI_I_Ika от 18 фев 2014, 18:17
По порядку какие типы у реквизитов?

МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода

Убрала эти реквизиты. Получилось так:

&НаКлиенте
Процедура ПечатьК(Команда,СсылкаНаДок, ТабДок, ЗаголовокТабДок)
   Печать(СсылкаНаДок, ТабДок, ЗаголовокТабДок);
КонецПроцедуры

&НаСервере
Процедура Печать(СсылкаНаДок, ТабДок, ЗаголовокТабДок) Экспорт
   Массив=Новый Массив;
   Массив.Добавить(СсылкаНаДок);

      КоллекцияПечатныхФорм=Новый ТаблицаЗначений;
   КоллекцияПечатныхФорм.Колонки.Добавить(«ИмяВРЕГ»);
   КоллекцияПечатныхФорм.Колонки.Добавить(«ИмяМакета»);
   КоллекцияПечатныхФорм.Колонки.Добавить(«Картинка»);
   КоллекцияПечатныхФорм.Колонки.Добавить(«ПолныйПутьКМакету»);
   КоллекцияПечатныхФорм.Колонки.Добавить(«СинонимМакета»);
   КоллекцияПечатныхФорм.Колонки.Добавить(«ТабличныйДокумент»);
   КоллекцияПечатныхФорм.Колонки.Добавить(«Экземпляров»);

      ПечФорма=КоллекцияПечатныхФорм.Добавить();
   ПечФорма.ИмяВРЕГ=»ТОРГ2″;
   ПечФорма.Экземпляров=1;

      ПараметрыОтправки=Новый Структура;
   ПараметрыОтправки.Вставить(«Получатель»);
   ПараметрыОтправки.Вставить(«Текст»,»»);
   ПараметрыОтправки.Вставить(«Тема»,»»);

      ПараметрыВывода=Новый Структура;
   ПараметрыВывода.Вставить(«ДоступнаПечатьПоКомплектно»,Ложь);
   ПараметрыВывода.Вставить(«ПараметрыОтправки»,ПараметрыОтправки);

      ОбъектыПечати=Новый СписокЗначений;

      ОбъектДляСервера = РеквизитФормыВЗначение(«Объект»);
   ЗаполнитьЗначенияСвойств(ОбъектДляСервера, Объект);

      ОбъектДляСервера.Печать(
   Массив,
   КоллекцияПечатныхФорм,
   ОбъектыПечати,
   ПараметрыВывода
   );

      // Проверим, все ли макеты были сформированы
   Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
      Если Стр.ТабличныйДокумент = Неопределено Тогда
         ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
         НСтр(«ru = ‘В обработчике печати не был сформирован табличный документ для: %1′»),
         Стр.ИмяМакета
         );
         ВызватьИсключение(ТекстСообщенияОбОшибке);
      КонецЕсли;

            Стр.ТабличныйДокумент.КоличествоЭкземпляров = Стр.Экземпляров;
   КонецЦикла;

      ТабДок=КоллекцияПечатныхФорм[0].ТабличныйДокумент;
   ЗаголовокТабДок=КоллекцияПечатныхФорм[0].СинонимМакета;

   КонецПроцедуры
Ошибка:
{Форма.Форма.Форма(208)}: Метод объекта не обнаружен (Печать)
    ОбъектДляСервера.Печать(


процедура Печать() должна быть экспортной, и если вы привели весь код из ВПФ, то этого недостаточно, для конфигураций построенных на БСП, нужен специальный алгоритм технология создания ВПФдля регистрации ВПФ и обработок, почитайте


Цитата: Besart от 18 фев 2014, 19:35
процедура Печать() должна быть экспортной, и если вы привели весь код из ВПФ, то этого недостаточно, для конфигураций построенных на БСП, нужен специальный алгоритм технология создания ВПФдля регистрации ВПФ и обработок, почитайте

Должна быть, если она в модуле, а если она в форме? Ссылка не открывается. У кого-нибудь есть простой пример?


Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Внешняя печатная форма с формой в 8.3

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Alwarus

0 / 0 / 0

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

Сообщений: 6

1

1C 8.x

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

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

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


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

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

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

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

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

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

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

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



0



Dethmontt

Модератор

Эксперт 1С

3700 / 2899 / 570

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

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

Записей в блоге: 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С

3700 / 2899 / 570

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

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

Записей в блоге: 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С

3700 / 2899 / 570

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

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

Записей в блоге: 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С

3700 / 2899 / 570

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

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

Записей в блоге: 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

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

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

Понравилась статья? Поделить с друзьями:
  • Ошибка отображения типов отсутствует отображение для типа выборкаизрезультатазапроса
  • Ошибка отчетного года выявленная до окончания этого года исправляется
  • Ошибка отчета сзв стаж код 50
  • Ошибка отсутствуют загруженные файлы стим
  • Ошибка отображения страницы 80710101