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

Объявление

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

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

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

  • неизящный - через filter сделать выборку.
    В вот можно ли одним запросом через метод find и обратной сортировкой по номеру - не уверен.

    Комментарий


    • Andry, неизящный мне уже известен Кстати, про выборку. А как в ней сразу получить единственный - последний? Я пока получаю все, а потом методом перебора.
      Чем больше связей, тем меньше степеней свободы.

      Комментарий


      • в конце выборки добавить "by loan.cont-code desc"
        и после получения первой-же записи выйти из цикла.

        Комментарий


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

          Комментарий


          • Как найти допрек на кредитном договоре? Изнасиловала функцию РЕКВИЗИТ (или она меня) - никак не могу указать правильный суррогат.
            Чем больше связей, тем меньше степеней свободы.

            Комментарий


            • Как найти значение ДР на договоре:
              вариант 1)
              ..
              @val1=@cred-offset(10);
              @val2=@grup_dog$(10);
              ... где 10 - номер шаблона договора, grup_dog$ - транслитерация кода допреквизита "Груп_дог". русские идентификаторы должны транслитерироваться.

              вариант 2)
              @val1=РЕКВИЗИТ('loanclasscode','Кредит,'+@doc-ref(10),'cred-offset',' -');
              @val2=РЕКВИЗИТ('loanclasscode','Кредит,'+@doc-ref(10),'Груп_дог',' -');
              ... причем 'loanclasscode' надо заменить классом договора, на котором ищете значение ДР.

              NB: Будьте внимательны при указании классов в шаблонах поиска и в функции Реквизит() - если указать неточно, то есть вероятность не найти нужный реквизит вообще или получить ошибку trans16 (в том случае, если искомый ДР определен на подклассе указанного в шаблоне класса).
              Последний раз редактировалось Andry; 07.09.2007, 14:49. Причина: уточнение

              Комментарий


              • Господа и дамы! Кто-нибудь работает с модулем Денежный рынок? Вот какая проблема появилась при тестировании. Танзакция "MM3510" не отрабатывает для сделки класса mm_loan. Протокол работы прилагаю в файле.

                Первичный анализ показал, что в процессе выполнения в before 35-ого шаблона транзакции "MM359905" переменной @inc-exp-acct не может быть присвоено значение отличное от "?", как в первом так и во втором случае. Проверили классификатор PLAcct на наличие в нем записей соответсвующих условию: Роль=КредПроц, Вид_сделки=Кредит, Субъект=КО. Такие записи есть, и лицевые счета, соответсвующие данным маскам, так есть в базе данных.

                В чем же проблема? Где нам нужно "подкрутить" ?

                ------------------------------------------------------------------------------------------------------------------------------------------------------
                26/11/07 14:18:29 MM3510 (v)ПРИВЯЗКА ЛИЦЕВЫХ СЧЕТОВ К СДЕЛКАМ
                1 14:18:29 -1 01 PARSFUNC-MESSAGE pp-pbase.p>
                2 14:18:30 2 Транзакция [ MM9020 ] выполнилась успешно (trans02) g-trans.p>
                3 14:18:30 1 02 PARSFUNC-MESSAGE pp-pbase.p>
                4 14:18:31 2 Транзакция [ MM9090 ] выполнилась успешно (trans02) g-trans.p>
                5 14:18:31 2 Транзакция [ MM909910 ] выполнилась успешно (trans02) g-trans.p>
                6 14:18:31 2 Транзакция [ MM909920 ] выполнилась успешно (trans02) g-trans.p>
                7 14:18:31 2 Транзакция [ MM9095 ] выполнилась успешно (trans02) g-trans.p>
                8 14:18:31 2 Транзакция [ MM9010 ] выполнилась успешно (trans02) g-trans.p>
                9 14:18:31 2 Транзакция [ MM9030 ] выполнилась успешно (trans02) g-trans.p>
                10 14:18:32 2 BEFORE выражение шаблона [MM359910:8277] ложно. Шаблон был игнорирован. (trans05) TreatTemplate g-trans.p>
                11 14:18:32 2 BEFORE выражение шаблона [MM359910:8278] ложно. Шаблон был игнорирован. (trans05) TreatTemplate g-trans.p>
                12 14:18:32 2 BEFORE выражение шаблона [MM359910:8279] ложно. Шаблон был игнорирован. (trans05) TreatTemplate g-trans.p>
                13 14:18:36 2 Транзакция [ MM359910 ] выполнилась успешно (trans02) g-trans.p>
                14 14:18:36 -1 Ошибка передачи параметра iString в парсерную функцию SUBSTR (trans26) PARSFUNC-SUBSTR pp-psyst.p>
                15 14:18:36 -1 Ошибка вызова функции [PARSFUNC-SUBSTR] (pars11) RunFunction pp-parsr.p>
                16 14:18:36 -1 Ошибка выполнения парсерного выражения [if @skip-deal == НЕТ then;WRITELN(FILL("-",40), @log-file);@__currency = "";@pl-acct-type = _if(@__deal-contract == "Кредит", "КредПроц", "ДепПроц");@inc-exp-acct = PLACCT(@__deal-contract, @__deal-cont-code, @pl-acct-type, @__deal-branch-id, "");if ((@inc-exp-acct == ?) ] в транзакции [%s] (trans09) ParsAttribute g-trans.p>
                17 14:18:36 -1 Ошибка выполнения транзакции [ MM359905 ] (trans01) g-trans.p>
                18 14:18:36 -1 Ошибка вызова функции [PARSFUNC-ТРАНЗАКЦИЯ] (pars11) RunFunction pp-parsr.p>
                19 14:18:36 -1 Ошибка выполнения парсерного выражения [ТРАНЗАКЦИЯ(@__trans-code)] в транзакции [MM9035] (trans09) ParsAttribute g-trans.p>
                20 14:18:36 -1 Ошибка выполнения транзакции [ MM9035 ] (trans01) g-trans.p>
                21 14:18:36 -1 Ошибка вызова функции [PARSFUNC-ЦИКЛ] (pars11) RunFunction pp-parsr.p>
                22 14:18:36 -1 Ошибка выполнения парсерного выражения [if DEFINED(__NUM-OBJECTS) then 1; @__items-nbr = @__NUM-OBJECTS; ЦИКЛ("MM9035", 1, @__NUM-OBJECTS);else BREAK(3) endif;// UNLD_INTERFACE("edeal");PREVIEW(@log-file)] в транзакции [MM3510] (trans09) ParsAttribute g-trans.p>
                23 14:18:36 -1 Ошибка выполнения транзакции [ MM3510 ] (trans01) g-trans.p>
                ------------------------------------------------------------------------------------------------------------------------------------------------------

                Комментарий


                • Udgin Rain Парсерное выражение, вызывающее ошибку, обрезано.
                  Проще всего включить пошаговую отладку debug(2), и после возврата функции PLACCT посмотреть содержимое переменных по F2

                  PS. К сожалению в логе отладки не пишутся номера шаблонов - это затрудняет отладку.

                  Комментарий


                  • Пожалуй конкретизирую вопрос: у кого-нибудь еще были проблемы с функцией PLACCT? Если были, то как боролись? Проблему я определил, а это вышеописание привел для более подробного введения.

                    Комментарий


                    • Копать надо здесь?...

                      14 14:18:36 -1 Ошибка передачи параметра iString в парсерную функцию SUBSTR (trans26) PARSFUNC-SUBSTR pp-psyst.p>
                      Чем больше связей, тем меньше степеней свободы.

                      Комментарий


                      • Копать надо здесь?...

                        Подобного рода ошибки возникают, когда в такие функции как SUBSTR или MESSAGE передается переменная со значением "?". Так вот эта переменная там - счет или маска счета, возвращенная функцией PLACCT. Не могу научить PLACCT вернуть что-нибудь кроме ?.

                        Комментарий


                        • Udgin Rain А если включить режим PLACCT() с отображением - хоть какие-нибудь записи отбираются?

                          Комментарий


                          • Если вызвать PLACCT с параметром iRezim = [0|1], то на экран высвечивается соответствующий броузер с масками... Спасибо,Andry! Однако, заявка в БИС все-таки направлена

                            Комментарий


                            • При работе универсальной транзакции выдается ошибка,
                              SYSTEM ERROR: Попытка создать слишком много индексов. (40)
                              Транзакция работала нормально раньше, то есть достигнут какой-то
                              предел чего-го.
                              подскажите как с этим можно бороться?

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

                              Комментарий


                              • DWP Нет вложенного использования шаблона filter?
                                Какое количество договоров выбирается фильтром? Зависит ли появление ошибки от количества выбранных договоров?
                                Какая точно версия прогресса?
                                Можно ли сюда приаттачить все три транзакции, или хотя-бы вырезку из описания верхнего шаблона выборки договоров?
                                В каком, собственно, месте возникает ошибка?
                                Последний раз редактировалось Andry; 11.12.2007, 13:24. Причина: уточнение

                                Комментарий


                                • Нет вложенного использования шаблона filter?
                                  Какое количество договоров выбирается фильтром? Зависит ли появление ошибки от количества выбранных договоров?
                                  Какая точно версия прогресса?
                                  Можно ли сюда приаттачить все три транзакции, или хотя-бы вырезку из описания верхнего шаблона выборки договоров?
                                  В каком, собственно, месте возникает ошибка?


                                  1. вложенное испорльзование есть
                                  на первом вернем уровне использование готового фильтра
                                  и на втором уровне по фибранным в первом фильтре договорам
                                  фильтруются счета клиента по каждому из них
                                  1.1 количество договоров 1649, работала на 1100 точно
                                  2 . версия прогресс 10.А.02
                                  3. в каком месте возникает сам пока не знаю (просто я сразу прикинул по сигналу юзера в чем дело и написал в форум)
                                  а сам запустил ее как вылетит то напишу в каком месте
                                  4. верхний уровень
                                  50:
                                  DO TEMPLATE CLASS FilterNav ACTION Создание ROLE Выборка:
                                  /// tm_details>
                                  /// Отбираем договора
                                  /// /tm_details>

                                  // РЕКВИЗИТ: FiltClass (константа)
                                  @FiltClass = [loan_allocat]
                                  // РЕКВИЗИТ: FiltInfo (константа)
                                  @FiltInfo = [2010,loan_cd.p,Подворье18,Кредит]

                                  DO AFTER:
                                  @count_all = @num-results(50);
                                  ГР_ТРАНЗАКЦИЯ('Сл_Дог');
                                  STATUS("")

                                  END AFTER.

                                  END TEMPLATE. // ШАБЛОН: 50 - КОНЕЦ
                                  5. второй уровень

                                  // ***************************************************************************
                                  сл_дог:
                                  DO TRANSACTION:
                                  /// tr_name-opkind>
                                  /// сл.транзация
                                  /// /tr_name-opkind>

                                  /// tr_parent>
                                  /// техн
                                  /// /tr_parent>

                                  /// tr_module>
                                  /// loan
                                  /// /tr_module>

                                  /// tr_proc>
                                  /// g-trans
                                  /// /tr_proc>

                                  /// tr_сс_выводнаэкран>
                                  /// Нет
                                  /// /tr_сс_выводнаэкран>

                                  /// tr_СС_ВыводПрткл>
                                  /// Нет
                                  /// /tr_СС_ВыводПрткл>

                                  /// tr_ProgressBar>
                                  /// Нет
                                  /// /tr_ProgressBar>

                                  // Библиотека функций парсера для лицевых и счетов 2-го порядка.
                                  LIBRARY pacct.

                                  // Библиотека системных функций парсера.
                                  LIBRARY psyst.

                                  // Библиотека функций парсера для договоров
                                  LIBRARY ploan.

                                  15:
                                  DO TEMPLATE CLASS loan ACTION Поиск ROLE Ввод данных:
                                  /// tm_details>
                                  /// найден договор
                                  /// /tm_details>

                                  // РЕКВИЗИТ: contract (формула)
                                  @contract = SEARCH(@contract)

                                  // РЕКВИЗИТ: cont-code (формула)
                                  @cont-code = SEARCH(@cont-code)


                                  DO AFTER:
                                  @dog-num = @cont-code(15);
                                  @cl-cat = @cust-cat(15);
                                  @cl-num = @cust-id(15);

                                  END AFTER.

                                  END TEMPLATE. // ШАБЛОН: 15 - КОНЕЦ

                                  20:
                                  DO TEMPLATE CLASS signs ACTION Поиск с ош. ROLE Выборка:
                                  /// tm_details>
                                  /// Дата заключения договора
                                  /// /tm_details>

                                  // РЕКВИЗИТ: file-name (формула)
                                  @file-name = SEARCH("loan")

                                  // РЕКВИЗИТ: code (формула)
                                  @code = SEARCH("ДатаСогл")

                                  // РЕКВИЗИТ: surrogate (формула)
                                  @surrogate = SEARCH(@contract(15) + "," + @cont-code(15))


                                  DO AFTER:
                                  if DEFINED(__notfound) THEN @dog-open = @open-date(15) ELSE @dog-open = @code-value(20) endif

                                  END AFTER.

                                  END TEMPLATE. // ШАБЛОН: 20 - КОНЕЦ

                                  100:
                                  DO TEMPLATE CLASS filter ACTION Создание ROLE Выборка:
                                  /// tm_details>
                                  /// отбираем счета
                                  /// /tm_details>

                                  DO BEFORE:
                                  ПЕРЕСЧИТАТЬ_СОСТОЯНИЕ('Кредит', @cont-code(15), ДАТА())
                                  END BEFORE.

                                  // РЕКВИЗИТ: buffers (формула)
                                  @buffers = "acct"

                                  // РЕКВИЗИТ: where (формула)
                                  @where = "for each acct
                                  where (acct.cust-cat = '" + @cust-cat(15) + "') and
                                  (acct.cust-id = " + @cust-id(15) + ") and
                                  (acct.bal-acct = 40817)
                                  no-lock"

                                  // РЕКВИЗИТ: fields (формула)
                                  @fields = "acct.bal-acct,acct.currency,acct.acct"

                                  // РЕКВИЗИТ: persist (константа)
                                  @persist = [Да]

                                  DO AFTER:
                                  @ii = getvar(__counter) * 10;
                                  @summa = ПРМ('Кредит', @cont-code(15), 33, ДАТА()) +
                                  ПРМ('Кредит',@cont-code(15), 35, ДАТА());
                                  STATUS(FILL(CHR(178), int (71 * getvar(__counter) / @count_all)) +
                                  FILL(CHR(176), 71 - int(71 * getvar(__counter) / @count_all )));
                                  if @summa > 0 then ГР_ТРАНЗАКЦИЯ('Сл_дог1') else break(1) endif
                                  END AFTER.

                                  END TEMPLATE. // ШАБЛОН: 100 - КОНЕЦ

                                  END TRANSACTION. // ТРАНЗАКЦИЯ сл_дог - КОНЕЦ
                                  // ***************************************************************************
                                  6.третий уровень
                                  // ***************************************************************************
                                  сл_дог1:
                                  DO TRANSACTION:
                                  /// tr_name-opkind>
                                  /// сл.транзация1
                                  /// /tr_name-opkind>

                                  /// tr_parent>
                                  /// техн
                                  /// /tr_parent>

                                  /// tr_module>
                                  /// loan
                                  /// /tr_module>

                                  /// tr_proc>
                                  /// g-trans
                                  /// /tr_proc>

                                  /// tr_сс_выводнаэкран>
                                  /// Нет
                                  /// /tr_сс_выводнаэкран>

                                  /// tr_ProgressBar>
                                  /// Нет
                                  /// /tr_ProgressBar>

                                  // Библиотека функций парсера для лицевых и счетов 2-го порядка.
                                  LIBRARY pacct.

                                  // Библиотека системных функций парсера.
                                  LIBRARY psyst.

                                  // Библиотека функций парсера для договоров
                                  LIBRARY ploan.

                                  10:
                                  DO TEMPLATE CLASS acctb ACTION Поиск ROLE Выборка:
                                  /// tm_details>
                                  /// найден счет
                                  /// /tm_details>

                                  // РЕКВИЗИТ: bal-acct (формула)
                                  @bal-acct = search(@bal-acct)

                                  // РЕКВИЗИТ: currency (формула)
                                  @currency = search(@currency)

                                  // РЕКВИЗИТ: acct (формула)
                                  @acct = search(@acct)


                                  DO AFTER:
                                  @ost = - ОСТАТОК_РУБ(@acct(10),@currency(10),ДАТА());
                                  if @ost > 0 then 1 else break(1) endif
                                  END AFTER.

                                  END TEMPLATE. // ШАБЛОН: 10 - КОНЕЦ

                                  200:
                                  DO TEMPLATE CLASS opb ACTION Создание ROLE Ввод данных:
                                  /// tm_details>
                                  /// списание с клиента
                                  /// /tm_details>

                                  DO BEFORE:
                                  if @summa > 0 then 1 else break(1) endif;
                                  @summa1 = MIN(@summa,@ost);
                                  @summa = @summa - @summa1;
                                  ПРИВЯЗАТЬ_ПРОВОДКУ('Кредит',@dog-num,'Кр_77')


                                  END BEFORE.

                                  // РЕКВИЗИТ: doc-num (формула)
                                  @doc-num = int(@ii) + int(getvar(__counter))

                                  // РЕКВИЗИТ: doc-type (константа)
                                  @doc-type = [06]
                                  // РЕКВИЗИТ: acct-cat (константа)
                                  @acct-cat = [b]
                                  // РЕКВИЗИТ: doc-date (формула)
                                  @doc-date = ДАТА()

                                  // РЕКВИЗИТ: op-status (константа)
                                  @op-status = [√√]
                                  // РЕКВИЗИТ: details (формула)
                                  @details = "Погашение процентов по КД " + @dog-num + " от " +
                                  @dog-open + " " + НАИМ_КЛ(@cl-cat,@cl-num) + " за период с " + ENTRY(1,@dats) + " по " + ENTRY(2,@dats) + ". Подворье10"

                                  // РЕКВИЗИТ: contract-date (формула)
                                  @contract-date = ДАТА()

                                  // РЕКВИЗИТ: user-id (константа)
                                  @user-id = [2010]
                                  // РЕКВИЗИТ: user-inspector (константа)
                                  @user-inspector = [2014]
                                  205:
                                  DO TEMPLATE CLASS op-entry ACTION Создание ROLE op-entry:
                                  // РЕКВИЗИТ: acct-db (формула)
                                  @acct-db = @acct(10)

                                  // РЕКВИЗИТ: acct-cr (формула)
                                  @acct-cr = СЧЕТ_ПО_РОЛИ('КРЕДИТ',@dog-num,'КредТ', ДАТА())

                                  // РЕКВИЗИТ: acct-cat (константа)
                                  @acct-cat = [b]
                                  // РЕКВИЗИТ: type (константа)
                                  @type = [ВН]
                                  // РЕКВИЗИТ: op-cod (константа)
                                  @op-cod = [000000]
                                  // РЕКВИЗИТ: amt-rub (формула)
                                  @amt-rub = DEC(@summa1)


                                  END TEMPLATE. // ШАБЛОН: 205 - КОНЕЦ


                                  END TEMPLATE. // ШАБЛОН: 200 - КОНЕЦ

                                  215:
                                  DO TEMPLATE CLASS opb ACTION Создание ROLE Ввод данных:
                                  /// tm_details>
                                  /// отнесение на расходы
                                  /// /tm_details>

                                  // РЕКВИЗИТ: doc-num (формула)
                                  @doc-num = int(@ii) + int(getvar(__counter)) * 2

                                  // РЕКВИЗИТ: doc-type (константа)
                                  @doc-type = [06]
                                  // РЕКВИЗИТ: acct-cat (константа)
                                  @acct-cat = [b]
                                  // РЕКВИЗИТ: doc-date (формула)
                                  @doc-date = ДАТА()

                                  // РЕКВИЗИТ: op-status (константа)
                                  @op-status = [√√]
                                  // РЕКВИЗИТ: details (формула)
                                  @details = "Полученные проценты по КД " + @dog-num + " " +
                                  НАИМ_КЛ(@cl-cat,@cl-num) + " отнесены на доходы.
                                  Подворье10"

                                  // РЕКВИЗИТ: contract-date (формула)
                                  @contract-date = ДАТА()

                                  // РЕКВИЗИТ: user-id (константа)
                                  @user-id = [2010]
                                  // РЕКВИЗИТ: user-inspector (константа)
                                  @user-inspector = [2014]
                                  225:
                                  DO TEMPLATE CLASS op-entry ACTION Создание ROLE op-entry:
                                  // РЕКВИЗИТ: acct-db (формула)
                                  @acct-db = СЧЕТ_ПО_РОЛИ('КРЕДИТ',@dog-num,'КредБудДох', ДАТА())

                                  // РЕКВИЗИТ: acct-cr (формула)
                                  @acct-cr = СЧЕТ_ПО_РОЛИ('КРЕДИТ',@dog-num,'КредПроц', ДАТА())

                                  // РЕКВИЗИТ: acct-cat (константа)
                                  @acct-cat = [b]
                                  // РЕКВИЗИТ: type (константа)
                                  @type = [ВН]
                                  // РЕКВИЗИТ: op-cod (константа)
                                  @op-cod = [000000]
                                  // РЕКВИЗИТ: amt-rub (формула)
                                  @amt-rub = DEC(@summa1)

                                  // РЕКВИЗИТ: kau-cr (формула)
                                  @kau-cr = 'Кредит,' + @dog-num + ",10"


                                  END TEMPLATE. // ШАБЛОН: 225 - КОНЕЦ


                                  END TEMPLATE. // ШАБЛОН: 215 - КОНЕЦ

                                  235:
                                  DO TEMPLATE CLASS loan-int ACTION Создание ROLE Ввод данных:
                                  /// tm_details>
                                  /// привязка кр_10
                                  /// /tm_details>

                                  // РЕКВИЗИТ: amt-rub (формула)
                                  @amt-rub = DEC(@summa1)

                                  // РЕКВИЗИТ: avt (константа)
                                  @avt = [-]
                                  // РЕКВИЗИТ: cont-code (формула)
                                  @cont-code = @dog-num

                                  // РЕКВИЗИТ: contract (константа)
                                  @contract = [Кредит]
                                  // РЕКВИЗИТ: id-d (константа)
                                  @id-d = [5]
                                  // РЕКВИЗИТ: id-k (константа)
                                  @id-k = [6]
                                  // РЕКВИЗИТ: mdate (формула)
                                  @mdate = ДАТА()

                                  // РЕКВИЗИТ: op (формула)
                                  @op = @op(225)

                                  // РЕКВИЗИТ: op-date (формула)
                                  @op-date = ДАТА()

                                  // РЕКВИЗИТ: user-id (формула)
                                  @user-id = @user-id(200)

                                  // РЕКВИЗИТ: nn (формула)
                                  @nn = 100 + int(@ii) + (int(getvar(__counter)) - 1) * 2


                                  END TEMPLATE. // ШАБЛОН: 235 - КОНЕЦ

                                  END TRANSACTION. // ТРАНЗАКЦИЯ сл_дог1 - КОНЕЦ
                                  // ***************************************************************************




                                  С уважением, Дмитрий.

                                  Комментарий


                                  • DWP Фильтр во втором уровне лучше бы сократить, замениить на обычные шаблоны поиска с ошибкой.
                                    У клиента может быть открыто несколько счетов 40817? В одной валюте может быть только один счет?
                                    Много валют вообще используется на ваших 40817 ?

                                    Комментарий


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

                                      Комментарий


                                      • а разве можно с помощью шаблона поиска с ошибкой
                                        отобрать несколько счетов ?
                                        С уважением, Дмитрий.

                                        Комментарий


                                        • DWP Много ли может быть открытых счетов 40817 у клиента?
                                          Если более одного - чем они отличаются?
                                          Привязывается ли расчетный счет 40817 к договору с ролью "КредРасч" ?

                                          Комментарий


                                          • DWP а разве можно с помощью шаблона поиска с ошибкой
                                            отобрать несколько счетов ?

                                            Нет. Кстати, в текущем условии выборки второго фильтра не проверяется условие закрытости лицевого счета. ЗАчем попадают выборку заведомо лишние счета?
                                            Да и поиск signs при помощи фильтра можно заменить единственным вызовом функции Реквизит().

                                            Комментарий


                                            • хорошо это я уберу, просто не думал что вызов функции реквизит
                                              что то реально экономит.
                                              и контроль закрытия счета тоже поставлю.

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

                                              Комментарий


                                              • DWP Основная причина (как я понимаю) в том, что scope транзакции слишком велик. Нельзя уменьшить?
                                                Кардинальным шагом бы было переписывание верхнего шаблона, через простой filter по договорам и лиц. счетам сразу. Но это возможно если настроенный фильтр "2010,loan_cd.p,Подворье18,Кредит" постоянен.
                                                Еще вариант - разбить множество договоров, выбираемых фильтром "2010,loan_cd.p,Подворье18,Кредит" на меньшие группы.

                                                Комментарий


                                                • подскажи как обратится к элементу массивы в универсальной
                                                  транзакции, что то не нашел нигде в описаниии
                                                  во например реквизит address в таблице персон является extent 2
                                                  как внутри кода взять оба эктента ?
                                                  С уважением, Дмитрий.

                                                  Комментарий


                                                  • DWP @x=GET_VALUE_BY_QUERY('person','address','person.person-id = 1863');
                                                    вернет список из обоих значений, потом нужное выберешь из переменной через entry()

                                                    Комментарий


                                                    • нашел способ блокировать метод validate, думаю кроме блокирования
                                                      "не нужных" в каком то данном случае проверок, то может дать существенное увеличение производительности

                                                      в классификатор "действие" добавляем "своё" действие
                                                      по примеру см. ниже.
                                                      и в нужных шаблонах, где хотим блокировать валидацию
                                                      прописываем "своё" действие ("создание1"),

                                                      │Создание Создание нового объекта update,validate
                                                      │Создание1 Создание без валидации update,!validate
                                                      С уважением, Дмитрий.

                                                      Комментарий


                                                      • да кстати лучше все таки указать в классификаторе вот так

                                                        │Создание Создание нового объекта update,validate
                                                        │Создание1 Создание без валидации update,!validate
                                                        │Создание2 Создание без валидации update
                                                        С уважением, Дмитрий.

                                                        Комментарий


                                                        • да кстати лучше все таки указать в классификаторе вот так

                                                          │Создание Создание нового объекта update,validate
                                                          │Создание1 Создание без валидации update,!validate
                                                          │Создание2 Создание без валидации update
                                                          С уважением, Дмитрий.

                                                          Комментарий


                                                          • Информация к размышлению А знаете ли Вы, уважаемые собеседники, что при помощи механизма УТ совершенно реально создать документ с датой:
                                                            - вообще не открывавшегося дня
                                                            - уже закрытого дня?
                                                            В общем, как уже не раз было здесь отмечено, инструмент диверсионный. Применять с осторожностью.
                                                            /kiv

                                                            Комментарий


                                                            • Илюха Документ без проводки? Или у проводки дата Op-date нормально открытого (по этой категории) дня?

                                                              Действительно - УТ не foolproof инструмент .

                                                              Комментарий

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