31 мая, воскресенье 02:38
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Прервать выполнение перехода документа

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Прервать выполнение перехода документа

    Добрый день!
    Подскажите, пожалуйста, ответ на такой вопрос - хотелось бы сделать так, чтобы при перевода документа из статуса, например, "Ф" в статус "крыж" проверялся некий Доп Рек ("ДР1") на документе и если значение ДР равно, например, "Да", то выполнение перехода прерывалось и пользователю выдавалось сообщение об ошибке. Т.е. пользователь в какой-то момент помечает документ и пока не снимет этот ДР, документ не может быть переведен в определенный статус.
    Как я вижу себе решение:
    если зайти в классификатор "Статус" и выбрать любой статус, то можно увидеть процедуру Вх и процедуры Вых, которые, если я не ошибаюсь, были сделаны для механизма Виз. Так вот, если написать процедуру, которая будет проверять ДР документа -
    .... IF GetXattrValue("op", STRING(op.op), "ДР1") EQ "Да" THEN ... а тут что написать ???

    Сразу скажу, что негативный момент состоит в том, что если переводят из статуса в статус 100 документов, 1 из которых, например, 55-й помечен ДР1, то должна возникнуть ошибка и что будет с документами - 54 будут переведены, а оставшиеся 45 - так и останутся не переведенными(?)

  • #2
    DEFINE PARAMETER BUFFER bOp FOR op.
    Посмотрите для примера процедуры

    ДопКонтр pr_setdr_op Фиксировать дополнительного конт
    ПМПров1 pr_chk_fraud Проверка на противодействие моше
    Проверка1 pr_chk_over Овердрафт при наличии договора о
    Проверка2 pr_chk_saldo Красное сальдо
    Проверка3 pr_chk_blck Контроль блокировок на счете
    Проверка4 pr_chk_clb Контроль бумажных платежей
    Проверка5 pr_chk_plat Контроль платежей
    Проверка6 pr_chk_doc Контроль полномочий
    Проверка7 pr_chk_fm Финансовый мониторинг
    Проверка8 pr_chk_cred Предконтроль платежей по кредита

    Вам нужно анализировать по bop наличие реквизита и возвращать oResult (отрицательный либо положительный).
    ИБС БИСКВИТ: Внедрение, консалтинг: www.reunico.ru

    Комментарий


    • #3
      Сообщение от fetchxxx Посмотреть сообщение
      Посмотрите для примера процедуры

      ДопКонтр pr_setdr_op Фиксировать дополнительного конт
      ...
      ...
      Проверка8 pr_chk_cred Предконтроль платежей по кредита

      Вам нужно анализировать по bop наличие реквизита и возвращать oResult (отрицательный либо положительный).
      Спасибо за ответ!
      Конечно все Вы правильно говорите, но тут есть нюансы, о которых я не хотел писать, но сейчас напишу. Процедуры, о которых Вы написали выше, это как раз те процедуры, которые указываются в классификаторе ПроцедурыКонтр (Процедуры контроля при смене статусов документов (F8)), ... короче основа механизма Виз в Бисквите.
      Постановка задачи была такая - что надо заблокировать исполнения документа (в случае с внешним документов - отправку в РКЦ), который может находится в момент, когда обнаружится желание его заблокировать, в любом статусе (даже и в ФБО -Документ требует отправки в РКЦ).
      Сразу пришла мысль сделать новую Визу, что я и сделал - создал новую процедуру контроля (которая проверяет ДР документа, который устанавливает вручную пользователь), добавил новую визу, в классификаторе ПроцедурыКонтр, далее новую визу добавил в Группу1 (группу процедур контроля), а эта Группа1 указана в Процедуре контр. (Вых) начальных статусов документов, например, ПКБ, ФБК, Ф. Т.е. при выполнении перехода из ПКБ в ФБМ отрабатывают все процедуры контроля из Группы1, и если хотя бы одна из срабатывает (oResult = NO) , то документ не переходит в статус ФБМ, а переходит в ФВиз и на нем появляются ДР, к примеру, Виза1 = Не требуется, Виза2 = Не требуется.... Виза7 = Требуется, Виза8 = Требуется, После того как пользователи утвердят свои визы, документ из ФВиз можно перевести в ФБМ. И при такой реализации (где визы отрабатывают при переходе из начального статуса документа) процедура новой визы отрабатывает, но ничего не ловит, поскольку пользователь еще не успел поставить вручную ДР на документ. Для того, чтобы сделать все правильно, надо исправлять систему переходов документа, а это не хотелось бы делать.
      Короче задачу решили просто, без прерывания перехода документа, без новых виз - просто в фильтр по отбору документов для отправки в РКЦ добавил условие на ДР документа и теперь, пока пользователь не удалит значение ДР с документа, документ не будет попадать в фильтр.
      Как то так..

      Комментарий

      Обработка...
      X