1C-CodeОшибки 1С → Ошибка при вызове метода контекста (Записать)

Ошибка при вызове метода контекста (Записать) — как найти настоящую причину

Сообщение платформы: Ошибка при вызове метода контекста (Записать)

Само по себе это сообщение почти ничего не значит: платформа говорит, что запись не удалась. Настоящая причина — В СЛЕДУЮЩИХ СТРОКАХ сообщения, под этой. Именно их и надо читать.

Отчего это бывает

1. Отказ из обработчика ПередЗаписью

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Если НЕ ЗначениеЗаполнено(Склад) Тогда
		Отказ = Истина;   // без сообщения человеку — и он в недоумении
	КонецЕсли;
КонецПроцедуры

Отказ без пояснения выглядит для пользователя как поломка. Ставя Отказ, всегда добавляйте сообщение о том, чего не хватает.

2. Не заполнены обязательные реквизиты

// ОбработкаПроверкиЗаполнения нашла пустое поле

3. Нарушено ограничение базы

// два элемента с одинаковым кодом при включённой уникальности

Такое приходит уже от СУБД, и текст будет про индекс или ключ.

4. Объект заблокирован другим пользователем

// тот же элемент открыт на редактирование в другом сеансе

Что сделать

Разверните сообщение целиком — платформа складывает причины стопкой, и нижняя строка обычно и есть настоящая. Если запись идёт из кода, оберните её в Попытка … Исключение и выведите ОписаниеОшибки(): там будет полный текст, а не только верхушка.

Проверить себя на практике. В тренажёре те же ошибки возникают на настоящем интерпретаторе языка 1С: сообщения дословно те же, что у платформы, но исправить их можно сразу в браузере, без установки и без риска для рабочей базы.

Открыть тренажёр

Разобраться глубже

Другие частые ошибки

Поле объекта не обнаружено Значение не является значением объектного типа Переменная не определена Метод объекта не обнаружен Индекс находится за границами массива Деление на ноль