Ошибка преобразования данных xdto началосвойства ret форма элемент

При входе в базу 1с вы можете увидеть “Ошибка преобразования данных XDTO:

Начало Свойства: errorProcessingSettings

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

Тип: {http://v8.1c.ru/8.2/managed-application/core}ErrorProcessingSettings по причине

Чаще всего ошибка возникает при определенном типе запуска: это либо через тонкий клиент, либо через линк42, случаи бывают разные. Через браузер такие базы запускаются без ошибок.

Есть простое решение данной проблемы.

Достаточно запустить базу доступным нам способом (где нет ошибки) включить Функции тех. специалиста (Меню — Настройки — Параметры — Режим технического специалиста)

В Функциях для технического специалиста ищем Управление настройками обработки ошибок (Стандартные)

Запускаем

Готово!

Уже более 10 000 компаний работают
в облачной 1С от 42Clouds

— Консультация по 1С Бесплатно!

— Поддержка 24/7 по техническим вопросам: в чате, по телефону, по почте

— Все типовые конфигурации онлайн, доступ через RDP, Remote App, Web

&НаСервереБезКонтекста

Функция Команда1НаСервере()

    

    КЧ = Новый КвалификаторыЧисла(12,2);

    КС = Новый КвалификаторыСтроки(20);

    Массив = Новый Массив;

    Массив.Добавить(Тип(«Строка»));

    ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);

    Массив.Очистить();

    Массив.Добавить(Тип(«Число»));

    ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ);

    ОписаниеДаты = Новый ОписаниеТипов(«Дата»);

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

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

    Тз.Колонки.Добавить(«Номер», ОписаниеТиповС);

&НаКлиенте

Процедура Команда1(Команда)

    ПроверкаД = Команда1НаСервере();

    Сообщить(ПроверкаД);

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

Выскакивает ошибка

{Форма.Форма.Форма(24)}: Ошибка при вызове метода контекста (Команда1НаСервере)

    ПроверкаД = Команда1НаСервере();

по причине:

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

по причине:

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

НачалоСвойства: ret    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType

по причине:

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

