Была создана кнопка (на основе кнопки "добавить заказ") в продажах "Добавить проект". Все работатет отлично, только при создании проекта не проставляется номер проекта. Номер с автоникриментом проставляется на основе статьи https://academy.terrasoft.ru/documents/technic-sdk/7-12/primer-ispolzov…, но там он только при создании проекта из меню и копировании его там, а как сделать что бы при создании проекта через бизнес-процесс проставлялся этот номер?
Нравится
В Этой же статье (по ссылке) есть ниже пример "Алгоритм реализации кейса на стороне сервера" получение номера в событийного подпроцессе.
В этого случая не важно как будет создан объект через клиента или БП, он получит номер в любом случае. Если что то неясно опишите более подробно что вам нужно.
согласно этому коду - номер генерится при наступлении одного из событий "добавление" или "копировании", но процесс создает проект через элемент "добавить данные" а потом открывается на редактирование и при этом не isAddMode() не isCopyMode() не срабатывает и указывают на false, не давая пройти if для генерации номера
"
Прочитайте внимательно мой первый пост.
if (this.isAddMode() || this.isCopyMode()) - это относится к варианту когда нумерация сделана на клиенте (тобишь при нажатии кнопки сохранить копировать в карточке или реестре) Вам нужно посмотреть вторую часть статьи (Листать вниз пока не увидите раздел "Алгоритм реализации кейса на стороне сервера")
Те формирование номера можно делать в карточке (на клиенте) при первом сохранении (this.isAddMode() || this.isCopyMode()) или в событийном БП объекта (При любом создании нового экземпляра объекта) Но не одновременно - это избыточно и не нужно!!!
Вернемся к статье первую часть не делать или откатить (если уже сделал). Выполните все что описано после заголовка Алгоритм реализации кейса на стороне сервера а именно
1) сделать 2 сист настройки
2) сделать событийный процесс объекта
3) Опубликуйте
4) Тестируй
В примере в событийном процессе объекта вы настраиваетесь на событие добавление записи! Она наступает при любом добавлении записи в объект. через механизмы ESQ в том числе через элемент БП добавить данные (как у вас в принскрине все должно быть нормально)!!!!!!
Если не получится или не поймещ что делать пиши что сделал по пунктам с принскринами.
Прошу прощения, не сообразил сразу, теперь все понял, спасибо я даже как-то не подумал сразу что это сработает
Григорий Чех,
системные настройки не менял, оставил те что были при клиенском коле
Григорий Чех,
есть один большей минус этого способа по причине него он не подходит "
Поскольку автогенерация кода и его сохранение в колонку выполняется на стороне сервера при возникновении события [Перед сохранением записи], то значение кода невозможно сразу же отобразить на странице добавления продукта. Это связано с тем, что событие [Перед сохранением записи] возникает на стороне сервера уже после отправки запроса на добавление записи из клиентской части приложения.
"
1) Напишите как называется ваш проект и какие сис. настройки вы сделали (их имена). Имя системных настроек жестко привязано к имени объекта.
2) В примере для хранения номера используется поле Code объекта. Если у тебя поле для номера называется по другому UsrNumber в БП должно быть
string.IsNullOrEmpty(Entity.GetTypedColumnValue<string>("UsrNumber "))
Entity.SetColumnValue("UsrNumber ", UserTask1.ResultCode);
См статью для понимания где произвести замены
3) В сам объект проект ты добавил событийный процесс в котором перед добавлением записи сделали все по инструкции? Обращаю внимание что все объекты событийного подпроцесса должны находится в контейнере событийный субпроцесс (Это элемент БП внизу списка найдеш!) На картинке не видно что у тебя подпроцесс в событийном контейнере
По вашему последнему коментарию по идее прошло соханение отработал БП и номер должен подтянутся, если єтого не произошло можно искуственно освежить данные в карточке но скорее всего это не понадоюится. Проверьте что проэкт создается и номер формируется. Возможные проблемы с формированием я описал выше
Григорий Чех,
Про контейнер я совсем забыл, все заработало как в него все вложил. Теперь номер при создании через процесс отлично работает, а можно как-то сделать что бы отображение номера было при обычном создании через кнопку стандартную показывало номер сразу а не после перезахода после сохранения?