1с регистр сведений версии объектов очистить

Обновлено: 08.07.2024

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

Далее, по нажатию на кнопку "Чистка" в командной панели, будет производиться удаление записей, в порядке возрастания даты версии. Процент выполнения удаления можно визуально увидеть в индикаторе выполнения.

Во время удаления версий, работу обработки можно прервать с помощью стандартных кнопок прерывания операции "Ctrl + Break".

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

Обработка тестировалась на типовых конфигурациях Управление торговлей для Украины редакции 2.3, Управление торговым предприятием для Украины редакции 1.2, и Управление производственным предприятием для Украины редакции 1.3.

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

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

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

Чистка версий объектов 2.0

Доступна возможностью отбора видов справочников и документов, версии которых необходимо очистить.

При этом можно установить или снять признак необходимости удаления версий конкретного вида справочника или документа. Так же для группового управления этими признаки есть кнопки "Установить все флажки" и "Снять все флажки". Так же есть возможность использовать кнопки "ТолькоВерсионируемые" и "ТолькоНеВерсионируемые" в подменю "Установить/Снять". При этом будут автоматически установлены признаки удаления версий только в тех объектах, для которых в настройках версионирования включен признак "Версионировать", или не включен признак "Версионировать" соответственно. Эта функция может быть полезна при изменении политики версионирования объектов, когда некоторые объекты исключаются из механизма версионирования.

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

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

Проверено на УПП 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 минут.

Код 1C v 8.х
Создаем переменную НаборЗаписей как набор записей регистра сведений. Поскольку мы не прочитали данные из регистра – в этот момент это пустой набор записей.
Записываем новый набор записей (пустой) с замещением всех предыдущих записей (по умолчанию параметр Замещать метода Записать() имеет значение Истина).

Данную технологию можно применять только для регистров сведений с независимым режимом записи.

Разместил: E_Migachev  Версии: | 8.x |  Дата: 01.10.2009   Прочитано: 23974

Распечатать

Похожие FAQ

Еще в этой же категории

Как изменить запись регистра сведений?  34
НаборЗаписей = РегистрыСведений.НумерацияДоговоров.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Период.Установить(НачалоГода(Дата)); НаборЗаписей.Отбор.Организация.Установить(Организация); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество Как добавить запись в периодический независимый регистр сведений?  15
// Добавление записей в периодический независимый регистр сведений НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Валюта.Установить(ТекущаяВалюта); НаборЗаписей.Отбор.Период.Установить(ТекущаяДата); НовЗапис Как добавить записи в непериодический независимый регистр сведений?  12
НаборЗаписей = РегистрыСведений.ЗначенияСвойств.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура); НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапи Как добавить записи в независимый регистр сведений?  10
Для добавления отдельной записи в регистр сведений, не подчиненный регистратору, можно использовать объект РегистрСведенийМенеджерЗаписи. имя . Например, для того, чтобы в независимый регистр сведений ЗначенияСвойствОбъектов с измерениями Объект, Открыть запись регистра сведений по ключу.  10
// Создание структуры значений СтруктураФормы = Новый Структура; СтруктураФормы.Вставить(" Пользователь" , Пользователь); СтруктураФормы.Вставить(" Настройка" , Элемент.ТекущаяСтрока); // Почему-то нужно создавать запись через массив (по друго Посмотреть все в категории Регистры сведений

Переменная УдаляемаяОрганизация содержит соответствующую ссылку.
Тогда очистка регистра от удаляемых записей может быть произведена следующим образом:
Код 1C v 8.х
Создаем переменную НаборЗаписей, устанавливаем для нее отбор по значению организации равный УдаляемаяОрганизация. Кстати, отбор набора записей регистра всегда может устанавливаться только на равенство.
Далее записываем полученный пустой набор записей с замещением.
В результате все записи, соответствовавшие отбору, будут замещены пустым набором записей.

Разместил: E_Migachev  Версии: | 8.x | 8.2 УП |  Дата: 14.09.2010   Прочитано: 109805

Распечатать

Похожие FAQ