Отсутствует отображение для типа ‘{http://v8.1c.ru/8.1/data/core}ValueTable’

1CLenta.ru  

Evgenii
Пользователь
19.12.2016 08:55
При передаче таблицы значений на клиент выдает ошибку.

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

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

Запрос

= Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Наименование,
| Номенклатура.Количество,
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура"
;

РезультатЗапроса

= Запрос.Выполнить();
Таблица = РезультатЗапроса.Выгрузить();Возврат Таблица;КонецФункции

&НаКлиенте


Процедура Команда(Команда)
Таблица = ПолучитьТаблицуТоваров();
КонецПроцедуры

Ответы (5)


Кодер
Пользователь
19.12.2016 09:16
Номер  (1)

Какая конфигурация?
Управляемое или обычное приложение?


Evgenii
Пользователь
19.12.2016 09:31
Номер  (2)

Управляемое приложение УТ 11.
В файловой базе такой ошибки нет. Ошибка появляется только в клиент-серверном варианте.


Кодер
Пользователь
19.12.2016 10:06
Номер  (3)

Видимо у вас:
На сервере запускается в «Тонком клиенте». В этом режиме с сервера на клиент нельзя передавать таблицу значений и некоторые другие типы данных.

В файловом варианте запускается в «Толстом клинете». Этот режим работы позволяет передавать ТЗ.


Evgenii
Пользователь
19.12.2016 10:33
Номер  (4)

Файловая база используеттся для тестирования.
А как можно ее запустить в тонком клиенте для отладки?


progv8
Пользователь
19.12.2016 15:13
Номер  (5)

В конфигураторе Сервис->Параметры->Запуск 1С:Предприятия
Обязательно должен быть установлен компонент «Тонкий клиент».

Обсуждение закрыто

  • Регистрация
  • Восстановить пароль
  • Вход
 

Dimasikkk1

12 / 9 / 3

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

Сообщений: 94

1

1C 8.x

13.04.2021, 18:13. Показов 10481. Ответов 5

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


Во время изучения 1с предприятия столкнулся с данной проблемой:

Код

Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}Ref	Форма: Элемент	Тип: {http://www.w3.org/2001/XMLSchema}anyType
{Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(8)}:	Заказ = ПолучитьЗаказПоставщикуНаСервере(Объект.Заказ);

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

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

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
&НаСервереБезКонтекста
Функция ПолучитьЗаказПоставщикуНаСервере(Заказ)
    Возврат Заказ.ПолучитьОбъект();   
КонецФункции
 
&НаКлиенте
Процедура ЗаказПриИзменении(Элемент)
    Заказ = ПолучитьЗаказПоставщикуНаСервере(Объект.Заказ);
    
    Объект.Поставщик = Заказ.Поставщик;
    Объект.Склад = Заказ.Склад;
    Объект.Товары.Очистить();
    
    Для Каждого ТекСтрокаТовары Из Заказ.Товары Цикл
        НоваяСтрока = Объект.Товары.Добавить();
        НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
        НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
        НоваяСтрока.Характеристика = ТекСтрокаТовары.Характеристика;
        НоваяСтрока.Стоимость = ТекСтрокаТовары.Стоимость;
        НоваяСтрока.ЦенаПоступления = ТекСтрокаТовары.ЦенаПоступления;
    КонецЦикла;
КонецПроцедуры

Если запрашивать данные заказа по одному реквизиту, или выполнять данный код в режиме толстого клиента, то ошибки не появляются. Это так и должно работать или я что-то не так делаю?

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

0

260 / 216 / 94

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

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

13.04.2021, 21:46

2

Что есть «Объект.Заказ»? Заказ — табличная часть?
&НаСервереБезКонтекста — без контекста формы. На сервере будут недоступны данные формы.

Если пытаетесь передать что-то с формы, то директива должна быть «&НаСервере».
Если без контекста, то выгрузить нужно табличную часть, например в ТЗ,, поместить во временное хранилище, и передать на сервер.

1

12 / 9 / 3

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

Сообщений: 94

14.04.2021, 00:43

 [ТС]

3

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

Что есть «Объект.Заказ»?

Заказ — это реквизит типа ДокументСсылка.ЗаказПоставщику в документе ПоступлениеТовара, в модуле формы которого выполняется код. Товары — это табличная часть.

Ещё хочу узнать, правильно ли я обратился к данным поля через «Объект.»? Или правильно обращаться через «Элементы.»?

Мне нужно получить объект из поля формы типа ДокументСсылка.ЗаказПоставщику, типа как в коде я написал и читать данные через переменную «Заказы.<реквизит>».

0

260 / 216 / 94

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

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

14.04.2021, 05:10

4

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

Решение

Вся работа с объектами осуществляется на сервере. ПолучитьОбъект выполняется на сервере.
Вы пытаетесь на клиента вернуть полученный «объект». Тут и ошибка т.к. это считается «мутабельным» типом. А в толстом клиенте нет такой ошибки потому что и клиент и сервер это 1 и то же.

Вам нужно при изменении сделать вызов СЕРВЕРНОЙ процедуры, в ней же получить объект не возвращая на клиента, и делать все что угодно с объектом опять же на сервере.

Обращение через «элементы» нужно чтобы получить например текущую выделенную строку табличной части:»Элементы.ИмяТч.ТекущиеДанные». Или когда элемент формы не связан с объектом

1

Dimasikkk1

12 / 9 / 3

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

Сообщений: 94

14.04.2021, 05:50

 [ТС]

5

Большое спасибо!

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

Вам нужно при изменении сделать вызов СЕРВЕРНОЙ процедуры, в ней же получить объект не возвращая на клиента, и делать все что угодно с объектом опять же на сервере.

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

Финальный код, если у кого-нибудь случится такая же ситуация:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
&НаСервере
Процедура ЗаполнениеНаОснованииНаСервере()
    Заказ = Объект.Заказ;
    
    Объект.Поставщик = Заказ.Поставщик;
    Объект.Склад = Заказ.Склад;
    Объект.Товары.Очистить();
    
    Для Каждого ТекСтрокаТовары Из Заказ.Товары Цикл
        НоваяСтрока = Объект.Товары.Добавить();
        НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
        НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
        НоваяСтрока.Характеристика = ТекСтрокаТовары.Характеристика;
        НоваяСтрока.Стоимость = ТекСтрокаТовары.Стоимость;
        НоваяСтрока.ЦенаПоступления = ТекСтрокаТовары.ЦенаПоступления;
    КонецЦикла;
КонецПроцедуры
 
&НаКлиенте
Процедура ЗаказПриИзменении(Элемент)
    ЗаполнениеНаОснованииНаСервере();
КонецПроцедуры

0

260 / 216 / 94

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

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

14.04.2021, 06:21

6

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

А я думал что из серверного вызова нельзя менять данные в форме

Почему же нельзя?Можно. РеквизитФормыВЗначение и ЗначениеВРеквизитФормы.

В этом случае, как я понимаю, работа ведется не с основным объектом,а с «вспомогательным». В форме документа что-то изменяется, и в подчиненном объекте это тоже надо поменять.Но Вы же работает не с формой подчиненного объекта, а с объектом. Поэтому все и на сервере, так как «вручную» в форме подчиненного объекта не вносятся никакие изменения.

1

IT_Exp

Эксперт

87844 / 49110 / 22898

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

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

14.04.2021, 06:21

6

1С 8 Ошибка «Ошибка преобразования данных XDTO:» при открытии базы в режиме 1С: Предприятие

Описание ошибки:
База была выгружена из ирхива .dt. База файловая, конфигурация 1С: Бухгалтерия предприятия, редакция 3.0. При работе в конфигураторе и при запуска конфигуратора ошибок не возникает. Ошибка проявляет себя только при попытке запуска в режиме 1С: Предприятие. Даже не выводится форма для авторизации пользователя, как возникает ошибка. Релиз платформы 1С: Предприятие — 8.3.12.89.

Найденные решения:

Нажатие на изображении увеличит его
1С 8, как устранить, убрать, исправить ошибку, при запуске базы, Ошибка преобразования данных XDTO, НачалоСвойства: errorProcessingSettings, messageTemplates, category

Полный текст ошибки:

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

НачалоСвойства: errorProcessingSettings Форма: Элемент Тип: {http://v8.1c.ru/8.2/managed-application/core}ErrorProcessingSettings

по причине:

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

НачалоСвойства: messageTemplates Форма: Элемент Тип: {http://v8.1c.ru/8.2/managed-application/core}ErrorMessagesTexts

по причине:

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

НачалоСвойства: category Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/core}ErrorCategory

Ошибка в некотором роде редкая, но не настолько, чтобы остаться неизвестной. Короткое обсуждение на форуме dev.mista.ru, содержащее ссылку на описание в каталоге ошибок (потребуется авторизация для сайта ИТС) продукта технологической платформы позволило точно определить проблему — неподходящий релиз платформы. Как указано — использовался релиз платформы 8.3.18.1289.



Нажатие на изображении увеличит его
ошибка при запуске базы 1С 8, Ошибка преобразования данных XDTO, форма, элемент тип: http://v8.1c.ru/8.2/managed-application/core

Таким образом оказалось, что необходимо установить более высокую минорную версию релиза 8.3.18 — 8.3.18.13.63 или позднее. Так же ошибка может возникать для более ранних релизов версий 8.3.17 (до 17.2127), 8.3.19 (до релиза 19.1150), а так же для 8.3.20 (ранее релиза 20.1363).

Обновление релиза платформы 1С:предприятие на релиз 8.3.18.1563 на рабочем месте, где возникла ошибка, исправило ситуацию и база была запущена в ошибок.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

04-10-2021

Журавлев А.С.
(Сайт azhur-c.ru)

Просмотров 12к. Опубликовано 24 октября, 2018 Обновлено 24 октября, 2018

Ошибка преобразования данных XDTO: Текст XML содержит недопустимый символ.

На самом деле ошибка преобразования XDTO является не какой-то определенной ошибкой, а является большим семейством ошибок возникающих при работе одного из базовых механизмов платформы 1С. Этот механизм обеспечивает передачу данных между различными подсистемами платформы, при этом данные из внутреннего представления одной подсистемы преобразуются в текстовый формат XML, передаются в другую подсистему, и там  опять преобразуются во внутреннее представление. Ошибка преобразования XDTO говорит, что прямом или обратном преобразовании обнаружено какое-то несоответствие, из-за которого оно не может быть выполнено.

Частные причины ошибки

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

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

Взаимодействие Клиента и Сервера

При запуске 1С в режиме Тонкий клиент взаимодействие клиента с ИБ происходит с использование преобразования XDTO, и если оно приводит к ошибке, то в тех случаях, когда это возможно, следует воспользоваться режим Толстый клиент.

Сырые и Неоригинальные решения

Если ошибка преобразования XDTO возникает в неоригинальной конфигурации или неоригинальной обработке, то возможно, причина в неоригинальном коде, который не был должным образом оттестирован. Это возможно и в оригинальных решения от 1С после установки сырых обновлений.

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

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

2 метода на клиенте и на сервере, вот сам код:


&НаКлиенте
Процедура ВыполнитьОптимизацию(ДокументыДляОптимизации)   

РежимРаботы  = Вопрос("Группировать по пакетам?",РежимДиалогаВопрос.ДаНетОтмена,,КодВозвратаДиалога.Нет);
Группировать = Ложь;
Если РежимРаботы = КодВозвратаДиалога.Отмена Тогда
Возврат
КонецЕсли;

Если РежимРаботы = КодВозвратаДиалога.Да Тогда
КолВГруппе = 60;
ВвестиЧисло(КолВГруппе,"Количество Изделий в группировке",3,0);
Группировать = Истина;
Иначе
КолВГруппе = 0;
КонецЕсли;

РаботаСОптимизацией.ОбработатьДокументы(ДокументыДляОптимизации, КолВГруппе, Группировать);

Предупреждение("Оптимизация выполнена", 5);


    Результат = СервСформировать2(ДокументыДляОптимизации,КолВГруппе);
Если Вопрос("Проставить КИС в график?", РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда

ГрафикПроизв(ДокументыДляОптимизации);

ФормаОбр = ПолучитьФорму("Обработка.КИСВГрафиках.Форма.Форма");

Если Результат.Количество() Тогда
Для Каждого Строка Из Результат[0] Цикл
Если КолВГруппе = 0 Тогда
НоваяСтрока = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
Иначе
Расчет = Окр(Строка.Количество / КолВГруппе);
Для п =0 По Расчет+2 Цикл
Если п <> 0 и п <> 1 Тогда
НоваяСтрока = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Добавить();

Строка.Количество = Строка.Количество / п;

ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
КонецЕсли;
КонецЦикла;
КонецЕсли;

Значение =0;
//Значение2 =0;
Для п =0 По ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Количество()-1 Цикл
Отбор = Новый Структура;
Отбор.Вставить("ИмяФайла",ФормаОбр.Объект.ТабличнаяЧастьСоответствие[п].ИмяФайла);
// Отбор.Вставить("Материал",ФормаОбр.Объект.ТабличнаяЧастьСоответствие[п].Материал);
НадСтроки = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.НайтиСтроки(Отбор);
КонецЦикла;

  Для п = 0 По НадСтроки.Количество()-1 Цикл
Значение = Значение + НадСтроки[п].Количество;
КонецЦикла;

НоваяСтрока = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Добавить();
//Строка.КоличествоФакт = Строка[3] - Значение2 ;
Строка.Количество = Строка[3] - Значение ;
ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
КонецЦикла;

Иначе
Вопрос("В выбранных нарядах отсутствуют материалы." , РежимДиалогаВопрос.ОК);
Возврат
КонецЕсли;

ФормаОбр.Объект.ОснованиеГрафикПроизводства = ДокументыДляОптимизации;
ФормаОбр.Объект.КИСПроставлен = ДокументыДляОптимизации[0].КИСПроставлен;
ФормаОбр.ОткрытьМодально();
КонецЕсли;

КонецПроцедуры // ВыполнитьОптимизацию()

&НаСервере
Функция СервСформировать2(ПараметрКоманды, КолВГруппе =0) Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ГрафикПроИзводстваНаряды.Документ,
| ГрафикПроИзводстваНаряды.Группировка КАК Группировка
|ИЗ
| Документ.ГрафикПроизводства.Наряды КАК ГрафикПроИзводстваНаряды
|ГДЕ
| ГрафикПроИзводстваНаряды.Ссылка = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| Группировка,
| ГрафикПроИзводстваНаряды.НомерСтроки";

МассОпераций = Новый Массив;
МассОпераций.Добавить("Раскрой");
МассОпераций.Добавить("Пленка");

Запрос.УстановитьПараметр("Операции", МассОпераций);
Запрос.УстановитьПараметр("Ссылка", ПараметрКоманды[0].Ссылка);
Результат = Запрос.Выполнить().Выгрузить();

//РаскройТаблицаДанных = Новый ТаблицаЗначений;
//ПленкаТаблицаДанных = Новый ТаблицаЗначений;
РаскройТаблицаДанных = Неопределено;
ПленкаТаблицаДанных = Неопределено;

Для Каждого Строка Из Результат Цикл
РаскройТаблицаДанныхИтоговая = Строка.Документ.Запасы.Выгрузить();
РаскройТаблицаДанныхИтоговая.Колонки["Номенклатура"].Имя = "Материал";
РаскройТаблицаДанныхИтоговая.Колонки["НомерСтроки"].Имя = "Номер";
РаскройТаблицаДанныхИтоговая.Колонки["КоличествоРасчетное"].Имя = "КоличествоФакт";
РаскройТаблицаДанныхИтоговая.Свернуть("КИС, Количество, КоличествоФакт, ПланыРаскроя, Номер, Материал");

РаскройТаблицаДанныхИтоговая.Колонки.Добавить("Группировка");
РаскройТаблицаДанныхИтоговая.Колонки.Добавить("НарядВПроизводство");
РаскройТаблицаДанныхИтоговая.Колонки.Добавить("ИмяФайла");
РаскройТаблицаДанныхИтоговая.Колонки.Добавить("НомерФайла");
// РаскройТаблицаДанныхИтоговая.Колонки.Добавить("ПланыРаскроя");

РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Группировка,"Группировка");
РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Документ.Ссылка,"НарядВПроизводство");
РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Документ.Номер,"ИмяФайла");
РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Документ.Запасы[0].ПланыРаскроя,"ПланыРаскроя");

