Нужно сравнить два документа, которые находятся в двух разных базах 1С.
У документов отличается структура (только табличные части, шапка одинаковая)
В базе 1 у документа табличные части: Состав1 , Состав2
В базе 2 у документа табличная часть: Состав1

Т.е. если была изменена табличная часть Состав2 в базе 1, это не отслеживать.
Остальные реквизиты двух документов нужно сравнить, что есть изменения (база 1 и база 2).

Идея реализации следующая:

```1c
    Объект2 = Выборка.Ссылка.ПолучитьОбъект();
    Объект2.Состав2.Удалить(); // как правильно удалить табличную часть целиком? (не в документе, а в переменной Объект2)

    ЗаписьJson = Новый ЗаписьJSON();
    ЗаписьJson.УстановитьСтроку();
    СериализаторXDTO.ЗаписатьJSON(ЗаписьJson, Объект2, НазначениеТипаXML.Явное);

    JSON = ЗаписьJson.Закрыть();

    // далее посчитать хэш JSON в одной базе и другой.
```

Объект2.Состав2.Удалить(); // как правильно удалить табличную часть целиком? (не в документе, а в переменной Объект2)
Или как-то записать Объект2 в JSON без второй табличной части, не перечисляя все реквизиты?

(если вы знаете другое решение, предлагайте)
---
Мне нужно как-то исключить ненужные табличные части документа при сравнении,
поэтому решил руками перебрать все реквизиты..
пример ниже (я сделал аналогично для своего документа):

```1c
    // Создать объект записи и открыть файл, в который будет выполняться запись.

    Запись = Новый ЗаписьJSON;

    Запись.ОткрытьФайл("c:\temp\streamWrite.json", , , Новый ПараметрыЗаписиJSON(, Символы.Таб));

    // Выполнить запись значений с помощью объекта записи (Запись).

    // Записать начало нашего объекта.

    Запись.ЗаписатьНачалоОбъекта();

    // Заполнить свойство Код типа Строка.

    Запись.ЗаписатьИмяСвойства("Код");

    Запись.ЗаписатьЗначение("000000017");

    // Заполнить свойство Наименование типа Строка.

    Запись.ЗаписатьИмяСвойства("Наименование");

    Запись.ЗаписатьЗначение("ОАО Топаз");

    // Заполнить свойство Телефоны типа Массив.

    // Поэтому после имени свойства записываем массив, состоящий из значений – строк.

    Запись.ЗаписатьИмяСвойства("Телефоны");

    Запись.ЗаписатьНачалоМассива();

    Запись.ЗаписатьЗначение("8-999-777-55-33");

    Запись.ЗаписатьЗначение("+71112223344");

    Запись.ЗаписатьКонецМассива();

    // Заполнить свойство ОбъемПродаж типа Число.

    Запись.ЗаписатьИмяСвойства("ОбъемПродаж");

    Запись.ЗаписатьЗначение(5000000);

    // Заполнить свойство Поставщик типа Булево.

    Запись.ЗаписатьИмяСвойства("Поставщик");

    Запись.ЗаписатьЗначение(Ложь);

    // Записать конец нашего объекта.

    Запись.ЗаписатьКонецОбъекта();

    // Завершить работу с файлом.

    Запись.Закрыть();
```

ЗаписьJson = Новый ЗаписьJSON;
ЗаписьJson.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб));
ЗаписьJson.ЗаписатьНачалоОбъекта();
ЗаписьJson.ЗаписатьИмяСвойства("Док");
ЗаписьJson.ЗаписатьНачалоОбъекта();
// и т.д.
---
Никак. Можно только очистить.
---
делайте два сравнения, по табличным частям Состав1 и по Шапкам
все это можно выгрузить и превратить в строку Джинс,
затем просто сравнить две строки. вам же сам факт равенства нужен?
---
вам же сам факт равенства нужен?
да.

Нужен пример.
---
Нужен пример. За 20 копеек? "Малавата будет!"

