Очистить таблицу регистрации изменений 1с

Обновлено: 02.07.2024

Способы регистрации изменений данных в механизмах обмена данными

В платформе 1С:Предприятие 8 реализовано два механизма обмена данными: универсальный механизм обмена данными и механизм распределенной информационной базы. Оба эти механизма базируются на одних тех же технологиях. Одной из этих технологий является служба регистрации изменений данных.

Изменения данных могут регистрироваться в автоматическом режиме. Для этого необходимо при включении объекта метаданных в состав плана обмена разрешить автоматическую регистрацию: установить признак Авторегистрация в значение Разрешить .

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

Для регистрации изменений всех данных для конкретного узла плана обмена необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные значение Неопределено .

Для регистрации изменений данных одного типа необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные объект описания метаданных, соответствующий данным.

Пример: регистрация изменения всех элементов справочника Номенклатура для узла Узел :

Для регистрации конкретных данных различных типов необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные либо сами данные, либо ссылку на них.

К объектным типам относятся справочники, документы, планы счетов, планы видов характеристик, планы расчета, бизнес-процессы, задачи. Для их регистрации необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные либо сам объект, либо ссылку на него.

К таким регистрам относятся регистры накопления, регистры бухгалтерии, регистры расчета и регистры сведений со свойством РежимЗаписи , установленным в значение ПодчинениеРегистратору . Для регистрации изменений наборов записей указанных регистров необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные набор записей с установленным отбором, в котором в элемент отбора Регистратор установлено значение регистратора данного набора записей. При этом чтение данных набора записей перед его регистрацией не обязательно.

К таким регистрам относятся регистры сведений со свойством РежимЗаписи , установленным в значение Независимый . Для регистрации изменений наборов записей данного регистра необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные набор записей. Состав элементов отбора, при этом, должен строго соответствовать основному отбору регистра. Выбирать поля, входящие в основной отбор регистра необходимо в соответствии с логикой работы конфигурации (см. Подготовка конфигурации к работе в распределенной информационной базе).

  • выбрать уникальные значения измерений регистра, входящих в основной отбор (если регистр сведений является периодическим и Период включен в основной отбор, то Период также должен участвовать в отборе)
  • выполнить регистрацию наборов записей с установленными значениями отбора, соответствующими каждой выбранной комбинации значений измерений (входящих в основной отбор).
  • константа;
  • справочник;
  • документ;
  • план счетов;
  • план видов характеристик;
  • план видов расчета;
  • бизнес процесс;
  • задача.

А так же для наборов записей:

  • регистра сведений;
  • регистра бухгалтерии;
  • регистра накопления;
  • регистра расчета;
  • перерасчета.

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

Структура таблицы изменений подобна для всех объектов:

Запись в таблице изменений проходит следующие преобразования:

Как сделать запрос к таблице изменений

Таблицы изменений по умолчанию не видны в конструкторе запросов. Но их можно вывести с помощью кнопки Отображать таблицы изменений.

Как работает механизм регистрации изменений в 1С

Пример запроса к таблице изменений:

Как зарегистрировать изменение объекта в 1С

Изменения данных могут регистрироваться в автоматическом режиме. Для этого необходимо при включении объекта метаданных в состав плана обмена разрешить автоматическую регистрацию: установить для свойства Авторегистрация значение Разрешить.

Для того чтобы зарегистрироваться изменения вручную, программно у менеджера планов обмена существует функция ЗарегистрироватьИзменения() . Функция имеет два параметра:

Как зарегистрировать все изменения для узла

Как зарегистрировать все изменения объектов определенного типа

Как зарегистрировать все изменения конкретных объектов

Для регистрации изменений наборов записей регистров, подчиненных регистратору необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные набор записей с установленным отбором, в котором в элемент отбора Регистратор установлено значение регистратора данного набора записей. При этом чтение данных набора записей перед его регистрацией не обязательно.

Для регистрации изменений наборов записей независимого регистра необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные набор записей. Состав элементов отбора, при этом, должен строго соответствовать основному отбору регистра.

Как удалить регистрацию изменений

Как удалить регистрацию изменений полностью

После отработки пишет в журнал регистрации информацию по проделанной работе.

Все входные параметры легко зашиваются на константы.

Проверено на УПП 107.2.1.3 платформа (8.3.8.1933).

После очистки рекомендую сделать сжатие базы.

Листинг регламентированного задания.

Помидорами не кидаемся.

Обработка «Очистки Регистра сведений 'Версии объектов'»:

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Мне кажется так будет быстрее + время будет тратиться только на удаление существующих записей + можно получать данные для удаления порциями

Пока Выборка.Следующий() Цикл

Далее уже отборы и запись.

Есть ряд замечаний:
1. не понятно, вы хотите оставить самый первый или самый последний экземпляр? Удаляя все записи, кроме первой или последней, вы лишаете себя возможности видеть все изменения, вносимые пользователями. В результате прояснить: кто, когда изменил документ и что изменено не представляется возможным. ( в случает отличия с печатной формой).
2. Ежедневно выставляя параметр запроса "Период" как начало года, вы не уменьшаете объем данных регистра за текущий год.(т.е. весь текущий год регистр растет)- текущий год не обрабатывается. ( запускать обработку ежедневно не имеет смысла - только раз в году). Обработав первый раз регистр "Версии объектов" в 2018 году, набор данных за 2017 год и ранее мало изменится, т.к. вам навряд ли разрешат изменять данные закрытых периодов, а реквизит регистра ДатаВерсии будет = дате записи, внесения изменений или перепроведения - в любом случае>01.01.2018

Постановка задачи:
Оставляем самую свежую запись за 2017 год.Общая история хранится в бекапах.
При больших объемах регистра в 20 мил записей до 2017 г. удалять приходится порциями.
Закрытие периода не влияет на регистр "Версии объектов". Ночные задания проходят под правами администратора.

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

у себя для очистки версий использую следующий принцип:
1) запросом выбираю объекты, которые не изменялись с какого-то момента времени (например с 01.01.18) - эти записи уже можно назвать условно постоянными и история по ним в рабочей базе не так важна.

обращаю внимание что определения переменных НЗ и ОТБОР вынесены за пределы цикла. 480 тысяч записей по 130 тысячам объектов были освобождены в течение 5-6 минут.

Читайте также: