Ошибка при вызове обработчика события

Ошибка Метод обработчика события … не найден.

Я
   Target25

28.04.16 — 08:49

Дословно:

{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(3862)}: ВНЕШНЕЕ СОЕДИНЕНИЕ: {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(7744)}: Ошибка при вызове метода контекста (ПолучитьОбъект)

            СозданныйОбъект = СсылкаНаОбъект.ПолучитьОбъект();

по причине:

При подписке ОбновитьИННИндивидуальногоПредпринимателя на событие ПриЗаписи произошла ошибка. Метод обработчика события ПриЗаписиСправочникаФизическиеЛицаОбновитьИННИП не найден.

            ВызватьИсключение СтрокаСообщения;

=====

Синхронизация ЗУП 3.0 — БУХ 3.0.

Не могу понять, куда копать.

   FIXXXL

1 — 28.04.16 — 08:52

ПриЗаписиСправочникаФизическиеЛицаОбновитьИННИП процедура привязанная к подпиське

а самой процедуры не находит модулях

   Рэйв

2 — 28.04.16 — 08:58

+(1)скорее всего вообще не видит модуль по внешнему соединению

   Target25

3 — 28.04.16 — 08:59

(2) Где посмотреть список(?) подписок? в каком модуле должна находиться ПриЗаписиСправочникаФизическиеЛицаОбновитьИННИП ? я бы просто добавил заглушку из такой процедуры, чтобы обойти проблему.

   Target25

4 — 28.04.16 — 09:00

(3) я даже не могу пока понять, в какой из баз должна быть эта процедура. Ни в одной из баз такой процедуры не получается найти.

   Рэйв

5 — 28.04.16 — 09:01

(3)Боюсь подписка смотрит адресно по пространству имен. Т.е ИмяМодуля.ИмяПроцедуры. Так что в других местах она и смотреть не будет

   FIXXXL

6 — 28.04.16 — 09:01

(3) смотри там, где документ пишется

ну и у модуля, в котором лежит искомая процедура должна по идее галка стоять ВнешнееСоединение

   FIXXXL

7 — 28.04.16 — 09:02

(4) подписка срабатывает ПриЗаписи, ищи в приемнике

   Target25

8 — 28.04.16 — 09:03

(5) а список подписок как-то можно посмотреть?

   Target25

9 — 28.04.16 — 09:04

(7) увы, я не понял фразу. Все что у меня пока есть — это текст этой ошибки.

   Рэйв

10 — 28.04.16 — 09:05

(8)Конечно.В конфигураторе.Ветка Общие

   FIXXXL

11 — 28.04.16 — 09:05

(9) ОбновитьИННИндивидуальногоПредпринимателя ищи, это имя подписки

  

Target25

12 — 28.04.16 — 09:10

(11) Спасибо! Нашел подписку, там нажал лупу на имени функции, функция сгенерировалась и встала в общий модуль. Все заработало!

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

При подписке на событие произошла ошибка. Обработчик события не найден.

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

При создании объекта (элемента справочника или документа) проверяется существование всех обработок подписок.

В данном случае ошибка возникает в такой строчке кода:

Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();

Полный текст ошибки:

При подписке ПроверитьУстранениеПроблемыОбъекта на событие ПередЗаписью произошла ошибка. Обработчик события не найден. pri-podpiske-pered-zapisyu-proizoshla-oshibka-obrabotchih-sobytiya-ne-najden

Поиск причины и исправление

Глобальный поиск дает события или саму процедуру:

rezultaty-poiska

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

Флажок «Клиент (управляемое приложение) в свойствах одного из модулей

klient-upravyalemoe-prilozhenie-v-svojstvah-modulya

Далее тестируете создание еще раз, в моем случае цепочкой вызывались еще ряд модулей, которые  пришлось также модифицировать.

Как сделать глобальный поиск по тексту?

Меню «Правка/Глобальный поиск» 

globalnyj-poiskПри  этом обязательно необходимо указать поиск по «Свойствам», иначе не найдете такой подписки:

poisk-po-svojstvam

Корень проблемы

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

Ответ в том, что многие пишут обработки в режиме управляемого приложения (удобно им или берут готовые под переделку), если в свойствах конфигурации разрешить их использование, они будут работать, но только в составе конфигурации, а не как внешняя обработка.

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

Реклама давно, цепко, как спрут, завладела нашим миром. Начав с фиглярства, она теперь управляет нашими жизнями.

О поддержке толстого клиента подписками на события БСП

tormozit Дата: Четверг, 19.12.2013, 14:19 | Сообщение # 1

Генералиссимус

Группа: Администраторы

Репутация: 126

Статус: Онлайн

Оригинальная тема на партнерском форуме 1С  https://partners.v8.1c.ru/forum/topic/1135052

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

При запуске предприятия в клиент-серверном режиме в базе с конфигурацией на основе БСП в режиме толстого управляемого клиента есть несколько типов проблем с подписками на события, которых можно было бы избежать. Обычно такое происходит в случаях

  • если конфигурация разработана для обычного приложения, а БСП встроили с целью мягкого перевода ее на управляемое приложение
  • после добавления в конфигурацию функционала работающего только в толстом клиенте

 
