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

22.02.19

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

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

Скачать файл

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

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

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

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


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

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

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


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

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

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

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


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

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

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


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

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

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

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

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


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

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


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


 

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


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

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


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

 

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

См. также

Журнал регистрации Мониторинг Системный администратор Программист Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 Платные (руб)

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

9000 руб.

28.08.2019    34064    22    21    

75

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

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

5000 руб.

28.11.2018    20818    17    6    

42

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

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

20.11.2024    1035    user1913000    11    

18

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

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

21.10.2024    2983    leemuar    8    

22

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

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

1 стартмани

29.12.2023    2191    31    dima_gsv    3    

13

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

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

1 стартмани

19.11.2023    1477    5    AlexSTAL    0    

8

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

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

1 стартмани

13.11.2023    4810    9    AlexSTAL    0    

47

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

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

3 стартмани

26.09.2023    2885    19    doom2good    16    

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

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

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

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