Документ в ЗУП помечен, но не исчез: доводим удаление до конца
Содержание
Чтобы окончательно удалить документ в 1С ЗУП 3.1
, его сначала помечают на удаление (клавиша Del в списке), а потом запускают обработку Администрирование → Обслуживание → Корректность данных → Удаление помеченных объектов. Только она физически убирает помеченные объекты из базы, и только те, на которые больше ничего не ссылается.
Типичная картина: кадровик пометил ошибочный «Приём на работу» или лишнее «Начисление зарплаты», а документ так и висит в списке перечёркнутым. Ниже — как довести удаление помеченных объектов до конца, что делать, когда программа отказывается удалять, и как настроить регулярную чистку.
Как удалить документ в 1С ЗУП: пометка и почему он не исчезает сразу
В типовых ЗУП право непосредственного удаления у пользователей отключено. Это сделано намеренно: в зарплатной базе документы связаны друг с другом, и мгновенное удаление одного из них оставило бы «битые» ссылки в других.
Поэтому удаление идёт в два этапа:
- 🗂 Пометка. Выделите документ в журнале и нажмите
Delили выберите в менюЕщёкомандуПометить на удаление / Снять пометку. Подтвердите вопрос программы. Строка станет перечёркнутой. - 🧹 Физическое удаление. Обработка проверяет, нет ли на помеченный объект ссылок, и удаляет только «свободные».
Что происходит при пометке:
- ✅ проведённый документ автоматически становится непроведённым, его движения по регистрам (начисления, кадровые данные, взаимозачёты) убираются;
- ✅ пометку можно снять той же командой — документ вернётся, его останется провести заново;
- ❌ из базы он пока не удалён и продолжает занимать номер в нумерации.
Перечёркнутые документы можно скрыть из списка: в меню Ещё есть настройка отображения помеченных на удаление. Это только фильтр — в базе они остаются.
Когда пометка не ставится
Если программа отказывается ставить пометку, почти всегда виновата дата запрета изменения. Документ, попавший в закрытый период, нельзя ни изменить, ни пометить. Дату запрета настраивает администратор в разделе Администрирование → Пользователи и права → Даты запрета изменения. Открывать период ради удаления стоит только по согласованию с главным бухгалтером: изменения в закрытом месяце могут разойтись со сданной отчётностью.
Когда документ лучше не удалять, а исправить
В ЗУП удаление подходит для черновиков и ошибочно созданных документов текущего месяца. С документами прошлых периодов, по которым уже выплачены деньги и сданы отчёты, удаление опасно: изменятся суммы НДФЛ, взносов и данные персонифицированной отчётности.
Для таких случаев есть другие инструменты:
- ✏️ у отпусков, больничных и ряда других начислений в форме документа есть команда
Исправить— она создаёт исправляющий документ, а исходный остаётся в истории; - 🔄 ошибки в начислениях прошлых месяцев закрывают перерасчётом в текущем периоде;
- 🧾 выплаченную ведомость не удаляют, а отражают возврат или доплату отдельным документом.
Правило простое: если документ уже попал в выплату или отчётность — сначала спросите бухгалтера, нужно ли его удалять.
Подготовка: копия базы, права и пользователи
Физическое удаление необратимо. «Корзины» в 1С нет, вернуть удалённый документ можно только из резервной копии.
Перед удалением помеченных объектов сделайте резервную копию базы .
Как сделать копию:
| Тип базы | Способ |
|---|---|
| Файловая | Закрыть все сеансы и скопировать каталог базы (файл 1Cv8.1CD) или выгрузить .dt через Конфигуратор: Администрирование → Выгрузить информационную базу |
| Клиент-серверная | Бэкап средствами СУБД (MS SQL, PostgreSQL) или выгрузка .dt |
| В облаке (1С:Фреш и аналоги) | Резервная копия из личного кабинета сервиса |
Что ещё проверить:
- 👤 Права. Обработку запускает пользователь с полными правами или с доступом к разделу администрирования. Рядовой расчётчик её обычно не видит.
- 👥 Пользователи в базе. В актуальных релизах обработка работает без монопольного режима, но объекты, открытые другими пользователями, будут пропущены. Удобнее запускать вечером или в выходные.
- 🔍 Список помеченных. Пройдитесь по нему до запуска: бывает, что пометку поставили по ошибке на нужный документ.
Способ 1. Обработка «Удаление помеченных объектов» в ЗУП 3.1
Это основной и безопасный путь, его хватает в абсолютном большинстве ситуаций.
Где найти обработку
- 📍
Администрирование → Обслуживание → Корректность данных → Удаление помеченных объектов; - 📍 через меню
Все функции → Обработки → Удаление помеченных объектов, если в разделе администрирования ссылку не видно.
Команда Все функции включается в Сервис и настройки → Параметры: флажок «Показывать команду “Все функции”».
Порядок действий
- Откройте обработку. Она предложит удалить все помеченные объекты или выбрать их вручную.
- Для точечной чистки выберите выборочный режим. Программа покажет дерево: справочники, документы, прочие объекты. Снимите флажки с того, что трогать не нужно.
- Запустите удаление. Процесс идёт в фоне, на базе в несколько гигабайт он может занять от минут до часа.
- Изучите итог. Объекты, которые удалить не удалось, выводятся отдельным списком вместе с местами использования — теми объектами, которые на них ссылаются.
Режим «удалить всё» удобен, но в ЗУП он захватывает и старые справочники: помеченные должности, подразделения, виды начислений. Если не уверены, что их можно удалять, работайте выборочно.
Почему документ не удаляется: ссылки
Обработка не удалит объект, пока на него есть хотя бы одна живая ссылка. В ЗУП такие цепочки встречаются постоянно:
- 💰 «Начисление зарплаты» → на него ссылается ведомость на выплату;
- 🧾 ведомость → на неё ссылается списание с расчётного счёта (если ведомости выгружены в бухгалтерию, связь может быть на стороне БП);
- 👔 «Приём на работу» → на сотрудника ссылаются переводы, отпуска, больничные, начисления;
- 📋 вид начисления в справочнике → используется в документах прошлых периодов.
Выход — разрывать цепочку с конца: сначала пометить и удалить зависимый документ (ведомость), затем основной (начисление). Иногда достаточно открыть ссылающийся документ и убрать из него строку с удаляемым объектом.
Способ 2. Конфигуратор и толстый клиент: что реально можно
В инструкциях часто советуют «удалить помеченные через конфигуратор». Это неточность: режим Конфигуратор работает с метаданными и самой базой как файлом, но удалять отдельные документы ЗУП он не умеет.
Что Конфигуратор даёт в этой задаче:
- 💾 выгрузку базы в
.dtперед удалением и загрузку обратно, если что-то пошло не так; - 🛠
Администрирование → Тестирование и исправление— помогает, если удаление обрывается из-за ошибок в базе (битые ссылки, ошибки индексов). Для этой проверки нужен монопольный доступ, все пользователи должны выйти; - 🖥 запуск базы в режиме толстого клиента. В нём через
Все функции → Стандартныедоступна платформенная обработка удаления помеченных — запасной вариант, если типовая обработка ЗУП по какой-то причине не открывается.
Тестирование и исправление с включённым флажком исправления ссылок меняет данные. Запускайте его только после резервной копии и не во время рабочего дня.
Способ 3. Сторонние обработки для чистки базы
Внешние обработки .epf нужны в узких случаях: массовая пометка документов за период, поиск и замена ссылок на дубли, чистка зависших объектов.
Типичный сценарий для ЗУП — дубль сотрудника или физлица. Вместо удаления основного объекта на него переводят все ссылки, после чего дубль удаляется штатной обработкой. Для физических лиц в ЗУП есть и встроенный механизм объединения, его стоит попробовать первым.
Правила работы с внешними обработками:
- Берите их из проверенных источников: от своего программиста или обслуживающей фирмы.
- Сначала проверьте на копии базы.
- Открывайте через
Файл → Открытьпод администратором. Платформа покажет предупреждение защиты от опасных действий — это нормально для внешнего файла, но повод ещё раз убедиться в его происхождении. - Для постоянного использования регистрируйте обработку в справочнике дополнительных отчётов и обработок, а не открывайте файл каждый раз.
Способ 4. Удаление помеченных объектов кодом
Вариант для программиста: собрать помеченные документы запросом и удалить методом платформы УдалитьОбъекты() с контролем ссылок. Контроль обязателен — без него платформа удалит объект, даже если на него ссылаются, и в базе останутся «битые» ссылки вида <Объект не найден>.
Пример серверной процедуры для внешней обработки:
&НаСервере
Процедура УдалитьПомеченныеДокументыНаСервере()
Удаляемые = Новый Массив;
Для Каждого МетаДокумент Из Метаданные.Документы Цикл
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Т.Ссылка ИЗ Документ." + МетаДокумент.Имя
+ " КАК Т ГДЕ Т.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Удаляемые.Добавить(Выборка.Ссылка);
КонецЦикла;
КонецЦикла;
Сообщить("Помеченных документов: " + Формат(Удаляемые.Количество(), "ЧГ=0"));
Найденные = Неопределено;
Попытка
УдалитьОбъекты(Удаляемые, Истина, Найденные);
Исключение
Сообщить("Удаление прервано: " + ОписаниеОшибки());
Возврат;
КонецПопытки;
Если Найденные <> Неопределено Тогда
Сообщить("Найдено мешающих ссылок: " + Формат(Найденные.Количество(), "ЧГ=0"));
КонецЕсли;
КонецПроцедуры
Что важно знать:
- 🔐 код выполняется с правами текущего пользователя — запускайте под администратором;
- 👥 удаление с контролем лучше проводить, когда в базе нет пользователей: объекты, открытые в других сеансах, удалить не получится;
- 🧪 сначала прогоните на копии и сравните число удалённых объектов с ожидаемым;
- ⛔ прямые запросы к таблицам СУБД (
DELETEв MS SQL или PostgreSQL) для удаления данных 1С не используйте. Платформа не узнает об удалении, связанные записи регистров останутся, и восстановить согласованность будет сложно.
Для разовой задачи этот код почти никогда не нужен: штатная обработка делает то же самое и показывает места использования. Свой код оправдан, когда удаление встраивается в регламентную процедуру или нужен особый отбор, например только документы одного вида за год.
Регулярная очистка по расписанию и отчёт на почту
Если в базе много черновиков и ошибочных документов, удаление можно поставить на автомат.
Регламентное задание
В ЗУП 3.1 есть регламентное задание удаления помеченных объектов. Найти его можно в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Откройте задание, включите его и задайте расписание, например каждое воскресенье в 02:00.
Особенности:
- 🖥 клиент-серверная база — задания выполняет сервер 1С по расписанию, сеанс пользователя не нужен;
- 📁 файловая база — регламентные задания выполняются только пока база открыта хотя бы у одного пользователя. Ночью при закрытой базе задание не сработает;
- 📜 результат каждого запуска пишется в журнал регистрации:
Администрирование → Обслуживание → Журнал регистрации, отбор по событиям регламентного задания.
Запуск из командной строки
Для файловой базы ночную чистку можно запустить планировщиком Windows: платформа открывает базу и выполняет внешнюю обработку с процедурой удаления.
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\ZUP" /N"Администратор" /P"пароль" /Execute"D:\Scripts\udalenie.epf" /DisableStartupDialogs
Внутри такой обработки процедура удаления вызывается при открытии формы, а в конце работа завершается командой ЗавершитьРаботуСистемы(Ложь).
Пароль в bat-файле хранится открытым текстом. Создайте для задачи отдельного пользователя 1С и ограничьте доступ к папке со скриптом. Перед запуском в рабочее время предупредите коллег: при сбое обработка может держать объекты заблокированными.
Лог на email
Готовой кнопки «прислать отчёт об удалении на почту» в типовой ЗУП нет. Варианты, как получать результат:
- Журнал регистрации — смотреть вручную после запуска. Самый простой путь.
- Письмо из обработки — программист дописывает в свою обработку отправку итогов (сколько удалено, что не удалено и почему) через системную учётную запись электронной почты, настроенную в программе.
- Мониторинг на стороне сервера — для клиент-серверных баз администратор собирает журнал регистрации своими средствами и отправляет сводку.
Частые вопросы
Можно ли восстановить удалённый документ в ЗУП?
Освободится ли номер удалённого документа?
Почему после удаления база не стала меньше?
1Cv8.1CD освобождается, но размер файла не уменьшается. Сжать его помогает тестирование и исправление со сжатием таблиц в Конфигураторе при монопольном доступе.