Почему 1С пишет «данные были изменены или удалены другим пользователем» и как записать документ
📋 Содержание
Чаще всего документ не записывается не потому, что кто-то реально трогал ваши данные. В 90% случаев дело в устаревшем кеше формы: закройте документ, нажмите F5 (обновить), переоткройте и запишите заново — ошибка уходит.
Если это не помогло, значит объект и правда занят другим пользователем, или в базе битая ссылка. Разберём все причины, почему в 1С 8.3 выскакивает Данные были изменены или удалены другим пользователем и как всё-таки записать документ — по шагам, от безопасного к радикальному.
Что означает ошибка «данные были изменены или удалены другим пользователем»
Полный текст в 1С 8.3 обычно такой:
Данные были изменены или удалены другим пользователем. Возможно, задание на изменение объекта не было выполнено полностью.
Название пугает, но в реальности это механизм оптимистической блокировки. Платформа при открытии объекта запоминает его версию. В момент записи она сравнивает версию в форме с версией в базе. Если они разошлись — 1С считает, что данные кто-то поменял, и отказывается записывать поверх.
Ключевое слово — «разошлись». Версия могла измениться по трём причинам:
- 🔁 другой пользователь действительно открыл и записал тот же объект (реальный конфликт);
- 🗑️ объект или связанный с ним элемент удалён из базы, пока форма висела открытой;
- 🧊 устаревший кеш клиента: в форме «старая» версия, хотя в базе ничего не менялось.
💡 Третий случай — самый частый и самый обманчивый. Никакого «другого пользователя» нет, вы работаете в базе одни, а ошибка всё равно вылезает.
Способ 1. Обновить форму и переоткрыть документ
Начинаем с безопасного. Ничего не ломаем, данные не теряем.
- Не закрывая документ, нажмите
F5— форма перечитает данные из базы. - Если 1С предложит «Данные формы устарели, обновить?» — соглашайтесь.
- Проверьте поля: возможно, часть значений уже подтянулась заново.
- Нажмите Записать.
Не сработало — закройте документ без сохранения, откройте его из журнала заново и повторите запись. В managed-формах это сбрасывает залипшую версию объекта.
⚠️ Перед повторной записью убедитесь, что не потеряли внесённые правки. После
F5несохранённые изменения в форме могут откатиться.
Способ 2. Проверить, не занят ли объект другим пользователем
Если база многопользовательская, ошибка часто честная: коллега открыл тот же документ или связанный справочник.
Как проверить, кто держит объект:
- В клиент-серверном варианте — в консоли кластера серверов (Активные пользователи / сеансы) видно, кто и что открыл.
- Проще: спросите коллег, не висит ли у кого этот документ, контрагент или номенклатура из него.
- Попросите всех закрыть карточку объекта и обновить у себя журнал.
После того как второй пользователь закрыл объект — повторите запись у себя. Одновременно редактировать один и тот же объект в 1С нельзя — побеждает тот, кто записал первым.
Ниже — быстрая диагностика по симптому.
Способ 3. Найти битую ссылку на удалённый объект
Частый сценарий: в документе есть ссылка на элемент, который пометили на удаление и удалили (или удалили напрямую через меню разработчика). Форма ссылается на «пустоту», версия не сходится — запись падает.
Что делать:
- Откройте проблемный документ и просмотрите табличные части и реквизиты.
- Ищите поля, где вместо названия —
<Объект не найден>или странная ссылка видаСсылка (не найдена). - Замените битое значение на актуальный элемент справочника.
- Запишите документ.
Массово битые ссылки лечит обработка Тестирование и исправление → пункт Проверка ссылочной целостности. Она находит «висящие» ссылки и предлагает очистить или заменить их.
💡 Перед запуском проверки целостности — обязательно резервная копия базы. Обработка может очистить данные без возможности отката.
Способ 4. Очистить кеш 1С
Если «другого пользователя» точно нет, а ошибка липнет — виноват кеш клиента.
Вариант А — запуск с очисткой:
Добавьте к ярлыку запуска ключ:
"C:\Program Files\1cv8\common\1cestart.exe" /ClearCache
Вариант Б — удалить каталог кеша вручную:
- Закройте все окна 1С.
- Откройте
%LOCALAPPDATA%\1C\1cv8(или1cv82). - Удалите папки с именами-хешами баз (длинные наборы букв и цифр).
- Запустите 1С — кеш соберётся заново.
⚠️ Не удаляйте сам файл
ibases.v8i— в нём список ваших баз. Удаляйте только каталоги-хеши внутри.
Для файловой базы после сбоя дополнительно прогоните chdbfl.exe (лежит в каталоге bin платформы) с галкой «Исправлять обнаруженные ошибки» — она чинит физические повреждения файла 1Cv8.1CD.
Способ 5. Программное изменение объектов (для разработчиков)
Ошибка Данные были изменены или удалены другим пользователем в коде — это почти всегда запись «устаревшей» ссылки. Объект прочитали, подержали в переменной, а к моменту Записать() его версия в базе уже сменилась.
Правильный шаблон — перечитать объект прямо перед записью и, при необходимости, взять пессимистическую блокировку:
Объект = СсылкаНаДокумент.ПолучитьОбъект(); // свежая версия из базы
Объект.Комментарий = "Обновлено обработкой";
Попытка
Объект.Записать();
Исключение
Сообщить("Не удалось записать: " + ОписаниеОшибки());
КонецПопытки;
Ключевые правила:
- 📥 не кешируйте
ПолучитьОбъект()надолго — читайте перед самой записью; - 🔒 для гарантии используйте управляемую блокировку (
БлокировкаДанных) на нужный объект; - ⚙️ при массовой обработке записывайте объекты по одному, а не «пачкой» из старого выбора.
Способ 6. Настроить запрет одновременного редактирования
Чтобы конфликты не повторялись, в многопользовательской базе включают запрет редактирования занятого объекта. Тогда 1С предупредит до правки, а не отвалится ошибкой на записи.
- В типовых конфигурациях: Администрирование → Общие настройки → Блокировка объектов при редактировании (название пункта зависит от конфигурации).
- Механизм показывает
Объект занят пользователем …при попытке открыть карточку, которую уже редактируют.
Так вы меняете «непонятную ошибку на записи» на «понятное предупреждение на открытии».
Частые ошибки и как их избежать
- ❌ Правят объект и уходят на обед с открытой формой. Версия «стареет», а коллеги ловят конфликт. Закрывайте карточки, если не работаете с ними.
- ❌ Удаляют элементы напрямую через меню разработчика вместо пометки на удаление. Появляются битые ссылки. Удаляйте через Администрирование → Удаление помеченных объектов.
- ❌ Чистят кеш при живой ошибке ссылочной целостности. Кеш ни при чём — сначала проверьте целостность базы.
- ❌ Записывают устаревший объект в коде. Всегда
ПолучитьОбъект()передЗаписать(). - ❌ Игнорируют бэкап перед «Тестированием и исправлением». Обработка необратима.
Если не помогло
Прошли все шаги, а Данные были изменены или удалены другим пользователем всё равно висит — действуйте так:
Если после реструктуризации и проверки целостности документ по-прежнему не пишется — вероятно, повреждён конкретный объект или связанная запись регистра. Тут уже нужен разбор базы: посмотреть объект через консоль запросов, проверить движения, при необходимости пересоздать документ заново.
Проверьте себя
Частые вопросы
Почему 1С пишет «данные были изменены», если я работаю один?
/ClearCache.Как записать документ, если ошибка не даёт сохранить?
Что значит «задание на изменение объекта не было выполнено полностью»?
Ошибка появляется при обмене или в обработке — что делать?
Записать() нужно перечитать объект через ПолучитьОбъект() и при необходимости поставить блокировку данных. Задача для разработчика или администратора.Может ли ошибка означать повреждение базы?
chdbfl.exe.Как предотвратить конфликты в будущем?
Материал подготовлен редакцией 1С 8.3 — независимый справочник. Проверено и обновлено: 12.07.2026. Независимый справочник. Мы не представляем фирму «1С» и не аффилированы с ней.