Проблема с getfirst и Loop по таблице Dogovor

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

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

Ответить
Max_Ural
партнер
Сообщения: 82
Зарегистрирован: Ср, 19/09/2007 08:35
Имя Фамилия: Максим Шагубаков
Откуда: Галактика-Урал
Контактная информация:

Проблема с getfirst и Loop по таблице Dogovor

Сообщение Max_Ural »

Здравствуйте.
Есть интерфейс с двумя полями для выбора Контрагента и договоров.
С выбором контрагента все хорошо - выбирается в каталоге и отображается в интерфейсе.
Выбор договоров сделан с использованием интерфейса L_Dogovor::GetSomeDogovor
Из маркера, который возвращает данный интерфейс, берем Nrec и пытаемся найти договор.
Getfirst по Nrec'у не находит.
В логе видно, что Nrec берется из маркера правильный, в саппорте по этому Nrec'у находит договор.
Попробовали заменить его Loop - тот же эффект.

Если сделать Loop с использованием функции FoundMarker - происходит цикл по таблице.
Во вложении архив проекта. Ресурс могу выслать по почте (не выкладывается из-за ограничения размера 256К)

Чтобы проявилась ошибка - необходимо выбрать контрагента, у которого есть договор.
И в интерфейсе выбора договора выбрать один договор. При этом название поля Договор в интерфейсе не изменится.

Подскажите пожалуйста, в чем может быть причина?
Вложения
17_Управленческий_отчет_по_платежам.rar
(18.35 КБ) 344 скачивания
den
заказчик
Сообщения: 117
Зарегистрирован: Пт, 26/10/2007 14:16
Имя Фамилия: Денис Кучин
Откуда: Геомостпроект НПО

Re: Проблема с getfirst и Loop по таблице Dogovor

Сообщение den »

var объявите на уровне ЛОТ. Наверняка поможет...
Max_Ural
партнер
Сообщения: 82
Зарегистрирован: Ср, 19/09/2007 08:35
Имя Фамилия: Максим Шагубаков
Откуда: Галактика-Урал
Контактная информация:

Re: Проблема с getfirst и Loop по таблице Dogovor

Сообщение Max_Ural »

Действительно, когда объявил переменные внутри запроса - заработало.
Не могли бы пояснить знающие люди, чем вызвано неоднозначное поведение операторов навигации по таблице?
Почему для таблицы Katorg работает позиционирование, а для Dogovor не работает?
Аватара пользователя
Screw
топ-софт
Сообщения: 73
Зарегистрирован: Пт, 14/09/2007 22:54
Имя Фамилия: Виталий Корзюк
Откуда: ТопСофт
Контактная информация:

Re: Проблема с getfirst и Loop по таблице Dogovor

Сообщение Screw »

Внимательно читаем содержимое лога компиляции:

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

[i] Используется поле или переменная CDOG лог.таблицы вместо переменной объекта
    (стр.139, поз.58 в D:\PROJECTS\FORUM.GALAKTIKA.RU\fmMain.vip)
          if getFirst  GETFIRST Dogovor where ((Comp(cDog) /== Dogovor.nRec)) = tsOk {
Иными словами, вместо переменной, как Вы ожидали, используется одноимённое поле какой-то из включённых в ЛТ таблиц, имеющее более "близкую" область видимости с точки зрения модификатора. Как только переменная cDog переносится в ЛТ, её приоритет увеличивается, и она начинает использоваться в модификаторе.

Читайте логи, товарищи!
Ответить