Ошибка при получении почтовых сообщений метод объекта не обнаружен tags

Так всё-таки, чем и как решилась эта проблема.
У самого УТ 10.3.45.2 (вчера обновил до последней версии) SQL-ный вариант.
Стояла и стоит stunnel. Почта yandex.ru
При получении писем, возникает та же самая ошибка, что и у Вас:
{ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(204)}: Метод объекта не обнаружен (tags) ТегиКартинок = НовыйHTMLДокумент.all.tags(«img»);
Решения не могу найти. Поиск по ошибке не рулит вообще ни разу.

Вот кусок этого кода, но он типовой:

Если ЗначениеЗаполнено(ХТМЛ_Текст) Тогда
Если УстанавливатьВидТекстаПисьма Тогда
ПисьмоОбъект.ВидТекстаПисьма = Перечисления.ВидыТекстовЭлектронныхПисем.HTML;
КонецЕсли;
НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
НовыйHTMLДокумент.open("text/html");
НовыйHTMLДокумент.write(ХТМЛ_Текст);
НовыйHTMLДокумент.close();
ТегиКартинок = НовыйHTMLДокумент.all.tags("img");
Для а = 0 По ТегиКартинок.length - 1 Цикл
ИсточникКартинки = ТегиКартинок.item(а).src;
Если Найти(ИсточникКартинки, "cid:") = 1 Тогда
ИсточникКартинки = Сред(ИсточникКартинки, 5);
ТегиКартинок.item(а).src = ИсточникКартинки;
КонецЕсли;
КонецЦикла;

Не пойму, получается он не может принять письмо с картинками, или не может им присвоить cid.

Добавлено: 10 окт 2017, 15:46


Прошу Вашей помощи, уважаемые знатоки 1ССС

Добавлено: 10 окт 2017, 17:44


А вот теперь точно странно. Поднял с копии базу 1 дневной, недельной и месячной дневной давности — ошибка та же.

Добавлено: 11 окт 2017, 09:05


Попробую вариант полностью очистить от писем «Менеджер контактов». И еще раз получить почту, при этом оставив на внешней почта только пару писем.

Добавлено: 12 окт 2017, 08:44


Вот, что странно:
Очистил всю почту с 1С УТ, на сервере yandex.ru очистил тоже все папки с письмами.
В 1С УТ нажимаю принять почту — загружает 10 каких-то сообщений (???) откуда-то (???) и вываливается с ошибкой.
Откуда берутся эти 10ть сообщений — неизвестно….
Удалил из 1С аккаунт почты — создал новый с теми же данными — ничего не поменялось.
Подскажите, есть ли у кого какие мысли?

Хотели было воспользоваться почтовым клиентом из Управление торговлей 10.3, да не тут-то было. К сожалению, фирма «1С» почти совсем ее забросила и если Ваш респондент отправляет Вам письма, содержащие HTML, то Вас ждут матюки… Ну что же, как говорится: «Спасение утопающих — дело рук самих утопающих».

Недавно возникла необходимость воспользоваться почтовым клиентом в Управление торговлей 10.3. Собирались получать письма из почтового ящика на Яндексе. Новый почтовый ящик — на нем лежало-то всего-ничего — пара писем от Яндекса с благодарностью за регистрацию. И каково же было удивление когда выяснилось, что даже эти несчастные письма мы получить не можем. Если письма содержали HTML то попытка получения этих писем приводила к ошибке:

{ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(205)}: Метод объекта не обнаружен (tags)
        ТегиКартинок = НовыйHTMLДокумент.all.tags(«img»);
 

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

В результате не мудрствуя лукаво (возможно у кого-то будет более красивое решение) отключил код с ошибкой. В модуле «УправлениеЭлектроннойПочтой» в процедуре «УстановитьТекстПисьма» закомментировал кусок кода и вставил под ним строку для обхода:

//НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
//НовыйHTMLДокумент.open("text/html");
//НовыйHTMLДокумент.write(ХТМЛ_Текст);
//НовыйHTMLДокумент.close();
//ТегиКартинок = НовыйHTMLДокумент.all.tags("img");
//Для а = 0 По ТегиКартинок.length - 1 Цикл
// ИсточникКартинки = ТегиКартинок.item(а).src;
// Если Найти(ИсточникКартинки, "cid:") = 1 Тогда
//  ИсточникКартинки = Сред(ИсточникКартинки, 5);
//  ТегиКартинок.item(а).src = ИсточникКартинки;
// КонецЕсли;
//КонецЦикла;
//ПисьмоОбъект.ТекстПисьма = НовыйHTMLДокумент.all.tags("html").item(0).outerHTML;
ПисьмоОбъект.ТекстПисьма = ХТМЛ_Текст;

На этом дело не закончилось. При попытке просмотра некоторых писем вываливалось аналогичное сообщение об ошибке:

{ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(3095)}: Поле объекта не обнаружено (innerText)
    Возврат СтрЗаменить(НовыйHTMLДокумент.all.item(0).innerText, Символ(13), «»);
 

Тут на помощь нам приходит более современная конфигурация УНФ, разработчикам которой есть дело до того как в ней работает встроенный почтовый клиент. Все в том же модуле «УправлениеЭлектроннойПочтой» в процедуре «ПреобразоватьТекстИзХТМЛФорматаВПростой» закомментировал кусок кода и вставил под ним строки для обхода:

//НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
//НовыйHTMLДокумент.open("text/html");
//НовыйHTMLДокумент.write(ТекстВФорматеХТМЛ);
//НовыйHTMLДокумент.close();

//Возврат СтрЗаменить(НовыйHTMLДокумент.all.item(0).innerText, Символ(13), "");

ПереводСтроки = Символы.ВК + Символы.ПС;

ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</o:p>", "</o:p>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</o:p>" + ПереводСтроки + ПереводСтроки, "</o:p>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</p>", "</p>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</p>" + ПереводСтроки + ПереводСтроки, "</p>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</div>", "</div>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</div>" + ПереводСтроки + ПереводСтроки, "</div>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "<br>", ПереводСтроки + ПереводСтроки);

Построитель = Новый ПостроительDOM;
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.УстановитьСтроку(ТекстВФорматеХТМЛ);

ДокументHTML = Построитель.Прочитать(ЧтениеHTML);

УдалитьТегиИзЭлементаHTML(ДокументHTML, "style");

Если ДокументHTML.Тело = Неопределено Тогда
Возврат "";
КонецЕсли;

Возврат ДокументHTML.Тело.ТекстовоеСодержимое;

И добавить процедуру:

Процедура УдалитьТегиИзЭлементаHTML(ЭлементHTML, Тег)

Для каждого Узел Из ЭлементHTML.ДочерниеУзлы Цикл
Если НРег(Узел.ИмяУзла) = НРег(Тег) Тогда
ЭлементHTML.УдалитьДочерний(Узел);
Иначе
// Рекурсия
УдалитьТегиИзЭлементаHTML(Узел, Тег);
КонецЕсли;
КонецЦикла;

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

Я же вообще вставил туда вызов функции «ПолучитьТекстИзHTML» из модуля «Гипертекст» из последних релизов УНФ. Подумалось что может еще что-нибудь оттуда пригодится. Правда придется немного обработать его «напильником» (дело в том что там активно используются новые функции «СтрШаблон» и «Найти»).

Так как организация, для которой это делалось, активно использовала механизм событий (собственно из-за чего и начался весь сырбор с интеграцией почты в 1С) то само собой возник вопрос почему документ «Электронное письмо» не тождественен событию. Так например в той же УНФ разрабы реализовали электронное письмо как один из вариантов события (т.е. у них нет в принципе такой отдельной от события сущности как «Электронное письмо»).

Вообщем в итоге решили генерировать документы «Событие» при отправке и получении электронных писем. Для создания документа «Событие» при отправки электронного письма все в том же модуле «УправлениеЭлектроннойПочтой» в процедуре «ПолучениеОтправкаПисем» добавил кусок кода:

НовоеСобытие = Документы.Событие.СоздатьДокумент();
Если (Письма <> Неопределено) И (Письма.Получить(Письмо) <> Неопределено) Тогда
НовоеСобытие.Заполнить(Письма[Письмо].Ссылка);
Иначе
НовоеСобытие.Заполнить(Письмо.Ссылка);
КонецЕсли;
НовоеСобытие.Дата    = ТекущаяДата();
НовоеСобытие.ТипСобытия   = Перечисления.ВходящееИсходящееСобытие.Исходящее;
НовоеСобытие.СостояниеСобытия = Перечисления.СостоянияСобытий.Завершено;
НовоеСобытие.Записать(РежимЗаписиДокумента.Проведение);

