Если в вышестоящей зоне уже редактируется запись нашего
мастер-файла, то сообщение о невозможности вставки.
Поля текущей записи заполняются default-значениями
Поля БД, входящие в селект зоны, получают значения из этого
селекта. При этом если поле БД, участвующее в ручном селекте,
получает значение не совпадающее со значением по умолчанию и имеется
поле зоны, где это поле БД доступно для редактирования, которое
должно сопровождаться событием OnSuccessfulChange,
то выдается сообщение с предложением "снять отбор записей".
Для зоны с иерархическим отображением или ее подчиненной
панели:
Если в зоне не установлен FORM_ZONE.ShowLeavesInHierarchicView,
поле Leaf получает значение 0
(контейнер) и выставляется запрет его редактирования
Если перед выполнением вставки текущая запись существовала,
то значения полей иерархической связи копируются в новую запись
так, чтобы она стала иерархически подчиненной к исходной, а если
исходная запись - это лист, то к контейнеру этого листа.
Собственно вставка новой записи. Если ошибка "нарушение уникальности", последнее поле
текущего индекса получает пустое значение. Но если это поле
входит в селект зоны, в том числе ручной, то выдается сообщение
"Вставка ведет к нарушению уникальности..." и процесс
завершается.
Только если редактирование в таблице: проверка соответствия
вставляемой записи зонному фильтру. При несоответствии
пользовательскому фильтру предложение снять фильтр. При отказе или
несоответствии перманентному фильтру процесс завершается.
Только для процесса Edit:
Если в вышестоящей зоне уже редактируется запись нашего
мастер-файла, то сообщение о невозможности редактирования.
Запоминается число модификаций в транзакции редактирования. Если
других модификаций не будет, а также не будет вызова
FIX_ALTERING, выход из редактирования не
будет сопровождаться вопросом "Сохранять?"
Видеоконформ + во
всех зонах всех окон сброс признака "позиция установлена
программно".
Если в результате редактирования поля запись
перестала попадать в пользовательский фильтр или ручной селект,
то сообщение с предложением их снять
Обработка полученной команды
Если получена опция завершения редактирования:
Проверка, что все доступные для редактирования поля зоны с
признаком FORM_FIELD.MustBeNonempty
имеют непустое значение. Иначе сообщение "Это поле не должно
быть пустым" и переход в редактирование этого поля той же записи
Сообщение "Сохранить Не сохранять Редактировать
дальше". В случае "Сохранить:
Видеоконформ
+ во всех зонах всех окон сброс признака "позиция
установлена программно".