Если РаскройТаблицаДанных = Неопределено Тогда
РаскройТаблицаДанных = РаскройТаблицаДанныхИтоговая.Скопировать();
ИначеЕсли КолВГруппе = 0  Тогда
Для Каждого СтрокаТД Из РаскройТаблицаДанныхИтоговая Цикл

НоваяСтрока = РаскройТаблицаДанных.Добавить();
//  СтрокаТД.Количество= 60;
Для ТекКолонка = 0 по РаскройТаблицаДанных.Колонки.Количество()-1  Цикл
НоваяСтрока[ТекКолонка] = СтрокаТД[ТекКолонка];

КонецЦикла;
КонецЦикла;
Иначе
Для Каждого СтрокаТД Из РаскройТаблицаДанныхИтоговая Цикл

НоваяСтрока = РаскройТаблицаДанных.Добавить();
//  СтрокаТД.Количество= 60;
Для ТекКолонка = 0 по РаскройТаблицаДанных.Колонки.Количество()-1  Цикл
НоваяСтрока[ТекКолонка] = СтрокаТД[ТекКолонка];

КонецЦикла;
КонецЦикла;


КонецЕсли;



//
//ИначеЕсли Строка(Строка.Документ.Операция) = "Пленка" Тогда
// Если ПленкаТаблицаДанных = Неопределено Тогда
//
// Иначе
//
// КонецЕсли;
//КонецЕсли;
КонецЦикла;
    РезультатРаскроев = новый Массив;
