Интерфейс наценок

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
Hershy
рег.отделение
Сообщения: 64
Зарегистрирован: Вт, 03/03/2009 07:53
Имя Фамилия: Николай Воронцов
Откуда: Галактика-Урал
Контактная информация:

Интерфейс наценок

Сообщение Hershy »

Доброе время суток!

Проблема следующая:
Создаем каталог наценок, что находятся в прайс-листах.
Необходимо создать наценки, которые зависят от других наценок. Причем некоторые наценки могут зависеть от 9 и более других наценок. В поле KATNACEN.OTKOGO отображаются наценки, от которых зависит текущая наценка, в формате [KATNACEN1.KODNAC]+[KATNACEN2.KODNAC]+...+[KATNACENn.KODNAC].
Интересует следующий вопрос, какими соображениями руководствовались разработчики интерфейса L_PRICES::KATNACEN, когда ограничили вывод в это поле только 45 символов, причем так органичили, что если поле содержит например следующую инфорацию

Г_01_102+Г_01_106+Г_06_116+Г_07_118+Г_10_122

то очередную наценку привязать не удастся, т.к. интерфейс скажет "Длина формулы не позволяет добавить значение" и реально не позволит добавить еще одну наценку.

Интересуюсь в том плане, что нужно это ограничение обойти, я вижу перед собой выход только в докомпилировании интерфейса, просто опасаюсь, не завязано ли число 45 на что - то еще.
Вот код, интерфейса, который ограничивает ввод

Код: Выделить всё

...
      #OtKogo:
        {
          KatNacen.OtKogo := KatNacen.OtKogo;

          if ( RunInterface('GetNacen', KatNacen.cKlPrice, Ot1, CondY) <> cmCancel )
            {
              if ( Trim(KatNacen.OtKogo) = '' )
                set KatNacen.OtKogo := Trim(Ot1)
              else
                {
                  if ( Length(KatNacen.OtKogo + '+' + Ot1) <= 45 ) // почему 45 ??????????????????
                    set KatNacen.OtKogo := Trim(KatNacen.OtKogo + '+' + Ot1)
                  else
                    Message('Длина формулы не позволяет добавить значение!', Warning + OkCancel);
                }
...
Аватара пользователя
ZYG
топ-софт
Сообщения: 15
Зарегистрирован: Пт, 14/09/2007 10:50
Имя Фамилия: Юрий Жданович
Откуда: ТопСофт
Контактная информация:

Re: Интерфейс наценок

Сообщение ZYG »

Видимо анахронизм от старых версий, когда длина поля была 45 (в версии 80).

Уберем это ограничение (сейчас это 200 символов) в обновлении L_PRICES 26.

Также появилась возможность задать алгоритм (реализовать интерфейс) расчета наценки (102.28824). Т.е. ограничение можно снять вообще.

P.S. В naccntr.vip тоже есть поле под код длиной 45
Ответить