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

Обновлено: 07.07.2024

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

Платформа 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) ты на вопрос ответь, что я тебе задавал.
В той процедуре, где форма открывается, есть строка

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