Если РаскройТаблицаДанных = Неопределено Тогда
РаскройТаблицаДанных = Неопределено;
Иначе
РаскройТаблицаДанных.Колонки.Добавить("Порядок");
Счетчик = 0;
ПоследнийНомер = "";
Для Каждого Строка Из РаскройТаблицаДанных Цикл
Если ПоследнийНомер <> Строка.Номер Тогда
ПоследнийНомер = Строка.Номер;
Счетчик = Счетчик + 1;
КонецЕсли;
Строка.Порядок = Счетчик;
КонецЦикла;

  //Результат =   РаскройТаблицаДанных[0].Количество/10;
РезультатРаскроев.Добавить(РаскройТаблицаДанных);

КонецЕсли;

Если ПленкаТаблицаДанных = Неопределено Тогда

Иначе
ПленкаТаблицаДанных.Колонки.Добавить("Порядок");
Счетчик = 0;
ПоследнийНомер = "";
Для Каждого Строка Из ПленкаТаблицаДанных Цикл
Если ПоследнийНомер <> Строка.Номер Тогда
ПоследнийНомер = Строка.Номер;
Счетчик = Счетчик + 1;
КонецЕсли;
Строка.Порядок = Счетчик;
КонецЦикла;

КонецЕсли;
// АдресХранилища = ПоместитьВоВременноеХранилище(,Форма);
//
//ПротоколПереноса = ПолучитьИзВременногоХранилища(АдресХранилища);
строка1 = ЗначениеВСтрокуВнутр(РезультатРаскроев);
Возврат ЗначениеИзСтрокиВнутр(строка1);



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



