Отключение кэширования данных карточек запускаемых из процесса
Здравствуйте!
3.4.0.117
Windows 7
Обнаружил проблему связанную с использованием карточек из действия "Открытие окна". Карточка настроена на создание новой записи в разделе "Контрагенты". Проблема заключается в том, что если в цикле несколько раз запускать КР раздела (проверял только на контрагентах). То, начиная со второй итерации, редактируется одна и та же записи (та что была создана при первой итерации).
Чтобы не быть голословным прикрепляю сервис тестового процесса.
Вопрос следующего характера. Как избавится от кэширования данных предыдущей итерации? Я не разобрался где происходит кэширование, но фактически все заполненные мною данные на предыдущей итерации оказываются в последующей.
Нравится
Здравствуйте Геннадий,
В случае с примером, необходимо удалить связь с параметром AccountID, тогда он не будет автоматически подтягиватся.
В случае с контрагентом это помогло, а вот в другом случае нет
workflow.rar
Обратите внимание на действие "Создание записи с данными о поставленном продукте", которое стоит в цикле. Для него связь удалена!
Геннадий, дело в том что Вы в БП "Регистрация прихода продукции от поставщика" по сути вызываете карточку детали wnd_OfferingMovementEdit, которая привязана к основной записи OfferingMovementID.
Из-за того что это карточка детали предлагаю обходной путь, создать действие Скрипт, и в нем открывать карточку wnd_OfferingMovementEdit, пример того, как открывать карточку в скрипте и передать его в атрибуты
Дело в том, что вызов окна по предложенной вами схеме мне не очень подходит. Причина - необходимо имитировать функцию которой у вас соответствует CheckBox-у "Запретить закрытие окна без сохранения/выбора" (параметр WaitForClose).
В случае предложенного вами метода происходит "распараллеливание" выполняемых в процессе действий, что в моем случае недопустимо, т.к. только строгая последовательность действий может позволить корректно выполнить процесс.
Я просмотрел скрипты действия "Открытие окна" и оказалось, что режим "WaitForClose" организован через спец. параметр действия "Completed" и повторный запуск события OnExecute действия.
Кроме рассмотренной выше проблемы есть еще одна - необходимо блокировать кнопку "Отмена" для вызываемой карточки редактирования. В действии "Открытие окна" блокировка кнопки происходит путем обхода всех элементов коллекции контроллов для уже созданного объекта окна. Насколько я понимаю, то с контролами можно работать только после десериализации.
Можете предложить другой обходной путь?
Геннадий, мне необходимо некоторое время для поиска решения. Cсообщу Вам , когда его найду
Геннадий, решение следующее:
В параметрах действия открытия окна "Создание записи с данными о поставленном продукте" для параметра RecordID уберите галочку "Сохранять в параметр введенное значение после закрытия карточки"
При этом в деталь продукты в разделе Склад продукты добавляются корректно