Удаление документов в 1С:Управление торговлей (УТ 11) без вреда для учёта
Содержание
Многие считают, что документ удаляется нажатием Delete в списке. В 1С:Управление торговлей это не так: одна клавиша только ставит пометку на удаление, а физически объект убирает отдельная процедура — с проверкой ссылок. Поэтому удалить документ
в 1С УТ 11 — это всегда два действия.
Сначала вы помечаете документ на удаление (Ctrl + Delete или правой кнопкой мыши → «Пометить на удаление»). Затем администратор запускает обработку НСИ и администрирование → Администрирование → Обслуживание → Удаление помеченных объектов. Программа проверит, не ссылается ли на документ что-то ещё, и удалит его только если ссылок нет.
Пометить на удаление может рядовой пользователь. А вот физически удалить помеченные объекты — только тот, у кого есть права администратора. И ещё один момент, который удивляет новичков: проведённый документ при пометке на удаление сразу теряет проведение, его движения по регистрам снимаются. На остатки, резервы и взаиморасчёты это влияет моментально — задолго до того, как объект исчезнет из базы.
Что учесть до удаления: права и последствия для учёта
Удаление в 1С УТ 11 необратимо штатными средствами. Поэтому сначала убедитесь, что документ действительно лишний, а не просто «мешает в списке».
Права на удаление разделены:
- 📝 Пометить на удаление может пользователь с обычными правами на работу с документом.
- 🗑️ Запустить физическое удаление может только пользователь с профилем, где включено право на удаление помеченных объектов (как правило, профиль «Администратор» или специально настроенный).
Теперь о последствиях. Когда вы помечаете на удаление проведённый документ:
- отменяется его проведение;
- снимаются все движения по регистрам (остатки товаров, продажи, взаиморасчёты, себестоимость);
- остатки пересчитываются немедленно, и другие пользователи увидят изменившиеся цифры.
Перед удалением документов сделайте резервную копию базы . Отменить физическое удаление нельзя — только развернуть копию.
Чтобы заранее понять, что потянет за собой документ, откройте его и посмотрите структуру подчинённости (команда отчётов по документу, пункт со структурой связанных документов). Там видно всю цепочку: на основании чего введён документ и какие операции введены на его основании. Если в цепочке есть оплаты, счета-фактуры или отгрузки — удаление затронет и их, и это повод остановиться и сначала разобраться со связями.
Не удаляйте документы за закрытый период и за периоды, по которым уже сданы отчёты и рассчитана себестоимость. Разрыв в цепочке партий и движений ломает учёт сильнее, чем лишняя строка в списке.
Как пометить документ на удаление
Пометка — обратимое действие. Пока объект только помечен, его легко вернуть.
- Откройте нужный список документов (например,
Продажи → Реализации товаров и услуг). - Выделите документ. Чтобы отметить несколько — удерживайте
CtrlилиShift. - Нажмите
Ctrl + Deleteлибо правой кнопкой мыши → «Пометить на удаление / Снять пометку». - Подтвердите действие.
Помеченный документ в списке перечёркивается и помечается значком. Это видят все пользователи базы.
Снять пометку так же просто: выделите документ и снова нажмите Ctrl + Delete. Но помните — проведение, снятое при пометке, само не вернётся. Проведённый документ после снятия пометки нужно провести заново.
Как физически удалить помеченные объекты
Это и есть окончательное удаление. Путь: НСИ и администрирование → Администрирование → Обслуживание → Удаление помеченных объектов.
Обработка работает в двух режимах:
- Автоматическое удаление — программа проверяет все помеченные объекты в базе и удаляет те, на которые никто не ссылается.
- Выборочное удаление — вы сами отмечаете галочками конкретные документы.
Порядок действий:
- Запустите обработку из раздела обслуживания.
- Выберите режим (для адресного удаления — выборочный, отметьте нужные документы).
- Нажмите кнопку удаления и дождитесь проверки ссылочной целостности.
- Посмотрите итог: что удалено, а что — нет, и почему.
Если ни на один помеченный документ нет ссылок, он исчезнет из базы. Если ссылки есть — программа оставит объект и покажет, где он используется.
Запускать удаление лучше в тот момент, когда в базе мало пользователей. Проверка ссылок — операция тяжёлая, на больших базах она ощутимо нагружает сервер.
Если документ не удаляется: ищем ссылки
Самая частая причина — на документ ссылаются другие объекты. Программа не даст удалить объект, пока на него что-то указывает, иначе в базе появятся «битые» ссылки.
Разберитесь, какая связь удерживает документ. Иногда проще не удалять, а разорвать зависимость: например, в документе-потребителе заменить ссылку на другой объект.
Когда удалять не нужно: безопасные альтернативы
Удаление — не единственный и часто не лучший способ «убрать» документ. Для торгового учёта важна прослеживаемость операций, а удаление её рвёт.
| Задача | Удаление | Что лучше сделать |
|---|---|---|
| Документ создан по ошибке сегодня, движений ещё нет | можно удалить | пометить на удаление и удалить |
| Операцию отменил контрагент | не удалять | отменить проведение, при закрытом периоде — сторнирующий документ |
| Ошибка в сумме или номенклатуре | не удалять | исправить документ и перепровести |
| Период закрыт, отчётность сдана | нельзя удалять | корректировка или сторно текущей датой |
| Документ-дубль | осторожно | удалять только тот, на который нет ссылок |
Если период закрыт, вместо удаления используйте механизм отмены/сторно. Удаление задним числом пересчитает партии и себестоимость и разойдётся с уже сданной отчётностью.
Отменить проведение, не удаляя документ, можно кнопкой отмены проведения в самом документе или в списке. Движения снимутся, но сам документ и его история останутся в базе. Это удобно, когда операция под вопросом: вы убираете её влияние на остатки, но сохраняете возможность провести обратно без повторного ввода.
Разница между отменой проведения и сторно простая:
- Отмена проведения убирает движения датой самого документа. Годится, пока период открыт.
- Сторно вводит обратную операцию текущей датой и не трогает закрытый период. Применяйте, когда исходный документ уже попал в сданную отчётность.
Для дубля логика другая: оставляйте тот экземпляр, на который уже навешаны связанные документы и оплаты, а удаляйте «пустой». Иначе вы сами создадите себе работу по перепривязке.
Удаление документов программно (для администраторов)
Если удалять нужно массово — например, чистить тестовые или импортированные данные, — есть два пути.
Штатный путь. Та же обработка «Удаление помеченных объектов» умеет работать по отбору: пометьте документы отбором в списке, затем удалите их пакетно в выборочном режиме. Это безопасно — контроль ссылок никуда не девается.
Через код (внешняя обработка). Применяйте только на монопольной копии базы и с резервной копией. Непосредственное удаление не проверяет ссылки и может оставить битые связи.
// Внешняя обработка, запуск администратором на копии базы
Запрос = Новый Запрос(
"ВЫБРАТЬ Ссылка
|ИЗ Документ.РеализацияТоваровУслуг
|ГДЕ ПометкаУдаления");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Попытка
Объект.Удалить(); // непосредственное удаление — БЕЗ контроля ссылок!
Исключение
Сообщить("Не удалён: " + Выборка.Ссылка);
КонецПопытки;
КонецЦикла;
Метод Удалить() стирает объект сразу и не смотрит на ссылки. Если на документ ссылались — в базе останутся «висящие» ссылки, и это придётся лечить отдельно.
Безопаснее не удалять напрямую, а проставить пометку кодом, а дальше отдать работу штатной обработке с её контролем ссылок:
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.УстановитьПометкуУдаления(Истина);
После такого прохода запустите обычное «Удаление помеченных объектов» — оно само проверит ссылки и удалит только то, что можно удалить безопасно.
Не пишите код удаления прямо в рабочей базе «на горячую». Сначала копия, тест, потом перенос результата. И не запускайте массовое удаление в часы активной работы: длительная блокировка на чтении таблиц тормозит остальных пользователей.
Можно ли восстановить удалённый документ
Зависит от того, на каком этапе вы остановились.
- Документ только помечен на удаление — снимите пометку (
Ctrl + Delete) и, если он был проведён, проведите заново. Данные целы. - Документ физически удалён — штатно не восстанавливается. Единственный способ — развернуть резервную копию базы в отдельную информационную базу, найти там документ и перенести его вручную или ввести заново.
В журнале регистрации (НСИ и администрирование → Администрирование → Поддержка и обслуживание → Журнал регистрации) останется запись о событии удаления: кто и когда удалил. Отфильтруйте журнал по событию удаления данных, чтобы быстро найти, в какой момент и под каким пользователем это произошло. Но содержимого документа там нет — журнал фиксирует только факт и реквизиты события.
Если документ восстанавливаете из копии, вводить его в рабочей базе лучше заново по данным из копии, а не переносить «как есть»: при переносе легко притащить устаревшие ссылки на объекты, которых в актуальной базе уже нет. Ввели — перепровели — сверили остатки.
Поэтому резервная копия перед массовым удалением — не формальность. Это ваш единственный способ отката.
Особенности в УТ 11.4 и 11.5
Порядок действий в редакциях 11.4 и 11.5 одинаковый: пометка на удаление, затем удаление помеченных объектов из раздела обслуживания. Названия разделов верхнего уровня между релизами могут незначительно отличаться, но сама обработка «Удаление помеченных объектов» живёт в группе «Обслуживание».
Два момента, о которых стоит помнить:
- 🔄 Распределённая база (РИБ). Если узлы работают в распределённой базе, удаление в главном узле уйдёт в периферийные через обмен. Не удаляйте в периферийном узле то, что ещё не ушло в центр.
- 👥 Монопольный режим не нужен. Удаление помеченных объектов работает в обычном режиме, базу монопольно захватывать не требуется. Но при активной работе пользователей проверка ссылок идёт медленнее.
Если вы перешли на УТ 11 с более старой конфигурации, не переносите привычки из интерфейса 8.2: в «Такси» команда называется «Пометить на удаление / Снять пометку», а не «Все действия → Установить пометку удаления».
Частые вопросы
Исчезнет ли документ у других пользователей сразу после пометки?
Что будет с нумерацией документов после удаления?
Почему после удаления помеченных объектов часть из них осталась?
Как снять пометку удаления сразу с нескольких документов?
Ctrl или Shift и нажмите Ctrl + Delete — пометка снимется со всех выделенных. Проведение при этом не восстанавливается, проведите документы заново.