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

   nickroblogger_

09.09.16 — 05:58

Привет.

Создаю пакет обмена. Через ЗаписатьXML (глобальную) пишу в него СправочникОбъект.Кошелек В Объекте есть владелец СправочникСсылка.Пользователь. В другой базе, куда летит пакет (через wsПрокси) тоже есть Справочник.Кошелек, но независимый.

Вопрос.

Почему когда я пытаюсь прочитать этот объект в базе-получателе конструкцией wsПрокси.ФабрикаXDTO.ПрочитатьXDTO, то у меня происходит ругань вида: «ошибка отображения пространства имен отсутствует отображение для префикса: »», а когда пишу в базе-источнике в XML вот так: ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(ОбъектДанных);

        ФабрикаXDTO.ЗаписатьXML(ОбъектЗапись, ОбъектXDTO,,,,НазначениеТипаXML.Явное);, то всё ОК?

  

nickroblogger_

4 — 15.09.16 — 06:04

(3) Глобальный контекст (Global context)

ЗаписатьXML (WriteXML)

Вариант синтаксиса: Записать без имени

Синтаксис:

ЗаписатьXML(<ЗаписьXML>, <Значение>, <НазначениеТипа>)

Параметры:

<ЗаписьXML> (обязательный)

Тип: ЗаписьXML.

Объект, через который осуществляется запись XML.

<Значение> (обязательный)

Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.

<НазначениеТипа> (необязательный)

Тип: НазначениеТипаXML.

Определяет необходимость назначения типа элементу XML.

Значение по умолчанию: Неявное.

Описание варианта метода:

В качестве имени элемента будет использован тип значения.

Вариант синтаксиса: Записать с полным именем

Синтаксис:

ЗаписатьXML(<ЗаписьXML>, <Значение>, <ПолноеИмя>, <НазначениеТипа>)

Параметры:

<ЗаписьXML> (обязательный)

Тип: ЗаписьXML.

Объект, через который осуществляется запись XML.

<Значение> (обязательный)

Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.

<ПолноеИмя> (обязательный)

Тип: Строка.

Полное имя элемента XML, в который будет записано значение.

<НазначениеТипа> (необязательный)

Тип: НазначениеТипаXML.

Определяет необходимость назначения типа элементу XML.

Значение по умолчанию: Неявное.

Описание варианта метода:

Выполняет запись значения с указанием полного имени элемента.

Вариант синтаксиса: Записать с локальным именем и пространством имен

Синтаксис:

ЗаписатьXML(<ЗаписьXML>, <Значение>, <ЛокальноеИмя>, <URIПространстваИмен>, <НазначениеТипа>)

Параметры:

<ЗаписьXML> (обязательный)

Тип: ЗаписьXML.

Объект, через который осуществляется запись XML.

<Значение> (обязательный)

Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.

<ЛокальноеИмя> (обязательный)

Тип: Строка.

Локальное имя элемента XML, в который будет записано значение.

<URIПространстваИмен> (обязательный)

Тип: Строка.

URI пространства имен, к которому принадлежит указанное ЛокальноеИмя.

<НазначениеТипа> (необязательный)

Тип: НазначениеТипаXML.

Определяет необходимость назначения типа элементу XML.

Значение по умолчанию: Неявное.

Описание варианта метода:

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

Описание:

Выполняет сериализацию значения в формат XML.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Примечание:

Значения не всех типов могут быть записаны в формате XML данным методом.

В XML могут быть записаны значения следующих типов: Неопределено, Null, Булево, Число, Строка, Дата, Тип, УникальныйИдентификатор, ДвоичныеДанные, ХранилищеЗначения, ОписаниеТипов, а также ссылки объектов данных и сами объекты данных, наборы записей регистров, менеджер значения константы. В дальнейшем список может пополняться.

При попытке записи значения неподходящего типа будет вызвано исключение.

  

nickroblogger_

09.09.16 — 05:58

Привет.

Создаю пакет обмена. Через ЗаписатьXML (глобальную) пишу в него СправочникОбъект.Кошелек В Объекте есть владелец СправочникСсылка.Пользователь. В другой базе, куда летит пакет (через wsПрокси) тоже есть Справочник.Кошелек, но независимый.

Вопрос.

Почему когда я пытаюсь прочитать этот объект в базе-получателе конструкцией wsПрокси.ФабрикаXDTO.ПрочитатьXDTO, то у меня происходит ругань вида: «ошибка отображения пространства имен отсутствует отображение для префикса: »», а когда пишу в базе-источнике в XML вот так: ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(ОбъектДанных);

        ФабрикаXDTO.ЗаписатьXML(ОбъектЗапись, ОбъектXDTO,,,,НазначениеТипаXML.Явное);, то всё ОК?

  

nickroblogger_

4 — 15.09.16 — 06:04

(3) Глобальный контекст (Global context)

ЗаписатьXML (WriteXML)

Вариант синтаксиса: Записать без имени

Синтаксис:

ЗаписатьXML(<ЗаписьXML>, <Значение>, <НазначениеТипа>)

Параметры:

<ЗаписьXML> (обязательный)

Тип: ЗаписьXML.

Объект, через который осуществляется запись XML.

<Значение> (обязательный)

Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.

<НазначениеТипа> (необязательный)

Тип: НазначениеТипаXML.

Определяет необходимость назначения типа элементу XML.

Значение по умолчанию: Неявное.

Описание варианта метода:

В качестве имени элемента будет использован тип значения.

Вариант синтаксиса: Записать с полным именем

Синтаксис:

ЗаписатьXML(<ЗаписьXML>, <Значение>, <ПолноеИмя>, <НазначениеТипа>)

Параметры:

<ЗаписьXML> (обязательный)

Тип: ЗаписьXML.

Объект, через который осуществляется запись XML.

<Значение> (обязательный)

Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.

<ПолноеИмя> (обязательный)

Тип: Строка.

Полное имя элемента XML, в который будет записано значение.

<НазначениеТипа> (необязательный)

Тип: НазначениеТипаXML.

Определяет необходимость назначения типа элементу XML.

Значение по умолчанию: Неявное.

Описание варианта метода:

Выполняет запись значения с указанием полного имени элемента.

Вариант синтаксиса: Записать с локальным именем и пространством имен

Синтаксис:

ЗаписатьXML(<ЗаписьXML>, <Значение>, <ЛокальноеИмя>, <URIПространстваИмен>, <НазначениеТипа>)

Параметры:

<ЗаписьXML> (обязательный)

Тип: ЗаписьXML.

Объект, через который осуществляется запись XML.

<Значение> (обязательный)

Записываемое в поток XML значение. Тип параметра определяется совокупностью типов, для которых определена XML-сериализация.

<ЛокальноеИмя> (обязательный)

Тип: Строка.

Локальное имя элемента XML, в который будет записано значение.

<URIПространстваИмен> (обязательный)

Тип: Строка.

URI пространства имен, к которому принадлежит указанное ЛокальноеИмя.

<НазначениеТипа> (необязательный)

Тип: НазначениеТипаXML.

Определяет необходимость назначения типа элементу XML.

Значение по умолчанию: Неявное.

Описание варианта метода:

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

Описание:

Выполняет сериализацию значения в формат XML.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Примечание:

Значения не всех типов могут быть записаны в формате XML данным методом.

В XML могут быть записаны значения следующих типов: Неопределено, Null, Булево, Число, Строка, Дата, Тип, УникальныйИдентификатор, ДвоичныеДанные, ХранилищеЗначения, ОписаниеТипов, а также ссылки объектов данных и сами объекты данных, наборы записей регистров, менеджер значения константы. В дальнейшем список может пополняться.

При попытке записи значения неподходящего типа будет вызвано исключение.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добрый день всем! Уважаемые, кто подскажет отчего такая ошибка возникает при попытке прикрепить файл к документу в 1С Документооборот?: {ОбщийМодуль.ФайловыеФункцииСлужебный.Модуль(1349)}: Ошибка при вызове метода контекста (ОбщийМодуль)         МодульРаботаСФайламиСлужебныйВызовСервера = ОбщегоНазначения.ОбщийМодуль(«РаботаСФайламиСлужебныйВызовСервера»); по причине: Ошибка при вызове серверного метода. по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства ‘ret’:     форма: Элемент     имя: { по причине: Ошибка отображения типов: Отсутствует отображение для типа ‘ОбщийМодуль’

Какой тут еще может быть тип если передается строка….

а он не на строку ругается

ОбщегоНазначения по всей видимости общий модуль серверный. Его функция ОбщийМодуль, по всей видимости в результате возвращает ОбщийМодуль, который, как видно из ошибки нельзя передавать с клиента на сервер… Как то так ;)

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

