Почему 1С пишет «данные были изменены или удалены другим пользователем» и как записать документ

· Обновлено 12.07.2026 · ⏱ 7 мин · Редакция 1s-83.com

📋 Содержание

Чаще всего документ не записывается не потому, что кто-то реально трогал ваши данные. В 90% случаев дело в устаревшем кеше формы: закройте документ, нажмите F5 (обновить), переоткройте и запишите заново — ошибка уходит.

Если это не помогло, значит объект и правда занят другим пользователем, или в базе битая ссылка. Разберём все причины, почему в 1С 8.3 выскакивает Данные были изменены или удалены другим пользователем и как всё-таки записать документ — по шагам, от безопасного к радикальному.

Что означает ошибка «данные были изменены или удалены другим пользователем»

Полный текст в 1С 8.3 обычно такой:

Данные были изменены или удалены другим пользователем. Возможно, задание на изменение объекта не было выполнено полностью.

Название пугает, но в реальности это механизм оптимистической блокировки. Платформа при открытии объекта запоминает его версию. В момент записи она сравнивает версию в форме с версией в базе. Если они разошлись — 1С считает, что данные кто-то поменял, и отказывается записывать поверх.

Ключевое слово — «разошлись». Версия могла измениться по трём причинам:

  • 🔁 другой пользователь действительно открыл и записал тот же объект (реальный конфликт);
  • 🗑️ объект или связанный с ним элемент удалён из базы, пока форма висела открытой;
  • 🧊 устаревший кеш клиента: в форме «старая» версия, хотя в базе ничего не менялось.

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

Способ 1. Обновить форму и переоткрыть документ

Начинаем с безопасного. Ничего не ломаем, данные не теряем.

  1. Не закрывая документ, нажмите F5 — форма перечитает данные из базы.
  2. Если 1С предложит «Данные формы устарели, обновить?» — соглашайтесь.
  3. Проверьте поля: возможно, часть значений уже подтянулась заново.
  4. Нажмите Записать.

Не сработало — закройте документ без сохранения, откройте его из журнала заново и повторите запись. В managed-формах это сбрасывает залипшую версию объекта.

⚠️ Перед повторной записью убедитесь, что не потеряли внесённые правки. После F5 несохранённые изменения в форме могут откатиться.

Способ 2. Проверить, не занят ли объект другим пользователем

Если база многопользовательская, ошибка часто честная: коллега открыл тот же документ или связанный справочник.

Как проверить, кто держит объект:

  • В клиент-серверном варианте — в консоли кластера серверов (Активные пользователи / сеансы) видно, кто и что открыл.
  • Проще: спросите коллег, не висит ли у кого этот документ, контрагент или номенклатура из него.
  • Попросите всех закрыть карточку объекта и обновить у себя журнал.

После того как второй пользователь закрыл объект — повторите запись у себя. Одновременно редактировать один и тот же объект в 1С нельзя — побеждает тот, кто записал первым.

Ниже — быстрая диагностика по симптому.

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

Способ 3. Найти битую ссылку на удалённый объект

Частый сценарий: в документе есть ссылка на элемент, который пометили на удаление и удалили (или удалили напрямую через меню разработчика). Форма ссылается на «пустоту», версия не сходится — запись падает.

Что делать:

  1. Откройте проблемный документ и просмотрите табличные части и реквизиты.
  2. Ищите поля, где вместо названия — <Объект не найден> или странная ссылка вида Ссылка (не найдена).
  3. Замените битое значение на актуальный элемент справочника.
  4. Запишите документ.

Массово битые ссылки лечит обработка Тестирование и исправление → пункт Проверка ссылочной целостности. Она находит «висящие» ссылки и предлагает очистить или заменить их.

💡 Перед запуском проверки целостности — обязательно резервная копия базы. Обработка может очистить данные без возможности отката.

Способ 4. Очистить кеш 1С

Если «другого пользователя» точно нет, а ошибка липнет — виноват кеш клиента.

Вариант А — запуск с очисткой:

Добавьте к ярлыку запуска ключ:

"C:\Program Files\1cv8\common\1cestart.exe" /ClearCache

Вариант Б — удалить каталог кеша вручную:

  1. Закройте все окна 1С.
  2. Откройте %LOCALAPPDATA%\1C\1cv8 (или 1cv82).
  3. Удалите папки с именами-хешами баз (длинные наборы букв и цифр).
  4. Запустите 1С — кеш соберётся заново.

⚠️ Не удаляйте сам файл ibases.v8i — в нём список ваших баз. Удаляйте только каталоги-хеши внутри.

