11 августа, вторник 19:08
Bankir.Ru

Объявление

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

Универсальные транзакции

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

  • Всем добрый день ! Подскажите, пожалуйста. С помощью ф-ции ОБЪЕКТ() хочу выбирать лицевые счета с учетом ДР на счете. Если я описываю этот ДР как обычный реквизит счета, то не получается. Как мне записать этот ДР в качестве аргумента этой функции ?

    Комментарий


    • Сообщение от alexbis Посмотреть сообщение
      Всем добрый день ! Подскажите, пожалуйста. С помощью ф-ции ОБЪЕКТ() хочу выбирать лицевые счета с учетом ДР на счете. Если я описываю этот ДР как обычный реквизит счета, то не получается. Как мне записать этот ДР в качестве аргумента этой функции ?
      @acct1 = ОБЪЕКТ(да,'bal-acct' + CHR(1) + 'sc-1' + CHR(1) + 'sv-1',
      '70606' + CHR(1) + код реквизита> + CHR(1) + маска для поиска значения>, '', ',ESC_NO_ERROR,acctb');

      можно аналогично по нескольким допреквизитам
      там в фильтре много их есть sc-2,sc-3,sc-4,sc-5
      их значение соотвественно sv с такой же циферкой

      функция "обьект" работает со со стандартым методом browse у класса,который в свою очередь работает со стандартным фильтром этого browse. поэтому все что видите в фильтре можно использовать для поиска, название поля фильтра можно глянут стоя на поле в фильтре и нажав CTRL+T
      С уважением, Дмитрий.

      Комментарий


      • Спасибо. Все получилось

        Комментарий


        • Добрый день !
          Кто-нибудь сталкивался со следующей проблемой ? Есть два подряд расположенных меню. Если в первом меню я выбираю второй пункт, то при входе во второе меню, курсор сразу встает на вторую позицию. Как сделать, чтобы курсор в следующем меню вставал всегда в первую позицию ?

          Комментарий


          • alexbis, непонятно. Это в универсальных транзакциях?

            Комментарий


            • Да, это в универсальных транзакциях. У меня два меню, реализованных с помощью ф-ции message(), которые расположены подряд. В этом случае проявляется такой эффект.

              Комментарий


              • посмотрел у себя в подобных транзакциях, да действительно такой эффект наблюдается , я думаю он связан и использование каких нибудь глобал шаре переменных, можете попробовать зарегистрировать это в БИС, хотя 10:1 что они не почитают это ошибкой - скажут что так и должно быть, если еще вам удастся им это обьяснить..
                С уважением, Дмитрий.

                Комментарий


                • у меня получилось лишь в том случае, если между двумя меню вставить message ('', 1); но уровень отладки у УТ должна быть меньше 1, чтобы не засорять интерфейс. Этот мессадж с единицей видимо сбрасывает глобальную переменную в процедуре, указывающую пункт меню

                  Комментарий


                  • Сообщение от DWP Посмотреть сообщение
                    я думаю он связан и использование каких нибудь глобал шаре переменных
                    Логично. Если открыть pp-pbase.p и внимательно прочесть текст функции message (а он раза в 3 короче комментария), то станет понятно, что эта переменная называется pick-value.

                    Правильное решение - перед вызовом fill-sysmes её обнулять. Прямо в этом исходнике.

                    Неправильное решение - обнулять pick-value прямо внутри fill-sysmes, поскольку часто через pick-value передаётся значение по умолчанию.
                    /kiv

                    Комментарий


                    • Здравствуйте все.
                      Такой вопрос по УТ:
                      настраиваю транзакцию для ввода документа с экрана.На поле клиент по Ф1 вызывается "картотека получателей",а в "стандартных" транзакциях,"картотека
                      постоянных получателей".Желаю,чтобы и в УТ была "картотека
                      постоянных получателей" - пытался ставить метод browse в значение brwclirc на реквизите name-ben - не помогает.
                      Можете помочь?

                      Комментарий


                      • Сообщение от kabysdox Посмотреть сообщение
                        Здравствуйте все.
                        Такой вопрос по УТ:
                        настраиваю транзакцию для ввода документа с экрана.На поле клиент по Ф1 вызывается "картотека получателей",а в "стандартных" транзакциях,"картотека
                        постоянных получателей".Желаю,чтобы и в УТ была "картотека
                        постоянных получателей" - пытался ставить метод browse в значение brwclirc на реквизите name-ben - не помогает.
                        Можете помочь?
                        можно не заморачиваться с вызовом по Ф1 именно в поле платежки,
                        а поставить выбор из этого классификатора в поле before шаблона с помощью функции ОБЪЕКТ , "визуальное создание" документа делать уже с заполненым полем получателя, согласно сделанному перед этим выбором.
                        С уважением, Дмитрий.

                        Комментарий


                        • Можно конечно,а если пользователь не хочет выбирать клиента и оставить это поле пустым...?Мне кажется должно быть какое-то общее решение,чтобы с каждой транзакцией не возиться.Надо в БИС написать...

                          Комментарий


                          • Сообщение от kabysdox Посмотреть сообщение
                            Можно конечно,а если пользователь не хочет выбирать клиента и оставить это поле пустым...?Мне кажется должно быть какое-то общее решение,чтобы с каждой транзакцией не возиться.Надо в БИС написать...
                            очень просто, можно обработать нажитие ESC при выходе
                            и опять же подавать заполненный документ но уже с пустым полем

                            P.S. Не надо особо стремиться к общему решению, если есть простое частное решение. НО если вдруг у вас будет общее решение , то "пожалуйста,в студию!" , с интересом взгляну
                            С уважением, Дмитрий.

                            Комментарий


                            • Фирма БИС сказала:"такой возможности нет".Усе...

                              Комментарий


                              • Добрый день, у меня два вопроса:
                                1. Как в УТ отобрать блокированные счета, ведь есть класс BlockObject, но как им воспользоваться никак не могу догадаться, может примерчик у кого есть?
                                2. Настраиваю начисление процентов на остатки (измучилась, сил уже никаких нет), каждому клиенту может быть привязано несколько 47426 счетов, в стандартных транзакциях не получается взять нужный 47426, берется первый попавшийся, а в УТ не получается взять сумму оборотов за каждый день, помогите.
                                Заранее благодарю.

                                Комментарий


                                • 1. Такой вариант :
                                  Moжно сделать шаблон поиска на классе blockobject(или сразу BlockAcct)
                                  и в нем SEARCH по нужным реквизитам, ну а дальше как обычно, с помощью
                                  ГР_Транзакция, обработать их.
                                  2.Обороты за день по какому либо счету считаются очень легко
                                  для этого есть специальная функции:

                                  ОБОРОТВ Возвращает оборот по счету в валюте
                                  ОБОРОТР Возвращает оборот по счету в рублях

                                  они достаточно хорошо описаны в библиотеке и примеры там хорошие
                                  можно вычислить любые обороты по счету.
                                  С уважением, Дмитрий.

                                  Комментарий


                                  • Все примерно я так и делаю
                                    1. Класс объекта: BlockAcct
                                    Роль: Выборка
                                    Действие: Поиск
                                    Создаю реквизит end-datetime, SEARCH(‘>= Дата начала периода ’)
                                    Как задать поиск за период? Ведь счет быть мог быть блокирован.
                                    Или не тот реквизит создаю?
                                    У меня в этой же транзакции устанавливается отбор по фильтру, есть ли разница что раньше выполнять?
                                    В общем понятно что ничего не понятно.
                                    2. Я именно эту функцию и использовала, сейчас уже заработало))).

                                    Комментарий


                                    • Сообщение от Elena745 Посмотреть сообщение
                                      Все примерно я так и делаю
                                      1. Класс объекта: BlockAcct
                                      ....
                                      Создаю реквизит end-datetime, SEARCH(‘>= Дата начала периода ’)
                                      .....
                                      тут я конечно немного не так сказал
                                      шаблон с действием "поиск*" и функцияси SEARCH работает по приницпу FIND FIRST и найдет вам только одну запись
                                      (а так вы все правильно пишете в SEARCH)
                                      чтобы отобрать несколько и потом обработать и ГР_ТРАНЗАЦИЯ,
                                      конечно необходимо необходимо делать выборку на базе класса
                                      filter и его потомков.
                                      там в реквизите where вычисляете нужно вам условие,
                                      в реквизите fields перечисляете нужные вам для работы поля,
                                      эти поля вы будете обрабатывать в вызаваемой гупповой транзакции.

                                      именно blockacct у меня примеров нет, но на другие классы масса
                                      примеров, если необходимо могу показать.
                                      но там в документации хоть и скупо, но в приницпе достаточно описана работа класса filter - так что можно и самостоятельно разобраться.
                                      С уважением, Дмитрий.

                                      Комментарий


                                      • Добрый день ! У меня такая проблема.
                                        В универсальной транзакции в шаблоне поиска счета нужно найти счет, у которого в поле «Назначение платежа» не содержатся символы «ОКВКУ».

                                        Как мне записать функцию SEARCH для реквизита details ?
                                        № КОД РЕКВИЗИТА ЗНАЧЕНИЕ РЕКВИЗИТА ФОРМУЛА
                                        ── ────────────── ──────────────────── ──────────────────────
                                        1 bal-acct search(@bal409)
                                        2 currency search(@val)
                                        3 contract search(@nazn409)
                                        4 branch-id search(@branchid)
                                        5 Details search( ? )

                                        Подскажите !!!

                                        Комментарий


                                        • Боюсь, что никак. Скорее всего нужно или фильтр построить, или воспользоваться парсерной функцией ОБЪЕКТ (2-й способ проще)

                                          Комментарий


                                          • Сообщение от alexbis Посмотреть сообщение
                                            Добрый день ! У меня такая проблема.
                                            В универсальной транзакции в шаблоне поиска счета нужно найти счет, у которого в поле «Назначение платежа» не содержатся символы «ОКВКУ».
                                            Подскажите !!!
                                            Непонятно. У счета нет поля "назначение платежа".
                                            Вы можете отфильтровать такие счета в браузере лиц.счетов стандартным фильтром? И какое условие получается?

                                            Если можете - то в УТ воспользуйтесь функцией ОБЪЕКТ().
                                            Если это невозможно - создавайте нужной сложности filter.

                                            Комментарий


                                            • Сообщение от alexbis Посмотреть сообщение
                                              Добрый день ! У меня такая проблема.
                                              В универсальной транзакции в шаблоне поиска счета нужно найти счет, у которого в поле «Назначение платежа» не содержатся символы «ОКВКУ».

                                              Как мне записать функцию SEARCH для реквизита details ?
                                              № КОД РЕКВИЗИТА ЗНАЧЕНИЕ РЕКВИЗИТА ФОРМУЛА
                                              ── ────────────── ──────────────────── ──────────────────────
                                              1 bal-acct search(@bal409)
                                              2 currency search(@val)
                                              3 contract search(@nazn409)
                                              4 branch-id search(@branchid)
                                              5 Details search( ? )

                                              Подскажите !!!
                                              добавляем псевдо реквизит в шаблон $details (знак доллара важен)

                                              search(?, " and not details matches `ОКВКУ` " )

                                              не уверен, насчет "and", но в целом идея такая

                                              Комментарий


                                              • Исправленный и проверенный вариант:

                                                Код:
                                                $details  = search(?, " and (not details matches `*ОКВКУ*`) ")

                                                Комментарий


                                                • Да, при этом обращаю внимание - пробелы после и перед кавычками - обязательны. Собственно это фрагмент текста запроса - так и будет вставляться в запрос. Без пробелов - склеится.
                                                  Чем больше связей, тем меньше степеней свободы.

                                                  Комментарий


                                                  • Уважаемые коллеги, подскажите, как в универсальных транзакциях получить по ID клиента его паспортные данные? Может быть есть какая то функция? Не хочется городить конструкции с использованием функций ОБЪЕКТ() и РЕКВИЗИТ().
                                                    ИБС БИСКВИТ: Внедрение, консалтинг: www.reunico.ru

                                                    Комментарий


                                                    • fetchxxx, А в какие виде/типе получить? Что именно - вид документа, номер, дату, и т.п. ?
                                                      У физика может быть несколько разных документов, более одного пасспорта (если менялся).

                                                      Комментарий


                                                      • Сообщение от fetchxxx Посмотреть сообщение
                                                        Уважаемые коллеги, подскажите, как в универсальных транзакциях получить по ID клиента его паспортные данные? Может быть есть какая то функция? Не хочется городить конструкции с использованием функций ОБЪЕКТ() и РЕКВИЗИТ().
                                                        Краткий ответ: да.

                                                        Наводящие вопросы.
                                                        1. А что такое есть "паспортные данные"?
                                                        2. В каких полях (реквизитах) каких сущностей (объектов) они находятся?
                                                        3. Какую именно конструкцию Вы хотели бы нагородить для выбора сущностей класса cust-ident, связанных с указанным person вместо функции объект() ?
                                                        4. Какую именно конструкцию Вы хотели бы нагородить для выбора значений (как основных, так и дополнительных реквизитов) найденной сущности вместо функции реквизит() ?

                                                        Вот как сами себе на них ответите, так сразу и станет понятнее, что "какая-то функция" безусловно уже существует. И если нужна не "какая-то", то надо задавать smart questions (tm).

                                                        Это был развёрнутый ответ.
                                                        /kiv

                                                        Комментарий


                                                        • Тип документа, номер, кем выдан, дата выдачи.

                                                          Пробовал получить через ОБЪЕКТ() идентификатор документа по cust-cat и cust-id (вызывается браузер всех документов физика), а далее через РЕКВИЗИТ() вытащить нужные реквизиты объекта.

                                                          Но, ОБЪЕКТ() возвращает идентификатор в каком-то странном виде, типа Паспорт,00 00 200000,1☺Ч☺1303
                                                          ИБС БИСКВИТ: Внедрение, консалтинг: www.reunico.ru

                                                          Комментарий


                                                          • Сообщение от Илюха Посмотреть сообщение

                                                            Вот как сами себе на них ответите, так сразу и станет понятнее, что "какая-то функция" безусловно уже существует. И если нужна не "какая-то", то надо задавать smart questions (tm).

                                                            Это был развёрнутый ответ.
                                                            Если конкретизировать задачу, то необходимы реквизиты cust-code, issue и open-date класса p-cust-ident.

                                                            Но вообще под функцией я подразумевал что-то тривиальное, вроде НАИМ_КЛ().
                                                            ИБС БИСКВИТ: Внедрение, консалтинг: www.reunico.ru

                                                            Комментарий


                                                            • fetchxxx, Но, ОБЪЕКТ() возвращает идентификатор в каком-то странном виде, типа Паспорт,00 00 200000,1☺Ч☺1303
                                                              а Entry использовать для разбора?

                                                              Комментарий

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