Попробуй Переименовать «свою» функцию «Общий модуль» в другие сословие :) ОбщийМодуль (CommonModule) Методы: <Имя процедуры или функции> (<Name of a procedure or a function>) Описание: Предоставляет доступ к экспортным процедурам и функциям неглобального общего модуля (т.е. модуля для которого не установлен признак Глобальный при конфигурировании). Доступность: Сервер, толстый клиент, внешнее соединение. См. также: Глобальный контекст, свойство <Имя общего модуля>

+ Покажи лучше полный текст функции вызова, или хотя бы 10 строчек. :) Зачем такой изврат?

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

Вместо двух строчек: и ошибка ушла

Тэги: 1С 8

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

Тамика

Котовчанин

942 / 482 / 200

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

Сообщений: 3,338

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

1

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

29.08.2017, 12:09. Показов 14526. Ответов 7

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


Что это за штука-то такая? И не могу даже отловить где ругается.

1C
1
2
3
4
5
6
7
8
9
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'cr':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/mngsrv/ws}cr
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции'

Может кто сталкивался? Буду благодарна за помощь

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

0

Эксперт 1С

3051 / 1998 / 524

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

Сообщений: 6,964

29.08.2017, 12:10

2

Не по теме:

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

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

Молодец) И быстро)

А что было-то?)

0

Котовчанин

942 / 482 / 200

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

Сообщений: 3,338

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

29.08.2017, 12:12

 [ТС]

3

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

А что было-то?)

У меня тут была такая забавная строка в серверной процедуре:
Элементы.Работы.ТекущаяСтрока = Объект.Работы[0];

Если допилить Объект.Работы[0].ПолучитьИдентификатор() — то уже другая ошибка. ))

0

GreenkA

Эксперт 1С

3051 / 1998 / 524

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

Сообщений: 6,964

29.08.2017, 12:38

4

Тамика,

1C
1
Элементы.Работы.ТекущаяСтрока = 0;

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

1C
1
Элементы.Работы.ТекущаяСтрока = Объект.Работы[0].ПолучитьИдентификатор();

Добавлено через 25 секунд
быть может тч пустая?

0

Котовчанин

942 / 482 / 200

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

Сообщений: 3,338

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

29.08.2017, 12:39

 [ТС]

5

GreenkA, не, я имела в виду под «другой ошибкой» — ошибка, которая уже не касается этого.

0

GreenkA

29.08.2017, 12:40

Не по теме:

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

ошибка, которая уже не касается этого.

аа) ну ладно) будет новая тема?:D

0

Котовчанин

942 / 482 / 200

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

Сообщений: 3,338

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

29.08.2017, 12:41

 [ТС]

7

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

аа) ну ладно) будет новая тема?

Сейчас чуток покопаюсь и создам, если ничего не выйдет

0

Эксперт 1С

3051 / 1998 / 524

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

Сообщений: 6,964

29.08.2017, 12:42

8

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

Сейчас чуток покопаюсь и создам

как показывает практика — выжди минимум 3 минуты) велика вероятность, что ты сама все решишь

