Имя: Пароль:
1C
 
БП 3.0 Перехватить ПриСозданииНаСервере в модуле типа Переопределяемый
0 bvb
 
25.01.24
14:34
Добрый день

Цель :
Хочу переопределить события создания формы на сервере для программного создания нужных реквизитов в расширении

Думал переопределить метод ПОСЛЕ  ПриСозданииНаСервере из модуля ПрослеживаемостьСобытияФормПереопределяемый
а он не вызывается.

// Возникает на сервере при создании формы.
//
// Параметры:
//  Форма - УправляемаяФорма - создаваемая форма,
//  Отказ - Булево - признак отказа от создания формы,
//  СтандартнаяОбработка - Булево - признак выполнения стандартной обработки.
//
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
    
    Возврат;
    
КонецПроцедуры


Или я нет так понял технологию использования переопределяемого модуля ?



Для сравнения в УТ 11.4
Расширяю в модуле СобытияФорм

Процедура Расш1_ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры)
    
    
    //Иконка рядом с датой в измененых документах
    Если Форма.ИмяФормы = "Документ.ЗаказНаВнутреннееПотребление.Форма.ФормаДокумента"
        ИЛИ  Форма.ИмяФормы = "Документ.ЗаказНаПеремещение.Форма.ФормаДокумента"
        Тогда
        
        НоваяДекорация = Форма.Элементы.......
1 Волшебник
 
25.01.24
14:38
а где же ваше ПОСЛЕ?
2 bvb
 
25.01.24
15:45
(1)
Если в УТ то не попало в копипасту. А так все работает

&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры)

    Если Форма.ИмяФормы = "Документ.ЗаказНаВнутреннееПотребление.Форма.ФормаДокумента"

а В БП я прежде чем писать хотел бы увидеть останов на точке останова

Я вообще не очень понимаю назначение модулей содержащих в название "Переопределяемый".
Зачем они нужны если метод можно дополнить / переопределить в расширении
3 unenu
 
25.01.24
15:56
(2) Так понятнее?

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
    
    МетодГдеМеняВоткнулиУникальный_АКодВнутриМеняПереопределяемый(Форма);

    Возврат;
    
КонецПроцедуры
4 bvb
 
25.01.24
16:03
(3)Да понятно.
Т.е. предполагается что в этом случае на конфе нужно включать  возможность изменения ?
5 bvb
 
25.01.24
16:09
т.е. это анахронизм оставшийся от времен когда не было механизма расширений ?
6 ДедМорроз
 
25.01.24
16:39
Модули Переопределяемый используются для расширения функционала,чтобы в расширениях можно было переопределить действие и никак не пересекаться с кодом модуля,который в новых версиях будет меняться.
Другими словами,это аналог подписки на определенные разработчиком события,что напрямую реализовать в коде конфигурации достаточно сложно.
7 bvb
 
25.01.24
16:58
(6) Я тоже так думал но отладчиком при открытии документа в эту процедуру не входит.
Тогда какой смысл ее переопределять и что тогда переопределять ?
8 ДедМорроз
 
25.01.24
17:15
Она изначально пустая.
Поэтому,в расширении часто пишут Вместо.
9 bvb
 
25.01.24
18:50
(8) Я понял. Это все замечательно.
но в конфигурации он не вызывается.

ПриСоздании на сервере из ПодключаемыеКоманды вызывается а из ПрослеживаемостьСобытияФормПереопределяемый нет.
В чем тогда смысл я не понимаю?
10 bvb
 
25.01.24
18:56
А все понял.
Слово прослеживаемые означает что этот модуль вызывается только из документов касающихся прослеживаемых товаров.
Из других не вызывается.

Следовательно изначальный посыл дополнить ПодключаемыеКоманды был правильный.

Поясню : я хочу собрать все доработки форм в одном модуле а не дополнять при ПриСозданииНаСервере в каждом документе
Основная теорема систематики: Новые системы плодят новые проблемы.