Почему авто рассылка отчетов в 1С:Бухгалтерии 3.0 перестала работать с ошибкой "Метод объекта не обнаружен (ФункциональнаяОпцияИспользоватьПолнотекстовыйПоиск)" и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

При использовании автоматической рассылки отчетов в конфигурации 1С:Бухгалтерия 3.0 (например, релиз 3.0.107.37) пользователи могут столкнуться с критической ошибкой "Метод объекта не обнаружен (ФункциональнаяОпцияИспользоватьПолнотекстовыйПоиск)". Эта ошибка приводит к полной остановке процесса рассылки и, как следствие, к нарушению оперативной работы с отчетностью.

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

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


Метод объекта не обнаружен (ФункциональнаяОпцияИспользоватьПолнотекстовыйПоиск)
{ОбщийМодуль.РаботаСФайламиСлужебный.Модуль(2175)}: Зависимость.ФункциональнаяОпция = МодульПолнотекстовыйПоискСервер.ФункциональнаяОпцияИспользоватьПолнотекстовыйПоиск;
{ОбщийМодуль.ИнтеграцияПодсистемБСП.Модуль(4300)}: МодульРаботаСФайламиСлужебный.ПриОпределенииНастроекРегламентныхЗаданий(Настройки);
{ОбщийМодуль.РегламентныеЗаданияСлужебный.Модуль(195)}: ИнтеграцияПодсистемБСП.ПриОпределенииНастроекРегламентныхЗаданий(Зависимости);
{ОбщийМодуль.БлокировкаРаботыСВнешнимиРесурсами.Модуль(342)}: ЗависимостиЗаданий = РегламентныеЗаданияСлужебный.РегламентныеЗаданияЗависимыеОтФункциональныхОпций;
{ОбщийМодуль.БлокировкаРаботыСВнешнимиРесурсами.Модуль(167)}: Если Не РегламентноеЗаданиеРаботаетСВнешнимиРесурсами(РегламентноеЗадание) Тогда
{ОбщийМодуль.ОбщегоНазначения.Модуль(5508)}: МодульБлокировкаРаботыСВнешнимиРесурсами.ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание);
{ОбщийМодуль.РассылкаОтчетов.Модуль(1085)}: ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.РассылкаОтчетов);

Из этого стека мы видим, что ошибка возникает при попытке регламентного задания "РассылкаОтчетов" определить свои зависимости, а именно — зависимость от функциональной опции "ИспользоватьПолнотекстовыйПоиск". Система ожидает найти метод ФункциональнаяОпцияИспользоватьПолнотекстовыйПоиск в общем модуле МодульПолнотекстовыйПоискСервер, но по какой-то причине не может его обнаружить.

Причины возникновения этой ошибки могут быть разнообразны:

  1. Несоответствие версий. Метод мог отсутствовать или иметь другое название в более старых релизах конфигурации или платформы 1С. Или же, наоборот, конфигурация могла быть обновлена частично, и часть модулей осталась от старой версии.
  2. Модификации конфигурации. Если конфигурация является нетиповой или в ней используются расширения, возможно, были внесены изменения, которые привели к удалению, переименованию или недоступности данного метода.
  3. Проблемы с полнотекстовым поиском. Сама подсистема полнотекстового поиска может работать некорректно, что влияет на доступность связанных с ней функциональных опций и методов.
  4. Ошибки кэширования. Иногда временные данные, сохраненные системой, могут вызывать некорректное поведение.

Решение 1: Временное отключение полнотекстового поиска

Один из самых быстрых и действенных способов, который помог многим пользователям, заключается во временном отключении функциональной опции "Использовать полнотекстовый поиск". Это позволяет обойти проблемный участок кода, который пытается обнаружить отсутствующий метод.