0

  1. Вот программа обработчик

    &НаКлиенте
    Процедура ТабличнаяЧасть1КоличествоПриИзменении(Элемент)
    СтрокаТабличнойЧасти=Элементы.ТабличнаяЧасть1.ТекущиеДанные;
    //при вызове этой функции появляется ошибка см.в.конце Элементы.ТабличнаяЧасть1.ТекущиеДанные.Сумма=РаботаСДокументами.ВычислениеСуммы(СтрокаТабличнойЧасти);
    КонецПроцедуры

    Серверная часть
    &НаСервере
    Функция ВычислениеСуммы(Элемент) Экспорт
    ЗначениеСуммы=Элемент.Количество*Элемент.Цена;
    Сообщить(ЗначениеСуммы);
    Возврат ЗначениеСуммы;
    КонецФункции

    Текст Ошибки:
    Ошибка отображения типов:
    Отсутствует отображение для типа «ДанныеФормыЭлементКоллекции»

    Кто знает, что не так пишите. Буду рад.

  2. Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104

    Дело в том, что ТекущуюСтроку из ТЗ нельзя передавать на сервер. (У типа «ДанныеФормыЭлементКоллекции» отсутствует свойство «Возможен обмен с сервером»). Для того чтобы передать строку на сервер ее надо выгрузить в структуру, передать на сервер эту структуру, с этой структурой сделать то что надо, и вернуть ее на клиент, и заполнить из нее ТЧ.

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

  3. Offline

    TerANik
    Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.271
    Симпатии:
    98
    Баллы:
    54
    {Обработка.медАРМПриёмкиТовара.Форма.Форма.Форма(1022)}: Ошибка при вызове метода контекста (ОткрытьФорму)
            ОткрытьФорму("Обработка.медАРМПриёмкиТовара.Форма.ВыборНоменклатуры",ПараметрыФормы,ЭтаФорма,,,, ОбработчикОповещения, Режим);
    по причине:
    Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
    по причине:
    Ошибка преобразования данных XDTO:
    Запись значения свойства 'cr':
        форма: Элемент
        имя: {http://v8.1c.ru/8.2/mngsrv/ws}cr
    по причине:
    Ошибка отображения типов:
    Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции'

    Ребята всё понимаю, но не понимаю какую я ему коллекцию сую? Передаю Структуру.. На что может ругаться?

  4. Offline

    Dem0lisher
    Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.266
    Симпатии:
    102
    Баллы:
    104
  5. Offline

    TerANik
    Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.271
    Симпатии:
    98
    Баллы:
    54

    ПараметрыФормы Структура Структура
    АдресТоваровВХранилище «e1cib/tempstorage/ed0e045f-6c9a-43b2-a363-086808153749» Строка
    ТоварыДокумента «e1cib/tempstorage/61c0f15a-394e-4551-ab4a-4fffd87c3d74» Строка

  6. Offline

    Dem0lisher
    Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.266
    Симпатии:
    102
    Баллы:
    104

    Ничего не понял. Попробуй тоже самое, только вместо своих параметров что-нибудь по-проще типа
    «Новый структура(«пар1″,»пар1″)».
    Если тут проблем не будет — смотри еще раз свой отбор, может там не просто строки?
    Если проблема сохранится — возможно еще в обработчике оповещения что-то.

  7. Offline

    TerANik
    Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.271
    Симпатии:
    98
    Баллы:
    54

    В ПараметрахФормы два значения, оба типа строка.. передаётся адрес на временное хранилище..
    В ОбработкеОповещения передается структура в структуре, во внутренней структуре один параметр, тоже адрес типа строка.

  8. Offline

    Dem0lisher
    Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.266
    Симпатии:
    102
    Баллы:
    104

    Ну поэкспериментируй:
    1. Убери нафиг свои параметры =)
    2. Убери нафиг свой обработчик оповещения =)

  9. Offline

    TerANik
    Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.271
    Симпатии:
    98
    Баллы:
    54

    Самое интересное что падает при завершение процедуры создания.

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
       
        // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
        Если Параметры.Свойство("АвтоТест") Тогда
            Возврат;
        КонецЕсли;
       
        ДополнительныеКолонкиНоменклатуры = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ДополнительнаяКолонкаПриОтображенииНоменклатуры");
       
        ТаблицаТоваров.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресТоваровВХранилище));
        СкрытьКолонкуУпаковка = Параметры.СкрытьКолонкуУпаковка;
        ТоварыДокументов.Загрузить(ПолучитьИзВременногоХранилища(Параметры.ТоварыДокумента));   
        Если Параметры.Свойство("ПередаватьШтрихкод") Тогда
            ПередаватьШтрихкод = Параметры.ПередаватьШтрихкод;
        КонецЕсли;
       
        Если Параметры.Свойство("ОтображатьОстатки") Тогда
            Элементы.ТаблицаТоваровОстаток.Видимость = Истина;
        КонецЕсли;
       
        ЭтотОбъект.ТекущийЭлемент = Элементы.ТаблицаТоваров;
        Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ
                       |    ХарактеристикиДокумента.Характеристика
                       |ПОМЕСТИТЬ ХарактеристикиДокумента
                       |ИЗ
                       |    &ХарактеристикиДокумента КАК ХарактеристикиДокумента
                       |;
                       |
                       |////////////////////////////////////////////////////////////////////////////////
                       |ВЫБРАТЬ
                       |    НайденныеХарактеристики.Характеристика
                       |ПОМЕСТИТЬ НайденныеХарактеристики
                       |ИЗ
                       |    &НайденныеХарактеристики КАК НайденныеХарактеристики
                       |;
                       |
                       |////////////////////////////////////////////////////////////////////////////////
                       |ВЫБРАТЬ
                       |    ХарактеристикиДокумента.Характеристика
                       |ИЗ
                       |    ХарактеристикиДокумента КАК ХарактеристикиДокумента
                       |        ПОЛНОЕ СОЕДИНЕНИЕ НайденныеХарактеристики КАК НайденныеХарактеристики
                       |        ПО ХарактеристикиДокумента.Характеристика = НайденныеХарактеристики.Характеристика";
        Запрос.Параметры.Вставить("НайденныеХарактеристики",ТаблицаТоваров.Выгрузить());
        Запрос.Параметры.Вставить("ХарактеристикиДокумента",ТоварыДокументов.Выгрузить());
       
        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Количество()>0 Тогда
            Выборка.Следующий();
            Характеристика = Выборка.Характеристика;
            ПараметрыПоиска = Новый Структура;
            ПараметрыПоиска.Вставить("Характеристика",Характеристика);
            МассивСтрок = ЭтотОбъект.ТаблицаТоваров.НайтиСтроки(ПараметрыПоиска);
            ЭтотОбъект.Элементы.ТаблицаТоваров.Текущ1аяСтрока = МассивСтрок[0];
        КонецЕсли;   
       
    КонецПроцедуры
  10. Offline

    Dem0lisher
    Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.266
    Симпатии:
    102
    Баллы:
    104

    Это в каком случае?
    Попробуй просто форму открыть без всего — может она вообще не откроется =)

  11. Offline

    TerANik
    Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.271
    Симпатии:
    98
    Баллы:
    54
  12. Offline

    Dem0lisher
    Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.266
    Симпатии:
    102
    Баллы:
    104

    Неужели вот это работает:
    ЭтотОбъект.Элементы.ТаблицаТоваров.Текущ1аяСтрока = МассивСтрок[0];
    или «1» — это опечатка?
    Оставь свои параметры, но убери обработчик оповещения, что будет?

  13. Offline

    TerANik
    Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.271
    Симпатии:
    98
    Баллы:
    54

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

    — Объединение сообщений, 22 дек 2015

    Переписал процедуру ПриСозданииНаСервере

        // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
        Если Параметры.Свойство("АвтоТест") Тогда
            Возврат;
        КонецЕсли;
       
        ДополнительныеКолонкиНоменклатуры = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ДополнительнаяКолонкаПриОтображенииНоменклатуры");
       
        ТаблицаТоваров.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресТоваровВХранилище));
        СкрытьКолонкуУпаковка = Параметры.СкрытьКолонкуУпаковка;
        Если Параметры.Свойство("ПередаватьШтрихкод") Тогда
            ПередаватьШтрихкод = Параметры.ПередаватьШтрихкод;
        КонецЕсли;
       
        Если Параметры.Свойство("ОтображатьОстатки") Тогда
            Элементы.ТаблицаТоваровОстаток.Видимость = Истина;
        КонецЕсли;
       
        ЭтотОбъект.ТекущийЭлемент = Элементы.ТаблицаТоваров;
        Если Параметры.Свойство("ТоварыДокумента") Тогда
        ТоварыДокументов.Загрузить(ПолучитьИзВременногоХранилища(Параметры.ТоварыДокумента));   
    
            Запрос = Новый Запрос;
            Запрос.Текст = "ВЫБРАТЬ
            |    ХарактеристикиДокумента.Характеристика
            |ПОМЕСТИТЬ ХарактеристикиДокумента
            |ИЗ
            |    &ХарактеристикиДокумента КАК ХарактеристикиДокумента
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |    НайденныеХарактеристики.Характеристика
            |ПОМЕСТИТЬ НайденныеХарактеристики
            |ИЗ
            |    &НайденныеХарактеристики КАК НайденныеХарактеристики
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |    ХарактеристикиДокумента.Характеристика
            |ИЗ
            |    ХарактеристикиДокумента КАК ХарактеристикиДокумента
            |        ПОЛНОЕ СОЕДИНЕНИЕ НайденныеХарактеристики КАК НайденныеХарактеристики
            |        ПО ХарактеристикиДокумента.Характеристика = НайденныеХарактеристики.Характеристика";
            Запрос.Параметры.Вставить("НайденныеХарактеристики",ТаблицаТоваров.Выгрузить());
            Запрос.Параметры.Вставить("ХарактеристикиДокумента",ТоварыДокументов.Выгрузить());
           
            Выборка = Запрос.Выполнить().Выбрать();
            Если Выборка.Количество()>0 Тогда
                Выборка.Следующий();
                Характеристика = Выборка.Характеристика;
                ПараметрыПоиска = Новый Структура;
                ПараметрыПоиска.Вставить("Характеристика",Характеристика);
                МассивСтрок = ЭтотОбъект.ТаблицаТоваров.НайтиСтроки(ПараметрыПоиска);
                ЭтотОбъект.Элементы.ТаблицаТоваров.ТекущаяСтрока = МассивСтрок[0];
            КонецЕсли;   
        КонецЕсли;
       
    

    И закоментировал добавление в структуру ТоварыДокумента.. Работает.. т.е. проблема внутри условия получается?

    Мне кажется ему всё таки вот это не нравится ка кто?
    ЭтотОбъект.Элементы.ТаблицаТоваров.ТекущаяСтрока = МассивСтрок[0];

    Последнее редактирование: 22 дек 2015

  14. Offline

    Dem0lisher
    Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.266
    Симпатии:
    102
    Баллы:
    104

    Если у вас «Элементы.ТаблицаТоваров» — это дин.список, то в тек. строку нужно передать ссылку, а если таблица формы — тогда идентификатор строки.
    У вас похоже массивСтрок[0]- это и есть то самое «ДанныеФормыЭлементКоллекции» на которое 1с и орет

  15. Offline

    TerANik
    Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.271
    Симпатии:
    98
    Баллы:
    54

    Респект и уважуха.. да ТаблицаТоваров это таблица формы.. а МассивСтрок это данные коллекции.

    Возникает вопрос как получить идентификатор…
    Т.е. необходимо следующее.. ТаблицаТоваров это список номенклатуры с характеристиками и есть ТЗ основной формы, где есть характеристика из этой таблицы.. на ней нужно позиционировать при открытии.

  16. Offline

    Dem0lisher
    Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.266
    Симпатии:
    102
    Баллы:
    104

    Значит нужно присвоить идентификатор.
    Можно глянуть в синтакс-помощник — там должно быть «ПолучитьИдентификатор»
    http://www.forum.mista.ru/topic.php?id=550120

  17. Offline

    TerANik
    Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    1.271
    Симпатии:
    98
    Баллы:
    54

    ЭтотОбъект.Элементы.ТаблицаТоваров.ТекущаяСтрока = МассивСтрок[0].ПолучитьИдентификатор();
    Вот «Огонь».

  18. Offline

    Dem0lisher
    Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.266
    Симпатии:
    102
    Баллы:
    104

    Ага! Еще «Огонь» есть — ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.Вывести();
    А у вас можно по-короче наверное: Элементы.ТаблицаТоваров.ТекущаяСтрока = МассивСтрок[0].ПолучитьИдентификатор();
    без «ЭтотОбъект»

