Содержание:
1. Что такое регистр сведений 1С
Регистр сведений 1С – объект, в котором хранятся данные осведомительного (не накопительного) характера в разрезе некоторых измерений.
Например, для хранения информации о кадровой расстановке сотрудников используется регистр «Работники организаций». Этот регистр состоит из измерений («Сотрудник», «Организация») и ресурсов («Должность», «Подразделение» и проч).
Вид регистра сведений в дереве объектов конфигуратора программы 1С:
Внимание: Записи регистра сведений удаляются безвозвратно, поэтому, перед очисткой регистра 1С, рекомендуется предварительно сделать копию базы.
2. Очистка записи независимого регистра сведений 1С
1 СЛУЧАЙ. Перед нами стоит задача очистить все записи независимого регистра сведений 1С. Независимым регистр 1С становиться при установлении свойства «Режим записи» равным «Независимый». Регистры сведений подчиненные регистратору, полностью очистить программно нельзя!
Возможна только частичная очистка, при установлении отбора по значению регистратора.
Для полной очистки нужно написать следующий код:
НабЗап=РегистрыСведений.[ИмяРегистраСведений].СоздатьНаборЗаписей();
НабЗап.Записать();
После исполнения этого кода будут очищены все записи. Проанализируем логику строк кода.
В 1-й строке создается набор записей. Набор записей регистра сведений 1С - это объект, являющийся коллекцией записей. Метод «СоздатьНаборЗаписей()» создает пустой набор, который можно заполнить разными способами: или прочитать уже записанные в регистр записи методом «НаборЗаписей.Прочитать()», или добавить новую запись методом «НаборЗаписей.Добавить()» и заполнить ее измерения и ресурсы, для последующей записи.
Во 2-й строке, как раз и происходит запись сформированного набора записей в регистр и, т.к. мы его оставили пустым, то этот пустой набор записей заместит все имеющиеся записи в регистре, а значит – полностью его очистит.
У метода Записать() имеется единственный параметр «Замещать» (тип параметра – Булево), по умолчанию = Истина. Если же передать значение - Ложь, то записи замещены не будут и регистр очищен не будет.
НабЗап.Записать(Ложь);
2 СЛУЧАЙ. Стоит более простая задача - очистить записи регистра по определенному значению измерения. Например, в регистре сведений «Работники Организаций» очистить записи по конкретному сотруднику, т.е. те, у которых измерение «Сотрудник» = перемСотрудник.
Для этого нужно сначала сформировать НаборЗаписей с отбором по данному измерению:
НабЗап =РегистрыСведений.[ИмяРегистраСведений].СоздатьНаборЗаписей();
НабЗап.Отбор.[ИмяИзмерения].Установить(перемЗначениеИзмерения);
НабЗап.Записать();
В 1-х двух строках кода мы создаем набор записей регистра сведений 1С и ограничиваем его по значению конкретного измерения. Теперь, когда мы будем записывать этот набор записей, он заместит только те записи, у которых значение тек. измерения = перемЗначениеИзмерения.
В 3-й строке, записываем пустой набор записей и замещаем имеющиеся в регистре.
Примечание: Для регистров накопления программное очищение данным способом возможно только при установленном отборе по Регистратору, т.к. понятие «Независимый» для регистра накопления не актуально.
Регистр накопления в Конфигураторе:
Специалист компании "Кодерлайн"
Марина Анапольская


