Фиксация изменений объекта
Нужно было фиксировать изменения объекта, чтобы измененные объекты повторно выгружать в файл обмена с Bitrix.
Использовал план обмена Полный, т.к. там есть все документы, которые мне нужно.

Пришлось делать видимым поле «Код», оно невидимо, а без него узел не создается. Люблю 1С.
Столкнулся с тем, что 1С при перезаписи обмена регистрирует его в плане обмена.
Походил отладчиком, походил, нашел, что изменения завязаны на ПКС, в общем, все как всегда у 1С — сложно.
Тогда покопал в сторону правил регистрации. Впервые их настраивал, если честно, но ничего, не боги горшки обжигают.
Сохранил правила регистрации из конфигурации:

Открыл из в КД, добавил ветку Документы и туда — нужный мне документ:

К сожалению, в БП 3.0 не нашел функции, которая бы сравнивала текущий записываемый объект с его слепком в базе. Пришлось набросать самому, причем максимально внимательно, т.к. прогоны делал выгружая правила регистрации в рабочую базу:

Сообщения сначала были раскомментированы, я записывал документ и смотрел на сообщения. Потом проверил, что в случае отказа документ действительно не регистрируется на плане обмена (по кнопочке Параметры синхронизации данных — Состав отправляемых данных).
Код придется скопировать во все документы, спасибо, их у меня всего три.
Чтобы другие документы не регистрировались, по идее нужно создать на каждый из них правило или банально проигнорировать. Можно в конце выгрузки на сайт сделать очистку плана от лишних данных, как вариант.
Вот код текстом, коллеги:
//Проверка модифицированности реквизитов шапки и ТЧ
//+++ Осипов проверка изменен объект или нет, 2020
Если Объект.ЭтоНовый() Или Объект.ОбменДанными.Загрузка Тогда
//Сообщить(» Новый будет зарегистрирован:» + Объект);
Иначе
ЕстьИзменения = ложь;
ПредОбъект = Объект.Ссылка.ПолучитьОбъект();
МД = Метаданные.НайтиПоТипу(ТипЗнч(Объект));
Для Каждого МДРеквизит Из МД.Реквизиты Цикл
Если Объект[МДРеквизит.Имя] <> ПредОбъект[МДРеквизит.Имя] Тогда
ЕстьИзменения = истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если НЕ ЕстьИзменения Тогда
Для Каждого МДТЧ Из МД.ТабличныеЧасти Цикл
Если ЕстьИзменения Тогда Прервать; КонецЕсли;
ТекТЧ = Объект[МДТЧ.Имя]; ВсегоТЧ = ТекТЧ.Количество();
ПредТЧ = ПредОбъект[МДТЧ.Имя]; ВсегоПредТЧ = ПредТЧ.Количество();
Если ВсегоТЧ <> ВсегоПредТЧ Тогда
ЕстьИзменения = истина;
Прервать;
КонецЕсли;
ТекСч = 0;
Для Каждого ТекСтрока ИЗ ТекТЧ Цикл
ПредСтрока = ПредТЧ[ТекСч]; ТекСч = ТекСч + 1;
Если ЕстьИзменения Тогда Прервать; КонецЕсли;
Для Каждого МДРеквизит Из МДТЧ.Реквизиты Цикл
Если ТекСтрока[МДРеквизит.Имя] <> ПредСтрока[МДРеквизит.Имя] Тогда
ЕстьИзменения = истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Если ЕстьИзменения Тогда
//Сообщить(» Зарегистрирован будет:» + Объект);
Иначе
//Сообщить(» Зарегистрирован не будет:» + Объект);
Отказ = истина;
КонецЕсли;
КонецЕсли;
//— Осипов проверка изменен объект или нет, 2020