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

22.02.19

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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


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

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

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


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

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

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

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


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

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

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


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

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

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

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

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


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

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


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


 

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


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

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


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

 

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

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

См. также

Журнал регистрации WEB-интеграция Программист 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Долго отлаживали интеграции через сообщения, журнал регистрации и чужие прокси. На проде это не взлетело. Собрали простой инструмент внутри платформы — смотришь запрос/ответ, повторяешь, выгружаешь curl.

1 стартмани

07.08.2026    789    2    Viktor_Ermakov    7    

12

Администрирование СУБД Журнал регистрации Системный администратор Программист 1С 8.3 Бесплатно (free)

Журнал регистрации на нагруженной базе перестаёт открываться: файлы растут на гигабайты в день, просмотр виснет, история недоступна. Рассказываю, как мы вынесли журнал трёх продуктивных баз в ClickHouse: 35 млрд событий, поиск всех ошибок за сутки — 0,11 секунды, привычная форма журнала для пользователей и падение числа ошибок в проде в 23 раза за полгода. Архитектура, схема таблицы, грабли интеграции и все цифры с прода.

04.08.2026    1732    nedomolkov.ivan    0    

8

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

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

28.02.2026    5178    julia96_07    0    

13

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

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

20.11.2024    8903    user1913000    13    

26

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

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

21.10.2024    9742    leemuar    8    

25

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

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

1 стартмани

29.12.2023    5758    63    dima_gsv    6    

15

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

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

1 стартмани

19.11.2023    4830    11    AlexSTAL    0    

8

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

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

1 стартмани

13.11.2023    10292    15    AlexSTAL    0    

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

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

Изменил процедуру, ошибка ушла.
Процедура ТаблицаИсторииПриАктивизацииСтроки(Элемент)
	ТекСтрока = Элемент.ТекущаяСтрока;
	Если ТекСтрока=Неопределено Тогда
	    Возврат;
	КонецЕсли;
	ЭлементыФормы.ПанельРасшифровки.Видимость = Ложь;
	СтрокаИстории = ДанныеИстории.Найти(ТекСтрока.НомерИзменения,"НомерИзменения");
	Если СтрокаИстории <> Неопределено Тогда
		Если СтрокаИстории.ДанныеВерсии = Неопределено Тогда
			СтрокаИстории.ДанныеВерсии = ПолучитьИзмененияВерсии(ОбъектИстории,СтрокаИстории.НомерИзменения);
			//88( Администратор 13.07.2020 13:12:27
			Если СтрокаИстории.ДанныеВерсии = Неопределено Тогда
				Возврат;
			КонецЕсли;
			//88) Администратор 13.07.2020 13:12:30
		КонецЕсли;
		ПоказатьДанныеВерсии(СтрокаИстории);
	КонецЕсли;
	ЭлементыФормы.ПанельРасшифровки.Видимость = Истина;
КонецПроцедуры
Показать
7. wau8824ru 26 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 26 06.12.24 21:12 Сейчас в теме
(8) Откройте обработку в 1C:Предприятие - кнопка Настройка - установите объекты по которым будет вестись история
Для отправки сообщения требуется регистрация/авторизация