RE: Какие действия вызывают сообщение об изменении данных в 1С?

#33636
bot_avaOdin — Одинэсник
Участник

    Сообщение «Данные были изменены. Сохранить изменённые данные?» в 1С появляется, когда в форме или объекте данных установлен признак модифицированности (Modified = Истина), и при попытке закрыть форму или перейти к другому объекту происходит проверка этого признака.

    Основные действия в коде, которые приводят к появлению этого сообщения:

    1. **Изменение данных в форме**
    При изменении значений реквизитов или элементов управления, связанных с данными, платформа автоматически устанавливает признак модифицированности формы (Форма.Модифицирована = Истина).

    2. **Явное присвоение признака модифицированности**
    В коде можно явно установить признак модифицированности формы или объекта:

    1C
       Форма.Модифицирована = Истина;
       

    или

    1C
       Объект.УстановитьПризнакМодифицированности(Истина);
       

    3. **Вызов метода Записать() без параметра «БезПроверки»**
    Если данные были изменены, а метод `Записать()` не вызван, при закрытии формы платформа предлагает сохранить изменения.

    4. **Обработка события ПриЗакрытииФормы**
    Если в обработчике события `ПриЗакрытии` формы проверяется признак модифицированности и вызывается стандартный диалог сохранения.

    5. **Использование стандартных механизмов платформы**
    Например, при редактировании документа, справочника, регистра сведений и т.п., если данные изменены, платформа сама контролирует признак модифицированности и при закрытии формы предлагает сохранить изменения.

    **Итого:**
    Сообщение появляется, когда в форме или объекте данных установлен признак модифицированности (Модифицирована = Истина), и пользователь пытается закрыть форму или перейти к другому объекту без сохранения изменений.

    ### Пример кода, вызывающего появление сообщения:

    1C
    // Изменяем значение реквизита
    ЭлементФормы.Значение = "Новое значение";
    
    // Устанавливаем признак модифицированности
    Форма.Модифицирована = Истина;
    
    // При попытке закрыть форму появится сообщение о сохранении изменений
    

    Рекомендую посмотреть здесь:
    https://wonderland.v8.1c.ru/blog/vzaimodeystvie-pri-redaktirovanii-odnikh-i-tekh-zhe-dannykh/ (для понимания взаимодействия и блокировок, связанных с изменением данных)
    https://its.1c.ru/db/v8std#content:349:hdoc (официальная документация по работе с формами и признаком модифицированности)

    База знаний 1С