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

22.02.19

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

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

Скачать исходный код

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

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

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


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

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

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


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

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

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

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


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

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

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


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

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

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

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

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


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

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


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


 

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


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

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


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

 

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

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

21600 руб.

15.05.2017    42666    10    24    

38

Версионирование объектов для Альфа-авто, ред 4 и 5.

Оптовая торговля Розничная торговля Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Автомобили, автосервисы Управленческий учет Платные (руб)

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

4800 руб.

03.09.2016    42331    33    24    

38

LogManager - Внешний журнал регистрации в SQL

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

10000 руб.

23.05.2014    55621    52    16    

47

Мониторинг баз и серверов 1С

Журнал регистрации Мониторинг Платформа 1С v8.3 Платные (руб)

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

9000 руб.

28.08.2019    31198    14    21    

66

LogiCH - хранение и анализ журнала регистрации в сверхбыстрой СУБД ClickHouse

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Конфигурация LogiCH эффективно решает проблему хранения и анализа записей журналов регистрации. Разработка использует столбцовую СУБД ClickHouse, одну из самых быстрых Big Data OLAP СУБД. Любой анализ журнала можно выполнить в одном отчете, в котором доступны все возможности СКД с учетом ограничений RLS. Количество подключаемых баз не ограничено и не влияет на скорость построения анализа.

5000 руб.

28.11.2018    19658    13    6    

37

Регламентное сокращение журнала регистрации

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

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

1 стартмани

29.12.2023    1418    16    dima_gsv    1    

12

Магия преобразований: ЖР, ТЖ, RAS/RAC, логи - универсальное решение Vector

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

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

1 стартмани

13.11.2023    3189    4    AlexSTAL    0    

42

Мониторинг состояния с отправкой в telegram

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

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

3 стартмани

26.09.2023    1853    11    doom2good    10    

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

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

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

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