Как очистить регистр сведений

Регистр сведений в 1С Предприятии, предназначен для хранения периодической или не периодической информации в разрезе измерений. Данные в другие типы регистров могут быть записаны только с использованием «Документа регистратора». А в Регистр сведений данные могут быть записаны как с «Регистратором» так и без него.

Выбрать записи из регистра сведений

Используя метод «Выбрать» можно установить отборы и задать период для выбора записей, а также задать сортировку записей.
Валюта = Справочники.Валюты.НайтиПоНаименованию(«EUR»);
Отбор = Новый Структура(«Валюта»);
Отбор.Валюта = Валюта;
Выборка = РегистрыСведений.КурсыВалют.Выбрать(,,Отбор);
Пока Выборка.Следующий() Цикл
МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи();
МенеджерЗаписи.Прочитать();
//Изменить существующую запись
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Курс = 10.00;
МенеджерЗаписи.Записать();
//Удалить существующую запись
МенеджерЗаписи.Удалить();
КонецЦикла;

Добавить, изменить, удалить запись

Менеджер записи позволяет добавлять, изменять, удалять запись регистра сведений не подчиненного регистратору.
МенеджерЗаписи = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
Валюта = Справочники.Валюты.НайтиПоНаименованию(«EUR»);
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Прочитать();
Если НЕ МенеджерЗаписи.Выбран() Тогда
//Добавить новую запись
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Курс = 10.00;
Иначе
//Изменить существующую запись
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Курс = 10.00;
КонецЕсли;
//После добавления или изменения записи
//необходимо вызвать метод Записать
МенеджерЗаписи.Записать();
//Удалить существующую запись
МенеджерЗаписи.Удалить();

Добавить, изменить, удалить набор записей

Через набор записей регистра сведений можно добавить или изменить сразу несколько записей. Набор записей позволяет устанавливать отборы.
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
Валюта = Справочники.Валюты.НайтиПоНаименованию(«EUR»);
НаборЗаписей.Отбор.Валюта.Установить(Валюта);
НаборЗаписей.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() = 0 Тогда
//Добавление новой записи
НоваяЗапсиь = НаборЗаписей.Добавить();
НоваяЗапсиь.Валюта = Валюта;
НоваяЗапсиь.Период = ТекущаяДата();
НоваяЗапсиь.Курс = 10.00;
Иначе
//Изменение существующей записи
НаборЗаписей.Валюта = Валюта;
НаборЗаписей.Период = ТекущаяДата();
НаборЗаписей.Курс = 10.00;
КонецЕсли;
//Удалить существующую запись
НаборЗаписей.Удалить(НаборЗаписей);
//После добавления, изменения, удаления записей
//необходимо вызвать метод Записать
НаборЗаписей.Записать();

Очистить регистр сведений

Полностью очистить регистр сведений можно несколькими способами.
Один из самых простых способов — это удалить регистр сведений из дерева метаданных, а затем заново его создать. В таком варианте перед удалением
необходимо запомнить или записать структуру данных и настройки регистра, чтобы потом создать аналогичный.

Если необходимо удалить все записи регистра сведений программно, то можно воспользоваться пустым набором записей.
//Удаление всех записей регистра сведений ЦеныНоменклатуры
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Записать();

Очень часто в 1С требуется удалить большое количество записей регистра сведений. Можно делать это вручную, но, согласитесь, когда количество записей более 1000, это достаточно проблематично.

Как удалить записи регистра сведений

Удалить все записи в регистре сведений можно с помощью двух строчек кода:

Получите 267 видеоуроков по 1С бесплатно:

Таким образом, первой строчкой кода мы создаем пустой набор записей. Второй строчкой записываем его вместо всех существующих записей. Как результат, получаем пустой регистр сведений.

Скачать обработку для очистки регистра

В виде бонуса выкладываем простую обработку, с помощью которой Вы можете очистить совершенно любой регистр сведений в вашей конфигурации 1С — Очистка Регистра Сведений 1С. Обработка работает как на управляемых формах, так и в обычных.

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

