Каждый бухгалтер или менеджер хотя бы раз в жизни созерцал это противное окошко: «{ОбщийМодуль...}: Поле объекта не обнаружено (ИмяКакогоТоПоля)». 1С при этом наотрез отказывается проводить документ, формировать отчет или вообще вылетает.
Интернет забит статьями-инструкциями, где при любой ошибке советуют немедленно запускать тестирование базы, чистить утилитой chdbfl.exe и переустанавливать платформу.
Давайте разберем без паники и технического занудства: почему это происходит, как починить проблему самостоятельно за 2 минуты и когда нужно звать программиста.
Что вообще произошло? (На пальцах)
Представьте, что вы просите Алису: «Алиса, включи подогрев руля». А Алиса вам отвечает: «Ошибка: подогрев руля не обнаружен», потому что вы едете на старых «Жигулях».
В 1С происходит ровно то же самое. Программа выполняет код, написанный разработчиком. В коде написано: «Взять документ и посмотреть в нем поле "СтавкаНДС"». Программа открывает документ, а там такого поля нет (например, его переименовали в последнем обновлении или вообще удалили). Код впадает в ступор и выдает ошибку.
То есть, «Поле объекта не обнаружено» — это ошибка в коде (в логике программы), а не поломка самой базы данных.
Вредные советы: чего делать НЕ НАДО
Если вы нагуглили инструкцию и вам предлагают сделать следующее — закройте эту вкладку.
НЕ запускайте Тестирование и исправление (ТиИ) и chdbfl.exe. Вы потратите кучу времени (на больших базах это может длиться часами). Эти инструменты лечат физическое разрушение таблиц БД. В нашем случае таблицы целы, просто код ищет то, чего нет.
НЕ переустанавливайте платформу 1С. Платформа — это просто проигрыватель. Если вам дали поцарапанную пластинку, покупка нового проигрывателя не заставит песню звучать нормально.
Что может сделать обычный пользователь?
Вот пошаговый план спасения, который реально работает.
Шаг 1. Выясняем масштаб бедствия
Вспомните, после чего появилась ошибка:
При работе с внешним отчетом или печатной формой?
Решение: Ваша внешняя обработка устарела. Конфигурацию 1С обновили, названия полей внутри изменились, а старый отчет об этом не знает. Напишите тому, кто вам этот отчет устанавливал, или скачайте свежую версию. Сами вы тут ничего не почините.
После обновления всей базы?
Переходим к Шагу 2.
Шаг 2. Очистка кэша (Главное секретное оружие)
В 90% случаев внезапных ошибок после обновления виноват локальный кэш 1С на вашем компьютере. Платформа пытается сэкономить время и берет структуру метаданных из своей старой памяти, где поля еще не было (или оно называлось иначе).
Как быстро почистить кэш без вызова ИТ-специалиста:
-
Откройте окно запуска 1С (там, где список баз).
-
Выберите вашу базу, запишите или скопируйте путь к ней. Далее нажмите кнопку «Удалить» (не бойтесь, сама база не удалится, только ссылка на нее).
-
Нажмите кнопку «Добавить» -> Добавление в список существующей информационной базы.
-
Укажите имя и путь к базе (вы ведь запомнили его перед удалением?).
-
Запустите базу. При таком «переподключении» временные файлы (кэш) создаются заново.
Если у вас клиент-серверная база (SQL), и этот фокус не помог — возможно, завис кэш на самом сервере приложений. Тут придется попросить системного администратора перезапустить службу 1С:Предприятия. Мы не разбираем случай, если у вас крупная компания и много баз и пользователей. Там совет один - обращаться в вашу внутреннюю техподдержку.
Шаг 3. Проверка обновлений и патчей (для типовых баз)
Если вы работаете в стандартной «Бухгалтерии» или «ЗУП» и только что установили обновление, велика вероятность, что разработчики 1С просто выпустили релиз с ошибкой. Такое бывает, они тоже люди.
-
Зайдите в раздел Администрирование -> Обслуживание -> Обновление программы.
-
Посмотрите, есть ли доступные патчи (исправления). Если 1С знает о массовой ошибке, они выпускают мини-патчи, которые программа скачивает автоматически. Установите их и перезапустите базу.
Если ничего не помогло: как правильно позвать программиста
Если кэш почищен, внешние обработки ни при чем, а ошибка все равно горит — это баг в коде. Придется звать специалиста.
Но не пишите ему: «У меня тут всё сломалось и какая-то ошибка». Сделайте следующее:
В окне с ошибкой нажмите кнопку «Подробно».
Нажмите кнопку «Скопировать в буфер» (или сделайте скриншот всего окна, где виден детальный текст со строками кода).
Отправьте этот текст программисту.
Для него строчка вида «{ОбщийМодуль.УчетНДСФормированиеДекларации.Модуль(1432)}: Поле объекта не обнаружено (Ставка)» — это точный адрес «преступления». Он исправит код за 5 минут, вместо того чтобы полдня гадать, где именно у вас споткнулась программа.
Чувствуете, что застряли в основах 1С?
Информация в интернете кажется обрывочной, а на решение простых задач уходят часы? Вы не одиноки. Я запустил Клуб для 1С разработчиков Alexcode.PRO. Внутри - продвинутые статьи, видео, материалы для скачивания, закрытый чат для резидентов и возможность влиять на контент.
