Предзаполнение значений

Хочу предзаполнять поля добавляемой записи в детали с редактируемым реестром значениями, вычисленными в коде. Т.е. я не могу в объекте их заполнить системной переменной или константой. Но выглядеть внешне это должно также.

Например, у меня деталь с записями, одна из которых дата, которую я должен вычислить по определенному алгоритму.

Как это сделать?

Нравится

9 комментариев

Добрый день! Есть 2 варианта.
1) Можете реализовать через бизнес-процесс со стартовым сигналом после добавления/изменения записи, либо же  через событийный слой (перед добавлением/сохранение/изменением)

Нигрескул Алексей,

мне нужно заполнить данные до сохранения. БП не поможет

тогда через событийный слой

Нигрескул Алексей пишет:

тогда через событийный слой

Ссылка: https://academy.terrasoft.ru/documents/technic-sdk/7-13/sobytiynyy-sloy-entity 

Причем тут событийный слой? В момент когда я нажимаю +, в базе ничего не происходит, всё происходит на клиенте и на клиенте же надо вставить нужные мне значения, чтобы пользователь мог их изменить или сохранить, если всё верно посчитано.

Алексей-Карягин,

Добрый день! Если внимательно почитать то на событийном слое переопределяете метод OnSaving(), OnUpdating(), OnInserting() при этом подписавшись на события нужного Вам объекта. В данных методах реализуете свою логику в зависимости от потребности, и отработка данных методов происходит ДО сохранения данных в БД, если в результате обработки сохранять не нужно, то просто генерируете throw new Exception("Exception Message"), на клиент Вам

выведется сообщение из Exception и данные в БД не сохраняться.

У меня задача на клиенте показать вместо пустых значений - вычисленные, до сохранения. Как работаю значения по умолчанию в объекте.

попробуйте подписаться на событие onchange:Field

Добрый день.

 

Логика вычисляемых полей в деталях с редактируемым реестром работает, как и в обычных деталях. Это значит, что свой код нужно размещать в схеме карточки редактирования этой детали.

 

Более подробную информацию Вы сможете найти в этом обсуждении.

Показать все комментарии