|
Процедура ПередЗаписью() Как обойти? | ☑ | ||
---|---|---|---|---|
0
yanikolay
05.01.12
✎
16:14
|
Конфигурация БП 2.0. Справочник "Организации". Необходимо стандартную процедуру ПередЗаписью() модуля объекта, через подписку на события, заменить на собственную. Кроме как "ОбменДанными.Загрузка = Истина" в подписке на события "ОбработкаПроверкиЗаполнения" не придумал. Но как-то не красиво. Есть ли другие решения?
|
|||
1
Guk
05.01.12
✎
16:14
|
а почему не красиво?...
|
|||
2
Amiralnar
05.01.12
✎
16:17
|
Есть простое и красивое решение - переименовать стандартную процедуру.
|
|||
3
palpetrovich
05.01.12
✎
16:19
|
(2) с Новым Годом! и чЁ?
|
|||
4
sanja26
05.01.12
✎
16:19
|
а в чем проблема? делай подписку на ПередЗаписью()... или этой процедуры нет в модуле объекта?
|
|||
5
vmv
05.01.12
✎
16:22
|
1. Создать свой Подписчик в дереве метаданных "подписки на события", например Мае_ОрганизациПередЗаписью
2. Создать общий серверный модуль Мае_Подписки 3. Создать в этом модуле метод Мае_ОрганизациПередЗаписью(Источник, Отказ) 3. В указанном методе переопределить все свойства как вам нужно перед записью, не трогая и не обращая внимание на подписчики модуля объекта и типовой подписчик(если он был) 4. Связать свой метод со своим подписчиком 5. Без проблем обновляться с типовых обновлений 6. Поатить мне 500К раз в квартал. все |
|||
6
sanja26
05.01.12
✎
16:24
|
(5)все типовые проверки будут производиться все равно перед записью
|
|||
7
vmv
05.01.12
✎
16:28
|
(6) отлично, так и должно быть.
если же нужно записать объект без проверок, то при думать о подписчике в этом случае - это думать через попу. Для этого есть обработка в две три строки кода Мае_Подписки.Мае_ЗаполнитьСвойстваИПлеватьНаПроверки(Объект); Объект.ОбменДанными.Загрузка = Истина; Объект.Записать(); отделяй зерна от плевел) |
|||
8
yanikolay
05.01.12
✎
16:41
|
(7) Необходимо стандартную процедуру ПередЗаписью() модуля объекта, через подписку на события, заменить на собственную, т.е. стандартная процедура ПередЗаписью() модуля объекта не должна исполнятся. Это связано с локализацией. ИНН, КПП, ОГРН у нас другие.
|
|||
9
vmv
05.01.12
✎
16:47
|
(8) если вам нужно переопределить ИНН, КПП, ОГРН и другие свойства, то метод в (5) самое то, если предпочитаете потом секс с обновления изобретайте свой, разве ж я против - секс это чудесно)
|
|||
10
vmv
05.01.12
✎
16:57
|
(8) если уж так претит стандарный обработчик по вначале обработчика метода объекта ПередЗаписью() пишешь
Возвврат; и метод в (5) не забывать тогда две вещи, еще может быть обраточник в метаданных, том тоже находишь метод и Возврат; при обновлениях Возврат; нужно будет проставить опять |
|||
11
yanikolay
05.01.12
✎
17:14
|
(10) Спасибо, но это понятно. Я спросил, есть ли способ обойти исполнение процедуры ПередЗаписью(), кроме как в (0). Ваше предложение понятно, но оно не катит, т.к. сначала исполняется процедура ПередЗаписью() в модуле объекта, а потом событие подписки. Проверка ИНН уже не прходит на этапе процедуры ПередЗаписью() модуля объекта. Не хотелось бы изменять типовую конфигураци по таким мелочам.
|
|||
12
vmv
05.01.12
✎
17:34
|
(11) если обработчик ПередЗаписью() существует, то игнорировать его исполнение можно только тремя способами
1. Объект.ОбменДанными.Загрузка = Истина; 2. "Глушить", т.е. Вовзрат в начале метода 3. ТАК ДЕЛАТЬ НЕЗАКОННО. декомпилировать платформу, запрограммировать свой механизм начала выполнения этого метода и скомпилить новый релиз платформы. все) |
|||
13
yanikolay
05.01.12
✎
18:22
|
(12) Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |