Хочу предзаполнять поля добавляемой записи в детали с редактируемым реестром значениями, вычисленными в коде. Т.е. я не могу в объекте их заполнить системной переменной или константой. Но выглядеть внешне это должно также.
Например, у меня деталь с записями, одна из которых дата, которую я должен вычислить по определенному алгоритму.
Как это сделать?
Нравится
Добрый день.
Логика вычисляемых полей в деталях с редактируемым реестром работает, как и в обычных деталях. Это значит, что свой код нужно размещать в схеме карточки редактирования этой детали.
Более подробную информацию Вы сможете найти в этом обсуждении.
Добрый день! Есть 2 варианта.
1) Можете реализовать через бизнес-процесс со стартовым сигналом после добавления/изменения записи, либо же через событийный слой (перед добавлением/сохранение/изменением)
Нигрескул Алексей,
мне нужно заполнить данные до сохранения. БП не поможет
Нигрескул Алексей пишет:
тогда через событийный слой
Ссылка: https://academy.terrasoft.ru/documents/technic-sdk/7-13/sobytiynyy-sloy-entity
Причем тут событийный слой? В момент когда я нажимаю +, в базе ничего не происходит, всё происходит на клиенте и на клиенте же надо вставить нужные мне значения, чтобы пользователь мог их изменить или сохранить, если всё верно посчитано.
Алексей-Карягин,
Добрый день! Если внимательно почитать то на событийном слое переопределяете метод OnSaving(), OnUpdating(), OnInserting() при этом подписавшись на события нужного Вам объекта. В данных методах реализуете свою логику в зависимости от потребности, и отработка данных методов происходит ДО сохранения данных в БД, если в результате обработки сохранять не нужно, то просто генерируете throw new Exception("Exception Message"), на клиент Вам
выведется сообщение из Exception и данные в БД не сохраняться.
У меня задача на клиенте показать вместо пустых значений - вычисленные, до сохранения. Как работаю значения по умолчанию в объекте.
Добрый день.
Логика вычисляемых полей в деталях с редактируемым реестром работает, как и в обычных деталях. Это значит, что свой код нужно размещать в схеме карточки редактирования этой детали.
Более подробную информацию Вы сможете найти в этом обсуждении.