Коротко
Код обращается к реквизиту, колонке или свойству, которого у значения нет. В скобках — имя, которое не нашлось; по нему и по модулю из фигурных скобок определяется, чей это код.
Как выглядит
{ВнешняяОбработка.ПримерОбработки.Форма.Форма.Форма(48)}: Поле объекта не обнаружено (КодТовара)
Причины
- Реквизит переименован или удалён при обновлении конфигурации, а внешняя обработка, отчёт или расширение обращается к старому имени.
- Обработка написана для другой конфигурации или другой редакции: в ней используется реквизит, которого в вашей базе нет.
- В имени реквизита опечатка. Обращение через точку не проверяется при сохранении модуля, ошибка проявляется только при выполнении этой строки.
- В переменной значение другого типа, чем ожидает код: например, в составном реквизите лежит ссылка на другой справочник, у которого такого реквизита нет.
- Код обращается к колонке, которой нет в результате запроса или в таблице значений: колонку не выбрали в запросе или назвали другим псевдонимом.
Что делать
Пользователю
- Скопируйте текст ошибки целиком вместе со строкой в фигурных скобках и запомните, при каком действии она возникла.
- Если в фигурных скобках написано «ВнешняяОбработка» или «ВнешнийОтчет», ошибка в подключённой обработке, а не в самой программе. Сообщите о ней тому, кто обработку поставлял.
- Повторное проведение или нажатие той же кнопки не поможет: пока код не исправлен, ошибка будет повторяться.
Администратору
- По строке в фигурных скобках определите источник: модуль конфигурации, расширение или внешняя обработка.
- Проверьте, не обновлялась ли недавно конфигурация. После обновления внешние обработки и расширения часто обращаются к реквизитам, которых больше нет.
- На копии базы отключите расширения по одному и проверьте, исчезает ли ошибка.
- Для внешней обработки запросите у поставщика версию под вашу редакцию конфигурации.
Разработчику
- Найдите в модуле строку из фигурных скобок и имя из скобок в тексте ошибки.
- В отладчике посмотрите фактический тип значения, к которому идёт обращение: часто это не тот тип, который предполагался.
- Для реквизитов, которых может не быть, проверяйте наличие свойства через метаданные объекта, а не обращайтесь к нему напрямую через точку.
- Для результата запроса проверьте, что колонка выбрана и названа тем же псевдонимом, что и в коде.
Помогло?
Работаете с 1С постоянно? После регистрации сопоставитель отвечает на 50 запросов в сутки вместо 10. Зарегистрироваться
Не помогло? Напишите специалисту
Ответ придёт на указанный email. Текст ошибки вставьте целиком, вместе со стеком.
Частые вопросы
Почему ошибка появилась после обновления?
Обновление меняет состав реквизитов. Код, который обращался к старому имени, начинает падать при первом выполнении этой строки.
Могут ли пострадать данные?
Как правило, нет: действие прерывается, а незавершённая транзакция отменяется. Данные, записанные до ошибки вне транзакции, остаются.
Комментарии
Комментариев пока нет. Если решение сработало иначе, чем описано, расскажите об этом.
Войдите, чтобы оставить комментарий.