Как перед записью проверить изменил ли пользователь табличную часть документа?
Перебрать все в цикле можно конечно, только есть ведь метод эффективней, подскажите пожалуйста.
---
в модуле ОбщегоНазначения метод КоллекцииИдентичны уже 100500 лет решает подобные задачи.
правда, ваша борьба с ветряной мельницой забавна, особенно если верить, что эта борьба реальна.
---
самый суровый и верный варик:

НаСервере

Ссылка.Тч в ВТ1
Объект.Тч в ВТ2

Сравнить запросом ВТ1 и ВТ2
---
А как в запросе получить Объект.ТЧ чтобы поместить во временную таблицу?
---
Например,

```1c
    ТзИзТчОбъекта = РеквизитФормыВЗначение("Объект").Товары.Вызрузить();
```

или более тоньше

```1c
    ТзИзТчОбъекта = ДанныеФормыВЗначение(Объект.Товары, Тип("ТаблицаЗначений"));
```
---
Вариант из (2) наиболее понятный и простой в реализации. Можно ловить интерактивные изменения, но это вариант требует создания лога изменений, сравнений с первоначальными значениями при изменении строк. В общем всяких структур, обработчиков и некой логики. Я так делал, но для другой задачи. Без острой необходимости не советую.
---
модифицированность()?
---
Модифицированность к форме можно применить? А к табличной части?
---
https://infostart.ru/public/326983/

Можно тут посмотреть
---
Спасибо всем большое, сделал так:

```1c
    Функция ПроверитьИзмененияТЧ(СсылкаТовары, ЭтотОбъектТовары)
    Для Каждого Строка Из СсылкаТовары Цикл
    СтрокаЭтотОбъектТовары = ЭтотОбъектТовары.Найти(Строка.Номенклатура, "Номенклатура");
    Если СтрокаЭтотОбъектТовары = Неопределено Тогда
    Возврат Истина;
    КонецЕсли;
    Если
    Строка.ЕдиницаИзмерения = СтрокаЭтотОбъектТовары.ЕдиницаИзмерения И
    Строка.Количество = СтрокаЭтотОбъектТовары.Количество И
    Строка.Коэффициент = СтрокаЭтотОбъектТовары.Коэффициент И
    Строка.НомерСтроки = СтрокаЭтотОбъектТовары.НомерСтроки И
    Строка.Размещение = СтрокаЭтотОбъектТовары.Размещение И
    Строка.СтавкаНДС = СтрокаЭтотОбъектТовары.СтавкаНДС И
    Строка.Сумма = СтрокаЭтотОбъектТовары.Сумма И
    Строка.СуммаНДС = СтрокаЭтотОбъектТовары.СуммаНДС И
    Строка.Цена = СтрокаЭтотОбъектТовары.Цена
    Тогда Изменения = Ложь
    Иначе Возврат Истина
    КонецЕсли;
    КонецЦикла;
    Если Изменения = Ложь Тогда
    Возврат Ложь
    КонецЕсли;
    КонецФункции,
```

работает, если это грубо напишите пожалуйста почему
---
если это решает задачу и вас не станут бить за слабый просчет вариков, то без разницы грубо или нет.
это ведь не секретная конфа, а ларек на Мойке, нэ?
так что, чтобы потроллить вашего приемника этого костыля вполне достаточно.
---
Нашел такую ошибку, пользователь может добавить строку и это не будет изменением, дописал в начале функции условие:
        Если СсылкаТовары.Количество()<> ЭтотОбъектТовары.Количество() Тогда
      Возврат Истина
 КонецЕсли;
---
Нашел еще одну ошибку, если в ТЧ две или больше строк с одной номенклатурой, работает не правильно. Вместо метода Найти() использую НайтиСтроки, и, он помещает их в массив. Сейчас решаю задачу сравнения двух массивов, пока ищу решение.
---
в модуле ОбщегоНазначения метод КоллекцииИдентичны уже 100500 лет решает подобные задачи.
правда, ваша борьба с ветряной мельницой забавна, особенно если верить, что эта борьба реальна.
---
Спасибо, то что нужно, решать проблему было интересно, но время имеет значение