Документ в ЗУП помечен, но не исчез: доводим удаление до конца

· 10 мин

Содержание

Чтобы окончательно удалить документ в 1С ЗУП 3.1 , его сначала помечают на удаление (клавиша Del в списке), а потом запускают обработку Администрирование → Обслуживание → Корректность данных → Удаление помеченных объектов. Только она физически убирает помеченные объекты из базы, и только те, на которые больше ничего не ссылается.

Типичная картина: кадровик пометил ошибочный «Приём на работу» или лишнее «Начисление зарплаты», а документ так и висит в списке перечёркнутым. Ниже — как довести удаление помеченных объектов до конца, что делать, когда программа отказывается удалять, и как настроить регулярную чистку.

Как удалить документ в 1С ЗУП: пометка и почему он не исчезает сразу

В типовых ЗУП право непосредственного удаления у пользователей отключено. Это сделано намеренно: в зарплатной базе документы связаны друг с другом, и мгновенное удаление одного из них оставило бы «битые» ссылки в других.

Поэтому удаление идёт в два этапа:

  1. 🗂 Пометка. Выделите документ в журнале и нажмите Del или выберите в меню Ещё команду Пометить на удаление / Снять пометку. Подтвердите вопрос программы. Строка станет перечёркнутой.
  2. 🧹 Физическое удаление. Обработка проверяет, нет ли на помеченный объект ссылок, и удаляет только «свободные».

Что происходит при пометке:

  • ✅ проведённый документ автоматически становится непроведённым, его движения по регистрам (начисления, кадровые данные, взаимозачёты) убираются;
  • ✅ пометку можно снять той же командой — документ вернётся, его останется провести заново;
  • ❌ из базы он пока не удалён и продолжает занимать номер в нумерации.

Перечёркнутые документы можно скрыть из списка: в меню Ещё есть настройка отображения помеченных на удаление. Это только фильтр — в базе они остаются.

Когда пометка не ставится

Если программа отказывается ставить пометку, почти всегда виновата дата запрета изменения. Документ, попавший в закрытый период, нельзя ни изменить, ни пометить. Дату запрета настраивает администратор в разделе Администрирование → Пользователи и права → Даты запрета изменения. Открывать период ради удаления стоит только по согласованию с главным бухгалтером: изменения в закрытом месяце могут разойтись со сданной отчётностью.

Когда документ лучше не удалять, а исправить

В ЗУП удаление подходит для черновиков и ошибочно созданных документов текущего месяца. С документами прошлых периодов, по которым уже выплачены деньги и сданы отчёты, удаление опасно: изменятся суммы НДФЛ, взносов и данные персонифицированной отчётности.

Для таких случаев есть другие инструменты:

  • ✏️ у отпусков, больничных и ряда других начислений в форме документа есть команда Исправить — она создаёт исправляющий документ, а исходный остаётся в истории;
  • 🔄 ошибки в начислениях прошлых месяцев закрывают перерасчётом в текущем периоде;
  • 🧾 выплаченную ведомость не удаляют, а отражают возврат или доплату отдельным документом.

Правило простое: если документ уже попал в выплату или отчётность — сначала спросите бухгалтера, нужно ли его удалять.

Подготовка: копия базы, права и пользователи

Физическое удаление необратимо. «Корзины» в 1С нет, вернуть удалённый документ можно только из резервной копии.

Перед удалением помеченных объектов сделайте резервную копию базы .

Как сделать копию:

Тип базыСпособ
ФайловаяЗакрыть все сеансы и скопировать каталог базы (файл 1Cv8.1CD) или выгрузить .dt через Конфигуратор: Администрирование → Выгрузить информационную базу
Клиент-сервернаяБэкап средствами СУБД (MS SQL, PostgreSQL) или выгрузка .dt
В облаке (1С:Фреш и аналоги)Резервная копия из личного кабинета сервиса

Что ещё проверить:

  • 👤 Права. Обработку запускает пользователь с полными правами или с доступом к разделу администрирования. Рядовой расчётчик её обычно не видит.
  • 👥 Пользователи в базе. В актуальных релизах обработка работает без монопольного режима, но объекты, открытые другими пользователями, будут пропущены. Удобнее запускать вечером или в выходные.
  • 🔍 Список помеченных. Пройдитесь по нему до запуска: бывает, что пометку поставили по ошибке на нужный документ.

Способ 1. Обработка «Удаление помеченных объектов» в ЗУП 3.1

Это основной и безопасный путь, его хватает в абсолютном большинстве ситуаций.

Где найти обработку

  • 📍 Администрирование → Обслуживание → Корректность данных → Удаление помеченных объектов;
  • 📍 через меню Все функции → Обработки → Удаление помеченных объектов, если в разделе администрирования ссылку не видно.

Команда Все функции включается в Сервис и настройки → Параметры: флажок «Показывать команду “Все функции”».

