При работе в УТ (версия 11.1.9.66) столкнулись с тем, что менеджеры частенько резервируют товар почем зря, а затем потихоньку отменяют резервы, если продать не удалось. Для анализа подобных случаев и был разработан этот отчет. Он сначала выбирает данные из типового в УТ 11 регистра сведений "ВерсииОбъектов". Затем для тех документов, у которых номер начальной версии не совпадает с номером конечной версии (то есть, объект был кем то затронут) - считывает содержание начальной и конечной версий. Затем сравнивает эти содержания, т.е. данные документов "начальной" и "конечной" версий. В случае, если произошла отмена проведения документа, либо статус заказа поменяли на "закрыт" - в отчет попадают все строки этого заказа. В случае, если изменения касались конкретных строк (были удалены строки, либо поставлена галка "Отменено" в строке, либо уменьшено количество) - в отчет попадут только эти строки заказа.
Анализу подвергаются заказ клиента, заказ на перемещение, заказ на сборку. Для некоторого упрощения - не анализирую вариант обеспечения, указанный в строке заказа (если хотим анализировать - в функции "ЭтоХорошийВариантОбеспечения" надо убрать возврат "Истина" в самом начале).
Работоспособность отчета проверял и на свежей версии УТ 11 11.3.4.67 от 31/08/2017
Ценность отчета в том, что он показывает, как работать с содержанием версий объектов - то есть, как считать из версии значения реквизитов шапки и табличной части. До этого на Инфостарте встречал только отчеты, использующие регистр сведений "Версии объектов". Из них было только понятно, что "в объекте что то поменялось". А вот что именно, и как это анализировать - такого не встречал.
Важно: также этот пример демонстрирует использование таблицы значений как источника для компоновки данных. Причем для УФ 1С 8.3. Многие обработки по этой теме на Инфостарте устарели.
То, что отчет показывает резервы, снятые за период - это исключительно в качестве примера. Механизмы сравнения содержаний версий объектов, и использования таблицы значений как источника данных для КД можно использовать для любых иных целей.