Для файловой базы после сбоя дополнительно прогоните chdbfl.exe (лежит в каталоге bin платформы) с галкой «Исправлять обнаруженные ошибки» — она чинит физические повреждения файла 1Cv8.1CD.

Способ 5. Программное изменение объектов (для разработчиков)

Ошибка Данные были изменены или удалены другим пользователем в коде — это почти всегда запись «устаревшей» ссылки. Объект прочитали, подержали в переменной, а к моменту Записать() его версия в базе уже сменилась.

Правильный шаблон — перечитать объект прямо перед записью и, при необходимости, взять пессимистическую блокировку:

Объект = СсылкаНаДокумент.ПолучитьОбъект(); // свежая версия из базы
Объект.Комментарий = "Обновлено обработкой";
Попытка
    Объект.Записать();
Исключение
    Сообщить("Не удалось записать: " + ОписаниеОшибки());
КонецПопытки;

Ключевые правила:

  • 📥 не кешируйте ПолучитьОбъект() надолго — читайте перед самой записью;
  • 🔒 для гарантии используйте управляемую блокировку (БлокировкаДанных) на нужный объект;
  • ⚙️ при массовой обработке записывайте объекты по одному, а не «пачкой» из старого выбора.

Способ 6. Настроить запрет одновременного редактирования

Чтобы конфликты не повторялись, в многопользовательской базе включают запрет редактирования занятого объекта. Тогда 1С предупредит до правки, а не отвалится ошибкой на записи.

  • В типовых конфигурациях: Администрирование → Общие настройки → Блокировка объектов при редактировании (название пункта зависит от конфигурации).
  • Механизм показывает Объект занят пользователем … при попытке открыть карточку, которую уже редактируют.

Так вы меняете «непонятную ошибку на записи» на «понятное предупреждение на открытии».

Частые ошибки и как их избежать

  • Правят объект и уходят на обед с открытой формой. Версия «стареет», а коллеги ловят конфликт. Закрывайте карточки, если не работаете с ними.
  • Удаляют элементы напрямую через меню разработчика вместо пометки на удаление. Появляются битые ссылки. Удаляйте через Администрирование → Удаление помеченных объектов.
  • Чистят кеш при живой ошибке ссылочной целостности. Кеш ни при чём — сначала проверьте целостность базы.
  • Записывают устаревший объект в коде. Всегда ПолучитьОбъект() перед Записать().
  • Игнорируют бэкап перед «Тестированием и исправлением». Обработка необратима.

Если не помогло

Прошли все шаги, а Данные были изменены или удалены другим пользователем всё равно висит — действуйте так:

Если ошибка не уходит
Выполнено: 0 / 6

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

Проверьте себя

✅ Проверьте себя
Появилась ошибка «данные были изменены или удалены», хотя вы работаете в базе одни. С чего начать?
Что делает ключ /ClearCache при запуске 1С?
Как правильно удалять элементы, чтобы не плодить битые ссылки?

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

Почему 1С пишет «данные были изменены», если я работаю один?
Это устаревший кеш формы: платформа сравнивает версию объекта в форме и в базе, и они разошлись из-за кеша. Обновите форму (F5), переоткройте документ. Если повторяется — почистите кеш ключом /ClearCache.
Как записать документ, если ошибка не даёт сохранить?
Закройте документ без сохранения, откройте заново из журнала и повторите запись. Не помогло — проверьте, не занят ли объект другим пользователем, и нет ли в документе битых ссылок на удалённые элементы.
Что значит «задание на изменение объекта не было выполнено полностью»?
Это вторая часть той же ошибки. Платформа не смогла применить запись, потому что версия объекта в базе изменилась после того, как вы открыли форму. Причина та же: конфликт версий, кеш или удалённый связанный объект.
Ошибка появляется при обмене или в обработке — что делать?
Это программная запись устаревшего объекта. В коде перед Записать() нужно перечитать объект через ПолучитьОбъект() и при необходимости поставить блокировку данных. Задача для разработчика или администратора.
Может ли ошибка означать повреждение базы?
Да, если она появилась после сбоя или зависания 1С. Сделайте резервную копию и запустите Тестирование и исправление информационной базы, а для файловой базы — chdbfl.exe.
Как предотвратить конфликты в будущем?
Включите запрет редактирования занятого объекта в настройках конфигурации, не оставляйте открытые карточки без работы и удаляйте элементы только через «Удаление помеченных объектов».

Материал подготовлен редакцией 1С 8.3 — независимый справочник. Проверено и обновлено: 12.07.2026. Независимый справочник. Мы не представляем фирму «1С» и не аффилированы с ней.