Порядок действий

  1. Откройте обработку. Она предложит удалить все помеченные объекты или выбрать их вручную.
  2. Для точечной чистки выберите выборочный режим. Программа покажет дерево: справочники, документы, прочие объекты. Снимите флажки с того, что трогать не нужно.
  3. Запустите удаление. Процесс идёт в фоне, на базе в несколько гигабайт он может занять от минут до часа.
  4. Изучите итог. Объекты, которые удалить не удалось, выводятся отдельным списком вместе с местами использования — теми объектами, которые на них ссылаются.

Режим «удалить всё» удобен, но в ЗУП он захватывает и старые справочники: помеченные должности, подразделения, виды начислений. Если не уверены, что их можно удалять, работайте выборочно.

Почему документ не удаляется: ссылки

Обработка не удалит объект, пока на него есть хотя бы одна живая ссылка. В ЗУП такие цепочки встречаются постоянно:

  • 💰 «Начисление зарплаты» → на него ссылается ведомость на выплату;
  • 🧾 ведомость → на неё ссылается списание с расчётного счёта (если ведомости выгружены в бухгалтерию, связь может быть на стороне БП);
  • 👔 «Приём на работу» → на сотрудника ссылаются переводы, отпуска, больничные, начисления;
  • 📋 вид начисления в справочнике → используется в документах прошлых периодов.

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

Диагностика: выберите симптом

Способ 2. Конфигуратор и толстый клиент: что реально можно

В инструкциях часто советуют «удалить помеченные через конфигуратор». Это неточность: режим Конфигуратор работает с метаданными и самой базой как файлом, но удалять отдельные документы ЗУП он не умеет.

Что Конфигуратор даёт в этой задаче:

  • 💾 выгрузку базы в .dt перед удалением и загрузку обратно, если что-то пошло не так;
  • 🛠 Администрирование → Тестирование и исправление — помогает, если удаление обрывается из-за ошибок в базе (битые ссылки, ошибки индексов). Для этой проверки нужен монопольный доступ, все пользователи должны выйти;
  • 🖥 запуск базы в режиме толстого клиента. В нём через Все функции → Стандартные доступна платформенная обработка удаления помеченных — запасной вариант, если типовая обработка ЗУП по какой-то причине не открывается.

Тестирование и исправление с включённым флажком исправления ссылок меняет данные. Запускайте его только после резервной копии и не во время рабочего дня.

Способ 3. Сторонние обработки для чистки базы

Внешние обработки .epf нужны в узких случаях: массовая пометка документов за период, поиск и замена ссылок на дубли, чистка зависших объектов.

Типичный сценарий для ЗУП — дубль сотрудника или физлица. Вместо удаления основного объекта на него переводят все ссылки, после чего дубль удаляется штатной обработкой. Для физических лиц в ЗУП есть и встроенный механизм объединения, его стоит попробовать первым.

Правила работы с внешними обработками:

  1. Берите их из проверенных источников: от своего программиста или обслуживающей фирмы.
  2. Сначала проверьте на копии базы.
  3. Открывайте через Файл → Открыть под администратором. Платформа покажет предупреждение защиты от опасных действий — это нормально для внешнего файла, но повод ещё раз убедиться в его происхождении.
  4. Для постоянного использования регистрируйте обработку в справочнике дополнительных отчётов и обработок, а не открывайте файл каждый раз.

Способ 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

Готовой кнопки «прислать отчёт об удалении на почту» в типовой ЗУП нет. Варианты, как получать результат:

  1. Журнал регистрации — смотреть вручную после запуска. Самый простой путь.
  2. Письмо из обработки — программист дописывает в свою обработку отправку итогов (сколько удалено, что не удалено и почему) через системную учётную запись электронной почты, настроенную в программе.
  3. Мониторинг на стороне сервера — для клиент-серверных баз администратор собирает журнал регистрации своими средствами и отправляет сводку.

Частые вопросы

Можно ли восстановить удалённый документ в ЗУП?
Только из резервной копии. Документ переносят из копии выгрузкой в XML между одинаковыми конфигурациями или вводят заново.
Освободится ли номер удалённого документа?
Номер уже выданного документа программа повторно сама не присвоит. При необходимости новый документ можно перенумеровать вручную.
Почему после удаления база не стала меньше?
В файловой базе место внутри 1Cv8.1CD освобождается, но размер файла не уменьшается. Сжать его помогает тестирование и исправление со сжатием таблиц в Конфигураторе при монопольном доступе.
Удалится ли сотрудник вместе с помеченным приёмом на работу?
Нет. Карточка сотрудника — отдельный объект. Если она больше не нужна, её помечают на удаление отдельно и удаляют, когда на неё не останется ссылок в документах.
Нужно ли удалять помеченные объекты регулярно?
Не обязательно, но полезно: помеченные документы засоряют списки и подборы. Для большинства баз хватает чистки раз в месяц или перед закрытием года.