tormozit Дата: Четверг, 19.12.2013, 14:20 | Сообщение # 2

Генералиссимус

Группа: Администраторы

Репутация: 126

Статус: Онлайн

Проблема №1

Ошибки типа «При подписке <ИмяПодписки> на событие <ИмяСобытия> произошла ошибка. Обработчик события не найден.»
На форуме нашел такой пример Обсуждение 1114793 »»
Такие ошибки обычно появляются из-за того, что подписки БСП
включаются для агрегатных типов объектов (СправочникОбъект,
ДокументОбъект и т.д.), а у общих модулей обработчиков этих подписок не
включена компиляция в режиме толстого управляемого клиента. Например так
сделано в конфигурации «Управление торговлей 11» с подпиской
ПроверитьИзмененияДатВПредмете.

Провел следующий эксперимент.

  • Взял демо конфигурацию БСП 2.0.1.7
  • Добавил туда справочник Справочник1
  • Подписку ПроверитьИзмененияДатВПредмете подключил к агрегатному типу СправочникОбъект
  • В процедуру ПриНачалеРаботыСистемы добавил код

    Код

    #Если ТолстыйКлиентУправляемоеПриложение Тогда
        Объект = Справочники.Справочник1.СоздатьЭлемент();
        Объект.Записать();
    #КонецЕсли

  • Запустил в режиме толстого управляемого клиента
  • Получил ошибку «При подписке ПроверитьИзмененияДатВПредмете на событие ПриЗаписи произошла ошибка. Обработчик события не найден.»
  • Включил у общего модуля НапоминанияПользователяСервер все флажки компиляции, обрамив все его тело директивой препроцессора для компиляции
    везде, кроме тонкого и веб клиентов
  • Запустил в режиме толстого управляемого клиента
  • Ошибки не возникло
    Отмечу, что контроль доступности обработчиков всех событий объекта
    платформой выполняется сразу при инициализации объекта, а не при вызове
    события.
  •  
    tormozit Дата: Четверг, 19.12.2013, 14:20 | Сообщение # 3

    Генералиссимус

    Группа: Администраторы

    Репутация: 126

    Статус: Онлайн

    Проблема №2

    Ошибки типа «Ошибка при выполнении обработчика — <ИмяСобытия> по причине: Попытка передачи с клиента на сервер
    мутабельного значения 1-го параметра метода <ИмяМетода>().
    »
    На форуме нашел такой пример Обсуждение 994600 »»
    Такие ошибки появляются из-за того, что подписки БСП обычно
    включаются для супертипов объектов (СправочникОбъект,
    ДокументОбъект и т.д.), а у общих модулей обработчиков этих подписок не
    включена компиляция в режиме толстого управляемого клиента и включен
    флажок «вызов сервера».

    Провел следующий эксперимент.

  • Взял демо конфигурацию БСП 2.0.1.7
  • Добавил туда справочник Справочник1
  • Подписку ЗаписатьГруппыИВидыДоступа подключил к агрегатному типу СправочникОбъект
  • В процедуру ПриНачалеРаботыСистемы добавил код

    Код

    #Если ТолстыйКлиентУправляемоеПриложение Тогда
          Объект = Справочники.Справочник1.СоздатьЭлемент();
          Объект.Записать();
    #КонецЕсли

  • Запустил в режиме толстого управляемого клиента
  • Получил ошибку » {МодульУправляемогоПриложения(71)}: Ошибка при вызове метода контекста (Записать)
    Объект.Записать();
    по причине:
    Ошибка при выполнении обработчика — ‘ПриЗаписи’
    по причине:
    Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ЗаписатьГруппыИВидыДоступа (). »
    Исправление этой проблемы более сложное. Нужно вынести метод
    обработчика подписки в отдельный общий модуль без флажка «вызов
    сервера», но со всеми включенными флажками компиляции, обрамив все его
    тело директивой препроцессора для компиляции везде, кроме тонкого и веб
    клиентов.

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

  •  
    tormozit Дата: Четверг, 19.12.2013, 14:21 | Сообщение # 4

    Генералиссимус

    Группа: Администраторы

    Репутация: 126

    Статус: Онлайн

    Общий вывод и рекомендация

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

     
    imivankov Дата: Пятница, 15.05.2015, 21:44 | Сообщение # 5

    Рядовой

    Группа: Проверенные

    Репутация: 0

    Статус: Оффлайн

    Странно, но помогает наоброт именно включение флажка «Вызов сервера». Объединял с Бухгалтерия 3.0.39.58., обработка ирРедактированиеОбъектаБД в форме выдает ошибку когда пытается получить объект, потому что обработчик события находится в модуле, где стоят все галки компиляции, но не стоит вызов сервера. Хочется услышать реально ли чтобы нормально заработало с Бух 3.0 или эти ошибки будут числом далеко за сотню, пока все модули в которых есть обработчики событий не будут изменены (установлен флажок «Вызов сервера») и будут ли ещё засады?
     
    tormozit Дата: Среда, 10.06.2015, 00:52 | Сообщение # 6

    Генералиссимус

    Группа: Администраторы

    Репутация: 126

    Статус: Онлайн

    В версии 3.33.1 портативных инструментов реализован серверный модуль для конфигураций с БСП и соответственно поддержка опции «Запись на сервере» для всех модифицирующих данные инструментов.
     
    Kasansin Дата: Вторник, 03.11.2015, 10:09 | Сообщение # 7

    Лейтенант

    Группа: Проверенные

    Репутация: 5

    Статус: Оффлайн

    Установка флажка «Вызов сервера» помогла (около 10 модулей). 
    На партнерском форуме где то было, что 1С хочет отказаться от флажка «Вызов сервера». Официальной информации не нашел. 
    Пока буду жить в включенными флажками.
     
    tormozit Дата: Вторник, 03.11.2015, 10:15 | Сообщение # 8

    Генералиссимус

    Группа: Администраторы

    Репутация: 126

    Статус: Онлайн

    Цитата Kasansin ()

    Установка флажка «Вызов сервера» помогла (около 10 модулей).

    Помогла решить какаую проблему?

     
    Kasansin Дата: Четверг, 05.11.2015, 09:53 | Сообщение # 9

    Лейтенант

    Группа: Проверенные

    Репутация: 5

    Статус: Оффлайн

    Цитата tormozit ()

    Помогла решить какаую проблему?

    Эту проблему. редактор объектов и удаление объектов.
    В обработке удаление объектов режим «запись на сервере» — не включал. Хотя наверно перестарался надо было протестировать с этой галочкой
    Список модуле опишу с своей теме.

    Сообщение отредактировал KasansinЧетверг, 05.11.2015, 11:45

     

    Показывать по
    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
    сообщений

    0

    31.01.2018 — 20:54


    Есть 2 базы в клиент-серверном варианте, УТ 11.2 и УТ11.3. Создаю COM-соединение (на сервере) из одной базы к другой. Из первой базы пытаюсь создать документ Заказ клиента во второй подключаемой базе. При попытке создания документа вываливаются ошибки, типа Метод обработчика события (название события) не найден. Долго искал решение и выяснил, что в свойствах всех подписках для данного документа не стоит галка Вызов сервера. Установил ее везде. Ошибки данного типа исчезли. Но при попытки записать этот документ вылезла другая ошибка:
    Ошибка при вызове метода контекста (Записать): Произошла исключительная ситуация (1C:Enterprise 8.3.9.1818): Ошибка при выполнении обработчика — ‘ПередЗаписью’
    Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ЗаписатьВерсиюДокумента ().
    Как это победить?

    1

    01.02.2018 — 10:21

    Проблема всё еще актуальна. Уточню немного, у меня такой код, выполняется на сервере, выделил только основные моменты:
    Base1С = Новый COMОбъект(«V83.Application»);
    Соединение = Base1С.Connect(«Srvr=»»» + ИмяСервера + «»»;Ref=»»» + НазваниеБазы + «»»;Usr=»»» + ПользовательБД + «»»; Pwd=»»» + ПарольБД + «»»;»);
    ДокЗаказыКлиента_Base1С = Base1С.NewObject(«ДокументМенеджер.ЗаказКлиента»);
    ДокОбъект_Base1С = ДокЗаказыКлиента_Base1С.СоздатьДокумент();
    ДокОбъект_Base1С.Записать();

    У кого-то получалось создать в УТ11 какой-либо документ или справочник при подобном подключении? Или я что-то не доделал?

    2

    01.02.2018 — 10:58

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

    3

    01.02.2018 — 11:16

    (2)Допустим мы отключим все подписки, происходящие при записи, что вроде как не совсем правильно, ведь они то нужны, чтобы дозаполнить какие-либо данные, зарегистрировать изменения и тд. Но у меня есть еще заполнение документа до записи:
    ДокОбъект_Base1С.Заполнить(СтруктураЗаполнения_Bas e1С);
    И тут тоже вызывается подписка на событие и обработчик ОбработкаЗаполнения, и вылазит точно такая же ошибка с передачей мутабельных типов.

    То есть я не понимаю, разработчики УТ11 не предусмотрели создание объектов при Com-соединении в клиент-серверном варианте?

    4

    01.02.2018 — 12:01

    Если логически порассуждать:
    1) Подключаемая база открывается в режиме толстого клиента.
    2) У всех модулей обработчиков подписок на события данного документа установлены галки Сервер, Внешнее соединение, Клиент (обычное приложение) плюс Вызов сервера — я установил.

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

    5

    01.02.2018 — 12:32

    (0) обязательно задействовать Application? COMConnector не кошерно?

    6

    01.02.2018 — 13:00

    (5) Проверил, да, COMConnector полностью решает данную проблему, спасибо!
    А по-поводу Application, странно конечно, но получается что разработчики отрубили возможность использовать его в УТ11.

    7

    01.02.2018 — 17:01

    (6) Ничего не отрубили… Используй на здоровье. Только помни про особенности клиент-серверного взаимодействия: при создании объекта в толстом клиенте он «живёт» на стороне клиента. Если ты интерактивно запустишься в таком же режиме — словишь ровно те же ошибки :)

    8

    01.02.2018 — 21:56

    (7) Про «отрубили» я имел в виду именно создание объектов, и по той причине, что не нашел решение, как обойти эту ошибку подписок. И да, про толстый клиент я уже тоже понял… Если подскажешь, как учесть особенности клиент-серверного взаимодействия, и создавать объекты используя Application, то думаю, эта информация будет не лишней ни для кого :)

    9

    02.02.2018 — 09:21

    (8) как учесть?.. ПЕРЕпроектировать и исправлять прикладное решение так чтоб оно работало в нужном режиме: типовые сейчас под толстый не пишутся и их работоспособность в таком режиме запуска не гарантируется.
    Основная засада в том что в случае толстого клиента модули прикладных объектов компилируются на клиенте, а в тонком — на сервере. Отсюда следует что передача управления с клиента на сервер происходит для разных клиентов на различающихся участках кода :( Управляемости можно добиться, например, используя директивы компиляции. Типа #Если Клиент Тогда …<тут особый код, обеспечивающий работу в нужном режиме>

    Но, ИМХО, легче застрелиться

    10

    02.02.2018 — 09:29

    Вдогонку: самое главное чуть не забыл!
    OLE Aytomation поддерживает не только V83.Application, но и V83C.Application

    11

    02.02.2018 — 10:37

    (9) Так вот оно ключевое слово «типовые сейчас под толстый не пишутся», а V83.Application как-раз таки и открывает базу в толстом клиенте, ведь так? :) То есть приходим к выводу, что УТ11 и др. типовые конфигурации не поддерживают создание объектов в подключаемой базе через V83.Application (без доработок)?
    В любом случае, спасибо за инфу.
    С V83C.Application не знаком, но вроде как он открывает базу в режиме тонкого клиента? То есть с первого взгляда, эта проблема в подписках по передачи мутабельных значений с клиента на сервер сохранится?

    Войти или зарегистрироваться

    8.х ОБМЕН Ошибка «метод обработчика не найден»

    Тема в разделе «Обмен данными в «1С:Предприятие 8″», создана пользователем Target25, 28 апр 2016.

    1. TopicStarter Overlay

      Offline

      Target25
      Опытный в 1С

      Регистрация:
      18 янв 2016
      Сообщения:
      51
      Симпатии:
      1
      Баллы:
      29

      Дословно:
      {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(3862)}: ВНЕШНЕЕ СОЕДИНЕНИЕ: {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(7744)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
      СозданныйОбъект = СсылкаНаОбъект.ПолучитьОбъект();
      по причине:
      При подписке ОбновитьИННИндивидуальногоПредпринимателя на событие ПриЗаписи произошла ошибка. Метод обработчика события ПриЗаписиСправочникаФизическиеЛицаОбновитьИННИП не найден.
      ВызватьИсключение СтрокаСообщения;
      =====
      Синхронизация ЗУП 3.0 — БУХ 3.0.
      Не могу понять, куда копать.

    2. Online

      nbIpKuH_BaH9I
      Модераторы
      Команда форума
      Модератор

      Регистрация:
      16 сен 2009
      Сообщения:
      8.123
      Симпатии:
      550
      Баллы:
      204

      Открыть правила обмена и смотреть этот код.


      nbIpKuH_BaH9I,
      28 апр 2016

      #2

    3. TopicStarter Overlay

      Offline

      Target25
      Опытный в 1С

      Регистрация:
      18 янв 2016
      Сообщения:
      51
      Симпатии:
      1
      Баллы:
      29

      Все оказалось проще. В списке подписок типовой бухгалтерии ОбновитьИННИндивидуальногоПредпринимателя присутствует отсылка на метод ПриЗаписиСправочникаФизическиеЛицаОбновитьИННИП, но самого метода в конфе нет. Достаточно оказалось нажать на лупу, заглушка метода создалась, все заработало.

    (Вы должны войти или зарегистрироваться, чтобы ответить.)

    Показать игнорируемое содержимое

    Похожие темы

    1. rusila05

      7.7
      ошибка 310, не найден индекс

      rusila05,
      1 апр 2011
      , в разделе: Общие вопросы «1С:Предприятие 7.7»

      Ответов:
      1
      Просмотров:
      1.159
      Бухгалтерский угодник
      2 апр 2011

    2. MyNameNoName

      8.х БП
      Ошибка при выполнении обработчика — ‘ОбработкаЗаполнения’

      MyNameNoName,
      31 июл 2013
      , в разделе: «1С:Бухгалтерия БП»

      Ответов:
      1
      Просмотров:
      2.214

    3. alboldinov

      8.х
      При заполнение документа ошибка — обработчик события не найден

      alboldinov,
      15 сен 2014
      , в разделе: Конфигурирование на платформе «1С:Предприятие 8»

      Ответов:
      39
      Просмотров:
      3.719

    4. igorvydmych

      8.х
      Проблемы переход БП2.0 на БП3.0 — ошибка метод модуля не найден

      igorvydmych,
      28 сен 2015
      , в разделе: Конфигурирование на платформе «1С:Предприятие 8»

      Ответов:
      8
      Просмотров:
      1.121

    5. Vladius

      8.х ОБМЕН
      Ошибка в УТ — «Основание платежа» — Объект не найден

      Vladius,
      19 ноя 2015
      , в разделе: Обмен данными в «1С:Предприятие 8»

      Ответов:
      4
      Просмотров:
      1.883
    Ваше имя или e-mail:
    У Вас уже есть учётная запись?
    • Нет, зарегистрироваться сейчас.
    • Да, мой пароль:
    • Забыли пароль?

    Запомнить меня

    Поиск

    • Искать только в заголовках
    Сообщения пользователя:

    Имена участников (разделяйте запятой).

    Новее чем:
    • Искать только в этой теме
    • Искать только в этом разделе
      • Отображать результаты в виде тем

    Быстрый поиск

    • Последние сообщения

    Больше…

    При подписке на событие произошла ошибка. Обработчик события не найден.

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

    При создании объекта (элемента справочника или документа) проверяется существование всех обработок подписок.

    В данном случае ошибка возникает в такой строчке кода:

    Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();

    Полный текст ошибки:

    При подписке ПроверитьУстранениеПроблемыОбъекта на событие ПередЗаписью произошла ошибка. Обработчик события не найден. pri-podpiske-pered-zapisyu-proizoshla-oshibka-obrabotchih-sobytiya-ne-najden

    Поиск причины и исправление

    Глобальный поиск дает события или саму процедуру:

    rezultaty-poiska

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

    Флажок «Клиент (управляемое приложение) в свойствах одного из модулей

    klient-upravyalemoe-prilozhenie-v-svojstvah-modulya

    Далее тестируете создание еще раз, в моем случае цепочкой вызывались еще ряд модулей, которые  пришлось также модифицировать.

    Как сделать глобальный поиск по тексту?

    Меню «Правка/Глобальный поиск» 

    globalnyj-poiskПри  этом обязательно необходимо указать поиск по «Свойствам», иначе не найдете такой подписки:

    poisk-po-svojstvam

    Корень проблемы

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

    Ответ в том, что многие пишут обработки в режиме управляемого приложения (удобно им или берут готовые под переделку), если в свойствах конфигурации разрешить их использование, они будут работать, но только в составе конфигурации, а не как внешняя обработка.

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

    Все таки есть еще в мире вещи, на которые можно положиться. Например, еще ни разу не было рекламного клипа с плохим концом.

       Dimarik_1

    28.10.17 — 14:37

    Сделал кнопочку.

    Вот такая ошибка возникает

    {ОбщийМодуль.птОбщиеПроцедурыИФункцииКлиент.Модуль(162)}: Ошибка при вызове метода контекста (ОтменитьИПровестиДокументыПоГТД)

            птОбщиеПроцедурыИФункции.ОтменитьИПровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Форма.Объект, Отказ);

    по причине:

    При подписке ВлияющийНаСтатусПоступленияКиЗДокументПередЗаписью на событие ПередЗаписью произошла ошибка. Обработчик события не найден.

    Ошибка возникает при выходе из процедуры.

    Процедура ОтменитьИПровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, ФормаОбъект, Отказ) Экспорт

        НачатьТранзакцию();

        Объект = ДанныеформыВЗначение(ФормаОбъект, Тип(«ДокументОбъект.ПоступлениеТоваровУслуг»));

        ФормаОбъект = Объект;

        ФормаОбъект.Прочитать();

        Ссылка = ФормаОбъект.Ссылка;

    МассивДокументовОтменаПроведения = ОтменитьПроведениеДокументовПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Ссылка, Отказ);

            ФормаОбъект.Записать();

            ПровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Ссылка, Отказ, МассивДокументовОтменаПроведения);

            ЗафиксироватьТранзакцию();

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

    я посмотрел на подписку ВлияющийНаСтатусПоступленияКиЗДокументПередЗаписью.

    Ссылкается на ИнтеграцияГИСМ.ВлияющийНаСтатусПоступленияКиЗДокументПередЗаписью

    Самое интересное что обработчик заполнен и вызывается он после ФормаОбъект.Записать(); но еще более странное что именно когда точка останова стоит на КонецПроцедуры, возникает данная ошибка.

    Проверяли на разных компах под разными пользователями. КЭШ исключаю.

    11.3.4.93.

    MS SQL

       Dimarik_1

    6 — 28.10.17 — 20:17

    и перед вызовом процедуры в серверном модуле нет &НаКлиенте

    Вот правда нет ВызовСервера. Но почему он должен вызываться с клиента?

    У меня на клиенте есть процедура

    Процедура ОбработкаЗаменыГТД(Результат,Форма) Экспорт

        
        Если ЗначениеЗаполнено(Результат) Тогда

            СтарыйНомерГТД = Форма.Элементы.Товары.ТекущиеДанные.НомерГТД;

            Форма.Элементы.Товары.ТекущиеДанные.НомерГТД = Результат;

            //СписокРеализаций = ПолучитьСписокДокументов(Форма.Элементы.Товары.ТекущиеДанные.Номенклатура, Форма.Элементы.Товары.Характеристика, Форма.Элементы.Товары.НомерГТД);

            
            //УстановитьПривилегированныйРежим(Истина);

            
            Отказ = Ложь;

            Номенклатура = Форма.Элементы.Товары.ТекущиеДанные.Номенклатура;

            Характеристика = Форма.Элементы.Товары.ТекущиеДанные.Характеристика;

            Склад = Форма.Объект.Склад;

            птОбщиеПроцедурыИФункции.ОтменитьИПровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Форма.Объект, Отказ);

            //УстановитьПривилегированныйРежим(Ложь);

                            
            
            
            //птОбщиеПроцедурыИФункции.ПерепровестиДокументыПоГТД(СтарыйНомерГТД, Номенклатура, Характеристика, Склад, Форма.Объект.Ссылка, Отказ);

            Если Отказ = Истина Тогда

                Форма.Элементы.Товары.ТекущиеДанные.НомерГТД = СтарыйНомерГТД;

                Форма.Записать();

            КонецЕсли;

            
        КонецЕсли;

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

    Ошибка возникает при выходе из ОтменитьИПровестиДокументыПоГТД

    Код этой процедуры я высылал.

    Не могу понять, почему именно не так.

    Сделал точку останова в ПоступлениеТоваровИУслуг на ПередЗаписью.

    Внутри процедуры Процедура ОтменитьИПровестиДокументыПоГТД после

    ФормаОбъект.Записать();

    остановился в процедуре ПередЗаписью. Вышел из ОтменитьИПровестиДокументыПоГТД и не останаливался больше. В чем проблема никак не пойму….

    Добрый день.

    Не вызывается обработчик события, зарегистрированный в своем модуле в файле ../install/index.php

    RegisterModuleDependences('sale', 'OnSaleOrderSaved', $this->MODULE_ID, '\Yolo\Bonus\EventHandler', 'myFunction');

    тут все ок, он зарегистрировался, я так уже с другими делал)

    Теперь в файле ../lib/Eventhandler.php

    <?php
    namespace YoloBonus;
    require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
    
    $module_id = "yolo.bonus";
    CModule::IncludeModule('main');
    CModule::IncludeModule('sale');
    CModule::IncludeModule($module_id);
    
    use BitrixMain;
    use BitrixMainLoader;
    use BitrixMainLocalizationLoc;
    use BitrixMainApplication;
    use BitrixMainTypeDateTime;
    use YoloBonus;
    use YoloBonusCore;
    use BitrixSale;
    use BitrixSaleOrder;
    use BitrixSaleBasket;
    use BitrixSaleDelivery;
    use BitrixSalePaySystem;
    class EventHandler{
      public function OnSaleStatusOrder($order_id, $status_val){
    	// ...	
      }
    	
      public function myFunction(BitrixMainEvent $event)
    {
        /** @var Order $order */
        $order = $event->getParameter("ENTITY");
        $oldValues = $event->getParameter("VALUES");
        $isNew = $event->getParameter("IS_NEW");
    
        if ($isNew)
        {
            $sum = $order->getPrice();
            // . . . 
        }
    }
    }
    ?>

    В итоге выходит ошибка :

    Argument 1 passed to YoloBonusEventHandler::myFunction() must be an instance of BitrixMainEvent, instance of BitrixSaleOrder given (0)

    Я так понимаю, что в функцию передается объект BitrixSaleOrder а не BitrixMainEvent

    Я уже подключил все что можно, и все равно не понимаю в чем дело.
    На самом деле я только только начал писать модуль и возможно много чего не понимаю еще, но вроде все было логично до этого момента.
    В документации показано что должен передаваться BitrixMainEvent, а по факту передается BitrixSaleOrder…

    Подскажите пожалуйста.

    Обновлено: 13.06.2023

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

    Платформа 8.3.8 , Режим совместимости с 8,2

    Вопрос как решить эту проблему, как обойти эту ошибку?

    Итак. Обойти данный вопрос удалось выставлением флага ВызовСервера.
    (или же отказом от использования Толстого Клиента) :)

    или использование фалового режима базы

    Естественно ответом можно считать только выставление флага.

    (6) Это ничего не значит. Подобная ошибка указывает на то, что описан некий обработчик события, который сам не доступен в текущем контексте или вызывает недоступный общий модуль. Копайте в сторону доступности модулей указанного обработчика. Взведите всему «окружению» флаги Вызов сервера и тп. Подобные ошибки встречались и встречаются в БСП и конфах, основанных на ней, в ДО, в частности, который так и не работает в толстом клиенте. Кстати, попробуйте разных клиентов.
    получить пустую ссылку справочника через функцию ПредопредленноеЗначение()

    Честно говоря, не очень понятно, как предопределенное значение может быть пустым. Оно ведь предопределено в конфигураторе.
    Пустая ссылка — определяется просто Если НЕ ЗначениеЗаполнено(ИмяРеквизита) и всех делов.
    (2) Мне в реквизит формы нужно установить пустую ссылку

    В типовой много где такое используется.

    Мне в реквизит формы нужно установить пустую ссылку

    А какая разница? Разве суть в этом. Говорю что такого рода кода разбросано по формам достаточно много.
    И в типовых конфигах тоже такое видел.
    (2) Пустая ссылка является предопределенным значением любого справочника :))))
    (1) смею предположить, что раз режим совместимост 8.2, то вы пытаетесь получить «Предопределенное значение» в режиме обычного приложения? А галочки какие у вас стоят в общем модуле отвечающем за подписку на события?
    (7) Галочка только одна . Сервер.
    Режим управляемых форм. почему у заказчика стоит такой режим совместимости не знаю, менять не осмелюсь )))
    (8) «При подписке ПолучениеФормыСправочникДокумент на событие ОбработкаПолученияФормы произошла ошибка. Обработчик события не найден.» — данная ошибка говорит о том, что конфигурация пытается получить обработчик события, но он не доступен в данном контексте, либо его просто нет, поэтому либо режим запуска не соответствует как-то настройкам общего модуля, либо на это как-то влияет режим совместимости, либо вы завели подписку на события, но не указали, что она ссылается на какой-либо общий модуль.

    (9) Спасибо, будем копать в сторону режима запуска. Сейчас проверил на 8,3,9 режим совместимости 8.2 .Ошибки не обнаружено.

    но он не доступен в данной контексте, либо его просто нет

    Он есть и отрабатывает в нужной в ожидаемой ситуации.

    Значит остается два пути, либо режим запуска, либо глюк платфоры.

    Поставьте в параметрах отладчика галку Остановка по ошибке. И посмотрите стек вызовов, когда произойдет ошибка. Может что-то яснее будет.
    (5) Ну собственно я ж и указал где происходит ошибка ))) именно при вызове функции предопределенноеЗначение
    (6) Это ничего не значит. Подобная ошибка указывает на то, что описан некий обработчик события, который сам не доступен в текущем контексте или вызывает недоступный общий модуль. Копайте в сторону доступности модулей указанного обработчика. Взведите всему «окружению» флаги Вызов сервера и тп. Подобные ошибки встречались и встречаются в БСП и конфах, основанных на ней, в ДО, в частности, который так и не работает в толстом клиенте. Кстати, попробуйте разных клиентов.

    Итак. Обойти данный вопрос удалось выставлением флага ВызовСервера.
    (или же отказом от использования Толстого Клиента) :)

    или использование фалового режима базы

    Естественно ответом можно считать только выставление флага.

    (16) я в своё время потратил на эту хрень целый день почти, но заставил БСП работать на толстом :)) Разрабы ДО — так и не смогли.
    Попробовал повторить проблему на пустой базе, в том же режиме совместимости,
    ошибка не воспроизвелась, как 8.3.8 так и в 8.3.9

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

    Ошибка НЕ воспроизводится в файловом режиме. Сделал полную выгрузку и установил у себя на локалке.
    даже не знаю решение это проблемы или нет

    1С:Предприятие 8.3 (8.3.15.1656)
    Объединенное решение: Модуль 1С:CRM 3 (3.0.17.28) +
    1С:ERP Управление предприятием 2 (2.4.10.56)

    Пробовал переименовывать области там 2 раза одно имя используется. Загонять модули менеджера в препроцессор на сервере, там они без него почему-то.
    Давать в модулях на процедуры экспорт.
    Не помогло.

    Как только в модуле CRM_МетодыМодулейМенеджеровСправочников поставил галку «Вызов сервера».
    Компиляция в толстом клиенте управляемого приложения отработала без ошибок.

    (14) еще раз пишу для непонятливых:
    Во внешней обработке:
    В модуле объекта ДОКУМЕНТА:

    (11) при обмене устанавливается автоматом, но никто не мешает вставить установку флага в программу перед записью.

    если писали не криворучки, то в подписке первым делом должно стоять отключение по этому флагу всех действий.

    (11) и что? По сути это такое же доп. Свойство, но в отличие от от них, на него уже есть реакция в объектах типовых
    (16) Получается без вмешательства в конфу не получится. эх а так хотелось
    Сдается мне, что там даже при обмене данными формы вылетают
    Получится, если типовая и выставить обменданными.загрузка в истину в модуле обработки перед вызовом метода записать() объекта
    (21) а что там за форма. ты процедуру покажи. Может форму эту мона обойти
    (24) я довольно часто применяю этот способ для обхода типового кода.
    + (29) все этот метод используют постоянно потому что он всем известен и работает

    (27) фига се, проверил сейчас, действительно истина.

    Откуда у меня взялся стереотип, что программно это свойство не установить?

    (33) Фига себе, пятница, почти полночь и ты полез в конфигуратор 1с проверить какую то фигню!
    (33) мы не знаем. Объективных предпосылок для того чтобы так думать нет. Более того, например типовая обработка выгрузказагрузкаданныххмл82.епф, которая используется всеми для адресного восстановления объектов и записей регистров из бэкапов, дает выставить это свойство специально, чтобы не выполнялись проверки при записи при загрузке восстанавливаемого объекта
    перед
    Объект.Записать(РежимЗаписиДокумента.Проведение)
    (36) а может вы лукавите и раньше (в другой платформе или релизе) ОбменДанными.Загрузка был доступен только для чтения?
    (40) Нет. Более того, мне кажется что это свойство выставлялось всегда исключительно только программнр
    (41) не, в при обмене через планы обмена, система его устанавливает в ИСТИНА

    (38) в обработчике перед записью, перед открытием вашей формы, должен быть код анализа, как в (16)

    (41) нет, в случае обмена с использованием плана обмена оно выставляется движком

    (39) тема себя исчерпала, у вас есть все предпосылки чтобы решить проблему.
    (47) а если распределенная база, то свойство ОбменДанными тоже доступно не только для чтения?
    (47) что может значить эта ошибка:
    Действие не может выполняться в режиме загрузки данных
    ?
    (49) у тебя в БД есть план обмена с галкой «распределенная информационная база»?
    (51) обработка, случайно, не запускает обмен по этому плану обмена?
    (50) те планы обменами, которые для этого документа отмечены без установленного значения Распределенная ИБ.
    (52) Короче тут, такая история я не программист 1с, я в поддержке сижу знаю чуть больше других юзеров. и вот наши программисты внесли в конфу некторые изменения, после которых документ перестал создаваться через эту обработку из-за того, что они вызывают модально некоторую форму. я просто хочу 1с-ку изучить вот и решил попытаться обработку изменить, не трогая конфу.
    (54) покажи код, которым ты изменяешь документ в обработке

    (49) > Действие не может выполняться в режиме загрузки данных

    Говорит о том, что что-то написано такое, что не поддерживается Когда свойство ОбменДанными.Загрузка установлено в значение Истина

    +(57) Скорее всего это в конфигурации написано.

    А проги, у которых ты учишься, натуральные копрокодеры. Ни один уважающий себя прог не станет модально открывать форму из процедуры ПриЗаписи() модуля объекта.

    Таких увольнять сразу надо, если они с серьезными вещами работают.

    (56) процедуру ПередЗаписью не смогу показать она очень огромная и тем более конфа далека от типовой.
    документ я создаю следующим образом:
    (58) ну, ни мне судить как и что. мне бы научиться, что бы жену и дочь что бы прокормить

    Если есть, то оно до открытия формы расположено?

    (59) если при выполнении этого кода появляется модальное окно — то гнать этих недоделанных прогов студентов до самого заднего задищенво.

    короче пишешь докладную и ссылку на эту ветку.

    (59) зачем ты приводишь код в котором нет ошибки? Тебя ведь просили привести код при или перед записи, потому что именно там написано то .авно, которое портит тебе жизнь
    (64) прошу прощения, но я не могу этот код скопипастить сюда.
    (64) думаю, что у него следующее:
    при установленном свойстве ОбменДанными=Истина не может открыться модальное окно той копрокодерской формы и вываливается ошибка «Действие не может выполняться в режиме загрузки данных «
    (48) что?
    А ты можешь привести пример хоть одного свойства которое вдруг перестает быть доступным для чтения в зависимости от такой эфемерной сущности как план обмена, его наличия и наличия хотя бы одного узла в таких планах обмена, и хотя бы приблизительную причину почему такое могли сделать разработчики?

    (68) мне все покоя мысль не дает, откуда я взял, что это свойство только для чтения :)

    (66) ты так говоришь, как будто это мы вынудили тебя создать топик на форуме в котором ты у нас спрашиваешь как решить твою проблему.

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

    (66) ты на вопрос ответь, что я тебе задавал.
    В той процедуре, где форма открывается, есть строка

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

        

    • Какие программы аккредитации предлагает vmware
    •   

    • Интернет банк открытие не работает в яндекс браузере
    •   

    • 1с при изменении доступности основного сервера
    •   

    • Adobe photoshop cs4 как установить программу
    •   

    • Управление наборами в excel

    Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове не указан указанный модуль
  • Ошибка при вызове метода объекта компоненты
  • Ошибка при вызове метода обновитьиндекс
  • Ошибка при вызове метода контента
  • Ошибка при вызове метода контекста что делать