|
Определить, какой именно объект был модифицирован |
☑ |
0
PythonJ
24.04.15
✎
10:27
|
Доброго дня всем.
Столкнулся со следующей задачей.
Есть самописная конфигурация на основе бухгалтерии.
Делается сложная обработка для одновременной работы с различными объектами.
Собственно задача. У управляемой формы есть одновременно несколько реквизитов типа СправочникОбъект, при этом ни один из них не является основным. Все имеют на форме связанные поля, могут изменять данные и у всех стоит соответствующий признак. При изменении пользователем данных должна происходить запись объекта на сервере. Факт изменения пользователем данных проверяется с помощью флага ЭтаФорма.Модифицированность. Каким образом на сервере или на клиенте можно определить [I]какой именно[/I] объект был модифицирован?
У объектов на клиенте свойство Модифицированность отсутствует.
Попытался проверить это свойство на сервере следующим способом:
[CODE]
&НаСервере
Контрагент = РеквизитФормыВЗначение("Потребитель");
Если Контрагент.Модифицированность Тогда
Контрагент.Записать();
КонецЕсли;
Договор = РеквизитФормыВЗначение("ДоговорПотребителя");
Если Договор.Модифицированность Тогда
Договор.Записать();
КонецЕсли;
[/CODE]
При обращении к Контрагент.Модифицированность платформа мгновенно схлопывается без сообщений об ошибке.
Каким образом можно узнать, какой из объектов был изменен пользователем. Разумеется, кроме использования собственных флагов на каждое поле формы.
|
|
1
Basilio
24.04.15
✎
10:32
|
при изменении полей пиши и не парься
|
|
2
Defender aka LINN
24.04.15
✎
10:35
|
(0) Во-первых, у объекта Модифицированность - это метод, а не свойство. Во-вторых - всегда будет Истина.
Запоминай, что менялось, или сравнивай
|
|
3
Serg_1960
24.04.15
✎
10:38
|
Ну не знаю... я бы просто запоминал. Пустой массив при запуске и добавлять туда что-нибудь при изменении чего-либо.
|
|
4
PythonJ
24.04.15
✎
10:51
|
(2) Насчет метода косяк понятен. Исправил на Модифицированность(), вылеты пропали, но результат и правда всегда Истина. Сделаю программно массив, как предложил (3) и буду туда записывать, другого варианта не вижу.
Всем спасибо, вопрос исчерпан.
|
|