Имя: Пароль:
1C
1С v8
Определить, какой именно объект был модифицирован
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) и буду туда записывать, другого варианта не вижу.
Всем спасибо, вопрос исчерпан.
Закон Брукера: Даже маленькая практика стоит большой теории.