Срез версий объектов на дату

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

Для обычного приложения.

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

Выдержка из справки к обработке:

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

Как пользоваться?

  1. Выберите вид объекта, если хотите срезать версии только по определенному виду объекта(например, только версии справочника Номенклатура). Оставьте поле пустым, если необходимо обработать версии всех объектов
  2. Укажите период (дату) на который необходимо выполнить срез
  3. Выберите режим работы
    • Выбрать объекты, обрабатывать версии по-объектно пачками по … объектов
    • Выбрать версии всех объектов, обрабатывать версии последовательно
  4. Нажмите Выполнить

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

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

 

 Обновление от 2024-11-10

 

 Обновление от 2013-06-18

Добавлена возможность прекратить выполнение обработки по прошествию времени Часов:минут

Для баз в клиент-серверном варианте рекомендуемая пачка объектов 1К-10К

Рекомендую так же посмотреть:

Очистка регистра Версии Объектов от одинаковых версий

Очистка регистра сведений "Версии объектов"

16 Comments

  1. s_uu

    Очень нужная обработка, а не могли бы вы ее на почту выслать s_uu@mail.ru?? спасибо))

    Reply
  2. echo77

    (1) По правилам этого делать нельзя

    Reply
  3. s_uu

    Э-эх, уважаю правильных мужчин))

    Мне уже не надо — нашла в другом месте!

    Reply
  4. OBEH

    Почему-то нет привычки описывать для каких конфигураций и каких платформ предназначена обработка.

    Наверное, это надо включить в правила инфостарта.

    Reply
  5. SITR-utyos

    (4) Все есть, все описано. Чего вам еще-то не хватает?

    Reply
  6. onlyfly

    На 8.3 управление торговлей 11 не будет работать?

    Reply
  7. echo77

    (6) Сегодня проверил. В УТ 11 тоже работает, только запускать надо в режиме Обычного приложения

    Reply
  8. saver77

    Обработка отлично работает в конфигурации Управление небольшой фирмой. В отличие, кстати, от «Очистка регистра Версии Объектов от одинаковых версий» http://infostart.ru/public/150314/.

    Спасибо.

    Reply
  9. гаврюша

    Большое спасибо за обработку! Работает отлично. УПП 1.3.68.1.

    Reply
  10. user614427_1c_msk

    Часть функционала не реализована.

    В коде используются метки… Сочетание русского «Если» и английского «ElsIf».

    Отдельно доставил удовольствие комментарий автора в тексте «// Херачим запрос в цикле :-)».



    // в этом месте задумчивый смайл..

    Reply
  11. echo77

    (10) Спасибо! «Херачим запрос в цикле» повеселило

    Reply
  12. alen-s

    (КА1.1)

    Если, не выбирать Вид объекта, при режиме работы «Удалить данные версионирования», выдает ошибку:{ВнешняяОбработка.СрезВерсийОбъектов.МодульОбъекта(257)}: Ошибка при вызове метода контекста (Выполнить)

    МассивОбъектов=Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(«Объект»);

    по причине:

    {(6, 2)}: Синтаксическая ошибка

    <<?>>

    Reply
  13. echo77

    (12) Да. Сделаю это поле обязательным для заполнения. Или вы хотите весь регистр зачистить?

    Тогда просто выполните код

    РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей().Записать();
    Reply
  14. golv

    Доброго времени суток!

    А для КА 2.0 не планировали адаптировать Вашу обработку?

    Спасибо!

    Reply
  15. echo77

    (14) Не планирую, но одна прекрасно работает и там в режиме обычного приложения

    Reply
  16. golv

    Спасибо за ответ. Если не сложно — ткните носом на рабочую версию под КА 2.0…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *