В отчете используется типовой механизм версионирования объектов, поэтому для его работы необходимо включить этот функционал.
Для получения результата отчета необходимо указать период, за который будут выводиться изменения объектов, указать требуемые справочники или документы.
В отчете имеется возможность отбирать объекты по заданному параметру, например требуется ГлавБуху узнать кто в закрытом периоде правил документы — выбираем нужный вид документа, указываем период больше даты закрытия периода (например закрыли март первого апреля. соответственно ставим период больше первого апреля), а в отборе ставим дату документа меньше даты окончания закрытого периода (31 марта в нашем примере).
Или другой пример, когда администратору требуется выяснить кто что правил за определенный период в определенных объектах ИБ.
Отчет реализован на управляемых формах под конфигурацию ERP 2, БП 3.0, УТ 11, КА 2.0
Преимуществом отчета является возможность отбора по параметрам объектов и вывод в одном окне изменений по отобранному ряду объектов. Типовой функционал позволяет получить информацию по изменениям только по одному объекту.
Для более быстрого выполнения отчета рекомендуется устанавливать более точный отбор по типам объектов базы данных либо более короткий период выборки.
Тестирование производилось на конфигурации Бухгалтерия предприятия 3.0 (3.0.43.253) и платформе 1С:Предприятие 8.3 (8.3.10.2561). так же протестировано на конфигурациях 1С:ERP Управление предприятием 2 (2.4.5.118), Комплексная автоматизация, редакция 2 (2.4.5.118), Управление Торговлей 11 (11.4.3.167)
Версия отчета для обычных форм: //infostart.ru/public/833067/
Функция ОтобратьОбъектыСервер()
…
Выборка = Документы[ОтобранныйОбъект.Значение].Выбрать();
…
Пока Выборка.Следующий() Цикл
НоваяСтрока = РезультатОтбора.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
КонецЦикла;
———————————————
Работает долго заполнение свойств (если несколько сот тыс. документов или весь период несколько лет), т.е. выборка происходит за весь период.
Предлагаю в шапку обработки добавить второй период, где можно задать период для выборки документов (РезультатОтбора), что немного сократит время обработки.
Например:
Выборка = Документы[ОтобранныйОбъект.Значение].Выбрать(ДатаНачало, ДатаОкончания);
(1)
Юрий, задать период для выборки документов можно во вкладке отбор, задав два отбора: дата документа больше и дата документа меньше, соответственно, в выборку попадут только документы удовлетворяющие этому отбору, также можно сократить выборку задав отбор и по любому другому реквизиту документа или справочника!
Спасибо, но я это пробовал использовать и этот обор влияет только на дату КОГДА ИЗМЕНЯЛИ документы, а не на отбор по дате самих документов, которые выбираются и обрабатываются за ВЕСЬ ПЕРИОД:
Выборка = Документы[ОтобранныйОбъект.Значение].Выбрать();
Т.е. есть дата когда я изменял эти документы и даты когда были созданы эти документы. Да обработка отфильтрует и покажет результаты по дате изменений, но при этом выборка и заполнение свойств обрабатывает ВЕСЬ ПЕРИОД:
Пока Выборка.Следующий() Цикл
НоваяСтрока = РезультатОтбора.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
КонецЦикла;
Как уже писал сотен тыс. документов или за несколько лет. Например по вашему отбору я укажу весь 2018г. И обработка мне покажет только изменения которые пользователи делали в 2018 году, но при этом лишнее время тратится на обработку (заполнение свойств) за 20хх — 2018г.г. А мое предложение сократить время за счет отбора даты по созданию документов. Тогда я мог бы указать во втором периоде только 2018 г. или 2017-2018г.г., что сократит время обработки.
Выборка = Документы[ОтобранныйОбъект.Значение].Выбрать(ДатаНачало, ДатаОкончания), где указвается период по дате создания документов (если пользователь обработки анализирует документы, а не справочники).
При Вашем желании или если любопытно, могу выслать уже работающий вариант Вашей обработки с моим предложением. Хотя там конечно ни чего сложного.
Конечно мое предложение актуально для баз больших объемов. И как бы Вы не рекомендовали в своей обработке применять оптимальный отбор , чтобы обработка быстрей работала, при больших объемах мое замечание не избежать, по затрате времени в холостую всех документов (выбранного типа) за весь период по дате создания.
(3)
Да, Юрий, я Вас понял, действительно в обработке идет подбор выбранных типов документов за весь период, а затем компануется и отбирается в СКД…
Ваш вариант хороший, но работать будет только для документов…нужно подумать как оптимизировать обработку..
Вашей обработке цены нет, а Вы ее за 1 мани. Там есть похожая обработка за 2500 руб.. Там свои плюсы, но плюсы непринципиальные для тех кому такая цена непомерная.
Спасибо, Юрий! подумаю о поднятии цены! =)))
Бесценность Вашей обработки безусловно кроме функционала и результата, еще и в ее дешевизне, в смысле очень доступная для многих 🙂
Скажите, для ERP отработает? В преамбуле заявлено, но далее в описании я не нашла.
(8) Светлана, отчет должен работать и на ERP2, но все может быть, Вы мне напишите релиз вашей программы, я протестирую и отпишусь по результатам.
(8) Светлана, протестил на 1С:ERP Управление предприятием 2 (2.4.5.118) — отчет работает, пользуйтесь!
Подскажите, а есть отбор по номенклатуре для документов?
(11) Нет, отбор производится по реквизитам документа без табличных частей.
1. Заменил у себя следующий кусок кода:
//| И ВерсииОбъектовПервые.НомерВерсии = 1
| И ВерсииОбъектовПервые.НомерВерсии = ВерсииОбъектов.НомерВерсии — 1
Почему? Если взять отбор изменений по дате например один день, то мы видим сравнение только первого и последнего вариантов («Изменения между версией 1 и 7» когда изменения были и в другие дни), а реально нужно видеть сравнение последнего варианта и предыдущего, мы же выбрали один день чтобы видеть какие изменения были в этот день (пример «Изменения между версией 6 и 7») если конечно 1-5 варианты не были за выбранный день.
2. Иногда ошибка, которую не определил в этом месте:
Функция РазборПредставленияОбъектаXML(ДанныеВерсии, Ссылка)
…
ЧтениеXML.УстановитьДвоичныеДанные(ДвоичныеДанные);
…
Может после этого моего изменения или ошибка еще была ранее.
Внес следующие изменения (звездочками обрамление измененного кода):
Функция СформироватьОтчет(..)
…
Пока Выборка.Следующий() Цикл
…
Если НЕ ВерсияОбъекта = Неопределено Тогда
********
Попытка
Результат = РазборПредставленияОбъектаXML(ВерсияОбъекта, Выборка.Объект);
Исключение
Продолжить;
КонецПопытки;
********
…
Если ЗначениеОбъекта <> Выборка.Объект Тогда
…
Если Выборка.НомерВерсии > 1 Тогда
ВерсияОбъекта1 = Выборка.ВерсияОбъекта1.Получить();
*******
Попытка
Результат1 = РазборПредставленияОбъектаXML(ВерсияОбъекта1, Выборка.Объект);
Исключение
Продолжить;
КонецПопытки;
*******
(13)
Добрый день, Юрий!
я строил в отчете такую логику: по заданному периоду в результат выводятся объекты, изменяемые в этот период, но изменения выводятся по отношению к оригиналу.
а ошибка возможно стала вылетать из-за произведенных изменений:
«//| И ВерсииОбъектовПервые.НомерВерсии = 1
| И ВерсииОбъектовПервые.НомерВерсии = ВерсииОбъектов.НомерВерсии — 1″, но это нужно разбираться..и при данных изменениях в отчет ведь не попадут изменения сделанные в выбранный день, но у которых НомерВерсии = 1 или я ошибаюсь?
День добрый!
У меня все работает. Например когда пользователь хочет узнать ПОСЛЕДНИЕ изменения, а в выбранный период не попали варианты 1,2,3, но попали 4 и 5, то увидим «Изменения между версией 4 и 5». Т.е. какие варианты попадут в выбранный период такие варианты и будут сравниваться. Если варьируем разными периодами то можем увидеть все варианты.
Если ничего не менять, то всегда будем видеть Ваш вариант между 1-ым и последним вариантами. Например «Изменения между версией 1 и 5». В результате не увидим изменения между 1-2; 2-3; 3-4 и 4-ым и 5-ым вариантом, если варианты 1,2,3,4 не попали в выбранный период
Спасибо, купила.
Коллеги а есть отчет для ERP, который работает как в УПП была встроенная история версий объекта? Когда выделяешь пару версий, и в таблице показывалось сравнение по измененным объектам с «заливкой» цветами изменений.
(16) вроде что-то такое когда-то попадалось в поиске, но не скачивал..
(16) А вообще зачем Вам такой отчет, когда есть типовой, который вызывается через сам объект — История изменений
По справочникам не показывает историю версий (по включенным для версионирования я имею в виду), в частности организации и контрагенты
(19) да вроде все отрабатывает..может у Вас не было изменений?
Ваш отчет отрабатывает (который я скачала).
Я отвечала на вопрос — «А вообще зачем Вам такой отчет, когда есть типовой, который вызывается через сам объект — История изменений»,
в том то и дело , что без вашего отчета — через сам объект справочника в типовой erp (из элемента справочника Организации например или Контрагенты ) я не могу вызвать историю изменений, версионирование настроено. Ваш отчет то показал несколько версий.
В документах — да, включается возможность вызвать Историю, в справочниках я не нашла.
(21) для примера посмотрите в карточке контрагента во вкладочке «Еще»..возможно там прячется.
Спасибо, по контрагентам нашла. Из карточки, только не там где привычная кнопка ЕЩЕ, а выше где гипер-ссылки на банковские счета, договоры, подписки и еще…
А вот изменения по справочнику Организации типовым способом не смогла найти.
(23) ERP нет под рукой, но, думаю, в УТ идентично:
(24) Все, спасибо громадное! Лошара я-)) Во-первых по организациям смотрела по кнопке Еще не из карточки организации, а журнала списков организаций, во вторых восстанавливала данные для проверки из копии с включенным версионированием позже по дате.
Добрый день, скачала отчет, в надежде анализировать строки ТЧ, но этого функционала нет..плохо
(26) Добрый день, только завтра смогу посмотреть в чем причина, напишу Вам!
(26) В отчет добавлена возможность анализа изменения строк табличной части.
в модуле формы:
//Для каждого РеквизитТЧ Из СтрокаТЧНовая Цикл
Для каждого РеквизитТЧ Из СтрокаТЧ Цикл
У меня ошибка. Платформа 8.3.13.1513
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(717)}: Ошибка при вызове метода контекста (УстановитьДвоичныеДанные)
ЧтениеXML.УстановитьДвоичныеДанные(ДвоичныеДанные);
по причине:
Несоответствие типов (параметр номер ‘1’)
по причине:
Несоответствие типов (параметр номер ‘1’)
Несоответствие типов (параметр номер ‘1’)
(29) проверил на платформе 8.3.13.1513 управление торговлей — полет нормальный! все работает..на какой конфигурации запускаете? у Вас типовая конфигурация, доработок не было? может какие-то отборы дополнительные делаете??
(30)нет стандартный запускаю.
Как тут описано добавила вчера, заработал не знаю насколько правильный.
1. Заменил у себя следующий кусок кода:
Почему? Если взять отбор изменений по дате например один день, то мы видим сравнение только первого и последнего вариантов («Изменения между версией 1 и 7» когда изменения были и в другие дни), а реально нужно видеть сравнение последнего варианта и предыдущего, мы же выбрали один день чтобы видеть какие изменения были в этот день (пример «Изменения между версией 6 и 7») если конечно 1-5 варианты не были за выбранный день.
2. Иногда ошибка, которую не определил в этом месте:
Показать
Подскажите, когда формирую по контрагенту, адрес выдает кучу строк. Можно как-то заполнять только представление
Нет, к сожалению обработка как видит изменения, так их и выводит, изменения так записываются в базе, поэтому так и происходит их вывод.
При перепроведении (без изменений к самом документе) документа и формировании отчета
И в догонку вопрос: Если обьект новый, почему он вообще не отображается в отчетах?
(34) в ближайшее время разберусь с этой ситуацией.
(35) данный отчет выводит только изменения объектов, т.к. в новом объекте не было изменений, то и в отчет ничего не попадает.
(37)
Причем изменения то получаются, но проверка ставится на номер версии. Этот момент доделали, лечится небольшой заглушкой проверки номера версии, ВЕрсия №1 — Всегда создание объекта. Его можно не прокидывать, а также сообщать со ссылкой на объект с комментарием, что объект новый.
(36)
А вот этот момент повторяется только на серверных базах.
Причем без разницы, новый документ создается и проводится, или старый перепроводится. Факт такой, что перепроведение — без изменения — выдает такую ошибку. Связано с тем, насколько я понял,что перепроведение без изменений не пишет в регистр xml данных, просто отражает факт изменения.
У себя вылечили заглушкой проверки, опять же, с комментарием что «Что то менялось, скорее всего перепроводилось». Т.к. все остальные изменения корректно обрабатываются.
НО хотелось бы корректно это обработать.
(39) Добрый день, коллеги, смоделировал у себя на УТ11 такую ситуацию, перепровел старый документ, отчет отрабатывает без ошибок.
(40)
БП 3, КОРП, последний релиз, Постгрес, сервер 1С х64.
Работает только с заглушкой
(41) к сожалению, могу проверить только на скуле, все работает без ошибок..видимо по-разному отрабатывает на разных серверах…