Прежде чем перейти к разработанному мною способу, приведу традиционный:
Алгоритм традиционного способа:
1) Создаём новый набор данных типа объект;
2) Копируем в него колонки существующего набора данных;
3) Удаляем существующий набор данных.
Ниже представлен листинг процедуры, реализующей описанный выше алгоритм:
В параметр "ИмяОбъекта" нужно передать название объекта, который будет добавлен во внешний набор данных СКД, например "тзДанныеОтчёта".
Процедура СменаТипаНабораДанныхСКДНаОбъект_ОП(ИмяОбъекта)
Перем СКД, Набор, НовыйНабор, Элем, ПолеСКД;
СКД = ЭтотОбъект.СхемаКомпоновкиДанных;
Набор = СКД.НаборыДанных[0];
НовыйНабор = СКД.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
НовыйНабор.ИмяОбъекта = ИмяОбъекта;
ЗаполнитьЗначенияСвойств(НовыйНабор, Набор);
Для Каждого Элем Из Набор.Поля Цикл
ПолеСКД = НовыйНабор.Поля.Добавить(ТипЗнч(Элем));
ЗаполнитьЗначенияСвойств(ПолеСКД, Элем)
КонецЦикла;
СКД.НаборыДанных.Удалить(Набор);
КонецПроцедуры // СменаТипаНабораДанныхСКДНаОбъект_ОП
Традиционный программный способ имеет серьёзный недостаток - к колонкам нового набора данных не применяются параметры оформления колонок, заданные в настройках СКД.
Именно поэтому мною был разработан новый способ конвертации типа набора данных СКД, который будет представлен далее.
Конвертация типа набора данных СКД, в существующем наборе данных, без создания нового.
В рамках объектно-ориентированного подхода невозможно изменить тип набора данных, однако, платформа 1С имеет возможность сериализации своих объектов, а в сериализованном объекте ограничения логики объекта отсутствуют - ведь объект превращается просто в текст, который можно поправить так, как нам надо.
Как видите, всё гениальное - просто!
Если мы при помощи функции "ЗначениеВСтрокуВнутр" сериализуем объект схемы компоновки данных, то получим вот такую "абракадабру":
{"#",dc29f857-fc4f-4cd1-a7ca-e8e71f3955b3,
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTY2hl
bWFGaWxlIHhtbG5zPSIiIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSI+DQoJPGRhdGFDb21wb3NpdGlvblNjaGVtYSB4bWxu
...
Полная версия сериализованного объекта СКД
{"#",dc29f857-fc4f-4cd1-a7ca-e8e71f3955b3,
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTY2hl
bWFGaWxlIHhtbG5zPSIiIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSI+DQoJPGRhdGFDb21wb3NpdGlvblNjaGVtYSB4bWxu
cz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9uLXN5c3RlbS9z
Y2hlbWEiPg0KCQk8ZGF0YVNvdXJjZT4NCgkJCTxuYW1lPtCY0YHRgtC+0YfQvdC4
0LrQlNCw0L3QvdGL0YUxPC9uYW1lPg0KCQkJPGRhdGFTb3VyY2VUeXBlPkxvY2Fs
PC9kYXRhU291cmNlVHlwZT4NCgkJPC9kYXRhU291cmNlPg0KCQk8ZGF0YVNldCB4
c2k6dHlwZT0iRGF0YVNldFF1ZXJ5Ij4NCgkJCTxuYW1lPtCd0LDQsdC+0YDQlNCw
0L3QvdGL0YUxPC9uYW1lPg0KCQkJPGZpZWxkIHhzaTp0eXBlPSJEYXRhU2V0Rmll
bGRGaWVsZCI+DQoJCQkJPGRhdGFQYXRoPtCe0YDQs9Cw0L3QuNC30LDRhtC40Y88
L2RhdGFQYXRoPg0KCQkJCTxmaWVsZD7QntGA0LPQsNC90LjQt9Cw0YbQuNGPPC9m
aWVsZD4NCgkJCQk8dGl0bGUgeG1sbnM6ZDVwMT0iaHR0cDovL3Y4LjFjLnJ1Lzgu
MS9kYXRhL2NvcmUiIHhzaTp0eXBlPSJkNXAxOkxvY2FsU3RyaW5nVHlwZSI+DQoJ
CQkJCTxkNXAxOml0ZW0+DQoJCQkJCQk8ZDVwMTpsYW5nPnJ1PC9kNXAxOmxhbmc+
DQoJCQkJCQk8ZDVwMTpjb250ZW50PtCe0YDQs9Cw0L3QuNC30LDRhtC40Y88L2Q1
cDE6Y29udGVudD4NCgkJCQkJPC9kNXAxOml0ZW0+DQoJCQkJPC90aXRsZT4NCgkJ
CQk8YXBwZWFyYW5jZT4NCgkJCQkJPGl0ZW0geG1sbnM9Imh0dHA6Ly92OC4xYy5y
dS84LjEvZGF0YS1jb21wb3NpdGlvbi1zeXN0ZW0vY29yZSIgeG1sbnM6ZGNzc2V0
PSJodHRwOi8vdjguMWMucnUvOC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL3Nl
dHRpbmdzIiB4c2k6dHlwZT0iZGNzc2V0OlNldHRpbmdzUGFyYW1ldGVyVmFsdWUi
Pg0KCQkJCQkJPHBhcmFtZXRlcj7QnNC40L3QuNC80LDQu9GM0L3QsNGP0KjQuNGA
0LjQvdCwPC9wYXJhbWV0ZXI+DQoJCQkJCQk8dmFsdWUgeHNpOnR5cGU9InhzOmRl
Y2ltYWwiPjM1PC92YWx1ZT4NCgkJCQkJPC9pdGVtPg0KCQkJCTwvYXBwZWFyYW5j
ZT4NCgkJCTwvZmllbGQ+DQoJCQk8ZmllbGQgeHNpOnR5cGU9IkRhdGFTZXRGaWVs
ZEZpZWxkIj4NCgkJCQk8ZGF0YVBhdGg+0J3QsNC30L3QsNGH0LXQvdC40LXQn9C7
0LDRgtC10LbQsDwvZGF0YVBhdGg+DQoJCQkJPGZpZWxkPtCd0LDQt9C90LDRh9C1
0L3QuNC10J/Qu9Cw0YLQtdC20LA8L2ZpZWxkPg0KCQkJCTx0aXRsZSB4bWxuczpk
NXAxPSJodHRwOi8vdjguMWMucnUvOC4xL2RhdGEvY29yZSIgeHNpOnR5cGU9ImQ1
cDE6TG9jYWxTdHJpbmdUeXBlIj4NCgkJCQkJPGQ1cDE6aXRlbT4NCgkJCQkJCTxk
NXAxOmxhbmc+cnU8L2Q1cDE6bGFuZz4NCgkJCQkJCTxkNXAxOmNvbnRlbnQ+0J3Q
sNC30L3QsNGH0LXQvdC40LUg0L/Qu9Cw0YLQtdC20LA8L2Q1cDE6Y29udGVudD4N
CgkJCQkJPC9kNXAxOml0ZW0+DQoJCQkJPC90aXRsZT4NCgkJCTwvZmllbGQ+DQoJ
CQk8ZmllbGQgeHNpOnR5cGU9IkRhdGFTZXRGaWVsZEZpZWxkIj4NCgkJCQk8ZGF0
YVBhdGg+0JTQvtCz0L7QstC+0YA8L2RhdGFQYXRoPg0KCQkJCTxmaWVsZD7QlNC+
0LPQvtCy0L7RgDwvZmllbGQ+DQoJCQkJPHRpdGxlIHhtbG5zOmQ1cDE9Imh0dHA6
Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4c2k6dHlwZT0iZDVwMTpMb2NhbFN0
cmluZ1R5cGUiPg0KCQkJCQk8ZDVwMTppdGVtPg0KCQkJCQkJPGQ1cDE6bGFuZz5y
dTwvZDVwMTpsYW5nPg0KCQkJCQkJPGQ1cDE6Y29udGVudD7QlNC+0LPQvtCy0L7R
gDwvZDVwMTpjb250ZW50Pg0KCQkJCQk8L2Q1cDE6aXRlbT4NCgkJCQk8L3RpdGxl
Pg0KCQkJCTxhcHBlYXJhbmNlPg0KCQkJCQk8aXRlbSB4bWxucz0iaHR0cDovL3Y4
LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9uLXN5c3RlbS9jb3JlIiB4bWxuczpk
Y3NzZXQ9Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS1jb21wb3NpdGlvbi1zeXN0
ZW0vc2V0dGluZ3MiIHhzaTp0eXBlPSJkY3NzZXQ6U2V0dGluZ3NQYXJhbWV0ZXJW
YWx1ZSI+DQoJCQkJCQk8cGFyYW1ldGVyPtCc0LjQvdC40LzQsNC70YzQvdCw0Y/Q
qNC40YDQuNC90LA8L3BhcmFtZXRlcj4NCgkJCQkJCTx2YWx1ZSB4c2k6dHlwZT0i
eHM6ZGVjaW1hbCI+MjU8L3ZhbHVlPg0KCQkJCQk8L2l0ZW0+DQoJCQkJCTxpdGVt
IHhtbG5zPSJodHRwOi8vdjguMWMucnUvOC4xL2RhdGEtY29tcG9zaXRpb24tc3lz
dGVtL2NvcmUiIHhtbG5zOmRjc3NldD0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRh
LWNvbXBvc2l0aW9uLXN5c3RlbS9zZXR0aW5ncyIgeHNpOnR5cGU9ImRjc3NldDpT
ZXR0aW5nc1BhcmFtZXRlclZhbHVlIj4NCgkJCQkJCTxwYXJhbWV0ZXI+0JzQsNC6
0YHQuNC80LDQu9GM0L3QsNGP0KjQuNGA0LjQvdCwPC9wYXJhbWV0ZXI+DQoJCQkJ
CQk8dmFsdWUgeHNpOnR5cGU9InhzOmRlY2ltYWwiPjI1PC92YWx1ZT4NCgkJCQkJ
PC9pdGVtPg0KCQkJCTwvYXBwZWFyYW5jZT4NCgkJCTwvZmllbGQ+DQoJCQk8Zmll
bGQgeHNpOnR5cGU9IkRhdGFTZXRGaWVsZEZpZWxkIj4NCgkJCQk8ZGF0YVBhdGg+
0J/Qu9Cw0YLQtdC70YzRidC40Lo8L2RhdGFQYXRoPg0KCQkJCTxmaWVsZD7Qn9C7
0LDRgtC10LvRjNGJ0LjQujwvZmllbGQ+DQoJCQkJPHRpdGxlIHhtbG5zOmQ1cDE9
Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4c2k6dHlwZT0iZDVwMTpM
b2NhbFN0cmluZ1R5cGUiPg0KCQkJCQk8ZDVwMTppdGVtPg0KCQkJCQkJPGQ1cDE6
bGFuZz5ydTwvZDVwMTpsYW5nPg0KCQkJCQkJPGQ1cDE6Y29udGVudD7Qn9C70LDR
gtC10LvRjNGJ0LjQujwvZDVwMTpjb250ZW50Pg0KCQkJCQk8L2Q1cDE6aXRlbT4N
CgkJCQk8L3RpdGxlPg0KCQkJCTxhcHBlYXJhbmNlPg0KCQkJCQk8aXRlbSB4bWxu
cz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9uLXN5c3RlbS9j
b3JlIiB4bWxuczpkY3NzZXQ9Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS1jb21w
b3NpdGlvbi1zeXN0ZW0vc2V0dGluZ3MiIHhzaTp0eXBlPSJkY3NzZXQ6U2V0dGlu
Z3NQYXJhbWV0ZXJWYWx1ZSI+DQoJCQkJCQk8cGFyYW1ldGVyPtCc0LDQutGB0LjQ
vNCw0LvRjNC90LDRj9Co0LjRgNC40L3QsDwvcGFyYW1ldGVyPg0KCQkJCQkJPHZh
bHVlIHhzaTp0eXBlPSJ4czpkZWNpbWFsIj4zNTwvdmFsdWU+DQoJCQkJCTwvaXRl
bT4NCgkJCQk8L2FwcGVhcmFuY2U+DQoJCQk8L2ZpZWxkPg0KCQkJPGZpZWxkIHhz
aTp0eXBlPSJEYXRhU2V0RmllbGRGaWVsZCI+DQoJCQkJPGRhdGFQYXRoPtCU0L7Q
utGD0LzQtdC90YI8L2RhdGFQYXRoPg0KCQkJCTxmaWVsZD7QlNC+0LrRg9C80LXQ
vdGCPC9maWVsZD4NCgkJCQk8dGl0bGUgeG1sbnM6ZDVwMT0iaHR0cDovL3Y4LjFj
LnJ1LzguMS9kYXRhL2NvcmUiIHhzaTp0eXBlPSJkNXAxOkxvY2FsU3RyaW5nVHlw
ZSI+DQoJCQkJCTxkNXAxOml0ZW0+DQoJCQkJCQk8ZDVwMTpsYW5nPnJ1PC9kNXAx
Omxhbmc+DQoJCQkJCQk8ZDVwMTpjb250ZW50PtCU0L7QutGD0LzQtdC90YI8L2Q1
cDE6Y29udGVudD4NCgkJCQkJPC9kNXAxOml0ZW0+DQoJCQkJPC90aXRsZT4NCgkJ
CQk8YXBwZWFyYW5jZT4NCgkJCQkJPGl0ZW0geG1sbnM9Imh0dHA6Ly92OC4xYy5y
dS84LjEvZGF0YS1jb21wb3NpdGlvbi1zeXN0ZW0vY29yZSIgeG1sbnM6ZGNzc2V0
PSJodHRwOi8vdjguMWMucnUvOC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL3Nl
dHRpbmdzIiB4c2k6dHlwZT0iZGNzc2V0OlNldHRpbmdzUGFyYW1ldGVyVmFsdWUi
Pg0KCQkJCQkJPHBhcmFtZXRlcj7QnNCw0LrRgdC40LzQsNC70YzQvdCw0Y/QqNC4
0YDQuNC90LA8L3BhcmFtZXRlcj4NCgkJCQkJCTx2YWx1ZSB4c2k6dHlwZT0ieHM6
ZGVjaW1hbCI+MzU8L3ZhbHVlPg0KCQkJCQk8L2l0ZW0+DQoJCQkJPC9hcHBlYXJh
bmNlPg0KCQkJPC9maWVsZD4NCgkJCTxmaWVsZCB4c2k6dHlwZT0iRGF0YVNldEZp
ZWxkRmllbGQiPg0KCQkJCTxkYXRhUGF0aD7QoNCw0YHRiNC40YTRgNC+0LLQutCw
0J3QlNChPC9kYXRhUGF0aD4NCgkJCQk8ZmllbGQ+0KDQsNGB0YjQuNGE0YDQvtCy
0LrQsNCd0JTQoTwvZmllbGQ+DQoJCQkJPHRpdGxlIHhtbG5zOmQ1cDE9Imh0dHA6
Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4c2k6dHlwZT0iZDVwMTpMb2NhbFN0
cmluZ1R5cGUiPg0KCQkJCQk8ZDVwMTppdGVtPg0KCQkJCQkJPGQ1cDE6bGFuZz5y
dTwvZDVwMTpsYW5nPg0KCQkJCQkJPGQ1cDE6Y29udGVudD7QoNCw0YHRiNC40YTR
gNC+0LLQutCwINCd0JTQoTwvZDVwMTpjb250ZW50Pg0KCQkJCQk8L2Q1cDE6aXRl
bT4NCgkJCQk8L3RpdGxlPg0KCQkJPC9maWVsZD4NCgkJCTxmaWVsZCB4c2k6dHlw
ZT0iRGF0YVNldEZpZWxkRmllbGQiPg0KCQkJCTxkYXRhUGF0aD7QndCw0LfQvdCw
0YfQtdC90LjQtdCd0JTQoTwvZGF0YVBhdGg+DQoJCQkJPGZpZWxkPtCd0LDQt9C9
0LDRh9C10L3QuNC10J3QlNChPC9maWVsZD4NCgkJCQk8dGl0bGUgeG1sbnM6ZDVw
MT0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhL2NvcmUiIHhzaTp0eXBlPSJkNXAx
OkxvY2FsU3RyaW5nVHlwZSI+DQoJCQkJCTxkNXAxOml0ZW0+DQoJCQkJCQk8ZDVw
MTpsYW5nPnJ1PC9kNXAxOmxhbmc+DQoJCQkJCQk8ZDVwMTpjb250ZW50PtCd0LDQ
t9C90LDRh9C10L3QuNC1INCd0JTQoTwvZDVwMTpjb250ZW50Pg0KCQkJCQk8L2Q1
cDE6aXRlbT4NCgkJCQk8L3RpdGxlPg0KCQkJPC9maWVsZD4NCgkJCTxmaWVsZCB4
c2k6dHlwZT0iRGF0YVNldEZpZWxkRmllbGQiPg0KCQkJCTxkYXRhUGF0aD7QldGB
0YLRjNCg0LDQt9C70LjRh9C40Y88L2RhdGFQYXRoPg0KCQkJCTxmaWVsZD7QldGB
0YLRjNCg0LDQt9C70LjRh9C40Y88L2ZpZWxkPg0KCQkJCTx0aXRsZSB4bWxuczpk
NXAxPSJodHRwOi8vdjguMWMucnUvOC4xL2RhdGEvY29yZSIgeHNpOnR5cGU9ImQ1
cDE6TG9jYWxTdHJpbmdUeXBlIj4NCgkJCQkJPGQ1cDE6aXRlbT4NCgkJCQkJCTxk
NXAxOmxhbmc+cnU8L2Q1cDE6bGFuZz4NCgkJCQkJCTxkNXAxOmNvbnRlbnQ+0JXR
gdGC0Ywg0YDQsNC30LvQuNGH0LjRjzwvZDVwMTpjb250ZW50Pg0KCQkJCQk8L2Q1
cDE6aXRlbT4NCgkJCQk8L3RpdGxlPg0KCQkJPC9maWVsZD4NCgkJCTxmaWVsZCB4
c2k6dHlwZT0iRGF0YVNldEZpZWxkRmllbGQiPg0KCQkJCTxkYXRhUGF0aD7QlNCw
0YLQsDwvZGF0YVBhdGg+DQoJCQkJPGZpZWxkPtCU0LDRgtCwPC9maWVsZD4NCgkJ
CQk8dGl0bGUgeG1sbnM6ZDVwMT0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhL2Nv
cmUiIHhzaTp0eXBlPSJkNXAxOkxvY2FsU3RyaW5nVHlwZSI+DQoJCQkJCTxkNXAx
Oml0ZW0+DQoJCQkJCQk8ZDVwMTpsYW5nPnJ1PC9kNXAxOmxhbmc+DQoJCQkJCQk8
ZDVwMTpjb250ZW50PtCU0LDRgtCwPC9kNXAxOmNvbnRlbnQ+DQoJCQkJCTwvZDVw
MTppdGVtPg0KCQkJCTwvdGl0bGU+DQoJCQk8L2ZpZWxkPg0KCQkJPGZpZWxkIHhz
aTp0eXBlPSJEYXRhU2V0RmllbGRGaWVsZCI+DQoJCQkJPGRhdGFQYXRoPtCS0LjQ
tNCe0L/QtdGA0LDRhtC40Lg8L2RhdGFQYXRoPg0KCQkJCTxmaWVsZD7QktC40LTQ
ntC/0LXRgNCw0YbQuNC4PC9maWVsZD4NCgkJCQk8dGl0bGUgeG1sbnM6ZDVwMT0i
aHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhL2NvcmUiIHhzaTp0eXBlPSJkNXAxOkxv
Y2FsU3RyaW5nVHlwZSI+DQoJCQkJCTxkNXAxOml0ZW0+DQoJCQkJCQk8ZDVwMTps
YW5nPnJ1PC9kNXAxOmxhbmc+DQoJCQkJCQk8ZDVwMTpjb250ZW50PtCS0LjQtCDQ
vtC/0LXRgNCw0YbQuNC4PC9kNXAxOmNvbnRlbnQ+DQoJCQkJCTwvZDVwMTppdGVt
Pg0KCQkJCTwvdGl0bGU+DQoJCQk8L2ZpZWxkPg0KCQkJPGRhdGFTb3VyY2U+0JjR
gdGC0L7Rh9C90LjQutCU0LDQvdC90YvRhTE8L2RhdGFTb3VyY2U+DQoJCQk8cXVl
cnk+0JLQq9CR0KDQkNCi0KwKCdCU0JDQotCQ0JLQoNCV0JzQrygxLDEsMSkg0JrQ
kNCaINCU0LDRgtCwLAoJ0JfQndCQ0KfQldCd0JjQlSjQodC/0YDQsNCy0L7Rh9C9
0LjQui7QntGA0LPQsNC90LjQt9Cw0YbQuNC4LtCf0YPRgdGC0LDRj9Ch0YHRi9C7
0LrQsCkg0JrQkNCaINCe0YDQs9Cw0L3QuNC30LDRhtC40Y8sCgnQl9Cd0JDQp9CV
0J3QmNCVKNCU0L7QutGD0LzQtdC90YIu0J/QvtGB0YLRg9C/0LvQtdC90LjQtdCR
0LXQt9C90LDQu9C40YfQvdGL0YXQlNC10L3QtdC20L3Ri9GF0KHRgNC10LTRgdGC
0LIu0J/Rg9GB0YLQsNGP0KHRgdGL0LvQutCwKSDQmtCQ0Jog0JTQvtC60YPQvNC1
0L3RgiwKCdCX0J3QkNCn0JXQndCY0JUo0KHQv9GA0LDQstC+0YfQvdC40Lou0JrQ
vtC90YLRgNCw0LPQtdC90YLRiy7Qn9GD0YHRgtCw0Y/QodGB0YvQu9C60LApINCa
0JDQmiDQn9C70LDRgtC10LvRjNGJ0LjQuiwKCdCy0LcxLtCU0L7Qs9C+0LLQvtGA
LAoJIiIg0JrQkNCaINCg0LDRgdGI0LjRhNGA0L7QstC60LDQndCU0KEsCgkiIiDQ
mtCQ0Jog0J3QsNC30L3QsNGH0LXQvdC40LXQndCU0KEsCgkiIiDQmtCQ0Jog0J3Q
sNC30L3QsNGH0LXQvdC40LXQn9C70LDRgtC10LbQsCwKCdCY0YHRgtC40L3QsCDQ
mtCQ0Jog0JXRgdGC0YzQoNCw0LfQu9C40YfQuNGPLAoJ0JfQndCQ0KfQldCd0JjQ
lSjQn9C10YDQtdGH0LjRgdC70LXQvdC40LUu0KXQvtC30Y/QudGB0YLQstC10L3Q
vdGL0LXQntC/0LXRgNCw0YbQuNC4LtCf0YPRgdGC0LDRj9Ch0YHRi9C70LrQsCkg
0JrQkNCaINCS0LjQtNCe0L/QtdGA0LDRhtC40LgKCQrQmNCXICgKCQnQktCr0JHQ
oNCQ0KLQrCAKCQkJ0JfQndCQ0KfQldCd0JjQlSjQodC/0YDQsNCy0L7Rh9C90LjQ
ui7QlNC+0LPQvtCy0L7RgNGL0JrQvtC90YLRgNCw0LPQtdC90YLQvtCyLtCf0YPR
gdGC0LDRj9Ch0YHRi9C70LrQsCkg0JrQkNCaINCU0L7Qs9C+0LLQvtGACiAgICAg
ICAgICAgIAoJCdCe0JHQqtCV0JTQmNCd0JjQotCsINCS0KHQlQogICAgICAgICAg
ICAKCQnQktCr0JHQoNCQ0KLQrAoJCQnQl9Cd0JDQp9CV0J3QmNCVKNCh0L/RgNCw
0LLQvtGH0L3QuNC6LtCU0L7Qs9C+0LLQvtGA0YvQnNC10LbQtNGD0J7RgNCz0LDQ
vdC40LfQsNGG0LjRj9C80Lgu0J/Rg9GB0YLQsNGP0KHRgdGL0LvQutCwKSDQmtCQ
0Jog0JTQvtCz0L7QstC+0YAKICAgIAkKICAgICkg0JrQkNCaINCy0LcxIAo8L3F1
ZXJ5Pg0KCQk8L2RhdGFTZXQ+DQoJCTxjYWxjdWxhdGVkRmllbGQ+DQoJCQk8ZGF0
YVBhdGg+0KLQvtC70YzQutC+0KDQsNC30LvQuNGH0LjRjzwvZGF0YVBhdGg+DQoJ
CQk8ZXhwcmVzc2lvbj7QmNGB0YLQuNC90LA8L2V4cHJlc3Npb24+DQoJCQk8dGl0
bGUgeG1sbnM6ZDRwMT0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhL2NvcmUiIHhz
aTp0eXBlPSJkNHAxOkxvY2FsU3RyaW5nVHlwZSI+DQoJCQkJPGQ0cDE6aXRlbT4N
CgkJCQkJPGQ0cDE6bGFuZz5ydTwvZDRwMTpsYW5nPg0KCQkJCQk8ZDRwMTpjb250
ZW50PtCi0L7Qu9GM0LrQviDRgNCw0LfQu9C40YfQuNGPPC9kNHAxOmNvbnRlbnQ+
DQoJCQkJPC9kNHAxOml0ZW0+DQoJCQk8L3RpdGxlPg0KCQk8L2NhbGN1bGF0ZWRG
aWVsZD4NCgkJPHBhcmFtZXRlcj4NCgkJCTxuYW1lPtCf0LXRgNC40L7QtNCe0YLR
h9GR0YLQsDwvbmFtZT4NCgkJCTx0aXRsZSB4bWxuczpkNHAxPSJodHRwOi8vdjgu
MWMucnUvOC4xL2RhdGEvY29yZSIgeHNpOnR5cGU9ImQ0cDE6TG9jYWxTdHJpbmdU
eXBlIj4NCgkJCQk8ZDRwMTppdGVtPg0KCQkJCQk8ZDRwMTpsYW5nPnJ1PC9kNHAx
Omxhbmc+DQoJCQkJCTxkNHAxOmNvbnRlbnQ+0J/QtdGA0LjQvtC0INC+0YLRh9GR
0YLQsDwvZDRwMTpjb250ZW50Pg0KCQkJCTwvZDRwMTppdGVtPg0KCQkJPC90aXRs
ZT4NCgkJCTx2YWx1ZVR5cGU+DQoJCQkJPFR5cGUgeG1sbnM9Imh0dHA6Ly92OC4x
Yy5ydS84LjEvZGF0YS9jb3JlIj5TdGFuZGFyZFBlcmlvZDwvVHlwZT4NCgkJCTwv
dmFsdWVUeXBlPg0KCQkJPHZhbHVlIHhtbG5zOmQ0cDE9Imh0dHA6Ly92OC4xYy5y
dS84LjEvZGF0YS9jb3JlIiB4c2k6dHlwZT0iZDRwMTpTdGFuZGFyZFBlcmlvZCI+
DQoJCQkJPGQ0cDE6dmFyaWFudCB4c2k6dHlwZT0iZDRwMTpTdGFuZGFyZFBlcmlv
ZFZhcmlhbnQiPkN1c3RvbTwvZDRwMTp2YXJpYW50Pg0KCQkJCTxkNHAxOnN0YXJ0
RGF0ZT4wMDAxLTAxLTAxVDAwOjAwOjAwPC9kNHAxOnN0YXJ0RGF0ZT4NCgkJCQk8
ZDRwMTplbmREYXRlPjAwMDEtMDEtMDFUMDA6MDA6MDA8L2Q0cDE6ZW5kRGF0ZT4N
CgkJCTwvdmFsdWU+DQoJCQk8dXNlUmVzdHJpY3Rpb24+ZmFsc2U8L3VzZVJlc3Ry
aWN0aW9uPg0KCQkJPGRlbnlJbmNvbXBsZXRlVmFsdWVzPnRydWU8L2RlbnlJbmNv
bXBsZXRlVmFsdWVzPg0KCQkJPHVzZT5BbHdheXM8L3VzZT4NCgkJPC9wYXJhbWV0
ZXI+DQoJCTxzZXR0aW5nc1ZhcmlhbnQ+DQoJCQk8bmFtZSB4bWxucz0iaHR0cDov
L3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9uLXN5c3RlbS9zZXR0aW5ncyI+
0J7RgdC90L7QstC90L7QuTwvbmFtZT4NCgkJCTxwcmVzZW50YXRpb24geG1sbnM9
Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS1jb21wb3NpdGlvbi1zeXN0ZW0vc2V0
dGluZ3MiIHhtbG5zOmQ0cDE9Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3Jl
IiB4c2k6dHlwZT0iZDRwMTpMb2NhbFN0cmluZ1R5cGUiPg0KCQkJCTxkNHAxOml0
ZW0+DQoJCQkJCTxkNHAxOmxhbmc+cnU8L2Q0cDE6bGFuZz4NCgkJCQkJPGQ0cDE6
Y29udGVudD7Qn9GA0L7QstC10YDQutCwINGB0YLQsNCy0LrQuCDQndCU0KEg0LIg
0L/QvtGB0YLRg9C/0LvQtdC90LjRj9GFINC90LAg0YDQsNGB0YfQtdGC0L3Ri9C5
INGB0YfQtdGCICjQmNCd0KQpIHYxLjI8L2Q0cDE6Y29udGVudD4NCgkJCQk8L2Q0
cDE6aXRlbT4NCgkJCTwvcHJlc2VudGF0aW9uPg0KCQk8L3NldHRpbmdzVmFyaWFu
dD4NCgk8L2RhdGFDb21wb3NpdGlvblNjaGVtYT4NCjwvU2NoZW1hRmlsZT4=},
{0,
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTZXR0
aW5ncyB4bWxucz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9u
LXN5c3RlbS9zZXR0aW5ncyIgeG1sbnM6ZGNzY29yPSJodHRwOi8vdjguMWMucnUv
OC4xL2RhdGEtY29tcG9zaXRpb24tc3lzdGVtL2NvcmUiIHhtbG5zOnN0eWxlPSJo
dHRwOi8vdjguMWMucnUvOC4xL2RhdGEvdWkvc3R5bGUiIHhtbG5zOnN5cz0iaHR0
cDovL3Y4LjFjLnJ1LzguMS9kYXRhL3VpL2ZvbnRzL3N5c3RlbSIgeG1sbnM6djg9
Imh0dHA6Ly92OC4xYy5ydS84LjEvZGF0YS9jb3JlIiB4bWxuczp2OHVpPSJodHRw
Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj
LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4
LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov
L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxzZWxlY3Rp
b24+DQoJCTxpdGVtIHhzaTp0eXBlPSJTZWxlY3RlZEl0ZW1GaWVsZCI+DQoJCQk8
ZmllbGQ+0J7RgNCz0LDQvdC40LfQsNGG0LjRjzwvZmllbGQ+DQoJCTwvaXRlbT4N
CgkJPGl0ZW0geHNpOnR5cGU9IlNlbGVjdGVkSXRlbUZpZWxkIj4NCgkJCTxmaWVs
ZD7QlNC+0LrRg9C80LXQvdGCPC9maWVsZD4NCgkJPC9pdGVtPg0KCQk8aXRlbSB4
c2k6dHlwZT0iU2VsZWN0ZWRJdGVtRmllbGQiPg0KCQkJPGZpZWxkPtCf0LvQsNGC
0LXQu9GM0YnQuNC6PC9maWVsZD4NCgkJPC9pdGVtPg0KCQk8aXRlbSB4c2k6dHlw
ZT0iU2VsZWN0ZWRJdGVtRmllbGQiPg0KCQkJPGZpZWxkPtCU0L7Qs9C+0LLQvtGA
PC9maWVsZD4NCgkJPC9pdGVtPg0KCQk8aXRlbSB4c2k6dHlwZT0iU2VsZWN0ZWRJ
dGVtRmllbGQiPg0KCQkJPGZpZWxkPtCg0LDRgdGI0LjRhNGA0L7QstC60LDQndCU
0KE8L2ZpZWxkPg0KCQk8L2l0ZW0+DQoJCTxpdGVtIHhzaTp0eXBlPSJTZWxlY3Rl
ZEl0ZW1GaWVsZCI+DQoJCQk8ZmllbGQ+0J3QsNC30L3QsNGH0LXQvdC40LXQndCU
0KE8L2ZpZWxkPg0KCQk8L2l0ZW0+DQoJCTxpdGVtIHhzaTp0eXBlPSJTZWxlY3Rl
ZEl0ZW1GaWVsZCI+DQoJCQk8ZmllbGQ+0J3QsNC30L3QsNGH0LXQvdC40LXQn9C7
0LDRgtC10LbQsDwvZmllbGQ+DQoJCTwvaXRlbT4NCgk8L3NlbGVjdGlvbj4NCgk8
ZmlsdGVyPg0KCQk8aXRlbSB4c2k6dHlwZT0iRmlsdGVySXRlbUNvbXBhcmlzb24i
Pg0KCQkJPHVzZT5mYWxzZTwvdXNlPg0KCQkJPGxlZnQgeHNpOnR5cGU9ImRjc2Nv
cjpGaWVsZCI+0KLQvtC70YzQutC+0KDQsNC30LvQuNGH0LjRjzwvbGVmdD4NCgkJ
CTxjb21wYXJpc29uVHlwZT5GaWxsZWQ8L2NvbXBhcmlzb25UeXBlPg0KCQkJPHBy
ZXNlbnRhdGlvbiB4c2k6dHlwZT0idjg6TG9jYWxTdHJpbmdUeXBlIj4NCgkJCQk8
djg6aXRlbT4NCgkJCQkJPHY4Omxhbmc+cnU8L3Y4Omxhbmc+DQoJCQkJCTx2ODpj
b250ZW50PtCi0L7Qu9GM0LrQvtCg0LDQt9C70LjRh9C40Y88L3Y4OmNvbnRlbnQ+
DQoJCQkJPC92ODppdGVtPg0KCQkJPC9wcmVzZW50YXRpb24+DQoJCQk8dXNlclNl
dHRpbmdJRD5kNzgwNmVlNi0zZGIwLTQyZjEtYTFiZC00ZGI0Y2JiMWVlYTk8L3Vz
ZXJTZXR0aW5nSUQ+DQoJCTwvaXRlbT4NCgkJPGl0ZW0geHNpOnR5cGU9IkZpbHRl
ckl0ZW1Db21wYXJpc29uIj4NCgkJCTx1c2U+ZmFsc2U8L3VzZT4NCgkJCTxsZWZ0
IHhzaTp0eXBlPSJkY3Njb3I6RmllbGQiPtCS0LjQtNCe0L/QtdGA0LDRhtC40Lg8
L2xlZnQ+DQoJCQk8Y29tcGFyaXNvblR5cGU+SW5MaXN0PC9jb21wYXJpc29uVHlw
ZT4NCgkJCTxyaWdodCB4c2k6dHlwZT0idjg6VmFsdWVMaXN0VHlwZSI+DQoJCQkJ
PHY4OnZhbHVlVHlwZS8+DQoJCQkJPHY4Omxhc3RJZCB4c2k6dHlwZT0ieHM6ZGVj
aW1hbCI+LTE8L3Y4Omxhc3RJZD4NCgkJCTwvcmlnaHQ+DQoJCQk8dXNlclNldHRp
bmdJRD5kN2QwMzM0My1hOWViLTRhZmItYTU4OC0wMzQ1NzZkMTBhOTE8L3VzZXJT
ZXR0aW5nSUQ+DQoJCTwvaXRlbT4NCgkJPGl0ZW0geHNpOnR5cGU9IkZpbHRlckl0
ZW1Db21wYXJpc29uIj4NCgkJCTx1c2U+ZmFsc2U8L3VzZT4NCgkJCTxsZWZ0IHhz
aTp0eXBlPSJkY3Njb3I6RmllbGQiPtCe0YDQs9Cw0L3QuNC30LDRhtC40Y88L2xl
ZnQ+DQoJCQk8Y29tcGFyaXNvblR5cGU+SW5MaXN0PC9jb21wYXJpc29uVHlwZT4N
CgkJCTxyaWdodCB4c2k6dHlwZT0idjg6VmFsdWVMaXN0VHlwZSI+DQoJCQkJPHY4
OnZhbHVlVHlwZS8+DQoJCQkJPHY4Omxhc3RJZCB4c2k6dHlwZT0ieHM6ZGVjaW1h
bCI+LTE8L3Y4Omxhc3RJZD4NCgkJCTwvcmlnaHQ+DQoJCQk8dXNlclNldHRpbmdJ
RD44MTFiZmRhOC0zNTJjLTQ0MTEtYTYzZC01OTZjNzU0ZjYyZmU8L3VzZXJTZXR0
aW5nSUQ+DQoJCTwvaXRlbT4NCgkJPGl0ZW0geHNpOnR5cGU9IkZpbHRlckl0ZW1D
b21wYXJpc29uIj4NCgkJCTx1c2U+ZmFsc2U8L3VzZT4NCgkJCTxsZWZ0IHhzaTp0
eXBlPSJkY3Njb3I6RmllbGQiPtCV0YHRgtGM0KDQsNC30LvQuNGH0LjRjzwvbGVm
dD4NCgkJCTxjb21wYXJpc29uVHlwZT5FcXVhbDwvY29tcGFyaXNvblR5cGU+DQoJ
CQk8cmlnaHQgeHNpOnR5cGU9InhzOmJvb2xlYW4iPnRydWU8L3JpZ2h0Pg0KCQkJ
PHZpZXdNb2RlPkluYWNjZXNzaWJsZTwvdmlld01vZGU+DQoJCQk8dXNlclNldHRp
bmdQcmVzZW50YXRpb24geHNpOnR5cGU9InY4OkxvY2FsU3RyaW5nVHlwZSI+DQoJ
CQkJPHY4Oml0ZW0+DQoJCQkJCTx2ODpsYW5nPnJ1PC92ODpsYW5nPg0KCQkJCQk8
djg6Y29udGVudD7QotC+0LvRjNC60L7QoNCw0LfQu9C40YfQuNGPPC92ODpjb250
ZW50Pg0KCQkJCTwvdjg6aXRlbT4NCgkJCTwvdXNlclNldHRpbmdQcmVzZW50YXRp
b24+DQoJCTwvaXRlbT4NCgk8L2ZpbHRlcj4NCgk8ZGF0YVBhcmFtZXRlcnM+DQoJ
CTxkY3Njb3I6aXRlbSB4c2k6dHlwZT0iU2V0dGluZ3NQYXJhbWV0ZXJWYWx1ZSI+
DQoJCQk8ZGNzY29yOnBhcmFtZXRlcj7Qn9C10YDQuNC+0LTQntGC0YfRkdGC0LA8
L2Rjc2NvcjpwYXJhbWV0ZXI+DQoJCQk8ZGNzY29yOnZhbHVlIHhzaTp0eXBlPSJ2
ODpTdGFuZGFyZFBlcmlvZCI+DQoJCQkJPHY4OnZhcmlhbnQgeHNpOnR5cGU9InY4
OlN0YW5kYXJkUGVyaW9kVmFyaWFudCI+Q3VzdG9tPC92ODp2YXJpYW50Pg0KCQkJ
CTx2ODpzdGFydERhdGU+MDAwMS0wMS0wMVQwMDowMDowMDwvdjg6c3RhcnREYXRl
Pg0KCQkJCTx2ODplbmREYXRlPjAwMDEtMDEtMDFUMDA6MDA6MDA8L3Y4OmVuZERh
dGU+DQoJCQk8L2Rjc2Nvcjp2YWx1ZT4NCgkJCTx1c2VyU2V0dGluZ0lEPmZhZjQw
OTMzLTJkMjEtNDFmYS04ZmU2LTkzNTE4MzIyZWQzNDwvdXNlclNldHRpbmdJRD4N
CgkJCTx1c2VyU2V0dGluZ1ByZXNlbnRhdGlvbiB4c2k6dHlwZT0idjg6TG9jYWxT
dHJpbmdUeXBlIj4NCgkJCQk8djg6aXRlbT4NCgkJCQkJPHY4Omxhbmc+cnU8L3Y4
Omxhbmc+DQoJCQkJCTx2ODpjb250ZW50PtCf0LXRgNC40L7QtDwvdjg6Y29udGVu
dD4NCgkJCQk8L3Y4Oml0ZW0+DQoJCQk8L3VzZXJTZXR0aW5nUHJlc2VudGF0aW9u
Pg0KCQk8L2Rjc2NvcjppdGVtPg0KCTwvZGF0YVBhcmFtZXRlcnM+DQoJPG9yZGVy
Pg0KCQk8aXRlbSB4c2k6dHlwZT0iT3JkZXJJdGVtRmllbGQiPg0KCQkJPGZpZWxk
PtCe0YDQs9Cw0L3QuNC30LDRhtC40Y88L2ZpZWxkPg0KCQkJPG9yZGVyVHlwZT5B
c2M8L29yZGVyVHlwZT4NCgkJPC9pdGVtPg0KCQk8aXRlbSB4c2k6dHlwZT0iT3Jk
ZXJJdGVtRmllbGQiPg0KCQkJPGZpZWxkPtCU0LDRgtCwPC9maWVsZD4NCgkJCTxv
cmRlclR5cGU+QXNjPC9vcmRlclR5cGU+DQoJCTwvaXRlbT4NCgk8L29yZGVyPg0K
CTxjb25kaXRpb25hbEFwcGVhcmFuY2U+DQoJCTxpdGVtPg0KCQkJPHNlbGVjdGlv
bj4NCgkJCQk8aXRlbT4NCgkJCQkJPGZpZWxkPtCg0LDRgdGI0LjRhNGA0L7QstC6
0LDQndCU0KE8L2ZpZWxkPg0KCQkJCTwvaXRlbT4NCgkJCQk8aXRlbT4NCgkJCQkJ
PGZpZWxkPtCd0LDQt9C90LDRh9C10L3QuNC10J3QlNChPC9maWVsZD4NCgkJCQk8
L2l0ZW0+DQoJCQk8L3NlbGVjdGlvbj4NCgkJCTxmaWx0ZXI+DQoJCQkJPGl0ZW0g
eHNpOnR5cGU9IkZpbHRlckl0ZW1Db21wYXJpc29uIj4NCgkJCQkJPGxlZnQgeHNp
OnR5cGU9ImRjc2NvcjpGaWVsZCI+0JXRgdGC0YzQoNCw0LfQu9C40YfQuNGPPC9s
ZWZ0Pg0KCQkJCQk8Y29tcGFyaXNvblR5cGU+RXF1YWw8L2NvbXBhcmlzb25UeXBl
Pg0KCQkJCQk8cmlnaHQgeHNpOnR5cGU9InhzOmJvb2xlYW4iPnRydWU8L3JpZ2h0
Pg0KCQkJCTwvaXRlbT4NCgkJCTwvZmlsdGVyPg0KCQkJPGFwcGVhcmFuY2U+DQoJ
CQkJPGRjc2NvcjppdGVtIHhzaTp0eXBlPSJTZXR0aW5nc1BhcmFtZXRlclZhbHVl
Ij4NCgkJCQkJPGRjc2NvcjpwYXJhbWV0ZXI+0KbQstC10YLQotC10LrRgdGC0LA8
L2Rjc2NvcjpwYXJhbWV0ZXI+DQoJCQkJCTxkY3Njb3I6dmFsdWUgeHNpOnR5cGU9
InY4dWk6Q29sb3IiPiNGRjAwMDA8L2Rjc2Nvcjp2YWx1ZT4NCgkJCQk8L2Rjc2Nv
cjppdGVtPg0KCQkJPC9hcHBlYXJhbmNlPg0KCQk8L2l0ZW0+DQoJPC9jb25kaXRp
b25hbEFwcGVhcmFuY2U+DQoJPG91dHB1dFBhcmFtZXRlcnM+DQoJCTxkY3Njb3I6
aXRlbSB4c2k6dHlwZT0iU2V0dGluZ3NQYXJhbWV0ZXJWYWx1ZSI+DQoJCQk8ZGNz
Y29yOnBhcmFtZXRlcj7QnNCw0LrQtdGC0J7RhNC+0YDQvNC70LXQvdC40Y88L2Rj
c2NvcjpwYXJhbWV0ZXI+DQoJCQk8ZGNzY29yOnZhbHVlIHhzaTp0eXBlPSJ4czpz
dHJpbmciPtCX0LXQu9C10L3Ri9C5PC9kY3Njb3I6dmFsdWU+DQoJCTwvZGNzY29y
Oml0ZW0+DQoJPC9vdXRwdXRQYXJhbWV0ZXJzPg0KCTxpdGVtIHhzaTp0eXBlPSJT
dHJ1Y3R1cmVJdGVtR3JvdXAiPg0KCQk8b3JkZXI+DQoJCQk8aXRlbSB4c2k6dHlw
ZT0iT3JkZXJJdGVtQXV0byIvPg0KCQk8L29yZGVyPg0KCQk8c2VsZWN0aW9uPg0K
CQkJPGl0ZW0geHNpOnR5cGU9IlNlbGVjdGVkSXRlbUF1dG8iLz4NCgkJPC9zZWxl
Y3Rpb24+DQoJPC9pdGVtPg0KPC9TZXR0aW5ncz4=},
{#base64:77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTY2hl
bWFGaWxlIHhtbG5zPSIiIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx
L1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSI+DQoJPGRhdGFDb21wb3NpdGlvblNjaGVtYSB4bWxu
cz0iaHR0cDovL3Y4LjFjLnJ1LzguMS9kYXRhLWNvbXBvc2l0aW9uLXN5c3RlbS9z
Y2hlbWEiLz4NCjwvU2NoZW1hRmlsZT4=}
}
}
Очевидно, что сериализованный объект состоит из нескольких блоков данных base64.
Если извлечь первый блок base64 и декодировать его, то мы получим XML-представление схемы компоновки данных, подобное тому, что экспортируется в файл на диск, из окна редактирования СКД конфигуратора:
?<?xml version="1.0" encoding="UTF-8"?>
<SchemaFile xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema">
<dataSource>
<name>ИсточникДанных1</name>
<dataSourceType>Local</dataSourceType>
</dataSource>
<dataSet xsi:type="DataSetQuery">
<name>НаборДанных1</name>
<field xsi:type="DataSetFieldField">
<dataPath>Организация</dataPath>
<field>Организация</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Организация</d5p1:content>
</d5p1:item>
</title>
<appearance>
<item xmlns="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xsi:type="dcsset:SettingsParameterValue">
<parameter>МинимальнаяШирина</parameter>
<value xsi:type="xs:decimal">35</value>
</item>
</appearance>
</field>
...
Полная версия XML-представления СКД
?<?xml version="1.0" encoding="UTF-8"?>
<SchemaFile xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema">
<dataSource>
<name>ИсточникДанных1</name>
<dataSourceType>Local</dataSourceType>
</dataSource>
<dataSet xsi:type="DataSetQuery">
<name>НаборДанных1</name>
<field xsi:type="DataSetFieldField">
<dataPath>Организация</dataPath>
<field>Организация</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Организация</d5p1:content>
</d5p1:item>
</title>
<appearance>
<item xmlns="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xsi:type="dcsset:SettingsParameterValue">
<parameter>МинимальнаяШирина</parameter>
<value xsi:type="xs:decimal">35</value>
</item>
</appearance>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>НазначениеПлатежа</dataPath>
<field>НазначениеПлатежа</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Назначение платежа</d5p1:content>
</d5p1:item>
</title>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>Договор</dataPath>
<field>Договор</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Договор</d5p1:content>
</d5p1:item>
</title>
<appearance>
<item xmlns="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xsi:type="dcsset:SettingsParameterValue">
<parameter>МинимальнаяШирина</parameter>
<value xsi:type="xs:decimal">25</value>
</item>
<item xmlns="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xsi:type="dcsset:SettingsParameterValue">
<parameter>МаксимальнаяШирина</parameter>
<value xsi:type="xs:decimal">25</value>
</item>
</appearance>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>Плательщик</dataPath>
<field>Плательщик</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Плательщик</d5p1:content>
</d5p1:item>
</title>
<appearance>
<item xmlns="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xsi:type="dcsset:SettingsParameterValue">
<parameter>МаксимальнаяШирина</parameter>
<value xsi:type="xs:decimal">35</value>
</item>
</appearance>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>Документ</dataPath>
<field>Документ</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Документ</d5p1:content>
</d5p1:item>
</title>
<appearance>
<item xmlns="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xsi:type="dcsset:SettingsParameterValue">
<parameter>МаксимальнаяШирина</parameter>
<value xsi:type="xs:decimal">35</value>
</item>
</appearance>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>РасшифровкаНДС</dataPath>
<field>РасшифровкаНДС</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Расшифровка НДС</d5p1:content>
</d5p1:item>
</title>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>НазначениеНДС</dataPath>
<field>НазначениеНДС</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Назначение НДС</d5p1:content>
</d5p1:item>
</title>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>ЕстьРазличия</dataPath>
<field>ЕстьРазличия</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Есть различия</d5p1:content>
</d5p1:item>
</title>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>Дата</dataPath>
<field>Дата</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Дата</d5p1:content>
</d5p1:item>
</title>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>ВидОперации</dataPath>
<field>ВидОперации</field>
<title xmlns:d5p1="http://v8.1c.ru/8.1/data/core" xsi:type="d5p1:LocalStringType">
<d5p1:item>
<d5p1:lang>ru</d5p1:lang>
<d5p1:content>Вид операции</d5p1:content>
</d5p1:item>
</title>
</field>
<dataSource>ИсточникДанных1</dataSource>
<query>ВЫБРАТЬ
ДАТАВРЕМЯ(1,1,1) КАК Дата,
ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
ЗНАЧЕНИЕ(Документ.ПоступлениеБезналичныхДенежныхСредств.ПустаяСсылка) КАК Документ,
ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Плательщик,
вз1.Договор,
"" КАК РасшифровкаНДС,
"" КАК НазначениеНДС,
"" КАК НазначениеПлатежа,
Истина КАК ЕстьРазличия,
ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПустаяСсылка) КАК ВидОперации
ИЗ (
ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) КАК Договор
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.ДоговорыМеждуОрганизациями.ПустаяСсылка) КАК Договор
) КАК вз1
</query>
</dataSet>
<calculatedField>
<dataPath>ТолькоРазличия</dataPath>
<expression>Истина</expression>
<title xmlns:d4p1="http://v8.1c.ru/8.1/data/core" xsi:type="d4p1:LocalStringType">
<d4p1:item>
<d4p1:lang>ru</d4p1:lang>
<d4p1:content>Только различия</d4p1:content>
</d4p1:item>
</title>
</calculatedField>
<parameter>
<name>ПериодОтчёта</name>
<title xmlns:d4p1="http://v8.1c.ru/8.1/data/core" xsi:type="d4p1:LocalStringType">
<d4p1:item>
<d4p1:lang>ru</d4p1:lang>
<d4p1:content>Период отчёта</d4p1:content>
</d4p1:item>
</title>
<valueType>
<Type xmlns="http://v8.1c.ru/8.1/data/core">StandardPeriod</Type>
</valueType>
<value xmlns:d4p1="http://v8.1c.ru/8.1/data/core" xsi:type="d4p1:StandardPeriod">
<d4p1:variant xsi:type="d4p1:StandardPeriodVariant">Custom</d4p1:variant>
<d4p1:startDate>0001-01-01T00:00:00</d4p1:startDate>
<d4p1:endDate>0001-01-01T00:00:00</d4p1:endDate>
</value>
<useRestriction>false</useRestriction>
<denyIncompleteValues>true</denyIncompleteValues>
<use>Always</use>
</parameter>
<settingsVariant>
<name xmlns="http://v8.1c.ru/8.1/data-composition-system/settings">Основной</name>
<presentation xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:d4p1="http://v8.1c.ru/8.1/data/core" xsi:type="d4p1:LocalStringType">
<d4p1:item>
<d4p1:lang>ru</d4p1:lang>
<d4p1:content>Проверка ставки НДС в поступлениях на расчетный счет (ИНФ) v1.2</d4p1:content>
</d4p1:item>
</presentation>
</settingsVariant>
</dataCompositionSchema>
</SchemaFile>
Далее "дело в шляпе" - с XML нужно программно произвести операцию, описанную в публикации:
Смена типа набора данных СКД с сохранением полей
Итак, получается следующий алгоритм:
1) Сериализуем объект СКД;
2) Извлекаем первый блок данных base64 из сериализованного объекта СКД;
3) Декодируем base64 и получаем XML-представление СКД;
4) В XML-представлении СКД меняем тип данных набора данных на объект, удаляем текст запроса, добавляем имя объекта;
5) Кодируем модифицированный XML в base64;
6) Заменяем первый блок данных base64 сериализованного объекта, на полученный нами в п.5.
Ниже представлен листинг процедур, реализующих описанный выше алгоритм:
В параметр "ИмяОбъекта" нужно передать название объекта, который будет добавлен во внешний набор данных СКД, например "тзДанныеОтчёта".
Процедура СменаТипаНабораДанныхСКДНаОбъект(ИмяОбъекта)
Перем СтрокаДанных, СтрокаДанныхМД, Инд1, Инд2, Данные64,
ДешифрованныйСКД;
СтрокаДанных = ЗначениеВСтрокуВнутр(ЭтотОбъект.СхемаКомпоновкиДанных);
Инд1 = СтрНайти(СтрокаДанных, "{#base64:");
Инд1 = Инд1 + 8;
СтрокаДанныхМД = Сред(СтрокаДанных,1, Инд1);
Инд2 = СтрНайти(СтрокаДанных, "}",, Инд1);
Инд1 = Инд1 + 1;
Данные64 = Сред(СтрокаДанных, Инд1, Инд2 - Инд1);
ДешифрованныйСКД = ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(Данные64));
ОтредактироватьСКД(ДешифрованныйСКД, ИмяОбъекта);
Данные64 = Base64Строка(ПолучитьДвоичныеДанныеИзСтроки(ДешифрованныйСКД));
СтрокаДанныхМД = СтрокаДанныхМД + Данные64 + Символы.ПС + Сред(СтрокаДанных, Инд2);
ЭтотОбъект.СхемаКомпоновкиДанных = ЗначениеИзСтрокиВнутр(СтрокаДанныхМД);
КонецПроцедуры // СменаТипаНабораДанныхСКДНаОбъект
Процедура ОтредактироватьСКД(ДешифрованныйСКД, ИмяОбъекта)
Перем Инд1, Инд2, НовыйСКД;
Инд1 = СтрНайти(ДешифрованныйСКД, "<dataSet xsi:type=""DataSetQuery"">");
НовыйСКД = Сред(ДешифрованныйСКД, 1, Инд1 - 1) + "<dataSet xsi:type=""DataSetObject"">" +
Символы.ПС;;
Инд1 = Инд1 + 35;
Инд2 = СтрНайти(ДешифрованныйСКД, "<query>",,Инд1);
НовыйСКД = НовыйСКД + Сред(ДешифрованныйСКД, Инд1, Инд2 - Инд1) +
СтрШаблон("<objectName>%1</objectName>", ИмяОбъекта);
Инд1 = СтрНайти(ДешифрованныйСКД, "</query>",,Инд2) + 8;
НовыйСКД = НовыйСКД + Сред(ДешифрованныйСКД, Инд1);
ДешифрованныйСКД = НовыйСКД;
КонецПроцедуры // ОтредактироватьСКД
Пример использования:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Перем КомпоновщикМакет, Макет, ПроцессорКомпоновки,
ПроцессорВывода, ВнешнийНаборДанных,
тзДанныеОтчёта, НастройкиСКД;
СтандартнаяОбработка = Ложь;
КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных();
СменаТипаНабораДанныхСКДНаОбъект("тзДанныеОтчёта");
Макет = КомпоновщикМакет.Выполнить(
ЭтотОбъект.СхемаКомпоновкиДанных,
ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки(),
ДанныеРасшифровки
);
тзДанныеОтчёта = СформироватьТзДанныеОтчёта();
ВнешнийНаборДанных = Новый Структура("тзДанныеОтчёта", тзДанныеОтчёта);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных();
ПроцессорКомпоновки.Инициализировать(Макет, ВнешнийНаборДанных, ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент();
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
//ДокументРезультат.ПоказатьУровеньГруппировокСтрок(1); //Уровень 1
КонецПроцедуры // ПриКомпоновкеРезультата
Код тестировался на платформе 1С 8.3.27.1936, конфигурация 1С КА 2.5.22.132.