История версий объектов

22.02.19

База данных - Журнал регистрации

Подсистема для записи и хранения изменений любых объектов ссылочного типа. Формирует хронологию работы пользователей с базой данных. Позволяет произвести быстрый поиск версии объекта БД по указанным параметрам и восстановить данные выбранной версии. Протестирована в конфигурации ЗУП, редакция 2.5 на платформе 1С:Предприятие 8.2 (8.2.19.130). Обычные формы. В поставке выгрузка тестовой демонстрационной базы и файл CF c объектами подсистемы.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Выгрузка демонстрационной базы
.dt 97,83Mb
2 1 850 руб. Купить
Пустая конфигурация с объектами подсистемы
.cf 106,25Kb
18 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

В течение моей работы в сфере разработки и сопровождения различных конфигураций 1С вопрос, кто и когда изменил тот или иной объект базы, возникал везде и всегда. В крупных корпорациях, где число пользователей информационных систем может достигать нескольких сотен и даже тысяч, а изменение справочной и отчетной информации может повлечь серьезные последствия для бизнеса, возможность отслеживания истории этих изменений должна быть обязательно.
Основная польза подсистем регистрации истории изменения данных в том, что они выполняют функцию контроля качества работы с данными и существенно сокращают процент их ошибочного изменения, случайного либо умышленного. Во-вторых, если уж такое произошло, хранилище истории позволяет быстро восстановить испорченные объекты или скомпенсировать последствия их изменения. Кроме этого история предоставляет важные статистические сведения, позволяющие анализировать и корректировать рабочие процессы, получать показатели производительности сотрудников и пр.
Конечно, за все в этом мире приходится платить. В случае хранения истории - это в основном дисковое пространство. Временная задержка при записи объектов для представленной системы составляет около 3-5% общего времени (зависит от используемого оборудования).

Назначение разработки


Разработка предоставляет возможность записи и хранения изменений любых объектов ссылочного типа. Формирует хронологию работы пользователей с базой данных. Позволяет произвести быстрый поиск версии объекта БД по указанным параметрам и восстановить данные выбранной версии.

Состав подсистемы

  • Обработка "ВерсииОбъектовБД" - основной объект подсистемы
  • Регистр сведений "ХранилищеВерсий"
  • Подписки на события "ИсторияИзменения_Документы", "ИсторияИзменения_Справочники"
  • Общий модуль "ИсторияВерсийОбъектов" содержит обработчики подписок и сервисные функции
  • Служебный справочник хранения настроек "ДопКонстанты"


К публикации приложена пустая конфигурация с объектами подсистемы регистрации версий объектов.

Просмотр истории изменений объектов

Открытие формы отчета по истории справочника:

Форма истории версий:


В левой части формы отображения истории расположен список версий с указанием номера версии, даты и автора изменения и краткое описание изменений относительно предыдущей версии. В правой части формы - панель подробного описания изменений выбранной версии.

Вызов истории версий документа:

История изменения выбранного документа:


По кнопке "Отбор" открывается форма отбора версий. Возможен отбор по периоду изменений, по автору, по имени или значению выбранного реквизита, отбор измененных строк выбранной табличной части по набору значений ключевых полей, по указанному значению выбранной колонки.

Отбор версий с изменением значения реквизита "Ответственный":

Результат отбора версий с изменением ответственного:

Отбор измененных строк с указанным значением ключевого поля:

Результат отбора строк по ключу:


Если в истории по ключевому набору полей найдена только одна строка, то отображаются только эти ключевые поля и поля с измененными значениями.

Откат изменений объекта


Кнопка "Вернуться к предыдущей версии" возвращает данные обекта в состояние на момент перед изменениями версии, выбранной в списке.


 

Результат восстановления данных:


Восстановление данных регистрируется в новой версии истории изменения восстановленного объекта.

Включение/выкл записи истории


По кнопке "Настройка" открывается форма вкл/выкл записи истории для объектов конфигурации:

 

