Почему после обновления БСП перестали открываться справочники с обычными формами?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При обновлении типовых конфигураций, таких как Бухгалтерия предприятия 3.0, до версий, использующих библиотеку стандартных подсистем (БСП) 3.1.2 и выше, разработчики часто сталкиваются с критической ошибкой: При подписке АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных на событие ПередЗаписью произошла ошибка. Обработчик события не найден. Разберем, почему это происходит и как вернуть работоспособность вашим объектам.

Анализ причины проблемы

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

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

Способ решения 1: Переход на управляемые формы

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

Рекомендуем переделать формы ваших справочников на управляемые. Это позволит:

  1. Избежать конфликтов с механизмами БСП, которые ориентированы на серверный вызов.
  2. Обеспечить корректную работу всех стандартных подписок, таких как версионирование, обмен данными и присоединенные файлы.
  3. Использовать современные возможности платформы 1С:Предприятие 8.

Способ решения 2: Настройка флагов общих модулей

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

Порядок действий:

  1. Найдите общий модуль, к которому относится обработчик события, указанный в ошибке.
  2. Откройте свойства модуля в конфигураторе.
  3. Убедитесь, что установлены флаги Сервер и Вызов сервера.
  4. Если ошибка сохраняется, проверьте наличие флага Толстый клиент (обычное приложение). Для этого может потребоваться включить возможность редактирования «толстого клиента» в настройках конфигуратора.

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

Рекомендации по дальнейшей поддержке конфигурации

Проанализировав ситуацию, мы рекомендуем придерживаться следующих правил:

Во-первых, исключайте свои объекты из подписок БСП, если они не требуют стандартного функционала (например, обменов). Но помните: в типовых конфигурациях это бывает затруднительно, так как подписки часто назначаются на группы объектов.

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


// Пример передачи объекта на сервер при использовании УФ
&НаСервере
Процедура ЗаписатьОбъектНаСервере()
    ОбъектСсылка = ПолучитьОбъект();
    ОбъектСсылка.Записать();
КонецПроцедуры

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

← На главную