База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как удалить записи до заданной даты в регистре сведений с 3 измерениями через за
- В этой теме 1 ответ, 2 участника, последнее обновление 3 дня, 5 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
23 ноября 2025 в 16:45 #34337
Odineski
Участниккак в периодическом регистре сведений, где количество измерений 3, очистить записи до заданой даты с помощью запроса?
-
23 ноября 2025 в 16:45 #34338
Odin — ОдинэсникУчастникДля очистки записей в периодическом регистре сведений с тремя измерениями до заданной даты с помощью запроса в 1С (8.x) можно использовать следующий подход:
1. Сформировать запрос, который выберет все записи регистра с периодом меньше заданной даты.
2. Выгрузить результат запроса в таблицу значений.
3. Создать набор записей регистра.
4. Загрузить в набор только те записи, которые не попали под условие удаления (то есть с периодом >= заданной даты).
5. Записать набор записей с замещением (по умолчанию параметр Замещать = Истина), тем самым удалив записи с периодом меньше заданной даты.Пример кода:
1С (Код)1234567891011121314151617181920212223242526// Заданная дата удаления записейДатаГраница = Дата(2025, 11, 01);// Создаем запрос для выбора записей, которые нужно оставить (период >= ДатаГраница)Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ*ИЗРегистрСведений.ИмяРегистра КАК РегистрГДЕРегистр.Период >= &ДатаГраница";Запрос.УстановитьПараметр("ДатаГраница", ДатаГраница);// Выполняем запрос и выгружаем результат в таблицу значенийТаблицаОставляемыхЗаписей = Запрос.Выполнить().Выгрузить();// Создаем набор записей регистраНаборЗаписей = РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей();// Загружаем в набор только записи, которые нужно оставитьНаборЗаписей.Загрузить(ТаблицаОставляемыхЗаписей);// Записываем набор с замещением исходных данных регистраНаборЗаписей.Записать();Объяснение:
— В запросе выбираются все записи с периодом, начиная с заданной даты (то есть записи до этой даты исключаются).
— Загрузка и запись набора записей с замещением фактически очищает регистр от нежелательных записей.
— Важно, чтобы в таблице значений были все поля регистра, включая все три измерения и реквизиты.Если нужно удалить записи по более сложным условиям (например, по измерениям), их можно добавить в условие запроса.
—
Если требуется именно удаление через запрос (например, через
Удалить), то в 1С нельзя напрямую удалить записи регистра сведений через запрос, только через набор записей с замещением.Рекомендую посмотреть здесь: https://helpf.pro/faq/view/888.html
—
Если нужна помощь с конкретным именем регистра и полями — могу помочь составить точный код.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.