1с метод объекта не обнаружен сведенияовнешнейобработке

Обновлено: 07.07.2024

СведенияОВнешнейОбработке — экспортная функция в 1С 8.3, необходимая для подключения внешней обработки в конфигурации 1С на управляемых формах. Пример функции приведен ниже (ее необходимо добавить в модуль внешней обработки).

Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));
Команды.Колонки.Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»));
Команды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»));
Команды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));
Команды.Колонки.Добавить(«Модификатор», Новый ОписаниеТипов(«Строка»));
Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь , Модификатор = «»)
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры

1с сведенияовнешнейобработке внешняя обработка

И каждый раз написав отчет и прикрепляя его в этот справочник у меня возникает одна и та же ошибка “Метод объекта не обнаружен (СведенияОВнешнейОбработке)”.

1с сведенияовнешнейобработке внешняя обработка


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

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

1с сведенияовнешнейобработке внешняя обработка

Михаил Сайко

Внешние обработки – очень удобный инструмент для компаний, использующих типовые конфигурации на 1С:Предприятие 8.3. Они позволяют не тратить силы и средства на обновления 1С, давая возможность обновлять базы одной кнопкой в режиме простого пользователя. Используя механизм библиотеки стандартных подсистем, можно добавить различные кнопки в документы и справочники, не изменяя типовую конфигурацию. Рассмотрим пример создания и подключения внешней обработки в одной из конфигураций 1С.

Создаем внешнюю обработку в 1С 8.3

Чтобы создать новую внешнюю обработку, используем конфигуратор. Через меню «Файл» выбираем команду создания «Новый…» и определяемся, что мы будем создавать внешнюю обработку. В открывшемся окне задаем имя, и при нажатии «Enter» оно заполняется автоматически. Также это имя вам предложит система в качестве названия файла при сохранении.

1с сведенияовнешнейобработке внешняя обработка

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

  • Реквизит – поле для установки номенклатуры;
  • Кнопку, которая выполнит вызов кода.

Добавляем реквизит «Номенклатура» с типом данных «СправочникСсылка.Номенклатура» в соответствующем разделе и кнопку «Показать» в меню «Команды» -> «Команды формы».

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

1с сведенияовнешнейобработке внешняя обработка

Мы выбрали создание процедуры на сервере, так как хотим в качестве результата получить выборку из базы данных. На клиенте у нас нет такой возможности, поэтому потребуется подключение к серверу, который и обменивается с БД данными. Теперь нам необходимо написать код, который реализует задуманное нами. Будет использоваться запрос и вывод всех документов через функцию «Сообщить()».

1с сведенияовнешнейобработке внешняя обработка

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

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

Подключение внешней обработки в 1С

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

1с сведенияовнешнейобработке внешняя обработка

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

  • Указать размещение объекта. Нажатием на «Не определено» мы открываем окно разделов и укажем, в каких разделах будет доступна операция;
  • Выбрать пользователей, у которых данная команда появится в меню «Дополнительные обработки» выбранных разделов без лишних настроек. Для этого в табличной части нужно выбрать пункт «Быстрый доступ» и добавить в правую половину ответственных пользователей;
  • На вкладке «Дополнительная информация» вы можете указать папку, в которой будет находиться загруженная обработка;
  • После нажатия клавиши «Записать» в выбранном разделе в меню «Дополнительные обработки» пользователи обнаружат нашу команду и смогут ею воспользоваться.

1с сведенияовнешнейобработке внешняя обработка

Если мы хотим внести изменения в нашу обработку, необходимо сначала выгрузить ее из базы. Для этого в справочнике «Дополнительные обработки и отчеты» найдите нужную строчку и воспользуйтесь командой «Выгрузить в файл…». Внесите изменения, сохраните обработку и через клавишу «Загрузить из файла…» найдите измененный файл epf, не меняя параметры. После записи все пользователи увидят внесенные изменения.

Если вы используете не типовую или снятую с поддержки базу 1С, то воспользуйтесь возможностью загрузить обработку через конфигуратор. В дереве объектов в разделе «Обработки» создайте новую обработку и через контекстное меню выберите «Заменить на внешнюю обработку, отчет…». Останется лишь настроить запуск внешней обработки из нужного раздела, включив добавленную обработку в нужную подсистему.

1с сведенияовнешнейобработке внешняя обработка

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

Чтобы подключить внешний отчет или обработку в справочник Дополнительные отчеты и обработки необходимо описать экспортную функцию СведенияОВнешнейОбработке() в модуле. Вот шаблон такой функции:

Описание полей возвращаемой структуры можно посмотреть в комментарии к функции ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(). Там можно получить актуальную информацию для вашей версии БСП.

Опишу основные поля структуры сведений о внешней обработке. При этом буду по минимуму повторять информацию в упомянутом комментарии, а постараюсь дополнить ее.


Минимальное описание параметров регистрации

для конкретных видов

для всех документов

Это значение подставляется в наименование элемента справочника Дополнительные отчеты и обработки при создании.

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

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

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

Эту табличную часть можно заполнить и вручную.

Каждой строке соответствует один пункт в соответствующих меню, описанных в таблице выше.

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

Наиболее часто используются процедуры Печать() и ВыполнитьКоманду(), а также открытие формы без обращения к методу.

Это поле может принимать одно из значений, возвращаемых функциями ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКоманды<Тип>(), например, ТипКомандыВызовСерверногоМетода(). В каждой из этих функций есть подробный комментарий.

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

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


