Интерфейсы
Да, в 1С нет ООП и вряд ли когда-то появятся иерархия классов #57 Но есть более простой вариант, который бы позволил упростить разработку и сопровождение кода.
Добавить возможность описывать интерфейсы и приводить объект к нему.
Есть предложение для ЕДТ: https://github.com/marmyshev/edt-plugins/issues/15
Но, я считаю, что не хватает:
- Нужно, чтобы это работало и в конфигураторе и в привычных для 1С концепциях, а не просто комментарии и текстовые файлики ЕДТ
- Нужно, чтобы внутри платформы были методы, позволяющие приводить объект к тому или иному интерфейсу
Поэтому предлагаю добавить подпункт "Интефрейсы" в дерево конфигурации. Можно сделать общие интерфейсы (в узле Общие) , и дополнительно в каждом объекте конфигурации (как это сделано с командами)
Интерфейс можно описывать для разных типов объектов. Например:
- Интефрейс прикладного объекта. Например, общего модуля, обработки, отчета, документа, формы и так далее. Такой интерфейс сразу будет знать о существовании методов и свойств прекладного объекта и предлагать разработчику редактор максимально близкий к редактору прикладного объекта
- Произвольный интерфейс, который позволяет описать любой объект. Например, прописать необходимость наличия метода. А в каком объекте (форма, обработка и так далее) нам уже не важно.
Синтаксис проверки конфигурации будут просто проверять наличие у объектов реализации интерфейса. Т.е. если мы указываем, что документ подключен к интерфейсу "Подключаемые команды" от БСП, то синтаксис проверка контроллирует наличие соответствующих методов на форме.
- В глобальном контексте необходимо добавить метод, позволяющий привести объект к конкретному интерфейсу.
ОбъектИнтерфейс = ОбъектИнтерфейса(ЭтотОбъект, Интерфейсы.МойИнтерфейс);
ОбъектИнтерфейс.МетодМоегоИнтерфейса();