Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 06:17

Отчет по изменениям (версионирование объектов)

Автор iPahan, 27 июн 2016, 14:50

0 Пользователей и 1 гость просматривают эту тему.

iPahan

Добрый день!

Кто нибудь сталкивался с задачей формирования отчета по изменениям объектов при использовании версионирования?

Суть в чем, есть список пользователей, у пользователей периодически что-то меняется в реквизитах карточки. Необходимо сформировать отчет по всем пользователям системы с информацией "Что было" - "Что стало" на определенную дату.

Ковыряю механизм версионирования, но понять как с помощью него вытащить предыдущие данные не могу...

Подскажите куда копать?

LexaK

интересно стало глянуть как версионирование работает.
База БП 3.0 корп

1.сначала проверил и включил механизм версионирования
это константа , см. код


лкВерсия = Константы.ИспользоватьВерсионированиеОбъектов.Получить();
Сообщить(лкВерсия);

Константы.ИспользоватьВерсионированиеОбъектов.Установить(Истина);

лкВерсия = Константы.ИспользоватьВерсионированиеОбъектов.Получить();
Сообщить(лкВерсия);



2. Затем выполнил настройку версионирвания,
открыл РегистрСведений.НастройкиВерсионированияОбъектов, на примере Контрагентов настроил: Версионировать при записи

Все это дело перемежал внесением изменений в одном контрагенте, возможно еще, в настройках базы куда ткнул мышкой.

3. Затем в регистре сведений: ВерсииОбъектов у меня стали появляться записи каждый раз как я изменял контрагента.

из этого регистра не удалось ни чего нужного увидеть, все данные в хранилищах, но увидел использование этого регистра в Общей команде: История изменения.

при внимательном рассмотрении карточки/формы контрагенты под кнопкой:  Все действия, нашел кнопку: История изменений.
вот она как раз и запускает нужную форму которая показывает список всех сделанных изменения, с возможностью сверки.

В общем, все отлично работает. :zebzdr:

если помогло нажмите: Спасибо!

iPahan

Цитата: LexaK от 27 июн 2016, 18:47
интересно стало глянуть как версионирование работает.
База БП 3.0 корп

1.сначала проверил и включил механизм версионирования
это константа , см. код


лкВерсия = Константы.ИспользоватьВерсионированиеОбъектов.Получить();
Сообщить(лкВерсия);

Константы.ИспользоватьВерсионированиеОбъектов.Установить(Истина);

лкВерсия = Константы.ИспользоватьВерсионированиеОбъектов.Получить();
Сообщить(лкВерсия);



2. Затем выполнил настройку версионирвания,
открыл РегистрСведений.НастройкиВерсионированияОбъектов, на примере Контрагентов настроил: Версионировать при записи

Все это дело перемежал внесением изменений в одном контрагенте, возможно еще, в настройках базы куда ткнул мышкой.

3. Затем в регистре сведений: ВерсииОбъектов у меня стали появляться записи каждый раз как я изменял контрагента.

из этого регистра не удалось ни чего нужного увидеть, все данные в хранилищах, но увидел использование этого регистра в Общей команде: История изменения.

при внимательном рассмотрении карточки/формы контрагенты под кнопкой:  Все действия, нашел кнопку: История изменений.
вот она как раз и запускает нужную форму которая показывает список всех сделанных изменения, с возможностью сверки.

В общем, все отлично работает. :zebzdr:

Это все хорошо, когда необходимо посмотреть информацию по 1 объекту, но если необходимо вывести отчет обо всех изменениях, то данный вид отчета не поможет.

По идее, при венсионировании создается XML файл с предыдущими значениями объекта, и помещается в Хранилище в виде двоичных данных. Но как его вытащить, и использовать в своих нуждах...это загадка для меня.

LexaK

да ни какой загадки, просто на пол дня работы. у вас же есть форма которая выводит данные о сравнении по двум версиям одного объекта.
код так открытый.
просто делаете свой отчет, сначала пробегаете по РС.ВерсииОбъектов, создаете и заполняете свою таблицу значений, скажем так с расшифровкой, затем на ее основании формируете отчет.
колонки таблицы примерно такие
ПредставлениеОбъекта; Период; Пользователь; ИмяПоля, СтароеЗначение; НовоеЗнаение; ВидДействия;   - возможно еще какие поля
ВидДействия - например, Добавление, Удаление, Редактирование, ...
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск