При выполнении регламентной операции «Закрытие счетов 20, 23, 25, 26» бухгалтеры часто сталкиваются с критической ошибкой: «Метод объекта не обнаружен (ВедетсяПроизводственнаяДеятельность)». Эта проблема обычно проявляется после обновления конфигурации «Бухгалтерия предприятия 3.0» на новые релизы (например, в периоды отчетности за 2022 год и позже). Ситуация осложняется тем, что закрытие месяца часто выполняется в фоновом режиме, и обычный стек ошибки не всегда доступен пользователю сразу.
Разберем подробно причины возникновения этой ошибки и последовательно пройдем по шагам её устранения, рассматривая ситуацию как со стороны программного кода, так и со стороны настроек системы.
Проанализируем архитектурные изменения в последних релизах БП 3.0. Фирма «1С» активно проводит рефакторинг модулей, связанных с учетной политикой и производственным учетом. Ранее флаг ВедетсяПроизводственнаяДеятельность мог быть методом объекта УчетнаяПолитика, к которому программисты обращались напрямую. В новых редакциях логика проверки была вынесена в специализированные общие модули.
Если ваша конфигурация является нетиповой (имеет доработки в основной конфигурации) или содержит активные расширения, система может пытаться вызвать старый метод, который физически удален из программного кода основной конфигурации при обновлении. Именно это несоответствие и вызывает ошибку «Метод объекта не обнаружен».
Поскольку операция закрытия месяца выполняется в фоне, нам необходимо увидеть реальный стек вызова. Для этого выполним следующие действия:
/РежимОтладки. Это позволит отладчику перехватывать исключения в фоновых заданиях.ВедетсяПроизводственнаяДеятельность.Рассмотрим пример того, как мог выглядеть старый (проблемный) вызов в коде:
// Устаревший вариант, вызывающий ошибку
УчетнаяПолитикаОбъект = СсылкаНаУчетнуюПолитику.ПолучитьОбъект();
Если УчетнаяПолитикаОбъект.ВедетсяПроизводственнаяДеятельность() Тогда
// Логика распределения затрат
КонецЕсли;
Проанализируем список установленных расширений. Очень часто программисты забывают обновить код в расширении после обновления основной базы. Если расширение заимствует процедуры закрытия месяца или модули расчета себестоимости, в них может сохраняться обращение к несуществующему методу.
Попробуйте временно отключить расширения, влияющие на учет затрат, и повторить операцию. Если ошибка исчезла — проблему нужно исправлять внутри расширения, адаптируя его под новый программный интерфейс 1С.
Выясним, как теперь правильно проверять ведение производственной деятельности. В современных релизах БП 3.0 для этого используются функции общих модулей. Вместо обращения к объекту учетной политики, нам следует использовать вызов общего модуля УчетнаяПолитикаБП или проверку функциональных опций.
Рассмотрим правильный вариант реализации проверки:
// Актуальный вариант для современных релизов БП 3.0
Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "...");
ДатаАнализа = НачалоМесяца(Объект.ПериодРегистрации);
Если УчетнаяПолитикаБП.ВедетсяПроизводственнаяДеятельность(Организация, ДатаАнализа) Тогда
// Выполнение действий для производства
КонецЕсли;
Или через функциональные опции:
// Проверка через функциональную опцию
Если ПолучитьФункциональнуюОпцию("ИспользоватьПроизводство") Тогда
// Производство включено в функциональности программы
КонецЕсли;
Если метод ВедетсяПроизводственнаяДеятельность был вашим собственным методом, который добавил предыдущий программист, то при автоматическом обновлении этот кусок кода мог быть затерт («задавлен» типовым модулем). Рассмотрим, как это исправить:
Ctrl + Shift + F) по строке «ВедетсяПроизводственнаяДеятельность» в старой базе.РегистрСведений.УчетнаяПолитика).Иногда ошибка может носить «фантомный» характер из-за некорректно кэшированных метаданных или поврежденных записей в регистрах. Рассмотрим два технических решения:
1. Очистка кеша. Обычной очистки пользовательского кеша (удаление базы из списка и добавление заново) может быть недостаточно. Если база клиент-серверная, необходимо перезапустить службу сервера 1С:Предприятия. Это принудительно очистит серверный кеш сеансов, где могла застрять старая структура метаданных.
2. Актуализация регистра «Учетная политика». Зайдите в раздел «Главное» — «Учетная политика». Создайте новую запись на текущий год (или переоткройте текущую), измените любой флаг, верните его обратно и нажмите «Записать и закрыть». При записи объекта система выполняет ряд проверок и может автоматически заполнить необходимые служебные реквизиты, которые не были заполнены при обновлении. Это часто помогает, если структура хранения данных изменилась, а старые записи не были сконвертированы автоматически.
Для успешного закрытия месяца в условиях данной ошибки мы рекомендуем придерживаться следующего алгоритма: сначала проверьте расширения, так как в 90% случаев проблема в них; затем используйте глобальный поиск по конфигурации для выявления устаревших вызовов; и в последнюю очередь адаптируйте код под функции общего модуля УчетнаяПолитикаБП.