1с метод объекта не обнаружен печать
Документ «ДоговорРаботыУслуги»
После добавления внешней печатной формы становится невозможна печать встроенных печатных форм. При попытке вывести их на печать (например «Договор подряда») получаем ошибку.
«Метод объекта не обнаружен Печать()»
ВнешняяОбработкаОбъект.Печать(
Хотя по логике должна вызываться встроенная печатная форма…
На всякий случай привожу функцию регистрации добавляемой дополнительной печатной формы. Может дело в ней.
Функция СведенияОВнешнейОбработке() Экспорт
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ДоговорРаботыУ слуги");
ТаблицаКоманд = Новый ТаблицаЗначений;
ТаблицаКоманд.Колонки.Добавить("Представление" , Новый ОписаниеТипов("Строка"));
ТаблицаКоманд.Колонки.Добавить("Идентификатор" , Новый ОписаниеТипов("Строка"));
ТаблицаКоманд.Колонки.Добавить("Использование" , Новый ОписаниеТипов("Строка"));
ТаблицаКоманд.Колонки.Добавить("ПоказыватьОповещен ие", Новый ОписаниеТипов("Булево"));
ТаблицаКоманд.Колонки.Добавить("Модификатор" , Новый ОписаниеТипов("Строка"));
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = "Акт сдачи приемки (Word)";
НоваяКоманда.Идентификатор = "АктСдачиПриемки";
НоваяКоманда.Использование = "ВызовКлиентскогоМетода"; //варианты: "ВызовКлиентскогоМетода или ВызовСерверногоМетода"
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = "ПечатьMXL";
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид" , "ПечатнаяФорма"); //Варианты: "ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов"
ПараметрыРегистрации.Вставить("Назначение" , МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование" , "Акт сдачи приемки выполненных услуг (Word)");
ПараметрыРегистрации.Вставить("Версия" , "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Информация" , "Дополнительная печатная форма 'Акт сдачи приемки выполненных услуг' из шаблона Word к документу 'Договор (работы, услуги)'");
ПараметрыРегистрации.Вставить("Команды" , ТаблицаКоманд);
Добавил ВПФ к документу
При попытке распечатать выдает ошибку:
Не удалось сформировать внешнюю печатную форму!
Метод объекта не обнаружен (Печать)
В чем проблема? Что не так?
Код:
Процедура ПечатьWord(ИмяМакета)
Попытка
Документ = MSWord.Application.Documents(1);
Документ.Activate();
Замена = Документ.Content.Find;
Замена.Execute("[НомерДоговора]", Ложь, Истина, Ложь, , , Истина, , Истина, СокрЛП(СсылкаНаОбъект.НомерДоговора));
Замена = Документ.Content.Find;
Замена.Execute("[ДатаДоговора]", Ложь, Истина, Ложь, , , Истина, , Ложь, СсылкаНаОбъект.ДатаДоговора);
MSWord.Bookmarks(СокрЛП("Таблица3")).Select();
Документ.Paragraphs.Add();
Rng = MSWord.Application.Selection.Range;
КонтактнаяИнформация = ПолучитьРеквизиты (СсылкаНаОбъект.Контрагент);
Для Каждого Строка из КонтактнаяИнформация Цикл
Если Строка.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента Тогда
мСтрокаМФакт = СокрЛП (Строка.Представление);
ИначеЕсли Строка.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда
мСтрокаМЮр = СокрЛП (Строка.Представление);
ИначеЕсли Строка.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента Тогда
мСтрокаМТел = СокрЛП (Строка.Представление);
КонецЕсли;
КонецЦикла;
Rng.InsertAfter(Строка("Фактический адрес: "+ СокрЛП(мСтрокаМФакт) +", Юридический адрес: "+ СокрЛП(мСтрокаМЮр)+", телефон "+ СокрЛП(мСтрокаМТел)));
Rng.InsertParagraphAfter();
MSWord.Bookmarks(СокрЛП("Таблица4")).Select();
Документ.Paragraphs.Add();
Rng = MSWord.Application.Selection.Range;
//Rng.InsertAfter(СокрЛП("Контрагент")+"РасСчет"+"*"+"КоррСчет"+"*"+"БИК");
БанковскиеСчета = ПолучитьНомер (СсылкаНаОбъект.Контрагент);
Для Каждого Строка из БанковскиеСчета Цикл
мСтрокаМСчет = СокрЛП (Строка.НомерСчета);
мСтрокаМКор = СокрЛП (Строка.КоррСчет);
мСтрокаМБик = СокрЛП (Строка.Код);
Rng.InsertAfter(Строка("р/с: "+ СокрЛП(мСтрокаМСчет) +", к/с: "+ СокрЛП(мСтрокаМКор)+", БИК "+ СокрЛП(мСтрокаМБик)));
Rng.InsertParagraphAfter();
MSWord.Application.Visible = Истина;
MSWord.Activate();
Исключение
Сообщить(ОписаниеОшибки());
MSWord.Application.Quit();
Функция ПолучитьРеквизиты(Плательщик)
Запрос = Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| КонтактнаяИнформация.Объект,
| КонтактнаяИнформация.Тип КАК Тип,
| КонтактнаяИнформация.Вид,
| КонтактнаяИнформация.Представление
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Объект = &Организация
|
|УПОРЯДОЧИТЬ ПО
| Тип
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("Организация",Плательщик);
КонтактнаяИнформация = Запрос.Выполнить().Выгрузить();
Такая ошибка появилась во многих внешних печатных формах, использующих метод ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(). Дело в том, что с обновлением БСП (библиотека стандартных подсистем) функция ПолучитьНомерНаПечать была переименована.
Новое наименование функции НомерНаПечать, а полный вызов ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(). Таким образом, для восстановления работы внешней печатной формы нужно внести правку в ее код.
Для исправления этой ошибки в Ваших печатных формах Вы можете обратиться к нам , или установить расширение, которое сразу восстановит работу старых внешних печатных форм.
Расширение не влияет на процесс обновления Вашей конфигурации и Вы его сможете установить самостоятельно без необходимости привлечения специалиста!
Ниже показан пример установки расширения в конфигурации «Управление торговлей 11»:
Расширение конфигурации совместимо с последними версиями конфигурации «Управление торговлей 11», «Комплексная автоматизация 2», «ERP Управление предприятием 2», ЗУП и других конфигураций на основе БСП.
Проверенные версии:
Управление торговлей: 11.4.8.57, 11.4.8.63, 11.4.8.68, 11.4.8.79, 11.4.8.82, 11.4.8.84, 11.4.8.92, 11.4.9.70, 11.4.9.82, 11.4.9.91, 11.4.9.98, 11.4.10.57, 11.4.10.62, 11.4.10.75, 11.4.10.89, 11.4.10.94, 11.4.11.55, 11.4.11.63, 11.4.11.65, 11.4.11.67, 11.4.11.71, 11.4.11.84, 11.4.11.88, 11.4.11.93, 11.4.11.98, 11.4.11.102, 11.4.11.104, 11.4.11.106, 11.4.12.61, 11.4.12.71, 11.4.12.75, 11.4.12.77, 11.4.12.81, 11.4.12.91, 11.4.12.102, 11.4.13.46, 11.4.13.47, 11.4.13.51, 11.4.13.57, 11.4.13.71, 11.4.13.85, 11.4.13.99, 11.4.13.103, 11.4.13.119, 11.4.13.123, 11.4.13.136, 11.4.13.147, 11.4.13.148, 11.4.13.155, 11.4.13.171, 11.4.13.178, 11.4.13.180, 11.4.13.187, 11.4.13.209, 11.4.13.227, 11.4.13.243, 11.4.13.269, 11.4.13.271, 11.4.13.275, 11.4.13.280, 11.4.13.281, 11.4.13.282, 11.4.14.64, 11.4.14.78, 11.4.14.85, 11.4.14.95, 11.4.14.105, 11.4.14.115, 11.4.14.140, 11.4.14.148, 11.4.14.164, 11.4.14.176, 11.4.14.181, 11.5.6.278, 11.5.7.203, 11.5.7.255, 11.5.7.279, 11.5.7.288, 11.5.7.294, 11.5.7.308, 11.5.7.316, 11.5.7.324, 11.5.7.336, 11.5.7.351, 11.5.7.367, 11.5.7.383, 11.5.7.390, 11.5.7.394, 11.5.7.402.
Комплексная автоматизация: 2.4.8.63, 2.4.8.73, 2.4.8.79, 2.4.8.82, 2.4.8.84, 2.4.8.92, 2.4.9.70, 2.4.9.82, 2.4.9.91, 2.4.9.98, 2.4.10.56, 2.4.10.62, 2.4.10.75, 2.4.10.89, 2.4.10.94, 2.4.11.46, 2.4.11.55, 2.4.11.63, 2.4.11.65, 2.4.11.67, 2.4.11.71, 2.4.11.84, 2.4.11.88, 2.4.11.91, 2.4.11.92, 2.4.11.98, 2.4.11.102, 2.4.11.104, 2.4.11.106, 2.4.12.64, 2.4.12.71, 2.4.12.75, 2.4.12.77, 2.4.12.81, 2.4.12.91, 2.4.12.96, 2.4.12.102, 2.4.13.47, 2.4.13.51, 2.4.13.57, 2.4.13.71, 2.4.13.85, 2.4.13.96, 2.4.13.103, 2.4.13.119, 2.4.13.123, 2.4.13.136, 2.4.13.147, 2.4.13.148, 2.4.13.149, 2.4.13.155, 2.4.13.156, 2.4.13.170, 2.4.13.180, 2.4.13.187, 2.4.13.203, 2.4.13.209, 2.4.13.227, 2.4.13.269, 2.4.13.271, 2.4.13.275, 2.4.13.278, 2.4.13.281, 2.4.13.282, 2.4.14.64, 2.4.14.78, 2.4.14.85, 2.4.14.105, 2.4.14.109, 2.4.14.115, 2.4.14.140, 2.4.14.148, 2.4.14.164, 2.4.14.176, 2.4.14.181, 2.5.7.226, 2.5.7.255, 2.5.7.279, 2.5.7.288, 2.5.7.298, 2.5.7.308, 2.5.7.316, 2.5.7.324, 2.5.7.336, 2.5.7.359, 2.5.7.366, 2.5.7.383, 2.5.7.390, 2.5.7.402.
ERP Управление предприятием: 2.4.8.57, 2.4.8.63, 2.4.8.79, 2.4.8.82, 2.4.8.84, 2.4.8.92, 2.4.9.70, 2.4.9.82, 2.4.9.91, 2.4.9.98, 2.4.10.56, 2.4.10.62, 2.4.10.75, 2.4.10.89, 2.4.10.94, 2.4.11.43, 2.4.11.56, 2.4.11.63, 2.4.11.65, 2.4.11.67, 2.4.11.71, 2.4.11.83, 2.4.11.88, 2.4.11.91, 2.4.11.93, 2.4.11.98, 2.4.11.102, 2.4.11.104, 2.4.11.106, 2.4.12.64, 2.4.12.71, 2.4.12.75, 2.4.12.77, 2.4.12.80, 2.4.12.83, 2.4.12.91, 2.4.12.96, 2.4.12.102, 2.4.12.109, 2.4.13.51, 2.4.13.57, 2.4.13.71, 2.4.13.85, 2.4.13.96, 2.4.13.103, 2.4.13.111, 2.4.13.119, 2.4.13.123, 2.4.13.136, 2.4.13.147, 2.4.13.148, 2.4.13.155, 2.4.13.156, 2.4.13.170, 2.4.13.180, 2.4.13.187, 2.4.13.203, 2.4.13.209, 2.4.13.227, 2.4.13.243, 2.4.13.269, 2.4.13.271, 2.4.13.275, 2.4.13.278, 2.4.13.281, 2.4.13.282, 2.4.14.64, 2.4.14.78, 2.4.14.85, 2.4.14.105, 2.4.14.109, 2.4.14.115, 2.4.14.140, 2.4.14.148, 2.4.14.164, 2.4.14.176, 2.4.14.181, 2.5.5.82, 2.5.5.94, 2.5.5.100, 2.5.5.104, 2.5.5.117, 2.5.6.72, 2.5.6.81, 2.5.6.98, 2.5.6.118, 2.5.6.124, 2.5.6.137, 2.5.6.159, 2.5.6.171, 2.5.6.195, 2.5.6.220, 2.5.6.234, 2.5.6.245, 2.5.6.261, 2.5.6.278, 2.5.6.290, 2.5.6.291, 2.5.7.201, 2.5.7.226, 2.5.7.255, 2.5.7.269, 2.5.7.279, 2.5.7.288, 2.5.7.298, 2.5.7.308, 2.5.7.316, 2.5.7.324, 2.5.7.336, 2.5.7.359, 2.5.7.366, 2.5.7.383, 2.5.7.390, 2.5.7.394, 2.5.7.402, 2.5.8.171, 2.5.8.179.
Возможна адаптация для конфигураций Казахстана, Беларуси, Узбекистана (перед покупкой уточните возможность адаптации в чате).
Сделал внешнюю печатную форму. все как по учебнику: - форма для отладки вообщем все работает - документ печатается. Когда добавляю документ во внешние печатные формы и печатаю документ по кнопке "Печать - Моя внешняя печатная форма" - документ печатается но еще вылетает ошибка: место в конфигураторе где возникает ошибка:
это какой-то встроенный модуль - во-первых. во-вторых он доступен для чтения. и в третьих смысл внешних отчетов - не вмешиваться в стандартный код. у меня есть ощущение что где-то что-то передается не так и попадает вместо "СсылкаНаОбъект" - "ЭтотОбъект". но странно что когда просто запускаю обработку - печатает без ошибки. а когда уже из формы документа - ошибка есть. никто не сталкивался?
А что в функции печать? Там из формы документа выполняется та функция которая в модуле обработки, а не формы
В модуле в "функции печать экспорт" идет вызов функции которая возвращает "ТабДокумент" и потом УниверсальныеМеханизмы.НапечататьДокумент с кучей параметров. я думаю что где-то тут что-то криво передается просто не понятно почему когда я ее как обработку запускаю - все как часики, а когда из документа по кнопке - все ок, но + эта ошибка вылетает.
Если я это закомментирую и буду использовать просто "ТабДок.Показать" то печатная форма будет выводиться в некрасивом не стандартном окне ) я просто не понимаю почему косячит? я в эту универсальную процедуру правильно параметры передаю.
Возможно это просто из-за конфы такие траблы: Зарплата и кадры бюджетного учреждения, редакция 1.0 (1.0.31.2) потому-что в других БП, УТ 8.2 такого косяка не бывало.
функция должна быть в модуле обработки а не в модуле формы. Дело в физиологии автора а не в конфигурации. У нас все отлично работает.
У меня в модуле обработки функция. ты на конфигурации ЗУП бюджет пробовал внешние печатные формы таким способом печатать?
я думаю без разницы все функции в печать загонять или сделать вызов функций. Все печатается без проблем так как нужно - если открываю через "файл - открыть", ввожу в реквизит СсылкаНаДокумент нужный документ и печатаю. Да просто зашел во внешние печатные формы, создал новый элемент и нажал добавить мою внешнюю обработку. Кстати есть макет с авторегистрацией (но пробовал и без нее)
Все спасибо ) понял ) во внешней печатной форме не нужно делать вызов на печать. вот так все прекрасно выводит. Всем спасибо.)
да. при отладке она правильно работает. а когда из документа вызываешь - она уже лишняя. нужно просто ТабДок возвращать - дальше сам на печать выведет как нужно.
Примеры появления и исправления ошибки рассмотрены нами на конфигурации 1С:Бухгалтерия 8.3.
Причины возникновения ошибки
Пользователь получает предупреждение в виде всплывающего окна с текстом «Метод объекта не обнаружен ([Имя_метода])», если:
- метод не принадлежит к типу метаданных;
- опечатка в имени метода;
- у процедуры или функции, вызываемой в качестве метода объекта, не указанно ключевое слово Экспорт.
Для решения проблемы следует разобраться в структуре объектов конфигурации и их наборе методов.
Объекты и методы
Объекты или метаданные — основные составляющие конфигурации, куда сохраняются данные информационной базы. Состав метаданных закреплен на уровне платформы и не может дополняться программистом.
В список стандартных объектов 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%\System32\RegSvr32.exe “С:\[путь до каталога 1С]\bin\comcntr.dll”;
- для x64: %windir%\SysWoW64\RegSvr32.exe “С:\[путь до каталога 1С] \bin\comcntr.dll”;
Стандартная утилита RegSvr32 автоматически зарегистрирует файл dll с компонентами обмена в реестре операционной системы, что устранит сбой в 1С, связанный с отсутствием метода connect. В Windows есть инструменты для ручного внесения компонент в реестр через пункт Администрирование на Панели управления , но эту задачу лучше поручить системному администратору компьютеров.
Запасным вариантом для решения вопроса с отсутствующим методом Connect остается чистка кэш-памяти 1С.
«Метод объекта не обнаружен» в 1С — ошибка серьезная, говорящая об отсутствии в программе алгоритмов, необходимых для выполнения действий пользователя. Если 1С сообщает о невозможности найти поле, элемент, реквизит или объект — такие проблемы сотрудник может решить самостоятельно. Но при недоступности методов необходимы знания о типах объектов, умения разбираться в программном коде, поэтому, когда ни один из способов не помог устранить сбой, следует обращаться к специалисту 1С.
Читайте также: