(0) В модуль плана обмена нужно добавить процедуры:
Функция ЗаписатьНовоеСообщение(ЗаписьXML, ЗаписьСообщения) НомерСообщения = ЗаписьСообщения.НомерСообщения; Получатель = ЗаписьСообщения.Получатель; СписокТипов = Новый СписокЗначений(); Для Каждого Стр ИЗ Получатель.Объекты Цикл СписокТипов.Добавить(Тип(Стр.Тип)); КонецЦикла; НачатьТранзакцию(); ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(Получатель, НомерСообщения); Пока ВыборкаИзменений.Следующий() Цикл Данные = ВыборкаИзменений.Получить(); Если ТипЗнч(Данные) = Тип("УдалениеОбъекта") Тогда Иначе Если СписокТипов.НайтиПоЗначению(ТипЗнч(Данные)) = Неопределено Тогда Продолжить; КонецЕсли; КонецЕсли; ЗаписатьXML(ЗаписьXML, Данные); КонецЦикла; ЗафиксироватьТранзакцию(); Возврат НомерСообщения; КонецФункции// ЗаписатьНовоеСообщение(ИмяФайла) Функция ВыгрузитьИзмененияДанныхДляУзла(Получатель, КоличествоЭлементовВТранзакции, ЗаписьXML) Экспорт ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Получатель); ЗаписатьНовоеСообщение(ЗаписьXML, ЗаписьСообщения); ЗаписьСообщения.ЗакончитьЗапись(); Результат = Истина; Возврат Результат; КонецФункции Функция ЗагрузитьИзмененияДанныхДляУзла(УзелОбмена, КоличествоЭлементовВТранзакции, ЧтениеXML) Экспорт ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); ЧтениеСообщения.НачатьЧтение(ЧтениеXML); НомерСообщения = ЧтениеСообщения.НомерСообщения; НачатьТранзакцию(); Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл Данные = ПрочитатьXML(ЧтениеXML); Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; Данные.ОбменДанными.Загрузка = Истина; Данные.Записать(); КонецЦикла; ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого); ЗафиксироватьТранзакцию(); ЧтениеСообщения.ЗакончитьЧтение(); Результат = Истина; Возврат Результат; КонецФункции
-
Начат обмен данными по настройке «Обмен с «ДвухСторонийОбмен БД2″» (14:42:22).
Не найден входящий файл обмена данными.
Ошибка при записи изменений при обмене: Метод объекта не обнаружен (ВыгрузитьИзмененияДанныхДляУзла)
Запись изменений текущей информационной базы в файл обмена завершилась с ошибками!
Обмен данными по настройке «Обмен с «ДвухСторонийОбмен БД2″» завершен (14:42:33).Такая ошибка возникла при обмене (выгрузка данных с узла)
На самом деле процедуры нет. Может у кого есть и скинет мне [email protected]
в БСП 2.1 тоже не посмотрел. Буду очень благодарен
С Уважением -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.267
- Симпатии:
- 95
- Баллы:
- 54
Функция ВыгрузитьИзмененияДанныхДляУзла(Получатель, КоличествоЭлементовВТранзакции, ЗаписьXML) Экспорт
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Получатель);ЗаписатьНовоеСообщение(ЗаписьXML, ЗаписьСообщения);
ЗаписьСообщения.ЗакончитьЗапись();Результат = Истина;
Возврат Результат;
КонецФункции -
Спасибо большое. Она проверенная. Я понимаю , что я наглец. И даренному коню в зубы не смотрят.
Но все же это рабочий вариант Или это набросок Ваших мыслей., которые нужно проверять и развивать.?— Объединение сообщений, 4 дек 2014 —
И еще . В каком модуле ее прописывать ведь она прописана как
ЭтотУзелОбмена.ВыгрузитьИзмененияДанныхДляУзлаПоследнее редактирование: 4 дек 2014 -
Я почему засомневался .Ведь должен быть анализ на изменения
как минимум в конце вашего кода// Получаем выборку изменённых данных
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
Данные = ВыборкаИзменений.Получить();
// Записываем данные в сообщение
ЗаписатьXML(ЗаписьXML, Данные);и т.д. не знаю ка дальше.
Извините не прав ? -
А потом ошибки
{ОбщийМодуль.ПроцедурыОбменаДанными.Модуль(1542,1)}: Процедура или функция с указанным именем не определена (ЗаписатьНовоеСообщение)
<<?>>ЗаписатьНовоеСообщение(ЗаписьXML, ЗаписьСообщения); (Проверка: Толстый клиент (обычное приложение))Теперь Эта функция не определена. Нормально. Все равно спасибо. Одна неопределеная функция
заменилась другой
0
— 17.02.2012 — 15:58
Есть нестандартная конфа на базе Розницы и нестандартная конфа на базе УТ.
Требуется периодическая выгрузка измененных данных из Розницы в УТ. Односторонняя!
Я сделал в Рознице в конфигураторе свой план обмена. В режиме предприятия в Рознице задал два узла: Розница — текущий узел, и второй узел: УТ.
Сделал в КД правила конвертации Розница -> УТ.
Запускаю в Рознице стандартную обработку «УниверсальныйОбменДаннымиXML», указываю мои правила конвертации. Обработка без проблем выгружает изменения нужных мне данных, причем хоть в файл, хоть напрямую в УТ (через COM).
Но мне нужно, чтобы пользователь не открывал никакие обработки и ничего там не настраивал, поэтому я иду в «Сервис — Настройка обмена данными». Для узла УТ выбираю мои правила конвертации. Пробую настройки выгрузки через файл, и напрямую через COM, но при нажатии кнопки «Выполнить обмен» вылезает ошибка. Раз интерактивно не работает, то нет смысла и автоматически настраивать.
А ошибка из-за того, что в модуле моего плана обмена нет процедуры «ОпределитьТипОтправкиДанных()». Ругается, что такой метод у моего узла не найден. Но откуда он там может быть, я ж свой обмен хочу настроить, а не стандартный, у меня в модуле плана обмена вообще пусто.
Я что-то не так делаю? Подскажите…
1
— 17.02.2012 — 16:00
Вставил в модуль своего плана обмена процедуру, на которую обработка ругается, оставил её пустой, выгрузка в файл сработала. Но прямой обмен через COM всё-равно не идет, уже другая ошибка: не находит в базе-приемнике моего плана обмена. Но зачем он там??? Регистрация изменений у меня только в Рознице. В УТ она должна лишь уходить, там не нужно никакого плана обмена…
2
— 18.02.2012 — 17:19
Пригласить специалиста — не предлагали ещё?
©Франчи — позор 1С!
3
— 19.02.2012 — 19:36
Я не франч. Спец я и сам не плохой, но пробелы есть, как и у всех. Или спецы на форумах ничего не спрашивают, сами всё должны знать 100%-но?
Обмен делал только один раз, но это был двусторонний обмен, причем распределенная ИБ. И обмены через выгрузку изменений в файл и пересылку этого файла по FTP. Там все просто. А тут врроде бы ещё проще, но меня в какие-то дебри заносит, наверняка 1С что-то более разумное предусмотрела.
4
— 19.02.2012 — 20:53
а как Розница узнаёт, что УТ получила выгруженные ранее данные?
5
— 19.02.2012 — 21:29
а нафиг рознице знать, что привезли?
ей только цены нужны для продажи
инвентаризация — по данным УТ
6
— 19.02.2012 — 23:20
(5) Поскольку настроил правила обмена в КД, то хотел грузить напрямую в базу-приемник, через COM. А после успешной загрузки просто снимать регистрацию с измененных объектов. Кстати та же обработка «УниверсальныйОбменДаннымиXML» позволяет это сделать.
(6) Дак у меня конфигурации измененные. Обычная Розница из УТ стандартно всё и будет получать, а здесь просто на базе Розницы другая конфигурация, должны уходить в УТ объекты, которых нет в стандарте.
7
— 20.02.2012 — 09:11
up
8
— 20.02.2012 — 09:25
(0) Экспортный метод ОпределитьТипОтправкиДанных() должен быть у любого плана обмена, который будет работать по технологии конвертации данных. Хотя бы пустой, но быть должен. Кроме того для успешного обмена я бы тебе посоветовал наваять в УТ свой план обмена с пустым составом, чтобы он выдавал для розницы квитанции о получении данных для автоматического снятия с регистрации.
9
— 20.02.2012 — 11:00
(9) Спасибо за совет! Без плана обмена в УТ обмен почему-то и не работает, так что наверное в самом деле создам, мало ли придется через файл выгружать, тогда подтверждение приема очень будет кстати.
Только вот непонятно, как источник (Розница) узнает, какой план обмена в приемнике (УТ) должен быть задействован. Или нужно в конфигураторе УТ создать план обмена с таким же именем, что и в Рознице?
10
— 21.02.2012 — 21:10
(9) Воспользовался Вашим советом, создал план обмена и в УТ. В итоге обмен через COM сработал, из Розницы изменившиеся данные загрузились в УТ. И подтверждение приходит, т.к. повторно объекты не выгружаются.
Но вот с обменом через файловый ресурс проблема:
Из Розницы выгрузил изменения в файл. В УТ пробую их загрузить, мне пишет:
ОбщийМодуль.ПроцедурыОбменаДанными(1753)**: Метод объекта не обнаружен (ЗагрузитьИзмененияДанныхДляУзла)
Ошибка в этой строке:
СтруктураНастроекОбменаДанными.РезультатЧтенияДанн ых = ЭтотУзелОбмена.ЗагрузитьИзмененияДанныхДляУзла(Узе лОбмена, СтруктураНастроекОбменаДанными.КоличествоЭлементов ВТранзакцииНаЗагрузкуДанных, ЧтениеXML);
Ну думаю, значит опять та же ситуация, в моем модуле плана обмена нет нужной процедуры. Хотел скопировать. Но! Этой процедуры нет вообще в конфигурации!!!
Причем смотрел и УТ, и Розницу, глобальным поиском. Эта процедура (ЗагрузитьИзмененияДанныхДляУзла) встречается только один раз, в этом месте, где идет её вызов. И больше нигде она не вызывается, и мало того, нигде не описывается.
Конфы УТ и Розницы доделанные, но ничего 100% не удалялось, и переделывались только справочники, добавлялись новые объекты.
И я бы понял, если бы только в УТ такое было, ну может релиз глючный, т.к. не свежие релизы у меня. Но и в Рознице точно также, эта процедура вызывается в одном месте, и больше нигде не встречается.
Не сталкивались?
11
— 22.02.2012 — 11:19
Вобщем всё у меня получилось. Reaper, спасибо за наводку!
Насчет функции «ЗагрузитьИзмененияДанныхДляУзла» (то же самое кстати и с функцией «ВыгрузитьИзмененияДанныхДляУзла») — видимо 1С её специально сделала без объявления, чтобы можно было написать свою процедуру чтения/записи файлов обмена, и при этом пользоваться стандартными настройками обмена. Я создал у себя эти процедуры, но запихал в них вызов стандартных процедур чтения/записи файла обмена и все заработало.
12
— 22.02.2012 — 12:20
Наздоровье, обращайся.
Метод объекта не обнаружен в 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С:Бухгалтерия 8.3.
Содержание
- 1 Причины возникновения ошибки
- 1.1 Объекты и методы
- 2 Исправление ошибки
- 2.1 Встроенные в платформу методы
- 2.2 Методы, добавленные вручную
- 3 Метод объекта не обнаружен Connect 1С 8.3
- 3.1 Вам будет интересно
Причины возникновения ошибки
Пользователь получает предупреждение в виде всплывающего окна с текстом «Метод объекта не обнаружен ([Имя_метода])», если:
- метод не принадлежит к типу метаданных;
- опечатка в имени метода;
- у процедуры или функции, вызываемой в качестве метода объекта, не указанно ключевое слово Экспорт.
Для решения проблемы следует разобраться в структуре объектов конфигурации и их наборе методов.
Объекты и методы
Объекты или метаданные — основные составляющие конфигурации, куда сохраняются данные информационной базы. Состав метаданных закреплен на уровне платформы и не может дополняться программистом.
В список стандартных объектов 1С входят:
- константы;
- справочники;
- документы;
- отчеты;
- регистры сведений;
- и т. д.
Состав метаданных не ограничен объектами, перечисленными в окне дерева конфигурации: их в несколько раз больше. К тому же один объект может иметь несколько типов: например, ДокументОбъект, ДокументСсылка, ДокументВыборка и т. д. У каждого типа есть свой набор методов, которые позволяют выполнить определенную последовательность действий с отдельным экземпляром объекта.
Методы делятся на два вида:
- встроенные в платформу;
- написанные программистом в модулях объектов.
Встроенные методы объектов описаны в Синтакс-Помощнике: например, записать документ позволит метод Записать(). Имена методов созвучны с глаголом действия, которое будет произведено с метаданными.
Процедуры и функции, описанные в модулях объектов с ключевым словом Экспорт, дополняют типовые методы своих объектов и могут вызываться из любых программных модулей, где используются эти метаданные.
Исправление ошибки
Сообщение «Метод объекта не обнаружен» может возникнуть, например, при нажатии кнопки в документе.
Для детального анализа ошибки запустите конфигурацию в режиме отладки из конфигуратора Отладка — Начать отладку и повторите те же действия, чтобы вызвать повторное появление ошибки на экране. Кнопка Подробно раскроет окно с указанием строчки программного кода, где возникает сбой.
Для перехода в конфигуратор нажмите Конфигуратор.
В режиме конфигурирования курсор автоматически установится в месте появления ошибки, а информация из окна с подробным описанием сбоя в 1С отразится в служебном окне Конфигуратора.
Решение вопроса с ошибкой «Метод объекта не обнаружен» в 1С 8.3 будет зависеть от вида метода: созданный вручную или типовой.
Встроенные в платформу методы
Стандартные методы перечислены в Синтакс-Помощнике на ветках соответствующих объектов. Откройте Ситнакс-Помощник через меню конфигуратора Справка или по одноименной кнопке на панели инструментов. Для быстрого поиска на вкладке Индекс введите часть имени типа объекта, а для перехода к его описанию нажмите кнопку Найти текущий элемент в дереве.
Программа перейдет на вкладку Содержание и выделит искомый объект. Раскройте ветвь с методами и попытайтесь отыскать похожий по наименованию. Если такой нашелся, замените на него метод в строке кода с ошибкой.
Запустите 1С в режиме отладки и проверьте работу конфигурации в месте возникновения ошибки. Если окно со сбоем больше не выходит, обратите внимание на корректность обработки данных программой. Исправляйте имя метода в коде на типовое, только если видите явную опечатку в наименовании и не нашли одноименной процедуры/функции в моделях объекта.
Методы, добавленные вручную
Программисты могут добавлять экспортные процедуры и функции (со словом Экспорт) в модулях объектов, например, вкладке Прочее в окне редактирования объекта конфигурации.
Перед поиском метода узнают тип объекта, от которого запускается выполнение. Возможны варианты:
- для типов ДокументОбъект, СправочникОбъект и т. д. методы прописывают в Модуле объекта;
- типы ДокументМенеджер, ПеречислениеМенеджери т. д. — Модуль менеджера;
- типы РегистрСведенийНаборЗаписей и т. д. — Модуль набора записей (у регистров);
- тип КонстантаМенеджерЗначения — Модуль менеджера значения (у констант);
- и др.
Чтобы определить тип объекта, воспользуйтесь одним из способов:
- Разберите в окне ошибки строку кода, где идет обращение к методу:
- Документ.СчетНаОплатуПоставщика.Форма.ФормаДокумента — метод выполняется в модуле формы документа;
- Документ — объект, от которого запускается метод;
- Добавить() — имя метода. Характерная черта — наличие круглых скобок в конце, в них перечисляются параметры, если они необходимы для выполнения операций;
- ПодборТовараСервер() — имя процедуры/функции, где возникает ошибка.
В данном примере Документ является переменной, содержащей объект с типом ДокументОбъект, получаемый встроенным методом ПолучитьОбъект().
- Если конфигурация допускает вносить изменения, выведите тип объекта в окне сообщений в пользовательском режиме с помощью встроенных функций Сообщить() и ТипЗнч():
- Через команду контекстного меню Вычислить выражение в Конфигураторе:
Переменная Документ имеет тип ДокументОбъект.СчетНаОплатуПостащика, поэтому запускаемые методы программа ищет среди экспортных процедур/функций в модуле объекта документа СчетНаОплатуПоставщику.
Для поиска метода:
- откройте модуль объекта/менеджера/набора записей;
- найдите одноименную процедуру или функцию, для быстрого перехода к нужной части текста модуля воспользуйтесь окном поиска, набрав в нем часть имени метода;
- проверьте наличие ключевого слова Экспорт. При его отсутствии программа не сможет передать процедуру/функцию в другой модуль. Соответственно, она не будет обнаружена, что приведет к появлению ошибки «Метод объекта не обнаружен»;
- имя процедуры/функции должно совпадать с вызываемым методом: если имеются явные орфографические ошибки или опечатки, исправьте их;
- если наименование процедуры/функции полностью совпадает с методом, и ключевое слово Экспорт указано, возможно, причина — в неверном типе объекта.
Если тип объект задан неверно, то программа будет производить поиск экспортных процедур/функции вне тех модулях и пользователь получит ошибку «Метод объекта не обнаружен». Для решения проблемы потребуется переписать программный код, пользователю стоит обратиться к программисту.
Если ни один из вариантов исправления ошибки не дал результата, попробуйте закомментировать строку кода, где происходит сбой, добавив в начале строки два правых слеша.
Эти действия приведут к отключению строки кода с методом для выполнения программой. Возможно, это устранит появление ошибки, но может исказить или повредить данные в базе из-за нарушения алгоритма их обработки, т. к. из него исключена последовательность действий, описанная в методе. Поэтому вносить самостоятельные правки в программный код нужно с осторожностью.
Метод объекта не обнаружен 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С 8.3: внешняя обработка
- Не обнаружена установленная версия 1С Предприятия 8.3
- Неверный формат хранилища данных 1С
- Ошибка 1С 8.3 “Недостаточно памяти”
- Использование модальных окон в данном режиме запрещено в 1С
- Не запускается 1С 8.3: начало сеанса с информационной базой запрещено
Поставьте вашу оценку этой статье:
Загрузка…
Дата публикации: Дек 18, 2020
Поставьте вашу оценку этой статье:
Загрузка…