1C-Company / v8-code-style

Расширение для 1C:EDT, которое помогает разрабатывать конфигурации/приложения по стандартам 1С для платформы "1С:Предприятие 8".
Eclipse Public License 2.0
175 stars 53 forks source link

Требуется уточнить проверку структуры модуля #1303

Closed unichkin closed 1 year ago

unichkin commented 1 year ago

Описание ошибки

Согласно ИТС https://its.1c.ru/db/v8std/content/680/hdoc События менеджера "ОбработкаПолученияПолейПредставления", "ОбработкаПолученияПредставления" в некоторых случаях (если нужен вызов сервера) нельзя размещать внутри директив "#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда" При этом проверка ругается: image

Если разместить их в область "ОбработчикиСобытий", снова ошибка: image

Как воспроизвести

В описании

Скриншоты

No response

Ожидаемое поведение

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

Лог рабочей области

-

Версия 1С:EDT

Ruby 2022.2.4

Операционная система

Windows

Установленные плагины

1C:Code style V8, 1C:SSL-support

Дополнительная информация

No response

iArtemv commented 1 year ago

@unichkin предложение разместить код следующим образом


#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс
#КонецОбласти

#КонецЕсли

#Область ОбработчикиСобытий

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура ОбработкаПолученияФормы(...)
КонецПроцедуры

#КонецЕсли

Процедура ОбработкаПолученияПолейПредставления(...)
КонецПроцедуры

Процедура ОбработкаПолученияПредставления(...)

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
...
#Иначе
...
#КонецЕсли

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

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область СлужебныйПрограммныйИнтерфейс

#КонецОбласти

#КонецЕсли
unichkin commented 1 year ago

Да ну, никто так делать не будет. Мне самому проще в коде проверку отключить, чем городить такой огород, Вы уж извините. Суть моего исходного предложения в том, чтобы вообще отключить проверки структуры модуля для этих событий. Их по ИТС можно размещать как внутри директив \ стандартных областей, так и вне их. Можно уточнить - если события внутри директивы, то они должны быть в области ОбработчикиСобытий. Иначе не проверять.

unichkin commented 1 year ago

Ну, или вот в БСП 3.1.7 сейчас нашел - область "ОбработчикиСобытий" вынесена в отдельный блок, с проверкой директив внутри нее. image

Хотя мне и это кажется диким.. Но уж лучше так, чем каждую стандартную область помещать в свою директиву.

unichkin commented 1 year ago

@iArtemv просмотрел БСП, понял что свои примеры Вы видимо оттуда и брали, там тоже такой подход... Т.е. обработчики размещаются в порядке следования, и обрамляются директивами если есть разрыв. Невесело..

iArtemv commented 1 year ago

@unichkin Можете уточнить где в стандарте говорится что данные обработчики могут быть расположены вне стандартной области?

unichkin commented 1 year ago

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