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

Какие действия вызы...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

Что или какие действия в коде приводят к появлению «Данные были изменены. Сохранить изменённые данные?» в программе «1С»?



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Сообщение «Данные были изменены. Сохранить изменённые данные?» в 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 (официальная документация по работе с формами и признаком модифицированности)



   
ОтветитьЦитата