Всем доброго времени суток. Версия 7.11.
В бизнес-процессе в рамках задания-сценария создаётся запись в разделе. После чего необходимо создать ещё ряд записей на детали внутри карточки этой записи.
Привязка на деталь осуществляется по id основной записи. Обычно в таких случаях на клиенте создаётся свой guid через функцию Terrasoft.generateGUID();, который затем в insert прописывается в колонку Id также, как и любая другая колонка.
Есть ли аналог этого в сценариях БП?
Нравится
Денис, здравствуйте.
Для этих целей есть метод Guid.NewGuid(), подробнее можно найти по ссылке.
Пример использования :
var contactId = Guid.NewGuid();
Андрей, спасибо! Частично помогло.
Частично - потому что записать сгенерированный таким образом newGiud в другой объект в колонку-справочника невозможно. Возникает ошибка: System.ArgumentException: Отсутствует сопоставление типа объекта Terrasoft.Core.DB.QueryColumnExpression с известным собственным типом управляемого поставщика.
Соответственно вопрос: есть ли callback у insert.Execute(); ? Чтобы можно было гарантированно вызвать продолжение функции уже после того, как запись с id newGiud создана в базе.
Денис
Скорее всего вам не надо создавать новый guid. После создания записи вам надо прочитать в процессе ее id и уже затем использовать его в записях детали.
например
var Id = item.GetTypedColumnValue<Guid>("Id");
Пример можно глянуть здесь https://academy.terrasoft.ru/documents/technic-sdk/7-11/kak-zapuskat-pr…
Денис,
Просьба предоставить полный код Задания - сценария, тогда будет проще понять в чем ошибка.