Вступайте в нашу телеграмм-группу Инфостарт

история изменение справочник документ журнал регистрации

См. также

Журнал регистрации Системный администратор 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

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

22800 руб.

22.02.2018    37372    61    55    

58

Журнал регистрации Системный администратор Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

Журнал регистрации платформы 1С в SQL. Общая база хранения всех журналов. Через com-подключение регламентным заданием периодически догружает журналы регистраций из рабочих баз. Предоставляет настраиваемый доступ к журналам по правам подразделений. Формирует отчеты по пользователям и данным.

12000 руб.

23.05.2014    58114    53    17    

48

Журнал регистрации Программист Россия Бесплатно (free)

В материале рассматривается сравнение двух инструментов для работы с журналом регистрации 1С: утилиты ibcmd и платформы Vector. Описаны их функциональные возможности, тестирование производительности и практическое применение для преобразования логов в формат JSON.

20.11.2024    4771    user1913000    13    

24

Журнал регистрации Тестирование QA Программист Бесплатно (free)

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

21.10.2024    6369    leemuar    8    

24

Инструменты администратора БД Журнал регистрации Системный администратор 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Внешняя обработка для регламентного сокращения журнала регистрации для конфигураций на базе БСП и платформы 8.3.20+

1 стартмани

29.12.2023    3980    53    dima_gsv    4    

14

Журнал регистрации Мониторинг Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

19.11.2023    3112    7    AlexSTAL    0    

8

Мониторинг Журнал регистрации Технологический журнал Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    7863    12    AlexSTAL    0    

48

Журнал регистрации Инструменты администратора БД Мониторинг Мессенджеры и боты Системный администратор Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Абонемент ($m)

Внешняя обработка для БСП-конфигураций с простым программным интерфейсом. Предназначена для мониторинга состояния системы. Базово реализована отправка ошибок из журнала регистрации, но можно легко добавить мониторинг других журналов, каких-либо действий пользователей, состояния системы (например закрытие месяца).

3 стартмани

26.09.2023    4666    29    doom2good    16    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alex-l19041 8 22.02.19 16:29 Сейчас в теме
чем отличается от стандартного версионирования объектов?
2. dmitrydemenew 649 22.02.19 17:29 Сейчас в теме
В большинстве нестандартных конфигураций нет стандартного версионирования. Представленная система реализована и проверена во многих конфигурациях, в том числе на базах существенного размера - более 1ТБ. На мой взгляд, достаточно оптимальное решение с простым и быстрым внедрением, не оказывающее критического влияния на производительность.
3. kmvbad 15.05.19 12:13 Сейчас в теме
Все отлично, небольшой недостаток - нет возможности сохранять дополнительные свойства и контактную информацию.
4. wau8824ru 25 08.07.20 11:41 Сейчас в теме
Обработки.ВерсииОбъектовБД.МодульОбъекта(309)
Лог = Лог + Символы.ПС + "> Изменен реквизит: "+ТекСтрока.ПР+" с ["+ТекущееЗначение+"] на ["+ТекСтрока.СтароеЗначение+"]";

ругается на реквизит "ПР"
Лог = Лог + Символы.ПС + "> Изменен реквизит: "+ТекСтрока.Представление+" с ["+ТекущееЗначение+"] на ["+ТекСтрока.СтароеЗначение+"]";
5. wau8824ru 25 08.07.20 14:26 Сейчас в теме
{Обработка.ВерсииОбъектовБД.Форма.Форма.Форма(414)}: Итератор для значения не определен
Для Каждого ЭлементДанных Из ДанныеВерсии Цикл
	Процедура ПоказатьДанныеВерсии(СтрокаИстории)	
	ЭлементыФормы.ПанельРасшифровки.Страницы.Очистить();
	ФлЕстьРеквизиты = Ложь;
	ФлЕстьТЧ = Ложь;	
	ДанныеВерсии = СтрокаИстории.ДанныеВерсии;
	СтрокиОтбора = СтрокаИстории.ОтобранныеСтроки;
	Для Каждого ЭлементДанных Из ДанныеВерсии Цикл
