Метод объекта не обнаружен в 1С 8.3
После обновлений, доработок и других подобных изменений конфигурации пользователи могут столкнуться с ошибкой Метод объекта не обнаружен. В качестве метода выступают процедуры и функции, выполняющие некоторые действия с объектом. За каждым типом метаданных закреплены свои методы. Сообщение Метод объекта не обнаружен программа выдает в случаях, когда не находит во встроенном языке метод с таким именем или одноименную процедуру/функции в модулях объекта.
Примеры появления и исправления ошибки рассмотрены нами на конфигурации 1С:Бухгалтерия 8.3.
Причины возникновения ошибки в 1С 8.3
Пользователь получает предупреждение в виде всплывающего окна с текстом «Метод объекта не обнаружен ([Имя_метода])», если:
- метод не принадлежит к типу метаданных;
- опечатка в имени метода;
- у процедуры или функции, вызываемой в качестве метода объекта, не указанно ключевое слово Экспорт.
Для решения проблемы следует разобраться в структуре объектов конфигурации и их наборе методов.
Объекты и методы
Объекты или метаданные — основные составляющие конфигурации, куда сохраняются данные информационной базы. Состав метаданных закреплен на уровне платформы и не может дополняться программистом.
В список стандартных объектов 1С входят:
- константы;
- справочники;
- документы;
- отчеты;
- регистры сведений;
- и т. д.
Состав метаданных не ограничен объектами, перечисленными в окне дерева конфигурации: их в несколько раз больше. К тому же один объект может иметь несколько типов: например, ДокументОбъект, ДокументСсылка, ДокументВыборка и т. д. У каждого типа есть свой набор методов, которые позволяют выполнить определенную последовательность действий с отдельным экземпляром объекта.
Методы делятся на два вида:
- встроенные в платформу;
- написанные программистом в модулях объектов.
Встроенные методы объектов описаны в Синтакс-Помощнике: например, записать документ позволит метод Записать(). Имена методов созвучны с глаголом действия, которое будет произведено с метаданными.
Процедуры и функции, описанные в модулях объектов с ключевым словом Экспорт, дополняют типовые методы своих объектов и могут вызываться из любых программных модулей, где используются эти метаданные.
Исправление ошибки
Сообщение «Метод объекта не обнаружен» может возникнуть, например, при нажатии кнопки в документе.
Для детального анализа ошибки запустите конфигурацию в режиме отладки из конфигуратора Отладка — Начать отладку и повторите те же действия, чтобы вызвать повторное появление ошибки на экране. Кнопка Подробно раскроет окно с указанием строчки программного кода, где возникает сбой.
Для перехода в конфигуратор нажмите Конфигуратор.
В режиме конфигурирования курсор автоматически установится в месте появления ошибки, а информация из окна с подробным описанием сбоя в 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С:Бухгалтерия»
Задать вопрос автору статьи
Модули в 1С
Как и любая программа, программа 1С состоит из модулей, частей. Существует несколько видов модулей:
- общие модули (проведение, отчеты, процедуры общего назначения и т.д.);
- модуль объекта (валюты);
- модуль формы (форма: списка, элемента, подбора и выбора);
- модуль приложения.
Программные модули состоят из разделов:
- объявления переменных;
- процедур и функций;
- основной программы.
Определение 1
Контекст в 1С заключается в окружении модуля и его разделов, т.е. это конкретные переменные, свойства, объекты, метод и события которые могут быть доступны в каждой конкретной точке.
Виды контекста:
- Глобальный контекст указывает открытые для вызова функции;
- Локальный контекст (более низкий уровень) становится доступен в каждой модульной части.
Сдай на права пока
учишься в ВУЗе
Вся теория в удобном приложении. Выбери инструктора и начни заниматься!
Получить скидку 4 500 ₽
Существуют правила для доступа процедур, переменных, и функций в модулях:
- В общем модуле не будут доступны для экспорта переменные, процедуры и функции модульных приложений;
- В модульных приложениях существует доступ для экспорта процедур и функций общих модулей;
- В общих модульных частях открыт доступ к экспорту процедур и функций прочих общих модулей;
- Для модульных прикладных объектов и для модульных форм являются доступными переменные, функции и процедуры модулей приложений для экспорта и общих модулей.
Замечание 1
Если какой-либо из форм присвоен основной реквизит, то в настройках этой формы будут содержаться свойство и метод, которые отвечают этому основному реквизиту.
Ошибка модуля
В программе 1С ошибка модуля называется «Ошибка при вызове метода контекста». Такое сообщение об ошибке программа 1С дополняет пояснениями, которые описывают обстоятельства, вызвавшие сбой. Такие объяснения программа выдает только во второй и третий версиях программы. Данное пояснение находится в скобках после сообщения об ошибке, что существенно сокращает время, потраченное на ее исправление.
«Ошибка модуля в 1С: причины и способы исправления» 👇
Самые распространенные пояснения:
- записать;
- создать;
- подключиться;
- connect;
- проверить вывод;
- previewFile1C;
- прочитать;
- выполнить;
- выполнить пакет;
- прочитать изменения.
Данная ошибка может возникнуть по причинам:
- нарушена логическая и физическая целостность информационной базы;
- ошибки при обращении с программой;
- разработчиком ошибочно был введен код;
- внезапное закрытие программы.
Вы можете провести анализ ошибки:
- Сравнить версии программы и конфигурации (может быть повреждена платформа).
- Прочитать весь текст сообщения, т.к. в конце его содержатся рекомендации к её устранению.
- Проанализировать давность ее появления и обстоятельства её появления.
- Проверьте, появлялась ли ранее данная ошибка, т.к. невоспроизводимые ранее не встречавшиеся ошибки, чаще всего не исправляются.
- Если появившаяся ошибка появляется при пользовании программой под другим пользователем, то эту ошибку можно устранить путем очистки кэша, настройки прав, очистки пользовательских настроек.
Способы устранения ошибки
Замечание 2
Перед началом работы с базой обязательно сделайте архивную копию!
Данная ошибка в 99% случаях легко решается. Для этого вам достаточно проанализировать проблему и вызвать справку. Так же вы можете забить конкретную ошибку с пояснением в поиск и найти решение проблемы.
Перед использованием любого метода вы можете получить подсказку о том, как его использовать. Для этого выберете требуемую функцию и нажмите на клавиши на клавиатуре «Ctrl + F1». Программа откроет подсказку по необходимому методу. В конце работы проверьте параметры, которые передаются в функцию, и правильность её использования.
Замечание 3
В качестве профилактики следите за актуальностью релиза конфигурации.
Находи статьи и создавай свой список литературы по ГОСТу
Поиск по теме
Дата написания статьи: 22.02.2019
Kamil |
|
||
---|---|---|---|
|
Как открыть модуль объекта в обработке если не доступен, пишет «Исходный текст модуля отсутствует» некоторые команды берутся с модуля объекта в обработке… Подскажите как открыть??? Вот вам поставил обработку!!! |
Yandex |
|
||
---|---|---|---|
arbuzyka2525 |
|
||
---|---|---|---|
Изменено 30.07.13 11:46:22 |
E_Migachev |
|
||
---|---|---|---|
(0) Kamil, если он закрыт, значит обработка коммерческая, и ее открытие буде считаться взломом |
Kamil |
|
||
---|---|---|---|
Вот теперь вопрос..) Как взломать??? Заранее спасибо!!! |
awa |
|
||
---|---|---|---|
https://help1c.com/files/view/60.html |
Kamil |
|
||
---|---|---|---|
|
Не получается взломать??? Выдает такую ошибку… Подскажите пожалуйста….
Декомпилятор 1Cv8.x Apocalypse edition (c) 2012 awa |
Kamil |
|
||
---|---|---|---|
(4) awa, Помогите решить этот вопрос??? |
airman |
|
||
---|---|---|---|
awa, добрый день. вышла похожая ошибка при использовании вашей обработки для открытия модуля с «отсутствующим модулем»: |
DJ_Serega |
|
||
---|---|---|---|
Насколько я знаю обфускация это односторонний процесс. Нужно иметь исходники. |
DFinteX |
|
||
---|---|---|---|
AdrianBerka |
|
||
---|---|---|---|
|
Не можете взломать напишите функционал этого модуля сами либо заплатите автору кода за открытие исходников если такой вариант возможен. |
Bell |
|
||
---|---|---|---|
http://www.1c-zk2.ru/articles/vskrytie-zasity-konf… |
Bell |
|
||
---|---|---|---|
http://www.1c-zk2.ru/articles/vskrytie-zasity-konfiguracij-1s |
midav_m |
|
||
---|---|---|---|
Автору респект. очень помогло |
Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку |
Доброго времени суток!
Создал односторонний обмен УПП-УПП, при первой выгрузке данных поймал такую ошибку:
Техническая информация:
{Справочник.ТехнологическиеКартыПроизводства.МодульОбъекта(18,3)}: Процедура или функция с указанным именем не определена (Состояние)
В модуле объекта:
Процедура ПриКопировании(ОбъектКопирования) ЗапретРедактирования = Ложь; Состояние = Перечисления.СостоянияОбъектов.Подготовлен; КонецПроцедуры
Реквизиту «Состояние» присваивается вполне законное значение, при работе в режиме Предприятие ошибок нет. Раньше было
ЭтотОбъект.Состояние = Перечисления.СостоянияОбъектов.Подготовлен;
Но ошибка была та же. Отладчиком добраться туда пока нет возможности((
Доброго времени суток господа. Начал изучать 1с, и тут практически сразу напоролся на грабли. При вызове создания документа выдает следующую ошибку:
Ошибка инициализации модуля: Документ.РеализацияТоваров.МодульМенеджера
по причине:
{Документ.РеализацияТоваров.МодульМенеджера(2,17)}: Ожидается символ ‘(‘
Процедура Печать<<?>> счёта на оплату(ТабДок, Ссылка) Экспорт
{Документ.РеализацияТоваров.МодульМенеджера(24,29)}: Ошибка в выражении
Выборка = Запрос.Выполнить(<<?>>).Выбрать();
{Документ.РеализацияТоваров.МодульМенеджера(60,11)}: Процедура или функция с указанным именем уже определена (Печать)
Процедура <<?>>Печать счёта на оплату(ТабДок, Ссылка) Экспорт
{Документ.РеализацияТоваров.МодульМенеджера(60,17)}: Ожидается символ ‘(‘
Процедура Печать<<?>> счёта на оплату(ТабДок, Ссылка) Экспорт
{Документ.РеализацияТоваров.МодульМенеджера(82,29)}: Ошибка в выражении
Выборка = Запрос.Выполнить(<<?>>).Выбрать();
А теперь поподробнее про документ. Это документ «Реализация товара» вводится на основании документа «Закупка товара», связь сгенера через конструктор. В документе «Реализация товара» есть печатная форма, которая сгенерена через конструктор. Побывал разные комбинации, но один фиг не хочет создаваться. Что делать? Так как я ещё не силён в синтаксисе 1с, чисто теоретически могу предположить что ему нехватает каких то данных, но вот каких это вопрос. Причём я удалял печатную форму и таже ошибка вылетает.