Вставить его нужно сразу после кода отправки:

Аналогично для создания документа «Событие» при получении электронного письма все в том же модуле «УправлениеЭлектроннойПочтой» в той же процедуре «ПолучениеОтправкаПисем» добавил кусок кода:

НовоеСобытие = Документы.Событие.СоздатьДокумент();
НовоеСобытие.Заполнить(Письмо.Ссылка);
НовоеСобытие.Дата    = Письмо.ДатаОтправления;
НовоеСобытие.ТипСобытия   = Перечисления.ВходящееИсходящееСобытие.Входящее;
НовоеСобытие.СостояниеСобытия = Перечисления.СостоянияСобытий.Завершено;
НовоеСобытие.Записать(РежимЗаписиДокумента.Проведение);

Вставить его нужно сразу после кода получения:

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

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

{Документ.Событие.МодульОбъекта(416)}: Поле объекта не обнаружено (innerText)
        НовоеСобытие.Заполнить(ЭлементыФормы.ЭлектронныеПисьмаСписок.ТекущиеДанные.Ссылка);
 

Соответственно идем в модуль объекта документа «Событие» в процедуру «ОбработкаЗаполнения», комментируем кусок кода и вставляем под ним строку для обхода (при условии конечно что Вы вносили в него правки, которые я приводил во втором фрагменте кода):

//НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
//НовыйHTMLДокумент.open("text/html");
//НовыйHTMLДокумент.write(ДокОснование.ТекстПисьма);
//НовыйHTMLДокумент.close();
//СодержаниеСобытия = СтрЗаменить(НовыйHTMLДокумент.all.item(0).innerText, Символ(13), "");
СодержаниеСобытия = УправлениеЭлектроннойПочтой.ПреобразоватьТекстИзХТМЛФорматаВПростой(ДокОснование.ТекстПисьма);

Итак, друзья мои, кто осилил дочитать до этого места не буду Вас больше утомлять кодом настало время картинок 🙂

Решили что гораздо красивее внешний вид формы обработки «Менеджер контактов» (именно она отображает почту) будет выглядеть (мониторы то нонче у всех широкие):

Вместо типового вида (который как в ширину не тяни — все равно ни списка писем толком не видно, да и само письмо отображается куцо):

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

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

P.S. Все вышесказанное справедливо (тестировалось) на Управление торговлей 10.3.35.1 и 10.3.40.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С 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С.

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

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

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

Друзья, у кого настроен внутренний почтовый клиент, все ли работает? У меня такая проблема, при выполнении регл.задания «Получение электронной почты», постоянно валится ошибка {ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль}: Метод объекта не обнаружен (tags) Вот код этого модуля: То есть COM объект создается, открыватся пишется, но доходит до последней строчки и валится в ошибку. Код типовой, на платформе пробовали и 8.2 и 8.3 — ошибка та же. Где-то в инете нашел что, что-то в IE запрещено, но что где не сказано… Помогите плиз в какую сторону копать…

копай в сторону освоения отладчика.

, будьте добры, скажите, как в отладчике залезть внутрь COMОбъекта?

подсказать как смотреть наличие нужного объекта и значения свойств? через окно в отладчике.

, у COMОбъекта отладчик не показывает свойства и их значения

Если это проявляется на малом количестве писем, вставь Попытка Исключение

, спс, помогло: теперь письма пропускаются, которые раньше вываливались с ошибкой. Немного подвисает 1С под пользователем, в момент выполнения этого регл.задания, но видимо это особенность файловой базы и фоновых заданий..

Тэги:

Комментарии доступны только авторизированным пользователям

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

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

Содержание

  • 1 Причины возникновения ошибки
    • 1.1 Объекты и методы
  • 2 Исправление ошибки
    • 2.1 Встроенные в платформу методы
    • 2.2 Методы, добавленные вручную
  • 3 Метод объекта не обнаружен Connect 1С 8.3
    • 3.1 Вам будет интересно

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

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