Другие статьи по 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Регистр сведений – это хранилище сведений конфигураций 1С в виде записей с значениями измерений (разрезы) и соответствующими им значениями (ресурсами). Это могут быть курсы валют в разрезе валют, цены в разрезе номенклатуры и типа цен, в качестве регистратора могут выступать и документы, которые создают записи в регистр.

Пример: «Регистр сведений» – «Курсы валют».

Если мы откроем Конфигуратор и в дереве метаданных развернем пункт «Регистры сведений», мы увидим список всех регистров сведений.

При этом записей в регистрах может накопиться огромное количество. Рассмотрим несколько способов, как можно очистить регистры сведений 1С 8.3. Но при выполнении этих действий рекомендуется сделать резервную копию информационной базы.

Программная очистка регистра сведений

Программная очистка регистра сведений не подчиненного регистратору производится при помощи записи пустого набора записей.

В первой строке кода создается пустой набор записей (набор записей пустой, т.к. данные регистра не прочитаны), во второй – производится его запись, взамен существующих. Результат – пустой регистр.

Данный вариант применим только для регистров сведений с независимым режимом записи, и такой способ очистки занимает очень много времени.

Обработка очистка регистра сведений в 1С 8.3

Существует обработка, с помощью которой можно произвести очистку любого регистра сведений – «Очистка регистра сведений 1С.epf», работающая как в обычных формах, так и в управляемых. Чтобы ею воспользоваться, ее необходимо открыть в пользовательском режиме через пункт меню «Файл» – «Открыть».

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

После некоторого ожидания операция завершена. Таким способом можно очистить любой регистр сведений в программе.

Обработка – свертка независимого периодического регистра сведений

Есть еще одна обработка, позволяющая очистить регистр сведений, подходящая для любых конфигурация 8.2 и 8.3, работающих как обычное приложение. (СверткаНезависимогоПериодическогоРегистраСведений.epf).

Чтобы открыть обработку для использования в конфигурации (управляемое приложение), нужно запустить 1С 8.3 в режиме «Толстый клиент (обычное приложение)». Для этого в Конфигураторе изменить режим запуска в пункте меню «Сервис» – «Параметры».

Установив переключатель в положение «Толстый клиент (обычное приложение)», нажимаем кнопку «Применить» или «Ок».

После этого заходим в режим «1С:Предприятие» через меню «Сервис» Конфигуратора.

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

Наши регистры будут очищены. Но, повторимся, при выполнении этой операции необходимо быть особенно внимательным и обязательно не забыть провести резервное копирование информационной базы, как и при большинстве манипуляций с базой и ее целостностью. Здесь же это особенно важно сделать, так как операция по обнулению регистров необратима.

Не так давно мне потребовалось очистить регистр сведений. Этот регистр хранил в себе историю изменения некоторых объектов конфигурации и содержал несколько миллионов записей.

Обычный вариант программной очистки регистра сведений не подчиненного регистратору производится при помощи записи пустого набора записей, примерно так:

Но в данном случае очистка регистра подобным способом заняло бы много часов. Поэтому был выбран другой способ — быстрый способ очистки регистра сведений.

Шаг 1. Делаем резервную копию базы. Этот пункт, конечно, не обязателен, но привычка делать резервную копию перед любым потенциально опасным действием обязательно сохранит Вам нервы/время/зарплату/карьеру.

Шаг 2. Копируем требуем регистр сведений.

Копируем регистр

Шаг 3. Удаляем оригинал регистра сведений

Удаляем регистр

Шаг 4. Переименовываем копию в оригинал и применяем изменения.

Переименовываем и применяем изменения

Вот таким нехитрым способом очистка регистра сведений займет несколько минут, вне зависимости от размеров этого регистра. Разница заключается в том, что во втором способе таблица регистра сведений удаляется целиком, что значительно быстрее.

Подобным способом можно произвести очистку практически любого элемента конфигурации. Но, разумеется, корректность учета после проведения такой операции никто не гарантирует.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.