Пропали документы и элементы справочников в 1С 8.3: что можно вернуть и каким способом
Содержание
Удалённые объекты в 1С 8.3 восстанавливаются двумя принципиально разными путями. Если документ или элемент справочника только помечен на удаление, он лежит в базе целиком: выделите строку в списке и нажмите Del ещё раз — пометка снимется. Если же кто-то запустил удаление помеченных объектов, записи в базе больше нет, и вернуть её можно только из резервной копии.
Частое заблуждение — что журнал регистрации хранит удалённые данные и из него можно «откатить» удаление. Не хранит. Журнал покажет, кто, когда и что удалил, а сами реквизиты и табличные части придётся брать из копии базы.
Помечен или удалён физически: как определить, что случилось с объектом
От ответа на этот вопрос зависит всё остальное. Потратьте на проверку пять минут, прежде чем поднимать бэкапы.
Признаки пометки на удаление
- 🔴 Строка в списке на месте, но иконка слева перечёркнута крестиком.
- 📄 Документ открывается, реквизиты и табличная часть заполнены.
- 🔍 Объект находится поиском по номеру или наименованию.
Пометка — это просто флаг. Данные целы, ссылки на объект в других документах работают.
Признаки физического удаления
- ❌ Объекта нет в списке даже при сброшенных отборах.
- 🔗 В документах, где он был выбран, вместо значения видно
<Объект не найден>и длинный идентификатор. - 📉 Обороты и остатки в отчётах изменились, а документа, который их давал, нет.
Строка <Объект не найден> — важная подсказка. Она означает, что ссылка в других объектах сохранилась, а сама запись исчезла. При возврате из копии с тем же внутренним идентификатором такие «битые» ссылки оживут сами.
Прежде чем делать вывод «удалено»
Сначала исключите простые причины, из-за которых объект просто не виден:
- Сбросьте отбор и поиск в форме списка. Отбор по организации, периоду или складу прячет строки незаметно.
- Проверьте период списка документов. Если в форме задан интервал дат, документ за другой месяц не отобразится.
- Поищите элемент справочника в других группах. Его могли перенести, а не удалить.
- Убедитесь, что вы в той базе. При нескольких базах в списке запуска путаница случается чаще, чем кажется.
Снимаем пометку удаления и возвращаем объект в работу
Это самый частый и самый безопасный случай.
Порядок действий
- Откройте список нужных документов или справочник.
- Выделите помеченную строку. Можно выделить несколько, удерживая
Ctrl. - Нажмите
Delлибо выберите в контекстном меню команду снятия пометки. Клавиша работает как переключатель: ставит пометку и снимает её. - Подтвердите действие в вопросе программы.
Что сделать с документом после снятия пометки
Когда проведённый документ помечают на удаление, 1С отменяет его проведение и очищает движения по регистрам. Снятие пометки движения не возвращает — документ остаётся непроведённым.
Поэтому после снятия пометки:
- Откройте документ и проверьте, что реквизиты не изменились.
- Проведите его.
- Если за период уже закрыт месяц, учтите, что повторное проведение задним числом может потребовать повторного закрытия месяца.
Если в базе установлена дата запрета изменения данных, провести документ в закрытом периоде не получится. Это не ошибка восстановления, а защита. Решение о переносе даты запрета принимает главный бухгалтер.
Если помечено на удаление много объектов разом, откройте в разделе Администрирование → Обслуживание обработку удаления помеченных объектов: она показывает полный перечень помеченного. Это удобный способ увидеть масштаб, но не нажимайте в ней кнопку удаления.
Ищем следы удаления в журнале регистрации
Журнал регистрации отвечает на вопросы «кто», «когда» и «что именно». Без этих данных трудно выбрать правильную резервную копию.
Как открыть журнал
- 🖥 В пользовательском режиме: раздел
Администрирование → Обслуживание, группа отчётов администратора, пункт «Журнал регистрации». - 🛠 В конфигураторе:
Администрирование → Журнал регистрации.
Какие события смотреть
| Событие в журнале | Что означает |
|---|---|
| Данные. Удаление | Объект физически удалён из базы |
| Данные. Изменение | Объект записан; так фиксируется и установка пометки удаления |
| Данные. Отмена проведения | Документ стал непроведённым |
Задайте отбор:
- Период — от последнего дня, когда объект точно был на месте, до текущего момента.
- Событие — «Данные. Удаление».
- При необходимости — пользователь или компьютер.
В строке события видно точное время, имя пользователя, компьютер, приложение и представление объекта, например «Реализация (акт, накладная) 00БП-000123 от 03.10». По этому представлению поймёте, тот ли это документ.
Чего журнал не умеет
Журнал регистрации не хранит содержимое удалённого объекта. В нём нет сумм, строк табличной части, реквизитов. Восстановить документ «из журнала» нельзя — только узнать момент удаления.
Этот момент и есть главная ценность журнала. Нужна резервная копия, сделанная до него, и чем ближе к нему, тем меньше работы при переносе.
Если журнал пуст или обрывается на какой-то дате, проверьте в конфигураторе уровень регистрации событий: Администрирование → Настройка журнала регистрации. При уровне «Не регистрировать» или «Регистрировать ошибки» удаление не попадёт в журнал.
Возвращаем удалённые данные из резервной копии базы
Главное правило: резервную копию разворачивают в отдельную, новую базу, а не поверх рабочей. Загрузка копии поверх рабочей вернёт удалённый документ, но сотрёт всё, что пользователи ввели после момента копии.
Шаг 1. Выберите копию
Нужна копия, сделанная после создания объекта и до его удаления. Время удаления берите из журнала регистрации.
| Вид копии | Где обычно лежит | Как развернуть |
|---|---|---|
Файл выгрузки .dt | Папка бэкапов, сделанных из конфигуратора | Создать пустую базу, в конфигураторе Администрирование → Загрузить информационную базу |
| Копия каталога файловой базы | Архив с файлом 1Cv8.1CD | Распаковать в новую папку и добавить её в список баз |
Бэкап СУБД (.bak, дамп PostgreSQL) | Сервер СУБД | Восстановить под новым именем базы и создать на ней информационную базу в кластере |
| Теневая копия Windows | «Предыдущие версии» папки с файловой базой | Скопировать папку из предыдущей версии в новое место |
Шаг 2. Изолируйте копию
Развёрнутая копия — полноценная база с теми же настройками. Без изоляции она способна натворить дел:
- 📤 отправить документы через узел обмена;
- 📧 разослать письма и уведомления;
- 🔄 запустить регламентные задания и загрузку банковских выписок.
Современные типовые конфигурации при первом запуске на новом месте спрашивают, является ли база копией, и предлагают заблокировать работу с внешними ресурсами. Выберите блокировку. Для клиент-серверной базы при создании информационной базы в кластере дополнительно включите запрет регламентных заданий.
Шаг 3. Перенесите объекты в рабочую базу
Один-два небольших документа проще ввести заново по образцу из копии. Если объектов много или на них ссылаются другие документы, переносите с сохранением внутренних идентификаторов.
Для этого применяют обработку «Выгрузка и загрузка данных XML» с диска ИТС. Порядок:
- Откройте обработку в копии через
Файл → Открыть. - На вкладке выгрузки отметьте нужный вид объектов и задайте отбор по конкретным ссылкам или номерам.
- Выгрузите в файл XML.
- Откройте ту же обработку в рабочей базе и загрузите файл.
- Проведите загруженные документы.
Плюс этого способа — тот же внутренний идентификатор. Все ссылки <Объект не найден> в рабочей базе снова покажут нормальное значение.
Перед загрузкой в рабочую базу сделайте её свежую копию. Загрузка XML записывает объекты напрямую, и ошибку в отборе (выгрузили лишнее) проще откатить из копии, чем разбирать вручную. Загружайте в нерабочее время или предупредите пользователей.
Если удалён элемент справочника, на который ссылаются сотни документов, переносите его в первую очередь. Документы в рабочей базе остались, им не хватает только этого элемента.
Откат клиент-серверной базы на момент времени по журналу транзакций СУБД
Ночной бэкап бывает слишком старым: объект создали утром и удалили днём. Тогда спасает журнал транзакций СУБД — если он сохраняется.
Условия для MS SQL Server
- 🗄 База в модели восстановления
FULL(полная). - 💾 Есть полный бэкап и непрерывная цепочка бэкапов журнала после него.
В модели SIMPLE журнал транзакций не копится, и точечный откат невозможен. Тогда остаются только полные или разностные бэкапы.
Пример восстановления копии на момент до удаления
Логические имена файлов узнайте командой RESTORE FILELISTONLY для файла полного бэкапа. Затем:
RESTORE DATABASE Buh_restore
FROM DISK = N'D:\Backup\Buh_full.bak'
WITH MOVE N'Buh' TO N'D:\SQLData\Buh_restore.mdf',
MOVE N'Buh_log' TO N'D:\SQLData\Buh_restore_log.ldf',
NORECOVERY;
RESTORE LOG Buh_restore
FROM DISK = N'D:\Backup\Buh_log_1200.trn'
WITH STOPAT = N'2026-10-06T14:25:00',
RECOVERY;
Время в STOPAT ставьте на минуту-две раньше события «Данные. Удаление» из журнала регистрации 1С. Если бэкапов журнала несколько, их применяют по порядку с NORECOVERY, а STOPAT с RECOVERY указывают в последнем.
PostgreSQL
Аналог — восстановление на момент времени (PITR). Оно возможно, только если заранее было настроено архивирование WAL-файлов и есть базовая копия кластера. Цель восстановления задаётся параметром recovery_target_time. Восстанавливают на отдельный экземпляр PostgreSQL, а не на рабочий.
После восстановления
- В консоли кластера создайте новую информационную базу на восстановленной базе данных СУБД, с запретом регламентных заданий.
- Дальше — как в предыдущем разделе: изоляция и перенос объектов через выгрузку XML.
Восстановление выполняйте только под новым именем базы. Команда RESTORE поверх рабочей базы с WITH REPLACE откатит всю базу и уничтожит работу всех пользователей после указанного времени.
Сторонние утилиты и восстановление файлов: на что рассчитывать
Если резервной копии нет, вариантов немного. Честно о каждом.
Если удалили объект внутри файловой базы
После физического удаления запись помечается как свободное место внутри 1Cv8.1CD. Пока его не перезаписали новые данные, фрагменты могут лежать в файле. Сторонние программы чтения формата 1CD (например, Tool_1CD) позволяют посмотреть таблицы файла без запуска платформы.
Гарантий здесь нет: любая работа пользователей после удаления может затереть фрагменты. Работают только с копией файла, базу перед этим закрывают.
Если удалили всю файловую базу с диска
Тогда это задача обычного восстановления файлов. Порядок:
- Сразу прекратите запись на этот диск.
- Проверьте корзину и «Предыдущие версии» папки.
- Используйте программу восстановления удалённых файлов с сохранением результата на другой диск.
Что не поможет
- 🚫 Тестирование и исправление информационной базы (
chdbfl.exeили режим в конфигураторе). Оно чинит повреждённую структуру, а удалённые объекты не возвращает. - 🚫 Повторный запуск удаления помеченных «в обратную сторону» — такой операции нет.
Для клиент-серверной базы без бэкапов журнала транзакций разбор удалённых строк возможен только силами администратора СУБД. Это долго, дорого и тоже без гарантий.
Как не терять данные снова: настройки, которые стоит сделать сегодня
Права пользователей
В типовых конфигурациях на базе БСП рядовые пользователи обычно могут только ставить пометку удаления. Право на непосредственное удаление (Shift+Del) должно быть только у администратора. Проверьте, не выданы ли кому-то полные права «для удобства».
Удаление помеченных — с задержкой
Не чистите помеченные объекты сразу. Разумный режим — раз в месяц-квартал, после закрытия периода и после свежего бэкапа. Если включено удаление помеченных по расписанию, убедитесь, что пользователи об этом знают.
Резервные копии
- 📅 Ежедневная копия базы и хранение минимум за 2–4 недели.
- 🗄 Для SQL-баз — модель
FULLи бэкап журнала каждые 15–60 минут. - 🏠 Хотя бы одна копия — вне сервера с базой.
- ✅ Пробное восстановление раз в квартал: бэкап, который ни разу не разворачивали, — это надежда, а не копия.
Журнал регистрации и история изменений
- Уровень журнала — не ниже «Регистрировать ошибки, предупреждения и информацию».
- Не сокращайте журнал раньше, чем истекает срок хранения бэкапов.
- Включите в типовой конфигурации историю изменений объектов (версионирование) в разделе
Администрирование → Общие настройки. Она помогает вернуть прежние значения реквизитов существующего объекта. От физического удаления она не страхует, эту задачу решают только бэкапы.