Ошибка в модуле метод объекта не обнаружен

Метод объекта не обнаружен в 1С 8.3

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

Примеры появления и исправления ошибки рассмотрены нами на конфигурации 1С:Бухгалтерия 8.3.

Причины возникновения ошибки в 1С 8.3

Пользователь получает предупреждение в виде всплывающего окна с текстом «Метод объекта не обнаружен ([Имя_метода])», если:

  • метод не принадлежит к типу метаданных;
  • опечатка в имени метода;
  • у процедуры или функции, вызываемой в качестве метода объекта, не указанно ключевое слово Экспорт.

Для решения проблемы следует разобраться в структуре объектов конфигурации и их наборе методов.

Объекты и методы

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

В список стандартных объектов 1С входят:

  1. константы;
  2. справочники;
  3. документы;
  4. отчеты;
  5. регистры сведений;
  6. и т. д.

Состав метаданных не ограничен объектами, перечисленными в окне дерева конфигурации: их в несколько раз больше. К тому же один объект может иметь несколько типов: например, ДокументОбъектДокументСсылкаДокументВыборка и т. д. У каждого типа есть свой набор методов, которые позволяют выполнить определенную последовательность действий с отдельным экземпляром объекта.

Методы делятся на два вида:

  • встроенные в платформу;
  • написанные программистом в модулях объектов.

Встроенные методы объектов описаны в Синтакс-Помощнике: например, записать документ позволит метод Записать(). Имена методов созвучны с глаголом действия, которое будет произведено с метаданными.

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

Исправление ошибки

Сообщение «Метод объекта не обнаружен» может возникнуть, например, при нажатии кнопки в документе.

Для детального анализа ошибки запустите конфигурацию в режиме отладки из конфигуратора Отладка — Начать отладку и повторите те же действия, чтобы вызвать повторное появление ошибки на экране. Кнопка Подробно раскроет окно с указанием строчки программного кода, где возникает сбой.

Для перехода в конфигуратор нажмите Конфигуратор.

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

Решение вопроса с ошибкой «Метод объекта не обнаружен» в 1С 8.3 будет зависеть от вида метода: созданный вручную или типовой.

Встроенные в платформу методы

Стандартные методы перечислены в Синтакс-Помощнике на ветках соответствующих объектов. Откройте Ситнакс-Помощник через меню конфигуратора Справка или по одноименной кнопке на панели инструментов. Для быстрого поиска на вкладке Индекс введите часть имени типа объекта, а для перехода к его описанию нажмите кнопку Найти текущий элемент в дереве.

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

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

Методы, добавленные вручную

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

Перед поиском метода узнают тип объекта, от которого запускается выполнение. Возможны варианты:

  • для типов ДокументОбъектСправочникОбъект и т. д. методы прописывают в Модуле объекта;
  • типы ДокументМенеджерПеречислениеМенеджери т. д. — Модуль менеджера;
  • типы РегистрСведенийНаборЗаписей и т. д. — Модуль набора записей (у регистров);
  • тип КонстантаМенеджерЗначения — Модуль менеджера значения (у констант);
  • и др.

Чтобы определить тип объекта, воспользуйтесь одним из способов:

1. Разберите в окне ошибки строку кода, где идет обращение к методу:

  • Документ.СчетНаОплатуПоставщика.Форма.ФормаДокумента — метод выполняется в модуле формы документа;
  • Документ — объект, от которого запускается метод;
  • Добавить() — имя метода. Характерная черта — наличие круглых скобок в конце, в них перечисляются параметры, если они необходимы для выполнения операций;
  • ПодборТовараСервер() — имя процедуры/функции, где возникает ошибка.
    В данном примере Документ является переменной, содержащей объект с типом ДокументОбъект, получаемый встроенным методом ПолучитьОбъект().

2. Если конфигурация допускает вносить изменения, выведите тип объекта в окне сообщений в пользовательском режиме с помощью встроенных функций Сообщить() и ТипЗнч():

  • впишите в процедуру строку кода с функцией, указав в скобках обращение к объекту без имени метода;

  • запустите 1С в режиме отладки и повторите действия, вызывающие сбой;
  • проигнорируйте окно с ошибкой, нажав ОК. В нижней части рабочей области программы появится сообщение с типом объекта.

3. Через команду контекстного меню Вычислить выражение в Конфигураторе

  • в строчке, где возникает сбой, поставьте точку останова для принудительной остановки выполнения программного кода, имеет вид красного круга на полях с левой стороны;

  • запустите программу в режиме отладки;
  • повторите действия, при которых возникала ошибка;
  • работа программы остановится, откроется окно конфигуратора;
  • выделите часть кода, где идет обращение к объекту, без метода;
  • правой кнопкой вызовите контекстное меню, выберите команду Вычислить выражение;

  • в открывшемся окне в колонке Тип будет указан тип объекта.

Переменная Документ тип ДокументОбъект.СчетНаОплатуПостащика, поэтому запускаемые методы программа ищет среди экспортных процедур/функций в модуле объекта документа СчетНаОплатуПоставщику.

Для поиска метода:

  • откройте модуль объекта/менеджера/набора записей;
  • найдите одноименную процедуру или функцию, для быстрого перехода к нужной части текста модуля воспользуйтесь окном поиска, набрав в нем часть имени метода;

  • проверьте наличие ключевого слова Экспорт. При его отсутствии программа не сможет передать процедуру/функцию в другой модуль. Соответственно, она не будет обнаружена, что приведет к появлению ошибки «Метод объекта не обнаружен»;
  • имя процедуры/функции должно совпадать с вызываемым методом: если имеются явные орфографические ошибки или опечатки, исправьте их;
  • если наименование процедуры/функции полностью совпадает с методом, и ключевое слово Экспорт указано, возможно, причина — в неверном типе объекта.

Если тип объект задан неверно, то программа будет производить поиск экспортных процедур/функции вне тех модулях и пользователь получит ошибку «Метод объекта не обнаружен». Для решения проблемы потребуется переписать программный код, пользователю стоит обратиться к программисту.

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

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

Метод объекта не обнаружен Connect 1С 8.3

Ошибку «Метод объекта не обнаружен (Connect)» 1С может показать при попытке обновить конфигурацию, синхронизации или загрузке/выгрузке данных из другой программы, базы.

Connect — наименование встроенного метода, принадлежит COM-объектам, которые 1С создает на основании объектов базы данных для их передачи или получения из других источников.

Поскольку метод типовой, следует проверить в конфигураторе корректность написания его имени в коде программы.

Ошибка «Метод объекта не обнаружен (Сonnect)» в 1С 8.3 не всегда связана с конфигурацией, причина может заключаться в операционной системе. Перед использованием метода Connect программа 1С должна создать COM-объект с помощью специальных компонентов, которые не всегда есть в системе компьютера. Проблему решают через регистрацию dll компонентов обмена, процедуру выполняют на сервере:

  • в папке C:Windows найдите и запустите от имени администратора файл cmd.exe;
  • в зависимости от вида операционной системы выполните команду:
    • для x32: %windir%System32RegSvr32.exe “С:[путь до каталога 1С]bincomcntr.dll”;
    • для x64: %windir%SysWoW64RegSvr32.exe “С:[путь до каталога 1С] bincomcntr.dll”;

  • перезагрузите компьютер.

Стандартная утилита RegSvr32 автоматически зарегистрирует файл dll с компонентами обмена в реестре операционной системы, что устранит сбой в 1С, связанный с отсутствием метода connect. В Windows есть инструменты для ручного внесения компонент в реестр через пункт Администрирование на Панели управления, но эту задачу лучше поручить системному администратору компьютеров.

Запасным вариантом для решения вопроса с отсутствующим методом Connect остается чистка кэш-памяти 1С.

«Метод объекта не обнаружен» в 1С — ошибка серьезная, говорящая об отсутствии в программе алгоритмов, необходимых для выполнения действий пользователя. Если 1С сообщает о невозможности найти поле, элемент, реквизит или объект — такие проблемы сотрудник может решить самостоятельно. Но при недоступности методов необходимы знания о типах объектов, умения разбираться в программном коде, поэтому, когда ни один из способов не помог устранить сбой, следует обращаться к специалисту 1С.

Обслуживание

Заказать консультацию

По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.

После обновления информационной базы 1С, установки новой версии Платформы, доработки конфигурации 1C можно получить ошибку:

  • Метод объекта не обнаружен.

В статье вы познакомитесь с новым инструментом разработчиков Синтаксис помощник и научитесь использовать его при работе с ошибками программного кода 1С.

БухЭксперт8 подготовил 3 примера формирования ошибки Метод объекта не обнаружен в 1С 8.3. Изучив их, вы узнаете причины появления ошибки и получите рекомендации для ее исправления с использованием встроенной справки 1С.

Содержание

  • Причины ошибки в 1C Метод объекта не обнаружен
    • Метод объекта не обнаружен (Счет покупателю — Подбор)
    • Метод объекта не обнаружен (Печатная форма)
    • Метод объекта не обнаружен (connect) в 1С 8.3

Причины ошибки в 1C Метод объекта не обнаружен

Причина появления ошибки Метод объекта не обнаружен, как правило, заключается в обращении к несуществующему методу работы с объектом конфигурации.

Объектами в 1С являются данные конфигурации 1С. В специальной литературе такие объекты еще называют Метаданными 1С. В состав объектов конфигурации входят:

  • справочники;
  • документы;
  • регистры сведений;
  • регистры накоплений;
  • табличные документы;
  • и т. д.

Каждый из объектов обладает определенными им разработчиками наборами Свойств и Методами. Посмотреть эту информацию позволяет специальный инструмент разработчиков — Синтаксис помощник. Инструмент встроен в справку Конфигурации 1С. Вызов Синтаксис помощника происходит:

Синтаксис-помощник содержит подробное описание заданных свойств и методов объектов конфигурации. Добавить свои свойства и методы пользователь не может. Изменить — тоже. Задача программиста, дорабатывающего 1С — использовать очень точно методы, что даны в описании. Если в программном коде допускается ошибка в использовании метода объекта, пользователь получает ошибку Метод объекта не обнаружен.

Рассмотрим возникновение ошибки на примерах. Для исправления будем обращаться к справке Синтаксис-помощника.

Метод объекта не обнаружен (Счет покупателю — Подбор)

После программной доработки операции Подбор в документе Счет покупателю появляется ошибка Метод объекта не обнаружен:

Согласно сообщению в окне ошибки, метод Копировать() не обнаружен в списке методов объекта 1С. Для уточнения вида объекта, который использует этот метод, перейдем в Конфигуратор:

  • место доработки — процедура ПодборТовары;
  • строка ошибки — ТЗ = ЭтотОбъект.Товары.Копировать().

Из программного кода видно, что программист создает таблицу значений ТЗ, используя метод Копировать(). Откроем список методов объекта Таблица значений:

  • кнопка Синтаксис-помощник — Содержание;
  • объект Универсальные коллекции значений — Таблица значений — Методы.

Согласно Синтаксис-помощнику для объекта Таблица значений нет метода Копировать(). Правильный метод — Скопировать(). После того как метод будет исправлен на правильный, подбор товара в документе Счет покупателю станет выполняться без ошибки.

Метод объекта не обнаружен (Печатная форма)

После программного изменения печатной формы Приложение к договору в документе Счет покупателю появляется ошибка Метод объекта не обнаружен:

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

  • место доработки — функция ПечатьПриложениякДоговору;
  • строка ошибки — ТабличныйДокумент.ПолучитьРазмерОбластиДанных().

В программном коде используется метод Табличного документа ПолучитьРазмерОбластиДанных(). Уточним используемые методы табличного документа через Синтаксис-помощник.

Согласно справке Синтаксис-помощника, нет метода ПолучитьРазмерОбластиДанных(). Для получения размера области данных по горизонтали используется метод ПолучитьРазмерОбластиДанныхПоГоризонтали().

После исправления программного кода печатная форма формируется без ошибки.

Метод объекта не обнаружен (connect) в 1С 8.3

В обработке внешнего подключения к информационной базе Управление Торговлей при попытке соединения появляется ошибка Метод объекта не обнаружен в 1С:

Для исправления ошибки откроем обработку в Конфигураторе базы:

  • место возникновения ошибки — процедура ERRORНаСервере;
  • строка ошибки — connection = cntr.Connector(“File=””c:InfoBasesTrade””;Usr=””Director””;”)

Для объекта COM-соединений определим в Синтаксис помощнике правильный метод новым способом через вкладку Поиск. Этот вариант часто используют в работе программисты и те пользователи, кто уже знаком с программным языком 1С. По первым буквам набранной в строке поиска команды программа отбирает объекты, использующие данный метод.

Согласно справке Синтаксис-помощника, нет метода Connector. Команду соединения с информационной базой Управление Торговлей нужно исправить на Connect.

После исправления команды соединение с базой Управление Торговлей по заданным параметрам выполнится без ошибки.

В качестве небольшого бонуса наши подписчики могут скачать внешнюю обработку с демонстрацией неправильного и правильного кода

Скачать внешнюю обработку с демонстрацией неправильного и правильного кода

См. также:

  • Ошибка. Поле объекта не обнаружено
  • Ошибка. Поле объекта недоступно для записи
  • Ошибка. Переменная не определена
  • Ошибка. Недостаточно фактических параметров
  • Ошибка. Слишком много фактических параметров
  • Поле объектов недоступно для записи

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

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

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Как сделать в 1С, 1С: Конвертация данных, Конвертация данных, Обмен между базами, Закрытие месяца, Оценка задач, Отчеты в 1С, Моделирование, HTTP, Управление проектами, БУ, com-объекты, 1С: WMS Управление складом, РСБУ, 1С: Сценарное тестирование , Запросы 1С, LINUX, WEB, Оптимизация, 1С:Зарплата и Управление Персоналом, Excel, 1С: ERP, ADO, 1С:Управление производственным предприятием, Внедрение, Продажи, Отчетность, 1С: Розница, 1С: CRM , 1С:Бухгалтерия, 1С:Комплексная автоматизация, Производство, Интеграция 1С , Налоги , Отпуск, MS SQL Server , Расширение конфигурации, МСФО, СКД, Word, WEB-сервисы 1С, Внедрение ERP, Перенос данных, Торговое оборудование, Лизинг, 1С:Управление нашей фирмой, Администрирование 1С, 1С: Колледж, Правила обмена, 1С: Платформа — Наши эксперты

Метод объекта не обнаружен при вызове функции

В управляемом приложении при вызове функции общего модуля из клиентской процедуры возникает ошибка «Метод объекта не обнаружен» 

Скриншот ошибки

metod-obekta-ne-obnaruzhen

Выяснение причины

Проверить:

  • написание имени функции/процедуры;
  • наличие директивы «экспорт» в конце имени функции;
  • работоспособность при вызове с «серверной» процедуры;
  • соответствие количества параметров функции;
  • корректность написание директивы «&НаСервере», «&НаКлиенте» (нет ли опечаток);
  • Зайти в свойства вызываемого модуля:

Платформы, к которым относится ошибка

  • 8.2
  • 8.3

Поведение системы

Выполнение кода прерывается.

Большой рекламный бюджет не ведет к высокому уровню сбыта. Наоборот, высокий уровень сбыта ведет к большому рекламному бюджету.

Ошибка «Метод объекта не обнаружен» при вызове экспортной процедуры модуля документа из мо

Я
   kvant_ltd

02.11.17 — 11:57

Из модуля обработки идет вызов экспортной процедуры ЗаполнитьУсловияПродажПоCоглашению() модуля документа АктВыполненыхРабот.

При этом возникает ошибка «Метод объекта не обнаружен». Процедура ЗаполнитьУсловияПродажПоCоглашению() с «волшебным» словом Экспорт в модуле документа АктВыполненыхРабот есть. Оба модуля (модуль обработки и модуль документа) выполняются на сервере. Смотрите вложенные файлы. Тогда почему возникла ошибка? Это я что-то неправильно написал или чего-то не понимаю? Или это ошибка платформы 1С? Какие есть идеи как исправить или обойти?

Ошибка возникает как в файловой, так и в серверной версиях. Ошибка возникла после перехода в июле 2017 года на версию платформы 8.3.10. До этого код обработки функционировал без сбоя почти год. Вернуться на предыдущую версию платформы — уже нельзя. На тестовой версии 8.3.11 ошибка также имеет место быть.

Какие есть идеи как исправить или обойти?

   Ёпрст

1 — 02.11.17 — 12:00

кеш продуй, для начала

   DrShad

2 — 02.11.17 — 12:02

ошибка в коде и никак не зависит от платформы

   h-sp

3 — 02.11.17 — 12:31

(0) всё-таки в модуле менеджера документа должно быть. а не в модуле документа.

   FIXXXL

4 — 02.11.17 — 12:48

(0) как вызываешь и где? УФ-ОФ?

   Cyberhawk

5 — 02.11.17 — 12:50

«Какие есть идеи как исправить или обойти?» // Сколько платят за решение вопроса?

   lodger

6 — 02.11.17 — 13:08

вложенные файлы где?

   lodger

7 — 02.11.17 — 13:08

«модуля документа АктВыполненыхРабот.» — это модуль объекта или менеджера?

   Рэйв