Полезные процедуры

Рекомендую обратить внимание на следующие процедуры и функции:

Также будет полезно развернуть демо конфигурацию по БСП. В ней есть примеры внешних обработок и отчетов в справочнике внешних обработок.


После создания отчета через СКД в Конфигурации, необходимо добавить через кнопку "Действия" - "Открыть модуль объекта", функцию:


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


Сохраняем отчет в *.erf

Перейдем к добавлению отчета в 1С в режиме работы Предприятие:

01 "НСИ и администрирование" - "Дополнительные отчеты и обработки" - кнопка "Добавить из файла":


После предупреждения безопасности:


"Продолжить" выбираем на диске сохраненный отчет с расширением *.erf

02 После выбора и добавления файла отчета, его наименование будет взято из поля Синоним. Остается выбрать "Используется" и "Записать" внешний отчет:


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


Выбрать нужный раздел:


04 После кнопки "Разместить", отчет можно найти в списке всех отчетов: "Главное" - "Все отчеты":

Чтобы понять, как действовать при возникновении такого оповещения, следует разобраться с причинами данной ошибки. Чаще всего ими служат либо некорректное обновление, либо ранее допущенные ошибки – при написании или тестировании кода. Далее мы рассмотрим каждую из причин отдельно и опишем алгоритм исправления ошибки «Метод объекта не обнаружен».

1. Некорректное обновление

Чаще всего ошибка «Метод объекта не обнаружен» возникает при обновлении на сервере без очистки кэша на клиентах. Т.е. клиентская часть считает, что база не обновлена. В таких случаях, как-бы банально это не звучало, достаточно почистить кэш клиента. На просторах интернета можно найти много описаний как это делать. Некоторые специалисты предпочитают пользоваться скриптами (bat файлами). Приведу один из них:

:: 1С 8.2 для Windows 7

If Exist %USERPROFILE%\AppData\Roaming\1C\1Cv82 (

ECHO 8.2 - Удаляем файлы временных файлов 1С в Windows 7

Del /F /Q %USERPROFILE%\AppData\Roaming\1C\1Cv82\*.*

Del /F /Q %USERPROFILE%\AppData\Local\1C\1Cv82\*.*

ECHO 8.2 - Удаляем каталоги временных файлов 1С в Windows 7

for /d %%i in ("%USERPROFILE%\AppData\Roaming\1C\1Cv82\*") do rmdir /s /q "%%i"

for /d %%i in ("%USERPROFILE%\AppData\Local\1C\1Cv82\*") do rmdir /s /q "%%i"

:: 1С 8.3 для Windows 7

If Exist %USERPROFILE%\AppData\Roaming\1C\1Cv8 (

ECHO 8.3 - Удаляем файлы временных файлов 1С в Windows 7

Del /F /Q %USERPROFILE%\AppData\Roaming\1C\1Cv8\*.*

Del /F /Q %USERPROFILE%\AppData\Local\1C\1Cv8\*.*

ECHO 8.3 - Удаляем каталоги временных файлов 1С в Windows 7

for /d %%i in ("%USERPROFILE%\AppData\Roaming\1C\1Cv8\*") do rmdir /s /q "%%i"

for /d %%i in ("%USERPROFILE%\AppData\Local\1C\1Cv8\*") do rmdir /s /q "%%i"

:: 1С 8.2 для Windows XP

If Exist %USERPROFILE%\Local Settings\Application Data\1C\1Cv82 (

ECHO 8.2 - Удаляем файлы временных файлов 1С в Windows XP

Del /F /Q %USERPROFILE%\Local Settings\Application Data\1C\1Cv82\*.*

Del /F /Q %USERPROFILE%\Application Data\1C\1Cv82\*.*

ECHO 8.2 - Удаляем каталоги временных файлов 1С в Windows XP

for /d %%i in ("%USERPROFILE%\Local Settings\Application Data\1C\1Cv82\*") do rmdir /s /q "%%i"

for /d %%i in ("%USERPROFILE%\Application Data\1C\1Cv82\*") do rmdir /s /q "%%i"

:: 1С 8.3 для Windows XP

If Exist %USERPROFILE%\Local Settings\Application Data\1C\1Cv8 (

ECHO 8.3 - Удаляем файлы временных файлов 1С в Windows XP

Del /F /Q %USERPROFILE%\Local Settings\Application Data\1C\1Cv8\*.*

Del /F /Q %USERPROFILE%\Application Data\1C\1Cv8\*.*

ECHO 8.3 - Удаляем каталоги временных файлов 1С в Windows XP

for /d %%i in ("%USERPROFILE%\Local Settings\Application Data\1C\1Cv8\*") do rmdir /s /q "%%i"

for /d %%i in ("%USERPROFILE%\Application Data\1C\1Cv8\*") do rmdir /s /q "%%i"

ECHO Кеш очищен!

Еще одной причиной, по которой может возникать ошибка «Метод объекта не обнаружен», является незавершенное, по какой-либо причине (сбой питания, сбой в системе, обрыв связи), обновление. В таких случаях необходимо восстановить базу из бэкапа и произвести обновление вновь.

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

2. Некорректно написанный код

Иногда, очень редко, бывает, что разработчик пишет код и, не тестируя, загружает его в рабочую базу. Из-за чего может возникать ошибка «Метод объекта не обнаружен» в таких случаях:

А) Не создан объект, к которому идет обращение. Например, реквизит «Поступление» имеет тип ссылка и пытается вызвать метод:

Читайте также: