1C-Company / v8-code-style

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

Для модулей повторного использования избыточно выдается ошибка для функций / процедур области СлужебныйПрограммныйИнтерфейс подобласть УстаревшиеПроцедурыИФункции #1265

Closed DmitryShvaika closed 1 year ago

DmitryShvaika commented 1 year ago

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

Для модулей повторного использования избыточно выдается ошибка для функций / процедур области СлужебныйПрограммныйИнтерфейс подобласть УстаревшиеПроцедурыИФункции

image

Область ПрограммныйИнтерфейс, которую требует Edt в модулях повторного использования запрещена

image

Еще момент: если вместо процедуры будет функция и возвращаемое значение будет описано ссылкой, то при попытке подавить эту ошибку будет выдана новая

image

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

  1. Создать общий модуль повторного использования
  2. Ввести текст
#Область СлужебныйПрограммныйИнтерфейс

#Область УстаревшиеПроцедурыИФункции

// Устарела.
// Ааа.
Процедура ааа() Экспорт

    а = 1;
    а = а;

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

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

#КонецОбласти
  1. Наблюдать ошибку

Скриншоты

No response

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

Ошибка не должна генерироваться

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

не требуется

Версия 1С:EDT

Ruby 2022.2.3

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

Windows

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

No response

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

No response

RedMammoth commented 1 year ago

А зачем в СПИ устаревшие функции? Обычно совместимость соблюдают только в программном интерфейсе, т.к. им пользуются другие подсистемы/конфигурации. А так как СПИ "внешние" модули не должны использовать, то устаревшие функции и процедуры можно безопасно удалять.

DmitryShvaika commented 1 year ago

А зачем в СПИ устаревшие функции? Обычно совместимость соблюдают только в программном интерфейсе, т.к. им пользуются другие подсистемы/конфигурации. А так как СПИ "внешние" модули не должны использовать, то устаревшие функции и процедуры можно безопасно удалять.

На функцию может быть очень много ссылок и вывожу ее из кода постепенно. Все это время она числится в Устаревших. Когда замена функции завершается - она удаляется из кода.

RedMammoth commented 1 year ago

Это задача проекта v8-code-style, там есть тип задач "ложное срабатывание проверки", код проверки deprecated-procedure-outside-deprecated-region, но я по прежнему считаю, что тут нет ложного срабатывания, как компромисс, можно предусмотреть параметр в проверке, разрешающий область УПИФ в других областях, кроме ПИ

DmitryShvaika commented 1 year ago

Это задача проекта v8-code-style, там есть тип задач "ложное срабатывание проверки", код проверки deprecated-procedure-outside-deprecated-region, но я по прежнему считаю, что тут нет ложного срабатывания, как компромисс, можно предусмотреть параметр в проверке, разрешающий область УПИФ в других областях, кроме ПИ

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

RedMammoth commented 1 year ago

Еще момент: если вместо процедуры будет функция и возвращаемое значение будет описано ссылкой, то при попытке подавить эту ошибку будет выдана новая

лучше не мешать несколько ошибок в одной, может потеряться. Вынес в отдельную: https://github.com/1C-Company/1c-edt-issues/issues/856

iArtemv commented 1 year ago

Была исправлена в рамках другой задачи.