Регистры накопления в 1С:Предприятие — это ключевой инструмент для учета изменяющихся во времени данных: остатков товаров, взаиморасчетов с контрагентами, движения денежных средств. Однако иногда возникают ситуации, когда необходимо удалить ошибочно внесенную запись — например, при дублировании документа, исправлении ошибок в учете или тестировании конфигурации. Неправильное удаление может привести к расхождению итогов, нарушению целостности данных или ошибкам при закрытии периода.
В этой статье мы разберем 5 способов удаления записей из регистра накопления: от ручного удаления через интерфейс до программных методов для опытных пользователей. Особое внимание уделим последствиям каждого подхода и мерам предосторожности. Если вы работаете с типовой конфигурацией (1С:Бухгалтерия 8, 1С:УТ 11, 1С:ERP), проверьте права доступа перед началом манипуляций — некоторые операции требуют режима "Все функции" или прав администратора.
⚠️ Важно: Удаление записей из регистров накопления может повлиять на расчеты остатков и оборотов. Рекомендуется создать резервную копию базы перед началом работы, особенно если вы используете методы прямого редактирования таблиц или программный код.
1. Удаление записи через интерфейс документа
Самый безопасный и рекомендуемый способ — удаление записи через документ-источник. Если запись в регистре была сделана документом (например, Поступление товаров, Реализация или Операция), достаточно отменить проведение или удалить сам документ.
Как это сделать:
- 📄 Откройте журнал документов (например,
Покупки → Поступления товаров). - 🔍 Найдите документ, который сформировал ошибочную запись (проверьте дату, номер и контрагента).
- 🗑️ Нажмите
Удалить(илиОтменить проведение, если документ уже проведен). - 🔄 Перепроведите связанные документы, если требуется восстановить корректные данные.
Этот метод гарантирует, что все связанные движения (в других регистрах, бухгалтерских счетах) будут удалены автоматически. Однако он работает только если запись была сделана документом. Для ручных операций или записей, добавленных обработками, потребуются другие способы.
Если документ уже закрыт или заблокирован, попробуйте создать документ-корректировку (например, "Корректировка долга" или "Операция (бухгалтерская)") с обратными проводками вместо удаления.
2. Ручное удаление через "Все функции"
Если запись была добавлена вручную (например, через Операция → Ввод остатков или обработку), можно удалить её напрямую из регистра. Для этого:
- Перейдите в режим
Все функции(менюСервис → Все функцииили нажмитеCtrl+Shift+F12). - Откройте раздел
Регистры накопленияи выберите нужный регистр (например,Товары на складахилиВзаиморасчеты с контрагентами). - В форме регистра нажмите
Ещё → Показать все записи(илиВсе действия → Открыть список записей). - Найдите ошибочную запись по дате, номеру документа или реквизитам (используйте фильтр
Ctrl+F). - Выделите строку и нажмите
Удалить(илиDel). Подтвердите действие.
⚠️ Внимание: При таком удалении не проверяются связи с другими объектами (документами, отчетами). Если запись была сделана документом, лучше использовать метод из первого раздела, иначе возможны расхождения в учете.
Что делать, если кнопка "Удалить" неактивна?
Если кнопка Удалить заблокирована, это может означать:
- 🔒 У вас недостаточно прав (требуется роль "Администратор" или "Полные права").
- 📅 Запись относится к закрытому периоду (проверьте настройки учета в
Администрирование → Настройки учета). - 🔗 Запись защищена от изменений обработкой или расширением конфигурации.
В таких случаях попробуйте удалить запись программно (см. раздел 4) или обратитесь к администратору базы.
3. Использование обработки "Универсальный отчет"
Для массового удаления записей или работы с большими объемами данных удобно использовать обработку "Универсальный отчет" (входит в типовую поставку 1С:Предприятие). Она позволяет гибко фильтровать и редактировать записи регистров.
Алгоритм действий:
- 📊 Откройте обработку через
Файл → Открыть → [Папка с шаблонами] → UniversalReport.epf. - 🔧 В настройках отчета выберите источник данных — нужный регистр накопления.
- 🔍 Задайте фильтр по дате, складу, номенклатуре или другим реквизитам, чтобы выделить ошибочные записи.
- 📋 Нажмите
Сформировать, затем в результатах выделите строки и выберитеДействия → Удалить помеченные.
Преимущество этого метода — возможность предварительного просмотра записей перед удалением. Однако будьте осторожны: обработка не проверяет логическую целостность данных. Например, если вы удалите запись о поступлении товара, но оставите запись о его продаже, возникнет отрицательный остаток, что приведет к ошибкам в отчетах.
| Метод удаления | Когда использовать | Риски |
|---|---|---|
| Через документ-источник | Если запись сделана документом | Минимальные (автоматическая синхронизация) |
| Ручное удаление ("Все функции") | Для единичных записей, добавленных вручную | Расхождения в связанных регистрах |
| Обработка "Универсальный отчет" | Массовое удаление с фильтрацией | Отрицательные остатки, нарушение итогов |
| Программный код (1C:Enterprise) | Для опытных пользователей и сложных случаев | Ошибки в коде могут повредить базу |
4. Программное удаление с помощью кода
Для опытных пользователей и программистов 1С доступно удаление записей через встроенный язык. Этот метод полезен, если нужно удалить записи по сложному условию или автоматизировать процесс. Пример кода для удаления записи из регистра ТоварыНаСкладах:
// Подключаем менеджер регистра
Регистр = РегистрыНакопления.ТоварыНаСкладах;
// Создаем выборку записей по фильтру
Выборка = Регистр.Выбрать(
Новый Структура("Номенклатура, Склад", НоменклатураСсылка, СкладСсылка)
);
// Удаляем каждую запись в цикле
Пока Выборка.Следующий() Цикл
Регистр.Удалить(Выборка.Ссылка);
КонецЦикла;
⚠️ Внимание: Прямое удаление через код не проверяет ссылки на документы и может нарушить целостность данных. Перед выполнением:
- 🛡️ Сделайте резервную копию базы (
Администрирование → Выгрузить информационную базу). - 🔍 Проверьте, не используется ли запись в других регистрах или отчетах (например, через запрос с joins).
- 📝 Зафиксируйте параметры удаляемых записей (дату, номенклатуру, количество) для отката изменений.
Создана резервная копия базы
Проверены права доступа (режим "Конфигуратор")
Тестирование кода выполнено на копии базы
Запланировано время на откат при ошибках
-->
5. Удаление через внешние обработки (для сложных случаев)
Если стандартные методы не подходят (например, нужно удалить записи по сложному алгоритму или в закрытом периоде), можно использовать внешние обработки. Популярные решения:
- 🛠️ "Помощник удаления движений" — позволяет удалять движения документов с проверкой связей.
- 🔄 "Редактор движений" — визуальный инструмент для правки записей в регистрах.
- 📊 "Универсальный корректировщик регистров" — поддерживает массовые операции с фильтрацией.
Где взять обработки:
- Официальный каталог 1С (
https://its.1c.ru, раздел "Обработки"). - Форум Инфостарт (
https://infostart.ru) — проверяйте рейтинг и отзывы перед скачиванием. - Партнерские решения (например, от фирм-франчайзи 1С).
⚠️ Предупреждение: Обработки от сторонних разработчиков могут содержать уязвимости или некорректный код. Перед использованием:
🔐 Проверьте обработку на тестовой базе.
📄 Изучите исходный код (если открыт) на наличие подозрительных функций.
🛡️ Используйте антивирус для сканирования файла
.epf.
6. Как восстановить данные после ошибочного удаления
Если вы удалили запись по ошибке, есть несколько способов восстановления:
- Откат через резервную копию:
Восстановите базу из бэкапа (если он создан до удаления). В 1С:Предприятие 8.3 это делается через
Администрирование → Загрузить информационную базу. - Повторное проведение документа:
Если запись была сделана документом, найдите его в архиве и проведите заново. В типовой конфигурации документы хранятся в журнале
Все документы. - Ручной ввод корректирующей записи:
Создайте новый документ (например,
ОперацияилиКорректировка записей регистров) с обратными движениями.
💡 Совет: В 1С:ERP и 1С:КА 2 есть встроенный механизм История изменений (меню Администрирование → История данных). Он позволяет отследить, кто и когда удалил запись, но не восстанавливает данные автоматически.
Чтобы минимизировать риски, настройте автоматическое резервное копирование базы (ежедневно или перед критическими операциями). В 1С:Предприятие 8.3 это делается через Администрирование → Поддержка и обслуживание → Резервное копирование.
FAQ: Частые вопросы по удалению записей в регистрах накопления
Можно ли удалить запись из регистра накопления, если период закрыт?
В типовой конфигурации удаление записей в закрытом периоде заблокировано. Чтобы обойти ограничение:
- Откройте период через
Администрирование → Настройки учета → Периоды. - Используйте документ
Корректировка записей регистров(доступен в режиме "Все функции"). - Для 1С:ERP или 1С:КА создайте
Задание на изменение данныхс обоснованием.
⚠️ После открытия периода перепроверьте все связанные отчеты (например, Оборотно-сальдовую ведомость).
Почему после удаления записи остатки не изменились?
Это происходит, если:
- 🔄 Запись была последней в периоде — итоги регистра пересчитываются только при следующем проведении документа.
- 📊 В настройках регистра отключен флаг
Поддерживать итоги(проверьте в конфигураторе). - 🔗 Запись дублируется в другом регистре (например, в
Товары в путиилиЗаказы покупателей).
Решение: выполните Пересчет итогов через Все функции → Регистры накопления → [Ваш регистр] → Ещё → Пересчитать итоги.
Как удалить все записи по конкретной номенклатуре?
Используйте обработку Универсальный отчет или программный код:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладах.Ссылка КАК Ссылка
|ИЗ
| РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
|ГДЕ
| ТоварыНаСкладах.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура", НоменклатураСсылка);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыНакопления.ТоварыНаСкладах.Удалить(Выборка.Ссылка);
КонецЦикла;
⚠️ Перед выполнением проверьте, не используется ли номенклатура в других документах (через отчет Анализ использования объектов).
Что делать, если при удалении появляется ошибка "Запись используется"?
Ошибка означает, что запись ссылается на другой объект (документ, справочник или регистр). Решения:
- 🔗 Найдите ссылки через запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ| Метаданные.Ссылка КАК Объект,
| Метаданные.Тип КАК Тип
|ИЗ
| РегистрСведений.СсылкиОбъектов КАК Метаданные
|ГДЕ
| Метаданные.Ссылка = &ВашаСсылка
- 📝 Если запись ссылается на документ, отмените его проведение.
- 🔧 В крайнем случае используйте
Пометить на удалениевместо прямого удаления.
Как запретить пользователям удалять записи из регистров?
Ограничьте права через Администрирование → Пользователи и права:
- Создайте новую роль (например,
Оператор без прав на редактирование регистров). - В настройках роли снимите флаги:
- 🔘
Редактирование движений документов - 🔘
Интерактивное удаление объектов - 🔘
Изменение данных через "Все функции"
- 🔘
💡 Для 1С:ERP также настройте Бизнес-процессы и Задачи, чтобы изменения проходили через согласование.