//Возврат МассивДанных;

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


После нажатия да! должна сформироватся обработка

Dimasikkk1

13 / 10 / 3

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

Сообщений: 95

1

1C 8.x

13.04.2021, 18:13. Показов 12445. Ответов 5

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


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

Во время изучения 1с предприятия столкнулся с данной проблемой:

Код

Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}Ref	Форма: Элемент	Тип: {http://www.w3.org/2001/XMLSchema}anyType
{Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(8)}:	Заказ = ПолучитьЗаказПоставщикуНаСервере(Объект.Заказ);

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

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

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
&НаСервереБезКонтекста
Функция ПолучитьЗаказПоставщикуНаСервере(Заказ)
    Возврат Заказ.ПолучитьОбъект();   
КонецФункции
 
&НаКлиенте
Процедура ЗаказПриИзменении(Элемент)
    Заказ = ПолучитьЗаказПоставщикуНаСервере(Объект.Заказ);
    
    Объект.Поставщик = Заказ.Поставщик;
    Объект.Склад = Заказ.Склад;
    Объект.Товары.Очистить();
    
    Для Каждого ТекСтрокаТовары Из Заказ.Товары Цикл
        НоваяСтрока = Объект.Товары.Добавить();
        НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
        НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
        НоваяСтрока.Характеристика = ТекСтрокаТовары.Характеристика;
        НоваяСтрока.Стоимость = ТекСтрокаТовары.Стоимость;
        НоваяСтрока.ЦенаПоступления = ТекСтрокаТовары.ЦенаПоступления;
    КонецЦикла;
КонецПроцедуры

Если запрашивать данные заказа по одному реквизиту, или выполнять данный код в режиме толстого клиента, то ошибки не появляются. Это так и должно работать или я что-то не так делаю?



0



264 / 219 / 95

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

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

13.04.2021, 21:46

2

Что есть «Объект.Заказ»? Заказ — табличная часть?
&НаСервереБезКонтекста — без контекста формы. На сервере будут недоступны данные формы.

Если пытаетесь передать что-то с формы, то директива должна быть «&НаСервере».
Если без контекста, то выгрузить нужно табличную часть, например в ТЗ,, поместить во временное хранилище, и передать на сервер.



1



13 / 10 / 3

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

Сообщений: 95

14.04.2021, 00:43

 [ТС]

3

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

Что есть «Объект.Заказ»?

Заказ — это реквизит типа ДокументСсылка.ЗаказПоставщику в документе ПоступлениеТовара, в модуле формы которого выполняется код. Товары — это табличная часть.

Ещё хочу узнать, правильно ли я обратился к данным поля через «Объект.»? Или правильно обращаться через «Элементы.»?

Мне нужно получить объект из поля формы типа ДокументСсылка.ЗаказПоставщику, типа как в коде я написал и читать данные через переменную «Заказы.<реквизит>».



0



264 / 219 / 95

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

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

14.04.2021, 05:10

4

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

Решение

Вся работа с объектами осуществляется на сервере. ПолучитьОбъект выполняется на сервере.
Вы пытаетесь на клиента вернуть полученный «объект». Тут и ошибка т.к. это считается «мутабельным» типом. А в толстом клиенте нет такой ошибки потому что и клиент и сервер это 1 и то же.

Вам нужно при изменении сделать вызов СЕРВЕРНОЙ процедуры, в ней же получить объект не возвращая на клиента, и делать все что угодно с объектом опять же на сервере.

Обращение через «элементы» нужно чтобы получить например текущую выделенную строку табличной части:»Элементы.ИмяТч.ТекущиеДанные». Или когда элемент формы не связан с объектом



1



Dimasikkk1

13 / 10 / 3

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

Сообщений: 95

14.04.2021, 05:50

 [ТС]

5

Большое спасибо!

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

Вам нужно при изменении сделать вызов СЕРВЕРНОЙ процедуры, в ней же получить объект не возвращая на клиента, и делать все что угодно с объектом опять же на сервере.

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

Финальный код, если у кого-нибудь случится такая же ситуация:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
&НаСервере
Процедура ЗаполнениеНаОснованииНаСервере()
    Заказ = Объект.Заказ;
    
    Объект.Поставщик = Заказ.Поставщик;
    Объект.Склад = Заказ.Склад;
    Объект.Товары.Очистить();
    
    Для Каждого ТекСтрокаТовары Из Заказ.Товары Цикл
        НоваяСтрока = Объект.Товары.Добавить();
        НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
        НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
        НоваяСтрока.Характеристика = ТекСтрокаТовары.Характеристика;
        НоваяСтрока.Стоимость = ТекСтрокаТовары.Стоимость;
        НоваяСтрока.ЦенаПоступления = ТекСтрокаТовары.ЦенаПоступления;
    КонецЦикла;
КонецПроцедуры
 
&НаКлиенте
Процедура ЗаказПриИзменении(Элемент)
    ЗаполнениеНаОснованииНаСервере();
КонецПроцедуры



0



264 / 219 / 95

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

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

14.04.2021, 06:21

6

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

А я думал что из серверного вызова нельзя менять данные в форме

Почему же нельзя?Можно. РеквизитФормыВЗначение и ЗначениеВРеквизитФормы.

В этом случае, как я понимаю, работа ведется не с основным объектом,а с «вспомогательным». В форме документа что-то изменяется, и в подчиненном объекте это тоже надо поменять.Но Вы же работает не с формой подчиненного объекта, а с объектом. Поэтому все и на сервере, так как «вручную» в форме подчиненного объекта не вносятся никакие изменения.



1



IT_Exp

Эксперт

87844 / 49110 / 22898

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

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

14.04.2021, 06:21

6

При входе в базу 1с вы можете увидеть “Ошибка преобразования данных XDTO:

Начало Свойства: errorProcessingSettings

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

Тип: {http://v8.1c.ru/8.2/managed-application/core}ErrorProcessingSettings по причине

Чаще всего ошибка возникает при определенном типе запуска: это либо через тонкий клиент, либо через линк42, случаи бывают разные. Через браузер такие базы запускаются без ошибок.

Есть простое решение данной проблемы.

Достаточно запустить базу доступным нам способом (где нет ошибки) включить Функции тех. специалиста (Меню — Настройки — Параметры — Режим технического специалиста)

В Функциях для технического специалиста ищем Управление настройками обработки ошибок (Стандартные)

Запускаем

Готово!

Уже более 10 000 компаний работают
в облачной 1С от 42Clouds

— Консультация по 1С Бесплатно!

— Поддержка 24/7 по техническим вопросам: в чате, по телефону, по почте

— Все типовые конфигурации онлайн, доступ через RDP, Remote App, Web


Evgenii
Пользователь
19.12.2016 08:55
При передаче таблицы значений на клиент выдает ошибку.

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

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

Запрос

= Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Наименование,
| Номенклатура.Количество,
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура"
;

РезультатЗапроса

= Запрос.Выполнить();
Таблица = РезультатЗапроса.Выгрузить();Возврат Таблица;КонецФункции

&НаКлиенте


Процедура Команда(Команда)
Таблица = ПолучитьТаблицуТоваров();
КонецПроцедуры

Ответы (5)


Кодер
Пользователь
19.12.2016 09:16
Номер  (1)

Какая конфигурация?
Управляемое или обычное приложение?


Evgenii
Пользователь
19.12.2016 09:31
Номер  (2)

Управляемое приложение УТ 11.
В файловой базе такой ошибки нет. Ошибка появляется только в клиент-серверном варианте.


Кодер
Пользователь
19.12.2016 10:06
Номер  (3)

Видимо у вас:
На сервере запускается в «Тонком клиенте». В этом режиме с сервера на клиент нельзя передавать таблицу значений и некоторые другие типы данных.

В файловом варианте запускается в «Толстом клинете». Этот режим работы позволяет передавать ТЗ.


Evgenii
Пользователь
19.12.2016 10:33
Номер  (4)

Файловая база используеттся для тестирования.
А как можно ее запустить в тонком клиенте для отладки?


progv8
Пользователь
19.12.2016 15:13
Номер  (5)

В конфигураторе Сервис->Параметры->Запуск 1С:Предприятия
Обязательно должен быть установлен компонент «Тонкий клиент».

Обсуждение закрыто

  • Регистрация
  • Восстановить пароль
  • Вход
 

Просмотров 12.5к. Опубликовано 24 октября, 2018 Обновлено 24 октября, 2018

Ошибка преобразования данных XDTO: Текст XML содержит недопустимый символ.

На самом деле ошибка преобразования XDTO является не какой-то определенной ошибкой, а является большим семейством ошибок возникающих при работе одного из базовых механизмов платформы 1С. Этот механизм обеспечивает передачу данных между различными подсистемами платформы, при этом данные из внутреннего представления одной подсистемы преобразуются в текстовый формат XML, передаются в другую подсистему, и там  опять преобразуются во внутреннее представление. Ошибка преобразования XDTO говорит, что прямом или обратном преобразовании обнаружено какое-то несоответствие, из-за которого оно не может быть выполнено.

Частные причины ошибки

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

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

Взаимодействие Клиента и Сервера

При запуске 1С в режиме Тонкий клиент взаимодействие клиента с ИБ происходит с использование преобразования XDTO, и если оно приводит к ошибке, то в тех случаях, когда это возможно, следует воспользоваться режим Толстый клиент.

Сырые и Неоригинальные решения

Если ошибка преобразования XDTO возникает в неоригинальной конфигурации или неоригинальной обработке, то возможно, причина в неоригинальном коде, который не был должным образом оттестирован. Это возможно и в оригинальных решения от 1С после установки сырых обновлений.

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

  • Ошибка преобразования данных xdto началосвойства error processing settings форма элемент
  • Ошибка преобразования данных xdto началосвойства category форма элемент тип
  • Ошибка преобразования данных xdto запись значения свойства ret
  • Ошибка преобразования данных xdto запись значения свойства param
  • Ошибка преобразования pla данных