Как удалить все записи регистра сведений периодом меньше определенной даты? #363343


#0 by pho
Есть регистр сведений с периодичностью записи в пределах секунды. Как удалить все его записи периодом меньше или равным определенной дате? Например, отбор на Период в наборе записей может быть только "равно". ("Важно! Отбор может устанавливаться только на равенство.")
#1 by Vitello
Перебирать и удалять до тех пор, пока условие выполняется.
#2 by pho
Это ж долго. Хотя при отсутсвии других вариантов... Я так понимаю, перебирать все записи, поскольку не факт, что они будут выдаваться в хронологическом порядке? Хотя, если нет, то это могло бы ускорить процесс.
#3 by Vitello
А запросом их кстати выбрать нельзя?
#4 by Лефмихалыч
Выбрать запросом, сгруппировать по какому-нить измерению и отбирать по значению группировки
#5 by Irbis
Можно. Запрос в ТЗ, затем ТЗ в набор записей, затем набор очистить.
#6 by pho
Спасибо! Пожалуй, так и сделаю.
#7 by pho
Не совсем понятно. Так что ли?
#8 by Ygich
у регистра есть функция удалить с параметром элемент. перебираешь циклом набор записей и если элемент.период <= дата то регистр.удалить(элемент). вроде так.
#9 by Irbis
Прочитать необязательно. Не надо перебирать набор. Это лишнее. Очистить и записать.
#10 by pho
Всё грохает...
#11 by butterbean
если не устанавливать отбор в наборе записей и записывать его, то должен всё грохать
#12 by Irbis
Тогда от противного оставь в наборе только записи больше определенной даты и запиши. Туплю с утра малость.
#13 by pho
Вариант! Всё одно действие работы с базой будет (с запросом 2), а не тьма операций удаления.
#14 by pho
Есть контакт! Рабочий вариант:
#15 by pho
П.С. Но конечно всё не то. Ради удаления малого куска приходится переписывать всю массу без него. Но всё-таки красивее, чем по записям удалять.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С