image002

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

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

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

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

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

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

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

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

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

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

image004

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

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

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

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

image006

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

image008

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

1

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

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

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

2

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

3

4

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

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

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

5

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

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

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

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

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

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

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

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

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

image036

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

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

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

image038

image040

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

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

image042

Ошибка «Метод объекта не обнаружен (С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”;image044
  • перезагрузите компьютер.

Стандартная утилита 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

Поставьте вашу оценку этой статье:

Загрузка…

Так всё-таки, чем и как решилась эта проблема.
У самого УТ 10.3.45.2 (вчера обновил до последней версии) SQL-ный вариант.
Стояла и стоит stunnel. Почта yandex.ru
При получении писем, возникает та же самая ошибка, что и у Вас:
{ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(204)}: Метод объекта не обнаружен (tags) ТегиКартинок = НовыйHTMLДокумент.all.tags(«img»);
Решения не могу найти. Поиск по ошибке не рулит вообще ни разу.

Вот кусок этого кода, но он типовой:

Если ЗначениеЗаполнено(ХТМЛ_Текст) Тогда
Если УстанавливатьВидТекстаПисьма Тогда
ПисьмоОбъект.ВидТекстаПисьма = Перечисления.ВидыТекстовЭлектронныхПисем.HTML;
КонецЕсли;
НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
НовыйHTMLДокумент.open("text/html");
НовыйHTMLДокумент.write(ХТМЛ_Текст);
НовыйHTMLДокумент.close();
ТегиКартинок = НовыйHTMLДокумент.all.tags("img");
Для а = 0 По ТегиКартинок.length - 1 Цикл
ИсточникКартинки = ТегиКартинок.item(а).src;
Если Найти(ИсточникКартинки, "cid:") = 1 Тогда
ИсточникКартинки = Сред(ИсточникКартинки, 5);
ТегиКартинок.item(а).src = ИсточникКартинки;
КонецЕсли;
КонецЦикла;

Не пойму, получается он не может принять письмо с картинками, или не может им присвоить cid.

Добавлено: 10 окт 2017, 15:46


Прошу Вашей помощи, уважаемые знатоки 1ССС

Добавлено: 10 окт 2017, 17:44


А вот теперь точно странно. Поднял с копии базу 1 дневной, недельной и месячной дневной давности — ошибка та же.

Добавлено: 11 окт 2017, 09:05


Попробую вариант полностью очистить от писем «Менеджер контактов». И еще раз получить почту, при этом оставив на внешней почта только пару писем.

Добавлено: 12 окт 2017, 08:44


Вот, что странно:
Очистил всю почту с 1С УТ, на сервере yandex.ru очистил тоже все папки с письмами.
В 1С УТ нажимаю принять почту — загружает 10 каких-то сообщений (???) откуда-то (???) и вываливается с ошибкой.
Откуда берутся эти 10ть сообщений — неизвестно….
Удалил из 1С аккаунт почты — создал новый с теми же данными — ничего не поменялось.
Подскажите, есть ли у кого какие мысли?

Друзья, у кого настроен внутренний почтовый клиент, все ли работает?

У меня такая проблема, при выполнении регл.задания «Получение электронной почты», постоянно валится ошибка {ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(207)}: Метод объекта не обнаружен (tags)

Вот код этого модуля:

НовыйHTMLДокумент = Новый COMОбъект(«HtmlFile»);

        НовыйHTMLДокумент.open(«text/html»);

        НовыйHTMLДокумент.write(ХТМЛ_Текст);

        НовыйHTMLДокумент.close();

        ТегиКартинок = НовыйHTMLДокумент.all.tags(«img»);

То есть COM объект создается, открыватся пишется, но доходит до последней строчки и валится в ошибку. Код типовой, на платформе пробовали и 8.2 и 8.3 — ошибка та же. Где-то в инете нашел что, что-то в IE запрещено, но что где не сказано… Помогите плиз в какую сторону копать…

Хотели было воспользоваться почтовым клиентом из Управление торговлей 10.3, да не тут-то было. К сожалению, фирма «1С» почти совсем ее забросила и если Ваш респондент отправляет Вам письма, содержащие HTML, то Вас ждут матюки… Ну что же, как говорится: «Спасение утопающих — дело рук самих утопающих».

Недавно возникла необходимость воспользоваться почтовым клиентом в Управление торговлей 10.3. Собирались получать письма из почтового ящика на Яндексе. Новый почтовый ящик — на нем лежало-то всего-ничего — пара писем от Яндекса с благодарностью за регистрацию. И каково же было удивление когда выяснилось, что даже эти несчастные письма мы получить не можем. Если письма содержали HTML то попытка получения этих писем приводила к ошибке:

{ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(205)}: Метод объекта не обнаружен (tags)
        ТегиКартинок = НовыйHTMLДокумент.all.tags(«img»);
 

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

В результате не мудрствуя лукаво (возможно у кого-то будет более красивое решение) отключил код с ошибкой. В модуле «УправлениеЭлектроннойПочтой» в процедуре «УстановитьТекстПисьма» закомментировал кусок кода и вставил под ним строку для обхода:

//НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
//НовыйHTMLДокумент.open("text/html");
//НовыйHTMLДокумент.write(ХТМЛ_Текст);
//НовыйHTMLДокумент.close();
//ТегиКартинок = НовыйHTMLДокумент.all.tags("img");
//Для а = 0 По ТегиКартинок.length - 1 Цикл
// ИсточникКартинки = ТегиКартинок.item(а).src;
// Если Найти(ИсточникКартинки, "cid:") = 1 Тогда
//  ИсточникКартинки = Сред(ИсточникКартинки, 5);
//  ТегиКартинок.item(а).src = ИсточникКартинки;
// КонецЕсли;
//КонецЦикла;
//ПисьмоОбъект.ТекстПисьма = НовыйHTMLДокумент.all.tags("html").item(0).outerHTML;
ПисьмоОбъект.ТекстПисьма = ХТМЛ_Текст;

На этом дело не закончилось. При попытке просмотра некоторых писем вываливалось аналогичное сообщение об ошибке:

{ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(3095)}: Поле объекта не обнаружено (innerText)
    Возврат СтрЗаменить(НовыйHTMLДокумент.all.item(0).innerText, Символ(13), «»);
 

Тут на помощь нам приходит более современная конфигурация УНФ, разработчикам которой есть дело до того как в ней работает встроенный почтовый клиент. Все в том же модуле «УправлениеЭлектроннойПочтой» в процедуре «ПреобразоватьТекстИзХТМЛФорматаВПростой» закомментировал кусок кода и вставил под ним строки для обхода:

//НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
//НовыйHTMLДокумент.open("text/html");
//НовыйHTMLДокумент.write(ТекстВФорматеХТМЛ);
//НовыйHTMLДокумент.close();

//Возврат СтрЗаменить(НовыйHTMLДокумент.all.item(0).innerText, Символ(13), "");

ПереводСтроки = Символы.ВК + Символы.ПС;

ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</o:p>", "</o:p>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</o:p>" + ПереводСтроки + ПереводСтроки, "</o:p>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</p>", "</p>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</p>" + ПереводСтроки + ПереводСтроки, "</p>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</div>", "</div>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "</div>" + ПереводСтроки + ПереводСтроки, "</div>" + ПереводСтроки);
ТекстВФорматеХТМЛ = СтрЗаменить(ТекстВФорматеХТМЛ, "<br>", ПереводСтроки + ПереводСтроки);