16.01.202013.05.2023Ошибки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поделиться страницей в соц.сетях

Метки: Метки Управляемые формы

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

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

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

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

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

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

Добрый день всем! Уважаемые, кто подскажет отчего такая ошибка возникает при попытке прикрепить файл к документу в 1С Документооборот?: {ОбщийМодуль.ФайловыеФункцииСлужебный.Модуль(1349)}: Ошибка при вызове метода контекста (ОбщийМодуль)         МодульРаботаСФайламиСлужебныйВызовСервера = ОбщегоНазначения.ОбщийМодуль(«РаботаСФайламиСлужебныйВызовСервера»); по причине: Ошибка при вызове серверного метода. по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства ‘ret’:     форма: Элемент     имя: { по причине: Ошибка отображения типов: Отсутствует отображение для типа ‘ОбщийМодуль’

Какой тут еще может быть тип если передается строка….

а он не на строку ругается

ОбщегоНазначения по всей видимости общий модуль серверный. Его функция ОбщийМодуль, по всей видимости в результате возвращает ОбщийМодуль, который, как видно из ошибки нельзя передавать с клиента на сервер… Как то так ;)

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

Попробуй Переименовать «свою» функцию «Общий модуль» в другие сословие :) ОбщийМодуль (CommonModule) Методы: <Имя процедуры или функции> (<Name of a procedure or a function>) Описание: Предоставляет доступ к экспортным процедурам и функциям неглобального общего модуля (т.е. модуля для которого не установлен признак Глобальный при конфигурировании). Доступность: Сервер, толстый клиент, внешнее соединение. См. также: Глобальный контекст, свойство <Имя общего модуля>

+ Покажи лучше полный текст функции вызова, или хотя бы 10 строчек. :) Зачем такой изврат?

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

Вместо двух строчек: и ошибка ушла

Тэги: 1С 8

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

Понравилась статья? Поделить с друзьями:
  • Ошибка отображения оверлейной программы steam heroes and generals
  • Ошибка отображения pdf файла в личном кабинете налогоплательщика
  • Ошибка отношения к нам пример
  • Ошибка отношение уже существует postgresql
  • Ошибка отношение уже существует django