8 — 02.11.17 — 13:10

(0)Может ты пытаешься добиться ответа от ссылки, а не от объекта?

   kvant_ltd

9 — 02.11.17 — 13:55

(3) Почему именно в модуле менеджера, а не модуля документа? Чем модуль документа плох, тем более что вызываю стандартную функцию написанную разработчиками конфигурации, которая находится в модуле документа? Поясните, плиз…

   kvant_ltd

10 — 02.11.17 — 13:57

(6) Где и как цеплять файлы для этого форума? Не нашел, подскажите…

   kvant_ltd

11 — 02.11.17 — 13:57

(7) «модуля документа АктВыполненыхРабот.» — конечно речь и идет про модуль объекта

   Гипервизор

12 — 02.11.17 — 13:58

Нет такого модуля — модуль документа. Есть модуль объекта. Вас уже спрашивали в (8), не пытаетесь ли вы вызвать процедуру модуля объекта из ссылки?

   kvant_ltd

13 — 02.11.17 — 14:01

(8) Нет, переменная Акт имеет тип ДокументОбъект.АктВыполненныхРабот. В отладчике на скрине это видно. К сожалению, непонятно, как подцепить скриншот к форуму?

   Гипервизор

14 — 02.11.17 — 14:06

Воспользуйтесь каким-либо ресурсом для скриншотов и укажите ссылку.

   kvant_ltd

15 — 02.11.17 — 14:16

   DrShad

16 — 02.11.17 — 14:17

(15) эх, а он не у всех работает )))

   Гипервизор

17 — 02.11.17 — 14:19

(15) А вы уверены что в обработке у вас действительно выполняется условие «Если Сервер Или ТолстыйКлиентОбычноеПриложение…»?

   kvant_ltd

18 — 02.11.17 — 14:24

(17) Не уверен. Как можно проверить так это или нет?

И потом мне всегда казалось что модуль обработки всегда выполняется на сервере? Разве не так?

И наконец, из модуля документа я убирал условие «#Если Сервер Или ТолстыйКлиентОбычноеПриложение…» — никакой разницы.

   kvant_ltd

19 — 02.11.17 — 14:25

(16) А какой сервис скриншотов работает у всех?

   1dvd

20 — 02.11.17 — 14:34

(18)>> И потом мне всегда казалось что модуль обработки всегда выполняется на сервере? Разве не так?

не так

   kvant_ltd

21 — 02.11.17 — 14:36

(20) В каких случаях «не так»? Поясните, пожалуйста.

   Cyberhawk

22 — 02.11.17 — 15:46

(21) В режиме обычного приложения почти все выполняется на клиенте, если только специально ты не предпринимал действия по вынесению кода на сервер

   kvant_ltd

23 — 02.11.17 — 16:45

Просто перенести ЗаполнитьУсловияПродажПоCоглашению() в менеджер Документы.АктВыполненыхРабот — нельзя. Это стандартная процедура написанная разработчиками конфигурации «1С:Комплексная автоматизация 2». Но идея для обхода ошибки — правильная. Поэтому сделал так.

В модуле менеджера Документ.АктВыполненыхРабот добавил:

// Квант ***

Процедура Квант_ЗаполнитьУсловияПродажПоСоглашению(Объект) Экспорт

Объект.ЗаполнитьУсловияПродажПоСоглашению();

КонецПроцедуры

// *** Квант

В модуле обработки заменил строку

// Акт.ЗаполнитьУсловияПродажПоCоглашению();

на

Документы.АктВыполненныхРабот.Квант_ЗаполнитьУсловияПродажПоСоглашению(Акт);

На тестовой базе пока работает. Сейчас проверяю на рабочей… Проверил вроде работает.

P.S. Это уже наверно моя четвертая попытка переписать модуль обработки, так чтобы обойти ошибку «Модуль объекта не обнаружен». Все-таки Акт.ЗаполнитьУсловияПродажПоCоглашению() — должно работать в данном контексте и работало почти год(!) до перехода на платформу 8.3.10

  

kvant_ltd

24 — 02.11.17 — 16:45

Всем спасибо!

Понравилась статья? Поделить с друзьями:
  • Ошибка в модуле ucrtbase dll
  • Ошибка в названии организации в платежном поручении
  • Ошибка в назначении платежа ндфл
  • Ошибка в модуле msvcrt dll
  • Ошибка в названии организации в накладной