Имя: Пароль:
1C
1С v8
Не сериализуется ТабДок
0 ComradeKite
 
20.03.17
21:32
Всем привет!

При разработке внешнего отчета столкнулся с не очевидной ошибкой.
Отчет делал так, взял стандартный отчет АнализНачисленийИУдержаний, выгрузил его. Удалил все из отчета, за исключением одного расчетного листа. Алгоритм стандартный, формирую на стороне сервера табЧасть и пытаюсь вернуть(сериализовать) ее на сторону клиента.
Но не тут то было, получаю страшные заклинания XDTO. То есть при выходе из функции ФЗЗапустить, получается ошибка.
Дословно ошибку см ниже. Мои инвестигешены дошли до того что все нормально работает, если запускается толстый клиент в управляемых формах. В тонком клиенте ошибка. Причем после первого выскакивания ошибки, ошибка будет получаться, даже если
ТЧ = Новый ТабличныйДокумент;
Возврат ТЧ;

Может кто то уже встречался с таким? А то я не знаю, как отчеты то писать дальше и только у меня ли это наблюдается?

PS Платформа 2170 32разряда



{ВнешнийОтчет.РасчетныйЛистОбсидианВнешний11.Форма.ФормаОтчета.Форма(188)}: Ошибка при вызове метода контекста (ФЗЗапустить)
    ТабДок = ФЗЗапустить();
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: userSettings    Форма: Элемент    Тип: {http://v8.1c.ru/8.1/data-composition-system/settings}UserSettings
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: additionalProperties    Форма: Элемент    Тип: {http://v8.1c.ru/8.1/data/core}Structure
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: Value    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/composition-template}dataSource    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
1 Неверный Параметр И
 
20.03.17
21:40
> А то я не знаю, как отчеты то писать
Совершенно верно
2 Неверный Параметр И
 
20.03.17
21:42
Платформа честно рассказывает ему про userSettings из СКД, в которой есть additionalProperties типа структуры, в которой есть значение dataSource опять таки из СКД.

А он тут втирает какой-то бред про табличный документ.
3 ComradeKite
 
20.03.17
21:49
to 1, 2 А вы своими постами что хотели сказать? Что вы знаете и не скажете? Или я чего то не знаю?

Если про меня, то я не претендую на всезнайку. Я просто хочу разобраться с ошибкой, на которую потратил много времени.
4 Неверный Параметр И
 
20.03.17
21:53
У тебя разваливается форма при передаче контекста с клиента на сервер и обратно. Причем тут табличный документ, науке неизвестно.

Ищи, что пихаешь в реквизиты.
5 Неверный Параметр И
 
20.03.17
22:00
Начиная, пожалуй с:

Расширение управляемой формы для отчета (Managed form extension for reports)
ПользовательскиеНастройки (UserSettings)
Описание:

Тип: ПользовательскиеНастройкиКомпоновкиДанных.
Пользовательские настройки, которые будут использоваться в отчете.
6 ComradeKite
 
20.03.17
22:07
Неверный параметр, немного грубоваты посты ваши, но все равно большое спасибо, направил в нужном направлении)))

Может подскажете где почитать про это XDTO, чтобы избежать подобных ошибок.
7 FIXXXL
 
21.03.17
10:04
(6) обычно в СП для объекта пишут "сериализуется", это значит можно гонять туда-сюда
8 ComradeKite
 
21.03.17
10:21
Ошибка преобразования данных XDTO:
НачалоСвойства: Value    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/composition-template}dataSource    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType


Что же это может быть? Вроде все нормально, в стандартном отчете в конфигурации все срабатывает, а во внешнем отчете падает.
9 ComradeKite
 
21.03.17
11:22
Итак проблема в сухом остатке.

Выполняется на сервере

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

В процедуре ПриКомпоновкеРезультата вносятся изменения в процессор вывода КД, формируя табличный документ.

При возврате контекста с сервера на клиента вылетает по вышеописанной ошибке.

Остался только ТабличныйДокумент, что с ним не так. Я в форме вообще ничего не трогаю. К стандартным реквизитам "Отчет" не лезу.
10 ComradeKite
 
21.03.17
16:39
Взял стандартный отчет, интегрировал в конфигурацию, поменял компоновку, в таких условиях работает и в тонком клиенте.

Во внешнем отчете не работает в тонком клиенте.

Любые идеи вэлкоме))
11 RomanYS
 
21.03.17
16:59
Возможно в расшифровку умудрился засунуть что-то не сериализуемое.
12 DailyLookingOnA Sunse
 
21.03.17
17:02
В параметры СКД что-нибудь вроде объекта заполнено.
13 ComradeKite
 
23.03.17
22:45
Расшифровку вообще убрал, параметры проверил, все ок.
Обновлю информацию по этому вопросу:

Во внешней обработке есть форма "ФормаОтчета", я ее из общих форм взял. Через эту форму почти все отчеты запускаются, чтобы стандартный запуск отчетов был.  Так как форма имеет тип "ОтчетОбъект", то у формы основной реквизит "Отчет", в этом реквизите есть тип "КомпоновщикНастроекКомпоновкиДанных" (КНКД), этот тип сериализуется. Далее в КНКД есть тип "ПользовательскиеНастройкиКомпоновкиДанных" (ПНКД), тоже сериализуется. При компановке результата в ПНКД пишется структура, где находится тип "МакетКомпоновкиДанных" (МКД). Вот тут то вся засада и расположилась МКД не сериализуется.  


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

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

Приношу извинения за столь утомительный рассказ
Как говорится все идеи велком))))
14 ComradeKite
 
24.03.17
09:28
Тему можно закрывать, убрал макет компоновки данных и все заработало. МКД не сериализовался. Сделал вывод что почти все ошибки XDTO из за попытки перенести не сериализуемый тип с сервера на клиента.

Всем спасибо за дискуссию!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс