При подписке на событие произошла ошибка. Обработчик события не найден.
Ошибка происходит в толстом клиенте управляемое приложение, на типовой конфигурации, созданной под обычное приложение.
При создании объекта (элемента справочника или документа) проверяется существование всех обработок подписок.
В данном случае ошибка возникает в такой строчке кода:
Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
Полный текст ошибки:
При подписке ПроверитьУстранениеПроблемыОбъекта на событие ПередЗаписью произошла ошибка. Обработчик события не найден. 
Поиск причины и исправление
Глобальный поиск дает события или саму процедуру:

Обратите внимание открывать для ТонкогоКлиента следует не там, где эта процедура находится, ведь там может стоять флажок «Вызов сервера», а та которая его вызывает и указана в подписке на события.
Флажок «Клиент (управляемое приложение) в свойствах одного из модулей

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

Корень проблемы
Многие зададут вопрос: а зачем запускать создавать объект под приложением не адаптированном под управляемое приложение?.
Ответ в том, что многие пишут обработки в режиме управляемого приложения (удобно им или берут готовые под переделку), если в свойствах конфигурации разрешить их использование, они будут работать, но только в составе конфигурации, а не как внешняя обработка.
Для того, чтобы отладить такую обработку, написанную вами или «чужую», можно произвести запуск конфигурации в другом режиме и она откроется, если не будет производить сложный действий, всё будет отлично, но не в этом случае.
Клиент получает ту рекламу, которую он заслуживает!
28.10.17 — 14:37
Сделал кнопочку.
Вот такая ошибка возникает
{ОбщийМодуль.птОбщиеПроцедурыИФункцииКлиент.Модуль(162)}: Ошибка при вызове метода контекста (ОтменитьИПровестиДокументыПоГТД)
птОбщиеПроцедурыИФункции.ОтменитьИПровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Форма.Объект, Отказ);
по причине:
При подписке ВлияющийНаСтатусПоступленияКиЗДокументПередЗаписью на событие ПередЗаписью произошла ошибка. Обработчик события не найден.
Ошибка возникает при выходе из процедуры.
Процедура ОтменитьИПровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, ФормаОбъект, Отказ) Экспорт
НачатьТранзакцию();
Объект = ДанныеформыВЗначение(ФормаОбъект, Тип(«ДокументОбъект.ПоступлениеТоваровУслуг»));
ФормаОбъект = Объект;
ФормаОбъект.Прочитать();
Ссылка = ФормаОбъект.Ссылка;
МассивДокументовОтменаПроведения = ОтменитьПроведениеДокументовПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Ссылка, Отказ);
ФормаОбъект.Записать();
ПровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Ссылка, Отказ, МассивДокументовОтменаПроведения);
ЗафиксироватьТранзакцию();
КонецПроцедуры
я посмотрел на подписку ВлияющийНаСтатусПоступленияКиЗДокументПередЗаписью.
Ссылкается на ИнтеграцияГИСМ.ВлияющийНаСтатусПоступленияКиЗДокументПередЗаписью
Самое интересное что обработчик заполнен и вызывается он после ФормаОбъект.Записать(); но еще более странное что именно когда точка останова стоит на КонецПроцедуры, возникает данная ошибка.
Проверяли на разных компах под разными пользователями. КЭШ исключаю.
11.3.4.93.
MS SQL
6 — 28.10.17 — 20:17
и перед вызовом процедуры в серверном модуле нет &НаКлиенте
Вот правда нет ВызовСервера. Но почему он должен вызываться с клиента?
У меня на клиенте есть процедура
Процедура ОбработкаЗаменыГТД(Результат,Форма) Экспорт
Если ЗначениеЗаполнено(Результат) Тогда
СтарыйНомерГТД = Форма.Элементы.Товары.ТекущиеДанные.НомерГТД;
Форма.Элементы.Товары.ТекущиеДанные.НомерГТД = Результат;
//СписокРеализаций = ПолучитьСписокДокументов(Форма.Элементы.Товары.ТекущиеДанные.Номенклатура, Форма.Элементы.Товары.Характеристика, Форма.Элементы.Товары.НомерГТД);
//УстановитьПривилегированныйРежим(Истина);
Отказ = Ложь;
Номенклатура = Форма.Элементы.Товары.ТекущиеДанные.Номенклатура;
Характеристика = Форма.Элементы.Товары.ТекущиеДанные.Характеристика;
Склад = Форма.Объект.Склад;
птОбщиеПроцедурыИФункции.ОтменитьИПровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Форма.Объект, Отказ);
//УстановитьПривилегированныйРежим(Ложь);
//птОбщиеПроцедурыИФункции.ПерепровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Форма.Объект.Ссылка, Отказ);
Если Отказ = Истина Тогда
Форма.Элементы.Товары.ТекущиеДанные.НомерГТД = СтарыйНомерГТД;
Форма.Записать();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Ошибка возникает при выходе из ОтменитьИПровестиДокументыПоГТД
Код этой процедуры я высылал.
Не могу понять, почему именно не так.
Сделал точку останова в ПоступлениеТоваровИУслуг на ПередЗаписью.
Внутри процедуры Процедура ОтменитьИПровестиДокументыПоГТД после
ФормаОбъект.Записать();
остановился в процедуре ПередЗаписью. Вышел из ОтменитьИПровестиДокументыПоГТД и не останаливался больше. В чем проблема никак не пойму….
Показывать по
10
20
40
сообщений
Новая тема
Ответить
Stasy_M
Дата регистрации: 25.10.2007
Сообщений: 6
Платформа: 8.1.8.76<br>Конфигурация: Бухгалтерия<br>После перехода с редакции 1.5 на 1.6 возникает ошибка:<br>»При подписке на событие произошла ошибка. Обработчик события не найден» при попытке открытия любого документа.<br>Помогите пожалуйста разобраться в чём проблема…<br>спасибо.
AlexeyK
Дата регистрации: 01.11.2007
Сообщений: 1
привет!<br>в конфигураторе — общие — подписки на события<br>пройдись по всем событиям, посмотри свойства, самая последняя строчка Обработчик, должна быть заполнена.<br>у меня тоже после обновления у некоторых ПодписокНаСобытия слетели Обработчики.<br>после того как я заполнил пустые Обработчики, эта ошибка при запуске 1С исчезла! <br>удачи!<br>чем заполнять, брал из эталонной конфигурации 1_6_3_2
Показывать по
10
20
40
сообщений
Вообщем, есть конфигурация УТ 3.1(для Украины). В типовой есть подписка на событие «ПередЗаписью» для всех «ДокументОбъект». Так вот, что она делает — совсем не важно, поскольку она не вызывается, а вот тут уже наступает вопрос — какого она собственно не вызывается?! У модуля, в котором расположен обработчик стоят флаги сервер и внешнее соединение. Пока все првильно… Но при вызове функции внутри формы обработки(&НаКлинете) — платформа пытается найти обработчик для подписки и конечно же его не находит, поскольку у модуля в котором он находится НЕ стоит флажок «клиент(управляемое приложение)». Выход очевиден — поставить его, да вот дилемма — модуль то типовой, и ладно еще просто снять с поставки, так надо же еще и кода поменять добавить килотонну(разделить на #Если НаКлиенте и т.д.). Вопрос в чем — может есть способ более пряморукий? ЗЫ: На вопрос «Почему клиентская функция ищет там какие-то подписки?!» мне ответить сложно, возможно это из-за создания документа в вызываемой функции(в том же модуле формы, которая уже имеет директиву компиляции &НаСервере), почему подписки не проверяются там — ??!!
а ты как узнал, что «внутри формы обработки(&НаКлинете) — платформа пытается найти обработчик для подписки»? Она тебе во сне, что ли, явилась и сама всё рассказал?
&НаКлинете этого происходить не может просто потому, что &НаКлинете не существует ни каких ДокументОбъектов и, как следствие, ни кто не знает ни чего про их события и подписки на них
либо она вызывается, но ни чего не делает, либо обработчик этот грамотно завернут в директивы компиляции и благодаря этому не существует, либо ты сам себя обыграл и ошибаешься.
Как тогда может вылетать ошибка о том, что не найден обработчик подписки на событие ПередЗаписью, внутри клиентской процедуры? Выполнение доходит до вызова серверной процедуры(в которой создается документ) и до ее вызова(по нажатию F11 в отладчике) вылетает вышеописанная ошибка.
подписа ПередЗаписью вызываются после событий формы и до обработчика в модуле объекта
не, вру — после обработчика в модуле, а не до.
Я вам про пряники, вы мне про кокосы. Говрю же, есть кнопошка, у нее есть событие обработчик события, конечно же он на клиенте, интерфейс как ни как :), в этом обработчике всего одна строчка «СоздатьЭН» — СоздатьЭН — метод описанный 3мя строчками выше, он серверный и в нем создается документ. Так вот, как только выполнение доходит до «СоздатьЭН», имею ввиду в функцию мы еще не шагнули — вылетает ошибка «При подписке … на событие ПередЗаписью произошла ошибка. Обработчик события не найден.» Разумеется с подпиской все ок, просто из-за того, что проверяется наличие обработчика там, где он не доступен… 🙁
А начнёшь копать, выяснится что и отладка на сервере отключена, и вообще это не тот объект…
Зато уверенность что «НЕ стоит флажок «клиент(управляемое приложение)». Выход очевиден — поставить его» у автора 100% Сделай копию. Поставь эту свою любимую галочку. Повтори эксперимент.
Покажи демонстрацию ошибки
ты нашел очень не подходящие уши, чтобы рассказывать в них сказки
Наверное файловый режим, толстый клиент…
FYI: +для+украины+картинки
да даже если так, все равно это все неправда и провокация. Подписка ни в одном режиме не может в контексте формы вызываться. Тем более — управляемой, перемать, форме, в которой ни каких объектов нет вне зависимости от толщины клиента
+ Или, точнее, толстый клиент УФ. Если да то запустить в тонком клиенте и проверить
Подписка в толстом клиенте вызовется на клиенте, в тонком на сервере. Если у модуля не стоит толстый клиент, будет ошибка. Сталкивались, вроде так если не ошибся…
в толстом обычном — на клиенте. Но в толстом обычном нет ни каких &НаКлиенте &НаСервере
В толстом УФ тоже на клиенте.
— Словил бряк — F11 — F11 ######### И еще пару скринов: ######### Поправил ссылки, модеры почистят предыдущее сообщение.
Полные Как Вы думаете, я не пробовал? Получил пелену ошибок еще не доходя до вышеуказанных действий, сказал же, нужно разделять условиями очень много кода
[ОФФТОП] Конечно, я специально потратил день на то, что бы отвлечь Вас на 10 секунд на набор злобного комментария. -_-[/ОФФТОП]
Так надо включить режим УП + ОП в свойствах конфигуратора и убедиться, что флажок компиляции «Клиент (ОП)» стоит у ОМ
Это какая-то фича, или что? Просто не могу понять, как флаг, предназначенный для ОП может поменять логику работы УП? Не хочется врубать комп, лег уже 😉 ЗЫ: Спасибо, что без злобных посланий, а то пришел на форум утром за советом, а в итоге вместо ответа получил несколько предложений сходить куда подальше
«Пелена посланий» означает то, что конфигурация всеми силами пытается до тебя довести, что этот функционал не работает в толстом клиенте. Зачем ты пытаешься ее изнасиловать (см предмет отладки на первом скриншоте), науке неизвестно. Так что выбирай — плакать и удивляться или замачивать рукава и перепиливать типовой функционал всей конфигурации, потому что одним модулем там дело не кончится.
Закатывать. Но так тоже ничего.
После сохранения конфы, слияния с типовой проблема ликвидировалас. Вероятно баг платформы. Тема закрыта.
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Описание проблемы, ошибки, которую надо диагностировать
Если у подписки на события указан обработчик, которого не существует или метод не экспортный, то форма элемента объекта в режиме предприятия не откроется.
Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы
Ошибка в режиме предприятия «При подписке ТестоваяПодписка на событие ПередЗаписью произошла ошибка. Обработчик события не найден.».

Тип Статья на русском
- 🐜 Ошибка
- 👮 Уязвимость
- 💩 Качество кода
-
Другое
Важность Статья на русском
- 💔 Блокирующая / Blocker
- ❤️ Критическая / Critical
- 💛 Важная / Major
- 💙 Незначительная / Minor
- 💚 Информационная / Info
- 💞 Другое
Тэги Статья на русском
-
STANDARD— «Нарушение стандартов 1С» -
LOCKINOS— «Не будет работать в другой ОС» -
SQL— «Проблема с запросом» -
PERFORMANCE— «Проблема производительности» -
BRAINOVERLOAD— «Непонятный код» -
BADPRACTICE— «Плохая практика программирования» -
CLUMSY— «Излишние действия» -
DESIGN— «Ошибка в проектировании» -
SUSPICIOUS— «Подозрительный код» -
UNPREDICTABLE— «Непредсказуемо работающий код» -
DEPRECATED— «Устаревшая функциональность» -
ERROR— «Ошибочная конструкция»
Время на исправление (минут)
5 минут