Разберем процесс отключения полнотекстового поиска по шагам:

  1. Запустите 1С:Предприятие в режиме пользователя. Убедитесь, что у вас есть права администратора или пользователя с доступом ко "Все функции".
  2. Откройте меню "Все функции". Если вы не видите этого пункта, перейдите в меню "Сервис" (или "Настройки", в зависимости от версии платформы) -> "Параметры" и установите флажок "Отображать команду Все функции".
  3. Найдите пункт "Управление полнотекстовым поиском". В открывшемся окне "Все функции" разверните ветку "Стандартные" или воспользуйтесь поиском по названию.
  4. Отключите полнотекстовый поиск. В форме "Управление полнотекстовым поиском" снимите флажок "Использовать полнотекстовый поиск данных".
  5. Перезапустите 1С. После отключения рекомендуется полностью перезапустить программу для применения изменений.

После выполнения этих действий попробуйте запустить регламентное задание по рассылке отчетов. С большой долей вероятности, ошибка "Метод объекта не обнаружен" исчезнет, и рассылка заработает.

Почему это помогает? Отключение полнотекстового поиска деактивирует соответствующую подсистему, и код, который проверяет наличие функциональной опции ИспользоватьПолнотекстовыйПоиск и вызывает связанный метод, просто перестает выполняться. Таким образом, мы обходим источник проблемы.

Что делать после? Некоторые пользователи сообщают, что после успешного выполнения рассылки и перезапуска 1С, они смогли вновь включить полнотекстовый поиск, и рассылка продолжала работать без ошибок. Возможно, при отключении и последующем включении происходит корректная переинициализация подсистемы или обновление кэша, что устраняет первопричину. Если вы решите включить поиск снова, обязательно выполните полную переиндексацию данных, чтобы обеспечить корректную работу поиска.

  1. Включите флажок "Использовать полнотекстовый поиск данных" в форме "Управление полнотекстовым поиском".
  2. Нажмите кнопку "Очистить индекс", а затем "Обновить индекс". Имейте в виду, что обновление индекса может занять значительное время в зависимости от размера вашей информационной базы.

Решение 2: Отключение "Защиты от опасных действий" для пользователя

Как показал опыт одного из пользователей, параллельно с отключением полнотекстового поиска была снята галочка "Защита от опасных действий" для пользователя, от имени которого выполнялось регламентное задание. Эта функция является механизмом безопасности платформы 1С, предназначенным для предотвращения выполнения потенциально опасных операций.

Разберем, как отключить эту защиту:

  1. Запустите 1С:Предприятие в режиме "Конфигуратор".
  2. Откройте список пользователей. Перейдите в меню "Администрирование" -> "Пользователи".
  3. Выберите пользователя, от имени которого выполняется регламентное задание. Откройте его настройки.
  4. Снимите флажок "Защита от опасных действий". Этот флажок находится в разделе настроек пользователя.
  5. Сохраните изменения и перезапустите 1С:Предприятие.

Почему это может помочь? Функционал "Защита от опасных действий" может блокировать выполнение некоторых операций, особенно в фоновых регламентных заданиях, если посчитает их потенциально рискованными. Даже если прямое отношение к ошибке "Метод объекта не обнаружен" не очевидно, снятие этой защиты могло снять некое неявное ограничение, которое препятствовало корректной работе регламентного задания и инициализации необходимых модулей.

Важно: Отключение "Защиты от опасных действий" снижает общий уровень безопасности для данного пользователя. Мы рекомендуем включать эту защиту только для доверенных пользователей и только после тщательного анализа возможных рисков. В корпоративной среде следует рассмотреть более тонкие настройки или обратиться к администратору системы.

Дополнительные шаги диагностики и устранения

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

Проверка модуля "ПолнотекстовыйПоискСервер"

Мы должны убедиться, что требуемый метод действительно существует в вашей конфигурации. Для этого выполним следующие шаги:

  1. Откройте 1С:Предприятие в режиме "Конфигуратор".
  2. Перейдите в "Общие модули". В дереве конфигурации найдите ветку "Общие" -> "Общие модули".
  3. Найдите модуль "ПолнотекстовыйПоискСервер". Откройте его.
  4. Выполните поиск по тексту. Используйте комбинацию клавиш Ctrl+F или меню "Правка" -> "Найти" для поиска метода ФункциональнаяОпцияИспользоватьПолнотекстовыйПоиск.

Если метод отсутствует, это является прямой причиной ошибки. В этом случае, скорее всего, ваша конфигурация имеет расхождения с типовой, либо она устарела, и вам потребуется обновление.

Пример, как должна выглядеть часть кода в модуле:


// Возвращает значение функциональной опции "ИспользоватьПолнотекстовыйПоиск".
//
// Возвращаемое значение:
//  Булево - Истина, если функциональная опция включена, Ложь иначе.
//
ФункциональнаяОпцияИспользоватьПолнотекстовыйПоиск = ПараметрыФункциональныхОпций.ИспользоватьПолнотекстовыйПоиск;

Обратите внимание на синтаксис и убедитесь, что функция объявлена как экспортная, если это необходимо для ее вызова из других модулей (хотя в данном случае она используется как функциональная опция, что подразумевает специфический механизм доступа).

Сравнение с конфигурацией поставщика

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

  1. Откройте 1С:Предприятие в режиме "Конфигуратор".
  2. Сделайте резервную копию. Перед любыми изменениями обязательно создайте резервную копию информационной базы!
  3. Выполните сравнение/объединение. Перейдите в меню "Конфигурация" -> "Сравнить, объединить с конфигурацией из файла...". Выберите файл поставки вашей типовой конфигурации (.cf).
  4. Проанализируйте различия. Особое внимание уделите модулю ПолнотекстовыйПоискСервер и другим модулям из стека вызовов, а также связанным функциональным опциям. Возможно, придется вернуть типовой код для отсутствующих или измененных процедур.

Если вы обнаружите, что метод ФункциональнаяОпцияИспользоватьПолнотекстовыйПоиск отсутствует в вашем модуле, но присутствует в конфигурации поставщика, вам потребуется аккуратно перенести его. Будьте крайне осторожны при объединении, чтобы не потерять свои доработки.

Очистка кэша 1С

Кэш 1С может накапливать некорректные или устаревшие данные, которые могут вызывать ошибки. Очистка кэша часто помогает при различных проблемах, включая "Метод объекта не обнаружен".

  1. Закройте все сеансы 1С. Убедитесь, что никто не работает с информационной базой.
  2. Найдите каталоги кэша. Они обычно располагаются в следующих местах (для Windows):
    • C:\Users\ИмяПользователя\AppData\Roaming\1C\1CE\
    • C:\Users\ИмяПользователя\AppData\Local\1C\1CE\
    Внутри этих папок вы найдете папки с длинными, сгенерированными именами (например, a6dfd2c0-833e-4613-bf7b-586b515a20d4).
  3. Удалите содержимое этих папок. Удалять сами папки 1CE не нужно, только их содержимое.
  4. Перезапустите 1С. Система заново создаст необходимые файлы кэша.

Проверка платформы и актуальность обновлений

Хотя в данном случае пользователь указал, что обновления выключены, стоит всегда рассматривать актуальность платформы и конфигурации. В более новых версиях могли быть исправлены ошибки или добавлены необходимые методы. Убедитесь, что ваша платформа 1С соответствует требованиям конфигурации.

Если вы работаете на сервере 1С:Предприятия, проверьте, что версия платформы сервера и клиента синхронизированы и актуальны.

Проверка доступности экспортных процедур

Регламентные задания выполняются на сервере и вызывают экспортные процедуры общих модулей. Хотя в данном случае ошибка явно указывает на "Метод объекта не обнаружен" на уровне кода, в целом для регламентных заданий важно убедиться, что вызываемые процедуры являются экспортными. В модуле ПолнотекстовыйПоискСервер, скорее всего, все необходимые процедуры уже имеют директиву Экспорт.

Заключение

Ошибка "Метод объекта не обнаружен (ФункциональнаяОпцияИспользоватьПолнотекстовыйПоиск)" при автоматической рассылке отчетов в 1С:Бухгалтерии 3.0 является серьезной, но вполне решаемой проблемой. Наиболее эффективные решения включают в себя:

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

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

Всегда помните о необходимости создания резервных копий перед внесением любых изменений в конфигурацию информационной базы.

← На главную