Максимум - подсказка: реквизиты шапок сравнивать as is, а табличные части выгрузить в таблицы значений и почитать вот это - там сплошь примеры! :-)
---
```1c
    Объект2 = Выборка.Ссылка.ПолучитьОбъект();

    ЗаписьJson = Новый ЗаписьJSON();
    ЗаписьJson.УстановитьСтроку();
    СериализаторXDTO.ЗаписатьJSON(ЗаписьJson, Объект2);

    JSON = ЗаписьJson.Закрыть();

    // на другой стороне читай как структура (не через сериализатор)

    ЧтениеJSON = Новый ЧтениеJSON;

    ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
    обычнаяструктура = ПрочитатьJSON(ЧтениеJSON);

    ЧтениеJSON.Закрыть();

    //затем обход ключей и значений
```
---
Ссылки в джейсон? Ну-ну...
---
Ошибка в строке
обычнаяструктура = ПрочитатьJSON(ЧтениеJSON);
---
Говорят, что в случае запора полезно спрыгнуть с крыши - срабатывает инерция внутреннего содержимого при торможении внешней оболочки.

Ты всегда сразу применяешь любые советы, не разобравшись в их сути?

Нельзя ссылки в джейсон!
---
Читать нужно в Соответствие.
ПрочитатьJSON(<ЧтениеJSON>, <ПрочитатьВСоответствие> = истина)

Вот ссылка :

"ДокументОснование": {
"#type": "jcfg:DocumentRef.РезервПриходная",
"#value": "8b19369a-5cc0-11df-8d7a-00151719eb45"
},

ключ = "#type" Знаечение = "jcfg:DocumentRef.РезервПриходная",
---
Продолжайте, не останавливайтесь...
---
Читать нужно в Соответствие.
ПрочитатьJSON(<ЧтениеJSON>, <ПрочитатьВСоответствие> = истина)
---
Мне нужно как-то исключить ненужные табличные части документа при сравнении,
поэтому решил руками перебрать все реквизиты..
пример ниже (я сделал аналогично для своего документа):

```1c
    // Создать объект записи и открыть файл, в который будет выполняться запись.

    Запись = Новый ЗаписьJSON;

    Запись.ОткрытьФайл("c:\temp\streamWrite.json", , , Новый ПараметрыЗаписиJSON(, Символы.Таб));

    // Выполнить запись значений с помощью объекта записи (Запись).

    // Записать начало нашего объекта.

    Запись.ЗаписатьНачалоОбъекта();

    // Заполнить свойство Код типа Строка.

    Запись.ЗаписатьИмяСвойства("Код");

    Запись.ЗаписатьЗначение("000000017");

    // Заполнить свойство Наименование типа Строка.

    Запись.ЗаписатьИмяСвойства("Наименование");

    Запись.ЗаписатьЗначение("ОАО Топаз");

    // Заполнить свойство Телефоны типа Массив.

    // Поэтому после имени свойства записываем массив, состоящий из значений – строк.

    Запись.ЗаписатьИмяСвойства("Телефоны");

    Запись.ЗаписатьНачалоМассива();

    Запись.ЗаписатьЗначение("8-999-777-55-33");

    Запись.ЗаписатьЗначение("+71112223344");

    Запись.ЗаписатьКонецМассива();

    // Заполнить свойство ОбъемПродаж типа Число.

    Запись.ЗаписатьИмяСвойства("ОбъемПродаж");

    Запись.ЗаписатьЗначение(5000000);

    // Заполнить свойство Поставщик типа Булево.

    Запись.ЗаписатьИмяСвойства("Поставщик");

    Запись.ЗаписатьЗначение(Ложь);

    // Записать конец нашего объекта.

    Запись.ЗаписатьКонецОбъекта();

    // Завершить работу с файлом.

    Запись.Закрыть();
```

ЗаписьJson = Новый ЗаписьJSON;
ЗаписьJson.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб));
ЗаписьJson.ЗаписатьНачалоОбъекта();
ЗаписьJson.ЗаписатьИмяСвойства("Док");
ЗаписьJson.ЗаписатьНачалоОбъекта();
// и т.д.