Кто удалил документ в 1С и как его вернуть: журнал, копии, хранилище
Содержание
Посмотреть удаленные объекты в 1С можно двумя путями. Помеченные на удаление документы и элементы видны прямо в списках: у них перечёркнутая иконка, а полный перечень открывается в Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. То, что удалено окончательно, в базе уже нет. Остаются журнал регистрации (кто, когда и что удалил) и резервная копия, из которой объект можно вернуть.
Документ пропал из списка, в отчётах вместо контрагента <Объект не найден>, а программист клянётся, что модуль не трогал. Ниже порядок действий: сначала понять, что именно исчезло, потом найти виновника и вернуть данные.
Что пропало: пометка удаления или окончательное удаление
От ответа на этот вопрос зависит всё остальное. В 1С 8.3 удаление почти всегда идёт в два этапа:
- 🟡 Пометка удаления. Пользователь нажимает
Delили «Пометить на удаление». Объект остаётся в базе, документ теряет проведение, но его можно найти и снять пометку. - 🔴 Окончательное удаление. Администратор запускает обработку удаления помеченных объектов, либо пользователь с правом «Интерактивное удаление» удаляет объект сразу через
Shift+Del. Записи в таблицах базы больше нет.
Как увидеть помеченные на удаление объекты
- Откройте нужный список: документы, справочник, присоединённые файлы.
- Помеченные строки отмечены перечёркнутой иконкой. Если их не видно, проверьте отбор:
Ещё → Настроить список → Отбор, поле «Пометка удаления». - Чтобы увидеть всё помеченное по базе разом, откройте
Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. Обработка покажет список по видам объектов. Смотреть его безопасно, пока вы не нажали кнопку удаления. - Нужный объект откройте и снимите пометку той же командой, которой её ставили.
Для выборки по одному виду объектов удобна консоль запросов:
ВЫБРАТЬ
Док.Ссылка,
Док.Дата,
Док.Номер
ИЗ
Документ.ПоступлениеТоваровУслуг КАК Док
ГДЕ
Док.ПометкаУдаления
УПОРЯДОЧИТЬ ПО
Док.Дата
Признаки окончательного удаления
- 🔗 В других документах вместо ссылки стоит
<Объект не найден>с длинным идентификатором в скобках. - 📭 Поиск по номеру в списке ничего не даёт, даже с пустым отбором.
- 🧾 В журнале регистрации есть событие удаления по этому объекту (о нём ниже).
Битая ссылка хранит уникальный идентификатор удалённого объекта. Это пригодится при восстановлении: объект, загруженный из копии с тем же идентификатором, «оживит» все ссылки на себя.
Журнал регистрации: кто и когда удалил объект в 1С
Журнал регистрации — главный способ посмотреть удаленные объекты в 1С и понять, что с ними произошло. Он не хранит содержимое документа, но хранит факт: пользователь, компьютер, время и представление объекта.
Где открыть журнал
| Где | Путь |
|---|---|
| БП 3.0, ЗУП 3.1, УТ 11 | Администрирование → Обслуживание → Журнал регистрации |
| Конфигуратор | Администрирование → Журнал регистрации |
| Любая конфигурация | Все функции → Стандартные → Журнал регистрации |
Пункт «Все функции» включается в Сервис и настройки → Параметры, флажок «Отображать команду “Все функции”».
Как отфильтровать удаление
- Откройте журнал и задайте отбор по периоду: день, когда объект ещё точно был, и день, когда его не стало.
- В отборе по событиям оставьте «Данные. Удаление». Пометка удаления в журнале обычно выглядит как запись объекта, то есть событие «Данные. Изменение».
- Если знаете вид объекта, укажите его в отборе по метаданным. Список сократится в разы.
- Откройте найденную запись. В колонке «Данные» вместо ссылки будет
<Объект не найден>, но поле «Представление данных» сохраняет текст вида «Поступление (акт, накладная) 0000-000123 от 03.10». - Запишите время удаления до минуты. Оно нужно, чтобы выбрать подходящую резервную копию.
Если в журнале пусто, проверьте уровень регистрации: Конфигуратор → Администрирование → Настройка журнала регистрации. При уровне «Регистрировать ошибки» удаление данных не попадёт в журнал. Для расследований нужен уровень «Регистрировать все события» или хотя бы с информацией.
Где лежат файлы журнала
Журнал хранится отдельно от данных, и его можно скопировать для разбора:
- 📁 Файловая база — папка
1Cv8Logрядом с файлом1Cv8.1CD. - 🖥 Клиент-серверная база
—
srvinfo\reg_1541\<идентификатор базы>\1Cv8Logна сервере 1С. - 🗂 Формат: один файл
1Cv8.lgd(SQLite) или набор файлов.lgfи.lgp(последовательный формат). Переключается там же, в настройке журнала.
Срок хранения задаётся в той же настройке. Если стоит «хранить за последний месяц», а удалили два месяца назад, следов уже нет.
Резервные копии и теневые копии Windows
Удалённый окончательно объект возвращают только из копии базы. Никогда не разворачивайте копию поверх рабочей базы: вы потеряете всё, что пользователи ввели после неё. Копию поднимают рядом, как отдельную базу, и переносят из неё только нужные объекты.
Выгрузка .dt
- Создайте в окне запуска новую пустую базу без конфигурации.
- Откройте её в Конфигураторе:
Администрирование → Загрузить информационную базу, выберите файл.dtс датой раньше удаления. - Найдите объект в копии и убедитесь, что он целый.
Теневые копии файловой базы
Если на диске включена защита системы или история файлов, у папки базы есть вкладка «Предыдущие версии» в свойствах. Скопируйте оттуда 1Cv8.1CD в новую папку и добавьте её в список баз как отдельную. Рабочий файл не заменяйте.
Клиент-серверная база на MS SQL или PostgreSQL
При полной модели восстановления MS SQL и наличии бэкапов журнала транзакций базу можно поднять на конкретную минуту, например за минуту до удаления из журнала регистрации:
RESTORE DATABASE buh_copy
FROM DISK = 'D:\backup\buh_full.bak'
WITH MOVE 'buh' TO 'D:\data\buh_copy.mdf',
MOVE 'buh_log' TO 'D:\data\buh_copy_log.ldf',
NORECOVERY;
RESTORE LOG buh_copy
FROM DISK = 'D:\backup\buh_log.trn'
WITH STOPAT = '2026-10-03 14:29:00', RECOVERY;
Логические имена файлов (buh, buh_log) у вас будут свои, их показывает RESTORE FILELISTONLY. После восстановления зарегистрируйте buh_copy в кластере 1С как новую базу. В PostgreSQL то же самое делается через восстановление на момент времени по архиву WAL, если он настроен.
Как перенести объект из копии в рабочую базу
| Способ | Когда подходит | Риски |
|---|---|---|
| Ввести вручную по копии | 1-3 простых документа | Новый объект со своим идентификатором, битые ссылки останутся битыми |
| Обработка «Выгрузка и загрузка данных XML» | Нужно вернуть объект с тем же идентификатором | Тянет за собой связанные элементы; загружать на копии рабочей базы, потом в рабочую |
| Правила обмена (Конвертация данных) | Десятки объектов разных видов | Долго настраивать, нужен специалист |
Универсальная обработка выгрузки в XML сохраняет идентификатор. После загрузки все <Объект не найден> в других документах снова показывают нужный объект. Документ после загрузки перепроведите и сверьте остатки.
История хранилища конфигурации: удалённые реквизиты и модули
Если «удалили» не документ, а реквизит, форму, макет или кусок кода, данных это не касается. Возвращать нужно конфигурацию.
- В Конфигураторе откройте
Конфигурация → Хранилище конфигурации → История хранилища. - Отберите версии за нужный период. В комментариях и списке изменённых объектов видно, кто и когда помещал изменения.
- Сравните две соседние версии: удалённый объект отмечается в отчёте сравнения как отсутствующий во второй версии.
- Сохраните версию до удаления в файл
.cf. - Верните объект через
Конфигурация → Сравнить, объединить с конфигурацией из файла, отметив флажками только нужное.
Если вы удалили реквизит из конфигурации и обновили структуру базы, колонка в таблице исчезла вместе с данными. История хранилища вернёт реквизит, но не значения в нём. Значения берите из резервной копии базы.
Без хранилища выручают сохранённые .cf и файлы поставки. Сравните текущую конфигурацию с последней сохранённой тем же пунктом меню, и отчёт сравнения покажет, что пропало.
Git: как найти удалённый файл модуля
Когда конфигурацию ведут в 1С:EDT или регулярно выгружают в файлы, каждый объект метаданных — отдельный файл. Удалённый модуль ищется обычными средствами Git.
Выгрузка из Конфигуратора: Конфигурация → Выгрузить конфигурацию в файлы. Из командной строки:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /DumpConfigToFiles "D:\repo\src"
Путь к платформе подставьте свой. Дальше в репозитории:
# все удалённые файлы в истории, с коммитами
git log --diff-filter=D --name-only -- src/
# вернуть файл из коммита перед удалением
git checkout <хеш_коммита>~1 -- "src/Documents/ПоступлениеТоваровУслуг/Ext/ObjectModule.bsl"
Затем загрузите исправленные файлы обратно (Конфигурация → Загрузить конфигурацию из файлов) или вставьте код вручную. Чтобы переносить историю хранилища в Git автоматически, обычно используют утилиту gitsync из экосистемы OneScript: каждая версия хранилища становится коммитом с автором и комментарием.
Обработки и утилиты для поиска удалённого
Стандартных средств хватает не всегда. Вот чем пользуются на практике:
- 🧪 Тестирование и исправление. В Конфигураторе
Администрирование → Тестирование и исправление, флажок «Проверка ссылочной целостности». Для битых ссылок есть режим «Создавать объекты»: платформа создаст пустые объекты-заглушки, и вы увидите, сколько и каких объектов удалено. Запускайте только на копии базы: обработка меняет данные, а для неё нужен монопольный доступ, все пользователи должны выйти. - 📜 История изменений объектов. Если в конфигурации включено хранение версий (в типовых на БСП флажок в
Администрирование → Общие настройки), в карточке объекта есть история с автором каждой правки. Это помогает понять, что меняли перед удалением. - 🔎 Консоль запросов. Ищет помеченные объекты по нескольким видам сразу и проверяет, где ещё встречается идентификатор из битой ссылки.
- 🗄 Tool_1CD. Открывает файл
1Cv8.1CDбез платформы и выгружает таблицы. Полезна, когда файл повреждён. Вытащить окончательно удалённые записи она не гарантирует: место в файле переиспользуется. - 📑 Анализ журнала регистрации. Сторонние обработки и скрипты выгружают журнал в таблицу или SQL, где удобнее строить сводки «кто удалял чаще всего».
Как не терять данные снова: права, регламент, копии
Типичные «загадочные» исчезновения — это удаление сразу, без пометки, или регламентное удаление помеченных, о котором забыли.
Права пользователей
- 🚫 Уберите право «Интерактивное удаление» у всех, кроме администратора. Тогда
Shift+Delне сработает, останется только пометка. - 👤 Запуск обработки удаления помеченных объектов оставьте одному ответственному. В типовых конфигурациях это делается через профили групп доступа в
Администрирование → Настройки пользователей и прав. - 🔑 Не работайте всей бухгалтерией под одним пользователем: журнал покажет имя, но не человека.
Регламентное удаление помеченных
В типовых конфигурациях на БСП удаление помеченных объектов можно запускать по расписанию. Проверьте это в той же обработке удаления помеченных: если автоматическое удаление включено, договоритесь, кто и когда просматривает список перед очисткой. Удобный ритм — раз в месяц после закрытия периода.
Копии и журнал
| Что настроить | Ориентир |
|---|---|
Выгрузка .dt или бэкап СУБД | Ежедневно, хранить не меньше 14-30 дней |
| Бэкап журнала транзакций (MS SQL) | Каждые 15-60 минут при полной модели |
| Уровень журнала регистрации | «Регистрировать все события» |
| Срок хранения журнала | Не меньше срока хранения копий |
| Проверка копии | Раз в месяц разворачивать в тестовую базу |
Копия, которую ни разу не разворачивали, — это надежда, а не копия.