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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Какие действия вызывают сообщение об изменении данных в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33635
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Что или какие действия в коде приводят к появлению «Данные были изменены. Сохранить изменённые данные?» в программе «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 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С