Навеяно публикацией
В отличии от оригинальной публикации значения до редактирования читаются одним запросом, как рекомендуют стандарты 1С.
Функция ОбъектМодифицирован(Объект)
МетаданныеОбъекта = Объект.Метаданные();
Если Метаданные.Справочники.Содержит(МетаданныеОбъекта) Тогда
Вид = "Справочник";
ИначеЕсли Метаданные.Документы.Содержит(МетаданныеОбъекта) Тогда
Вид = "Документ";
Иначе
ВызватьИсключение СтрШаблон(
НСтр("ru='Проверка модифицированности для объекта %1 не предусмотрена.'"),
МетаданныеОбъекта
);
КонецЕсли;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| *
|ИЗ
| " + Вид + "." + МетаданныеОбъекта.Имя + "
|ГДЕ
| Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Возврат ПроверитьМодифицированностьРеквизитов(Объект, РезультатЗапроса, "");
КонецФункции
Функция ПроверитьМодифицированностьРеквизитов(Объект, РезультатЗапроса, Префикс)
НеобрабатываемыеРеквизиты = СтрРазделить("Ссылка,НомерСтроки", ",");
Выборка = РезультатЗапроса.Выбрать();
НомерСтроки = 0;
Пока Выборка.Следующий() Цикл
ТабличнаяЧасть = ?(Не ПустаяСтрока(Префикс), Объект[Префикс], Неопределено);
Если ТабличнаяЧасть <> Неопределено И Выборка.Количество() <> ТабличнаяЧасть.Количество() Тогда
Возврат Истина;
КонецЕсли;
НомерСтроки = НомерСтроки + 1;
Для каждого Колонка Из РезультатЗапроса.Колонки Цикл
Если НеобрабатываемыеРеквизиты.Найти(Колонка.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
ЗначениеДоРедактирования = Выборка[Колонка.Имя];
ТипЗначения = ТипЗнч(ЗначениеДоРедактирования);
Если ТипЗначения = Тип("ХранилищеЗначения") Тогда
// ХранилищеЗначения не проверяем.
Продолжить;
ИначеЕсли ТипЗначения = Тип("РезультатЗапроса") Тогда
Если ПроверитьМодифицированностьРеквизитов(Объект, ЗначениеДоРедактирования, Колонка.Имя) Тогда
Возврат Истина;
КонецЕсли;
Иначе
ЗначениеПослеРедактирования = ?(ТабличнаяЧасть = Неопределено,
Объект[Колонка.Имя],
ТабличнаяЧасть[НомерСтроки - 1][Колонка.Имя]
);
Если ЗначениеДоРедактирования <> ЗначениеПослеРедактирования Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат Ложь;
КонецФункции
ПроверитьКодСправочникаПоОрганизации (БСП)
ПроверитьНомерДокументаПоДате (БСП)
ПроверитьНомерДокументаПоДатеИОрганизации (БСП)
Проверка Модифицированности объекта
ПроверитьНомерБизнесПроцессаПоДате (БСП)
ПроверитьНомерБизнесПроцессаПоДатеИОрганизации (БСП)
Проведение документа с проверкой заполнения
Как получить дату и время создания элемента справочника, документа по ссылке
#1, 07 июня 2023 17:53
Для конфигураций с БСП нет смысла, можно юзать следующую функцию
ОбщегоНазначенияУТ.ИзмененияДокумента