7.7 Как определить при записи изменились ли данные?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем zes, 30 ноя 2010.

  1. TopicStarter Overlay
    zes
    Offline

    zes Опытный в 1С

    Регистрация:
    29 ноя 2010
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Как определить при записи изменились ли данные в каком-либо поле?
  2. sergejk74
    Offline

    sergejk74 Опытный в 1С

    Регистрация:
    15 ноя 2010
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Модифицированность()
    Синтаксис:
    Модифицированность()
    Назначение:
    Возвращает признак изменения реквизитов текущей формы документа:
    1 - если реквизиты текущей формы документа были изменены, 0 - иначе.
    Замечание:
    Метод доступен только в Модуле формы документа и работает с документом доступным в локальном контексте.
  3. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    sergejK74
    [off]Опередил :angry: [/off]
  4. TopicStarter Overlay
    zes
    Offline

    zes Опытный в 1С

    Регистрация:
    29 ноя 2010
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Нет, нужно узнать про ОДНО определённое поле.
    Указанный вами метод отвечает целиком за форму.

    Видимо никак. Лан переменную введём, чё такого.
  5. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Ну, что значит никак) никогда нельзя руки опускать, нужно хотя бы попытаться %)
    Код:
    //sAttr - строка с именем реквизита
    Procedure ПроверкаИзмененногоРеквизита(sAttr)
    If TrimAll(sAttr) = "" Then
    Return;
    EndIf;
    If CurrentDocument().Selected() = 1 Then
    oOldDoc = CreateObject("Документ."+CurrentDocument().Kind());
    oOldDoc.FindDocument(CurrentDocument());
    If  GetAttrib(sAttr)<>oOldDoc.GetAttrib(sAttr) Then
    Message(""+sAttr+" изменен");
    EndIf;
    EndIf;
    EndProcedure
    
    
    Это если по простому :) можно вообще все реквизиты через "Метаданные" прошерстить, ток функцию "покрасивее" оформить. А через переменную можно, но этот способ будет хорош только для одного реквизита, или придется каждый при открытии определять
    P.S. разумеется этот кусок я набросал для шапки или общих, для ТЧ похитрее нужно делать
  6. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Хорошее направление мысли :angry: +1

Поделиться этой страницей