Как заполнить табличную часть формы программно?  6
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ PostgreSQL: установка, настройка, обслуживание  11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Блокировка записей, невозможно изменить или удалить из регистра. Конфликт блокировок MS SQL + 1C  3
При попытке удалить запись из регистра сведений - получаю ошибку: она заблокирована, ошибка блокировок и т.д. Отключил всех пользователей, перезапустил сервер, пробую удалить - опять ошибка блокировки :( Путем тестов было вяснено, что проблема Ввод договоров ГПХ в ЗУП (счет 76)  9
Часто меня спрашивают: Как правильно отразить договор ГПХ в ЗУП? Ниже небольшая, последовательная инструкция: Прием на работу Сведения о физическом лице, выполняющем работы по договору подряда, должны быть внесены в справочник Сотрудники организ Посмотреть все результаты поиска похожих

Еще в этой же категории

Как изменить запись регистра сведений?  34
НаборЗаписей = РегистрыСведений.НумерацияДоговоров.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Период.Установить(НачалоГода(Дата)); НаборЗаписей.Отбор.Организация.Установить(Организация); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество Как добавить запись в периодический независимый регистр сведений?  15
// Добавление записей в периодический независимый регистр сведений НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Валюта.Установить(ТекущаяВалюта); НаборЗаписей.Отбор.Период.Установить(ТекущаяДата); НовЗапис Как добавить записи в непериодический независимый регистр сведений?  12
НаборЗаписей = РегистрыСведений.ЗначенияСвойств.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура); НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапи Открыть запись регистра сведений по ключу.  10
// Создание структуры значений СтруктураФормы = Новый Структура; СтруктураФормы.Вставить(" Пользователь" , Пользователь); СтруктураФормы.Вставить(" Настройка" , Элемент.ТекущаяСтрока); // Почему-то нужно создавать запись через массив (по друго Как выбрать записи из регистра сведений?  9
//ВНИМАНИЕ . // В качестве полей для отбора могут задаваться измерения или реквизиты, для которых // в конфигураторе признак индексирования установлен в значение " Индексировать" или // установлен признак " Ведущее" . Вид сравнения может бы Посмотреть все в категории Регистры сведений

Переменная УдаляемаяОрганизация содержит соответствующую ссылку.
Тогда очистка регистра от удаляемых записей может быть произведена следующим образом:
Код 1C v 8.х
Создаем переменную НаборЗаписей, устанавливаем для нее отбор по значению организации равный УдаляемаяОрганизация. Кстати, отбор набора записей регистра всегда может устанавливаться только на равенство.
Далее записываем полученный пустой набор записей с замещением.
В результате все записи, соответствовавшие отбору, будут замещены пустым набором записей.

Разместил: E_Migachev  Версии: | 8.x | 8.2 УП |  Дата: 14.09.2010   Прочитано: 109805

Распечатать

Похожие FAQ

Еще в этой же категории

Как изменить запись регистра сведений?  34
НаборЗаписей = РегистрыСведений.НумерацияДоговоров.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Период.Установить(НачалоГода(Дата)); НаборЗаписей.Отбор.Организация.Установить(Организация); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество Как добавить запись в периодический независимый регистр сведений?  15
// Добавление записей в периодический независимый регистр сведений НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Валюта.Установить(ТекущаяВалюта); НаборЗаписей.Отбор.Период.Установить(ТекущаяДата); НовЗапис Как добавить записи в непериодический независимый регистр сведений?  12
НаборЗаписей = РегистрыСведений.ЗначенияСвойств.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура); НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапи Как добавить записи в независимый регистр сведений?  10
Для добавления отдельной записи в регистр сведений, не подчиненный регистратору, можно использовать объект РегистрСведенийМенеджерЗаписи. имя . Например, для того, чтобы в независимый регистр сведений ЗначенияСвойствОбъектов с измерениями Объект, Открыть запись регистра сведений по ключу.  10
// Создание структуры значений СтруктураФормы = Новый Структура; СтруктураФормы.Вставить(" Пользователь" , Пользователь); СтруктураФормы.Вставить(" Настройка" , Элемент.ТекущаяСтрока); // Почему-то нужно создавать запись через массив (по друго Посмотреть все в категории Регистры сведений

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