Построитель = Новый ПостроительDOM;
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.УстановитьСтроку(ТекстВФорматеХТМЛ);

ДокументHTML = Построитель.Прочитать(ЧтениеHTML);

УдалитьТегиИзЭлементаHTML(ДокументHTML, "style");

Если ДокументHTML.Тело = Неопределено Тогда
Возврат "";
КонецЕсли;

Возврат ДокументHTML.Тело.ТекстовоеСодержимое;

И добавить процедуру:

Процедура УдалитьТегиИзЭлементаHTML(ЭлементHTML, Тег)

Для каждого Узел Из ЭлементHTML.ДочерниеУзлы Цикл
Если НРег(Узел.ИмяУзла) = НРег(Тег) Тогда
ЭлементHTML.УдалитьДочерний(Узел);
Иначе
// Рекурсия
УдалитьТегиИзЭлементаHTML(Узел, Тег);
КонецЕсли;
КонецЦикла;

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

Я же вообще вставил туда вызов функции «ПолучитьТекстИзHTML» из модуля «Гипертекст» из последних релизов УНФ. Подумалось что может еще что-нибудь оттуда пригодится. Правда придется немного обработать его «напильником» (дело в том что там активно используются новые функции «СтрШаблон» и «Найти»).

Так как организация, для которой это делалось, активно использовала механизм событий (собственно из-за чего и начался весь сырбор с интеграцией почты в 1С) то само собой возник вопрос почему документ «Электронное письмо» не тождественен событию. Так например в той же УНФ разрабы реализовали электронное письмо как один из вариантов события (т.е. у них нет в принципе такой отдельной от события сущности как «Электронное письмо»).

