Здравствуйте.
Подскажите возможно ли отключить события на объекте при сохранении (аналог DisableEvents на датасете в TS). Как пример добавляю запись вот так:
Entity entity = schema.CreateEntity(_userConnection);
entity.SetDefColumnValues();
entity.SetColumnValue("Name", "Контрагент");
entity.Save();
Спасибо.
Нравится
"Дашкевич К." написал:entity.Save();
Добрый день!!!
для отключения событий выполните:
entity.Save(false);
а лучше пользоваться в данном случае конструктором
new Update()
entity.Save(false); - по документации это отключение проверки заполнения обязательных значений.
Проверил события не отключает.
"Власов Михаил Викторович" написал:а лучше пользоваться в данном случае конструктором- можно пожалуйста подробнее.
new Update()
вот пример использование Update
var update = new Update(UserConnection, "Invoice") .Set("Number", Column.Parameter(code)) .Where("Id").IsEqual(Column.Parameter(Entity.PrimaryColumnValue)); update.Execute();
выполняется обновление Номера в таблице Счета
Добрый вечер.
Можно сделать так, чтобы событие в родительском объекте не вызывалось.
Например, в базовом пакете есть объект Account, для которого в процессе объекта реализована некая логика после сохранении записи.
Есть необходимость в замещающем объекте реализовать свой обработчик события после сохранения записи, который конфликтует с методами, вызываемыми родителем.
Для "отключения" запуска обработчика родительского события можно в конце задания-сценария Вашего обработчика в процессе замещающего объета, перед return true, дописать:
ActivatedEventElements.Remove("Имя стартового сообщения в родителе")
Имя стартового сообщения в родителе - название элемента стартового сообщения в родительском пакете, вызывающего AccountSaved. Обращаю внимание, что это именно название элемента в Вашем процессе, а не события.
Добрый день Андрей!!!
а как себя будет вести система если Замещающие схемы таблиц построены Именно Иерархически, и по иерархии родительская схема таблицы не главная, а уже замещаем к примеру замещенную схему. Ведь и такая ситуация возможна. И еще вопрос возможно отключение не конкретно события, а конкретного элемента процесса, так как в замещающей логики он и не нужно чтобы уже отрабатывался. Это я говорю если переопределяется не своя логика, а базовая логика системы. Спасибо!!!
Михаил,
в любом случае, мы обращаемся к имени стартового сообщения в одной из схем, которая выше по иерархии. Т.е. смотрим, как в замещающей схеме называется название стартового сигнала и к нему обращаемся уже у себя в скрипте.
По поводу Вашего второго вопроса - подскажите, правильно ли я понял кейс.
Допустим, в процессе объекта есть стартовый сигнал обработчика какого-то события. После стартового сигнала идет Чтение данных, затем Изменение данных.
Суть вопроса в том, как отключить вызов изменения данных?
Да Андрей все верно поняли, по второму кейсу. Именно это я хотел уточнить. Спасибо!!!
Михаил,
посоветовался с разработчиками - отключить отдельный элемент не получится.
Спасибо Андрей за информацию. Ну тогда только совет для ваших разработчиков, чтобы всю C# логику выносить в Методы бизнес-процесса а не оставлять в Скриптах бизнес-процесса, чтобы можно было легко ее переопределять, а не придумывать как ее обойти. Это я говорю про стандартные схемы таблиц, во многих именно с# логика хранится в Скриптах бизнес-процесса, а не в методах бизнес-процесса