Closed unichkin closed 1 year ago
@unichkin предложение разместить код следующим образом
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Процедура ОбработкаПолученияФормы(...)
КонецПроцедуры
#КонецЕсли
Процедура ОбработкаПолученияПолейПредставления(...)
КонецПроцедуры
Процедура ОбработкаПолученияПредставления(...)
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
...
#Иначе
...
#КонецЕсли
КонецПроцедуры
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
#КонецОбласти
#КонецЕсли
Да ну, никто так делать не будет. Мне самому проще в коде проверку отключить, чем городить такой огород, Вы уж извините. Суть моего исходного предложения в том, чтобы вообще отключить проверки структуры модуля для этих событий. Их по ИТС можно размещать как внутри директив \ стандартных областей, так и вне их. Можно уточнить - если события внутри директивы, то они должны быть в области ОбработчикиСобытий. Иначе не проверять.
Ну, или вот в БСП 3.1.7 сейчас нашел - область "ОбработчикиСобытий" вынесена в отдельный блок, с проверкой директив внутри нее.
Хотя мне и это кажется диким.. Но уж лучше так, чем каждую стандартную область помещать в свою директиву.
@iArtemv просмотрел БСП, понял что свои примеры Вы видимо оттуда и брали, там тоже такой подход... Т.е. обработчики размещаются в порядке следования, и обрамляются директивами если есть разрыв. Невесело..
@unichkin Можете уточнить где в стандарте говорится что данные обработчики могут быть расположены вне стандартной области?
Нигде не говорится, буду делать как в БСП, спасибо за примеры. Давайте закроем тогда эту задачу.
Описание ошибки
Согласно ИТС https://its.1c.ru/db/v8std/content/680/hdoc События менеджера "ОбработкаПолученияПолейПредставления", "ОбработкаПолученияПредставления" в некоторых случаях (если нужен вызов сервера) нельзя размещать внутри директив "#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда" При этом проверка ругается:
Если разместить их в область "ОбработчикиСобытий", снова ошибка:
Как воспроизвести
В описании
Скриншоты
No response
Ожидаемое поведение
Ошибки быть не должно - не знаю как правильнее сделать. но кажется не стоит требовать размещения этих событий в стандартную область. Могут быть другие события, которые должны быть размещены внутри директив, и тогда нужно создавать две области "ОбработчикиСобытий", что избыточно как мне кажется. Это особенный случай, для этих событий предлагаю проверки опускать.
Лог рабочей области
-
Версия 1С:EDT
Ruby 2022.2.4
Операционная система
Windows
Установленные плагины
1C:Code style V8, 1C:SSL-support
Дополнительная информация
No response