Имя: Пароль:
1C
1С v8
Редактирование макетов с двоичными данными
0 Leksandr
 
11.06.14
13:38
Есть общий макет. Он хранит в себе дерево метаданных по ряду справочников. Данные представлены в двоичном виде:

<?xml version="1.0" encoding="UTF-8"?>
<d1p1:ValueStorage xmlns:d1p1="http://v8.1c.ru/data">AgFTS2/0iI3BTqDV67a9oKcN7V3djtv....

Хотелось бы узнать как создаются и редактируются такие макеты (т.к. есть необходимость добавить данные ещё по одному справочнику). Как раскодировать двоичные данные, отредактировать и загрузить обратно?
1 Индиго
 
11.06.14
13:39
тебе программно или руками?
2 Leksandr
 
11.06.14
13:40
(1) любыми средствами. т.к. редактировать нужно только 1 раз, тогда можно и руками
3 nufnufcheg
 
11.06.14
13:41
1. записать в файл, посмотреть что получилось
2. засунуть в хранилище, посмотреть что получилось
3. посмотреть поиском по конфигурации, где используется этот макет и посмотреть КАК используется
4 Индиго
 
11.06.14
13:42
При добавлении макета выбираешь "Двоичные данные", показываешь из какого файла и все
5 Индиго
 
11.06.14
13:42
при редактировании сохраняешь в файл, редактируешь - загружаешь обратно
6 Leksandr
 
11.06.14
13:51
Макет имеет тип Текстовый документ, поэтому просто выгрузкой и редактированием не катит.
(3) Этот текстовый документ хранит дерево реквизитов справочников, где и как используется знаю. Т.е. при чтении этого макета через хранилище получаем деревья справочников и делаем с ними всё что хотим...

Вот часть кода:

ЧтениеXML = Новый ЧтениеXML();
  Макет = ПолучитьОбщийМакет("CRM_НастройкиПолейОтображенияСодержания");
  ЧтениеXML.УстановитьСтроку(Макет.ПолучитьТекст());
  Хранилище = ПрочитатьXML(ЧтениеXML);
  ЧтениеXML.Закрыть();
  Если ТипЗнч(Хранилище) <> Тип("ХранилищеЗначения") Тогда
   ВызватьИсключение "";
  КонецЕсли;
  ТаблицаНастройки = Хранилище.Получить();
  Если ТипЗнч(ТаблицаНастройки) <> Тип("ТаблицаЗначений") Тогда
   ВызватьИсключение "";
  КонецЕсли;
7 Leksandr
 
11.06.14
13:58
Как в принципе формируются такие макеты (xml)? Берётся дерево метаданных в виде двоичного кода, а потом прибавляются теги xml и сохраняется как макет с типом Табличный документ?