|
Условное редактирование документа в БП 2.0 |
☑ |
0
YF
19.05.14
✎
12:49
|
Бухгалтерия предприятия 2.0 (клиент-серверный вариант работы)
При записи СписаниеСРасчетногоСчета штатно изменяется платежное поручение (ПП) (в нем ставится "признак" оплаченности)
Хочу при наличии такого признака в ПП запретить записывать ПП любым способом, кроме редактирования списания с расчетного счета.
Как сделать? Хочется какое-нибудь красивое решение.
Конфигурацию можно править.
|
|
1
vicof
19.05.14
✎
12:56
|
Передавай в объект допсвойство и анализируй его перед записью, делов-то.
|
|
2
YF
19.05.14
✎
12:57
|
(1) Как в ПередЗаписью передать параметр?
|
|
3
pervakovanton
19.05.14
✎
13:00
|
ЭтотОбъект.ДополнительныеСвойства.Вставить("ИзСписания",Истина)
|
|
4
YF
19.05.14
✎
13:52
|
(3) Прекрасно, а каким образом мы поймем, что это доп. свойство установлено именно при проведении ПП, а не кем-то вручную. И что помешает пользователю самому создать такое свойство руками?
|
|
5
YF
19.05.14
✎
13:56
|
+ Доп свойства будут доступны для конкретного экземпляра объекта в процедуре.
При проведении Списания у объекта их установим, в процедуре ПередЗаписью() у ПП они будут доступны?
|
|
6
pervakovanton
19.05.14
✎
14:06
|
должно быть при проведении списания получается ПП(объект) и записывается. Если ему установить допсвойство то оно будет доступно все время существования объекта(и перед записью тоже)
Проверить наличие своййства можно так
Если ДополнительныеСвойства("ИзСписания",ИзСписания) И ИзСписания = Истина Тогда
|
|
7
YF
19.05.14
✎
14:13
|
(6) Время существования какого объекта? Объекта встроеного языка или объекта БД?
|
|
8
pervakovanton
19.05.14
✎
14:23
|
Объекта встроеного языка
|
|
9
YF
19.05.14
✎
14:26
|
(8) Каким образом объект встроенного языка перенесется из процедуры СписанияСРасчетногоСчета в процедуру ПП?
|
|
10
pervakovanton
19.05.14
✎
14:40
|
ЭтотОбъект.Записать()
|
|
11
YF
19.05.14
✎
14:45
|
(10)
После "объектПП_.Записать();" в списании управление передается в ПередЗаписью ПП.
грубая прикидка ниже.
*** Списание. МодульОбъекта
При проведении:
ссылка_ = ЭтотОбъект.ПлатежноеПоручение;
объектПП_ = ссылка_.ПолучитьОбъект();
//объектПП_ - это тот самый объект встроенного языка.
объектПП_.ДополнительныеСвойства.Вставить("ИзСписания",Истина)
объектПП_.Записать();
*** ПП. МодульОбъекта
ПередЗаписью
ДополнительныеСвойства("ИзСписания",ИзСписания) - ?
//Здесь будут видны доп. свойства????
|
|
12
pervakovanton
19.05.14
✎
14:52
|
да, будет видно и в модуле объекта и в подписках
|
|
13
pervakovanton
19.05.14
✎
14:53
|
(6) тут ошибочка
правильно
ДополнительныеСвойства.Свойство("ИзСписания",ИзСписания)
т.е. дополнительные свойства это структура которая прилеплена к объекту
|
|
14
YF
19.05.14
✎
16:36
|
pervakovanton
Спасибо, что открыл глаза на дополнительные свойства.
Раньше их не использовал.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший