Очистка регистра сведений 1С 8.3
Регистр сведений — это база данных конфигурации 1С, существующая в форме записей показателей измерений (разрезы) и соответствующих им ресурсов. Таким образом, сохраняются кросс-курсы национальных валют в разрезе валют, цены в разрезе номенклатуры цен. Функции регистратора выполняют документы, формирующие записи в регистре.
На рисунке образец: Начало «Регистр сведений», затем переход на «Курсы валют».
Список регистров сведений доступен в развернутом пункте «Регистры сведений» Конфигуратора.

Со временем, в регистрах накапливается большое количество записей, что снижает скорость работы программы 1С. Предлагаем несколько методов удаления регистров сведений 1С 8.3. Перед выполнением процедуры очистки регистра необходимо создать резервную копию базы с информацией.
Программная очистка регистра сведений
Если регистр сведений не подчинен регистратору, очистить его возможно с помощью программы. Осуществляется ввод пустого набора записей следующего содержания:
Нулевой набор записей отображается в начальной строчке кода (информация из регистра не прочитана, поэтому набор записей пустой), в следующей строке — начинается его запись, вместо существующего. Итог — пустой регистр.
Эта процедура занимает много времени и доступна только для регистров с независимым уровнем записи.
Обработка очистка регистра сведений в 1С 8.3
Разработан универсальный способ очистки регистра — обработка. Применяется для любого регистра сведений. Файл «Очистка регистра сведений 1С.epf» запускается в управляемых формах и в обычных. Для активации очистки нужно в режиме пользователя найти файл через пункт меню «Файл» — «Открыть».

Выбираем наименование регистра для очистки (точное название можно узнать в конфигураторе), и активируем работу кнопкой «Очистить регистр».

Выполнение операции занимает некоторое время. Таким методом очищается каждый регистр сведений оболочки.
Обработка – свертка независимого периодического регистра сведений
Существует альтернативный метод очистки регистра сведений. Он подходит для конфигурации 8.2 и 8.3, и работает как обычное приложение — «СверткаНезависимогоПериодическогоРегистраСведений.epf».
Запуск обработки производится в конфигурации управляемое приложение. Активируется режим «Толстый клиент (обычное приложение)» в программе 1С 8.3, путем изменения режима запуска в Конфигураторе (меню «Сервис» — «Параметры»).

Выбрав из предложенных вариантов «Толстый клиент (обычное приложение)», подтвердите действие нажатием кнопки «Ок».

Затем выбираем вкладку «Сервис» — «1С:Предприятие».

В итоге программа открылась как обычное приложение. Такая функция часто использовалась в более ранних версиях 1С. Изучаем вкладку «Открыть» и находим текущую обработку. Настроить ее очень просто — выбирайте дату и регистры для очистки. Затем подтверждаем запуск процесса очистки кнопкой «Выполнить».

Очистка регистров будет завершена. Напоминаем о необходимости создавать резервную копию базы данных, так как процесс очистки регистров необратим.
Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку
Очистка регистра сведений в 1С 8
Почти у каждого пользователя 1С хотя бы раз возникала задача по удалению всех записей регистра сведений.
Если в управляемом режиме можно выделить все строки в форме списка регистра и нажать DEL, то в обычном режиме это не реализуемо (в большинстве случаев), так как в них не вклюен по умолчанию режим множественного выбора.
Для чистки регистра сведений нужно всего две строчки кода
НаборЗаписей = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей(); // ИмяРегистра - имя как оно задано в конфигураторе
НаборЗаписей.Записать()
Первая строка создает набор записей регистра, вторая выполняет запись набора, и так как набор пустой и без установленных отборов, то выполняется чистка всех записей.
На нашем сайте вы можете скачать готовую бесплатную обработку 1С для чистки регистров сведений в 1С 8.
Как очистить регистр сведений?
При выполнении записи регистра сведений будут быстро удалены. Если регистр сведений объемный, это займет некоторое время, но обычно пару секунд.
Набор записей — это специальный «менеджер» для управления группой записей.
В случае, если не установлен отбор по измерениям и не производится начальное считывание методом Прочитать(), то в момент вызова Записать(), сохраняется текущее — пустое состояние.
Интерактивное удаление записей регистра сведений
В управляемых режиме работы конфигурации по умолчанию включен множественный выбор записей регистра, и, если регистр независимый (не подчинен документу-регистратору), возможно удаление группы записей.
Выделяем через shift и все записи командой Ctrl+A и нажимаем «Delete» или через контекстное меню «Удалить»

В случае, если количество записей больше 1000, тогда система при выделении выдаст предупреждение о длительности операций, но позволит продолжить выделение.
При списках более 5000 записей использование такого способа не рекомендуется, так как при увеличении списка строк в табличном поле резко замедляется его работа
В обычных же формах стандартно можно удалять по одной строке.
Обработки для удаления записей регистров сведений
- Кроме изменения и удаления записей регистров, добавлена возможность использовать произвольный алгоритм.
- Выбор РС из списка, на форме отображается динамический список регистра.
- Генерирует прямо на форме поля для изменения текущей записи. Можно изменять, добавлять, удалять записи.
- Для группы записей (выделенные строки динамического списка) можно изменять поля, в том числе измерения. ВАЖНО: Запись идет в режиме перезаписи, так что если итоговая запись уже есть или вы изменили единственное измерение у группы записей — последствия могут быть плачевными. Но, надеюсь, вы понимаете, что собираетесь сделать.
- При изменении полей — подсвечивается рамка. Вы всегда в курсе, что будет изменяться. Особенно актуально для групп записей.
- Есть возможность записи в режиме загрузки
- Есть возможность установить дополнительные свойства записи (иногда очень важно)
- Использует привилегированный режим.
- Изменение (от одного до всех полей), удаление и копирование (с заменой любого количества полей) записей регистров сведений.
Реклама — двигатель всеобщей дебилизации населения.
— Стас Янковский
Программа 1С: Очистка регистра

Регистр сведений 1С – объект, в котором хранятся данные осведомительного (не накопительного) характера в разрезе некоторых измерений.
Например, для хранения информации о кадровой расстановке сотрудников используется регистр «Работники организаций». Этот регистр состоит из измерений («Сотрудник», «Организация») и ресурсов («Должность», «Подразделение» и проч).
Вид регистра сведений в дереве объектов конфигуратора программы 1С:
Внимание: Записи регистра сведений удаляются безвозвратно, поэтому, перед очисткой регистра 1С, рекомендуется предварительно сделать копию базы.
2. Очистка записи независимого регистра сведений 1С

1 СЛУЧАЙ. Перед нами стоит задача очистить все записи независимого регистра сведений 1С. Независимым регистр 1С становиться при установлении свойства «Режим записи» равным «Независимый». Регистры сведений подчиненные регистратору, полностью очистить программно нельзя!
Возможна только частичная очистка, при установлении отбора по значению регистратора.

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