Прикрепленные файлы:
6. wau8824ru 25 13.07.20 09:14 Сейчас в теме
(5)
Итератор для значения не определен

Изменил процедуру, ошибка ушла.
Процедура ТаблицаИсторииПриАктивизацииСтроки(Элемент)
	ТекСтрока = Элемент.ТекущаяСтрока;
	Если ТекСтрока=Неопределено Тогда
	    Возврат;
	КонецЕсли;
	ЭлементыФормы.ПанельРасшифровки.Видимость = Ложь;
	СтрокаИстории = ДанныеИстории.Найти(ТекСтрока.НомерИзменения,"НомерИзменения");
	Если СтрокаИстории <> Неопределено Тогда
		Если СтрокаИстории.ДанныеВерсии = Неопределено Тогда
			СтрокаИстории.ДанныеВерсии = ПолучитьИзмененияВерсии(ОбъектИстории,СтрокаИстории.НомерИзменения);
			//88( Администратор 13.07.2020 13:12:27
			Если СтрокаИстории.ДанныеВерсии = Неопределено Тогда
				Возврат;
			КонецЕсли;
			//88) Администратор 13.07.2020 13:12:30
		КонецЕсли;
		ПоказатьДанныеВерсии(СтрокаИстории);
	КонецЕсли;
	ЭлементыФормы.ПанельРасшифровки.Видимость = Истина;
КонецПроцедуры
Показать
7. wau8824ru 25 13.07.20 09:29 Сейчас в теме
(6)
Итератор для значения не определен

Или так
Функция	ПолучитьИзмененияВерсии(ТекОбъектИстории,ВерсияИзменения)Экспорт
	Перем ДанныеВерсии,ЗапросИстории;	
	ЗапросИстории = Новый Запрос;
	ЗапросИстории.Текст = "ВЫБРАТЬ
	|	ХранилищеВерсий.ОписаниеИзменения как ОписаниеИзменения
	|ИЗ
	|	РегистрСведений.ХранилищеВерсий КАК ХранилищеВерсий
	|ГДЕ
	|	ХранилищеВерсий.Объект = &Объект
	|	И ХранилищеВерсий.НомерИзменения = &НомерИзменения";	
	ЗапросИстории.УстановитьПараметр("Объект", ТекОбъектИстории);	
	ЗапросИстории.УстановитьПараметр("НомерИзменения", ВерсияИзменения);	
	ВыборкаРезультата = ЗапросИстории.Выполнить().Выбрать();
	Если ВыборкаРезультата.Следующий() Тогда 
		ДанныеВерсии = ВыборкаРезультата.ОписаниеИзменения.Получить();
		//88( Администратор 13.07.2020 13:26:35
		Если ДанныеВерсии = Неопределено Тогда
			ДанныеВерсии = Новый Структура;
		КонецЕсли;
		//88) Администратор 13.07.2020 13:26:37
	Иначе
		ДанныеВерсии = Новый Структура;
	КонецЕсли;			
	Возврат ДанныеВерсии;
КонецФункции
Показать
8. urbanist 97 17.12.23 15:43 Сейчас в теме
Вообще не понял как это работает. Объединил с УТ 10.3,в конфигураторе объекты появились, права на них дал. В 1С:Предприятий нет никаких историй. Посмотрел, все из за незаполненного справочника Доп.Константы, который непонятно как и чем заполняется. По кнопкам Перейти нет меню истории ни в одном объекте.
9. wau8824ru 25 06.12.24 21:12 Сейчас в теме
(8) Откройте обработку в 1C:Предприятие - кнопка Настройка - установите объекты по которым будет вестись история
Для отправки сообщения требуется регистрация/авторизация