Вообщем в итоге решили генерировать документы «Событие» при отправке и получении электронных писем. Для создания документа «Событие» при отправки электронного письма все в том же модуле «УправлениеЭлектроннойПочтой» в процедуре «ПолучениеОтправкаПисем» добавил кусок кода:

НовоеСобытие = Документы.Событие.СоздатьДокумент();
Если (Письма <> Неопределено) И (Письма.Получить(Письмо) <> Неопределено) Тогда
НовоеСобытие.Заполнить(Письма[Письмо].Ссылка);
Иначе
НовоеСобытие.Заполнить(Письмо.Ссылка);
КонецЕсли;
НовоеСобытие.Дата    = ТекущаяДата();
НовоеСобытие.ТипСобытия   = Перечисления.ВходящееИсходящееСобытие.Исходящее;
НовоеСобытие.СостояниеСобытия = Перечисления.СостоянияСобытий.Завершено;
НовоеСобытие.Записать(РежимЗаписиДокумента.Проведение);

Вставить его нужно сразу после кода отправки:

Аналогично для создания документа «Событие» при получении электронного письма все в том же модуле «УправлениеЭлектроннойПочтой» в той же процедуре «ПолучениеОтправкаПисем» добавил кусок кода:

НовоеСобытие = Документы.Событие.СоздатьДокумент();
НовоеСобытие.Заполнить(Письмо.Ссылка);
НовоеСобытие.Дата    = Письмо.ДатаОтправления;
НовоеСобытие.ТипСобытия   = Перечисления.ВходящееИсходящееСобытие.Входящее;
НовоеСобытие.СостояниеСобытия = Перечисления.СостоянияСобытий.Завершено;
НовоеСобытие.Записать(РежимЗаписиДокумента.Проведение);

Вставить его нужно сразу после кода получения:

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

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

{Документ.Событие.МодульОбъекта(416)}: Поле объекта не обнаружено (innerText)
        НовоеСобытие.Заполнить(ЭлементыФормы.ЭлектронныеПисьмаСписок.ТекущиеДанные.Ссылка);
 

Соответственно идем в модуль объекта документа «Событие» в процедуру «ОбработкаЗаполнения», комментируем кусок кода и вставляем под ним строку для обхода (при условии конечно что Вы вносили в него правки, которые я приводил во втором фрагменте кода):

//НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
//НовыйHTMLДокумент.open("text/html");
//НовыйHTMLДокумент.write(ДокОснование.ТекстПисьма);
//НовыйHTMLДокумент.close();
//СодержаниеСобытия = СтрЗаменить(НовыйHTMLДокумент.all.item(0).innerText, Символ(13), "");
СодержаниеСобытия = УправлениеЭлектроннойПочтой.ПреобразоватьТекстИзХТМЛФорматаВПростой(ДокОснование.ТекстПисьма);

Итак, друзья мои, кто осилил дочитать до этого места не буду Вас больше утомлять кодом настало время картинок 🙂

Решили что гораздо красивее внешний вид формы обработки «Менеджер контактов» (именно она отображает почту) будет выглядеть (мониторы то нонче у всех широкие):

Вместо типового вида (который как в ширину не тяни — все равно ни списка писем толком не видно, да и само письмо отображается куцо):

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

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

P.S. Все вышесказанное справедливо (тестировалось) на Управление торговлей 10.3.35.1 и 10.3.40.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с крипто про
  • Ошибка при получении общего доступа к интернету
  • Ошибка при получении контекста модуля криптографии 0х8010006е