Отбор в непериодическом регистре сведений: программно и интерактивно #219081


#0 by FarFar
Есть непериодический регистр сведений, в нем измерение "Дата" типа Дата (Дата+Время). Задача - удалить записи, в которых значение поля "Дата" начинается от НачПериода и заканчивается КонПериода. Смог реализовать только через выполненение запроса, выбирающего нужные записи, и удаление в цикле по одной записи. Работает жутко доооолго, записей много. Возился с НаборЗаписей, все хотел установить отбор, чтобы сделать Набор.Записать. Но ничего не вышло, отбор программно работает только на равенство. А между тем интерактивно, в форме списка, установить отбор на это измерение "в интервале" - проще простого, 1С позволяет.  В чём же разница??? FarFar
#1 by FarFar
Естественно, алгоритм можно улучшить, завести доп.измерение "Дата", куда пихать только дату. И запросом выбирать по дате, и удалять также в цикле. Будет достаточно быстро, но...Просто некрасиво это...
#2 by Defender aka LINN
Запросом формируешь ТЗ с таким же колонками, как в регистре, но выбираешь в нее те записи, которые должны остаться. Создаешь набор записей, загружаешь из этой ТЗ и записываешь. Дешево и сердито.
#3 by FarFar
Отлично! То ,что нужно было. Не догадался, что в набор можно загружать чего-нибудь. Сам придумал или видел где?
#4 by Defender aka LINN
Ну, именно таким образом не пользовался, но массовую обработку регистров приходилось делать.
#5 by FarFar
Да, проверил. Все получилось, классно. Примечание: в запросе, естественно, нужно инвертировать условие на вхождение в период, "НЕ МЕЖДУ". Также в списке полей выборки необходимо перечислять не только измерения, но и ресурсы, иначе их значения обнуляются. Рекомендую поместить в базу знаний.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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